FHIR Basics - Agoria
-
Upload
khangminh22 -
Category
Documents
-
view
5 -
download
0
Transcript of FHIR Basics - Agoria
3
A Resource’s identity
• In fact: a URL
https://server.org/Patient/123
“Logical Id” as used by a FHIR-enabled application
endpoint
resource type
5
The FHIR Specification – resource definitionsLet’s look at Resources in the spec…. (http://fhir.hl7.org)
9
The Case for Extensions
• Simple choice – design for absolutely everything or allow extensions
• Everyone needs extensions, everyone hates them• Define, publish, find extensions
– Repository– Documented just like resources– Can be fetched & interpreted by clients
DICOM has ‘private groups’, v2 has Z-Segments
11
Example: simple extension of a data type
<Patient xmlns="http://hl7.org/fhir"><address>
<extension url="http://fhir.nl/fhir/StructureDefinition/nl-core-address-official"><valueBoolean value="true"/>
</extension><!-- ... other address content ... -->
</address></Patient>
{"resourceType" : "Patient","address" : [{
"extension" : [{"url": "http://fhir.nl/fhir/StructureDefinition/nl-core-address-official","valueBoolean": true
}]}]
}
17
Communicating sets
• We need to communicate sets of Resources– Search result– Multiple-resource inserts (“batches”)– Transactions– Documents– Messages
18
Query Response Bundle, link types
GET [base]/Patient?name=e&eyecolor=blue
Query as understood/ executed by
server
Query as sent by client
{"resourceType": "Bundle","id": "c5120cf3-0d1e-424c-99b7-cbfb36efd09c","type": "searchset","total": 27,"link": [{
"relation": "self","url": "https://vonk.fire.ly/Patient?name=e"
},{"relation": "next","url": "https://vonk.fire.ly/Patient?name=e&_count=10&_skip=10"
},{"relation": "last","url": "https://vonk.fire.ly/Patient?name=e&_count=10&_skip=20"
}],"entry": [{
19
Basic search
• SyntaxGET [base]/[resourcetype]?key=value&...
• Getting all patientsGET http://acme.org/fhir/Patient
• Example:GET http://acme.org/fhir/Patient?name=eve
20
Search parameters
Each resource has a set of “standard” search parameters,
not every element can be searched!:
Our example search used this one
22
Transaction Bundle
FHIR server
Obs
DxReport
DxReport
DxReport
Lab System
PostLab result
Obs
Obs
“transaction Bundle”
23
For comments and questions: [email protected]
Summary
• Resource, extensions, ‘80/20 rule’, references• Logical identifier (URL), business identifiers
– <resourceType>.id and <resourceType>.identifier
• Data Types• FHIR specification
25
How to adapt the specs to meet our needs
“Profile”
StructureDefinition
SearchParameter
ValueSet
ConceptMap
CodeSystem
OperationDefinition
CapabilityStatement
26
Profiled Observation (Blood Pressure)Id of profile (a URL) = http://project.org/Bloodpressure
Use a meta.profile tag to declare conformanceTo one or more profiles:
<Observation><meta>
<profile value=“http://project.org/Bloodpressure"/>
</meta><other elements…. />
</Observation>
29
Profile-less FHIR
• You don’t need profiles to interoperate with FHIR– Resources are “discrete” enough that mechanism to populate most
elements is clear
• Approach– Populate/consume all elements you know, use HL7 or country-
standard extensions for extras– Map to/from “recommended” terminologies as much as possible,
populate CodeableConcept.text– Expose capabilities in CapabilityStatement resource
30
For comments and questions: [email protected]
Summary
• FHIR Profiles are quite useful– Define usage of Resources– Define Extensions– Set interoperability expectations in a particular context
• National standards, types of care, business patterns
– Clinical practice guidelines / detailed clinical models– Document system capabilities
Note: full online FHIR (16 hour, 50% hands-on) training courses are regularly held in cooperation with HL7/IHE Belgium.