SMART Architecture and Application Development Overview

1,157 views

Published on

An overview of the http://www.SMARTplatforms.org project, including architecture and app development. Presented at the 2012 Indivo X Users' Conference.

By Nikolai Schwertner, Lead Software Developer, SMART platforms

Published in: Technology, Business
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,157
On SlideShare
0
From Embeds
0
Number of Embeds
376
Actions
Shares
0
Downloads
27
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

SMART Architecture and Application Development Overview

  1. 1. SMARTArchitecture and Application DevelopmentOverviewNikolai Schwertnernikolai.schwertner@childrens.harvard.eduLead Software Developer, SMART (http://smartplatforms.org)
  2. 2. VocabularyAppsAPIContainers
  3. 3. VocabularyAppsAPIContainers
  4. 4. VocabularyAppsAPIContainers
  5. 5. Apps and containersAn app runs against one container(at a time)A container connects to multipledata sources
  6. 6. SMART components
  7. 7. SMART components
  8. 8. SMART components
  9. 9. SMART components
  10. 10. Inspired by Web APIs Facebook, OpenSocial, GoogleWeb standards!Apps can run on separate servers,different implementation stacks
  11. 11. Apps need (at least!)UI Standards-based integration, flexibilityAuthentication In-browser, server-to-serverData Context, Medical Record Elements
  12. 12. Container UI
  13. 13. Container UI
  14. 14. Container UI
  15. 15. Container UI
  16. 16. AuthenticationHealth IT systems have different authentication mechanisms!How to keep apps agnostic?Each container implements a consistentmechanism for delegating access: OAuth.The app only needs to speak OAuth.
  17. 17. Apps need data!Contextual data (patient, physician)  low-hanging fruitMedical data(blood pressure, cholesterol)existing standards?pragmatic approaches?
  18. 18. SMART data80/20 approach concentrate on common outpatient dataPayloads specified down to coding systems e.g. SNOMED for problems (we’re opinionated!)Extensible representations in RDF iterative design, building models over time
  19. 19. Data elementsSample 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>
  20. 20. Data principlesREST 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/456URIs can map to underlying EMR IDs
  21. 21. Data principlesConsistent coding systemsMedications: RxNorm (SCD, SBD, Packs)Problems: SNOMED CTLabs: LOINCContainers may need to translate from otherterminologies, with provenance
  22. 22. Data principles Consistent coding systems Example of a translated LOINC code<sp:labName> Medications: RxNorm (SCD, SBD) <sp:CodedValue> Problems: SNOMED CT <sp:code rdf:resource="http://loinc.org/codes/2951-2"/> <dcterms:title>Serum sodium</dcterms:title> Labs: LOINC <sp:codeProvenance> <sp:CodeProvenance> <sp:sourceCode rdf:resource="http://local-emr/labcodes/01234" /> <dcterms:title>Random blood sodium level</dcterms:title> Containers may need to translate from other <sp:translationFidelity rdf:resource="http://smartplatforms.org/terms/code/fidelity#automated" /> terminologies, with provenance </sp:CodeProvenance> </sp:codeProvenance> </sp:CodedValue></sp:labName>
  23. 23. Data principles Consistent coding systems Example of a translated LOINC code<sp:labName> Medications: RxNorm (SCD, SBD) <sp:CodedValue> Problems: SNOMED CT <sp:code rdf:resource="http://loinc.org/codes/2951-2"/> <dcterms:title>Serum sodium</dcterms:title> Labs: LOINC <sp:codeProvenance> <sp:CodeProvenance> source <sp:sourceCode rdf:resource="http://local-emr/labcodes/01234" /> <dcterms:title>Random blood sodium level</dcterms:title> Containers may need to translate from other <sp:translationFidelity rdf:resource="http://smartplatforms.org/terms/code/fidelity#automated" /> terminologies, with provenance </sp:CodeProvenance> </sp:codeProvenance> </sp:CodedValue></sp:labName>
  24. 24. Data principles Consistent coding systems Example of a translated LOINC code<sp:labName> Medications: RxNorm (SCD, SBD) <sp:CodedValue> SMART translation Problems: SNOMED CT <sp:code rdf:resource="http://loinc.org/codes/2951-2"/> <dcterms:title>Serum sodium</dcterms:title> Labs: LOINC <sp:codeProvenance> <sp:CodeProvenance> source <sp:sourceCode rdf:resource="http://local-emr/labcodes/01234" /> <dcterms:title>Random blood sodium level</dcterms:title> Containers may need to translate from other <sp:translationFidelity rdf:resource="http://smartplatforms.org/terms/code/fidelity#automated" /> terminologies, with provenance </sp:CodeProvenance> </sp:codeProvenance> </sp:CodedValue></sp:labName>
  25. 25. Data challengesDifferent 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)
  26. 26. Architecture SummarySMART Containers supply Apps with UI integration Authenticated API Access DataContainers shoulder significant responsibility!Data models are critical to enable app developers Keeping developer experience in mind Data need to be predictable, (relatively) simple

×