SlideShare una empresa de Scribd logo
1 de 61
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Authoring
Profiles
Ewout Kramer
Phoenix, AZ - May 2014
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Who am I?
 Name: Ewout Kramer
 Company: Furore, Amsterdam
 Background:
 FHIR core team, RIMBAA
 Software developer & healthcare
architect
 Contact:
 e.kramer@furore.com
 www.thefhirplace.com
2
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Introduce ourselves
 Who has looked at Profile in the spec for
more than 5 minutes?
 Who has near-future needs for authoring
profiles?
3
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Contents of this tutorial
4
 Intro to Profiles
 Metadata
 Structures
 Bindings
 Formal constraints
 Extensions
 Slicing
 Aggregation
© 2013 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 for Profiles
 Many different contexts in healthcare, but a
single set of Resources
 Need to be able to describe restrictions
based on use and context
 Allow for these usage statements to:
 Authored in a structured manner
 Published in a repository
 Used as the basis for validation, code, report and UI
generation.
7
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Profiling a resource
8
“Must use only the Dutch national patient identifier”
“Need to register an administrative race code for a
Patient in the US”
“Patient Discharge documents must at least contain section
“Discharge Medication” and section “Discharge Diagnosis”
“In our Patient registration system, we use these
maritalStatus codes beyond those provided by HL7…”
“Our patient registration system, only supports
having one single name per Patient”
+
+
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Profiling a resource
9
Demand that the identifier uses your
national patient identifier
Limit names to just 1 (instead of 0..*)
Limit maritalStatus to another set of
codes that extends the one from
HL7 international
Add an extension to support
“RaceCode”
Note: hardly any
mandatory elements in
the core spec!
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
In v3 CDA…”text-based”
11
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Profile –a “normal”
resource
13
…computable!
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Publish them!
15
http://www.profiles2all.com
Find & maintain
Retrieve & use
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Who publishes?
http://www.hl7.org/Profile/iso-21090
http://www.hl7.nl/Profile/patient-nl
http://www.health4all.nl/h4all-vitals
http://www.fit4all.nl/f4all-vitals
http://www.data4all.nl/d4all-obs
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Tagging a Resource
Patient
MRN 22234
“Ewout Kramer”
30-11-1972
Amsterdam
“I’m a Patient conforming to the Norwegian Profile –
see http://hl7.no/Profiles/patient-no”
“I’m a Patient conforming to the ContosoHIS Profile –
see http://contoso.no/Profiles/patient”
“I’m a Patient conforming to the Austrialian Profile –
see http://hl7.org.au/Profiles/patient-au”
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
(Distributed) validation
ContosoHIS’s server
Norway national validation server
Profile Contoso
Profile NO
© 2013 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 profile?
19
Metadata “Lipid Profile” v1.0.0 Draft
urn:hl7.org:lipid-profile:v1
Author: e.kramer@furore.com
Structure
“LipidProfile”
Extension ‘A’
DiagnosticReport
instances (via Tag)
Profile at http://hl7.org/fhir/Profiles/lipids-v1
Extension ‘B’
Extension
‘calculated’
Structure
“Triglyceride”
Structure
“LDLCholesterol”
DiagnosticReport
instance (via Tag)
DiagnosticReport
instance (via Tag)
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Running example…
 We are taking the “Lipid Profile” example
from the spec from now on.
 This is a DiagnosticReport,containing 4
results:
 1x Cholesterol
 1x Triglyceride
 1x HDL Cholesterol
 0/1x LDL Cholesterol
 And package it up in a message
21
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Referring to a profile
22
http://acme.org/Profile/lipids-01
1. Where?
DiagnosticReport
Lipid Report
Wile E. COYOTE
2009-03-03 14:26
Cholesterol 6.3 mmol/L
Triglyceride 1.3 mmol/L
HDL Chol. 1.3 mmol/L
LDL Chol. 4.2 mmol/L
Dr. Pete Pathologist,
Acme Labs
I’m conforming to
http://acme.org/Profiles/lipids-01
http://acme.org/Profile/87408b94
or
any valid technical FHIR id, not
necessarily “comprehensible”
or
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
More naming
 So, Profile has a REST id on a server
 Might not be under your control, server assigned
 But also:
 A “name” – human readable, e.g. “Lipid Profile”
 An “identifier” – author-assigned, globally unique
 OID (2.16.840.1.113883.10.20.2.1)
 UUID (09bd961e-c629-11e3-8841-1a514932ac01)
 URN
• urn:openEHR.org:EHR-ACTION.medication.v1
• http://hl7.org/fhir/Profiles/iso-21090-2011
23
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Versioning…
 A “version” – author assigned
 So what if you change something after
publishing?
 Just a typo? Change of definition?
 Make something optional that wasn’t?
 Make something mandatory that was optional?
 Add an extension?
24
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
“Non-breaking change”?
 If old data can still be:
1. Validated against the new profile
2. Correctly interpreted against the new profile
 This can only be determined by the profile’s
authors (and even depends on the way it is used)
 A breaking change means you are
producing a new profile
 The profile’s author-assigned identifier changes
 A new Profile on the server, with a new REST utl
25
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Example
26
Url http://fhir.nl/Profile/patient.v1
Id urn:fhir.nl:profile:patient:v1
Version 1.0.0
Url http://fhir.nl/Profile/patient.v1
Id urn:fhir.nl:profile:patient:v1
Version 1.0.1
…after a small typo,
clarification or correction
(“bugfix”) becomes…
…after a bigger non-
breaking change, like an
addition, becomes…Url http://fhir.nl/Profile/patient.v1
Id urn:fhir.nl:profile:patient:v1
Version 1.1.0
Url http://fhir.nl/Profile/patient.v2
Id urn:fhir.nl:profile:patient:v2
Version 2.0.0
…after a breaking
change (like cardinality)
becomes…
© 2013 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 profile?
31
Metadata “Lipid Profile” v1.0.0 Draft
urn:hl7.org:lipid-profile:v1
Author: e.kramer@furore.com
Structure
“LipidProfile”
Extension ‘A’
DiagnosticReport
instances (via Tag)
Profile at http://hl7.org/fhir/Profiles/lipids-v1
Extension ‘B’
Extension
‘calculated’
Structure
“Triglyceride”
Structure
“LDLCholesterol”
DiagnosticReport
instance (via Tag)
DiagnosticReport
instance (via Tag)
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Structures
 Profiles contain “Structures”: a set of
constraints on (nested) elements of a
Resource or Datatype
 Sort of a “subclass” of a Resource, with
specific limits on its elements
 Cardinality
 Valuedomains
 Invariants
32
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Example
“Cholesterol observation” is an Observation :
 That has a fixed LOINC code 35200-5
(Cholesterol) as its name
 Has a quantity as value that’s expressed in
mmol/L (a UCUM unit) (without a ‘comparator’) OR
ELSE there’s a comment
 An interpretation limited to LL,L,N,H,HH
 A “recommended” high reference range of 4.5 (no
low) mmol/L, independent of age (no age)
 Is an independent observation (no related)
33
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Let’s start constraining
38
0..1
= ‘ok’
“if no value…”
1..1
1..1 Subject 0..1?
Why not 1..1
in spec?
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
My First Structure
 Let’s do this in Forge
 In the middle, under “Structures” press “Add”
 Name the structure “cholesterol” using the
property panel on the right.
 Start setting the cardinalities for each
element, by clicking on them in the middle
and using the property panel
39
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Coded types
Codes are defined
in code systems
In a Profile, we may want to limit the codes that can possibly be used in
coded elements in the Resources
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Identification of
CodeSystems
 If you refer to CodeSystems, you use a URL
(instead of OID in v2 and v3):
 http://snomed.info/sct
 http://loinc.org
 http://hl7.org/fhir/sid/icd-10
 We have introduced them for v2 and v3:
 http://hl7.org/fhir/v2/0078
 http://hl7.org/fhir/v3/ActClass
45
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
48
Metadata
In/exclude concepts
This models what we have been
discussing so far:
• A ValueSet has metadata
(much like Profile: identifier,
version, name, etc)
• A ValueSet is built by inclusion
of terms from CodeSystems
• A ValueSet can exclude
specific codes from other
valuesets
• A ValueSet can import codes
from other ValueSets
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
49
But it can also enumerate (and so indirectly
define) all concepts for a new codesystem
• A ValueSet has metadata (much like
Profile: identifier, version, name, etc)
• A ValueSet is built by defining terms from
and for a new CodeSystem
• These new concepts have a display label
and a definition
• …and may be hierarchically organized
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Bindings
 When used in a Resource, the modelers
include Bindings
 Bindings specify which codes can be used
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Profiling bindings
 Depending on “core” spec, you can:
 “fixed”: not specify a different binding
 “incomplete”: specify a different binding if needed
 “example”: very likely specify a different binding
 Change the bindings as specified in core:
 Define a new ValueSet
 Allow additional codes, Restrict to a subset
 Specify whether implementers of your profile can
deviate from your valueset.
51
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
ValueSets
In order of precision:
 A “true” FHIR ValueSet resource (may be
version specific)
 A general reference to some web content
that defines a set of codes. (e.g. mime
types).
 A textual description of the possible codes
52
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Interpretation Binding
 Let us limit http://hl7.org/fhir/vs/observation-
interpretation
53
Let’s Define a new ValueSet
using codes from the
existing Code system
http://hl7.org/fhir/v2/0078
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Creating ValueSets
 By tool first….
 Grahame is working on a ValueSet editor
called “FHIR ValueSet editor”
 Early release version is here…
54
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Creating a ValueSet
 ValueSet has metadata, just like Profile
55
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Including codes
56
Options:
Import a whole ValueSet
Include codes from a Coding System
Exclude codes from a Coding System
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Save to server…
57
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Conformance levels
IsExtensible “N” IsExtensible “Y”
Required “SHALL” Validation error, non-
conformant
Additional codes allowed
Preferred “SHOULD”
“Guidance”
Validation warning,
discouraged
Supplemental codes likely
Alternatives allowed
Example “MAY” Just a suggestion, no preference
59
If implementers of your profile provide a different
code than you have in your profile….
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Refer to ValueSet
 And now…make the Profile point to the
newly created ValueSet using Forge
60
© 2013 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 profile?
61
Metadata “Lipid Profile” v1.0.0 Draft
urn:hl7.org:lipid-profile:v1
Author: e.kramer@furore.com
Structure
“LipidProfile”
Extension ‘A’
DiagnosticReport
instances (via Tag)
Profile at http://hl7.org/fhir/Profiles/lipids-v1
Extension ‘B’
Extension
‘calculated’
Structure
“Triglyceride”
Structure
“LDLCholesterol”
DiagnosticReport
instance (via Tag)
DiagnosticReport
instance (via Tag)
ValueSet A
ValueSet A
ValueSet A
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Formal constraints
 …beyond cardinalities and bindings, there
are a lot of other conditions you might want
to formulate:
 “If a Cholesterol value result is not available, use
the comments field”
 “A patient’s birthdate must be on or before today’s
date”
 These may concern a single element, or
conver multiple elements.
62
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Formal constraints
 Uses free text (human) + xpath (executable)
 Constraints should be declared on lowest
element in the hierarchy that is common to
all nodes referenced by the constraint.
 Identified by (local) ‘Key’, involved elements
refer to that id
 Specify severity (“error” or “warning”)
63
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Context of the
constraint
64
• This constraint is on the
elements “valueQuantity” and
“comments”
• We would have to formulate this
constraint on the Observation,
this is the context of the
constraint
• We assign the constraint a “key”
value that’s unique within the
Observations’ constraints
• We refer from both “value[x]”
and “comments” to this “key”.
This means: if my value
changes -> revalidate the
constraint
“If a Cholesterol value result is not available, use the comments field”
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Add constraint
 Let’s do this in Forge
 Click the Cholesterol Observation (that’s the
context, remember!), add under the
“Constraints” in the property panel
 Give it key “chol-01”
 Click both “value[x]” and “comment” and set
their condition to “chol-1”.
67
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Extensions
 Add the fact that: “a LDL Cholesterol value is
calculated”
 There’s no such indication on Observation
(or Observation.value) -> Extension
 !!Note!! - You’re not extending a resource
per se, but you specify where an extension
applies. This may be multiple places.
 So “haircolor” may be applied to “Patient”
and “Practitioner”
68(c) 2012 HL7 International5/5/2014
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Extension Context
 An extension has a context type
 Resource, Datatype, Extension, Mapping
 And a context path
 (Resource) Observation
 “The observation was calculated”
 (Resource) Observation.value
 “The observation’s ‘value’ was calculated”
 (Datatype) Quantity
 “This quantity was calculated” (any Quantity used in
any resource!)
69(c) 2012 HL7 International5/5/2014
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Extension definition
70
Note: multiple
contexts!
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Extending a name
71
Key = location of formal definition
Value = value according to definition
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Authoring an extension
 Let’s do this in Forge
 Open the “Extensions” tab in the middle of
the screen
 Press “Add”
 Give it a name, context and datatype
74
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Where are we?
75
Cholesterol
Observation
name: loinc.org#35200-5
Triglyceride
Observation
name: loinc.org#35217-9
HDL Cholesterol
Observation
name: loinc.org#2085-9
LDL Cholesterol
Observation
name: loinc.org#13457-7
Quantity
(lipidQuantity)
use
ValueSet
(lipidInterpretat
ion)
bind
Extension
(calculated)
bool
applies
to
TODO:
DiagnosticReport
containing 4 results:
• 1x Cholesterol
• 1x Triglyceride
• 1x HDL Cholesterol
• 0/1 LDL Cholesterol
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
The Diagnostic Report
76
Cholesterol
Triglyceride
HDL Cholesterol
LDL Cholesterol
= loinc.org#57698-3
(Lipid panel with direct LDL)
1
1
1
0/1
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Slicing!
77
ResourceReference(Observation)
Result: ResourceReference(Observation)
ResourceReference(Observation)
ResourceReference(Observation)
ResourceReference(Observation)
ResourceReference(Observation)
ResourceReference(Observation)
…
Cholesterol
Observation
name: loinc.org#35200-5
Triglyceride
Observation
name: loinc.org#35217-9
HDL Cholesterol
Observation
name: loinc.org#2085-9
LDL Cholesterol
Observation
name: loinc.org#13457-7
0..*3..4
ResourceReference(Observation)
Discriminator
1..1
1..1
1..1
0..1
"There MUST be exactly one Observation
with LOINC 35200-5. And if you find it, it
must conform to our "Cholesterol" Structure
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Properties of slices
 Each slicing group indicates a discriminator
 here, that is Observation.name
 Each slicing group indicates a cardinality
 here, that was 3..4
 Each slice indicates its own cardinality within
the slice
 here 1..1 for chol,trig,hdlc, 0..1 for ldlc
 Each slice indicates additional constraints
 here "must conform to Cholesterol structure" etc.78
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Authoring slices
 Let’s do this in Forge
 Click "result" and then "Slice" above property
panel
 Indicate the discriminator and the cardinality
for the whole slice
 Click "Add slice" (4x), and name each slice,
give it the cardinality, tie Reference to
"#cholesterol", "#triglyceride" etc.79
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
One step further!
80
Cholesterol
Triglyceride
HDL Cholesterol
LDL Cholesterol
DiagnosticReport
data: Resource(DiagnosticReport#lipidPanel) 1..1
Package the DiagnosticReport in a "LipidResultMessage"
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
FHIR server @ hospitalA.org
Practitioner
Bernard
FHIR Message Bundle
Message
Header
Diagnostic
Report Adata
Maybe we want this…
82
FHIR server @ pat.registry.org
Patient
Joesubject
HDL
Obs 34
Triglyceride
Obs 78
Cholesterol
Obs 1
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Aggregation
 Aggregation: for each ResourceReference
choose one to all of these options:
83
Code Definition
contained Reference to a contained resource.
referenced Reference to to a resource that has to
be resolved externally
..bundled Reference points to will be found in the
same bundle
read: Message,
Document
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Authoring slices
 Let’s do this in Forge
 Pick any of the ResourceReferences in the
model.
 Notice none of the checkboxes next to a
ResourceReference is checked: all
aggregation types are allowed
 Now select those checkboxes to change
84
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Finally…
 Examples (broken)
 http://hl7.org/implement/standards/fhir/profile-
examples.html
 Forge download
 http://fhir.furore.com/forge/
 Find this presentation on SlideShare
89
© 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Questions?
90

Más contenido relacionado

La actualidad más candente

Hl7 uk fhir the basics
Hl7 uk fhir the basicsHl7 uk fhir the basics
Hl7 uk fhir the basics
Ewout Kramer
 

La actualidad más candente (20)

Vitalis 2016 FHIR Introduction
Vitalis 2016 FHIR IntroductionVitalis 2016 FHIR Introduction
Vitalis 2016 FHIR Introduction
 
FHIR Search for client developers by Mirjam Baltus
FHIR Search for client developers by Mirjam BaltusFHIR Search for client developers by Mirjam Baltus
FHIR Search for client developers by Mirjam Baltus
 
FHIR Profiles
FHIR ProfilesFHIR Profiles
FHIR Profiles
 
FHIR overview at EHiN 2014, Oslo
FHIR overview at EHiN 2014, OsloFHIR overview at EHiN 2014, Oslo
FHIR overview at EHiN 2014, Oslo
 
Patient matching in FHIR
Patient matching in FHIRPatient matching in FHIR
Patient matching in FHIR
 
FHIR Documents by Lloyd McKenzie
FHIR Documents by Lloyd McKenzieFHIR Documents by Lloyd McKenzie
FHIR Documents by Lloyd McKenzie
 
FHIR - more than the basics
FHIR - more than the basicsFHIR - more than the basics
FHIR - more than the basics
 
FHIR - Feel the Fire - 1
FHIR - Feel the Fire - 1FHIR - Feel the Fire - 1
FHIR - Feel the Fire - 1
 
Terminology, value-sets, codesystems by Lloyd McKenzie
Terminology, value-sets, codesystems by Lloyd McKenzieTerminology, value-sets, codesystems by Lloyd McKenzie
Terminology, value-sets, codesystems by Lloyd McKenzie
 
Getting started with FHIR by Ewout Kramer
Getting started with FHIR by Ewout KramerGetting started with FHIR by Ewout Kramer
Getting started with FHIR by Ewout Kramer
 
Authoring profiles by Michel Rutten
Authoring profiles by Michel RuttenAuthoring profiles by Michel Rutten
Authoring profiles by Michel Rutten
 
Hl7 uk fhir the basics
Hl7 uk fhir the basicsHl7 uk fhir the basics
Hl7 uk fhir the basics
 
FHIR architecture overview for non-programmers by René Spronk
FHIR architecture overview for non-programmers by René SpronkFHIR architecture overview for non-programmers by René Spronk
FHIR architecture overview for non-programmers by René Spronk
 
FHIR Tutorial - Morning
FHIR Tutorial - MorningFHIR Tutorial - Morning
FHIR Tutorial - Morning
 
Introduction to FHIR™
Introduction to FHIR™Introduction to FHIR™
Introduction to FHIR™
 
FHIR API for Java programmers by James Agnew
FHIR API for Java programmers by James AgnewFHIR API for Java programmers by James Agnew
FHIR API for Java programmers by James Agnew
 
FHIR intro and background at HL7 Germany 2014
FHIR intro and background at HL7 Germany 2014FHIR intro and background at HL7 Germany 2014
FHIR intro and background at HL7 Germany 2014
 
Edifecs- warming up to fhir
Edifecs- warming up to fhirEdifecs- warming up to fhir
Edifecs- warming up to fhir
 
SMART on FHIR by Scot Post van der Burg
SMART on FHIR by Scot Post van der BurgSMART on FHIR by Scot Post van der Burg
SMART on FHIR by Scot Post van der Burg
 
FHIR and DICOM by Marten Smits
FHIR and DICOM by Marten SmitsFHIR and DICOM by Marten Smits
FHIR and DICOM by Marten Smits
 

Destacado

Destacado (20)

Rolling out FHIR - architecture and implementation considerations by Lloyd Mc...
Rolling out FHIR - architecture and implementation considerations by Lloyd Mc...Rolling out FHIR - architecture and implementation considerations by Lloyd Mc...
Rolling out FHIR - architecture and implementation considerations by Lloyd Mc...
 
HL7 Interoperability Standards Review
HL7 Interoperability Standards ReviewHL7 Interoperability Standards Review
HL7 Interoperability Standards Review
 
Exploring HL7 CDA & Its Structures
Exploring HL7 CDA & Its StructuresExploring HL7 CDA & Its Structures
Exploring HL7 CDA & Its Structures
 
Accessing SNOMED CT With FHIR Terminology Services
Accessing SNOMED CT With FHIR Terminology ServicesAccessing SNOMED CT With FHIR Terminology Services
Accessing SNOMED CT With FHIR Terminology Services
 
Route from CCDA to FHIR by Grahame Grieve
Route from CCDA to FHIR by Grahame GrieveRoute from CCDA to FHIR by Grahame Grieve
Route from CCDA to FHIR by Grahame Grieve
 
Understanding clinical data exchange and cda (hl7 201)
Understanding clinical data exchange and cda (hl7 201)Understanding clinical data exchange and cda (hl7 201)
Understanding clinical data exchange and cda (hl7 201)
 
FHIR® Profiling Using Forge and Simplifier.net
FHIR® Profiling Using Forge and Simplifier.netFHIR® Profiling Using Forge and Simplifier.net
FHIR® Profiling Using Forge and Simplifier.net
 
Information+Integration ? Innovation an HL7/EFMI/HIMSS @eHealthweek2015 in Riga
Information+Integration ? Innovation an HL7/EFMI/HIMSS @eHealthweek2015 in RigaInformation+Integration ? Innovation an HL7/EFMI/HIMSS @eHealthweek2015 in Riga
Information+Integration ? Innovation an HL7/EFMI/HIMSS @eHealthweek2015 in Riga
 
: HL7 Survival Guide - Chapter 7 – Gap Analysis
: HL7 Survival Guide - Chapter 7 – Gap Analysis: HL7 Survival Guide - Chapter 7 – Gap Analysis
: HL7 Survival Guide - Chapter 7 – Gap Analysis
 
Interoperability Standards: The Key to Mobile Data
Interoperability Standards:The Key to Mobile DataInteroperability Standards:The Key to Mobile Data
Interoperability Standards: The Key to Mobile Data
 
Health IT Summit Austin 2013 - Case Study "Enabling Data Interoperability thr...
Health IT Summit Austin 2013 - Case Study "Enabling Data Interoperability thr...Health IT Summit Austin 2013 - Case Study "Enabling Data Interoperability thr...
Health IT Summit Austin 2013 - Case Study "Enabling Data Interoperability thr...
 
2014 Standards and Certification Criteria 2014 Edition
2014 Standards and Certification Criteria 2014 Edition2014 Standards and Certification Criteria 2014 Edition
2014 Standards and Certification Criteria 2014 Edition
 
HL7 Interface Lifecycle Management at Interconnected Health 2012
HL7 Interface Lifecycle Management at Interconnected Health 2012HL7 Interface Lifecycle Management at Interconnected Health 2012
HL7 Interface Lifecycle Management at Interconnected Health 2012
 
HL7 Standards
HL7 StandardsHL7 Standards
HL7 Standards
 
Hl7 Message Standard
Hl7 Message StandardHl7 Message Standard
Hl7 Message Standard
 
Public Health Information Model Standards
Public Health Information Model StandardsPublic Health Information Model Standards
Public Health Information Model Standards
 
SMART on FHIR by Scot Post van der Burg
SMART on FHIR by Scot Post van der BurgSMART on FHIR by Scot Post van der Burg
SMART on FHIR by Scot Post van der Burg
 
FHIR architecture overview for non-programmers by René Spronk
FHIR architecture overview for non-programmers by René SpronkFHIR architecture overview for non-programmers by René Spronk
FHIR architecture overview for non-programmers by René Spronk
 
Introduction to hl7 v2
Introduction to hl7 v2Introduction to hl7 v2
Introduction to hl7 v2
 
Introduction to HL7 FHIR
Introduction to HL7 FHIRIntroduction to HL7 FHIR
Introduction to HL7 FHIR
 

Similar a Authoring FHIR Profiles - extended version

Similar a Authoring FHIR Profiles - extended version (14)

FHIR DevDays 2015 - introduction to FHIR
FHIR DevDays 2015 - introduction to FHIRFHIR DevDays 2015 - introduction to FHIR
FHIR DevDays 2015 - introduction to FHIR
 
Structure definition 101 (ewout)
Structure definition 101 (ewout)Structure definition 101 (ewout)
Structure definition 101 (ewout)
 
FHIR API for .Net programmers by Mirjam Baltus
FHIR API for .Net programmers by Mirjam BaltusFHIR API for .Net programmers by Mirjam Baltus
FHIR API for .Net programmers by Mirjam Baltus
 
Vitalis 2016 FHIR App Development
Vitalis 2016 FHIR App DevelopmentVitalis 2016 FHIR App Development
Vitalis 2016 FHIR App Development
 
Security in FHIR with OAuth by Grahame Grieve
Security in FHIR with OAuth by Grahame GrieveSecurity in FHIR with OAuth by Grahame Grieve
Security in FHIR with OAuth by Grahame Grieve
 
HL7 Fhir for Developers
HL7 Fhir for DevelopersHL7 Fhir for Developers
HL7 Fhir for Developers
 
Validation in net and java (ewout james)
Validation in net and java (ewout james)Validation in net and java (ewout james)
Validation in net and java (ewout james)
 
Terminology, value-sets, codesystems by Lloyd McKenzie
Terminology, value-sets, codesystems by Lloyd McKenzieTerminology, value-sets, codesystems by Lloyd McKenzie
Terminology, value-sets, codesystems by Lloyd McKenzie
 
Fhir path (ewout)
Fhir path (ewout)Fhir path (ewout)
Fhir path (ewout)
 
Advanced .net api (ewout)
Advanced .net api (ewout)Advanced .net api (ewout)
Advanced .net api (ewout)
 
FHIR: What's it All About?
FHIR: What's it All About?FHIR: What's it All About?
FHIR: What's it All About?
 
FHIR.pptx
FHIR.pptxFHIR.pptx
FHIR.pptx
 
XDS and CDA with FHIR
XDS and CDA with FHIRXDS and CDA with FHIR
XDS and CDA with FHIR
 
SNOMED CT 2019 -seminaari, työpaja 3: Use of SNOMED CT with HL7 CDA and FHIR
SNOMED CT 2019 -seminaari, työpaja 3: Use of SNOMED CT with HL7 CDA and FHIRSNOMED CT 2019 -seminaari, työpaja 3: Use of SNOMED CT with HL7 CDA and FHIR
SNOMED CT 2019 -seminaari, työpaja 3: Use of SNOMED CT with HL7 CDA and FHIR
 

Último

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
vu2urc
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
Earley Information Science
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
Joaquim Jorge
 

Último (20)

How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024Partners Life - Insurer Innovation Award 2024
Partners Life - Insurer Innovation Award 2024
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
Exploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone ProcessorsExploring the Future Potential of AI-Enabled Smartphone Processors
Exploring the Future Potential of AI-Enabled Smartphone Processors
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdfUnderstanding Discord NSFW Servers A Guide for Responsible Users.pdf
Understanding Discord NSFW Servers A Guide for Responsible Users.pdf
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 

Authoring FHIR Profiles - extended version

  • 1. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Authoring Profiles Ewout Kramer Phoenix, AZ - May 2014
  • 2. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Who am I?  Name: Ewout Kramer  Company: Furore, Amsterdam  Background:  FHIR core team, RIMBAA  Software developer & healthcare architect  Contact:  e.kramer@furore.com  www.thefhirplace.com 2
  • 3. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Introduce ourselves  Who has looked at Profile in the spec for more than 5 minutes?  Who has near-future needs for authoring profiles? 3
  • 4. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Contents of this tutorial 4  Intro to Profiles  Metadata  Structures  Bindings  Formal constraints  Extensions  Slicing  Aggregation
  • 5. © 2013 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 for Profiles  Many different contexts in healthcare, but a single set of Resources  Need to be able to describe restrictions based on use and context  Allow for these usage statements to:  Authored in a structured manner  Published in a repository  Used as the basis for validation, code, report and UI generation. 7
  • 6. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Profiling a resource 8 “Must use only the Dutch national patient identifier” “Need to register an administrative race code for a Patient in the US” “Patient Discharge documents must at least contain section “Discharge Medication” and section “Discharge Diagnosis” “In our Patient registration system, we use these maritalStatus codes beyond those provided by HL7…” “Our patient registration system, only supports having one single name per Patient” + +
  • 7. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Profiling a resource 9 Demand that the identifier uses your national patient identifier Limit names to just 1 (instead of 0..*) Limit maritalStatus to another set of codes that extends the one from HL7 international Add an extension to support “RaceCode” Note: hardly any mandatory elements in the core spec!
  • 8. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. In v3 CDA…”text-based” 11
  • 9. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Profile –a “normal” resource 13 …computable!
  • 10. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Publish them! 15 http://www.profiles2all.com Find & maintain Retrieve & use
  • 11. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Who publishes? http://www.hl7.org/Profile/iso-21090 http://www.hl7.nl/Profile/patient-nl http://www.health4all.nl/h4all-vitals http://www.fit4all.nl/f4all-vitals http://www.data4all.nl/d4all-obs
  • 12. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Tagging a Resource Patient MRN 22234 “Ewout Kramer” 30-11-1972 Amsterdam “I’m a Patient conforming to the Norwegian Profile – see http://hl7.no/Profiles/patient-no” “I’m a Patient conforming to the ContosoHIS Profile – see http://contoso.no/Profiles/patient” “I’m a Patient conforming to the Austrialian Profile – see http://hl7.org.au/Profiles/patient-au”
  • 13. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. (Distributed) validation ContosoHIS’s server Norway national validation server Profile Contoso Profile NO
  • 14. © 2013 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 profile? 19 Metadata “Lipid Profile” v1.0.0 Draft urn:hl7.org:lipid-profile:v1 Author: e.kramer@furore.com Structure “LipidProfile” Extension ‘A’ DiagnosticReport instances (via Tag) Profile at http://hl7.org/fhir/Profiles/lipids-v1 Extension ‘B’ Extension ‘calculated’ Structure “Triglyceride” Structure “LDLCholesterol” DiagnosticReport instance (via Tag) DiagnosticReport instance (via Tag)
  • 15. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Running example…  We are taking the “Lipid Profile” example from the spec from now on.  This is a DiagnosticReport,containing 4 results:  1x Cholesterol  1x Triglyceride  1x HDL Cholesterol  0/1x LDL Cholesterol  And package it up in a message 21
  • 16. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Referring to a profile 22 http://acme.org/Profile/lipids-01 1. Where? DiagnosticReport Lipid Report Wile E. COYOTE 2009-03-03 14:26 Cholesterol 6.3 mmol/L Triglyceride 1.3 mmol/L HDL Chol. 1.3 mmol/L LDL Chol. 4.2 mmol/L Dr. Pete Pathologist, Acme Labs I’m conforming to http://acme.org/Profiles/lipids-01 http://acme.org/Profile/87408b94 or any valid technical FHIR id, not necessarily “comprehensible” or
  • 17. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. More naming  So, Profile has a REST id on a server  Might not be under your control, server assigned  But also:  A “name” – human readable, e.g. “Lipid Profile”  An “identifier” – author-assigned, globally unique  OID (2.16.840.1.113883.10.20.2.1)  UUID (09bd961e-c629-11e3-8841-1a514932ac01)  URN • urn:openEHR.org:EHR-ACTION.medication.v1 • http://hl7.org/fhir/Profiles/iso-21090-2011 23
  • 18. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Versioning…  A “version” – author assigned  So what if you change something after publishing?  Just a typo? Change of definition?  Make something optional that wasn’t?  Make something mandatory that was optional?  Add an extension? 24
  • 19. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. “Non-breaking change”?  If old data can still be: 1. Validated against the new profile 2. Correctly interpreted against the new profile  This can only be determined by the profile’s authors (and even depends on the way it is used)  A breaking change means you are producing a new profile  The profile’s author-assigned identifier changes  A new Profile on the server, with a new REST utl 25
  • 20. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Example 26 Url http://fhir.nl/Profile/patient.v1 Id urn:fhir.nl:profile:patient:v1 Version 1.0.0 Url http://fhir.nl/Profile/patient.v1 Id urn:fhir.nl:profile:patient:v1 Version 1.0.1 …after a small typo, clarification or correction (“bugfix”) becomes… …after a bigger non- breaking change, like an addition, becomes…Url http://fhir.nl/Profile/patient.v1 Id urn:fhir.nl:profile:patient:v1 Version 1.1.0 Url http://fhir.nl/Profile/patient.v2 Id urn:fhir.nl:profile:patient:v2 Version 2.0.0 …after a breaking change (like cardinality) becomes…
  • 21. © 2013 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 profile? 31 Metadata “Lipid Profile” v1.0.0 Draft urn:hl7.org:lipid-profile:v1 Author: e.kramer@furore.com Structure “LipidProfile” Extension ‘A’ DiagnosticReport instances (via Tag) Profile at http://hl7.org/fhir/Profiles/lipids-v1 Extension ‘B’ Extension ‘calculated’ Structure “Triglyceride” Structure “LDLCholesterol” DiagnosticReport instance (via Tag) DiagnosticReport instance (via Tag)
  • 22. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Structures  Profiles contain “Structures”: a set of constraints on (nested) elements of a Resource or Datatype  Sort of a “subclass” of a Resource, with specific limits on its elements  Cardinality  Valuedomains  Invariants 32
  • 23. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Example “Cholesterol observation” is an Observation :  That has a fixed LOINC code 35200-5 (Cholesterol) as its name  Has a quantity as value that’s expressed in mmol/L (a UCUM unit) (without a ‘comparator’) OR ELSE there’s a comment  An interpretation limited to LL,L,N,H,HH  A “recommended” high reference range of 4.5 (no low) mmol/L, independent of age (no age)  Is an independent observation (no related) 33
  • 24. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Let’s start constraining 38 0..1 = ‘ok’ “if no value…” 1..1 1..1 Subject 0..1? Why not 1..1 in spec?
  • 25. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. My First Structure  Let’s do this in Forge  In the middle, under “Structures” press “Add”  Name the structure “cholesterol” using the property panel on the right.  Start setting the cardinalities for each element, by clicking on them in the middle and using the property panel 39
  • 26. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Coded types Codes are defined in code systems In a Profile, we may want to limit the codes that can possibly be used in coded elements in the Resources
  • 27. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Identification of CodeSystems  If you refer to CodeSystems, you use a URL (instead of OID in v2 and v3):  http://snomed.info/sct  http://loinc.org  http://hl7.org/fhir/sid/icd-10  We have introduced them for v2 and v3:  http://hl7.org/fhir/v2/0078  http://hl7.org/fhir/v3/ActClass 45
  • 28. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
  • 29. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. 48 Metadata In/exclude concepts This models what we have been discussing so far: • A ValueSet has metadata (much like Profile: identifier, version, name, etc) • A ValueSet is built by inclusion of terms from CodeSystems • A ValueSet can exclude specific codes from other valuesets • A ValueSet can import codes from other ValueSets
  • 30. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. 49 But it can also enumerate (and so indirectly define) all concepts for a new codesystem • A ValueSet has metadata (much like Profile: identifier, version, name, etc) • A ValueSet is built by defining terms from and for a new CodeSystem • These new concepts have a display label and a definition • …and may be hierarchically organized
  • 31. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Bindings  When used in a Resource, the modelers include Bindings  Bindings specify which codes can be used
  • 32. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Profiling bindings  Depending on “core” spec, you can:  “fixed”: not specify a different binding  “incomplete”: specify a different binding if needed  “example”: very likely specify a different binding  Change the bindings as specified in core:  Define a new ValueSet  Allow additional codes, Restrict to a subset  Specify whether implementers of your profile can deviate from your valueset. 51
  • 33. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. ValueSets In order of precision:  A “true” FHIR ValueSet resource (may be version specific)  A general reference to some web content that defines a set of codes. (e.g. mime types).  A textual description of the possible codes 52
  • 34. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Interpretation Binding  Let us limit http://hl7.org/fhir/vs/observation- interpretation 53 Let’s Define a new ValueSet using codes from the existing Code system http://hl7.org/fhir/v2/0078
  • 35. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Creating ValueSets  By tool first….  Grahame is working on a ValueSet editor called “FHIR ValueSet editor”  Early release version is here… 54
  • 36. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Creating a ValueSet  ValueSet has metadata, just like Profile 55
  • 37. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Including codes 56 Options: Import a whole ValueSet Include codes from a Coding System Exclude codes from a Coding System
  • 38. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Save to server… 57
  • 39. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Conformance levels IsExtensible “N” IsExtensible “Y” Required “SHALL” Validation error, non- conformant Additional codes allowed Preferred “SHOULD” “Guidance” Validation warning, discouraged Supplemental codes likely Alternatives allowed Example “MAY” Just a suggestion, no preference 59 If implementers of your profile provide a different code than you have in your profile….
  • 40. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Refer to ValueSet  And now…make the Profile point to the newly created ValueSet using Forge 60
  • 41. © 2013 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 profile? 61 Metadata “Lipid Profile” v1.0.0 Draft urn:hl7.org:lipid-profile:v1 Author: e.kramer@furore.com Structure “LipidProfile” Extension ‘A’ DiagnosticReport instances (via Tag) Profile at http://hl7.org/fhir/Profiles/lipids-v1 Extension ‘B’ Extension ‘calculated’ Structure “Triglyceride” Structure “LDLCholesterol” DiagnosticReport instance (via Tag) DiagnosticReport instance (via Tag) ValueSet A ValueSet A ValueSet A
  • 42. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Formal constraints  …beyond cardinalities and bindings, there are a lot of other conditions you might want to formulate:  “If a Cholesterol value result is not available, use the comments field”  “A patient’s birthdate must be on or before today’s date”  These may concern a single element, or conver multiple elements. 62
  • 43. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Formal constraints  Uses free text (human) + xpath (executable)  Constraints should be declared on lowest element in the hierarchy that is common to all nodes referenced by the constraint.  Identified by (local) ‘Key’, involved elements refer to that id  Specify severity (“error” or “warning”) 63
  • 44. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Context of the constraint 64 • This constraint is on the elements “valueQuantity” and “comments” • We would have to formulate this constraint on the Observation, this is the context of the constraint • We assign the constraint a “key” value that’s unique within the Observations’ constraints • We refer from both “value[x]” and “comments” to this “key”. This means: if my value changes -> revalidate the constraint “If a Cholesterol value result is not available, use the comments field”
  • 45. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Add constraint  Let’s do this in Forge  Click the Cholesterol Observation (that’s the context, remember!), add under the “Constraints” in the property panel  Give it key “chol-01”  Click both “value[x]” and “comment” and set their condition to “chol-1”. 67
  • 46. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Extensions  Add the fact that: “a LDL Cholesterol value is calculated”  There’s no such indication on Observation (or Observation.value) -> Extension  !!Note!! - You’re not extending a resource per se, but you specify where an extension applies. This may be multiple places.  So “haircolor” may be applied to “Patient” and “Practitioner” 68(c) 2012 HL7 International5/5/2014
  • 47. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Extension Context  An extension has a context type  Resource, Datatype, Extension, Mapping  And a context path  (Resource) Observation  “The observation was calculated”  (Resource) Observation.value  “The observation’s ‘value’ was calculated”  (Datatype) Quantity  “This quantity was calculated” (any Quantity used in any resource!) 69(c) 2012 HL7 International5/5/2014
  • 48. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Extension definition 70 Note: multiple contexts!
  • 49. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Extending a name 71 Key = location of formal definition Value = value according to definition
  • 50. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Authoring an extension  Let’s do this in Forge  Open the “Extensions” tab in the middle of the screen  Press “Add”  Give it a name, context and datatype 74
  • 51. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Where are we? 75 Cholesterol Observation name: loinc.org#35200-5 Triglyceride Observation name: loinc.org#35217-9 HDL Cholesterol Observation name: loinc.org#2085-9 LDL Cholesterol Observation name: loinc.org#13457-7 Quantity (lipidQuantity) use ValueSet (lipidInterpretat ion) bind Extension (calculated) bool applies to TODO: DiagnosticReport containing 4 results: • 1x Cholesterol • 1x Triglyceride • 1x HDL Cholesterol • 0/1 LDL Cholesterol
  • 52. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. The Diagnostic Report 76 Cholesterol Triglyceride HDL Cholesterol LDL Cholesterol = loinc.org#57698-3 (Lipid panel with direct LDL) 1 1 1 0/1
  • 53. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Slicing! 77 ResourceReference(Observation) Result: ResourceReference(Observation) ResourceReference(Observation) ResourceReference(Observation) ResourceReference(Observation) ResourceReference(Observation) ResourceReference(Observation) … Cholesterol Observation name: loinc.org#35200-5 Triglyceride Observation name: loinc.org#35217-9 HDL Cholesterol Observation name: loinc.org#2085-9 LDL Cholesterol Observation name: loinc.org#13457-7 0..*3..4 ResourceReference(Observation) Discriminator 1..1 1..1 1..1 0..1 "There MUST be exactly one Observation with LOINC 35200-5. And if you find it, it must conform to our "Cholesterol" Structure
  • 54. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Properties of slices  Each slicing group indicates a discriminator  here, that is Observation.name  Each slicing group indicates a cardinality  here, that was 3..4  Each slice indicates its own cardinality within the slice  here 1..1 for chol,trig,hdlc, 0..1 for ldlc  Each slice indicates additional constraints  here "must conform to Cholesterol structure" etc.78
  • 55. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Authoring slices  Let’s do this in Forge  Click "result" and then "Slice" above property panel  Indicate the discriminator and the cardinality for the whole slice  Click "Add slice" (4x), and name each slice, give it the cardinality, tie Reference to "#cholesterol", "#triglyceride" etc.79
  • 56. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. One step further! 80 Cholesterol Triglyceride HDL Cholesterol LDL Cholesterol DiagnosticReport data: Resource(DiagnosticReport#lipidPanel) 1..1 Package the DiagnosticReport in a "LipidResultMessage"
  • 57. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. FHIR server @ hospitalA.org Practitioner Bernard FHIR Message Bundle Message Header Diagnostic Report Adata Maybe we want this… 82 FHIR server @ pat.registry.org Patient Joesubject HDL Obs 34 Triglyceride Obs 78 Cholesterol Obs 1
  • 58. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Aggregation  Aggregation: for each ResourceReference choose one to all of these options: 83 Code Definition contained Reference to a contained resource. referenced Reference to to a resource that has to be resolved externally ..bundled Reference points to will be found in the same bundle read: Message, Document
  • 59. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Authoring slices  Let’s do this in Forge  Pick any of the ResourceReferences in the model.  Notice none of the checkboxes next to a ResourceReference is checked: all aggregation types are allowed  Now select those checkboxes to change 84
  • 60. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Finally…  Examples (broken)  http://hl7.org/implement/standards/fhir/profile- examples.html  Forge download  http://fhir.furore.com/forge/  Find this presentation on SlideShare 89
  • 61. © 2013 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Questions? 90