FHIR🔥 API Extensions

CodeSystem subproperties (since V6.7)

FHIR conceptually supports the idea of a concept having subproperties (to support, for example, SNOMED CT's ‘role grouping’). This support is manifest in the $lookup operation supporting the OUT parameter property.subproperty. However, the is no support in the FHIR CodeSystem resource for specifying such subproperties.

Ontoserver introduces three Extensions to enable this. The first Extension, http://csiro.au/StructureDefinition/subproperty is boolean-valued and applies to CodeSystem.property. If true, it indicates thet the declared property should be treated as a subproperty. If false or absent, then it is just a normal property.

The second Extension, http://csiro.au/StructureDefinition/subproperty-key is string-valued and applies to CodeSystem.concept.property. Each set of properties of a given concept with the same value of subproperty-key Extension belongs to the same subproperty group. Otherwise, there is no significance attached to the actual value of the subproperty-key Extension.

The third Extension, http://csiro.au/StructureDefinition/subproperty-map is complex, with sub-extensions property and key and applies to CodeSystem.concept. Both have a minimum cardinality of 1, with property being single-valued and key being multi-valued. The code-typed property indicates the property name that each of the sub-properties identified by the key values belong to.

Hence, in the following example, both ISID and BASIS_STRNTCD are treated as subproperties and, for the concept 40301611000001105 are grouped together as subproperties of “ING”.

{
  "resourceType": "CodeSystem",
  ...
  "property": [{
    "code": "APID",
    "description": "APID",
    "type": "Coding"
  }, {
    "extension": [{
      "url": "http://csiro.au/StructureDefinition/subproperty",
      "valueBoolean": true
    }],
    "code": "ISID",
    "description": "ISID",
    "type": "Coding"
  }, {
    "extension": [{
      "url": "http://csiro.au/StructureDefinition/subproperty",
      "valueBoolean": true
    }],
    "code": "BASIS_STRNTCD",
    "description": "BASIS_STRNTCD",
    "type": "Coding"
  }],
  ...
  "concept": [{ 
    "extension": [{
      "url": "http://csiro.au/StructureDefinition/subproperty-map",
        "extension": [
          { "url": "property", "valueCode": "ING" },
          { "url": "key", "valueString": "A34F" }
        ]
    }],
    "code": "40301611000001105", 
    "display": "Sodium iodide [I-131] 277.5MBq capsules", 
    "property": [{ 
      "code": "parent", 
      "valueCode": "VMP" 
    }, { 
      "code": "parent", 
      "valueCode": "39253411000001109" 
    }, { 
      "extension": [{ 
        "url": "http://csiro.au/StructureDefinition/subproperty-key", 
        "valueString": "A34F" 
      }], 
      "code": "ISID", 
      "valueCoding": { 
        "system": "https://dmd.nhs.uk", 
        "code": "39248411000001101" 
      } 
    }, { 
      "extension": [{ 
        "url": "http://csiro.au/StructureDefinition/subproperty-key", 
        "valueString": "A34F" 
      }], 
      "code": "BASIS_STRNTCD", 
      "valueCoding": { 
        "system": "https://dmd.nhs.uk/BASIS_OF_STRNTH", 
        "code": "1", 
        "display": "Based on Ingredient Substance" 
      } 
    },
    ...
  }]
}

The expected result of a $lookup on this concept is as follows:

{
  "resourceType": "Parameters",
  "parameter": [{
    "name": "name",
    "valueString": "Dictionary of medicines and devices (dm+d)"
  }, {
    "name": "display",
    "valueString": "Sodium iodide [I-131] 277.5MBq capsules"
  }, {
    "name": "property",
    "part": [{
      "name": "code",
      "valueCode": "parent"
    }, {
      "name": "value",
      "valueCode": "39253411000001109"
    }]
  },{
    "name": "property",
    "part": [{
      "name": "code",
      "valueCode": "ING"
    }, {
      "name": "subproperty",
      "part": [{
        "name": "code",
        "valueCode": "ISID"
      }, {
        "name": "valueCoding",
        "valueCoding": {
          "system": "https://dmd.nhs.uk",
          "code": "39248411000001101" 
        }
      }]
    }, {
      "name": "subproperty",
      "part": [{
        "name": "code",
        "valueCode": "BASIS_STRNTCD"
      }, {
        "name": "valueCode",
        "valueCoding": {
          "system": "https://dmd.nhs.uk/BASIS_OF_STRNTH",
          "code": "1",
          "display": "Based on Ingredient Substance"
        } 
      }]
    }]
  }]
}