Current Context
Current application context can be queried using well known Observation resource identifiers.
Contents
Current Provider Identifier
Will return a resource <id> valueString value when a user is currently logged into the clinical system.
This can be used to obtain practitioner details via <fhir-host>/Practitioner/<id>
Note: FHIR STU3 service now had globally (rather than locally) unique identifiers
Read
GET <fhir-host>/Observation/CTX-PROVIDER
Example
<Observation xmlns="http://hl7.org/fhir"> <id value="CTX-PROVIDER" /> <meta> <lastUpdated value="2017-12-07T14:54:42.49+11:00" /> </meta> <text> <status value="generated" /> <div xmlns="http://www.w3.org/1999/xhtml"> <p> Context: PROVIDER - CEBD70498A0C2465B2808432371E6571.1</p> </div> </text> <status value="final" /> <code> <coding> <system value="http://oridashi.com.au/system/code/context" /> <code value="PROVIDER" /> <display value="Provider Context" /> </coding> </code> <effectiveDateTime value="2017-12-07T14:54:42.4906904+11:00" /> <valueString value="CEBD70498A0C2465B2808432371E6571.1" /> </Observation>
Direct DLL Call
When hosing your own FHIR service using the FHIR-SERVER.dll you may call the library interface directly to obtain logged in practitioner context:
Oridashi.Fhir.Host.FhirHost host = new Oridashi.Fhir.Host.FhirHost(); // start-up the host Oridashi.Fhir.Host.Dstu3.FhirServer server = host.AutoHost; string practitionerId = server.ContextPractitioner;
Current Patient Identifier
Will return a resource <id> valueString value when a user is currently logged into the clinical system and a patient record is open and in focus. NOTE: mulitple patients can be open in the clinical system at one time this call indicates the patient record that in the active (current focus) window on screen.
This can be used to obtain current patient details via <fhir-host>/Patient/<id>
Note: FHIR STU3 service now had globally (rather than locally) unique identifiers
Read
GET <fhir-host>/Observation/CTX-PATIENT
Example
<Observation xmlns="http://hl7.org/fhir"> <id value="CTX-PATIENT" /> <meta> <lastUpdated value="2017-12-07T14:55:05.463+11:00" /> </meta> <text> <status value="generated" /> <div xmlns="http://www.w3.org/1999/xhtml"> <p> Context: PATIENT - CEBD70498A0C2465B2808432371E6571.5</p> </div> </text> <status value="final" /> <code> <coding> <system value="http://oridashi.com.au/system/code/context" /> <code value="PATIENT" /> <display value="Patient Context" /> </coding> </code> <effectiveDateTime value="2017-12-07T14:55:05.4636076+11:00" /> <valueString value="CEBD70498A0C2465B2808432371E6571.5" /> </Observation>
Direct DLL Call
When hosing your own FHIR service using the FHIR-SERVER.dll you may call the library interface directly to obtain active/in focus patient context:
Oridashi.Fhir.Host.FhirHost host = new Oridashi.Fhir.Host.FhirHost(); // start-up the host Oridashi.Fhir.Host.Dstu3.FhirServer server = host.AutoHost; string patientId = server.ContextPatient;
Current Organisation Identifier
Will return a resource <id> valueString value if a user is currently logged into the clinical system.
This can be used to obtain organization/clinic details via <fhir-host>/Organization/<id>
Note: FHIR STU3 service now had globally (rather than locally) unique identifiers
Read
GET <fhir-host>/Observation/CTX-ORGANISATION
Example
<Observation xmlns="http://hl7.org/fhir"> <id value="CTX-ORGANISATION" /> <meta> <lastUpdated value="2017-12-07T14:56:07.318+11:00" /> </meta> <text> <status value="generated" /> <div xmlns="http://www.w3.org/1999/xhtml"> <p> Context: ORGANISATION - CEBD70498A0C2465B2808432371E6571.1</p> </div> </text> <status value="final" /> <code> <coding> <system value="http://oridashi.com.au/system/code/context" /> <code value="ORGANISATION" /> <display value="Organisation Context" /> </coding> </code> <effectiveDateTime value="2017-12-07T14:56:07.3189622+11:00" /> <valueString value="CEBD70498A0C2465B2808432371E6571.1" /> </Observation>
Direct DLL Call
When hosing your own FHIR service using the FHIR-SERVER.dll you may call the library interface directly to obtain current organization/clinic context:
Oridashi.Fhir.Host.FhirHost host = new Oridashi.Fhir.Host.FhirHost(); // start-up the host Oridashi.Fhir.Host.Dstu3.FhirServer server = host.AutoHost; string organizationId = server.ContextOrganization;
Current Application Context
Will return a valueString value if a user is currently logged into the clinical system, represents the currently active view on screen.
Read
GET <fhir-host>/Observation/CTX-APPLICATION
Example
<Observation xmlns="http://hl7.org/fhir"> <id value="CTX-APPLICATION" /> <meta> <lastUpdated value="2017-12-07T14:57:04.685+11:00" /> </meta> <text> <status value="generated" /> <div xmlns="http://www.w3.org/1999/xhtml"> <p> Context: APPLICATION - MEDICATION.LIST</p> </div> </text> <status value="final" /> <code> <coding> <system value="http://oridashi.com.au/system/code/context" /> <code value="APPLICATION" /> <display value="Application Context" /> </coding> </code> <effectiveDateTime value="2017-12-07T14:57:04.6857468+11:00" /> <valueString value="MEDICATION.LIST" /> </Observation>
Value Set
- MEDICATION.LIST - current medications list
- MEDICALHISTORY.LIST - past medical history list
- IMMUNISATION.LIST - immunisations list
- INVESTIGATION.LIST - investigations list
- OTHER.LIST - unspecified list
- PRESCRIBING - prescribing medications entry
- MEDICALHISTORY.ENTRY - condition/procedure entry
- PATHOLOGY.ORDER - ordering pathology entry
- IMAGING.ORDER - ordering imaging entry
- 'LOGIN - login prompt
- UNKNOWN - another window unclassified (app is running)