preaching to the converted

25
© 2015 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. Profiling FHIR ® Preaching to the Converted Keith W. Boone [email protected] Standards Geek GE Healthcare

Upload: devdays

Post on 12-Apr-2017

813 views

Category:

Healthcare


0 download

TRANSCRIPT

© 2015 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

Profiling FHIR®

Preaching to the Converted

Keith W. Boone [email protected] Standards Geek GE Healthcare

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

What is FHIR®? You already know this! A new standard from HL7 A restful API for granular health data A standard with broad support An easier way to interoperate A source of many bad puns

5

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

But FHIR is more than just a RESTful API

It supports Services Documents Messaging Multiple transports:

HTTP, SMTP, SOAP, FTP …

6

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

Operations are a way to define services that work with RESTful resources to perform a specific task. An operation has input and output parameters and defined behaviors.

Profiles and conformance resources enable use case driven specifications to customize the use of FHIR resources. This is done in a well-defined and computable manner. Profiles are developed in almost the same way that the standard itself is produced.

Conformance resources use profile and operation definition resources to enable real-time discovery of implementation capabilities.

FHIR® supports definition of operations, profiles and conformance statements

7

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

Operations enable integration with services

8

6.23.11.1 Concept Translation Translate a code from one value set to another, based on the existing value set and concept maps resources, and/or other additional knowledge available to the server. One (and only one) of the in parameters (code, coding, codeableConcept) must be provided, to identify the code that is to be translated. The outcome is an operationOutcome with hints, warnings, or errors, or the translated code in an extension Formal Definition (as a OperationDefinition). URL: [base]/ConceptMap/$translate URL: [base]/ConceptMap/[id]/$translate

FHIR defines several operations, and profiles can define new ones or extend existing operations. An operation can create new resources or manipulate existing ones.

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. 9

What is a Profile?

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

What is a Profile? A constrained form of

A. a FHIR StructureDefinition? B. an HL7 Version 2 Message? C. the EHR Functional Model? D. a number of standards; published by IHE?

E. All of the above

10

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

An IHE Profile 1. Specifies a use case 2. Describes actors involved, 3. Transactions between them, 4. Sequences, 5. Behavior.

11

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

What can you “profile” in FHIR? Resources Data Types used Value Sets Search Parameters

Operations Messages Documents Things that should be

resources but aren’t (yet)

12

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

IHE Profiles using FHIR Patient Demographic Query

(PDQ) Patient Resource Search Parameters

Patient Identifier X-Referencing (PIX) Operation

Mobile Access to Health Documents (MHD) Document, Document

Reference, Document Manifest Profiles, Search Parameters

Clinical Mapping (CMAP) Value Sets Operation on Concept Map

Guideline Appropriate Ordering (GAO) Various Resources Value Sets Operations Things that should be

resources

13

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

FHIR isn’t always the right standard

Consider FHIR Green Fields Insignificant Installed Base No Existing Standard No Support for Capability

Consider something else Brown Fields Significant Installed Base Existing Standards Capability widely supported

14

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

Profiling a Resource Restricting cardinality mustSupport Adding co-constraints (invariants) Specifying Value Sets and Vocabulary Adding search parameters & stored queries Adding operations

15

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

Restricting Cardinality Most common constraint Allowed changes:

Increasing minimum (e.g., from 0 to 1) Decreasing maximum (e.g., from * to 1 or 1 to 0)

16

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

Invariants are co-constraints An expression that must always be true for a resource Commonly used for “If that there, then this here”

X must be present unless Y occurred If X = value, then Y must be present More complex conditions allowed

Examples from GAO: Guideline must be specified unless the result was obtained manually. If service code does not imply body site, then body site must be

present. Presently written using Xpath notation

17

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

Adding XPath Constraints Start from the common ancestor (data type

or resource) X must be present unless Y occurred

exists(f:Y) or count(f:X) = 1

If X = value, then Y must be present f:X/@value = ‘foo’ and count(f:Y) > 1

Use FHIR Path!

18

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

Adding mustSupport mustSupport is a flag on Resource properties.

Meaning is implementation defined. This flag could resolve previous concerns about

SHOULD, R, R2, Conditional, etcetera in profiles.

19

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

Definitions vary by actor responsibilities A definition for mustSupport depends on the responsibility of the actor when it operates on a resource. Some possible requirements:

20

Operation Must Demonstrate Test Procedure

create Creation of a resource having the property.

Show PUT [base]/Resource/id with content containing the property.

update Updating the property in a resource. Show POST [base]/Resource/id with content containing the property.

read / query Retrieval of a resource containing the property.

Show a response to GET [base]/Resource/id -OR- GET [base]/Resource?params Where content contains the property

$operation (request)

Include the property in a resource when invoking an operation

Property appears in input resource in response to POST [base]/Resource/$operation

$operation (response)

Change in behavior when the property changes.

Property appears in output resource in response to POST [base]/Resource/$operation -OR- Change in property value in input params changes response to POST [base]/Resource/$operation

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

Specifying Value Sets & Vocabulary Set vocabulary for a Coding to a specified coding system:

Constrain code.system to a fixed value

Limit responses to a specified ValueSet Bindings to value sets are either: Required, Extensible, Preferred,

or Example. Required = Must use these values and only these values. Extensible = Must support these values, may support others where they

do not have the same meanings. Preferred = We’d really like it if you use these values, but will understand

if you cannot. Example = This looks like it might work some of the time.

21

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

Profiling search parameters Adding parameters

Used when search needs to be supported on a property where it wasn’t originally specified.

For example: AuditEvent supports “patient”, but RESTful ATNA wants search by patientid instead.

Some parameters can be required of the server Usually there’s a full set of search parameters that the server

MUST implement And a smaller set that the client MUST implement, and MAY

implement the full set as needed.

22

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

Stored Queries You can create stored queries Stored queries have a name and may have

other parameters Specified as _query=name

GET [base]/Patient?_query=name&parameters...

23

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

Adding operations Operations enable more complex behaviors, for example:

Patient Identifier Cross Referencing Order Evaluation using Decision Support

Operations can be “idempotent”, meaning they return the same results when repeated. Idempotent operations are non-destructive when repeated Results can be cached Queries and reads are Idempotent Preferably supports GET syntax

Non-Idempotent operations result in a different outcome when executed additional times. Operations which create or update the state of the system or a resource in the

system (such that they cannot be repeated with the same results) are non-idempotent.

24

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

Reasons to use an Operation Computes something based on the content of a resource,

or returns a resource that is not the result of a query e.g., PCC-19 Evaluate Order

Returns a result that is not a resource e.g., ITI-83 Mobile Patient Identifier Cross-reference Query

Executes multiple steps of a complex workflow e.g., Patient Admission, where a patient record is created if it doesn’t

exist, updated if it does, and a new encounter is created and associated with the patient.

25

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

FHIR Messages and Documents Messages and Documents are contained in Bundles

A Message Bundle contains a MessageHeader A Document Bundle contains a Composition

Messages can be transmitted in many ways FHIR specifies the $process-message operation on a MessageHeader as

one possible end-point for transmission. Documents can be

Written to the Bundle resource end-point, or “Sliced and diced” and stored in the Composition end-point, or Stored as a binary blob Generated from a Composition through the $document operation.

26

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office.

Operations & Messages Overlap An operation is defined as a service with input

and output parameters and behaviors. e.g., Patient Admission is a Service

A message is a communication that has a defined structure and is intended to be communicated to some service. e.g., An Admission message is communicated to

request or notify someone that a particular service has been/is being requested or performed.

27

© 2010 Health Level Seven ® International and GE Healthcare. All Rights Reserved. HL7 and Health Level Seven are registered trademarks of Health Level Seven International. Reg. U.S. TM Office. 28

Questions