In IBM FHIR Server 4.7.0, the IBM FHIR Server team introduced fhir-path-cli
and related to a blog on $everything.
Now, let’s download some sample data on the server using the Integration Test data.
- Download the Sample Data
curl -L https://raw.githubusercontent.com/IBM/FHIR/main/fhir-server-test/src/test/resources/testdata/everything-operation/Antonia30_Acosta403.json -o Antonia30_Acosta403.json
- Load the Sample Data bundle to the IBM FHIR Server
curl -k --location --request POST 'https://localhost:9443/fhir-server/api/v4' \
--header 'Content-Type: application/fhir+json' \
--header "Authorization: Basic ${DUMMY_PASSWORD}" \
--data-binary "@Antonia30_Acosta403.json" -o response.json
-
Scan the response.json for any status that is not
"status": "201"
. For example, the status is in the family of User Request Error or Server Side Error. -
Check the
response.json
and find the id for Patient (it should be the first one).
{
"response": {
"id": "178f4a3f869-6abfe1e6-3a4a-4c9a-81a8-fb8c6263e003",
"status": "201",
"location": "Patient/178f4a3f869-6abfe1e6-3a4a-4c9a-81a8-fb8c6263e003/_history/1",
"etag": "W/\"1\"",
"lastModified": "2021-04-21T13:34:50.207684Z"
}
},
- Check the
Patient/[id]/$everything
with a _type constraint and _since.
- Request *
curl -k --location --request GET 'https://localhost:9443/fhir-server/api/v4/Patient/178f4a3f869-6abfe1e6-3a4a-4c9a-81a8-fb8c6263e003/$everything?_type=CarePlan,CareTeam&_since=2021-01-01T00:00:00Z&_count=1' \
--header 'Content-Type: application/fhir+json' \
--header "Authorization: Basic ${DUMMY_PASSWORD}" -o care.json
- Response *
{
"resourceType": "Bundle",
"id": "689856f9-6ef6-4d74-8f77-a813ff7b1c6d",
"type": "searchset",
"total": 11,
"entry": [
{
"fullUrl": "https://localhost:9443/fhir-server/api/v4/Patient/178f4a3f869-6abfe1e6-3a4a-4c9a-81a8-fb8c6263e003",
"resource": {
"resourceType": "Patient",
"id": "178f4a3f869-6abfe1e6-3a4a-4c9a-81a8-fb8c6263e003",
"meta": {
"versionId": "1",
"lastUpdated": "2021-04-21T13:34:50.207684Z"
}
...
}
}
]
}
You’ll see further down CareTeam and CarePlan resources…
- This is where we can have a bit of fun… download the fhir-path-cli
curl -L https://github.com/IBM/FHIR/releases/download/4.7.0/fhir-path-4.7.0-cli.jar -o fhir-path-4.7.0-cli.jar
- Let’s run the fhir-path-4.7.0-cli.jar and test a FHIRPath.
Command Line
java -jar fhir-path-4.7.0-cli.jar --path 'entry.fullUrl' --file care.json
Output
https://localhost:9443/fhir-server/api/v4/Patient/178f4a3f869-6abfe1e6-3a4a-4c9a-81a8-fb8c6263e003
https://localhost:9443/fhir-server/api/v4/Patient/178f4a3f869-6abfe1e6-3a4a-4c9a-81a8-fb8c6263e003/CarePlan/178f4a3f86a-1a9a1d73-4d1d-46d5-8494-339dddbfe9d2
https://localhost:9443/fhir-server/api/v4/Patient/178f4a3f869-6abfe1e6-3a4a-4c9a-81a8-fb8c6263e003/CarePlan/178f4a3f86b-06c07a6c-3be7-4e6a-abb2-040ff67c8c1f
https://localhost:9443/fhir-server/api/v4/Patient/178f4a3f869-6abfe1e6-3a4a-4c9a-81a8-fb8c6263e003/CarePlan/178f4a3f873-d8069835-938e-45b1-9a70-5aba3794f6f3
https://localhost:9443/fhir-server/api/v4/Patient/178f4a3f869-6abfe1e6-3a4a-4c9a-81a8-fb8c6263e003/CarePlan/178f4a3f87c-ce204596-8037-416c-b2e0-fc7442d9a276
https://localhost:9443/fhir-server/api/v4/Patient/178f4a3f869-6abfe1e6-3a4a-4c9a-81a8-fb8c6263e003/CarePlan/178f4a3f87c-46785bc7-807a-40e0-bc08-792977ac8ec8
https://localhost:9443/fhir-server/api/v4/Patient/178f4a3f869-6abfe1e6-3a4a-4c9a-81a8-fb8c6263e003/CareTeam/178f4a3f86a-b79251c3-5019-426e-8211-748adbdfdf54
https://localhost:9443/fhir-server/api/v4/Patient/178f4a3f869-6abfe1e6-3a4a-4c9a-81a8-fb8c6263e003/CareTeam/178f4a3f86b-22a7baab-77b3-4fb5-b318-9249ea80ec85
https://localhost:9443/fhir-server/api/v4/Patient/178f4a3f869-6abfe1e6-3a4a-4c9a-81a8-fb8c6263e003/CareTeam/178f4a3f873-e370fba2-f45e-4cdd-b13b-781e249f84f8
https://localhost:9443/fhir-server/api/v4/Patient/178f4a3f869-6abfe1e6-3a4a-4c9a-81a8-fb8c6263e003/CareTeam/178f4a3f87c-596d80cc-7b42-4054-bc02-a48acfcc95b7
https://localhost:9443/fhir-server/api/v4/Patient/178f4a3f869-6abfe1e6-3a4a-4c9a-81a8-fb8c6263e003/CareTeam/178f4a3f87c-6cc197cd-b665-46e0-ad35-c016edeaf13b
You’ve seen a brief introduction to fhir-operation-everything and a bonus fhir-path-cli showing the output.
Note, DUMMY_PASSWORD
should be replaced with or set as a value when the corresponding curl steps are executed.
Thanks to my colleague that implemented $everything.