Given a set of properties, 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:
* a complete match - a code that represents all the provided properties correctly
* a partial match - a code that represents some of the provided properties correctly, and not others
* a possible match - a code that may represent the provided properties closely, but may capture less or more precise informationfor some of the properties
The $compose operation can be called in one of 2 modes:
* 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
* 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
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 compose operation is still preliminary. The interface can be expected to change as more experience is gained from implementations.