2. Page 2
Today
• Agenda
– Why FHIR
– Where can we use FHIR in NZ
– A FHIR primer
– Clinician Tooling (ClinFHIR)
– Terminology
– Profiling
– Where can we use FHIR in NZ
– Next steps for New Zealand
• Desired Outcome
– You can see where FHIR fits in
New Zealand
– You want to learn more
• Seminars
• Connectathons
– We think about infrastructure
– We plan some pilots
3. Page 3
• Name: David Hay
• Company: Orion Health
• Background:
– Ex Clinician
– Product Strategist
– Involved in FHIR almost from beginning
– Co-Chair FHIR Management Group
– Chair HL7 New Zealand
– Member HISO Committee
– Blog: FHIRBlog.com
Who am I?
5. Page 5
Drivers
• Interoperability requirements increasing
– Increasing collaborative care – need for co-ordination
– Changing Payment models
– Clinical Care delivery to an aging population
– Decision support
– Involving the patient – raising the bar
• Need for real time access (API)
– Mobile
• Vast increase in the amount, type and source of data
– Devices, Mobile
– Genomics
• Analytics, population health
– Need to collect from many different sources
• Implementer expectations
– Expect a modern standard
Current standards don’t cut it - these led to
FHIR…
6. Page 6
• HL7 version 2
– Great for messaging between
systems
– But:
• Old technology
• Hard to customize and
extend
• HL7 version 3
– Defined common model for
interoperability
– But:
• Extremely complex to
implement
• Limited improvement
over v2
• CDA (version 3)
– Very successful
– But:
• Documents only
• Difficult to communicate
coded data
• openEHR
– Excellent for modelling
– But:
• Main focus is on internal
data modeling rather
than exchange
• (so can still participate)
Other Standards
7. Page 8
Business Case for FHIR
• Predefined Resources & API
– Analysis already done, and can be safely extended
• All paradigms, All Architectures, All Clients
– Thick client, browser, mobile, devices
• Implementer friendly
– Simple to understand and access with examples
– Familiar tooling & familiar technologies – XML/JSON, HTTP, SSL, OAuth
– Libraries available – HAPI, Furore, reference implementation
• Mobile friendly
– Concise, REST API & JSON
• Don’t need to understand HealthCare domain to implement
– Developers or Analysts
• Already in use Internationally
– 70 Organizations, 20 Countries, all Continents (except Antarctica)
– Involvement from Providers, Vendors, Payers, Governments
• Including Orion
• Large community for support
Results in faster, cheaper deployments that are more re-usable
8. Page 9
Fast Healthcare Interoperability Resources (FHIR)
• Focus on Implementers
• Target support for common scenarios
• Leverage cross-industry web technologies
• Support human readability as base level of interoperability
• Support multiple paradigms & architectures
• Make content freely available
• Demonstrate best practice governance
“Latest Interoperability standard from HL7”
Manifesto
14. Page 17
Record Locator Service
• Features
– Based on IHE XDS
– Registries (indexes) that show where documents are
– Consistent document metadata (HISO standard)
– Repositories holding data
– Consumers accessing it
• But
– Complex to implement
– Complex to use
15. Page 18
Patient Portals
• Access to Primary Care/Community data
– Vendor agnostic
• Access to Secondary Care Data
– Vendor agnostic
• Access to other Portal data
– Or the repositories behind them
• Patient access / review of Shared data repositories
– Medications, allergies, encounters, documents
– Annotate
– Who has accessed data
• Patient data entry
– Devices
– Other observations
17. Page 21
Mobile Devices
• Very common access medium
– Huge growth area for medical applications
– Clinician and especially Patient
• Needs Real-time API
• Structured data
– Not just document display
• Limitations
– Bandwidth
– Performance
– Processor / memory
18. Page 22
Models on the wire / CDA
• Current Standards
– HL7 CDA
– HL7 version 2
• Where does FHIR fit in?
20. Page 26
2 aspects to FHIR
• Content
– Resources (the model)
– Informed by much past work inside & outside of HL7
• HL7: version 2, version 3 (RIM), CDA
• Other SDO: openEHR, CIMI, ISO 13606
• Others: IHE, DICOM
– Profiling & the 80%
• Exchange protocols - Paradigms
– API
– Other paradigms
• Message, Document
21. Page 27
Content: Resources
• “Resources” are:
– The exchange models
• Small logically discrete units of exchange
• Defined behaviour and meaning
• Known identity / location
• Smallest unit of transaction “of interest” to healthcare – and that
can be exchanged.
– HL7 V2: Sort of like Segments
– Hl7 V3: Sort of like CMETs
• Can be represented in XML or JSON
• Can be individual or in bundles
– Eg query results, messages, documents
29. Page 35
Clinical Scenario
• First consultation
– Complaining of pain in the r) ear for 3 days with an
elevated temperature. On examination, temperature
38.5 degrees and an inflamed r) ear drum with no
perforation. Diagnosis Otitis Media, and prescribed
Amoxil 250mg TDS for 5 days
• Follow up consultation
– 5 days later returned with an itchy skin rash. No
breathing difficulties. On examination, urticarial rash
on both arms. No evidence meningitis. Diagnosis of
penicillin allergy. Antibiotics changes to erythromycin
and advised not to take penicillin in the future.
Condition
Observation
Med
Allergy
Encounter
5 year old boy
Patient
32. Page 38
Paradigms of Interoperability
REST
DocumentsMessages
Services
(Operations)
33. Page 39
FHIR Message
39
Bundle
Resource 1
Resource 2
MessageHeader
• Similar to v2 and v3 messaging
• Collection of resources bound
together
• Root is a “MessageHeader”
resource
• Just like MSH segment
• Allows request/response
behavior with bundles for both
request and response
• Event-driven
– E.g. Send lab order, get back result
• Can use HTTP
• Can be asynchronous
34. Page 40
FHIR Document
40
• Similar to CDA
• Also a collection of
resources as a Bundle
• Root is a “Composition”
resource
• Just like CDA header
• Explicit references
• Can be signed,
authenticated, etc.
Bundle
Resource 1
Resource 2
Composition
35. Page 41
API – REST & Services
• Real-time interaction
– Application to Application
• Eg within enterprise systems
– Person to Application
• Eg Mobile access to data
• Increasingly common (ubiquitous?) outside of healthcare
– Twitter, Facebook, SalesForce
• Simple REST calls (CRUD)
• More complex Operations (RPC)
• One of the ‘selling points’ for FHIR
36. Page 42
FHIR RESTful Interactions
• Instance
– Read GET [base]/Patient/100
– Vread GET [base]/Patient/100/{vid}
– Update PUT [base]/Patient/100
– Delete DELETE [base]/Patient/100
– History GET [base]/Patient/100/_history
• Type
– Create POST [base]/Patient
– Search GET [base]/Patient?name=eve
– History GET [base]/Patient/_history
– Validate POST [base]/Patient/100/_validate/{id}
• System
– Conformance GET [base]/metadata
– Transaction POST bundle to root
– History GET [base]/_history
– Search GET [base]/Patient?name=eve
37. Page 43
FHIR Operations
• When more complex server logic required than simple CRUD
– Midway between REST & SOAP
• Some defined in spec. e.g.:
– Get all data for a patient
– Expand/filter terminology
• Can define custom services
– Still using FHIR resources
– Resources to define / inputs
38. Page 44
API Examples
• REST & Operations
• How an app can access a FHIR server
• Against Grahames server (one of public test servers)
– Simple CRUD
– Operation ($everything)
41. Page 47
Terminology
a discipline that systematically studies the “labeling or
designating of concepts” particular to one or more subject
fields or domains of human activity
Wikipedia
42. Page 48
FHIR Resource Datatypes
• Resource element datatypes of different ‘categories’
– References to other resources
– Non-coded data
– Coded data
• Coded data
– Code
– Coding
– CodeableConcept
– (Quantity)
44. Page 50
Terminology Sub-system
• SNOMED CT / LOINC / RxNORM
• HGVS, ICPC, MIMS + 100s more
• ICD-X+
• ANZSCO, METEOR
• A drug formulary
• A config table in an application
• A list of enums in a java class
• Australian state codes
Code System:
Defines a set
of concepts
with a
coherent
meaning
Code
Display
Definition
45. Page 51
Terminology Sub-system
Value Set:
A selection of a
set of codes for
use in a
particular
context
Code System:
Defines a set
of concepts
with a
coherent
meaning
Code
Display
Definition
46. Page 52
Terminology Sub-system
Code System:
Defines a set
of concepts
with a
coherent
meaning
Code
Display
Definition
Element
Definition:
Type and
Value set
reference
Value Set:
A selection of a
set of codes for
use in a
particular
context
Binds
47. Page 53
Terminology Sub-system
Code System:
Defines a set
of concepts
with a
coherent
meaning
Code
Display
Definition
Element
Definition:
Type and
Value set
reference
Value Set:
A selection of a
set of codes for
use in a
particular
context
Binds
Element:
code/
Coding/
CodeableConcept
Conforms
48. Page 54
NamingSystem resource
• A coded element needs to
indicate the terminology
– How to know which ‘system’
value to use?
• Some standard ones defined
in the spec
– SNOMED, LOINC etc.
• Other datatypes need the
same
– Identifier
• Can define own ones
– Using NamingSystem resource
– uniqueId is key
{
"resourceType": "NamingSystem",
"id": "nznhi",
"meta": {
"versionId": "2",
"lastUpdated": "2015-07-21T19:58:39Z"
},
"text": {
"status": "generated",
"div": "<div xmlns="http://www.w3.org/1999/xhtml">New Zealand
NHI</div>"
},
"type": "identifier",
"name": "NZ NHI",
"date": "2014-12-13",
"status": "active",
"description": "The New Zealand NHI system",
"uniqueId": [
{
"type": "uri",
"value": "http://hl7.org.nz/ns/nhi"
}
],
"contact": [
{
"telecom": [
{
"system": "email",
"value": "nhiteam@moh.co.nz"
}
]
}
]
}
49. Page 55
Binding Strength
• How closely the options in the value set should be followed
• Values
– Required (must come from set)
– Extensible (may use alternate if have to)
– Preferred (don’t have to, but should)
– Example (set isn’t specified)
• Can use extension to vary
– (Make stronger not weaker)
50. Page 56
ValueSet resource
• Defines list of possible values for a particular context
• Can reference external Terminology/s
– Or define own sets
• Why?
– A common valueSet improves recording consistency
– Improves user experience (pick lists)
• Examples in New Zealand
– ED diagnoses (derived from SNOMED)
– NZ POCS (Pathology Observation Code Set) (derived from LOINC)
– List of NZ Iwi (defined in ValueSet)
52. Page 58
Valueset for NZ Iwi
{
"resourceType": "ValueSet",
"id": "nziwi",
"meta": {
"versionId": "4",
"lastUpdated": "2015-07-18T19:29:40Z"
},
"text": {
"status": "generated",
"div": "<div xmlns="http://www.w3.org/1999/xhtml">

<p>Valueset for Iwi</p>
 </div>"
},
"url": "http://fhir-dev.healthintersections.com.au/open/ValueSet/nziwi",
"version": "1",
"name": "New Zealand Iwi",
"publisher": "HL7 New Zealand",
"contact": [ {
"telecom": [
{
"system": "email",
"value": "david.hay25@gmail.com"
}
]
} ],
"description": "The list of possible Iwi (tribes) for New Zealand",
"requirements": "Needed for an extension on Patient",
"status": "draft",
"experimental": true,
"date": "2015-06-13",
"define": {
"system": "fhir.hl7.org.nz/valueset/nziwi",
"concept": [
{
"code": "kt",
"display": "Kai Tahu"
},
{
"code": "np",
"display": "Ngāti Porou"
},
{
"code": "nt",
"display": "Ngāi Tahu"
},
{
"code": "np1",
"display": "Ngā Puhi"
},
{
"code": "nk",
"display": "Ngāti Kahungunu"
},
{
"code": "th",
"display": "Tūhoe"
}
]
}
}
53. Page 59
Terminology Server
• Provides ‘services’ for consumers to access terminology
– Hide the complex stuff from a consumer
• Uses Operations framework
– Get definition for a concept
– Find a concept
• Within a ValueSet
http://hl7.org/fhir/2015May/terminology-service.html
• Find Terms
• Get Term
Definition
54. Page 60
Exercise: Using a Terminology Server
• clinFHIR
– Resource builder (Condition)
– Condition.code
• Explore data set
– Direct REST query from filter
56. Page 62
Profiling
• The basic resources are not enough
– Many different contexts in healthcare
• Specific implementations need to:
– Specify resources used
– Extend resources
– Constrain resources
– Specify code sets / terminologies
• Multiple supporting artifacts in FHIR
• FHIR is a platform specification
– Profiles adapt it to specific purposes
• Discoverability
• Profiling increasingly important
– Allows clinicians to express reqirements
– Tooling supports Clinicians and Analysts involvement
• Whole spec build on profiling infrastructure
57. Page 63
Claiming conformance
• Profiles are like a template
– Servers indicate what profiles they support
– Clients can interrogate servers
• Resource instances ‘claim conformance’ to 1 or more profiles
– Libraries developed to test this
– Can be conformant without claiming
• Cannot set defaults
– Can state what a value should be
58. Page 64
Extensions
• Only most common elements in base resource
– Keeps the resources small
– (Adding everything was the problem with version 3)
• Extensions allow other elements to be defined
– Same capabilities as core elements
• Including resource references and terminology bindings
• Extensions are normal
– Expect all real implementations to use extensions
• ‘normal’ and modifierExtensions
– Normal extensions can be ignored by a recipient
– Unknown modifierExtensions cannot be ignored
59. Page 65
Profiling a resource
Specify that the identifier uses the
NHI – and is required
Limit names to just 1 (instead of 0..*)
Limit maritalStatus to different set of
codes (ValueSet)
Multiple Birth indicator only boolean
Indicate photo not supported
Add an extension to support
“Ethnicity”
Note: hardly any mandatory elements
in the core spec!
60. Page 66
Published Profiles & Artifacts (Registry)
http://registry.fhir.org
Find & maintain
Retrieve & use
61. Page 67
openEHR & FHIR
• FHIR defines interoperability model & transport
– Internal EHR formats don’t matter as long as they can map
– openEHR strong in data modelling
• Archetypes & Profiles are where mapping occurs
– Some differences:
• Archetypes are ‘maximal’, Profiles are context specific
• NZ Team working on this
– World leading
– Contact Koray Atalag to participate
63. Page 69
Exercise: Creating a profile
• Profile on Patient – make the New Zealand Patient
– Add an extension for iwi
– Remove Photo (& some others)
– Make identifier single only, required and fixed to the NHI
• Then, create a resource based on that profile
• Will need:
– A ValueSet for Iwi codes
• (to hold the list of values)
– An Extension Definition (StructureDefinition) for iwi in Patient
• To define what it is
– A profile (StructureDefinition) for NZ Patient
65. Page 71
Process
1.Build/Find registry resources
1. Show the ValueSet in XML editor (Oxygen)
2. PUT it to the registry using POSTMan
3. Create and save NamingSystem for NHI
2. Start clinFHIR
3. Select Patient as base
4. Create new Extension
1.Generally search first
2.Set to ValueSet
5. Show preview
6. Save
7. Create resource in Resource Builder
67. Page 73
Conformance resource
• Indicate Server capability
– Also a desired solution or software capabilities
• API Details
– REST Interfaces
• Supported Resources
– Query Parameters
– Operations
• Messaging / Document Capability
• Supported Profiles
68. Page 74
Implementation Guide
• Pull together all the artifacts for an implementation
– Eg New Zealand Patient
• Computable and directly renderable
• These include (eg from our exercise):
– Resources
• ValueSet
• StructureDefinition
• Conformance
• NamingSystem
– Documentation / other
• example resources
• pages
• Images
• Under active development
69. Page 75
A Digital Ecosystem supported by FHIR
• Many independent systems
• Common understanding of things, and ways to share them
• FHIR is the way of organizing and sharing
A digital ecosystem is a distributed, adaptive, open
socio-technical system with properties of self-
organisation, scalability and sustainability inspired from
natural ecosystems.
Wikipedia
70. Page 76
Establishing the ecosystem
Terminology
Security
Identity Repository
FHIR API and Resources
Registry
72. Page 78
FHIR supporting the Ecosystem
• A common way to represent data
– Building blocks (resources)
– Rules for connecting them (references)
• Defines ways to move data around
– API (Simple & Complex)
– Messages
– Documents
• Links to supporting infrastructure
– Terminology
– Identity
– Security
• A large supporting community
74. Page 80
The community
• Heaps of open source software
– Clients and servers
• Specification feedback welcomed
– Including update requests – tracker.
• Training events
– On-line webinars (eg FHIR academy)
– Connectathons – at WGMs and elsewhere – eg Aus
– ?demand in New Zealand
• Support channels
– Skype
– Stack Overflow
– Blogs
– Email / List servers
77. Page 83
Patient Portals
• Access to Primary Care/Community data
– Vendor agnostic (RESTful interfaces)
• Access to Secondary Care Data
– Vendor agnostic (RESTful interfaces)
• Access to other Portal data
– Or the repositories behind them (RESTful interfaces)
• Patient access / review of Shared data repositories
– Medications, allergies, encounters, documents (Resources)
– Annotate (Observation)
– Who has accessed data (AuditEvent)
• Patient data entry (Observations to Shared repository)
– Devices
– Other observations
79. Page 85
Mobile Devices
• Very common access medium
• Real-time (REST/AJAX interaction, server side Operations for more
complex)
• Structured Data (Resources)
• Limitations
– Bandwidth (only include needed elements. Compress well.)
– Performance
– Processor / memory (apps focussed on specific functionality)
84. Page 91
Where next in New Zealand
• Interoperability Reference Architecture update
• Think about Governance (Implementer support)
– Extensions, StructureDefinition, ImplementationGuide, ValueSets,
NamingSystem
– How best to structure with a community focus?
• Infrastructure
– Identity, Security, Terminology
• Funding
• Pilots
– What’s a good one to start
• ?Terminology Service
• ?Record Locator
85. Page 92
Success Markers
• I’ve stirred your interest in FHIR
– Review the spec on the web
– Consider FHIR in your own projects
• FHIR features prominently in the Interoperability
Architecture refresh
• We have demand for more training or connectathons
• We have real pilots
• The MOH starts to think about FHIR in key interfaces
– NHI, NPI
• We consider a FHIR based national terminology service
• We start to think about the other ecosystem services