SlideShare a Scribd company logo
1 of 26
SMART
Architecture and Application Development
Overview

Nikolai Schwertner
nikolai.schwertner@childrens.harvard.edu
Lead Software Developer, SMART (http://smartplatforms.org)
Vocabulary

Apps



API




Containers
Vocabulary

Apps



API




Containers
Vocabulary

Apps



API




Containers
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!)

UI
 Standards-based integration, flexibility

Authentication
 In-browser, server-to-server

Data
 Context, Medical Record Elements
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.
Apps need data!


Contextual data
 (patient, physician)  low-hanging fruit

Medical data
(blood pressure, cholesterol)

existing standards?
pragmatic approaches?
SMART data

80/20 approach
 concentrate on common outpatient data

Payloads specified down to coding systems
 e.g. SNOMED for problems (we’re opinionated!)

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>
      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>
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>
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>
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)
Architecture Summary
SMART Containers supply Apps with
  UI integration
  Authenticated API Access
  Data

Containers shoulder significant responsibility!

Data models are critical to enable app developers
  Keeping developer experience in mind
  Data need to be predictable, (relatively) simple

More Related Content

Viewers also liked

AStar IoT and smart hospital architecture
AStar IoT and smart hospital architectureAStar IoT and smart hospital architecture
AStar IoT and smart hospital architectureChiyang Lin
 
mathematics in architecture
mathematics in architecturemathematics in architecture
mathematics in architecturejaisreenivasan
 
Service Oriented Architecture and Business Process Modeling Overview
Service Oriented Architecture and Business Process Modeling OverviewService Oriented Architecture and Business Process Modeling Overview
Service Oriented Architecture and Business Process Modeling OverviewJean Ferguson
 
Smart Hospital Blueprint Sanitized
Smart Hospital Blueprint SanitizedSmart Hospital Blueprint Sanitized
Smart Hospital Blueprint Sanitizedssoliani
 
Architectural Professional Practice - Programming الممارسة المهنية المعمارية ...
Architectural Professional Practice - Programming الممارسة المهنية المعمارية ...Architectural Professional Practice - Programming الممارسة المهنية المعمارية ...
Architectural Professional Practice - Programming الممارسة المهنية المعمارية ...Galala University
 
Effective Communication Skills
Effective Communication SkillsEffective Communication Skills
Effective Communication SkillsAshit Jain
 
Data Analytics Strategy
Data Analytics StrategyData Analytics Strategy
Data Analytics StrategyeHealthCareers
 
10 Ways to Improve Internal Communication
10 Ways to Improve Internal Communication10 Ways to Improve Internal Communication
10 Ways to Improve Internal CommunicationWeekdone.com
 

Viewers also liked (9)

AStar IoT and smart hospital architecture
AStar IoT and smart hospital architectureAStar IoT and smart hospital architecture
AStar IoT and smart hospital architecture
 
mathematics in architecture
mathematics in architecturemathematics in architecture
mathematics in architecture
 
Service Oriented Architecture and Business Process Modeling Overview
Service Oriented Architecture and Business Process Modeling OverviewService Oriented Architecture and Business Process Modeling Overview
Service Oriented Architecture and Business Process Modeling Overview
 
Smart Hospital Blueprint Sanitized
Smart Hospital Blueprint SanitizedSmart Hospital Blueprint Sanitized
Smart Hospital Blueprint Sanitized
 
Architectural Professional Practice - Programming الممارسة المهنية المعمارية ...
Architectural Professional Practice - Programming الممارسة المهنية المعمارية ...Architectural Professional Practice - Programming الممارسة المهنية المعمارية ...
Architectural Professional Practice - Programming الممارسة المهنية المعمارية ...
 
Effective Communication Skills
Effective Communication SkillsEffective Communication Skills
Effective Communication Skills
 
Operations Strategy
Operations StrategyOperations Strategy
Operations Strategy
 
Data Analytics Strategy
Data Analytics StrategyData Analytics Strategy
Data Analytics Strategy
 
10 Ways to Improve Internal Communication
10 Ways to Improve Internal Communication10 Ways to Improve Internal Communication
10 Ways to Improve Internal Communication
 

Similar to SMART Architecture and Application Development Overview

Expose your data as an api is with oracle rest data services -spoug Madrid
Expose your data as an api is with oracle rest data services -spoug MadridExpose your data as an api is with oracle rest data services -spoug Madrid
Expose your data as an api is with oracle rest data services -spoug MadridVinay Kumar
 
Stanford'12 Intro to Ontology Based Data Access for RDBMS through query rewri...
Stanford'12 Intro to Ontology Based Data Access for RDBMS through query rewri...Stanford'12 Intro to Ontology Based Data Access for RDBMS through query rewri...
Stanford'12 Intro to Ontology Based Data Access for RDBMS through query rewri...Mariano Rodriguez-Muro
 
JAX-RS 2.0: RESTful Web Services
JAX-RS 2.0: RESTful Web ServicesJAX-RS 2.0: RESTful Web Services
JAX-RS 2.0: RESTful Web ServicesArun Gupta
 
Data Architectures for Robust Decision Making
Data Architectures for Robust Decision MakingData Architectures for Robust Decision Making
Data Architectures for Robust Decision MakingGwen (Chen) Shapira
 
Modeling an Embedded Device for PSpice Simulation
Modeling an Embedded Device for PSpice SimulationModeling an Embedded Device for PSpice Simulation
Modeling an Embedded Device for PSpice SimulationEMA Design Automation
 
CDISC2RDF overview with examples
CDISC2RDF overview with examplesCDISC2RDF overview with examples
CDISC2RDF overview with examplesKerstin Forsberg
 
SDNs: hot topics, evolution & research opportunities
SDNs: hot topics, evolution & research opportunitiesSDNs: hot topics, evolution & research opportunities
SDNs: hot topics, evolution & research opportunitiesDiego Kreutz
 
Oleksandr Valetskyy - DI vs. IoC
Oleksandr Valetskyy - DI vs. IoCOleksandr Valetskyy - DI vs. IoC
Oleksandr Valetskyy - DI vs. IoCOleksandr Valetskyy
 
Lab Informatics - NuGenesis SDMS interfaced with Compound QC Web App for Chem...
Lab Informatics - NuGenesis SDMS interfaced with Compound QC Web App for Chem...Lab Informatics - NuGenesis SDMS interfaced with Compound QC Web App for Chem...
Lab Informatics - NuGenesis SDMS interfaced with Compound QC Web App for Chem...David Howe
 
On the need for applications aware adaptive middleware in real-time RDF data ...
On the need for applications aware adaptive middleware in real-time RDF data ...On the need for applications aware adaptive middleware in real-time RDF data ...
On the need for applications aware adaptive middleware in real-time RDF data ...Zia Ush Shamszaman
 
The Pill for Your Migration Hell
The Pill for Your Migration HellThe Pill for Your Migration Hell
The Pill for Your Migration HellDatabricks
 
Michael Ledford Fall 2014 Resume
Michael Ledford Fall 2014 ResumeMichael Ledford Fall 2014 Resume
Michael Ledford Fall 2014 ResumeMichael Ledford
 
Jack Gudenkauf sparkug_20151207_7
Jack Gudenkauf sparkug_20151207_7Jack Gudenkauf sparkug_20151207_7
Jack Gudenkauf sparkug_20151207_7Jack Gudenkauf
 
A noETL Parallel Streaming Transformation Loader using Spark, Kafka­ & Ver­tica
A noETL Parallel Streaming Transformation Loader using Spark, Kafka­ & Ver­ticaA noETL Parallel Streaming Transformation Loader using Spark, Kafka­ & Ver­tica
A noETL Parallel Streaming Transformation Loader using Spark, Kafka­ & Ver­ticaData Con LA
 
AskTom: How to Make and Test Your Application "Oracle RAC Ready"?
AskTom: How to Make and Test Your Application "Oracle RAC Ready"?AskTom: How to Make and Test Your Application "Oracle RAC Ready"?
AskTom: How to Make and Test Your Application "Oracle RAC Ready"?Markus Michalewicz
 
Edwin Vinoth_Resume
Edwin Vinoth_ResumeEdwin Vinoth_Resume
Edwin Vinoth_Resumeedwin vinoth
 

Similar to SMART Architecture and Application Development Overview (20)

Expose your data as an api is with oracle rest data services -spoug Madrid
Expose your data as an api is with oracle rest data services -spoug MadridExpose your data as an api is with oracle rest data services -spoug Madrid
Expose your data as an api is with oracle rest data services -spoug Madrid
 
Stanford'12 Intro to Ontology Based Data Access for RDBMS through query rewri...
Stanford'12 Intro to Ontology Based Data Access for RDBMS through query rewri...Stanford'12 Intro to Ontology Based Data Access for RDBMS through query rewri...
Stanford'12 Intro to Ontology Based Data Access for RDBMS through query rewri...
 
NGS: Mapping and de novo assembly
NGS: Mapping and de novo assemblyNGS: Mapping and de novo assembly
NGS: Mapping and de novo assembly
 
JAX-RS 2.0: RESTful Web Services
JAX-RS 2.0: RESTful Web ServicesJAX-RS 2.0: RESTful Web Services
JAX-RS 2.0: RESTful Web Services
 
Switch to Backend 2023
Switch to Backend 2023Switch to Backend 2023
Switch to Backend 2023
 
Data Architectures for Robust Decision Making
Data Architectures for Robust Decision MakingData Architectures for Robust Decision Making
Data Architectures for Robust Decision Making
 
Modeling an Embedded Device for PSpice Simulation
Modeling an Embedded Device for PSpice SimulationModeling an Embedded Device for PSpice Simulation
Modeling an Embedded Device for PSpice Simulation
 
CDISC2RDF overview with examples
CDISC2RDF overview with examplesCDISC2RDF overview with examples
CDISC2RDF overview with examples
 
SDNs: hot topics, evolution & research opportunities
SDNs: hot topics, evolution & research opportunitiesSDNs: hot topics, evolution & research opportunities
SDNs: hot topics, evolution & research opportunities
 
Oleksandr Valetskyy - DI vs. IoC
Oleksandr Valetskyy - DI vs. IoCOleksandr Valetskyy - DI vs. IoC
Oleksandr Valetskyy - DI vs. IoC
 
Lab Informatics - NuGenesis SDMS interfaced with Compound QC Web App for Chem...
Lab Informatics - NuGenesis SDMS interfaced with Compound QC Web App for Chem...Lab Informatics - NuGenesis SDMS interfaced with Compound QC Web App for Chem...
Lab Informatics - NuGenesis SDMS interfaced with Compound QC Web App for Chem...
 
On the need for applications aware adaptive middleware in real-time RDF data ...
On the need for applications aware adaptive middleware in real-time RDF data ...On the need for applications aware adaptive middleware in real-time RDF data ...
On the need for applications aware adaptive middleware in real-time RDF data ...
 
dfl
dfldfl
dfl
 
The Pill for Your Migration Hell
The Pill for Your Migration HellThe Pill for Your Migration Hell
The Pill for Your Migration Hell
 
3. Synthesis.pptx
3. Synthesis.pptx3. Synthesis.pptx
3. Synthesis.pptx
 
Michael Ledford Fall 2014 Resume
Michael Ledford Fall 2014 ResumeMichael Ledford Fall 2014 Resume
Michael Ledford Fall 2014 Resume
 
Jack Gudenkauf sparkug_20151207_7
Jack Gudenkauf sparkug_20151207_7Jack Gudenkauf sparkug_20151207_7
Jack Gudenkauf sparkug_20151207_7
 
A noETL Parallel Streaming Transformation Loader using Spark, Kafka­ & Ver­tica
A noETL Parallel Streaming Transformation Loader using Spark, Kafka­ & Ver­ticaA noETL Parallel Streaming Transformation Loader using Spark, Kafka­ & Ver­tica
A noETL Parallel Streaming Transformation Loader using Spark, Kafka­ & Ver­tica
 
AskTom: How to Make and Test Your Application "Oracle RAC Ready"?
AskTom: How to Make and Test Your Application "Oracle RAC Ready"?AskTom: How to Make and Test Your Application "Oracle RAC Ready"?
AskTom: How to Make and Test Your Application "Oracle RAC Ready"?
 
Edwin Vinoth_Resume
Edwin Vinoth_ResumeEdwin Vinoth_Resume
Edwin Vinoth_Resume
 

More from Children's Hospital Informatics Program

More from Children's Hospital Informatics Program (6)

Secondary Use of Healthcare Data for Translational Research
Secondary Use of Healthcare Data for Translational ResearchSecondary Use of Healthcare Data for Translational Research
Secondary Use of Healthcare Data for Translational Research
 
Intro: Indivo X 2012 Users' Conference
Intro: Indivo X 2012 Users' ConferenceIntro: Indivo X 2012 Users' Conference
Intro: Indivo X 2012 Users' Conference
 
the Indivo X iOS Framework
the Indivo X iOS Frameworkthe Indivo X iOS Framework
the Indivo X iOS Framework
 
Indivo as a Personally-Controlled Research Platform for Chronic Disease Regis...
Indivo as a Personally-Controlled Research Platform for Chronic Disease Regis...Indivo as a Personally-Controlled Research Platform for Chronic Disease Regis...
Indivo as a Personally-Controlled Research Platform for Chronic Disease Regis...
 
2012 User's Conference SMART-Indivo Integration
2012 User's Conference SMART-Indivo Integration2012 User's Conference SMART-Indivo Integration
2012 User's Conference SMART-Indivo Integration
 
2012 User's Conference Indivo Updates
2012 User's Conference Indivo Updates2012 User's Conference Indivo Updates
2012 User's Conference Indivo Updates
 

Recently uploaded

New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Neo4j
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 

Recently uploaded (20)

New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024Build your next Gen AI Breakthrough - April 2024
Build your next Gen AI Breakthrough - April 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 

SMART Architecture and Application Development Overview

  • 1. SMART Architecture and Application Development Overview Nikolai Schwertner nikolai.schwertner@childrens.harvard.edu Lead Software Developer, SMART (http://smartplatforms.org)
  • 5. Apps and containers An app runs against one container (at a time) A container connects to multiple data sources
  • 10. Inspired by Web APIs Facebook, OpenSocial, Google Web standards! Apps can run on separate servers, different implementation stacks
  • 11. Apps need (at least!) UI Standards-based integration, flexibility Authentication In-browser, server-to-server Data Context, Medical Record Elements
  • 16. 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.
  • 17. Apps need data! Contextual data (patient, physician)  low-hanging fruit Medical data (blood pressure, cholesterol) existing standards? pragmatic approaches?
  • 18. SMART data 80/20 approach concentrate on common outpatient data Payloads specified down to coding systems e.g. SNOMED for problems (we’re opinionated!) Extensible representations in RDF iterative design, building models over time
  • 19. 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>
  • 20. 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
  • 21. 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
  • 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. 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. 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. 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)
  • 26. Architecture Summary SMART Containers supply Apps with UI integration Authenticated API Access Data Containers shoulder significant responsibility! Data models are critical to enable app developers Keeping developer experience in mind Data need to be predictable, (relatively) simple