Bundle Viewer update
January 14, 2026 1 Comment
The Bundle Visualizer module in clinFHIR has been around for a while. It allows you to view the contents of a FHIR bundle in a number of ways, and can also validate the contents. As part of a general update to clinFHIR that I’m working on, I’ve taken the opportunity to ‘refurbish’ and rename it to Bundle Viewer. This post describes the main changes.
You can access the test version of the Viewer here. (It’s completely usable – I’m just waiting to update some of the other clinFHIR modules before I update the main version).
Note that you should never put real patient data in the Bundle Viewer (or any clinFHIR module). It is only for testing and educational purposes.
When you load the app you’ll see the front page, where you can select the Bundle to view.

Key differences from the current version include:
- An improved Bundle selection screen (the screenshot above)
- Links to on-line bundles – either static (like a github or IG example) or a FHIR query
- The ability to store a bundle or a link either locally or in a shared library of Bundles / links
- The References graph is slightly faster to load – and is only shown when the bundle has less than 250 resources. Any larger than that and the graph takes ages to load – and is not that useful anyway. You can still see graphs based on a single resource in the Bundle Entries view
- There’s a new ‘clinical resources’ tab that separately shows a number of commonly used resources – Observation, Condition, DiagnosticReport (Observations), Medications (MedicationRequest & MedicationStatement), Allergies and Procedures
- The Document tab that shows when there is a Composition in the bundle has been updated.
- The bundle is validated when it is loaded and the issues displayed in the Validation tab. Note that this is a general validation – it’s not (yet) profile aware, though that is something I’m working on
- New narrative views that include both rendered and underlying HTML
A summary of views:
- The Bundle Entries view lists the entries in the bundle. Selecting one shows details of that entry in the right pane including the Json of the entry & resource, the Narrative (XML & rendered) – if any, XML & FSH representations of the resource, a mini-graph of connected resources and any issues found during validation
- The Resources Graph displays the graph of all resources in the bundle as they are connected by references
- The Validation tab lists any validation issues found (base validation only using an included Hapi server)
- Clinical Resources are specific resource types (as mentioned above)
- The Document tab only shows when there is a Composition resource in the Bundle and renders the bundle as if it were a Document
- The Json tab is the raw Json
All views are heavily hyperlinked for ease of Bundle exploration.
There are 5 ways to load a bundle.
- The simplest way is the Paste Bundle option. Just paste in the raw Json (or upload from a file) and click the ‘View Bundle’ button that appears.
- New Query allows you to specify a url to retrieve a bundle from. This can be a direct link to a bundle or a FHIR query. If you enter a name for the query then it can be saved to the Locally Saved Queries collection.
- Locally Saved Queries are queries saved from the option above. Useful when the source might change and you want a simple way to see any changes. These queries are saved in the local browser cache. When a saved query is displayed in the list, there will be an option to save it to the Shared Library Queries collection.
- Shared Library Queries are queries that have been saved to the shared library from the locally saved queries. They are visible to all users, but otherwise work in the same way as other queries.
- Stored Library Bundles are actual bundles (not a link) that are stored in the Library and available to all users. They are added to the Library using a link at the top right of the screen when a bundle is being viewed (see image below).

The Library stores links and bundles that are available to all users. Right now it’s a ‘free for all’ with no restrictions on uploading and minimal categorization abilities. This is something I’ll work on in the future. And I also need to support references using the CodeableReference datatype.
Do note that when I migrate this to production, the library will be reset so don’t put anything there that you don’t mind losing. Actually, that is true in general – I do my best but can offer no guarantees. You can always down load (and upload again later) any important bundle.
To see more documentation click the (i) icon in the top of the Viewer.
Feel free to reach out on the FHIR chat with issues or suggestions.
Pingback: Questionnaire Viewer | Hay on FHIR