FHIR Chat · ORU^R01 · v2 to FHIR

Stream: v2 to FHIR

Topic: ORU^R01


view this post on Zulip Kevin Mayfield (Jul 07 2017 at 19:23):

Have been reading @René Spronk blog on converting this to FHIR. Am I correct in thinking each OBR segment should have a separate DiagnosticReport?

view this post on Zulip Kevin Mayfield (Jul 07 2017 at 19:24):

Message is : String msg = "MSH|^~\\&|HICSS|eQuest|ROUTE|ROUTE|20170425042348||ORU^R01|22392142__20170425042348|D|2.4|||AL|AL\r"
+ "PID|1||0772951\r"
//+ "PD1|||^^J82022^|G9436235^A^COURT SJ^^^\r"
+ "PD1|||^^^|G9436235^A^COURT SJ^^^\r"
+ "NTE|1||For Clinical advice please bleep 2612. If the patient\\.br\\is of African-Caribbean or African family origin,\\.br\\multiply the eGFR result by 1.159. Do not use eGFR to\\.br\\calculate drug doses.\r"
+ "OBR|1||B50129418U|CC_CA^Calcium^L|||20170425093500|||||||20170425113217|CC^CA|LZW|||||||||C\r"
+ "OBX|1||CC_CA^Calcium^SUHT||1.85|mmol/L|||||U\r"
+ "OBX|2||CC_CCA2^Calcium (adjusted)^SUHT||2.11|mmol/L|2.20-2.60|L|||U\r"
+ "OBR|2||B50129418U|CC_CRPM^C-Reactive protein(CRP)^L|||20170425093500|||||||20170425113217|CC^CRPM|LZW|||||||||Z\r"
+ "OBX|1||CC_CRP^C-Reactive Protein (CRP)^SUHT||57|mg/L|0-7.5|H|||U\r"
+ "OBR|3||B50129418U|CC_LFT3^Liver Profile^L|||20170425093500|||||||20170425113217|CC^LFT3|LZW|||||||||Z\r"
+ "OBX|1||CC_ALB2^Albumin^SUHT||21|g/L|35-50|L|||U\r"
+ "OBX|2||CC_ALP3^Alkaline Phosphatase^SUHT||80|U/L|30-130|N|||U\r"
+ "OBX|3||CC_ALT^ALT^SUHT||33|U/L|10-40|N|||U\r"
+ "OBX|4||CC_TB2^Bilirubin^SUHT||13|umol/L|0-20|N|||U\r"
+ "OBX|5||CC_TP^Total protein^SUHT||47|g/L|60-80|L|||U\r"
+ "OBR|4||B50129418U|CC_RE2^Renal Profile(U\\T\\Es)^L|||20170425093500|||||||20170425113217|CC^RE2|LZW|||||||||Z\r"
+ "OBX|1||CC_CR2^Creatinine^SUHT||66|umol/L|80-115|L|||U\r"
+ "OBX|2||CC_GFR3^eGFRcreat (CKD-EPI)^SUHT||84|mL/min/1.73m2|||||U\r"
+ "OBX|3||CC_K^Potassium^SUHT||3.6|mmol/L|3.5-5.3|N|||U\r"
+ "OBX|4||CC_NA^Sodium^SUHT||138|mmol/L|133-146|N|||U\r"
+ "OBX|5||CC_UR^Urea^SUHT||8.9|mmol/L|2.5-7.8|H|||U\r";

view this post on Zulip Kevin Mayfield (Jul 07 2017 at 19:27):

I think I'm missing a proper FillerOrder number from the sample data I've been sent , so I'm think of combing the OrderId and Test code. So I'd use B50129418U-CC_CA as the identifier for the first DiagnosticReport.

view this post on Zulip Kevin Mayfield (Jul 07 2017 at 19:37):

.. this is to demonstrate a query API (). No requirement for messagingAPI or storing data

view this post on Zulip René Spronk (Jul 08 2017 at 09:00):

The lack of solid identifiers could also motivate one to have 1 diagnosticReport (id = MSH ControlId), with multiple Observations (one for each OBR, id as you suggest), and use the Observation.Compontent part of the Observations to capture the value of the OBXs.

view this post on Zulip Kevin Mayfield (Jul 08 2017 at 11:48):

Thanks will look into that.... result will be on here https://nhsconnect.github.io/CareConnectAPI/restfulapis_diagnostics_diagnosticreport.html once I've done an example (it's hidden at the mo but currently matching US argonaut for search params).

view this post on Zulip Eric Haas (Jul 08 2017 at 19:17):

"So I'd use Group ID + Test code B50129418U-CC_CA as the identifier for the first DiagnosticReport." Is what I would do too. This would be consistent with the Lab Results Interface were we discuss unique filler ids and non unique filller ids and how to manage them. In fact made a tracker to add this to DR V2 mapping.
pasted image

view this post on Zulip Eric Haas (Jul 08 2017 at 19:21):

GF#13615

view this post on Zulip Kevin Mayfield (Jul 10 2017 at 08:58):

Can you link an Observation (on DSTU2) to a DiagnosticReport? I can use DiagnosticRresult to add the link the other way around but from an API perspective I'd want to find the DiagnosticReports and then get query for related Observations (I could get them one by one using the reference in results but would prefer to have one call).

view this post on Zulip Kevin Mayfield (Jul 10 2017 at 09:24):

Just to help me find Rene's blog from this site http://www.ringholm.com/docs/04350_mapping_HL7v2_FHIR.htm

view this post on Zulip Eric Haas (Jul 11 2017 at 17:31):

if you use the _include search parameter you should get them all in a searchset bundle. like this: [Base]/DiagnosticReport/[id]?_include=DiagnosticReport:result

view this post on Zulip Kevin Mayfield (Jul 12 2017 at 06:07):

That does make sense in this context. Noticed Argonaut has looked at this area http://www.fhir.org/guides/argonaut/r2/Conformance-server.html#Observation , so possibly could use category and date of observations/diagnosticreport.

view this post on Zulip Kevin Mayfield (Jul 19 2017 at 09:37):

We had a discussion on whether to have one DiagnosticReport for a ORU^R01 message or individual ones based on each OBR segment. We believed it would make sense to have one per message. I'm not sure how to treat the OBR segments: 'The OBR (Observation Request) segment identifies the observation as it was originally ordered: 15545^GLUCOSE. The observation was ordered by Particia Primary MD and performed by Howard Hippocrates MD.'.

view this post on Zulip Kevin Mayfield (Jul 19 2017 at 09:42):

Having an OBR segment is saying to me: this was ordered and here a the results of this Procedure. Which leads to DiagnosticReport can have many procedures and each procedure (or DiagnosticReport) can have many observations.

view this post on Zulip Kevin Mayfield (Jul 19 2017 at 10:02):

Looking at Procedure description it would seem this is optional part of DiagnosticReport. I think I need to state this Observation is for this test part of this report.

view this post on Zulip Eric Haas (Jul 19 2017 at 14:24):

one order can be for several panels ( e.g., cbc, chem, ua) so it depends how you want to split it out. In a v2 message each of these panels would be an OBR. In FHIR if you lump them under a single DR then the DR.code needs to be some panel of panels code and the Observation panel code will be for each (e.g, cbc ). Not sure what you mean by Procedure, but each observation as well as the the DR can reference the request (e.g. ProcedureRequest).

view this post on Zulip Kevin Mayfield (Jul 20 2017 at 14:18):

Does each OBR indicate a test was done? Or is it as you mentioned, a panel for grouping observations and nothing more.

view this post on Zulip Eric Haas (Jul 26 2017 at 21:19):

Does each OBR indicate a test was done? Or is it as you mentioned, a panel for grouping observations and nothing more.

What do you mean by "test was done" OBR-25?

view this post on Zulip redixint (Jul 26 2017 at 21:29):

In our recently released FHIR Services, we provide conversion functions to convert existing HL7 2.x and C-CDA messages to FHIR resources using FHIR bundle/transaction operations. Once the conversion is done and the resources are generated, you can use the service to upload the bundled resources to the FHIR server.

If interested, please visit http://www.redixfhir.com and press the "Jump Start" to start using the service now.
If you think there is something that can be improved or if you think the service is missing any useful features, please let me know.

view this post on Zulip Kevin Mayfield (Aug 02 2017 at 13:27):

What do DSTU2 DiagnosticOrder.items become in STU3 ProcedureRequest? Mutliple (nested) Procedures?

view this post on Zulip Eric Haas (Aug 02 2017 at 15:48):

each item is a separaet Procedure request. "The ProcedureRequest resource allows requesting only a single procedure. If a workflow requires requesting multiple procedures simultaneously, this is done using multiple instances of this resource. These instances can be linked in different ways, depending on the needs of the workflow. For guidance, refer to the Request pattern"

http://build.fhir.org/procedurerequest.html#scope


Last updated: Apr 12 2022 at 19:14 UTC