Contemplating compartments in FHIR

This is one of those posts that I am really writing for myself, so I know where go when I (again) get confused by FHIR compartments.

Now, a compartment is really a rather a neat idea.

It’s part of the REST interface, and started out as a form of ‘syntactic sugar’ – instead of a query like:

[baseurl]/Condition?subject=100

you can type:

[baseurl]/Patient/100/Condition

which is rather tidier (The ‘Patient’ in this query refers to the name of the compartment rather then the Patient Resource – which can be a bit confusing). The actual definition is a bit more complex than that – you can read it up in the spec if you want to – the documentation for a compartment is here for DSTU-1 with further notes on searches here.

That’s all very good but there’s an even neater use.

One of the issues of the base REST interface is that it is a relatively simple CRUD style interface – you query one resource at a time. But often, having found your patient, you often want to know lots of details about them – conditions, allergies, alerts, medications, DiagnosticReports etc – and each one is a separate REST call, which can be a bit tedious. And this is where the compartment can help.

Theres’s a specific syntax for compartment that allows you to retrieve ALL the resources about a patient (at least a big subset of them, and dependant on what the server is storing of course). Here it is:

[baseurl]/Patient/100/*

The star (*) at the end of the url indicates all resources for that patient.

So, for a compliant server – all the data for a patient is just a single url away!

Not all resources can be retrieved in this way – each resource needs to have defined a search parameter that the server can use to link the resource to the patient. There’s a list of the DSTU-2 resources that can be returned in this way here.

And this syntax doesn’t change the value of the List resource, which is a way for a user to specifically describe lists like current medications, problem list or known allergies.

But it’s certainly a very useful addition to the FHIR toolbox (though I suspect that there will be more discussion about how it should work!)

Oh, and just as a comment, these urls will certainly change as FHIR moves into preparing for DSTU-2 so the links may not work once that happens – I’ll try to change the URLs when that happens.

And sorry about the title – I just couldn’t help myself…

About David Hay
I'm a Product Strategist at Orion Health, Chair emeritus of HL7 New Zealand and co-Chair of the FHIR Management Group. I have a keen interest in health IT, especially health interoperability with HL7 and the new FHIR standard.

One Response to Contemplating compartments in FHIR

  1. Pingback: The Circle of Care in FHIR | Hay on FHIR

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: