REASONML DOUGLAS TEOH dteoh.com dteoh #3808 allm.net/en Medical - - PowerPoint PPT Presentation

reasonml
SMART_READER_LITE
LIVE PREVIEW

REASONML DOUGLAS TEOH dteoh.com dteoh #3808 allm.net/en Medical - - PowerPoint PPT Presentation

Saving lives with REASONML DOUGLAS TEOH dteoh.com dteoh #3808 allm.net/en Medical Device Recalls Software Issues (%) 30 22.5 15 7.5 0 2016 Q1 2016 Q3 2017 Q1 2017 Q3 2018 Q1 2018 Q3 Sourced from Stericycle Expert Solutions Recall


slide-1
SLIDE 1

Saving lives with REASONML

DOUGLAS TEOH

dteoh.com dteoh #3808 allm.net/en

slide-2
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
SLIDE 3

Therac-25

slide-4
SLIDE 4

Fast-ED

Android + iOS app

slide-5
SLIDE 5

🧡 Stroke

  • Ischemic and Hemorrhagic
  • No oxygen → brain cells die, loss of brain

function

slide-6
SLIDE 6

Why an app?

  • One of the leading causes of death
  • Symptoms observable
  • Survival correlated with time to

treatment

slide-7
SLIDE 7

Assessing a stroke?

slide-8
SLIDE 8
slide-9
SLIDE 9
slide-10
SLIDE 10
slide-11
SLIDE 11
slide-12
SLIDE 12

Fast-ED

Android + iOS app

slide-13
SLIDE 13

JAVASCRIPT?

IN MEDICAL APPS?

slide-14
SLIDE 14

APP STRUCTURE

slide-15
SLIDE 15
slide-16
SLIDE 16
slide-17
SLIDE 17
slide-18
SLIDE 18
slide-19
SLIDE 19

VARIANTS

slide-20
SLIDE 20
  • ption(‘a)
slide-21
SLIDE 21

MODELLING API DATA

slide-22
SLIDE 22
slide-23
SLIDE 23
slide-24
SLIDE 24
slide-25
SLIDE 25
slide-26
SLIDE 26

FINDING DOMAIN ERRORS 🔏🐟

slide-27
SLIDE 27
slide-28
SLIDE 28
slide-29
SLIDE 29
slide-30
SLIDE 30

Be careful when using option(‘a)

slide-31
SLIDE 31

DISAMBIGUATING COMMONLY USED


TYPES

slide-32
SLIDE 32
slide-33
SLIDE 33

REVEALING SYSTEM ERRORS

slide-34
SLIDE 34

Belt’s Result.t(‘a, ‘error)

slide-35
SLIDE 35

Result.t(‘a, string)

slide-36
SLIDE 36
slide-37
SLIDE 37

Result.t(‘a, ‘error)

slide-38
SLIDE 38
slide-39
SLIDE 39
slide-40
SLIDE 40

Railway Oriented Programming

slide-41
SLIDE 41
slide-42
SLIDE 42

INTEROP

slide-43
SLIDE 43

Exchange JSON compatible structures

slide-44
SLIDE 44
slide-45
SLIDE 45

Use Js.Json.t + Js.Json.classify

slide-46
SLIDE 46
slide-47
SLIDE 47

JS objects

  • [@bs.deriving “abstract”] for inputs
  • bs-json library to output Js.Json.t
slide-48
SLIDE 48
slide-49
SLIDE 49

TESTING

with bs-jest

slide-50
SLIDE 50

📧 PACKAGING

with Parcel

parceljs.org

slide-51
SLIDE 51

Saving lives with REASONML

DOUGLAS TEOH

dteoh.com dteoh #3808 allm.net/en