Difference between revisions of "201809 Open mHealth to FHIR"
(5 intermediate revisions by 2 users not shown) | |||
Line 3: | Line 3: | ||
==Submitting WG/Project/Implementer Group== | ==Submitting WG/Project/Implementer Group== | ||
− | |||
[[Image:Omh_logo.png|350px|link=http://www.openmhealth.org/]] | [[Image:Omh_logo.png|350px|link=http://www.openmhealth.org/]] | ||
− | |||
− | |||
− | |||
==Justification== | ==Justification== | ||
[https://docs.google.com/presentation/d/1IPdbK_e8-GFubWXudTpnoA2nKVYD4YIado2J8WcoAFA/edit?usp=sharing Open mHealth to FHIR Connectathon Track OrientationPreview Slides] | [https://docs.google.com/presentation/d/1IPdbK_e8-GFubWXudTpnoA2nKVYD4YIado2J8WcoAFA/edit?usp=sharing Open mHealth to FHIR Connectathon Track OrientationPreview Slides] | ||
− | To pilot the [https://healthedata1.github.io/mFHIR/index.html | + | To pilot the [https://healthedata1.github.io/mFHIR/index.html OmH-on-FHIR Implementation Guide] |
− | which describes how to use FHIR and | + | which describes how to use FHIR and OmH to pull health data from popular third-party APIs like Google Fit and Runkeeper. Using the [https://github.com/openmhealth/shimmer OmH shimmer] and "Open mHealth to FHIR" server, this data is made accessible to a FHIR SMART client either in the native OmH schema format or as FHIR resources (typically FHIR Observations). |
Use Cases to include: | Use Cases to include: | ||
Line 27: | Line 23: | ||
Open mHealth Contacts: | Open mHealth Contacts: | ||
− | * [mailto:simona.carini@ucsf.edu Simona | + | * [mailto:simona.carini@ucsf.edu Simona Carini] |
* [mailto:Ida.Sim@ucsf.edu Ida Sim] | * [mailto:Ida.Sim@ucsf.edu Ida Sim] | ||
Line 45: | Line 41: | ||
==Roles== | ==Roles== | ||
<!-- Roles are sets of functionality (generally defined by a Conformance resource) that a single system can take on --> | <!-- Roles are sets of functionality (generally defined by a Conformance resource) that a single system can take on --> | ||
− | See the [https://healthedata1.github.io/mFHIR/index.html | + | See the [https://healthedata1.github.io/mFHIR/index.html OmH-on-FHIR Implementation Guide] for the initial use cases and FHIR Mappings. |
− | * '''FHIR-enabled EHR | + | * '''FHIR-enabled EHR system''' |
* A '''Open mHealth to FHIR Server''' with FHIR server running [http://docs.smarthealthit.org/ SMART-on-FHIR] protocols for authentication/authorization, etc. | * A '''Open mHealth to FHIR Server''' with FHIR server running [http://docs.smarthealthit.org/ SMART-on-FHIR] protocols for authentication/authorization, etc. | ||
* Patient’s '''step counter sensor''' (called ** StepSensor** in this use case) – specific product, may be the patient’s phone | * Patient’s '''step counter sensor''' (called ** StepSensor** in this use case) – specific product, may be the patient’s phone | ||
− | * '''Data store''' for the Step-Counter | + | * '''Data store''' for the Step-Counter output (e.g., cloud and/or phone (e.g., GoogleFit, HealthKit)) that either offers data directly in Open mHealth format using an Open mHealth endpoint, or is supported by [https://github.com/openmhealth/shimmer Shimmer] or [https://github.com/openmhealth/Granola Granola] |
− | * ''' | + | * '''OmH-on-FHIR Client''' a SMART on FHIR app – has roles for PCP, onboarding staff, and patient |
==Scenarios== | ==Scenarios== | ||
− | See the [https://healthedata1.github.io/mFHIR/index.html | + | See the [https://healthedata1.github.io/mFHIR/index.html OmH-on-FHIR Implementation Guide] for the initial use cases and FHIR Mappings. |
Base Use case | Base Use case | ||
Line 75: | Line 71: | ||
steps. They will do this using a FHIR app that presents the data graphically within the EHR session. | steps. They will do this using a FHIR app that presents the data graphically within the EHR session. | ||
− | ==== Use Case 1: Retrieving | + | ==== Use Case 1: Retrieving OmH data in native OmH Schema format ==== |
− | See the [https://healthedata1.github.io/mFHIR/#retrieving-omh-data-in-native-omh-schema-format | + | See the [https://healthedata1.github.io/mFHIR/#retrieving-omh-data-in-native-omh-schema-format OmH-on-FHIR Implementation Guide] for this initial use case. |
[[image:Smartapp-binary.png|500px]] | [[image:Smartapp-binary.png|500px]] | ||
− | ==== Use Case 2: Retrieving | + | ==== Use Case 2: Retrieving OmH data as FHIR Observations ==== |
− | See the [https://healthedata1.github.io/mFHIR/#retrieving-omh-data-as-fhir-observations | + | See the [https://healthedata1.github.io/mFHIR/#retrieving-omh-data-as-fhir-observations OmH-on-FHIR Implementation Guide] for this initial use case. |
Line 92: | Line 88: | ||
==Test Implementations== | ==Test Implementations== | ||
− | + | *'''GAtech Reference Implementation OmH-on-FHIR Server''' | |
− | + | **The latest version of the OmH on FHIR application can be launched with the SMART Application Launcher - [https://docs.google.com/presentation/d/1kyggy2gOn6Hi-mc7nQYS45loGi3ujR4Vvs3mGqU4kmI/edit?usp=sharing INSTRUCTIONS] | |
− | + | ** You can view the source for the OmH on FHIR project here: https://github.com/gt-health/OmH-on-FHIR | |
+ | |||
+ | |||
+ | Details on the frameworks selected for development of the OmH-on-FHIR prototype. | ||
+ | |||
+ | The user interface uses AngularJS (https://angularjs.org/) and the SMART | ||
+ | fhir-js-client.js (https://github.com/smart-on-fhir/client-js) library. | ||
+ | AngularJS provides a nice framework for rapid development. It uses a Model View | ||
+ | Controller (MVC) paradigm that is easy to use and results in well-organized | ||
+ | applications. It also provides mechanisms for unit testing. The fhir-js-client | ||
+ | library is developed by SMART on FHIR and handles all OAuth and resource | ||
+ | requests from the client to the FHIR server. Using this library saved time by | ||
+ | providing all methods necessary for user authentication for the FHIR server. | ||
+ | |||
+ | Spring Boot (https://spring.io/guides/gs/spring-boot/) is used to implement the | ||
+ | FHIR facade web service. This web service exposes endpoints to communicate with | ||
+ | the Shimmer API. It also exposes FHIR endpoints for DocumentReference, Binary, | ||
+ | and Observation Requests. The HAPI FHIR STU3 Structures library | ||
+ | (https://github.com/jamesagnew/hapi-fhir/tree/master/hapi-fhir-structures-dstu3) | ||
+ | is used to ease creation, manipulation, and serialization of FHIR resources in | ||
+ | the web service. This library provides Java objects for all FHIR STU3 resources. | ||
+ | Spring Boot makes it very easy to stand up web services, and when combined with | ||
+ | the HAPI FHIR libraries development of a FHIR web service is fast and simple. | ||
+ | |||
+ | |||
+ | |||
+ | * [https://app.getpostman.com/run-collection/0a54cd0197a5f2fc98d4 Run in Postman] |
Latest revision as of 05:43, 20 September 2018
Submitting WG/Project/Implementer Group
Justification
Open mHealth to FHIR Connectathon Track OrientationPreview Slides
To pilot the OmH-on-FHIR Implementation Guide which describes how to use FHIR and OmH to pull health data from popular third-party APIs like Google Fit and Runkeeper. Using the OmH shimmer and "Open mHealth to FHIR" server, this data is made accessible to a FHIR SMART client either in the native OmH schema format or as FHIR resources (typically FHIR Observations).
Use Cases to include:
- A patient preventing or managing one or more diseases
- Accessing to mHealth data for enterprise level-needs, e.g., to support population health and research purposes
Proposed Track Lead
Open mHealth Contacts:
GA Tech (Test Server) Contacts:
FHIR version
STU3
Expected participants
- GA Tech
- UCSF
<your name here!>
Roles
See the OmH-on-FHIR Implementation Guide for the initial use cases and FHIR Mappings.
- FHIR-enabled EHR system
- A Open mHealth to FHIR Server with FHIR server running SMART-on-FHIR protocols for authentication/authorization, etc.
- Patient’s step counter sensor (called ** StepSensor** in this use case) – specific product, may be the patient’s phone
- Data store for the Step-Counter output (e.g., cloud and/or phone (e.g., GoogleFit, HealthKit)) that either offers data directly in Open mHealth format using an Open mHealth endpoint, or is supported by Shimmer or Granola
- OmH-on-FHIR Client a SMART on FHIR app – has roles for PCP, onboarding staff, and patient
Scenarios
See the OmH-on-FHIR Implementation Guide for the initial use cases and FHIR Mappings.
Base Use case
StoryBoard Description:
The patient determined by e.g., http://tools.acc.org/ASCVD-Risk-Estimator-Plus/#!/calculate/estimate/ to be at moderate CV risk based on blood pressure, BMI, diet and exercise, blood glucose. Patient has a primary care physician (PCP). PCP and the patient jointly decide on improving exercise to meet AHA/WHO/CDC guidelines of150 minutes of moderate exercise (3-6 METS) every week, which they have refined into a mutually agreed upon step goal of 4000 steps daily. PCP prescribes the collection of steps using an mHealth device, to track daily steps and average daily and weekly steps. The patient is given an Open mHealth- compliant/supported consumer device (e.g., FitBit, GoogleFit, Misfit) by the clinic, or the patient already has an Open mHealth-compliant/supported device. At the next scheduled visit (e.g., in 90 days), the PCP and patient will jointly review during a clinic visit the daily step count and daily and weekly averages in the past 90 days vs the goal of 4000 daily steps. They will do this using a FHIR app that presents the data graphically within the EHR session.
Use Case 1: Retrieving OmH data in native OmH Schema format
See the OmH-on-FHIR Implementation Guide for this initial use case.
Use Case 2: Retrieving OmH data as FHIR Observations
See the OmH-on-FHIR Implementation Guide for this initial use case.
Test Implementations
- GAtech Reference Implementation OmH-on-FHIR Server
- The latest version of the OmH on FHIR application can be launched with the SMART Application Launcher - INSTRUCTIONS
- You can view the source for the OmH on FHIR project here: https://github.com/gt-health/OmH-on-FHIR
Details on the frameworks selected for development of the OmH-on-FHIR prototype. The user interface uses AngularJS (https://angularjs.org/) and the SMART fhir-js-client.js (https://github.com/smart-on-fhir/client-js) library. AngularJS provides a nice framework for rapid development. It uses a Model View Controller (MVC) paradigm that is easy to use and results in well-organized applications. It also provides mechanisms for unit testing. The fhir-js-client library is developed by SMART on FHIR and handles all OAuth and resource requests from the client to the FHIR server. Using this library saved time by providing all methods necessary for user authentication for the FHIR server. Spring Boot (https://spring.io/guides/gs/spring-boot/) is used to implement the FHIR facade web service. This web service exposes endpoints to communicate with the Shimmer API. It also exposes FHIR endpoints for DocumentReference, Binary, and Observation Requests. The HAPI FHIR STU3 Structures library (https://github.com/jamesagnew/hapi-fhir/tree/master/hapi-fhir-structures-dstu3) is used to ease creation, manipulation, and serialization of FHIR resources in the web service. This library provides Java objects for all FHIR STU3 resources. Spring Boot makes it very easy to stand up web services, and when combined with the HAPI FHIR libraries development of a FHIR web service is fast and simple.