fast health interoperabilty resources fhir - hisa.org.au · fast health interoperabilty resources...
Post on 21-May-2018
215 Views
Preview:
TRANSCRIPT
Fast Health Interoperabilty Resources – FHIR Michael Lawley | Group Leader, Health InformaticsJim Steel | Research Engineer
11 October 2017
THE AUSTRALIAN E-HEALTH RESEARCH CENTRE | HEALTH & BIOSECURITY
The Australian e-Health Research CentrePartnered for success
Australia’s leading national eHealth research centre
• 80 staff, students, visiting researchers
• Embedded in RBWH
Funding from CSIRO
Queensland Health
Engagement partners
Success built on partnering -Government, clinicians, industry
Fast Health Interoperability Resources | Page 2 |
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
The acronym
F – Fast (to design & to implement)
Relative – No technology can make integration as
fast as we’d like
H – Health
That’s why we’re here
I – Interoperable
Ditto
R – Resources
Building blocks – more on these to follow3
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
The Need
Has been a need to share healthcare
information electronically for a long time
HL7 v2 is nearly 30 years old
Increasing pressure to broaden scope of
sharing
Across organizations, disciplines, even borders
Mobile & cloud-based applications
Faster – integration in days or weeks, not months
or years4
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Interchange standards -Complexity
Difficu
lty (
log
)
Semantic Depth
HTTP /
HTML
XML
WS
HL7
v2
CDA
HL7
V3
openEH
R
How?
Text
Fast Health
Interoperability Resources
5
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Platform for Interoperability
Build capability for all systems
Only fix behaviour
When everyone agrees to it
When it creates capability or simplicity
Push constraints on behaviour to
“Implementation Guides”
FHIR is loose, but capable
Implementation space will be fractal
6
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
FHIR – Key differences
Focus on Implementers
Target support for common scenarios
Leverage cross-industry web technologies
Require human readability as base level of
interoperability
Make content freely available
Support multiple paradigms & architectures
Demonstrate best practice governance7
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Implementer Focus
Specification is written for one target audience:
implementers (that’s not just programmers)
Rationale, modeling approaches, etc. kept elsewhere
Multiple reference implementations from day 1
Publicly available test servers
Starter APIs published with spec
C#, Java, Pascal, Swift, more coming
Connectathons to verify specification approaches
Instances you can read and understand
Lots of examples (and they’re valid too)
using HL7.Fhir.Instance.Model;using HL7.Fhir.Instance.Parsers;using HL7.Fhir.Instance.Support;
XmlReader xr = XmlReader.Create(new StreamRead
IFhirReader r = new XmlFhirReader
// JsonTextReader jr = new JsonTe// new StreamRead// IFhirReader r = new JsonFhirRe
ErrorList errors = new ErrorList(LabReport rep = (LabReport)ResourAssert.IsTrue(errors.Count() == 0
8
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Support “Common” Scenarios
Inclusion of content in core specification is
based on “80%” rule
Only include data elements we are confident that
most (~80%) of normal implementations using that
resource will make use of
Other content in extensions (more on this later)
Easy to say, governance challenge to achieve
Resources are simple and easy to
understand & use
9
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Example – ISO AD type
isNotOrdered, updateMode, flavorId, nullFlavor, controlActroot & extension, validTime low and high, useable period (GTS – no room on the slide), use home, primary home, vacation home, workplace, direct, public, bad,
physical, postal, temporary, alphabetic, ideographic, syllabic, search, soundex, phonetic
0..* parts, each with: value, code, code system, code system name, code system version,
language, type: address line, additional locator, unit identifier, unit designator,
delivery address line, delivery installation type, delivery installation area, delivery installation qualifier, delivery mode, delivery mode identifier, street address line, building number, building number numeric, building number suffix, street name, street name base, street type, direction, intersection, care of, census tract, country, county or parish, municipality, delimiter, post box, precinct, state or province, postal code, delivery point identifier
10
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Example – FHIR Address
isNotOrdered, updateMode, flavorId, nullFlavor, controlActroot & extension, validTime low and high, useable period(low, high) (GTS – no room on the slide), use home, primary home, vacation home, workplace, direct, public, bad,
physical, postal, temporary, alphabetic, ideographic, syllabic, search, soundex, phonetic, old
0..* parts, each with:text value, code, code system, code system name, code system version,
language, type: address line, additional locator, unit identifier, unit designator,
delivery address line, delivery installation type, delivery installation area, delivery installation qualifier, delivery mode, delivery mode identifier, street address line, building number, building number numeric, building number suffix, street name, street name base, street type, direction, intersection, care of, census tract, country, county or parish, municipalitycity, delimiter, post box, precinct, state or province, postal codezip, delivery point identifier
11
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Won’t extensions break interoperability?
The 80% + narrative helps provide “base”
interoperability
For “robust” interoperability
Profile – constrains structure
Conformance – constrains behavior
Needed to claim “I’m FHIR conformant”
12
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
FHIR selling points
One schema world-wide
Reduces silos, larger community, better open source &
tools, can leverage profiles, data from more places
Easy to use
Developers up and running quickly, low learning curve
Extensible
Easy to add new capability, don’t need to move
in lock-step with communication partners
Flexible
Multiple architectures, component based13
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
+ =
FHIR solutions
Resources Extensions Solution
14
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Resources
“Resources” are:
Small logically discrete units of exchange
Defined behaviour and meaning
Known identity / location
Smallest unit of transaction
“of interest” to healthcare
V2: Sort of like Segments
V3: Sort of like CMETs15
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
What’s a Resource?
Examples
Administrative
Patient, Practitioner,
Organization, Location,
Coverage, Invoice
Clinical Concepts
Allergy, Condition, Family
History, Care Plan
Infrastructure
Document, Message, Profile,
Capability Statement
Non-examples
Gender
Too small
Electronic Health Record
Too big
Blood Pressure
Too specific
Intervention
Too broad
100-150 total - ever
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Why resources?
Increases re-use
Can use the same resource structures (and
profiles on them) in many solutions
Lighter-weight communication
Can point to resources “by reference” rather than
sending all data
Aligns well with how data is stored
17
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
What’s in a resource definition?
Each resource defines:
What elements are part of “core”
Names
Definitions
Cardinality
Code lists
Mappings (to RIM, v2 and other specs)
Constraints
All in a computable form
Create spec, schemas, reference implementations18
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Framework
Common features of all resources:
A URL that identifies it
Common metadata
A human-readable XHTML summary
A set of defined common data elements
An extensibility framework
Represented as either XML or JSON19
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Human Readable
Summary
Standard Data
Content: MRN
Name
Gender
Date of Birth
Provider
Extension with
reference to its definition
Identity & Metadata
20
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
STU3 Resource List
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Web of resources
Lab
Report
Related
Person
Patient
Practitioner
Location
22
"resourceType": "Patient",
"id" : "23434",
"meta" :
"versionId" : "12",
"lastUpdated" : "2014-08-18T15:43:30Z"
"text":
"status": "generated",
"div": "<!-- Snipped for Brevity -->"
,
"extension": [
"url": "http://example.org/consent#trials",
"valueCode": "renal"
],
"identifier": [
"use": "usual",
"label": "MRN",
"system": "http://www.goodhealth.org/identifiers/mrn",
"value": "123456"
],
"name": [
"family": [
"Levin"
],
"given": [
"Henry"
],
"suffix": [
"The 7th"
]
],
"gender":
"text": "Male"
,
"birthDate": "1932-09-24",
"active": true
Example Resource Instance
Fast Health Interoperability Resources | Page 26
Create = POST https://example.com/path/resourceType
Read = GET https://example.com/path/resourceType/id
Update = PUT https://example.com/path/resourceType/id
Delete = DELETE https://example.com/path/resourceType/id
Search = GET https://example.com/path/resourceType?search parameters...
History = GET https://example.com/path/resourceType/id/_history
Transaction =POST https://example.com/path/(POST a transaction bundle to the system)
Operation = GET https://example.com/path/resourceType/id/$opname
Details http://hl7.org/fhir/http.html
Interactions
Fast Health Interoperability Resources | Page 25 |
POST https://example.com/path/resourceType
POST some base path/Patient HTTP/1.1
Authorization: Bearer 37CC0B0E-C15B-4578-9AC1-D83DCED2B2F9
Accept: application/fhir+json
Content-Type: application/fhir+json
Content-Length: 1198
"resourceType": "Patient",
...(properties)
Creating a resource
Fast Health Interoperability Resources | Page 26 |
HTTP/1.1 422 Unprocessable Entity
Content-Length: 161
Content-Type: application/fhir+json
Date: Mon, 18 Aug 2014 01:43:30 GMT
"resourceType": "OperationOutcome",
"text":
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">MRN conflict
- the MRN 123456 is already assigned to a different patient</div>"
,
Error response
Fast Health Interoperability Resources | Page 27 |
GET https://example.com/path/resourceType/id
GET /Patient/347?_format=xml HTTP/1.1
Host: example.com
Accept: application/fhir+xml
Cache-Control: no-cache
Read Request
Fast Health Interoperability Resources | Page 28 |
HTTP/1.1 200 OK
Content-Length: 729
Content-Type: application/fhir+xml
Last-Modified: Sun, 17 Aug 2014 15:43:30 GMT
ETag: W/"1"
<?xml version="1.0" encoding="UTF-8"?>
<Patient xmlns="http://hl7.org/fhir">
<id value="347"/>
<meta>
<versionId value="1"/>
<lastUpdated value="2014-08-17T15:43:30Z"/>
</meta>
<!-- content for patient -->
</Patient>
Read Response
Fast Health Interoperability Resources | Page 29 |
GET https://example.com/path/resourceType?criteria
GET https://example.com/base/MedicationRequest?patient=347
Search Request
Fast Health Interoperability Resources | Page 30 |
"resourceType": "Bundle",
"type": "searchset",
"id" : "eceb4882-5c7e-4ca4-af62-995dfb8cef01"
"meta" :
"lastUpdated" : "2014-08-19T15:49:30Z"
,
"total": "3",
"link": [
"relation" : "next",
"url" : "https://example.com/base/MedicationRequest?patient=347&searchId=ff15fd40-ff71-4b48-b366-
09c706bed9d0&page=2"
,
"relation" : "self",
"url" : "https://example.com/base/MedicationRequest?patient=347"
],
... continued next slide ...
Search Response
Fast Health Interoperability Resources | Page 31 |
... continued from previous slide ...
"entry": [
"resource" :
"resourceType": "MedicationRequest",
"id" : "3123",
"meta" :
"versionId" : "1",
"lastUpdated" : "2014-08-16T05:31:17Z"
,
... content of resource ...
,
,
... 2 additional resources ....
]
Search Response cont’d
Fast Health Interoperability Resources | Page 32 |
URL: [base]/[Resource]/$validateURL: [base]/[Resource]/[id]/$validate
In Parameters:
Out Parameters:
Validate a resource
Fast Health Interoperability Resources | Page 34 |
Name Cardinality Type Binding Documentation
resource 0..1 Resource Must be present unless the mode is "delete”
mode 0..1 code ResourceValidationMode(Required)
Default is 'no action'; (e.g. general validation)
profile 0..1 uri If this is nominated, then the resource is validated against this specific profile. If a profile is nominated, and the server cannot validate against the nominated profile, it SHALL return an error
Name Cardinality Type Binding Documentation
return 1..1 OperationOutcome If the operation outcome does not list any errors, and a mode was specified, then this is an indication that the operation would be expected to succeed (excepting for transactional integrity issues, see below)Note: as this the only out parameter, it is a resource, and it has the name 'return', the result of this operation is returned directly as a resource
Code System
Metadata – identity, version, publisher, description
Content – codes, properties of codes, available filters
Value Set
Metadata – identity, version, publisher, description
Content – rules for what codes are in the value set
Concept Map
Metadata – identity, version, publisher, description
Content – source code, target code, relationship
Operations
expand, validate-code, translate, lookup, [closure, subsumes, ...]
FHIR terminology subsystem
URL: [base]/ValueSet/$validate-codeURL: [base]/ValueSet/[id]/$validate-code
Given a code, system, optional display text, and a ValueSet,
Validate that the code is in the set of codes allowed by the value set, and is display text is provided, that the display text is a valid designation for the code.
Out parameters:
Value Set based Validation
Fast Health Interoperability Resources | Page 36 |
Name Cardinality Type Binding Documentation
result 1..1 boolean True if the concept details supplied are valid
message 0..1 string Error details, if result = false. If this is provided when result = true, the message carries hints and warnings
display 0..1 string A valid display for the concept if the system wishes to display this to a user
Built on FHIR terminology subsystem
ATOM for content distribution
National Terminology Server (readonly)
Free (in Australia) licence for own Ontoserver instances
Deep SNOMED CT support
Also LOINC, OWL, and FHIR Code Systems
“terminology is the foundation of semantic integration”
National Clinical Terminology Service (NCTS)
Fast Health Interoperability Resources | Page 37 |
• Originally: “Substitutable Medical Apps, Reusable Technology”
• Boston Children’s Hospital & Harvard Medical School• ... And Argonaut, including the big EHR vendors
• Gallery of sample apps
• Sandboxes for building new apps
SMART
Fast Health Interoperability Resources | Page 39 |
• Standards that build on top of FHIR, especially for security and launch context
• Security based on OAuth2
• Standard OAuth2 flows for apps (either in-EHR or standalone) to access data
• Defines a set of authorizations for use in apps• Patient/Encounter.read
• User/Observation.*
• launch/patient
SMART-on-FHIR
Fast Health Interoperability Resources | Page 40 |
Smart on FHIR Apps
Fast Health Interoperability Resources | Page 42 |
Source: https://apps.smarthealthit.org/app/cardiac-risk (Boston Children’s Hospital)
Smart on FHIR Apps
Fast Health Interoperability Resources | Page 43 |
Source: https://apps.smarthealthit.org/app/growth-chart (Boston Children’s Hospital)
• Alternative standard for clinical decision support
• Register for client triggers as FHIR resource events
• Server receives prefetch of relevant resources (equivalent of SMART launch context)
• Server returns cards with feedback
• Lightweight, simple and consistent UI
• Can launch a SMART app if deeper interaction is required
• http://cds-hooks.org/
CDS Hooks
Fast Health Interoperability Resources | Page 45 |
CQL – Clinical Quality Language
• from HL7, but not specifically FHIR
FHIRPath
• like XPath or OCL for FHIR (and other information models)
• informed by needs of CQL
GraphQL – facebook
• results are JSON, not FHIR+JSON
Bulk data access
• http://www.healthintersections.com.au/?p=2689
• gForge tasks 13919 – 13923
Pieces of the puzzle
Fast Health Interoperability Resources | Page 47 |
Graph-traversal: FHIRPath is a graph-traversal language; authors can clearly and concisely express graph traversal on hierarchical information models (e.g. HL7 V3, FHIR, vMR, CIMI, and QDM).
Fluent: FHIRPath has a syntax based on the Fluent Interface pattern
Collection-centric: FHIRPath deals with all values as collections, allowing it to easily deal with information models with repeating elements.
Platform-independent: FHIRPath is a conceptual and logical specification that can be implemented in any platform.
Model-independent: FHIRPath deals with data as an abstract model, allowing it to be used with any information model.
STU1 – Dec 2016
FHIRPath features
Fast Health Interoperability Resources | Page 48 |
search parameter paths - used to define what contents the parameter refers to (e.g. Observation.dataAbsentReason)
slicing discriminator - used to indicate what element(s) define uniqueness (e.g. Observation.category)
invariants in ElementDefinition, used to apply co-occurrence and other rules to the contents (e.g. value.empty() or code!=component.code)
error message locations in OperationOutcome
URL templates in Smart on FHIR’s cds-hooks
FHIRPath use in FHIR
Fast Health Interoperability Resources | Page 49 |
Search – identifying Resources of interest
ETL – extracting the relevant parts for local processing
See Hay on FHIR - https://fhirblog.com/2017/08/16/fhirpath/
FHIRPath for analytics
Fast Health Interoperability Resources | Page 50 |
“GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data.”
http://graphql.org
[base]/$graphql[base]/[Type]/[id]/$graphql
Easily follow resource references
Tied to FHIR’s JSON representation
Can be applied to operation results with the _graphql parameter
http://build.fhir.org/graphql.html
GraphQL – draft, post STU3
Fast Health Interoperability Resources | Page 51 |
Access to data on a set of patients, potentially >100 000 000 resources
Authorization – SMART (System/*.read)
Data format – application/fhir+ndjson http://ndjson.org
GET [base]/Patient/$everything?start=[date-time]&_type=[type,type]
GET [base]/Group/[id]/$everything?start=[date-time]&_type=[type,type]
Asynchronous Query
HTTP’s Prefer: respond-async RFC 7240
202 Accepted + Location header
Bulk Data Access
Fast Health Interoperability Resources | Page 52 |
FHIR easy to adopt and use
Provides interoperability
Supports data quality
Focus on record-based access
Starting to address bulk-access & server-side processing
Current model favouring client-side ETL processing
jq is your friend https://stedolan.github.io/jq/
NOW is the time to get involved & influence the outcome
Summary
Fast Health Interoperability Resources | Page 53 |
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Freely available
Unencumbered – free for use, no
membership required
http://hl7.org/fhir
54
© 2014 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Links
http://hl7.org/fhir/ http://hapifhir.io
Community: https://chat.fhir.org55
top related