By: Amos (Kippi) Bordowitz
A person working with FHIR® might find themselves
requiring a visualization of their work. It can be extremely helpful to see a
graphical representation of the entire project, or at least certain parts of
it.
One very useful tool is the clinFHIR Bundle visualizer.
For the uninitiated, Bundles are a special type of Resource that acts as “A
container for a collection of resources”. It is useful for quick transfers of
several to many resources and is especially useful when requiring RESTful
operations on them, like uploading to a server. More on Bundles here.
It allows a user to load a FHIR Bundle,
containing as many resources as needed, together with the relationships between
the different resources. It has a number of useful tools:
First off, you have the “Bundle Entries” tab, which gives you a list of all Resources in the Bundle and also shows you how many errors were found in each entry (when applicable). If you wish to perform a deeper, more reliable validation, you can go to the “Deep Validation” tab, which downloads the entire Bundle to a validation server of your choosing and performs a validation according to the server’s rules.
The “Observations” tab (below) let’s you see all observations in the Bundle at a glance. In the following screenshot I chose to highlight the “Body weight” observation. You can see that it highlights the Code (In this case, a LOINC code) and we can easily find all the pertinent information, instead of having to sift through all the entries.
Finally, what is, in my mind, the most impressive
feature: when you press the “Reference Graph” tab, you are rewarded with an
easy-to-understand graph showing both all the bundled resources and their
relationships. This view is automatically rendered: all you need to do is load
a bundle to the app
A quick guide to reading the visualization: Each Resource is placed in a rectangle with two terms. The bottom term is the resource type (e.g., Goal) and the top term is the name given to it (Pregnancy). The
arrows show the relationships between resources, representing references, with the text containing the name of the element containing the reference, with the arrow coming out of the resource which is referencing the resource to which the arrow is pointing.
Let’s look at the example shown above. We can see an entire CarePlan meant for an IVF patient (i.e., a person seeking to get pregnant using invitro fertilization). If you would just look at all the JSON
files it would take you a long time to elucidate all the connections and references. Instead, see how simple it is. One can see in a glance the different resources, such as the Goal (pregnancy) set in the CarePlan, the practitioner (Doctor) who authored it, the lab referrals, appointments, drugs administered according to decisions made by the CareTeam. You can also immediately see which
resources reference which other resources, making it extremely easy to see all the relationships within the entire bundle. There is no doubt, when looking at this diagram, who the main actors are (Patients, CarePlan) and who influences whom.
One very important caveat is that the Reference Graph only shows these on a conceptual level. The diagram does not show many resources of each type exist. For that you must go back to the “Bundle Entries” tab.
Finally, “Canonical Graph” –
According to David Hay’s blog post – “The Canonical graph uses canonical references rather than direct references for the graph. Canonical resources are where the target resource is specified by its canonical URL rather than id, and is commonly used in the Clinical Reasoning space.”
If you wish to make use of the Bundle Visualizer, it can be found here.
Check out our academy page for information on all our courses!