FHIR Chat · Hapi, FHIR R4, Navigating thru MessageHeader object · hapi

Stream: hapi

Topic: Hapi, FHIR R4, Navigating thru MessageHeader object


view this post on Zulip Zak Guler (Jul 27 2020 at 15:50):

I am receiving a FHIR 'MessageHeader' Document and converting it to Bundle object. I can get the values for some parameters values but not the ones nested deeper inside the object.
for instance:
-I can get the code value for "underlying_cause_of_death": "C509"
as in:
List<String> strListUnderlying = parameters.getParameters("underlying_cause_of_death")
.stream()
.filter(e -> e instanceof Coding)
.map(c -> ((Coding) c).getCode())
.collect(Collectors.toList());
strListUnderlying.forEach(s -> System.out.println("z..underlying_cause_of_death: " + s));

output: "C509"

But, I can't find a way to get the code(s) for "record_cause_of_death": "C509" and "I500".
Can anyone help please show me how to navigate thru this object? example of the file is below.
thank you
Zak

EX: to build the Bundle object:
bundle = (Bundle) ctx.newJsonParser().parseResource(Bundle.class, reqBody);

FHIR Doc:
{
"resourceType": "Bundle",
"id": "e1d15daa-af09-46fd-8f16-15a9b1318f6e",
"type": "message",
"timestamp": "2020-07-08T11:01:15.125631-04:00",
"entry": [
{
"fullUrl": "urn:uuid:8d19c9bc-dbd6-484a-abb1-ee6182ca79ea",
"resource": {
"resourceType": "MessageHeader",
"id": "8d19c9bc-dbd6-484a-abb1-ee6182ca79ea",
"eventUri": "http://nchs.cdc.gov/vrdr_coding",
"destination": [
{
"endpoint": "https://UTAH.example.com/jurisdiction/message/endpoint"
}
],
"source": {
"endpoint": "http://nchs.cdc.gov/vrdr_submission"
},
"focus": [
{
"reference": "urn:uuid:d770590e-7968-4c1c-a1d9-82444db282c2"
}
]
}
},
{
"fullUrl": "urn:uuid:d770590e-7968-4c1c-a1d9-82444db282c2",
"resource": {
"resourceType": "Parameters",
"id": "d770590e-7968-4c1c-a1d9-82444db282c2",
"parameter": [
{
"name": "cert_no",
"valueString": "021520"
},
{
"name": "nchs_id",
"valueString": "2019UT021520"
},
{
"name": "underlying_cause_of_death",
"valueCoding": {
"system": "http://hl7.org/fhir/ValueSet/icd-10",
"code": "C509"
}
},
{
"name": "record_cause_of_death",
"part": [
{
"name": "coding",
"valueCoding": {
"system": "http://hl7.org/fhir/ValueSet/icd-10",
"code": "C509"
}
},
{
"name": "coding",
"valueCoding": {
"system": "http://hl7.org/fhir/ValueSet/icd-10",
"code": "I500"
}
}
]
},
{
"name": "entity_axis_code",
"part": [
{
"name": "lineNumber",
"valueId": "1"
},
{
"name": "coding",
"valueCoding": {
"system": "http://hl7.org/fhir/ValueSet/icd-10",
"code": "I500"
}
}
]
},
{
"name": "entity_axis_code",
"part": [
{
"name": "lineNumber",
"valueId": "2"
},
{
"name": "coding",
"valueCoding": {
"system": "http://hl7.org/fhir/ValueSet/icd-10",
"code": "C509"
}
}
]
}
]
}
}
]
}

view this post on Zulip Zak Guler (Jul 28 2020 at 00:36):

problem resolved.
List<ParametersParameterComponent> param = parameters.getParameter();
List<ParametersParameterComponent> paramParts4 = param.get(4).getPart();
logger.info("z..paramParts4.size(): " + paramParts4.size());
logger.info("z..paramParts4.get(0).getName(): " + paramParts4.get(0).getName());
logger.info("z..paramParts4.get(0).getValue(): " + paramParts4.get(0).getValue());
logger.info("z..paramParts4.get(1).getName(): " + paramParts4.get(1).getName());
logger.info("z..paramParts4.get(1).getValue(): " + paramParts4.get(1).getValue().getChildByName("code").getValues().toString());


Last updated: Apr 12 2022 at 19:14 UTC