Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API...

43
Introduction to FHIR & SMART

Transcript of Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API...

Page 1: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

Introduction to FHIR & SMART

Page 2: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

AgendaDesigning with FHIR

SMART on FHIR

1

2

3 Demo

Hands-on Lab4

Page 3: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

01Designing with FHIR

Page 4: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

FHIR

● F – Fast (to design & to implement)

● H – Healthcare

● I – Interoperability

● R – Resources

http://hl7.org/fhir/

Page 5: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

FHIR serves two technical roles in healthcare IT

FHIR as a data modelFHIR as an API specification

Page 6: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

What does FHIR provide?

● Resources (building blocks)● Human readability● Extensions (part of the spec)● Methodology

○ Bundles, Profiles, Conformance

● Syntax (XML, JSON)● Support for multiple Paradigms

○ REST, Messaging, Documents

Page 7: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

Resources

● Defined Structured Data○ The logical, common contents of the resource○ Mapped to formal definitions/RIM & other formats○ Syntax – XML, JSON and RDF (JSON-LD)

● Narrative○ Human readable

● Extensions○ Local requirements, but everyone can use○ Published and managed

Page 8: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

FHIR Resources

● Administrative○ Patient, Practitioner, Organization,

Location, Coverage, Invoice● Clinical Concepts

○ Allergy, Condition, Family History, Care Plan

● Infrastructure○ Document, Message, Profile, Capability

● Gender○ Too small

● Electronic Health Record○ Too big

● Blood Pressure○ Too specific

● Intervention○ Too broad

Examples Non-examples

Page 9: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

{

"resourceType": "Patient", "id": "example", "meta": { "versionId": "1", "lastUpdated": "2017-01-03T16:05:00.792Z" }, "text": { "status": "generated", "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p>Henry Levin the 7th</p></div>" }, "extension": [ { "url": "http://hl7.org/fhir/StructureDefinition/us-core-birthsex", "valueCode": "M" } ], "identifier": [ { "use": "usual", "system": "urn:oid:1.2.36.146.595.217.0.1", "value": "12345" } ], "active": true, "name": [ { "use": "official", "family": "Levin", "given": [ "Henry“ ], "suffix": [ "the 7th“ ] } ], "gender": "male", "birthDate": "1974-12-25", "managingOrganization": { "reference": "Organization/example" }}

Human Readable Summary

Standard Data Content:∙ Patient Identity∙ Name∙ Gender∙ Date of Birth∙ Provider

Extension with reference to its definition

FHIR Id & Metadata

Patient in FHIR

Page 10: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

{

"resourceType": "Procedure", "id": "example", "status": "completed", "code": { "coding": [ { "system": "http://snomed.info/sct", "code": "80146002", "display": "Appendectomy (Procedure)" } ], "text": "Appendectomy" }, "subject": {

"reference": "Patient/example_patient" }, "performedDateTime": "2013-04-05", "performer": [ { "actor": {

"reference": "Practitioner/example_practitioner", "display": "Dr Cecil Surgeon" } } ], "reasonCode": [ { "text": "Generalized abdominal pain 24 hours. Localized in RIF with rebound and guarding" } ], "followUp": [ { "text": "ROS 5 days - 2013-04-10" } ]}

Patient

Practitioner

subject

Procedure

performer

Reference

Page 11: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

FHIR Version History since DSTU #1

Source: https://www.hl7.org/fhir/history.html

FHIR version DSTU2 STU3 R4

# of resources 93 117 145

Page 12: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

AccountActivityDefinitionAllergyIntoleranceAdverseEventAppointmentAppointmentResponseAuditEventBasicBinaryBodySiteBundleCapabilityStatementCarePlanCareTeamChargeItemClaimClaimResponseClinicalImpressionCodeSystemCommunicationCommunicationRequestCompartmentDefinitionCompositionConceptMap

ConditionConsentContractCoverageDataElementDetectedIssueDeviceDeviceComponentDeviceMetricDeviceRequestDeviceUseStatementDiagnosticReportDocumentManifestDocumentReferenceEligibilityRequestEligibilityResponseEncounterEndpointEnrollmentRequestEnrollmentResponseEpisodeOfCareExpansionProfileExplanationOfBenefitFamilyMemberHistory

FlagGoalGraphDefinitionGroupGuidanceResponseHealthcareServiceImagingManifestImagingStudyImmunizationImmunizationRecommendImplementationGuideLibraryLinkageListLocationMeasureMeasureReportMediaMedicationMedicationAdministrationMedicationDispenseMedicationRequestMedicationStatementMessageDefinition

MessageHeaderNamingSystemNutritionOrderObservationOperationDefinitionOperationOutcomeOrganizationParametersPatientPaymentNoticePaymentReconciliationPersonPlanDefinitionPractitionerPractitionerRoleProcedureProcedureRequestProcessRequestProcessResponseProvenanceQuestionnaireQuestionnaireResponseReferralRequestRelatedPerson

RequestGroupResearchStudyResearchSubjectRiskAssessmentScheduleSearchParameterSequenceServiceDefinitionSlotSpecimenStructureDefinitionStructureMapSubscriptionSubstanceSupplyDeliverySupplyRequestTaskTestScriptTestReportValueSetVisionPrescription

FHIR Resources - STU3

http://hl7.org/fhir/STU3/resourcelist.html

Page 13: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

Where can FHIR be used?

● Health Information Exchanges (HIE)● Interoperability within and across Healthcare

organizations● Electronic Health Record (EHR) Systems● Integrate with Payer systems● Web and Mobile Applications for Patients and Clinicians

Page 14: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

ONC Standards

● Clinical Health Information

Interoperability Standards

○ API Resource Collection in Health (ARCH)

https://www.healthit.gov/isa/sites/isa/files/inline-files/ARCH%202019%20v1.pdf

○ U.S. Core Data for Interoperability (USCDI)

https://www.healthit.gov/isa/sites/isa/files/inline-files/USCDIv12019revised2.pdf

ONC: Office of National Coordinator for Health IT

Source: https://www.healthit.gov/isa/onc-standards

Page 15: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

API Resource Collection in Health (ARCH)

ONC: Office of National Coordinator for Health IT

Source: https://www.healthit.gov/isa/onc-standards

● AllergyIntolerance● CarePlan● Condition● Device● DiagnosticReport● DocumentReference● Goal● Immunization

● Medication● MedicationOrder● MedicationStatement● Observation● Patient● Procedure● Provenance

New ONC Rule: The following FHIR resources must be supported.

Page 16: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

● Set of health data classes and constituent data elements for nationwide, interoperable health information exchange

○ A USCDI “Data Class” is an aggregation of various Data Elements by a common theme or use case.

○ A USCDI “Data Element” is the most granular level at which a piece of data is represented in the USCDI for exchange.

U.S. Core Data for Interoperability (USCDI)

ONC: Office of National Coordinator for Health IT

Source: https://www.healthit.gov/isa/onc-standards

Page 17: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

Interoperability Paradigms

● REST

● Documents

● Messages

Page 18: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

REST

● Simple, out-of-the-box interoperability

● Leverage HTTP Methods: GET, POST, etc.

● Pre-defined operations:

○ Create, Read, Update, Delete

○ Also: History, Read Version, Search, Updates, Validate, Conformance & Transaction

Reference: http://hl7.org/fhir/http.html#capabilities

Page 19: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

FHIR REST URLsURI Description Example Operations

[base] Server URL http://fhir.com GET, POST

[base]/metadata Server’s capabilities http://fhir.com/metadata GET

[base]/[resource] Colleciton Manager http://fhir.com/Patient GET, POST

[base]/[type]/[id] URL for a resource http://fhir.com/Patient/23 GET, PUT, DELETE, PATCH

[base]/[type]/[id]/_history/[vid] Past version http://fhir.com/Patient/23/_history/2 GET

[base]/([type]/([id])/$[op_name] Operation (server action)

http://fhir.com/Patient/23/$everything GET, POST

Reference: http://hl7.org/fhir/http.html#capabilities

Page 20: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

Documents

● Similar to CDA®

● Collection of resources bound together

○ Root is a “Composition” resource

○ Just like CDA® header

● Sent as a Bundle (FHIR Resource) of type ‘document’

● Can be signed, authenticated, etc.

CDA®: Clinical Document Architecture

A coherent set of information that is a statement of healthcare information, including clinical observations & services.

Source: http://hl7.org/fhir/R4/documents.html

Page 21: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

Documents

Reference: http://hl7.org/fhir/documents.html

Bundle (type: document)

entry

Composition

Practitioner Encounter

Observation

MedicationRequest

subject encounter

MedicationStatement

signature

id meta datetext status type

section

title

Patient

author

confidentiality

Page 22: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

Messages

● Similar to v2 and v3 messaging● Also a collection of resources as a Bundle (FHIR

Resource)● Allows request/response behavior for both request and

response payloads● Event-driven

○ e.g. Send lab order, get back result

● Can be asynchronous

Source: https://www.hl7.org/fhir/messaging.html

Page 23: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

Bundle (type: message)

entry

MessageHeader

Messages

reason

Practitioner Observation

Device

id text

eventCoding

source

dataenterer

destination

Organization

sender

Practitioner

author

response

Patient

Page 24: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

Cloud Healthcare APICloud Healthcare API offers a robust, scalable infrastructure that integrates with various healthcare data sources using industry-standard protocols to bridge the gap to the Cloud. Currently, Cloud Healthcare API supports FHIR, HL7 v2 and DICOM.

Currently in Beta

Page 25: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

Data interoperability, your way

Import Export

API

Bulk

Streaming

Bulk

Create Get List Delete Search

Interact

De Identify

HL7v2 Config*

FHIR Config

DICOM Config

TextConfig Pub/Sub

Notify

Subscribe

Currently in Beta

Page 26: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

● Provide a FHIR (STU3) REST/gRPC API that supports the FHIR specification to a high level of conformance

● Persist FHIR resources in a managed store in the Cloud● Provide FHIR structural validation, referential integrity

and versioning● Batch Import/Export from Cloud Storage & BigQuery● De-identify FHIR resources● Provide publish/subscribe integration with applications,

including FHIR subscriptions● Implement a set of security roles and permissions to

control what can be done with the API● Works with Apigee

What a Cloud FHIR store does today

Page 27: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

Google Cloud services meet fundamental security and privacy

protection requirements for protected health information.

https://cloud.google.com/security/compliance/hipaa

HIPAA-compliant as of June 2018: Gmail, Calendar, Drive (including Docs, Sheets, Slides, and Forms), Apps Script, Keep, Sites, Jamboard, Hangouts (chat messaging feature only), Hangouts Chat, Hangouts Meet, Google Cloud Search, Cloud Identity Management, Google Groups, Google Tasks and Vault (if applicable). App Engine, BigQuery, Bigtable, Data Loss Prevention API, Dataflow, Dataproc, Datastore, Datalab, Deployment Manager, Identity-Aware Proxy, IoT Core, Key Management Service, Load Balancing, Machine Learning Engine, Natural Language API, Pub/Sub, Resource Manager, Source Repositories, Spanner, Speech API, Stackdriver Debugger, Stackdriver Error Reporting, Stackdriver Logging, Stackdriver Trace, Storage, SQL for MySQL, SQL for PostgreSQL, Translation API, Video Intelligence API, Vision API, VPN, Compute Engine, Container Registry, Genomics, Kubernetes Engine, Transfer Appliance Service.

Supports healthcare compliance objectives

Page 28: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

02SMART on FHIR

Page 29: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

● Open standards to integrate third-party Apps and EHRs/Patient Portal○ OpenID Connect and OAuth2 based

● Reusable Apps○ Write once run with any EHRs!○ Run in different contexts (EHRs and Patient Portals)

● Secure and seamless access to EHR data in Apps

SMARTSubstitutable Medical Applications and Reusable Technologies

Page 30: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

● Substitutable Medical Applications and Reusable Technologies

SMART standardizes healthcare applications

Healthcare Applications SMART Clinical

Systems

UX IntegrationSingle Sign OnAuthorization

Clinical Data and Context

EHRsPatient Portals

Data Warehouses

Page 31: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

Standalone launch

App EHR1a. Data access requested (scopes)

2a. Authorization token for data access, user identity, context (current patient, encounter), UI related information

3a. FHIR API request with OAuth2 Access token

3b. FHIR resources

2. Authorize

Access

3. Display Data

1. Launch an App

Page 32: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

EHR/Patient Portal launch

App EHR

1b. Data access requested (scopes)

2a. Authorization token for data access, user identity, context (current patient, encounter), UI related information

3a. FHIR API request with OAuth2 Access token

3b. FHIR resources

1. Launch an App from the

registered Apps

3. Display Data

1a. Launch information (server URL, token)

2. Authorize Access

Page 33: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

SMART Authorization Scopes

● Scope conveys what access an app needs patient/Immunization.read

Access type FHIR Resource Permission

App needs read access to the Immunization information of a patient in the current context

Examples:

1. patient/Patient.read - App needs read access to the demographics of a patient in the context2. patient/*.read - App needs access to read all resources of the patient in current context3. user/Patient.write - App needs access to update Patient demographics of all the patients4. user/*.read - App needs access to read all resources of all the patients

Page 34: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

SMART App Gallery

https://smarthealthit.org

https://apporchard.epic.com/Gallery

https://code.cerner.com/apps

Page 36: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

03Now, let’s see Google CHC APIs in action...

Page 37: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

Cloud Healthcare Dataset and FHIR Store

GCP Project = smart-on- ir

Location = us-central1

Dataset = hc-ds Dataset

FHIR store = fs1

FHIR store

FHIR store

Patient

Encounter

Observation

Page 38: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

Access CHC FHIR APIs directly - Query Patient

1. Get all Patients ----> GET /Patient

2. Search Patients ----> GET /Patient?given:contains=Marta&address-city=Wilmington

3. Get Patient demographics ----> GET /Patient/{id}

4. Get Patients’ Medical History ----> GET /Patient/{id}/$everything

CHC FHIR APIsPostman/cURL

App Developer

Page 39: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

{

"resourceType": "Consent", "status": "draft",

"id": "bdcda431-be0b-4ca9-82d5-a262107ba463", "meta": { "lastUpdated": "2019-10-08T21:44:07.131057+00:00", "versionId": "MTU3MDU3MTA0NzEzMTA1NzAwMA" }, "text": { "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"> <p><b>Generated Narrative with Details</b></p>....</div>", "status": "generated" } "organization": [ { "reference":" Organization/b1ddf812-1fdd-3adf-b1d5-32cc8bd07ebb" } ], "patient": { "reference": "Patient/6285e6e0-74a5-423c-bb2e-627b9cd8f293" }, }

CRUD Consent

1. Get all Consents ----> GET /Consent

2. Create a Consent ----> POST /Consent

3. Update a Consent ----> PUT /Consent

4. Delete a Consent ----> DELETE /Consent/{id}

Consent Organization

Patient

organization

patient

Page 40: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

04Hands-on Lab

Page 41: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

How to access the lab?

● https://explore.qwiklabs.com/

● Create a New Account using your @stanford.edu email

● Login using your @stanford.edu email and password

● Select the Course: CS 342: Building for Digital Health (MED 253)

● Lab: Introduction to Healthcare FHIR APIs

NOTE: The lab will not be available after Tuesday, 19th November

Page 43: Introduction to FHIR & SMART · FHIR serves two technical roles in healthcare IT FHIR as an API specification FHIR as a data model

Thank you