Area 3 Modeling Collaboration

advertisement
SHARP Area 3: SMART
(Substitutable Medical Apps)
Josh C. Mandel, MD
Joshua.Mandel@childrens.harvard.edu
Lead Architect, SMART (http://smartplatforms.org)
Research Faculty, Harvard Medical School
Sharp Area 4 Face-to-face, July 1 2011
SMART goals
Health IT users work with
installable, substitutable apps
Health IT systems benefit from
efficient marketplace of apps
vibrant developer community
Why substitutable apps?
Improved user experience
More integrated innovation
Case study: Wired competition
Why substitutable apps?
Improved user experience
More integrated innovation
Case study: Wired competition
Why substitutable apps?
David McCandless &
Stefanie Posavec for
Wired Magazine
informationisbeautiful.net
Vocabulary
Apps
API
Containers
Vocabulary
Apps
API
Containers
A Substitutable App
SMART Reference EMR
i2b2
Indivo PCHR
Your system here.
Vocabulary
Apps
API
Containers
SMART $5K Challenge
SMART $5K Challenge
Apps and containers
An app runs against one container
(at a time)
A container connects to multiple
data sources
SMART components
SMART components
SMART components
SMART components
Inspired by Web APIs
Facebook, OpenSocial, Google
Web standards!
Apps can run on separate servers,
different implementation stacks
Apps need
(at least!)
Data
Context, Medical Record Elements
UI
Standards-based integration, flexibility
Authentication
In-browser, server-to-server
Apps need data!
Contextual data
(patient, physician)  low-hanging fruit
Medical data
(blood pressure, cholesterol)
existing standards?
pragmatic approaches?
Open standards?
Open standards?
CCR: “Licensee may access and download an
electronic file of a Document (or portion of a
Document) for temporary storage on one
computer for purposes of viewing, and/or
printing one copy of a Document for
individual use. Neither the electronic file nor
the single hard copy print may be reproduced
in any way.”
Intuitive payload?
What’s practical?
PCHRs provide practical data models
Indivo
http://wiki.indivohealth.org/index.php/Indivo_Document_Model
MS HealthVault Data Types:
http://developer.healthvault.com/types/types.aspx
Google Health Subset of CCR:
http://code.google.com/apis/health/ccrg_reference.html
SMART data
80/20 approach
concentrate on common outpatient data
Payloads specified down to coding systems
e.g. SNOMED for problems
Extensible representations in RDF
iterative design, building models over time
Data elements
Sample SMART Problem (RDF)
<sp:Problem>
<sp:problemName>
<sp:CodedValue>
<sp:code rdf:resource="http://www.ihtsdo.org/snomed-ct/concepts/161891005"/>
<dcterms:title>Backache (finding)</dcterms:title>
</sp:CodedValue>
</sp:problemName>
<sp:onset>2007-06-12</sp:onset>
<sp:resolution>2007-08-01</sp:resolution>
</sp:Problem>
Data principles
REST Paradigm:
Each patient, data element has a URI
John Smith:
http://smart-emr.hospital.org/records/123
John Smith’s atorvastatin:
http://smart-emr.hospital.org/records/123/medications/456
URIs can map to underlying EMR IDs
Data principles
Consistent coding systems
Medications: RxNorm (SCD, SBD, Packs)
Problems: SNOMED CT
Labs: LOINC
Containers may need to translate from other
terminologies, with provenance
Data principles
Consistent coding systems
Example of a translated LOINC code
<sp:labName>
<sp:CodedValue>
<sp:code rdf:resource="http://loinc.org/codes/2951-2"/>
<dcterms:title>Serum sodium</dcterms:title>
<sp:codeProvenance>
<sp:CodeProvenance>
<sp:sourceCode rdf:resource="http://local-emr/labcodes/01234" />
<dcterms:title>Random blood sodium level</dcterms:title>
<sp:translationFidelity
rdf:resource="http://smartplatforms.org/terms/code/fidelity#automated" />
</sp:CodeProvenance>
</sp:codeProvenance>
</sp:CodedValue>
</sp:labName>
Medications: RxNorm (SCD, SBD)
Problems: SNOMED CT
Labs: LOINC
Containers may need to translate from other
terminologies, with provenance
Data principles
Consistent coding systems
Example of a translated LOINC code
<sp:labName>
<sp:CodedValue>
<sp:code rdf:resource="http://loinc.org/codes/2951-2"/>
<dcterms:title>Serum sodium</dcterms:title>
<sp:codeProvenance>
<sp:CodeProvenance>
<sp:sourceCode rdf:resource="http://local-emr/labcodes/01234" />
<dcterms:title>Random blood sodium level</dcterms:title>
<sp:translationFidelity
rdf:resource="http://smartplatforms.org/terms/code/fidelity#automated" />
</sp:CodeProvenance>
</sp:codeProvenance>
</sp:CodedValue>
</sp:labName>
Medications: RxNorm (SCD, SBD)
Problems: SNOMED CT
Labs: LOINC
source
Containers may need to translate from other
terminologies, with provenance
Data principles
Consistent coding systems
Example of a translated LOINC code
<sp:labName>
<sp:CodedValue>
<sp:code rdf:resource="http://loinc.org/codes/2951-2"/>
<dcterms:title>Serum sodium</dcterms:title>
<sp:codeProvenance>
<sp:CodeProvenance>
<sp:sourceCode rdf:resource="http://local-emr/labcodes/01234" />
<dcterms:title>Random blood sodium level</dcterms:title>
<sp:translationFidelity
rdf:resource="http://smartplatforms.org/terms/code/fidelity#automated" />
</sp:CodeProvenance>
</sp:codeProvenance>
</sp:CodedValue>
</sp:labName>
Medications: RxNorm
SBD)
SMART(SCD,
translation
Problems: SNOMED CT
Labs: LOINC
source
Containers may need to translate from other
terminologies, with provenance
Data challenges
Different coding systems
e.g. for medications, NDC  RxNorm
e.g. for problems, ICD9  SNOMED CT (?)
Different models
e.g. is a problem event-at-a-time, or duration?
No models – can’t expose data you don’t have.
(but some may be worth storing, e.g., fulfillments)
SMART governance
Open specifications, documentation
Open-source reference implementation
Open-source client libraries
Apps and Containers needn’t be open-source
(promote a commercial ecosystem)
Ongoing projects
Translation / Integration efforts
• CHB’s Cerner
• OpenMRS
• HealthVault, Indivo
• i2b2
Exploring
• Extended data models
• Integration of CDS
• Mobile apps + containers
Discussion topics!
Cross-SHARP sharing of:
• sample data
• logical models
Collaboration around
• integrating SHARPN functionality as
SMART apps (e.g. CTAKES pilot)
• extracting patient record data
Other opportunities?
Questions?
Container UI
Container UI
Container UI
Container UI
Authentication
Health IT systems have different authentication
mechanisms!
How to keep apps agnostic?
Each container implements a consistent
mechanism for delegating access: OAuth.
The app only needs to speak OAuth.
App distribution model?
App distribution model?
Light, test-driven certification as SMART
Independent groups may endorse apps
Individual containers install selected apps
(local arrangements, e.g. contractual terms)
App distribution model?
Download