Stream: fhirpath
Topic: Getting Observation.component.value
Yunwei Wang (Dec 07 2021 at 21:19):
Kindly new here. So I want to write FHIRPath to get Observation.component.value for certain code. For example, only get Diastolic blood pressure. I am not sure if this is correct
Observation.component.where(code.coding.code = '8462-4').value
I am not sure code.coding.code='8462-4'
means any coding has code 8462-4 or the first coding has code 8462-4
Thanks!
Lloyd McKenzie (Dec 07 2021 at 21:29):
It means any of the codings equal that value. (To be safe, you should always check system too.)
Brian Postlethwaite (Dec 07 2021 at 21:32):
And needs to have a where on the code.coding.where() as nerds to be restricted at each collection point.
Will try getting the exact expression when I get to my desk.
Yuan Peng (Jan 06 2022 at 10:28):
Hi everybody! i'm quite new to the topic of FHIR Path. I'm having a similar problem with Patient resource.
I used identifier.where(type.coding.code='MR').value
to find the identifier, it works fine if there is only one coding
inside type
. However if there are more coding
s exist in type
, the FHIR Path returns null.
Can someone please help? Thanks!
Lee Surprenant (Jan 06 2022 at 14:49):
maybe try something like this? identifier.where(type.coding.where(code='MR')).value
Yuan Peng (Jan 07 2022 at 06:58):
I've tried that, but somehow it's still not working.
Lloyd McKenzie (Jan 07 2022 at 18:09):
What engine are you using?
Yuan Peng (Jan 10 2022 at 07:25):
Lloyd McKenzie said:
What engine are you using?
I'm using the FHIR Path in a Java application. In the application we use the newest versions of ca.uhn.fhir.fhirpath.IFhirPath
and org.hl7.fhir.r4.hapi.fluentpath.FhirPathR4
packages. We defined a FHIR Path as String and then use the method evaluate(org.hl7.fhir.instance.model.api.IBase theInput, String thePath, Class<T> theReturnType)
.
Lloyd McKenzie (Jan 10 2022 at 15:51):
@James Agnew
James Agnew (Jan 10 2022 at 15:57):
The path expression you gave above works for me. See:
James Agnew (Jan 10 2022 at 16:00):
If this isn't working, can you post your data to the HAPI FHIR server and produce a link similar to mine to show the non-working FP expression? It's nice and easy to troubleshoot that way
Paul Lynch (Jan 10 2022 at 16:04):
Is _fhirpath a HAPI-only thing, or is it defined in an IG somewhere? It looks really useful.
James Agnew (Jan 10 2022 at 16:19):
It's just a HAPI FHIR thing. There is an interceptor you can add that layers on this functionality... Agree it's super useful :)
Alexander Zautke (Jan 10 2022 at 17:09):
@James Agnew Just saw the operation for the first time, immediately want to implement it in Firely Server. Pretty cool.
Brian Postlethwaite (Jan 10 2022 at 20:26):
In the Telstra server it's called https://sqlonfhir-r4.azurewebsites.net/fhir/Patient/example/$extract?expression=name.first()
(though I'm no longer happy with the operation name as it clashes now)
Brian Postlethwaite (Jan 10 2022 at 20:27):
Funny that we both returned a parameters object!
Alexander Zautke (Jan 10 2022 at 20:38):
Sorry if it's too off-topic for the current thread... would there be interest in defining it as a core operation?
Yuan Peng (Jan 13 2022 at 07:14):
James Agnew said:
If this isn't working, can you post your data to the HAPI FHIR server and produce a link similar to mine to show the non-working FP expression? It's nice and easy to troubleshoot that way
I've tried it with my 'problematic' Patient resource, and it did not working:
https://hapi.fhir.org/baseR4/Patient/2782733?_fhirpath=Patient.identifier.where(type.coding.where(code=%27MR%27)).value
https://hapi.fhir.org/baseR4/Patient/2782733?_fhirpath=Patient.identifier.where(type.coding.code=%27MR%27).value
Brian Postlethwaite (Jan 14 2022 at 02:12):
That query looks good to me, and works on the fhirpathtester, and if I was doing that, you probably should also include the system too.
image.png
Maybe an issue with the java fhirpath implementation?
Brian Postlethwaite (Jan 14 2022 at 02:13):
To make this work with the HAPI engine, try this one:
https://hapi.fhir.org/baseR4/Patient/2782733?_fhirpath=Patient.identifier.where(type.coding.where(code=%27MR%27).exists()).value
the inclusion of the .exists() on the check for the coding seems to make that work nicely.
Yuan Peng (Jan 14 2022 at 08:33):
It works! Thanks a lot! @Brian Postlethwaite
Last updated: Apr 12 2022 at 19:14 UTC