This page is part of the FHIR Specification (v5.0.0: R5 - STU). This is the current published version in it's permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4
Terminology Infrastructure Work Group | Maturity Level: 0 | Trial Use | Compartments: N/A |
Given a set of properties (and text), return one or more possible matching codes
This 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.
When looking for matches, there are 3 possible types of match:
The $find-matches operation can be called in one of 2 modes:
These 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
The find-matches operation is still preliminary. The interface can be expected to change as more experience is gained from implementations.
The canonical URL for this operation definition is
http://hl7.org/fhir/OperationDefinition/CodeSystem-find-matches
Formal Definition (as a OperationDefinition).
URL: [base]/CodeSystem/$find-matches
URL: [base]/CodeSystem/[id]/$find-matches
This is an idempotent operation
In Parameters: | ||||||
Name | Scope | Cardinality | Type | Binding | Profile | Documentation |
system | type | 0..1 | uri | The system in which composition is to be performed. This must be provided unless the operation is invoked on a code system instance | ||
version | type | 0..1 | string | The version of the system for the inferencing to be performed | ||
property | 0..* | One or more properties that contain information to be composed into the code | ||||
property.code | 1..1 | code | Identifies the property provided | |||
property.value | 0..1 | Coding | boolean | code | dateTime | integer | string | The value of the property provided | |||
property.subproperty | 0..* | Nested Properties (mainly used for SNOMED CT composition, for relationship Groups) | ||||
property.subproperty.code | 1..1 | code | Identifies the sub-property provided | |||
property.subproperty.value | 1..1 | Coding | boolean | code | dateTime | integer | string | The value of the sub-property provided | |||
exact | 1..1 | boolean | Whether the operation is being used by a human ('false'), or a machine ('true'). 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 complete or partial matches, not possible matches. The default value is 'false' | |||
compositional | 0..1 | boolean | Post-coordinated expressions are allowed to be returned in the matching codes (mainly for SNOMED CT). Default = false | |||
Out Parameters: | ||||||
Name | Scope | Cardinality | Type | Binding | Profile | Documentation |
match | 0..* | Concepts returned by the server as a result of the inferencing operation | ||||
match.code | 1..1 | Coding | A code that matches the properties provided | |||
match.unmatched | 0..* | One or more properties that contain properties that could not be matched into the code | ||||
match.unmatched.code | 1..1 | code | Identifies the property provided | |||
match.unmatched.value | 1..1 | Coding | boolean | code | dateTime | integer | string | The value of the property provided | |||
match.unmatched.property | 0..* | Nested Properties (mainly used for SNOMED CT composition, for relationship Groups) | ||||
match.unmatched.property.code | 1..1 | code | Identifies the sub-property provided | |||
match.unmatched.property.value | 1..1 | Coding | boolean | code | dateTime | integer | string | The value of the sub-property provided | |||
match.comment | 0..1 | string | Information about the quality of the match, if operation is for a human |
Request:
<Parameters xmlns="http://hl7.org/fhir"> <parameter> <name value="system"/> <valueUri value="http://snomed.info/sct"/> </parameter> <parameter> <name value="exact"/> <valueBoolean value="true"/> </parameter> <parameter> <name value="property"/> <part> <name value="code"/> <valueCode value="focus"/> </part> <part> <name value="value"/> <!-- Measurement finding --> <valueCode value="118245000"/> </part> </parameter> <parameter> <name value="property"/> <part> <name value="code"/> <!-- Interprets --> <valueCode value="363714003"/> </part> <part> <name value="value"/> <!-- Bilirubin --> <valueCode value="302787001"/> </part> </parameter> </Parameters>
Response: SNOMED Composition - provide 2 properties, and ask for a single code for the whole
HTTP/1.1 200 OK [other headers] <Parameters xmlns="http://hl7.org/fhir"> <parameter> <name value="match" /> <part> <name value="code" /> <valueCoding> <system value="http://snomed.info/sct" /> <code value="365786009" /> <display value="Bilirubin level - finding" /> </valueCoding> </part> </parameter> </Parameters>
For more information about operations, including how they are invoked, see Operations.