Upload
david-hay
View
321
Download
1
Tags:
Embed Size (px)
DESCRIPTION
A presentation I gave to the Patient Care working group of HL7 with an overview on the use of the FHIR profile resource.
Citation preview
FHIR Profiles, ExtensionsValueSets, Conformance
&(Many slides adapted from presentation
by Ewout Kramer)
David HayProduct Strategist
FMG co-chairwww.fhirblog.com
Page 2 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
The need for Profiles
• Many different contexts in healthcare, but a single set of Resources– A desire to keep the resources manageable
• Need to be able to:– Describe restrictions based on use and context– Support elements not in the core resource
• Allow for these usage statements to:– Authored in a structured manner– Published in a repository– Discoverable at Design and Run-time– Used as the basis for validation, code, report and UI generation.
2
Page 3 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
Profiling a resource. For example...
3
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!
Page 4 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
Capabilities of Profiles
• Descriptive– Information about the Profile (what, why, who)
• Extending a resource– Adding new properties– Same capabilities as existing ones
• Constraining a resource– Specifying datatypes for an element– Modifying datatypes (eg translations)– Defining terminology bindings– Specifying multiplicity (eg make an element required)– Further refining repeating values (‘Slicing’)
• Example of Composition.section (Document)– Cannot specify default values for resource instances
• Everything explicit in an instance
Page 5 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
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 profile is simply referred to by its URI:
– Like any other resource• e.g. http://hl7.org/fhir/Profile/iso-21090
– Extensions in an ‘instance’ of a resource refer to the profile that defined them using the URI
– Need to think about re-usability when designing profiles
5
Page 6 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
Who publishes?
http://www.hl7.org/fhir/Profile/iso-21090
http://www.hl7.nl/fhir/Profile/patient-nl
http://www.health4all.org/fhir/Profile/
Page 7 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
Using profiles
• If we are a server then a client can read our conformance resource, which will list the profiles we support, and provide a link to them.– Conformance also has other functions like specifying supported resources,
operations on those resources & interoperability paradigms
• If we are a client, we can tell a server that we conform to a profile using a tag (the server will probably still check).– We could also ask a server just to validate– Could set up ‘distributed’ validation with (eg) National Validation servers
used by local/regional servers
• If we receive a resource with an extension we don’t recognize, it will point to the profile in which it is described so we can decide what to do with it.– Note that a single resource can reference different profiles
7
Page 8 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
Tags
• Contain metadata about resources• Used for different purposes:
– Compliance to Profile – Security – e.g. sensitivity of resource– Indicate Document/Message– User defined
• Transported in different ways:– REST – as an HTTP header– In a bundle (document, message, transaction) - in the feed.category
element
Page 9 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
What’s in a profile, and its relationships?
9
Descriptive
IdentifierName, VersionPublisherDescription, CodeStatusDate (of publication)
Resource and Datatype Constraints
Extension Definition
Conformance(server)
Resource (via Tag)
ValueSetValueSet
Extension in Resource
Tag
Page 10 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
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.
10
Page 11 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
Profile Descriptive information
• To describe the purpose of the Profile• To help with location• Details
– 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. “Extensions to support Orion Medications”)– 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"
11
Page 12 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
Constraining Structures
• Defining terminology bindings• Specify element datatypes• Further refining repeating values (‘Slicing’)• Specifying multiplicity
From the spec
Possibilities
Page 13 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
Profile example
Medication.code with a defined valueset
Page 14 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
Profile Example
• MedicationPrescription.asNeeded required, and must be boolean
Page 15 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
Slicing
• Constraining an element with 0..* , 1..*• FHIR Document as an example• Composition resource is the CDA Header equivalent
– Composition.section is 0..*– A CCDA equivalent profile might specify the sections allowed
• Different document types would have a profile
Page 16 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
Extensions
• Resources design for the 80% - Allow easy extension for the remaining 20% of elements
• Note - You’re not extending a resource per se, but you specify its characteristics and where an extension may occur:– A specific element within a resource – A specific element within a datatype– All elements referencing a datatype– All elements mapping to a specific mapping target– An extension
16
(c) 2012 HL7 International
04/12/2023
Page 17 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
Extension definition
17
Note: multiplecontexts!
Page 18 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
An Extension in a resource
18
Page 19 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
The need for Governance
• Profiles & extensions allow a user to customize their use of FHIR
• With great power...
Page 20 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
AppendixAssociated Resources
Page 21 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
ValueSets
• A “true” FHIR ValueSet resource (may be version specific)• A general reference to some web content that defines a set
of codes. (e.g. mime types). • A textual description of the possible codes
21
Page 22 • Copyright © 2012 Orion Health™ group of companies • All rights reserved
Conformance resource
• Allows a server to indicate:– Metadata about the server– The resources they support– The paradigms they support
• REST, messaging, services– The queries against those resources– Specific (custom) queries– The profiles it supports
• Is a normal resource– Supports discoverability (think UDDI for SOAP)