FHIR🔥 API Extensions

This page describes both Ontoserver-specific extensions to the FHIR APIs, and useful specific behaviours that Ontoserver supports and that may not be provided by other, general purpose, FHIR terminology services.

Boosting

The Extension URI http://ontoserver.csiro.au/profiles/boost can be added to the ValueSet.compose.include element to adjust the ranking up (value > 1.0) or down (value < 1.0) of codes when performing an $expand with filter.

The following example demonstrates usage:

{
   "resourceType" : "ValueSet",
   "url" : "http://csiro.au/example/ValueSet/boost1",
   "compose" : {
      "include" : [ {
         "system" : "http://snomed.info/sct",
         "filter" : [ {
            "property" : "concept",
            "op" : "is-a",
            "value" : "30560011000036108"
         } ],
         // This extension reduces the significance of codes matching this filter
         "extension" : [ {
            "url" : "http://ontoserver.csiro.au/profiles/boost",
            "valueDecimal" : 0.01
         } ]
      }, {
         "system" : "http://snomed.info/sct",
         "filter" : [ {
            "property" : "concept",
            "op" : "is-a",
            "value" : "30404011000036106"
         } ],
         "extension" : [ {
            // This extension increases the significance of codes matching this filter
            "url" : "http://ontoserver.csiro.au/profiles/boost",
            "valueDecimal" : 10.01
         } ]
      }, {
         "valueSet": [
            "http://snomed.info/sct?fhir_vs=refset/30513011000036104"
         ],
         "extension" : [ {
            // This extension increases the significance of codes in the imported ValueSet
            "url" : "http://ontoserver.csiro.au/profiles/boost",
            "valueDecimal" : 5.0
         } ]
      } ]
   }
}

AuditEvents

The logs that Ontoserver produces allows an Ontoserver operator to track the searches, lookups, translations, etc, that are conducted. However, it does not allow the operator to track the selection of a code.

To facilitate this, Ontoserver provides an endpoint for the creation of FHIR AuditEvent resources, by posting them as JSON/XML resources to /fhir/AuditEvent. These are not persisted, but are logged in order to allow capture and analysis.

An example of an AuditEvent (in JSON) follows. This event indicates the selection of a code (in this case the SNOMED code for ‘Elbow Region Structure’, following a search (i.e. ValueSet $expand with a filter) of the SNOMED Body Structure implicit ValueSet. More detail about AuditEvent can be found in its definition in the FHIR® Specification

{
  "resourceType": "AuditEvent",
  "type": {
    "system": "http://ontoserver.csiro.org/CodeSystem/ontoserver-reporting",
    "code": "code-selected",
    "display": "Code Selected"
  },
  "action": "E",
  "recorded": "2017-06-02T22:04:27+11:00",
  "outcome": "0",
  "agent": [
    {
      "requestor": false
    }
  ],
  "source": {
    "site": "IT Department",
    "identifier": {
      "value": "John's Laptop"
    }
  },
  "entity": [
    {
      "name": "selected code",
      "identifier": {
        "system": "http://snomed.info/sct",
        "value": "127949000"
      },
      "detail": [{
                  "type": "valueSetExpansionUrl",
                  "value": "http://snomed.info/sct?fhir_vs=refset/32570061000036105"
        },
        {
                "type": "valueSetExpansionFilter",
                "value": "elbow"
        },
        {
                "type": "indexInSearchResult",
                "value": "2"
        }
      ]
    }
  ]
}