SLIDE 1 Saving lives with REASONML
DOUGLAS TEOH
dteoh.com dteoh #3808 allm.net/en
SLIDE 2 Medical Device Recalls
Software Issues (%)
7.5 15 22.5 30 2016 Q1 2016 Q3 2017 Q1 2017 Q3 2018 Q1 2018 Q3
Sourced from Stericycle Expert Solutions Recall Index
SLIDE 3
Therac-25
SLIDE 4 Fast-ED
Android + iOS app
SLIDE 5 🧡 Stroke
- Ischemic and Hemorrhagic
- No oxygen → brain cells die, loss of brain
function
SLIDE 6 Why an app?
- One of the leading causes of death
- Symptoms observable
- Survival correlated with time to
treatment
SLIDE 7
Assessing a stroke?
SLIDE 8
SLIDE 9
SLIDE 10
SLIDE 11
SLIDE 12 Fast-ED
Android + iOS app
SLIDE 13
JAVASCRIPT?
IN MEDICAL APPS?
SLIDE 14
APP STRUCTURE
SLIDE 15
SLIDE 16
SLIDE 17
SLIDE 18
SLIDE 19
VARIANTS
SLIDE 21
MODELLING API DATA
SLIDE 22
SLIDE 23
SLIDE 24
SLIDE 25
SLIDE 26
FINDING DOMAIN ERRORS 🔏🐟
SLIDE 27
SLIDE 28
SLIDE 29
SLIDE 30
Be careful when using option(‘a)
SLIDE 31
DISAMBIGUATING COMMONLY USED
TYPES
SLIDE 32
SLIDE 33
REVEALING SYSTEM ERRORS
SLIDE 34
Belt’s Result.t(‘a, ‘error)
SLIDE 35
Result.t(‘a, string)
SLIDE 36
SLIDE 37
Result.t(‘a, ‘error)
SLIDE 38
SLIDE 39
SLIDE 40
Railway Oriented Programming
SLIDE 41
SLIDE 42
INTEROP
SLIDE 43
Exchange JSON compatible structures
SLIDE 44
SLIDE 45
Use Js.Json.t + Js.Json.classify
SLIDE 46
SLIDE 47 JS objects
- [@bs.deriving “abstract”] for inputs
- bs-json library to output Js.Json.t
SLIDE 48
SLIDE 49
TESTING
with bs-jest
SLIDE 50 📧 PACKAGING
with Parcel
parceljs.org
SLIDE 51 Saving lives with REASONML
DOUGLAS TEOH
dteoh.com dteoh #3808 allm.net/en