The patient is an 11 year old child. The FHIR data was generated by Synthea.
It’s a rich bundle of 200 FHIR resources taking in Encounters, Observations, MedicationRequests, Immunizations, Procedures and Conditions.
A synthetic patient history spanning 10 years.
I’ve worked with AI’s like Claude and ChatGPT in the past to generate bundles of FHIR resources to varying degrees of success.
Today I tried the reverse. I asked Claude to extract and display a detailed set of information from a bundle of connected FHIR resources. Just the kind of bundle you would get if you ran a complicated FHIR search query.
Here’s what I wanted to see:
- The patient’s personal details
- All the physician and medical facility information
- A list of Encounters along with the Conditions and Observations made by the doctor
- All Procedures performed on the patient
- All Medications prescribed
Here’s the full prompt.
The FHIR Bundle I have just uploaded contains a patient record spanning a number of years - all documented in hundreds of FHIR R4 resources. Read this Bundle of resources and output the following information in a readable way: The Patient’s personal details Details of physicians and medical facilities that dealt with the patient Details of each encounter the patient had along with any conditions diagnosed during the encounter or observations made Details of any procedures performed on the patient Details of medications prescribed to the patient Present this data in a table structure in reverse order, with most recent activities first.And here’s what Claude delivered.
I was impressed. Not only on the data side but on the rendering side as well. It was user-friendly and easy to read.
It beats running a FHIR query and manually reading the JSON!
- 6 sections filled with structured data
- A table of Encounters with Observations and Conditions in their own columns
- Separate tables for Procedures and Medications
- A bonus unasked for section listing Immunizations which were included in the bundle
- Intelligent rounding of Observation quantity values to 1 or 2 decimal places
I’m not sure if the last was a pro or con. While it made the results more readable, it essentially made a data change without being asked.
Example: Body Height went from 133.8993993561609 cm to 133.90 cm.
It made one mistake – failing to extract the blood pressure readings.
This was disappointing but not surprising as the BP readings were in the only multi-value Observation resource.
A follow up prompt telling it to look in the Observation.component element if the Observation.value were empty fixed the problem.
Here’s the FHIR Bundle I used.
While I don’t expect to see AI’s dynamically building these screens in real medical settings in the coming months (I hope), it is coming.
We just need to be careful about those unasked for data changes and missing elements.
---
Here are three ways I can help you.
.png)

