This wiki has undergone a migration to Confluence found Here
Version 2 - FHIR Mapping Scenarios
Revision as of 11:26, 27 March 2015 by Rene spronk (talk | contribs)
The testing scenarios below are in preparation for FHIR CAT #9 in Paris.
During testing we distinguish between three kinds of actors:
- FHIR Client
- FHIR Server: a software application with the capability to receive and process FHIR based requests. The server need not have a stiorage capability for FHIR resources.
- Transformation Agent: the software component that transforms HL7v2 to FHIR and/or vice versa. The role of Transformation Agent will be combined with that of a FHIR client and/or a FHIR Server.
ADT Query
Demographics and visit query according to IHE ITI specs (IHE ITI Volume 2a, section 3.22 "Patient Demographics and Visit Query").
- Test for Transformation Agent / FHIR Client:
- Determine the ID of a patient which has an active encounter on a particular FHIR server. Edit the HL7v2.5 query example to include that identifier.
- Process/read a HL7v2.5 QBP^ZV1 query, send corresponding query to FHIR server, transform response to HL7 v2.5 RSP^ZV2.
- Determine the ID of a patient which doesn't have an active encounter; edit the HL7v2.5 query example to include that identifier and retest the transformation process.
- Notes:
- Example/test messages:
xx to do xxxxxxxx
ADT
Hl7v2.5 ADT messages: process a sequence comprised of A31, A01, A02, A08, A03 trigger events. The sequence A31-A01-A02 will contain 2 allergies, A08 drops one allergy (A08 and A03 only contain 2 allergies).
- Test for Transformation Agent / FHIR Client:
- (easy option, assumes that the FHIR Server supports Messaging) - process/read this sequence of HL7v2.5 messages, transform each of them to a FHIR Message, send FHIR messages to FHIR Server.
- (difficult option, assumes that the FHIR server only supports REST) - process/read this sequence of HL7v2.5 messages, transform each of them into a series of FHIR resources, query/update/delete resources on the FHIR Server.
- The Transformation agent will have to detect that one allergy has been dropped from the message -compared to the previous message about the same patient and encounter-, and that an allergy has to be deleted.
- A provenance resource SHOULD be created to document the fact that certain resources were sourced from a single message
- Test for FHIR server:
- If the FHIR Server supports Messaging it should be able to detect 'information which has been removed from a snapshot'
- Tt will have to detect that one allergy has been dropped from the message -compared to the previous message about the same patient and encounter-, and that an allergy has to be deleted
- If the FHIR Server supports Messaging it should be able to detect 'information which has been removed from a snapshot'
- Notes:
- You SHOULD populate the text option in the generated resources
- See David hay's blog for his reflections on this kind of mapping.
- Example/test messages:
xxx to do xxxxxxxxxx
Lab Results
HL7v2.5 Lab results: a sequence comprised of ORU temporary result, and ORU final result. Chem tests.
- This requires updating of existing resources, which is a challenge in that there are no unique resource.ids in HL7 v2.
- Notes:
- The following policy applies: given that the Lab system isn't the 'master' when it comes to data OTHER than the actual results (ORC/OBR/OBX/SPM/SAC/..) all other data should be considered to be references (to e.g. patient/encounter) only. The Transformation Agent should (somehow) inform the server that certain resources should NOT be updated. See also [1] (blogpost)
- You SHOULD populate the text option in the generated resources
Microbiology Results (advanced)
HL7v2.5 Microbiology results: an ORL message.
- Notes:
- This requires that one links observations related to the organisms with observations related to the susceptabilities of those organisms to antobiotics.
- OBX-4 is used as a grouping mechanism, in the example below OBX(3)-OBX(6) are linked to OBX(1) because they share the same value ("1") in OBX-4. OBX(7)-OBX(11) are related to OBX(2) because they share the same value ("2") in OBX-4.
- The following policy applies: given that the Lab system isn't the 'master' when it comes to data OTHER than the actual results (ORC/OBR/OBX/SPM/SAC/..) all other data should be considered to be references (to e.g. patient/encounter) only. The Transformation Agent should (somehow) inform the server that certain resources should NOT be updated. See also [2] (blogpost)
- You SHOULD populate the text option in the generated resources
SPM||20099329-735||VB^BLOODSAMPLE^L| OBR|4|2740X^OE|BC376^MIC|99040^Blood culture|||200903290800|||99-2^Jones^James||^Hepatitis risk||200903290830|BLDV|4010^Intern^Eric^^^^MD^L|+47(0)3214321 X3472^^^^^^^3472|||||200903301000|35.00|MB|F| OBX|1|CE|600-7^MICROORGANISM IDENTIFIED^LN|1|^E Coli|||A|||F| OBX|2|CE|600-7^MICROORGANISM IDENTIFIED^LN|2|^S Aureus|||A|||F| OBX|3|ST|28-1^AMIPICILLIN:SUSC:PT:ISLT:QN:MIC^LN|1|<2|ug/ml||S|||F| OBX|4|ST|60-4^CARBENICILLIN:SUSC:PT:ISLT:QN:MIC^LN|1|<16|ug/ml||S|||F| OBX|5|ST|267-5^GENTAMICIN:SUSC:PT:ISLT:QN:MIC^LN|1|<2|ug/ml||S|||F| OBX|6|ST|496-0^TETRACYCLINE:SUSC:PT:ISLT:QN:MIC^LN|1|<1|ug/ml||S|||F| OBX|7|ST|28-1^AMIPICILLIN:SUSC:PT:ISLT:QN:MIC^LN|2|<2|ug/ml||S|||F| OBX|8|ST|408-5^PIPERACILLIN:SUSC:PT:ISLT:QN:MIC^LN|2|<8|ug/ml||S|||F| OBX|9|ST|145-3^CEFUROXIME:SUSC:PT:ISLT:QN:MIC^LN|2|<2|ug/ml||S|||F| OBX|10|ST|161-0^CEPHALOTHIN:SUSC:PT:ISLT:QN:MIC^LN|2|<8|ug/ml||S|||F| OBX|11|ST|20-8^AMOXICILLIN+CLAVULANATE:SUSC:PT:ISLT:QN:MIC^LN|2|<4|ug/ml||S|||F|