SlideShare a Scribd company logo
1 of 87
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
HL7 FHIR Training
course
Ewout Kramer
March 2014
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Afternoon program
 Support for Implementing FHIR
 Bundles, Documents and Messages
 Exercise #3
 Search and Using the C#/Java API‟s
 Exercise #4
 Profiles and Conformance
 The HL7 family & FHIR
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
DEVELOPER RESOURCES
Get started with FHIR quickly
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Browsing the site
 REST API
 Data Types
 XML & JSON
 Codes / Terminologies
 Resource List
 Stack Overflow
 Public Test servers
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
The FHIR distribution
 Under Implementation-Support-Downloads:
 The XSD schema‟s / schematrons
 The Java / C# / Delphi zips (model, serializers,
parsers, etc, both code & binary)
 All xml + json examples
 Full spec for offline reading (always have your
FHIR with you)
Note! .NET implementation has moved to GitHub,
distribution by NuGet (.NET) and Maven (Java)
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Publication process
.INI
Publication tool
(org.hl7.fhir.tools.jar)
Java, C#,
Delphi
eCoreDefinitions.xml
Website
Validation
Schema‟s
Examples
DictXml Resource
profiles
Resource
UML
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Generator writers!
 There‟s a file called eCoreDefinitions.xml
that the C# generator runs of. It has all
details from the definitions
 There are Profiles for each resource,
basically describing the “unconstrained”
resources
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
SEARCH FUNCTIONALITY
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Getting “all” patients
 http://server.org/fhir/Patient
 Always returns a paged feed
 Use _count to indicate number of results per page
 Special case of the “real” search operation:
http://server.org/fhir/Patient/_search?name=eve
http://server.org/fhir/Patient?name=eve
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Search (patient)
Each resource has a set of “standard”
search operations, so not every element
can be searched!:
Our last search
used this one
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Combining parameters
 Specifying multiple parameters finds
resources matching all params  “AND”
 Parameters may list multiple values  “OR”
 http://server.org/fhir
/Patient/_search?
birthdate=1972-11-30
&language=NL,FR
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Search (patient)
Each search parameter has a „type‟
Parameter
Type
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Ok I get it…or not?
http://server.org/fhir/Patient/ 406 hits
http://server.org/fhir/Patient?gender=M 234 hits
http://server.org/fhir/Patient?gender=F 167 hits
Total: 234 + 167 = 401
http://server.org/fhir/Patient/ 406 hits
http://server.org/fhir/Patient?gender=M 234 hits
http://server.org/fhir/Patient?gender=F 167 hits
http://server.org/fhir/Patient?gender:missing=true 5 hits
Total: 234 + 167 + 5 = 406
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Chained searches
 Patient has a search for “name”.
 Observation has a search for “subject” (the
id of the Patient, Group or Device)
 How do I find Observations for a
patient, searching using his name?
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
2 queries in 1
 You (as a client) don‟t need to do separate
operations, just one:
http://server.com/fhir/Observation/_search?
subject.name=jim
But note: this still only works on the predefined
search parameters. You cannot just use any
property of the resource.
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
More optimalizations
 Say we do:
 http://fhir.com/fhir/Observation?date=2014-01-20
 We get back: a Bundle with 0..* “Observations”
 Now, usually, wouldn‟t we want the Patient
information too? => Need to do “N” queries
for the Observation‟s “subject”
 Quicker:
?_include=Observation.subject
Returns both Observations + Patients
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
BUNDLES
How FHIR uses Atom to communicate sets of resources
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Communicating lists
 We need to communicate lists of Resources
 Search result
 History
 Documents or messages
 Multiple-resource inserts (“batches”)
 So, we need an industry-standard to
represent lists, and a place to put our
metadata
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Bundle
Resource
Narrative
Elements
ExtensionsExtensions
Resource
Metadata
Bundle
Metadata
Resource
Resource
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Bundles
 Atom RFC 4287 + Tombstones RFC 6721
 Poll-based protocol for keeping up-to-date
with newsfeeds (RSS and Atom)
 You can “subscribe” to a FHIR feed and get
updates
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
New reports in the mail
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
An example Bundle
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Patient
MRN 22234
“Ewout Kramer”
30-11-1972
Amsterdam
Resource metadata
Metadata
Resource Identity
http://fhir.hl7.org/Patient/23E455A3B
Last updated
2013-12-23T23:33:01+01:00
http://hl7.org/fhir/tag/profile
http://hl7.org/fhir/Profile/us-core
http://hl7.org/fhir/tag
http://example.org/fhir/Status#Test
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Resource Entry
Resource id
Last modified
Resource content
Human-readable form,
just like Resource.text
Tags
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Atom in JSON
 There‟s not yet a way to render Atom in
JSON, though there are initiatives, all ugly.
 So, we had to (sorry) roll our own….
 …very straightforward, single-purpose
 Atom JSON solution
 (Note: MIME type is still application/json!)
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Json Atom - Example
{
"title": "Search result",
"updated": "2012-09-20T12:04:45Z",
"id": "urn:uuid:50ea3e5e-b6a7-4f55-956c-caef491bbc08",
"link": [ { "rel": "self", "href": "http://server.org/fhir/Patient?format=json" } ],
"entry": [
{ "title": "Resource of type Patient, with id = 1 and version = 1",
"link": [ { "rel": "self", "href": "http://server.org/fhir/Patient/1/_history/1" } ],
"id": "http://server.org/fhir/Patient/1",
"updated": "2012-05-29T23:45:32Z",
"published": "2012-09-20T12:04:47Z",
"author": [ { "name": "Grahame Grieve / HL7 publishing committee" } ],
"content":
{ "Patient": { } }
}
]
}
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
BEYOND REST
How FHIR supports documents and messages
© 2012 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 document?
 Persistence: continues to exist in an unaltered state
 Stewardship: maintained by a person or organization
entrusted with its care.
 Potential for authentication: an assemblage of
information that is intended to be legally authenticated.
 Wholeness. Authentication of a clinical document applies
to the whole and does not apply to portions of the
document without the full context of the document.
 Human readability. A clinical document is human
readable.
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
The Document resource
A single Resource, very often a List
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Documents – are
bundles
Observation Resource
Composition Resource
Section
Section
Device Resource
Patient Resource
Prescription Resource
<feed>
<entry>
<Composition />
</entry>
<entry>
<Observation />
</entry>
<entry>
<Device />
</entry>
<entry>
<Prescription />
</entry>
<entry>
<Patient />
</entry>
</feed>
AttesterMetadata
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Tag as “Document”
This Bundle
is a
Document
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Communicating
documents
 You can “drop” your document on
 http://server.org/fhir/Mailbox
 No storage or disassembly is implied, your
just posting a document in its entirety.
 Servers can implement any specific
functionality as required between trading
partners when receiving such a document.
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Communicating
documents
 You can store your document using
 http://server.org/fhir/Document
 Storage, NO disassembly is implied,
document (and signature) stays intact
 Search is supported (you search on it‟s
Message header – Composition)
NEW!
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
MessageHeader
Resource
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Messages – are bundles
Observation Resource
Message Resource
source destination
Device Resource
Patient Resource
<feed>
<entry>
<MessageHeader />
</entry>
<entry>
<Observation />
</entry>
<entry>
<Patient />
</entry>
<entry>
<Device />
</entry>
</feed>
event
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Tag as “Message”
This Bundle
is a
Message
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Sending messages
 Again, REST not necessary, but…
 There is an explicit REST endpoint:
 http://server.org/fhir/Mailbox
 No storage implied. Might be a router,
converted to v2, etc. etc.
 The server can process them based on the
event code and return the response as
another message (again a bundle).
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Exercise #3
Composing a Document
(45 minutes)
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
HL7.FHIR SUPPORT API
Using the C# Reference Implementation
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Reference
implementations
- Contents
- Model – classes generated from the spec
- Parsers – Parsers generated from the spec
- Serializers – Serializers generated from the spec
- FhirClient
- Validation (currently Java only)
- Java – Everything on the downloads page
- .NET – NuGet “FHIR”, or GitHub “fhir-net-api”
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
A FHIR Resource in C#
public partial class Observation : Resource
{
// Codes that provide reliability information about an observation
public enum ObservationReliability {Ok, Ongoing, …}
// Codes identifying interpretations of observations
public enum ObservationInterpretation {N, A, L, H }
public CodeableConcept Name { get; set; }
public List<ObservationReferenceRangeComponent> ReferenceRange { get; set;}
public Code<Observation.ObservationReliability> Reliability { get; set; }
public ResourceReference Performer { get; set; }
}
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Object Model
51
[FhirResource("DiagnosticReport")]
public partial class DiagnosticReport : Resource
{
public Code<ObservationStatus> Status {…}
public Instant Issued {…}
public ResourceReference Subject {…}
public ResourceReference Performer {…}
public Identifier ReportId {… }
public
List<DiagnosticReportRequestDetailComponent>
RequestDetail { …}
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Primitives are not really
primitive…
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Parsing/Serializing using
C#
// Create a file-based reader for Xml
XmlReader xr = XmlReader.Create(
new StreamReader(@"publishobservation-example.xml"));
// Parse the Observation from the stream
var obs = (Observation)FhirParser.ParseResource(xr);
// Modify some fields of the observation
obs.Status = Observation.ObservationStatus.Amended;
obs.Value = new Quantity() { Value = 40, Units = "g" };
// Serialize the in-memory observation to Json
var jsonText = FhirSerializer.SerializeResourceToJson(obs);
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Parsing/Serializing using
Java
XmlParser xml = new XmlParser();
Observation obs = (Observation)xml.parse(new
FileInputStream(“observation.xml"));
obs.setStatusSimple(ObservationStatus.amended);
Quantity newValue = new Quantity();
newValue.setValueSimple(new BigDecimal(40));
newValue.setUnitsSimple("g");
obs.setValue( newValue );
ByteArrayOutputStream bos = new ByteArrayOutputStream();
JsonComposer comp = new JsonComposer();
comp.compose(bos, obs, true);
String json = bos.toString("UTF8");
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Bundles
 For both Java and C#, reference has
custom-built Atom parser
 For .NET, you could use the framework‟s
SyndicationFeed
 A bit more low-level
 No support for deleted-entries (even parse
problems)
 Incompatible with WinRT (Win8 mobile apps)
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Bundles in C#
 Abstraction on top of Atom parser
 Bundle = feed, BundleEntry = entry.
Bundle result = new Bundle() { Title = "Demo bundle" };
result.Entries.Add(new ResourceEntry<Patient>()
{ LastUpdated=DateTimeOffset.Now, Content = new Patient() });
result.Entries.Add(new DeletedEntry()
{ Id = new Uri("http://..."), When = DateTime.Now });
var bundleXml = FhirSerializer.SerializeBundleToXml(result);
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Bundles in Java
AtomFeed feed = new AtomFeed();
feed.setTitle("Demo bundle");
AtomEntry pat = new AtomEntry();
pat.setUpdated(Calendar.getInstance());
pat.setResource(new Patient());
feed.getEntryList().add(pat);
AtomEntry del = new AtomEntry();
del.setUpdated(Calendar.getInstance());
del.setDeleted(true); del.setId("http://nu.nl/fhir");
feed.getEntryList().add(del);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
AtomComposer comp = new AtomComposer();
comp.compose(bos, feed, true);
String xml = bos.toString("UTF8");
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Using FHIR Client in C#
var client = new FhirClient(
new Uri("http://fhir.com/svc/fhir"));
var patEntry = client.Read<Patient>("1");
var pat = patEntry.Resource;
var restId = patEntry.Id;
var tags = patEntry.Tags;
pat.Name.Add(HumanName.ForFamily("Kramer")
.WithGiven("Ewout"));
client.Update<Patient>(patEntry);
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Using FHIR Client in
Java
FHIRClient client = new FHIRSimpleClient();
client.initialize("http://spark.furore.com/fhir");
AtomEntry<Patient> pe = client.read(Patient.class, "1");
Patient p = pe.getResource();
HumanName hn = new HumanName();
hn.getFamily().add(Factory.newString_("Kramer"));
hn.getGiven().add(Factory.newString_("Ewout"));
p.getName().add(hn);
client.update(Patient.class, p, "1");
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Exercise #4
Using the FHIR
C# and Java API’s
(60 minutes)
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
PROFILES, VALIDATION
AND CONFORMANCE
Introducing
© 2012 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.
© 2012 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
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!
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Structured & published
 A Profile is just a “normal” Resource
 Any FHIR server could serve Profiles (just
like Patients, Observations, etc…)
 So, any FHIR server is a profile repository!
 A resource is simply referred to by its URI:
 e.g. http://hl7.org/fhir/Profile/iso-21090
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Using profiles
 When communicating a resource, you can
indicate the profiles it conforms to.
 A server might explicitly state it only accepts
resources conforming to a certain profile
(and verify!)
 You can ask a FHIR server to validate a
resource against a given profile
© 2012 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
http://hl7.org/fhir/tag/security
http://hl7.org/fhir/v3/ActCode#TABOO
http://hl7.org/fhir/tag
http://example.org/fhir/Status#Test
http://hl7.org/fhir/tag/profile
http://hl7.org/fhir/Profile/us-core “a claim that the Resource
conforms to the profile
identified in the term”
© 2012 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/fhir/Profile/iso-21090
http://www.hl7.nl/fhir/Profile/patient-nl
http://www.health4all.org/fhir/Profile/
© 2012 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?
Metadata
Identifier
Name, Version
Publisher
Description, Code
Status
Date (of publication)
Resource and
Datatype
Constraints
Extension
Conformance
Resource
(via Tag)
ValueSet
ValueSet
Extension in
Resource
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Scale / design
 Make a profile with just extensions
 Make a profile with just 1 resource +
extensions on that resource
 Make a profile with all (say national)
resources + extensions.
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Profile metadata
 Identifier: Universally unique identifier, assigned by author
value=“urn:hl7.org:extensions:iso-21090“ or “2.16.840.1.113883.10.20.2.1”
 Version: Version of the profile, manually maintained by author. Suggested
format: a timestamp (e.g. 2013-01-01T12:34:45)
 Name: Free natural text name (e.g. “ISO 21090 Data Type Extensions”)
 Publisher: organization or individual responsible for publishing. Should be
populated (e.g. “FHIR Project Team“)
 Telecom: one or more contact points of the publisher (telephone, email,
website etc)
 Description: longer description of the contents of the profile
 Code: one or more coded descriptions to help with finding the profile
 Status (fixed choice of draft, active, retired) + experimental Y/N
 Requirements: scope & usage (the “need” or “why” of the profile)
 Date (of publication), e.g. “2013-07-07"
© 2012 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
App‟s server
Store &
Validate
Country validation server
Profile X
Profile Y
Profile Y
Validate
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Validation
 When receiving an XML resource
 1. Validate using schema
 2. Run schematrons
 When receiving JSON
 1. Parse the JSON
 2. Serialize to XML
 3. Validate using schema
 4. Run schematrons
 There‟s a validation pack for Java
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Operation Outcome
 When something goes wrong….return the
OperationOutcome Resource!
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Conformance
 There‟s a resource for documenting conformance
to FHIR
 Can be used for:
 Stating how a specific system instance behaves
 Defining how a software system is capable of behaving
(including configuration options)
 Identifying a desired set of behavior (e.g. RFP)
 To declare themselves “FHIR Conformant”, a
system must publish a Conformance instance
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Conformance
Resource
• Which wire formats supported?
• Which resources?
• What documents, messages does
the server accept, what does the
content look like?
• Which protocols? http? Mllp? ftp?
• Which operations (read, create,
update, search)
• Which FHIR version?
• What search operations?
• Is this a test server?
• Who can I contact?
• What‟s the name of the software?
http://www.hl7.org/implement/standards/fhir/conformance.html
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
How to get conformance
 Conformance is again, just a Resource
 Any FHIR server will publish his own
conformance at a special endpoint
 A FHIR server may store and publish any
number of additional Conformance
resources, so you can refer to them
 Able to validate by automated testing
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
HL7 FAMILY AND FHIR
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
V2 and FHIR
Similarities
 Built around re-usable
“chunks” of data
 Strong forward/backward
compatibility rules
 Extensibility mechanism
FHIR Differences
 Each chunk (resource) is
independently
addressable
 More than messages
 Human readable required
 Extensions don‟t collide,
are discoverable
 Modern tools/skills
 Instances easy to read
 Lighter spec
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Migration – v2
 Already have an integration engine that
supports translation between v2 and FHIR
 Resources map to segments reasonably well
 As always, the challenge with v2 mapping is
the variability of v2 interfaces
 “Common” mappings can be created, but they
won‟t be one size fits all
HL7 v2
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
…and v2 mappings
Every Resource has v2 mappings specified, e.g.:
http://www.hl7.org/fhir/patient-mappings.html#http://hl7.org/v2
Patient
identifier PID-3
name PID-5, PID-9
telecom PID-13, PID-14, PID-40
gender PID-8
birthDate PID-7
deceased[x] PID-30
address PID-11
maritalStatus PID-16
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
V3 and FHIR
Similarities
 Based on RIM, vocab &
ISO Data types
foundations
 Support XML syntax
FHIR Differences
 Simpler models & syntax
(reference model hidden)
 Friendly names
 Extensibility with
discovery
 Easy inter-version wire
compatibility
 Messages, documents,
etc. use same syntax
 JSON syntax too
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
CDA and FHIR
Similarities
 Support profiling for
specific use-cases
 Human readability is
minimum for
interoperability
 APIs, validation tooling,
profile tooling
 (See v3 similarities on
prior slide)
FHIR Differences
 Can use out of the box –
no templates required
 Not restricted to just
documents
 Implementer tooling
generated with spec
 (See v3 differences on
prior slide)
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Migration – CDA
 Made more complex by human-readable
nature
 Need to ensure text <-> entry linkages are
retained
 Will best be handled on a template by
template basis
 Likely start with important ones like C-CDA
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
For v3 CDA…
 Documents MAY be communicated using
REST:
 And stored as a single “blob” – the whole
document
 And disassembled into the contained resources
 But ftp, MLLP, e-mail, SOAP is all fine
 There is a project underway mapping Green
CDA to FHIR
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
…and v3 mappings
Every Resource has v3 mappings specified, e.g.:
http://www.hl7.org/fhir/patient-mappings.html#http://hl7.org/v3
Patient Patient
identifier ./id
name ./name
telecom ./telecom
gender ./administrativeGender
birthDate ./birthTime
deceased[x] ./deceasedInd
address ./addr
maritalStatus ./maritalStatus
multipleBirth[x] .multipleBirthInd
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
FHIR and Services
Similarities
 Encourage context
neutral, re-usable
structures with defined
behavior
 RESTful interface is a
simple SOA interface
FHIR differences
 Consistent data
structures across
services
 Ease of transport across
paradigms message <->
service <-> document <->
REST
 Standard framework for
defining/discovering
services
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Market Sharev2
• De facto standard for in-
institution communication
• Standard in many countries
for cross-institution
communication
CDA
• High market penetration,
particularly of CCD and CCDA
variants due to meaningful
use
• Significant on-going growth
v3
• Mandated use in a few
jurisdictions
• Little uptake outside of those
mandates
FHIR
• None
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Maturityv2
• In use for over 25 years
• Broadly supported by industry
tools
• Now on
• Familiarity with both
capabilities and limitations
(and work-arounds)
CDA
• In use for over 12 years
• Implemented in a variety of
settings all around the world
v3
• In development for over 13
years
• Some specifications have had
multiple releases
• Limited uptake
FHIR
• First thought of less than 2
years ago
• Just passed DSTU ballot
• Won‟t be a normative spec for
several more years, minimum
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
So why use anything
else?
 FHIR is brand new
 No market share
 Only recently passed DSTU ballot
 Little track record
 Business case
 No-one dumps existing working systems just
because something new is “better”
 Large projects committed to one standard won‟t
change direction quickly (or even at all)
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Simple message
 Yes, FHIR has the potential to supplant HL7 v3,
CDA and even v2
 However
 It‟s not going to do so any time soon
 No one's going to throw away their investment in
older standards to use FHIR until
1. The specification has a good track record
2. It‟s clear the new thing provides significant benefits
 HL7 will support existing product lines so
long as the market needs them
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
(XDS) references
Document Reference Resources are used in document indexing systems,
and are used to refer to:
• CDA documents in FHIR systems
• FHIR documents stored elsewhere (i.e. registry/repository following the
XDS model)
• PDF documents, and even digital records of faxes where sufficient
information is available
• Other kinds of documents, such as records of prescriptions.
A document reference resource is used
to describe a document that is made
available to a healthcare system.
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
IHE MHD
“This winter (…) the Volume 2 part of Mobile
Health Documents (MHD) will be replaced with
the appropriate content describing a profile of
DocumentReference to meet the needs of
MHD and the family of Document Sharing in
XDS, XDR, and XCA.”
John Moehrke, august 16, 2013
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Balloting plans
 First Draft Standard for Trial Use ballot (DSTU) complete
 Recently HL7 decided FHIR is now published as a DSTU
 Will provide a semi-stable platform for implementers while still
allowing non-backward-compatible change for Normative version
if implementation experience dictates
 Additional DSTU versions roughly annually to make fixes,
introduce new resources
 Normative is around 3 years out
 We want *lots* of implementation experience before committing to
backward compatibility
93
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
Next Steps for you
 Read the spec: http://hl7.org/fhir
 Try implementing it
 Come to a (European?) Connectathon!
 fhir@lists.hl7.org
 #FHIR
 Implementor’s Skype Channel
 FHIR Developer Days (November 24 – 26), Amsterdam
 StackOverflow: hl7 fhir tag
© 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
The End – The big brake!
Questions?

More Related Content

What's hot

Patient matching in FHIR
Patient matching in FHIRPatient matching in FHIR
Patient matching in FHIRGrahame Grieve
 
Fhir basics session 1 Introduction to Interoperabilty & Principles of FHIR
Fhir basics session 1 Introduction to Interoperabilty & Principles of FHIRFhir basics session 1 Introduction to Interoperabilty & Principles of FHIR
Fhir basics session 1 Introduction to Interoperabilty & Principles of FHIRKumar Satyam
 
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 BaltusFHIR Developer Days
 
Fhir basics session4_conformance_and_terminology
Fhir basics session4_conformance_and_terminologyFhir basics session4_conformance_and_terminology
Fhir basics session4_conformance_and_terminologyKumar Satyam
 
Understanding Resources in FHIR - Session 3 of FHIR basics training series
Understanding Resources in FHIR - Session 3 of FHIR basics training seriesUnderstanding Resources in FHIR - Session 3 of FHIR basics training series
Understanding Resources in FHIR - Session 3 of FHIR basics training seriesKumar Satyam
 
FHIR Profiles
FHIR ProfilesFHIR Profiles
FHIR ProfilesDavid Hay
 
Authoring Profiles in FHIR
Authoring Profiles in FHIRAuthoring Profiles in FHIR
Authoring Profiles in FHIREwout Kramer
 
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é SpronkFHIR Developer Days
 
Hl7 standard
Hl7 standardHl7 standard
Hl7 standardMarina462
 
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 McKenzieFHIR Developer Days
 
fhir and loinc
fhir and loincfhir and loinc
fhir and loincDevDays
 
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 AgnewFHIR Developer Days
 
HL7 FHIR For Medical Professionals.pdf
HL7 FHIR For Medical Professionals.pdfHL7 FHIR For Medical Professionals.pdf
HL7 FHIR For Medical Professionals.pdfJanaka Peiris
 
Hl7 vs fhir
Hl7 vs fhirHl7 vs fhir
Hl7 vs fhirThiyagu2
 
FHIR Profiling tutorial
FHIR Profiling tutorialFHIR Profiling tutorial
FHIR Profiling tutorialEwout Kramer
 

What's hot (20)

Patient matching in FHIR
Patient matching in FHIRPatient matching in FHIR
Patient matching in FHIR
 
Fhir basics session 1 Introduction to Interoperabilty & Principles of FHIR
Fhir basics session 1 Introduction to Interoperabilty & Principles of FHIRFhir basics session 1 Introduction to Interoperabilty & Principles of FHIR
Fhir basics session 1 Introduction to Interoperabilty & Principles of FHIR
 
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
 
Fhir basics session4_conformance_and_terminology
Fhir basics session4_conformance_and_terminologyFhir basics session4_conformance_and_terminology
Fhir basics session4_conformance_and_terminology
 
Understanding Resources in FHIR - Session 3 of FHIR basics training series
Understanding Resources in FHIR - Session 3 of FHIR basics training seriesUnderstanding Resources in FHIR - Session 3 of FHIR basics training series
Understanding Resources in FHIR - Session 3 of FHIR basics training series
 
Introduction to HL7 FHIR
Introduction to HL7 FHIRIntroduction to HL7 FHIR
Introduction to HL7 FHIR
 
What is FHIR
What is FHIRWhat is FHIR
What is FHIR
 
FHIR Profiles
FHIR ProfilesFHIR Profiles
FHIR Profiles
 
An Introduction to HL7 FHIR
An Introduction to HL7 FHIRAn Introduction to HL7 FHIR
An Introduction to HL7 FHIR
 
Authoring Profiles in FHIR
Authoring Profiles in FHIRAuthoring Profiles in FHIR
Authoring Profiles in FHIR
 
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
 
Hl7 standard
Hl7 standardHl7 standard
Hl7 standard
 
Health Level 7
Health Level 7Health Level 7
Health Level 7
 
The hitchhiker's guide to hl7
The hitchhiker's guide to hl7The hitchhiker's guide to hl7
The hitchhiker's guide to hl7
 
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 and loinc
fhir and loincfhir and loinc
fhir and loinc
 
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
 
HL7 FHIR For Medical Professionals.pdf
HL7 FHIR For Medical Professionals.pdfHL7 FHIR For Medical Professionals.pdf
HL7 FHIR For Medical Professionals.pdf
 
Hl7 vs fhir
Hl7 vs fhirHl7 vs fhir
Hl7 vs fhir
 
FHIR Profiling tutorial
FHIR Profiling tutorialFHIR Profiling tutorial
FHIR Profiling tutorial
 

Viewers also liked

Explain Kerberos like I'm 5
Explain Kerberos like I'm 5Explain Kerberos like I'm 5
Explain Kerberos like I'm 5Lynn Root
 
Advanced .NET API (Ewout)
Advanced .NET API (Ewout)Advanced .NET API (Ewout)
Advanced .NET API (Ewout)Ewout Kramer
 
Vitalis 2016 FHIR Introduction
Vitalis 2016 FHIR IntroductionVitalis 2016 FHIR Introduction
Vitalis 2016 FHIR IntroductionEwout Kramer
 
IHE France on FHIR
IHE France on FHIRIHE France on FHIR
IHE France on FHIREwout Kramer
 
Healthcare on Fire: A Beginner Guide to HL7 FHIR
Healthcare on Fire: A Beginner Guide to HL7 FHIRHealthcare on Fire: A Beginner Guide to HL7 FHIR
Healthcare on Fire: A Beginner Guide to HL7 FHIRvigyanix
 
Introduction to FHIR - New Zealand Seminar, June 2014
Introduction to FHIR - New Zealand Seminar, June 2014Introduction to FHIR - New Zealand Seminar, June 2014
Introduction to FHIR - New Zealand Seminar, June 2014David Hay
 
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 BurgFHIR Developer Days
 
FHIR for Architects and Developers - New Zealand Seminar, June 2014
FHIR for Architects and Developers - New Zealand Seminar, June 2014FHIR for Architects and Developers - New Zealand Seminar, June 2014
FHIR for Architects and Developers - New Zealand Seminar, June 2014David Hay
 
Create FHIR-Enabled Experiences: API-First Approach for Healthcare Apps
Create FHIR-Enabled Experiences: API-First Approach for Healthcare AppsCreate FHIR-Enabled Experiences: API-First Approach for Healthcare Apps
Create FHIR-Enabled Experiences: API-First Approach for Healthcare AppsApigee | Google Cloud
 
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 2014Ewout Kramer
 
Vitalis 2016 FHIR App Development
Vitalis 2016 FHIR App DevelopmentVitalis 2016 FHIR App Development
Vitalis 2016 FHIR App DevelopmentEwout Kramer
 
HL7 FHIR - Out-of-the-box eHealth interoperability
HL7 FHIR - Out-of-the-box eHealth interoperabilityHL7 FHIR - Out-of-the-box eHealth interoperability
HL7 FHIR - Out-of-the-box eHealth interoperabilityEwout Kramer
 
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 GrieveFurore_com
 
Cyber Security Standards Update: Version 5 by Scott Mix
Cyber Security Standards Update: Version 5 by Scott MixCyber Security Standards Update: Version 5 by Scott Mix
Cyber Security Standards Update: Version 5 by Scott MixTheAnfieldGroup
 
FHIR Client Development with .NET
FHIR Client Development with .NETFHIR Client Development with .NET
FHIR Client Development with .NETBrian Postlethwaite
 
Information Models & FHIR --- It’s all about content!
Information Models & FHIR --- It’s all about content!Information Models & FHIR --- It’s all about content!
Information Models & FHIR --- It’s all about content!Koray Atalag
 
Hl7 uk fhir the basics
Hl7 uk fhir the basicsHl7 uk fhir the basics
Hl7 uk fhir the basicsEwout Kramer
 

Viewers also liked (18)

Explain Kerberos like I'm 5
Explain Kerberos like I'm 5Explain Kerberos like I'm 5
Explain Kerberos like I'm 5
 
FHIR REST API
FHIR REST APIFHIR REST API
FHIR REST API
 
Advanced .NET API (Ewout)
Advanced .NET API (Ewout)Advanced .NET API (Ewout)
Advanced .NET API (Ewout)
 
Vitalis 2016 FHIR Introduction
Vitalis 2016 FHIR IntroductionVitalis 2016 FHIR Introduction
Vitalis 2016 FHIR Introduction
 
IHE France on FHIR
IHE France on FHIRIHE France on FHIR
IHE France on FHIR
 
Healthcare on Fire: A Beginner Guide to HL7 FHIR
Healthcare on Fire: A Beginner Guide to HL7 FHIRHealthcare on Fire: A Beginner Guide to HL7 FHIR
Healthcare on Fire: A Beginner Guide to HL7 FHIR
 
Introduction to FHIR - New Zealand Seminar, June 2014
Introduction to FHIR - New Zealand Seminar, June 2014Introduction to FHIR - New Zealand Seminar, June 2014
Introduction to FHIR - New Zealand Seminar, June 2014
 
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 for Architects and Developers - New Zealand Seminar, June 2014
FHIR for Architects and Developers - New Zealand Seminar, June 2014FHIR for Architects and Developers - New Zealand Seminar, June 2014
FHIR for Architects and Developers - New Zealand Seminar, June 2014
 
Create FHIR-Enabled Experiences: API-First Approach for Healthcare Apps
Create FHIR-Enabled Experiences: API-First Approach for Healthcare AppsCreate FHIR-Enabled Experiences: API-First Approach for Healthcare Apps
Create FHIR-Enabled Experiences: API-First Approach for Healthcare Apps
 
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
 
Vitalis 2016 FHIR App Development
Vitalis 2016 FHIR App DevelopmentVitalis 2016 FHIR App Development
Vitalis 2016 FHIR App Development
 
HL7 FHIR - Out-of-the-box eHealth interoperability
HL7 FHIR - Out-of-the-box eHealth interoperabilityHL7 FHIR - Out-of-the-box eHealth interoperability
HL7 FHIR - Out-of-the-box eHealth interoperability
 
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
 
Cyber Security Standards Update: Version 5 by Scott Mix
Cyber Security Standards Update: Version 5 by Scott MixCyber Security Standards Update: Version 5 by Scott Mix
Cyber Security Standards Update: Version 5 by Scott Mix
 
FHIR Client Development with .NET
FHIR Client Development with .NETFHIR Client Development with .NET
FHIR Client Development with .NET
 
Information Models & FHIR --- It’s all about content!
Information Models & FHIR --- It’s all about content!Information Models & FHIR --- It’s all about content!
Information Models & FHIR --- It’s all about content!
 
Hl7 uk fhir the basics
Hl7 uk fhir the basicsHl7 uk fhir the basics
Hl7 uk fhir the basics
 

Similar to FHIR tutorial - Afternoon

FHIR DevDays 2015 - introduction to FHIR
FHIR DevDays 2015 - introduction to FHIRFHIR DevDays 2015 - introduction to FHIR
FHIR DevDays 2015 - introduction to FHIREwout Kramer
 
Structure definition 101 (ewout)
Structure definition 101 (ewout)Structure definition 101 (ewout)
Structure definition 101 (ewout)DevDays
 
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)DevDays
 
Fhir path (ewout)
Fhir path (ewout)Fhir path (ewout)
Fhir path (ewout)DevDays
 
Authoring FHIR Profiles - extended version
Authoring FHIR Profiles - extended versionAuthoring FHIR Profiles - extended version
Authoring FHIR Profiles - extended versionEwout Kramer
 
Authoring profiles by Michel Rutten
Authoring profiles by Michel RuttenAuthoring profiles by Michel Rutten
Authoring profiles by Michel RuttenFHIR Developer Days
 
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 BaltusFHIR Developer Days
 
Profile and validation by Grahame Grieve
Profile and validation by Grahame GrieveProfile and validation by Grahame Grieve
Profile and validation by Grahame GrieveFHIR Developer Days
 
Advanced .net api (ewout)
Advanced .net api (ewout)Advanced .net api (ewout)
Advanced .net api (ewout)DevDays
 
The FHIR burns brighter (what's new in DSTU2)
The FHIR burns brighter (what's new in DSTU2)The FHIR burns brighter (what's new in DSTU2)
The FHIR burns brighter (what's new in DSTU2)Ewout Kramer
 
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...FHIR Developer Days
 
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 McKenzieFurore_com
 
FHIR Search for server developers by Martijn Harthoorn
FHIR Search for server developers by Martijn HarthoornFHIR Search for server developers by Martijn Harthoorn
FHIR Search for server developers by Martijn HarthoornFHIR Developer Days
 
Nhs trusts meeting at salford
Nhs trusts meeting at salfordNhs trusts meeting at salford
Nhs trusts meeting at salfordEwout Kramer
 
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 BurgFurore_com
 
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 GrieveFHIR Developer Days
 

Similar to FHIR tutorial - Afternoon (19)

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)
 
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)
 
Fhir path (ewout)
Fhir path (ewout)Fhir path (ewout)
Fhir path (ewout)
 
Authoring FHIR Profiles - extended version
Authoring FHIR Profiles - extended versionAuthoring FHIR Profiles - extended version
Authoring FHIR Profiles - extended version
 
Authoring profiles by Michel Rutten
Authoring profiles by Michel RuttenAuthoring profiles by Michel Rutten
Authoring profiles by Michel Rutten
 
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
 
Profile and validation by Grahame Grieve
Profile and validation by Grahame GrieveProfile and validation by Grahame Grieve
Profile and validation by Grahame Grieve
 
Advanced .net api (ewout)
Advanced .net api (ewout)Advanced .net api (ewout)
Advanced .net api (ewout)
 
The FHIR burns brighter (what's new in DSTU2)
The FHIR burns brighter (what's new in DSTU2)The FHIR burns brighter (what's new in DSTU2)
The FHIR burns brighter (what's new in DSTU2)
 
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...
 
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 Search for server developers by Martijn Harthoorn
FHIR Search for server developers by Martijn HarthoornFHIR Search for server developers by Martijn Harthoorn
FHIR Search for server developers by Martijn Harthoorn
 
FHIR and DICOM by Marten Smits
FHIR and DICOM by Marten SmitsFHIR and DICOM by Marten Smits
FHIR and DICOM by Marten Smits
 
FHIR: What's it All About?
FHIR: What's it All About?FHIR: What's it All About?
FHIR: What's it All About?
 
Nhs trusts meeting at salford
Nhs trusts meeting at salfordNhs trusts meeting at salford
Nhs trusts meeting at salford
 
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.pptx
FHIR.pptxFHIR.pptx
FHIR.pptx
 
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
 

Recently uploaded

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsHyundai Motor Group
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
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 MenDelhi Call girls
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 

Recently uploaded (20)

Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter RoadsSnow Chain-Integrated Tire for a Safe Drive on Winter Roads
Snow Chain-Integrated Tire for a Safe Drive on Winter Roads
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
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
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptxVulnerability_Management_GRC_by Sohang Sengupta.pptx
Vulnerability_Management_GRC_by Sohang Sengupta.pptx
 

FHIR tutorial - Afternoon

  • 1. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. HL7 FHIR Training course Ewout Kramer March 2014
  • 2. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Afternoon program  Support for Implementing FHIR  Bundles, Documents and Messages  Exercise #3  Search and Using the C#/Java API‟s  Exercise #4  Profiles and Conformance  The HL7 family & FHIR
  • 3. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. DEVELOPER RESOURCES Get started with FHIR quickly
  • 4. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.
  • 5. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Browsing the site  REST API  Data Types  XML & JSON  Codes / Terminologies  Resource List  Stack Overflow  Public Test servers
  • 6. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. The FHIR distribution  Under Implementation-Support-Downloads:  The XSD schema‟s / schematrons  The Java / C# / Delphi zips (model, serializers, parsers, etc, both code & binary)  All xml + json examples  Full spec for offline reading (always have your FHIR with you) Note! .NET implementation has moved to GitHub, distribution by NuGet (.NET) and Maven (Java)
  • 7. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Publication process .INI Publication tool (org.hl7.fhir.tools.jar) Java, C#, Delphi eCoreDefinitions.xml Website Validation Schema‟s Examples DictXml Resource profiles Resource UML
  • 8. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Generator writers!  There‟s a file called eCoreDefinitions.xml that the C# generator runs of. It has all details from the definitions  There are Profiles for each resource, basically describing the “unconstrained” resources
  • 9. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. SEARCH FUNCTIONALITY
  • 10. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Getting “all” patients  http://server.org/fhir/Patient  Always returns a paged feed  Use _count to indicate number of results per page  Special case of the “real” search operation: http://server.org/fhir/Patient/_search?name=eve http://server.org/fhir/Patient?name=eve
  • 11. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Search (patient) Each resource has a set of “standard” search operations, so not every element can be searched!: Our last search used this one
  • 12. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Combining parameters  Specifying multiple parameters finds resources matching all params  “AND”  Parameters may list multiple values  “OR”  http://server.org/fhir /Patient/_search? birthdate=1972-11-30 &language=NL,FR
  • 13. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Search (patient) Each search parameter has a „type‟ Parameter Type
  • 14. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Ok I get it…or not? http://server.org/fhir/Patient/ 406 hits http://server.org/fhir/Patient?gender=M 234 hits http://server.org/fhir/Patient?gender=F 167 hits Total: 234 + 167 = 401 http://server.org/fhir/Patient/ 406 hits http://server.org/fhir/Patient?gender=M 234 hits http://server.org/fhir/Patient?gender=F 167 hits http://server.org/fhir/Patient?gender:missing=true 5 hits Total: 234 + 167 + 5 = 406
  • 15. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Chained searches  Patient has a search for “name”.  Observation has a search for “subject” (the id of the Patient, Group or Device)  How do I find Observations for a patient, searching using his name?
  • 16. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. 2 queries in 1  You (as a client) don‟t need to do separate operations, just one: http://server.com/fhir/Observation/_search? subject.name=jim But note: this still only works on the predefined search parameters. You cannot just use any property of the resource.
  • 17. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. More optimalizations  Say we do:  http://fhir.com/fhir/Observation?date=2014-01-20  We get back: a Bundle with 0..* “Observations”  Now, usually, wouldn‟t we want the Patient information too? => Need to do “N” queries for the Observation‟s “subject”  Quicker: ?_include=Observation.subject Returns both Observations + Patients
  • 18. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. BUNDLES How FHIR uses Atom to communicate sets of resources
  • 19. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Communicating lists  We need to communicate lists of Resources  Search result  History  Documents or messages  Multiple-resource inserts (“batches”)  So, we need an industry-standard to represent lists, and a place to put our metadata
  • 20. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Bundle Resource Narrative Elements ExtensionsExtensions Resource Metadata Bundle Metadata Resource Resource
  • 21. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Bundles  Atom RFC 4287 + Tombstones RFC 6721  Poll-based protocol for keeping up-to-date with newsfeeds (RSS and Atom)  You can “subscribe” to a FHIR feed and get updates
  • 22. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. New reports in the mail
  • 23. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. An example Bundle
  • 24. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Patient MRN 22234 “Ewout Kramer” 30-11-1972 Amsterdam Resource metadata Metadata Resource Identity http://fhir.hl7.org/Patient/23E455A3B Last updated 2013-12-23T23:33:01+01:00 http://hl7.org/fhir/tag/profile http://hl7.org/fhir/Profile/us-core http://hl7.org/fhir/tag http://example.org/fhir/Status#Test
  • 25. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Resource Entry Resource id Last modified Resource content Human-readable form, just like Resource.text Tags
  • 26. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Atom in JSON  There‟s not yet a way to render Atom in JSON, though there are initiatives, all ugly.  So, we had to (sorry) roll our own….  …very straightforward, single-purpose  Atom JSON solution  (Note: MIME type is still application/json!)
  • 27. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Json Atom - Example { "title": "Search result", "updated": "2012-09-20T12:04:45Z", "id": "urn:uuid:50ea3e5e-b6a7-4f55-956c-caef491bbc08", "link": [ { "rel": "self", "href": "http://server.org/fhir/Patient?format=json" } ], "entry": [ { "title": "Resource of type Patient, with id = 1 and version = 1", "link": [ { "rel": "self", "href": "http://server.org/fhir/Patient/1/_history/1" } ], "id": "http://server.org/fhir/Patient/1", "updated": "2012-05-29T23:45:32Z", "published": "2012-09-20T12:04:47Z", "author": [ { "name": "Grahame Grieve / HL7 publishing committee" } ], "content": { "Patient": { } } } ] }
  • 28. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. BEYOND REST How FHIR supports documents and messages
  • 29. © 2012 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 document?  Persistence: continues to exist in an unaltered state  Stewardship: maintained by a person or organization entrusted with its care.  Potential for authentication: an assemblage of information that is intended to be legally authenticated.  Wholeness. Authentication of a clinical document applies to the whole and does not apply to portions of the document without the full context of the document.  Human readability. A clinical document is human readable.
  • 30. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. The Document resource A single Resource, very often a List
  • 31. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Documents – are bundles Observation Resource Composition Resource Section Section Device Resource Patient Resource Prescription Resource <feed> <entry> <Composition /> </entry> <entry> <Observation /> </entry> <entry> <Device /> </entry> <entry> <Prescription /> </entry> <entry> <Patient /> </entry> </feed> AttesterMetadata
  • 32. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Tag as “Document” This Bundle is a Document
  • 33. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Communicating documents  You can “drop” your document on  http://server.org/fhir/Mailbox  No storage or disassembly is implied, your just posting a document in its entirety.  Servers can implement any specific functionality as required between trading partners when receiving such a document.
  • 34. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Communicating documents  You can store your document using  http://server.org/fhir/Document  Storage, NO disassembly is implied, document (and signature) stays intact  Search is supported (you search on it‟s Message header – Composition) NEW!
  • 35. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. MessageHeader Resource
  • 36. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Messages – are bundles Observation Resource Message Resource source destination Device Resource Patient Resource <feed> <entry> <MessageHeader /> </entry> <entry> <Observation /> </entry> <entry> <Patient /> </entry> <entry> <Device /> </entry> </feed> event
  • 37. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Tag as “Message” This Bundle is a Message
  • 38. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Sending messages  Again, REST not necessary, but…  There is an explicit REST endpoint:  http://server.org/fhir/Mailbox  No storage implied. Might be a router, converted to v2, etc. etc.  The server can process them based on the event code and return the response as another message (again a bundle).
  • 39. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Exercise #3 Composing a Document (45 minutes)
  • 40. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. HL7.FHIR SUPPORT API Using the C# Reference Implementation
  • 41. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Reference implementations - Contents - Model – classes generated from the spec - Parsers – Parsers generated from the spec - Serializers – Serializers generated from the spec - FhirClient - Validation (currently Java only) - Java – Everything on the downloads page - .NET – NuGet “FHIR”, or GitHub “fhir-net-api”
  • 42. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. A FHIR Resource in C# public partial class Observation : Resource { // Codes that provide reliability information about an observation public enum ObservationReliability {Ok, Ongoing, …} // Codes identifying interpretations of observations public enum ObservationInterpretation {N, A, L, H } public CodeableConcept Name { get; set; } public List<ObservationReferenceRangeComponent> ReferenceRange { get; set;} public Code<Observation.ObservationReliability> Reliability { get; set; } public ResourceReference Performer { get; set; } }
  • 43. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Object Model 51 [FhirResource("DiagnosticReport")] public partial class DiagnosticReport : Resource { public Code<ObservationStatus> Status {…} public Instant Issued {…} public ResourceReference Subject {…} public ResourceReference Performer {…} public Identifier ReportId {… } public List<DiagnosticReportRequestDetailComponent> RequestDetail { …}
  • 44. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Primitives are not really primitive…
  • 45. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Parsing/Serializing using C# // Create a file-based reader for Xml XmlReader xr = XmlReader.Create( new StreamReader(@"publishobservation-example.xml")); // Parse the Observation from the stream var obs = (Observation)FhirParser.ParseResource(xr); // Modify some fields of the observation obs.Status = Observation.ObservationStatus.Amended; obs.Value = new Quantity() { Value = 40, Units = "g" }; // Serialize the in-memory observation to Json var jsonText = FhirSerializer.SerializeResourceToJson(obs);
  • 46. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Parsing/Serializing using Java XmlParser xml = new XmlParser(); Observation obs = (Observation)xml.parse(new FileInputStream(“observation.xml")); obs.setStatusSimple(ObservationStatus.amended); Quantity newValue = new Quantity(); newValue.setValueSimple(new BigDecimal(40)); newValue.setUnitsSimple("g"); obs.setValue( newValue ); ByteArrayOutputStream bos = new ByteArrayOutputStream(); JsonComposer comp = new JsonComposer(); comp.compose(bos, obs, true); String json = bos.toString("UTF8");
  • 47. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Bundles  For both Java and C#, reference has custom-built Atom parser  For .NET, you could use the framework‟s SyndicationFeed  A bit more low-level  No support for deleted-entries (even parse problems)  Incompatible with WinRT (Win8 mobile apps)
  • 48. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Bundles in C#  Abstraction on top of Atom parser  Bundle = feed, BundleEntry = entry. Bundle result = new Bundle() { Title = "Demo bundle" }; result.Entries.Add(new ResourceEntry<Patient>() { LastUpdated=DateTimeOffset.Now, Content = new Patient() }); result.Entries.Add(new DeletedEntry() { Id = new Uri("http://..."), When = DateTime.Now }); var bundleXml = FhirSerializer.SerializeBundleToXml(result);
  • 49. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Bundles in Java AtomFeed feed = new AtomFeed(); feed.setTitle("Demo bundle"); AtomEntry pat = new AtomEntry(); pat.setUpdated(Calendar.getInstance()); pat.setResource(new Patient()); feed.getEntryList().add(pat); AtomEntry del = new AtomEntry(); del.setUpdated(Calendar.getInstance()); del.setDeleted(true); del.setId("http://nu.nl/fhir"); feed.getEntryList().add(del); ByteArrayOutputStream bos = new ByteArrayOutputStream(); AtomComposer comp = new AtomComposer(); comp.compose(bos, feed, true); String xml = bos.toString("UTF8");
  • 50. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Using FHIR Client in C# var client = new FhirClient( new Uri("http://fhir.com/svc/fhir")); var patEntry = client.Read<Patient>("1"); var pat = patEntry.Resource; var restId = patEntry.Id; var tags = patEntry.Tags; pat.Name.Add(HumanName.ForFamily("Kramer") .WithGiven("Ewout")); client.Update<Patient>(patEntry);
  • 51. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Using FHIR Client in Java FHIRClient client = new FHIRSimpleClient(); client.initialize("http://spark.furore.com/fhir"); AtomEntry<Patient> pe = client.read(Patient.class, "1"); Patient p = pe.getResource(); HumanName hn = new HumanName(); hn.getFamily().add(Factory.newString_("Kramer")); hn.getGiven().add(Factory.newString_("Ewout")); p.getName().add(hn); client.update(Patient.class, p, "1");
  • 52. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Exercise #4 Using the FHIR C# and Java API’s (60 minutes)
  • 53. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. PROFILES, VALIDATION AND CONFORMANCE Introducing
  • 54. © 2012 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.
  • 55. © 2012 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 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!
  • 56. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Structured & published  A Profile is just a “normal” Resource  Any FHIR server could serve Profiles (just like Patients, Observations, etc…)  So, any FHIR server is a profile repository!  A resource is simply referred to by its URI:  e.g. http://hl7.org/fhir/Profile/iso-21090
  • 57. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Using profiles  When communicating a resource, you can indicate the profiles it conforms to.  A server might explicitly state it only accepts resources conforming to a certain profile (and verify!)  You can ask a FHIR server to validate a resource against a given profile
  • 58. © 2012 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 http://hl7.org/fhir/tag/security http://hl7.org/fhir/v3/ActCode#TABOO http://hl7.org/fhir/tag http://example.org/fhir/Status#Test http://hl7.org/fhir/tag/profile http://hl7.org/fhir/Profile/us-core “a claim that the Resource conforms to the profile identified in the term”
  • 59. © 2012 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/fhir/Profile/iso-21090 http://www.hl7.nl/fhir/Profile/patient-nl http://www.health4all.org/fhir/Profile/
  • 60. © 2012 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? Metadata Identifier Name, Version Publisher Description, Code Status Date (of publication) Resource and Datatype Constraints Extension Conformance Resource (via Tag) ValueSet ValueSet Extension in Resource
  • 61. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Scale / design  Make a profile with just extensions  Make a profile with just 1 resource + extensions on that resource  Make a profile with all (say national) resources + extensions.
  • 62. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Profile metadata  Identifier: Universally unique identifier, assigned by author value=“urn:hl7.org:extensions:iso-21090“ or “2.16.840.1.113883.10.20.2.1”  Version: Version of the profile, manually maintained by author. Suggested format: a timestamp (e.g. 2013-01-01T12:34:45)  Name: Free natural text name (e.g. “ISO 21090 Data Type Extensions”)  Publisher: organization or individual responsible for publishing. Should be populated (e.g. “FHIR Project Team“)  Telecom: one or more contact points of the publisher (telephone, email, website etc)  Description: longer description of the contents of the profile  Code: one or more coded descriptions to help with finding the profile  Status (fixed choice of draft, active, retired) + experimental Y/N  Requirements: scope & usage (the “need” or “why” of the profile)  Date (of publication), e.g. “2013-07-07"
  • 63. © 2012 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 App‟s server Store & Validate Country validation server Profile X Profile Y Profile Y Validate
  • 64. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Validation  When receiving an XML resource  1. Validate using schema  2. Run schematrons  When receiving JSON  1. Parse the JSON  2. Serialize to XML  3. Validate using schema  4. Run schematrons  There‟s a validation pack for Java
  • 65. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Operation Outcome  When something goes wrong….return the OperationOutcome Resource!
  • 66. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Conformance  There‟s a resource for documenting conformance to FHIR  Can be used for:  Stating how a specific system instance behaves  Defining how a software system is capable of behaving (including configuration options)  Identifying a desired set of behavior (e.g. RFP)  To declare themselves “FHIR Conformant”, a system must publish a Conformance instance
  • 67. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Conformance Resource • Which wire formats supported? • Which resources? • What documents, messages does the server accept, what does the content look like? • Which protocols? http? Mllp? ftp? • Which operations (read, create, update, search) • Which FHIR version? • What search operations? • Is this a test server? • Who can I contact? • What‟s the name of the software? http://www.hl7.org/implement/standards/fhir/conformance.html
  • 68. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. How to get conformance  Conformance is again, just a Resource  Any FHIR server will publish his own conformance at a special endpoint  A FHIR server may store and publish any number of additional Conformance resources, so you can refer to them  Able to validate by automated testing
  • 69. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. HL7 FAMILY AND FHIR
  • 70. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. V2 and FHIR Similarities  Built around re-usable “chunks” of data  Strong forward/backward compatibility rules  Extensibility mechanism FHIR Differences  Each chunk (resource) is independently addressable  More than messages  Human readable required  Extensions don‟t collide, are discoverable  Modern tools/skills  Instances easy to read  Lighter spec
  • 71. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Migration – v2  Already have an integration engine that supports translation between v2 and FHIR  Resources map to segments reasonably well  As always, the challenge with v2 mapping is the variability of v2 interfaces  “Common” mappings can be created, but they won‟t be one size fits all HL7 v2
  • 72. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. …and v2 mappings Every Resource has v2 mappings specified, e.g.: http://www.hl7.org/fhir/patient-mappings.html#http://hl7.org/v2 Patient identifier PID-3 name PID-5, PID-9 telecom PID-13, PID-14, PID-40 gender PID-8 birthDate PID-7 deceased[x] PID-30 address PID-11 maritalStatus PID-16
  • 73. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. V3 and FHIR Similarities  Based on RIM, vocab & ISO Data types foundations  Support XML syntax FHIR Differences  Simpler models & syntax (reference model hidden)  Friendly names  Extensibility with discovery  Easy inter-version wire compatibility  Messages, documents, etc. use same syntax  JSON syntax too
  • 74. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. CDA and FHIR Similarities  Support profiling for specific use-cases  Human readability is minimum for interoperability  APIs, validation tooling, profile tooling  (See v3 similarities on prior slide) FHIR Differences  Can use out of the box – no templates required  Not restricted to just documents  Implementer tooling generated with spec  (See v3 differences on prior slide)
  • 75. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Migration – CDA  Made more complex by human-readable nature  Need to ensure text <-> entry linkages are retained  Will best be handled on a template by template basis  Likely start with important ones like C-CDA
  • 76. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. For v3 CDA…  Documents MAY be communicated using REST:  And stored as a single “blob” – the whole document  And disassembled into the contained resources  But ftp, MLLP, e-mail, SOAP is all fine  There is a project underway mapping Green CDA to FHIR
  • 77. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. …and v3 mappings Every Resource has v3 mappings specified, e.g.: http://www.hl7.org/fhir/patient-mappings.html#http://hl7.org/v3 Patient Patient identifier ./id name ./name telecom ./telecom gender ./administrativeGender birthDate ./birthTime deceased[x] ./deceasedInd address ./addr maritalStatus ./maritalStatus multipleBirth[x] .multipleBirthInd
  • 78. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. FHIR and Services Similarities  Encourage context neutral, re-usable structures with defined behavior  RESTful interface is a simple SOA interface FHIR differences  Consistent data structures across services  Ease of transport across paradigms message <-> service <-> document <-> REST  Standard framework for defining/discovering services
  • 79. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Market Sharev2 • De facto standard for in- institution communication • Standard in many countries for cross-institution communication CDA • High market penetration, particularly of CCD and CCDA variants due to meaningful use • Significant on-going growth v3 • Mandated use in a few jurisdictions • Little uptake outside of those mandates FHIR • None
  • 80. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Maturityv2 • In use for over 25 years • Broadly supported by industry tools • Now on • Familiarity with both capabilities and limitations (and work-arounds) CDA • In use for over 12 years • Implemented in a variety of settings all around the world v3 • In development for over 13 years • Some specifications have had multiple releases • Limited uptake FHIR • First thought of less than 2 years ago • Just passed DSTU ballot • Won‟t be a normative spec for several more years, minimum
  • 81. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. So why use anything else?  FHIR is brand new  No market share  Only recently passed DSTU ballot  Little track record  Business case  No-one dumps existing working systems just because something new is “better”  Large projects committed to one standard won‟t change direction quickly (or even at all)
  • 82. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Simple message  Yes, FHIR has the potential to supplant HL7 v3, CDA and even v2  However  It‟s not going to do so any time soon  No one's going to throw away their investment in older standards to use FHIR until 1. The specification has a good track record 2. It‟s clear the new thing provides significant benefits  HL7 will support existing product lines so long as the market needs them
  • 83. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. (XDS) references Document Reference Resources are used in document indexing systems, and are used to refer to: • CDA documents in FHIR systems • FHIR documents stored elsewhere (i.e. registry/repository following the XDS model) • PDF documents, and even digital records of faxes where sufficient information is available • Other kinds of documents, such as records of prescriptions. A document reference resource is used to describe a document that is made available to a healthcare system.
  • 84. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. IHE MHD “This winter (…) the Volume 2 part of Mobile Health Documents (MHD) will be replaced with the appropriate content describing a profile of DocumentReference to meet the needs of MHD and the family of Document Sharing in XDS, XDR, and XCA.” John Moehrke, august 16, 2013
  • 85. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Balloting plans  First Draft Standard for Trial Use ballot (DSTU) complete  Recently HL7 decided FHIR is now published as a DSTU  Will provide a semi-stable platform for implementers while still allowing non-backward-compatible change for Normative version if implementation experience dictates  Additional DSTU versions roughly annually to make fixes, introduce new resources  Normative is around 3 years out  We want *lots* of implementation experience before committing to backward compatibility 93
  • 86. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Next Steps for you  Read the spec: http://hl7.org/fhir  Try implementing it  Come to a (European?) Connectathon!  fhir@lists.hl7.org  #FHIR  Implementor’s Skype Channel  FHIR Developer Days (November 24 – 26), Amsterdam  StackOverflow: hl7 fhir tag
  • 87. © 2012 HL7 ® International. Licensed under Creative Commons. HL7 & Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. The End – The big brake! Questions?

Editor's Notes

  1. Look atmodifiers on the HL7 FHIR site (:exact, :missing, etc.)
  2. - In our previous section on REST we saw how we mapped this metadata to HTTP headers, but in a query result, we need to find a way to map this to a list, Atom
  3. Note that the id of the resource is kept outside the resource itselfAtom has many other meta-data items (not shown), which we will discuss later.
  4. Remember, all updated timestamps in FHIR (type: ‘instant’) are precise to at least the second and ALLWAYS carry a timezone!
  5. See how the resource meta-data is mapped to equivalent Atom membersAuthor is required by atom, so you’ll have to keep track who authored the resource, which might well be the user that POSTed it to your RESTful endpointSummary is optional, but it is easy to fill it with the Resource’s &lt;text&gt; (human readable narrative), so Feed readers have a way to display the contents of a resource. Yes, this means the summary is present twice in the entry.All elements you see here are Atom spec, not FHIR
  6. Multiple versions are supported explicitly by Atom by having multiple entries with the same id, but a different ‘updated’ dateNotice how the ‘self’ links do differ, these are different versions after all.
  7. Just take a quick glimpse, it’s a pretty trivial translation of the Xml form to JSON, removing all needs for namespaces and attributes, and turning repeating elements into JSON arrays.
  8. A Document, no matter how nested, is flattened to a list of entries, the Document’s header being the first.The document header (and any other the other resources) refer to each other using normal references to reflect the document’s nesting.Of course, there may be a digital signature (on the whole Bundle) to attest to the content of the document.
  9. * But ofcourse, some server could have functions to disassemble documents on reception. Since the contents of documents are resources, each of the contained resources (including the Document header) can be stored using the normal REST interface. But they are no longer the document anymore!
  10. * But ofcourse, some server could have functions to disassemble documents on reception. Since the contents of documents are resources, each of the contained resources (including the Document header) can be stored using the normal REST interface. But they are no longer the document anymore!
  11. A Message is similar, refers (amongst others) to its author, and contains information about the source, destination and the event that triggered it.A message contains 1 “data” resource, which is the root of the payload of the message. This is just a normal resource, which in its turn can refer to other related resources.
  12. * It’s the same drop-off point as for documents!
  13. Enums are generated for coded types with required, fixed, valuesetsNested classes are defined for each component in a Resource, all nested directly within the ResourceCardinality &gt; 1 =&gt; becomes a List&lt;&gt;Cardinality 1 =&gt; Not expressed in model, but done in validationAll classes are partial so you can add code them in another code file (keeping generated+handcrafted code separate)
  14. * You might wonder: Since bundles are Atom, why not use standard Atom parsers?
  15. “Drive-by” or “bottom-up” operability: “Communicate first, standardize later”First, business partners. Then, collaborations, communities. Maybe, finally,nation-wideIt’s a naturalprocessthatpeoplewill want to make itwork first, thenonlycoordinatewhattheyreallyneedto, andthenrealizetheycanbroadentheir approach to a community.“Support”, of course top-down shouldstillbepossible! Maybe even a combi in the long-term
  16. A server might defer validation to another server (because it doesn’t know the profile)A server may fetch the “unknown” profile and validate it itselfThere may be several servers sharing the work
  17. Lower learning curve
  18. Text linkages not as important when not human-attested
  19. FHIR allows defining additional services via the “query” mechanism as well as custom services.