Tuesday 7 January 2014

#FHIR towards DSTU

Happy new year.

As we kick off 2014 the FHIR standards have moved to the DSTU candidate version 0.12.

My public services have been updated to align with changes; If you do decide to play let me know if you find any holes with my v0.12 updates.

As part of the updates in this round some more features have been added these include:

Deleted resource in history atom feed
In the system history bundle deletion is now supported.  This allows resources that have been deleted to be represented in the history feed.  For example deletion of a Condition resource:

<deleted-entry xmlns="http://purl.org/atompub/tombstones/1.0"
  ref="http://localhost:8190/condition/253" when="2013-12-02T12:36:04Z" />


This allows synchronisation of resources using atom based pub/sub as per function HL7 EHR Functional Model IN 2.3 Synchronization.

Metadata includes supported search-type elements
Some improvements also have been made to the metadata call which returns a server's conformance statement as a conformance resource instance.  This now includes all standard search parameters supported for each resource.  For example for the Condition resource the _id, code, subject and status search parameters are supported:

<resource>
      <type value="Condition" />
      <operation>
        <code value="read" />
      </operation>
      <operation>
        <code value="search-type" />
      </operation>
      <readHistory value="false" />
      <searchInclude value="Condition.subject" />
      <searchParam>
        <name value="_id" />
        <type value="token" />
      </searchParam>
      <searchParam>
        <name value="code" />
        <type value="token" />
      </searchParam>
      <searchParam>
        <name value="subject" />
        <type value="reference" />
      </searchParam>
      <searchParam>
        <name value="status" />
        <type value="token" />
      </searchParam>
 </resource>

Along with these new search parameter definitions there are other resource level conformance definitions:

  • Resource level operations supported (operation) are in this case read (read the current state of the resource), and search-type (search the resource type based on some filter criteria).
  • Currently readHistory is not supported for a specific resource type - as indicated  
      <readHistory value="false" /> 
    this will soon be implemented ;) allowing a by-resource history feed.
  • There is also a searchInclude element specified which defines which resources associated with this type may be included on a search. For Condition resource the subject (Patient) can be included with the _include search parameter.

Profiles are next - to define details of terminology bindings and extension definitions.

Extensions to Patient resource
As part of my scope of interest a couple of resource extensions have been added:
- ethnicity:  commonly implemented Australian administrative coding of aboriginality; from National Health Data Dictionary
- age: useful value when my server is switched to 'de-identified' mode; no specific date of birth supplied (no names and person identifiers either) e.g.

        <extension url="http://oridashi.com.au/fhir/extension/age">
          <valueQuantity>
            <value value="10" />
            <units value="a" />
          </valueQuantity>
        </extension>
        <extension url="http://oridashi.com.au/fhir/extension/ethnicity">
          <valueCoding>
            <system value="http://oridashi.com.au/system/nhdd/ethnicity" />
            <code value="1" />
            <display value="Aboriginal" />
          </valueCoding>
        </extension>

These will be the subject of my conformance profile definitions in the near future.

Server 3 'zedmed' cis languishes a little behind resource content wise but can be accessed on demo.oridashi.com.au:8192 if you dare.

Servers launch page has been updated to 0.12 also going through a set of basic read and search examples.

Until next time free the data