FHIR Release 3 (STU)

This page is part of the FHIR Specification (v3.0.2: STU 3). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions

Operation-codesystem-compose.json

Vocabulary Work GroupMaturity Level: N/ABallot Status: InformativeCompartments: Not linked to any defined compartments

Raw JSON (canonical form)

Operation Definition

{
  "resourceType": "OperationDefinition",
  "id": "CodeSystem-compose",
  "text": {
    "status": "generated",
    "div": "<div>!-- Snipped for Brevity --></div>"
  },
  "url": "http://hl7.org/fhir/OperationDefinition/CodeSystem-compose",
  "name": "Code Composition based on supplied properties",
  "status": "draft",
  "kind": "operation",
  "date": "2019-10-24T11:53:00+11:00",
  "publisher": "HL7 (FHIR Project)",
  "contact": [
    {
      "telecom": [
        {
          "system": "url",
          "value": "http://hl7.org/fhir"
        },
        {
          "system": "email",
          "value": "fhir@lists.hl7.org"
        }
      ]
    }
  ],
  "description": "Given a set of properties, return one or more possible matching codes\n\nThis operation takes a set of properties, and examines the code system looking for codes in the code system that match a set of known properties. \n\nWhen looking for matches, there are 3 possible types of match:\n* a complete match - a code that represents all the provided properties correctly\n* a partial match - a code that represents some of the provided properties correctly, and not others \n* a possible match - a code that may represent the provided properties closely, but may capture less or more precise informationfor some of the properties\n\nThe $compose operation can be called in one of 2 modes:\n* By a human, looking for the best match for a set of properties. In this mode, the server returns a list of complete, possible or partial matches (possibly with comments), so that the user can choose (or not) the most appropriate code\n* By a machine (typically in a system interface performing a transformation). In this mode, the server returns only a list of complete and partial matches, but no possible matches. The machine can choose a code from the list (or not) based on what properties are not coded\n\nThese modes are differentiated by the 'exact' parameter, so the client can indicate whether it only wants exact matches (including partial matches) or whether potential matches based on text matching are desired\n \nThe compose operation is still preliminary. The interface can be expected to change as more experience is gained from implementations.",
  "code": "compose",
  "resource": [
    "CodeSystem"
  ],
  "system": false,
  "type": true,
  "instance": true,
  "parameter": [
    {
      "name": "system",
      "use": "in",
      "min": 0,
      "max": "1",
      "documentation": "The system in which composition is to be performed. This must be provided unless the operation is invoked on a code system instance",
      "type": "uri"
    },
    {
      "name": "version",
      "use": "in",
      "min": 0,
      "max": "1",
      "documentation": "The version of the system for the inferencing to be performed",
      "type": "string"
    },
    {
      "name": "property",
      "use": "in",
      "min": 0,
      "max": "*",
      "documentation": "One or more properties that contain information to be composed into the code",
      "part": [
        {
          "name": "code",
          "use": "in",
          "min": 1,
          "max": "1",
          "documentation": "Identifies the property provided",
          "type": "code"
        },
        {
          "name": "value",
          "use": "in",
          "min": 0,
          "max": "1",
          "documentation": "The value of the property provided",
          "type": "code"
        },
        {
          "name": "subproperty",
          "use": "in",
          "min": 0,
          "max": "*",
          "documentation": "Nested Properties (mainly used for SNOMED CT composition, for relationship Groups)",
          "part": [
            {
              "name": "code",
              "use": "in",
              "min": 1,
              "max": "1",
              "documentation": "Identifies the sub-property provided",
              "type": "code"
            },
            {
              "name": "value",
              "use": "in",
              "min": 1,
              "max": "1",
              "documentation": "The value of the sub-property provided",
              "type": "code"
            }
          ]
        }
      ]
    },
    {
      "name": "exact",
      "use": "in",
      "min": 1,
      "max": "1",
      "documentation": "Whether the operation is being used by a human, or a machine. If the operation is being used by a human, the terminology server can return a list of possible matches, with commentary. For a machine, the server returns sure matches, or none at all",
      "type": "boolean"
    },
    {
      "name": "compositional",
      "use": "in",
      "min": 0,
      "max": "1",
      "documentation": "Post-coordinated expressions are allowed to be returned in the matching codes (mainly for SNOMED CT). Default = false",
      "type": "boolean"
    },
    {
      "name": "match",
      "use": "out",
      "min": 0,
      "max": "*",
      "documentation": "Concepts returned by the server as a result of the inferencing operation",
      "part": [
        {
          "name": "code",
          "use": "out",
          "min": 1,
          "max": "1",
          "documentation": "A code that matches the properties provided",
          "type": "Coding"
        },
        {
          "name": "unmatched",
          "use": "out",
          "min": 0,
          "max": "*",
          "documentation": "One or more properties that contain properties that could not be matched into the code",
          "part": [
            {
              "name": "code",
              "use": "out",
              "min": 1,
              "max": "1",
              "documentation": "Identifies the property provided",
              "type": "code"
            },
            {
              "name": "value",
              "use": "out",
              "min": 1,
              "max": "1",
              "documentation": "The value of the property provided",
              "type": "code"
            },
            {
              "name": "property",
              "use": "out",
              "min": 0,
              "max": "*",
              "documentation": "Nested Properties (mainly used for SNOMED CT composition, for relationship Groups)",
              "part": [
                {
                  "name": "code",
                  "use": "out",
                  "min": 1,
                  "max": "1",
                  "documentation": "Identifies the sub-property provided",
                  "type": "code"
                },
                {
                  "name": "value",
                  "use": "out",
                  "min": 1,
                  "max": "1",
                  "documentation": "The value of the sub-property provided",
                  "type": "code"
                }
              ]
            }
          ]
        },
        {
          "name": "comment",
          "use": "out",
          "min": 0,
          "max": "1",
          "documentation": "Information about the quality of the match, if operation is for a human",
          "type": "string"
        }
      ]
    }
  ]
}

Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.