20160817 - fhir hct workshopstandards.ehealthinnovation.org/files/fhir-overview.pdf · • fhir is...

150
FHIR Introduction Centre for Global eHealth Innovation August 17, 2016

Upload: others

Post on 31-May-2020

2 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

FHIR IntroductionCentreforGlobaleHealthInnovation

August17,2016

Page 2: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

License» These slides are licensed for use under the Creative

Commons “Attribution-ShareAlike 4.0 International” License

» Acknowledgements: Grahame Grieve, Lloyd McKenzie, Ewout Kramer, David Hay, Josh Mandel, Eric Haas, Rik Smithies

Page 3: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

AgendaEHR Standards The Data Model The RESTful API Open Source Tools FHIR Servers / Who’s using FHIR Profiling and Extensions Advanced Features Timelines and Process Hands On!

Page 4: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

• Worked with health data before? • Worked with HL7 before? • Developer? Languages?

Show of Hands

Page 5: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

• Primary focus on what is FHIR, how do you use the resources, how can it be applied to CGM data

• How to create a smartphone app with a FHIR service

• Consent mangement • Patient resource vs person resource • Resource extensions • New resource definition • Review resources team came up with &

validate it against FHIR

What We Heard you Wanted

Page 6: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

• Ask questions any time! • Lots of learning, then some time to play • We can adjust based on what you find

interesting

Structure for Today

Page 7: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

• Interoperability: It’s all about the people • Complexity: You can move it around, or

externalize it, but you can’t make it go away

• Healthcare Software: Cheap, Flexible, Interoperable (pick 2)

(courtesy Grahame Grieve)

3 Laws of Healthcare Interoperability

Page 8: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

• Data Exchange (how to we move data around)

• Vocabulary (how do we codify things)

• Imaging (pictures)

• Profiling (constraining things for use)

The Fascinating World of EHR Standards

Page 9: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

• Lab value: “Hemoglobin count of 6.5 grams per deci-litre”

• X-Ray: “Humerus”

Vocabulary Standards

Page 10: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Vocabulary Standards

• Lab value: “Hemoglobin count of 6.5 grams per deci-litre”

• X-Ray: “Humerus”

Page 11: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

• LOINC codes represent the “Question” for a test/measurement • E.g. “4548-4” = “Hemoglobin A1c/Hemoglobin.total in Blood”

• Adoption is growing worldwide • Free to access, free to use

• https://search.loinc.org/

LOINC (Logical Identifiers Names and Codes)

Page 12: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

• SNOMED-CT models almost everything in healthcare • Body parts, devices, conditions,

symptoms, locations, services, etc etc etc etc etc……

• Multi-axial subtype hierarchy

SNOMED-CT (Systematized Nomenclature of Medicine--Clinical Terms)

Page 13: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

• http://browser.ihtsdotools.org

SNOMED-CT (Systematized Nomenclature of Medicine--Clinical Terms)

Humerus

Bonestructureofclavicleand/orscapulaand/orhumerus Structureoflongbone Upperarmpart

Bonestructureofdistalhumerus

Bonestructureofproximalhumerus

Structureofbonemarrowofhumerus

Humérus(fr)Bonestructureof

humerus

118495001

85050009

118495001 709294008

712956008119524001118495001

Page 14: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

• Nomenclature for units • E.g. “kg”, “Cel”, “mm[Hg]”

• http://unitsofmeasure.org/

UCUM (Unified Codes of Units and Measures)

Page 15: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

• DICOM is all things imaging • Storage data format • Transmission protocol • Query specification

Imaging: DICOM (Digital Imaging and Communications in Medicine)

Page 16: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

• A number of organizations are working on profiling existing standards for specific uses • IHE (Integrating the Healthcare

Enterprise) • Continua Health Alliance • SMART (more on this later)

Profiling Organizations

Page 17: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

• HL7 Version 2 is the dominant standard today for transactional messaging

Data Exchange Standards: A Backgrounder

Page 18: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

• Messages are defined as “pipe-and-hat” delimited lines of text

• Format is archaic, but support in tools and applications is very good

HL7 Version 2

Page 19: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

• HL7 Version 3 – The “modeller’s paradise”

HL7 Version 3

Page 20: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

HL7 Version 3

Page 21: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Healthcare Messaging Standards The Sorry State in 2010• HL7 v2 is everywhere - it’s old but it works

• Exchanges within organizations • Exchanges between organizations

• HL7 v3 has seen limited uptake - not sustainable

• Mostly large government sponsored projects

• Apps are becoming a new reality

• No suitable standards exist

Page 22: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Fast Healthcare Interoperability Resources

Page 23: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

The Name

23

F

H

I

R

Fast (to model and to implement)

Health (why we’re here)

Interoperability (ditto)

Resources (more on this to come)

Page 24: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

What else is FHIR?

24

• A terrible source of puns • Spark • Sprinkler • WildFHIR • FHIRWorks • FHIRMen • etc…..

• Don’t try to think of new ones. You are too late.

Page 25: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Complexity Model

25

Complexity

(Log)

SemanticDepthText

HTTP/HTML

XML

SOAP

HL7v2

CDA

openEHR

HL7v3

FHIR?

Page 26: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

The FHIR Manifesto

26

• Focus on Implementers • Target support for common scenarios • Leverage cross-industry web technologies • Support human readability as base level of

interoperability • Make content freely available • Support multiple paradigms & architectures

http://wiki.hl7.org/index.php?title=Fundamental_Principles_of_FHIR

Page 27: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Manifesto: Implementer Focus

27

• Specification is written for one target audience: Implementors (developers! developers! developers!)

• Every detail in the specification is tested at connectathons

Page 28: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Manifesto: Common Scenarios

28

• Heavy emphasis on the 80:20 rule: • Cover only things that 80% will need • Enable and encourage extensions for remainder

Page 29: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Manifesto: Be Open

29

• FHIR itself is licensed under the Creative Commons "No Rights Reserved" License (CC0)

• FHIR tutorial material is generally also CC0 • Samples are also CC0 • Software is generally MIT or Apache 2

Page 30: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Manifesto: Support Multiple Paradigms and Architectures

30

• FHIR can be a document format, and a point-to-point messaging architecture

• For most of this session, we’ll assume that it’s a REST repository

Page 31: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

What is FHIR?

31

• FHIR is an attempt to define a free and open data API for health data, based on modern techniques

• FHIR is essentially four things:

• A robust data model for describing health and administrative data

• A RESTful API for interacting with that data using either JSON or XML

• A set of open source tools to implement and test FHIR applications

• A set of FHIR Servers that you can interact with (both public and private)

Page 32: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

The Data ModelRepresentingHealthDatainFHIR

The RESTful API

FHIR ServersOpen Source Tools

Page 33: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

The Data Model

33

• FHIR defines a set of roughly 150 resources • These are the building blocks of the specification,

examples include: • Patient (the person who receives healthcare) • Encounter (a doctor’s appointment or hospital stay) • Observation (e.g. a device reading, or lab value) • DiagnosticReport (e.g. a whole lab or Xray report) • MedicationPrescription (Rx for meds)

Page 34: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

What’s a Resource?

34

Examples • Administrative

• Patient, Practitioner, Location, Organization

• Clinical • Allergy,

Observation, Order, Diagnostic Report

Non-examples • Gender

• too small • Electronic Health

Record • too big

• Blood Pressure • too specific

• Intervention • too broad

Page 35: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

The Balance for Granularity

35

• Observation (basically a key-value pair) is a generic data model that can hold lots of things • Lab result - e.g. Hb 7.2 g/dL at 15:20 • Step count - e.g. 1007 steps between 9:00 and

10:00 • Blood Pressure - e.g. 120/77 mmHg taken on

the left arm at rest at 11:05

Page 36: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

The Web of Resources

36

DiagnosticReportCompleteBloodCount

forJohnSmith

Patient

Encounter

Observation

Observation

Observation

Observation

Aresourceisacontainerof

informationwhichrepresentssomething

intherealworld

Subject

Subject

Subject

Encounter

Result

Page 37: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

The Model

37

• FHIR’s model is available online

Developerfriendly

documentation

Page 38: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Demo Time

38

• FHIR’s model is available online • http://hl7.org/fhir/

Page 39: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Data Types: Primitives

39

string boolean date decimal integer uri base64

dateTime instant

markdown

Patient is awake true 2016-02-19 12.347000 500 http://snomed.info/sct rwr39o9h=

2015-01-26T15:33:13-05:00 2015-01-26T15:33:13.000-05:00

**woohoo**

Page 40: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Data Types: Primitives

40

string boolean date decimal integer uri

dateTime instant

markdown

Patient is awake true 2016-02-19 12.347000 500 http://snomed.info/sct

2015-01-26T15:33:13-05:00 2015-01-26T15:33:13.000-05:00

**woohoo**

ISO8601-Timezoneismandatory

Page 41: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Data Types: Primitives

41

string boolean date decimal integer uri

dateTime instant

markdown

Patient is awake true 2016-02-19 12.347000 500 http://snomed.info/sct

2015-01-26T15:33:13-05:00 2015-01-26T15:33:13.000-05:00

**woohoo**

HumanTimes,variableprecision

SystemTimes,fixedprecision

Page 42: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Data Types: Primitives

42

string boolean date decimal integer uri

dateTime instant

markdown

Patient is awake true 2016-02-19 12.347000 500 http://snomed.info/sct

2015-01-26T15:33:13-05:00 2015-01-26T15:33:13-05:00

**woohoo**

FHIRinternallyusesmarkdowntodefineitself…willtheEHRdosotoo?

Page 43: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Data Types: Composites

43

Page 44: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Data Types: Composites

44

Page 45: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Other Model Concepts: Identifiers

45

• FHIR resources are scoped around identifiable things (Patients, Orders, Locations, etc.)

• Identifiers consist of a System and an Identifier • For example:

• System: http://uhn.ca/ns/mrn • Identifier: 7000135

• Other systems: • http://hl7.org/fhir/sid/us-ssn

(US SSN) • urn:oid:2.16.840.1.113883.4.3.1

(Alabama Driver’s License)

Page 46: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Other Model Concepts: Identifiers

46

• HL7 maintains a standard list of identifier systems (but it is very US-centric) • http://hl7.org/fhir/2016Sep/identifier-

registry.html

• It is very common for organizations to define their own identifier systems, e.g. • http://uhn.ca/ns/mrn

Page 47: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Other Model Concepts: Coded Values

47

• Many things are drawn from a set of allowable coded values

• A coded value consists of a Code System and a Code, and optionally a Display Text

• For example: • System: http://snomed.info/sct • Code: 267038008 • Display: Edema (finding)

Page 48: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Other Model Concepts: Coded Values

48

• HL7 also maintains a list of standard code systems: • http://hl7.org/fhir/2016Sep/terminologies-

systems.html

Page 49: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Parts of a Resource

Resource

Metadata

Narrative

Body

Extensions

Page 50: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Parts of a Resource

Resource

Metadata

Narrative

Body

Extensions

ResourceIDResourceVersionTagsProfiles

*moreonthesethingslater

Page 51: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Parts of a Resource

Resource

Metadata

Narrative

Body

ExtensionsAnyinformationthatdidn’tfitinthe80%

Page 52: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Parts of a Resource

Resource

Metadata

Narrative

Body

Extensions Human-readableversionofthecontent(optionalbutencouraged)

CDAhastaughtusthatthisisveryimportant

Page 53: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Parts of a Resource

Resource

Metadata

Narrative

Body

Extensions

Theactualdata

Page 54: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

FHIR Wire Format• FHIR defines a wire format for serializing

resources in both XML and JSON • RDF is proposed as a 3rd wire format

Page 55: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Let’s Make it Real in JSON{ "resourceType":"Observation", "id":"287", "meta":{ "versionId":"2" }, "extension":[{ "url":"http://uhn.ca/fhir/readings#context", "valueCode":"BREAKFAST" }], "text":{ "div":"<div>Fasting glucose of <b>11.2 mg/dl</b></div>" }, "status":"final", "code":{ "coding":[{ "system":"http://loinc.org", "code":"41604-0", "display":"Fasting glucose [Mass/volume] in Capillary blood by Glucometer" }] }, "subject":{ "reference":"Patient/1" }, "effectiveDateTime":"2015-02-12T09:30:00-05:00", "valueQuantity":{ "value":11.2, "system":"http://unitsofmeasure.org", "code":"mg/dL" }, "device":{ "reference":"Device/23324" }

Page 56: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Let’s Make it Real in JSON{ "resourceType":"Observation", "id":"287", "meta":{ "versionId":"2" }, "extension":[{ "url":"http://uhn.ca/fhir/readings#context", "valueCode":"BREAKFAST" }], "text":{ "div":"<div>Fasting glucose of <b>11.2 mg/dl</b></div>" }, "status":"final", "code":{ "coding":[{ "system":"http://loinc.org", "code":"41604-0", "display":"Fasting glucose [Mass/volume] in Capillary blood by Glucometer" }] }, "subject":{ "reference":"Patient/1" }, "effectiveDateTime":"2015-02-12T09:30:00-05:00", "valueQuantity":{ "value":11.2, "system":"http://unitsofmeasure.org", "code":"mg/dL" }, "device":{ "reference":"Device/23324" }

Metadata(ID&Version)

Extensions

Humanreadablenarrative

Body

Page 57: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Let’s Make it Real in XML<Observation xmlns="http://hl7.org/fhir"> <id value="287"/> <meta> <versionId value="2"/> </meta> <text> <div xmlns="http://www.w3.org/1999/xhtml">Fasting glucose of <b>11.2 mg/dl</b> </div> </text> <extension url="http://uhn.ca/fhir/readings#context"> <valueCode value="BREAKFAST"/> </extension> <status value="final"/> <code> <coding> <system value="http://loinc.org"/> <code value="41604-0"/> <display value="Fasting glucose [Mass/volume] in Capillary blood by Glucometer"/> </coding> </code> <subject> <reference value="Patient/1"/> </subject> <effectiveDateTime value="2015-02-12T09:30:00-05:00"/> <valueQuantity> <value value="11.2"/> <system value="http://unitsofmeasure.org"/> <code value="mg/dL"/> </valueQuantity> <device> <reference value="Device/23324"/> </device> </Observation>

Metadata(ID&Version)

Extensions

Humanreadablenarrative

Body

Page 58: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Instantiating the Model: Primitive Types

{ "resourceType":"Observation", "id":"287", "meta":{ "versionId":"2" }, "extension":[{ "url":"http://uhn.ca/fhir/readings#context", "valueCode":"BREAKFAST" }], "text":{ "div":"<div>Fasting glucose of <b>11.2 mg/dl</b></div>" }, "status":"final", "code":{ "coding":[{ "system":"http://loinc.org", "code":"41604-0", "display":"Fasting glucose [Mass/volume] in Capillary blood by Glucometer" }] }, "subject":{ "reference":"Patient/1" }, "effectiveDateTime":"2015-02-12T09:30:00-05:00", "valueQuantity":{ "value":11.2, "system":"http://unitsofmeasure.org", "code":"mg/dL" }, "device":{ "reference":"Device/23324" } }

Page 59: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Instantiating the Model: Composite Types

{ "resourceType":"Observation", "id":"287", "meta":{ "versionId":"2" }, "extension":[{ "url":"http://uhn.ca/fhir/readings#context", "valueCode":"BREAKFAST" }], "text":{ "div":"<div>Fasting glucose of <b>11.2 mg/dl</b></div>" }, "status":"final", "code":{ "coding":[{ "system":"http://loinc.org", "code":"41604-0", "display":"Fasting glucose [Mass/volume] in Capillary blood by Glucometer" }] }, "subject":{ "reference":"Patient/1" }, "effectiveDateTime":"2015-02-12T09:30:00-05:00", "valueQuantity":{ "value":11.2, "system":"http://unitsofmeasure.org", "code":"mg/dL" }, "device":{ "reference":"Device/23324" } }

Page 60: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Instantiating the Model: References

{ "resourceType":"Observation", "id":"287", "meta":{ "versionId":"2" }, "extension":[{ "url":"http://uhn.ca/fhir/readings#context", "valueCode":"BREAKFAST" }], "text":{ "div":"<div>Fasting glucose of <b>11.2 mg/dl</b></div>" }, "status":"final", "code":{ "coding":[{ "system":"http://loinc.org", "code":"41604-0", "display":"Fasting glucose [Mass/volume] in Capillary blood by Glucometer" }] }, "subject":{ "reference":"Patient/1" }, "effectiveDateTime":"2015-02-12T09:30:00-05:00", "valueQuantity":{ "value":11.2, "system":"http://unitsofmeasure.org", "code":"mg/dL" }, "device":{ "reference":"Device/23324" } }

Page 61: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Instantiating the Model: Cardinalities

{ "resourceType":"Observation", "id":"287", "meta":{ "versionId":"2" }, "extension":[{ "url":"http://uhn.ca/fhir/readings#context", "valueCode":"BREAKFAST" }], "text":{ "div":"<div>Fasting glucose of <b>11.2 mg/dl</b></div>" }, "status":"final", "code":{ "coding":[{ "system":"http://loinc.org", "code":"41604-0", "display":"Fasting glucose [Mass/volume] in Capillary blood by Glucometer" }] }, "subject":{ "reference":"Patient/1" }, "effectiveDateTime":"2015-02-12T09:30:00-05:00", "valueQuantity":{ "value":11.2, "system":"http://unitsofmeasure.org", "code":"mg/dL" }, "device":{ "reference":"Device/23324" } }

Page 62: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Instantiating the Model: Invariants

Page 63: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

The Data Model

ExchangingHealthDatainFHIRThe RESTful API

FHIR ServersOpen Source Tools

Page 64: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

FHIR Paradigms• FHIR aims to support these four kinds of

exchange

REST Documents

Messages Services

Ourmaininteresttoday

Page 65: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

REST• FHIR has a very powerful API for interacting with

resources based on the principles of REST (Representational State Transfer)

• Make “Resources” URI addressable • Use HTTP to do CRUD operations, and much more • Interactions in FHIR are described in terms of two

roles: Client and Server

Page 66: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

REST for Diabetes Devices: Example Use Cases• The Continua Model

• The Health Management App Model

Page 67: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

GlucoseProfileEnd-To-EndDemo

Page 68: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

{ "resourceType": "Observation", "status": "final", "code": { "coding": [ { "code": "2339-01" } ] }, "subject": { “reference": “Patient/PATIENTA" }, "effectivePeriod": { "start": "2016-08-17T07:36:29-07:00", "end": "2016-08-17T07:36:33-07:00" }, "valueSampledData": { "origin": { "value": 0, "unit": "mg/dL", "system": "http://loinc.org" }, "period": 1000, "data": "260 260 264 264 266 266 270 270 272 272 " } }

GlucoseProfileEnd-To-EndDemo

Page 69: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Resource Identities• Every FHIR resource has a unique identity, which

is in fact a URL

http://fhirtest.uhn.ca/baseDstu2/Patient/1

FHIRServerEndpoint

ResourceType

ResourceID

Page 70: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

CRUD: CreatePOST http://fhirtest.uhn.ca/baseDstu2/Patient Content-Type: application/json+fhir

{“resourceType”:”Patient” …… }

Page 71: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

CRUD: Create

201 Created

Content-Location: http://fhirtest.uhn.ca/baseDstu2/Patient/1841460/_history/1

POST http://fhirtest.uhn.ca/baseDstu2/Patient Content-Type: application/json+fhir

{“resourceType”:”Patient” …… }

Page 72: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

201 Created

Content-Location: http://fhirtest.uhn.ca/baseDstu2/Patient/1841460/_history/1

ID Version

• Two URLs are implied here: versionless and version specific

• The server maintains a complete version history (more in this in a minute)

Page 73: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

CRUD: Read

GET http://fhirtest.uhn.ca/baseDstu2/Patient/1

Page 74: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

CRUD: Create

201 Created

Content-Location: http://fhirtest.uhn.ca/baseDstu2/Patient/1841460/_history/1

Content-Type: application/fhir+json; charset=utf-8

{

“resourceType”:”OperationOurcome”

"issue": [{

"severity": "error",

"code": "code-invalid",

"details": {"text": "The code \"W\" is not known and not legal in this context" }]

}

• The server might also return a special OperationOutcome resource with status information

Page 75: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

CRUD: Read

GET http://fhirtest.uhn.ca/baseDstu2/Patient/1

200 OK Content-Type: application/json+fhir { “resourceType”: “Patient” …………. }

Page 76: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

CRUD: Read

• Demo time

GET http://fhirtest.uhn.ca/baseDstu2/Patient/98188

Page 77: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

CRUD: Read

GET http://fhirtest.uhn.ca/baseDstu2/Patient/1?_format=xml

200 OK Content-Type: application/xml+fhir <Patient …………></Patient>

Page 78: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

CRUD: UpdatePUT http://fhirtest.uhn.ca/baseDstu2/Patient Content-Type: application/json+fhir

{“resourceType”:”Patient” …… }

Page 79: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

CRUD: Update

200 OK

Content-Location: http://fhirtest.uhn.ca/baseDstu2/Patient/1841460/_history/2

PUT http://fhirtest.uhn.ca/baseDstu2/Patient/1 Content-Type: application/json+fhir

{“resourceType”:”Patient” …… }

Page 80: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

CRUD: Delete

200 OK

DELETE http://fhirtest.uhn.ca/baseDstu2/Patient/1841460

Page 81: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Try it Out» Take a resource: https://goo.gl/LclVdM

» Upload it to: http://fhirtest.uhn.ca

Page 82: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

The Web of Health Resources• Reading one resource can reveal a resource with

links to other resources

name: “Chest XRay” status: “complete” subject: “Patient/242” author: “Practitioner/15”

http://acme.com/DiagnosticReport/62name: “Jim Tester” birthDate: “1999-01-02”

http://acme.com/Patient/242

name: “Dr Fakie Faker” address: “Better Health Clinic”

http://acme.com/Practitoner/15

Page 83: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

The Web of Health Resources• Reading one resource can reveal a resource with

links to other resources

name: “Chest XRay” status: “complete” subject: “Patient/242” author: “Practitioner/15”

http://acme.com/DiagnosticReport/62name: “Jim Tester” birthDate: “1999-01-02”

http://acme.com/Patient/242

name: “Dr Fakie Faker” address: “Better Health Clinic”

http://acme.com/Practitoner/15

RelativeLinks

Page 84: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

ServerA:acme.com

name: “Chest XRay” status: “complete” subject: “Patient/242” author: “http://foo.com/Practitioner/15”

http://acme.com/DiagnosticReport/62 name: “Jim Tester” birthDate: “1999-01-02”

http://acme.com/Patient/242

The Web of Health Resources• Resources can be distributes across servers too

ServerB:foo.com

name: “Dr Fakie Faker” address: “Better Health Clinic”

http://foo.com/Practitoner/15

Page 85: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Bundle

name: “John Smith” Patient/242

The Bundle Resource• Sometimes we need to package multiple

resources together

name: “Frank Higgins” Patient/105

name: “Ross Frinz” Patient/3998

name: “Some Name” Patient/15

Metadata• We use a special

container resource called “Bundle”

Page 86: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Resource History• FHIR servers keep track of the complete history of a given resource instance • This way, the client doesn’t need to keep track

Patient/1/_history/1family: ”Agnew” given: ”Jamesss” gender: ”female”

Patient/1/_history/2family: ”Agnew” given: ”James” gender: “male”

Patient/1/_history/3family: ”Agnew” given: ”James” gender: “male” address:”342 Evergreen T.”

Page 87: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

The History Operationhttp://fhirtest.uhn.ca/baseDstu2/Patient/1/_history

Patient/1/_history/1family: ”Agnew” given: ”Jamesss” gender: ”female”

Patient/1/_history/2family: ”Agnew” given: ”James” gender: “male”

Patient/1/_history/3family: ”Agnew” given: ”James” gender: “male” address:”342 Evergreen T.”

Bundle

Patient/1/_history/3Patient/1/_history/1Patient/1/_history/2Patient/1/_history/1Patient/1/_history/1Patient/1/_history/1

Patient/1/_history/1

Page 88: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

The History Operation: Paging

http://fhirtest.uhn.ca/baseDstu2/Patient/1/_history http://fhirtest.uhn.ca/baseDstu2/Patient/1/_history?_count=100

Bundle

Patient/1/_history/15Patient/1/_history/1Patient/1/_history/14Patient/1/_history/1Patient/1/_history/13Patient/1/_history/1

Metadata

Patient/1/_history/12Patient/1/_history/1Patient/1/_history/11Patient/1/_history/1

• What if there is lots of history?

LinktoNextPage

TopNanswers

IncreaseN

Page 89: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

The History Operation: Modes

http://fhirtest.uhn.ca/baseDstu2/_history

http://fhirtest.uhn.ca/baseDstu2/Patient/_history

http://fhirtest.uhn.ca/baseDstu2/Patient/1/_history

• There are 3 kinds of history

Server (all resources) Type (same type) Instance (same ID)

• History can be used as a simple polling mechanism for subscription

http://fhirtest.uhn.ca/baseDstu2/Patient/1/_history? _since=2011-02-23T15:00:01.0032-05:00

Page 90: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Searching for Resources• Searching is one of the most powerful parts of the

FHIR RESTful API • Searches take the form:

http://fhirtest.uhn.ca/baseDstu2/Patient?name=smith

FHIRServerEndpoint

ResourceType

SearchParams

Page 91: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Searching for Resources• A basic search: find everything

200 OK

<Bundle ……>

GET http://fhirtest.uhn.ca/baseDstu2/Patient

Page 92: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Searching for Resources• Every resource type defines a set of search

parameters • Let’s look at some search parameters:

http://hl7.org/fhir/patient.html

GET http://fhirtest.uhn.ca/baseDstu2/Patient?name=smith

SearchbyName

GET http://fhirtest.uhn.ca/baseDstu2/Patient?birthdate=2008-03-15

SearchbyBirthDate

GET http://fhirtest.uhn.ca/baseDstu2/Patient?gender=male

SearchbyGender

Page 93: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Search Parameter TypesFHIR defines eight search parameter types: String, Date, Number, Token, Quantity, URI, Reference, Composite

[base]/Patient?family=smithString

[base]/Patient?family:exact=SmithExact String

LeftmatchesSMITH,smith,smithson,etc.

MatchesSmith

[base]/Patient?family:contains=smithPartial String

MatchesSmith,Smithson,andNaismith

Page 94: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Search Parameter TypesFHIR defines eight search parameter types: String, Date, Number, Token, Quantity, URI, Reference, Composite

[base]/Patient?name=smith,jonesOR

[base]/Patient?family=smith,jones&given=johnAND

MatchessmithORjones

Matches“JohnSmith”or“JohnJones”

Page 95: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Search Parameter TypesFHIR defines eight search parameter types: String, Date, Number, Token, Quantity, URI, Reference, Composite

[base]/Patient?birthdate=2013-02-12Date

[base]/Patient?birthdate=2013Year

[base]/Patient?birthdate=ge2013&birthdate=lt2016Range

Qualifiers:gt,ge,lt,le

Matchbothtoformarange

Page 96: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Search Parameter TypesParameters can be combined

[base]/Patient?family=smith,jones&birthdate=2013-02-12

MatchessmithORjoneswithbirthdateFeb12,2013

Page 97: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Search Parameter TypesFHIR defines eight search parameter types: String, Date, Number, Token, Quantity, URI, Reference, Composite

[base]/Encounter?length=gt30Number

Matchesencounterslongerthan30days

Page 98: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Search Parameter TypesFHIR defines eight search parameter types: String, Date, Number, Token, Quantity, URI, Reference, Composite

[base]/Observation?code=http://loinc.org|41604-0Code

Matchesbloodglucoseobservations

[base]/Observation?code:in=http://snomed.info/sct|65533Code Hierarchy

Matchesanychildtypes

Page 99: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Search Parameter TypesFHIR defines eight search parameter types: String, Date, Number, Token, Quantity, URI, Reference, Composite

[base]/Observation?value-quantity=ge11|mg/dl|http://unitsofmeasure.org

With Units

Matches>=11mg/dl

[base]/Observation?value-quantity=ge11Any Units

Matches>=11(anyunits)

Page 100: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Search Parameter TypesFHIR defines eight search parameter types: String, Date, Number, Token, Quantity, URI, Reference, Composite

• URI and Composite are defined here: • http://hl7.org/fhir/search.html

Page 101: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Search Parameter TypesFHIR defines eight search parameter types: String, Date, Number, Token, Quantity, URI, Reference, Composite

[base]/Observation?subject=Patient/1Code

Matchesallobservationsforthegivenpatient

[base]/Observation?subject.family=smithChained

Matchesanyobservationsforapatientnamedsmith

Page 102: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Other Search FeaturesThese parameters apply to any resource

[base]/Observation?_lastUpdated=gt2016-02-22T15:22:00ZBy Last Updated Time Matchesallobservationsupdatedafterthedate

[base]/Observation?_sort:desc=birthdateSorting resultsSortstheresultsbybirthdate

[base]/Observation?_include=Observation:subjectInclude linked resources Alsoreturnpatients

[base]/Observation?_count=100CountAdjustpagesize

Page 103: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Taking Search for a Spin» Search for Systolic Blood Pressure

» http://fhirtest.uhn.ca/baseDstu2/Observation?code=http://loinc.org|8480-6

» http://goo.gl/4TWIlp

Page 104: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Keep Spinning» Search for Systolic Blood Pressure

» http://fhirtest.uhn.ca/baseDstu2/Observation?code=http://loinc.org|8480-6&value-quantity=gt120

Page 105: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

FHIR Servers

The Data Model

WheretogetdataandwhoisusingFHIR

The RESTful API

Open Source Tools

Page 106: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Open Source Tools» UHN maintains a free Java Implementation for both clients

and servers

http://jamesagnew.github.io/hapi-fhir/

» Libraries for C#, Swift, JavaScript, XML, Delphi are available under ‘code’

http://hl7-fhir.github.io/

Page 107: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

FHIR Servers

The Data Model

WheretogetdataandwhoisusingFHIR

The RESTful APIOpen Source Tools

Page 108: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Publicly Available Test Servers• Reading one resource can reveal a resource with

links to other resources

http://fhir-dev.healthintersections.com.au/open (HealthIntersections)

http://fhirtest.uhn.ca/baseDstu2 (UHN)

http://spark.furore.com/fhir (Furore)

Page 109: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Demo Time• http://fhirtest.uhn.ca

Page 110: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Host Your Own Copy» HAPI’s Command Line Tool can give you a local

version of the FHIR test server you can play with

http://jamesagnew.github.io/hapi-fhir/doc_cli.html

Page 111: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Securing FHIR: The Basics• TLS and HTTP Basic Auth is a simple but popular

approach for system level authentication

GET https://fhirtest.uhn.ca/baseDstu/Patient/1 Authorization: 329fe89hfew38fs3fs4fg3s8oh4sg=

Page 112: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Securing FHIR: The Basics• OAUTH2 is being explored for AuthZ/AuthN

IdentityServer

Page 113: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Why OAUTH?

Page 114: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

SMART Platforms / SMART-on-FHIR

• SMART is an industry-led project to combine OAUTH2 and FHIR

Page 115: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

The App Store for Health• Demo time:

• https://gallery.smarthealthit.org

Page 116: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Project Argonaut• Project Argonaut is a collaborative project to test/

validate the FHIR data model and SMART auth standards

• Over 70 participating organizations

Page 117: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Project Argonaut

Page 118: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

What Does The Future Hold?• Several implementations of these standards are

going live this year • Vendors are expected to start selling compliant

API modules this year

Page 119: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Profiling and ExtensionsAdoptingFHIRforaspecificuse

Page 120: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Curious Mathhttp://server.org/fhir/Patient/ 406 hits http://server.org/fhir/Patient?gender=M 234 hits http://server.org/fhir/Patient?gender=F 167 hits Total: 234 + 167 = 401

Page 121: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Curious Mathhttp://server.org/fhir/Patient/ 406 hits http://server.org/fhir/Patient?gender=M 234 hits http://server.org/fhir/Patient?gender=F 167 hits http://server.org/fhir/Patient?gender:missing=true 5 hits Total: 234 + 167 + 5 = 406

• This highlights an important point: very little is required in FHIR

Page 122: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Very Little is “Mandatory” in FHIR

Page 123: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Profiling and Extensions» FHIR uses resources to profile itself » FHIR defines 3 resources which can be used to profile

resources for a specific use » StructureDefinition: This defines a resource’s

structure (including extensions) » ValueSet: This defines a set of allowable codes » NamingSystem: This defines identifier namespaces » ImplementationGuide: Packages these together

Page 124: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

StructureDefinition» StructureDefinition is has two main purposes:

» It defines constraints on a given resource » e.g. “Patient.gender has cardinality 1..1”

» It defines extensions on a given resource » e.g. “Patient has eye colour extension”

Page 125: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

ValueSet• A ValueSet is a collection of codes allowed for a

specific purpose • Individual coded fields in FHIR’s model are “bound”

to a ValueSet

CodeSystem(e.g.SNOMEDCT,LOINC)

Code(e.g.12345=Hb)

ValueSet(e.g.Codesallowedinahaematologypanel)

Defines

Composes

OtherCodes

Composes

Page 126: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Value Set Bindings• Specific fields in FHIR are “bound” to a ValueSet

with a specific strength • Required: Use one of these codes • Extensible: Use one of these codes if one of

them applies, otherwise use whatever • Preferred: Try to use one of these codes • Example: Here’s some codes you could use

• Demo time: • http://hl7.org/fhir/patient.html

Page 127: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

NamingSystem» Defines an identifier scheme, e.g.

University Health Network MRNs could be defined as http://uhn.ca/ns/mrn

» This URL could resolve to a definition » In practice this is not used much.. yet…

Page 128: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

ImplementationGuide» A tool called Forge can be used to create a complete ImplementationGuide, including all required resources » http://fhir.furore.com/Forge

Page 129: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Company

FHIRSpecification

NationalAuthority

RegionalAuthority

FHIRSpecification

FHIRSpecification

Profiling FHIR: Top-Down or Bottom-Up

Page 130: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Profiling and Extensions» If nothing in FHIR meets your needs, you are still

allowed to create your own custom resource definitions

» This is discouraged because it is bad for interoperability! (but there are valid reasons for doing it)

Page 131: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Useful ResourcesAguidetosomemodelscoveredbyFHIR

Page 132: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

FHIR Data Models are Found Here

Page 133: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Person vs. Patient» Person is actually intended as a link between other

resources, as opposed to a standalone thing

Patient Practitioner

EncounterObservation

DiagnosticReport

Order

Schedule

Person

Page 134: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Security & Consent Management» Three resources are particularly interesting to

the security domain: » Consent - Tracking Privacy Consent

Directives » Provenance - Tracking the provenance of

other resources » AuditEvent - Tracking access/disclosure of

data by a system user

Page 135: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Some Advanced FeaturesWhat’sHappening

Page 136: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Transactions• Transactions use a bundle to package a

number of FHIR operations into a single atomic transaction as a Bundle

Bundle

PatientPatient/1/_history/1AllergyIntolerancePatient/1/_history/1AllergyIntolerancePatient/1/_history/1

Type:Transaction

OrderPatient/1/_history/1

Page 137: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Order/1Lab test order

Tagging• Resources have a set of tags which are maintained outside

of the standard versioning scheme • Often used for workflow

CreateResourceAddTag:NeedsReview

FindresourceswithTag:NeedsReviewDeleteTag:NeedsReviewAddTag:SignedOff

FindresourceswithTag:SignedOff

1

2

3

Page 138: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Order/73/_history/1Lab test order

Contention Aware Updating• ETAG (RFC7232) is used to prevent race

conditions

PUT Order/73 ETag: W/“1”

<Order …></Order>

PUT Order/73 ETag: W/“1”

<Order …></Order>

BA

Page 139: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Order/73/_history/1Lab test order

Contention Aware Updating• ETAG (RFC7232) is used to prevent race

conditions

200 OK

412 Precondition Failed

BA

Page 140: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

FHIR TimelinesWhat’sHappening

Page 141: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

FHIR

CDA

HL7Version3

HL7Version2

The Past

1980 1990 2000 2010 2016

Page 142: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

FHIR

CDA

HL7Version2

The Future

2010 2015 2020 beyond?

2010 2015 2020 beyond?

FHIRProjectStarted

DSTU1Released

DSTU2Released

DSTU3tobeReleased

Firstnormativeballot

Page 143: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Plans to go Normative» FHIR will probably not have any normative content until

2019 » This does not mean it’s not ready for use! » Lots of people are using FHIR today for production

applications

Page 144: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

FHIR ProcessWheredoesFHIRcomefrom?

Page 145: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

FHIR Process

PatientAdministration

OrdersandObservations

FinancialManagement

FHIRInfrastructure

ClinicalGenomics

etc…..

WorkGroups

Page 146: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

FHIR Process

PatientAdministration

OrdersandObservations

FinancialManagement

FHIRInfrastructure

ClinicalGenomics

etc…..

WorkGroups..defineresources

ResourceDefinitions

ResourceDefinitions

Page 147: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

FHIR Process

PatientAdministration

OrdersandObservations

FinancialManagement

FHIRInfrastructure

ClinicalGenomics

etc…..

WorkGroups..defineresources..whichgettested

ResourceDefinitions

Conn

ectathon

ResourceDefinitions

Ballot

Page 148: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

FHIR Process

PatientAdministration

OrdersandObservations

FinancialManagement

FHIRInfrastructure

ClinicalGenomics

etc…..

WorkGroups..defineresources..whichgettested..andballotted

ResourceDefinitions

Conn

ectathon

ResourceDefinitions

Ballot

Page 149: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

FHIR Process

PatientAdministration

OrdersandObservations

FinancialManagement

FHIRInfrastructure

ClinicalGenomics

etc…..

WorkGroups..defineresources..whichgettested..andballotted

ResourceDefinitions

Conn

ectathon

ResourceDefinitions

Ballot

Page 150: 20160817 - FHIR HCT Workshopstandards.ehealthinnovation.org/files/FHIR-Overview.pdf · • FHIR is an attempt to define a free and open data API for health data, based on modern techniques

Questions?

150