VocMnt-CodeSysRev/Modify
Contents
- 1 Modifying an Existing Code System [Not fully exposed in application]
- 1.1 Modifying the Code System Mnemonic, Name or Description
- 1.2 Updating the Print Name of a Concept Code
- 1.3 Changing the Description of a Concept Code
- 1.4 Updating Property on a Concept Code
- 1.5 Removing Properties from a Concept Code
- 1.6 Moving a Code in the Subsumption Hierarchy
- 1.7 Retiring a Concept Code
- 1.8 Removing Existing Concept Relationships
Modifying an Existing Code System [Not fully exposed in application]
It is also possible to modify the contents of a previously registered code system. As with new code systems, it is possible to add new concept codes to the code system, new print names or properties to concept codes, and new relationships between concept codes. In addition it is also possible to modify the properties of the code system itself, modify or remove print names, descriptions, properties and relationships. It is also possible to retire concept codes from code systems and adjust subsumption relationships.
selectCodeSystem has an optional ballotStatus element that can be used to record the vote on the entire modification. The first four selectCodeSystem operations (shown with a gray background in the figure above) have been discussed under registerCodeSystem (above), where they also apply. The remaining six operations are discussed in the following sub-sections.
selectCodeSystem has a single attribute, codeSystemMnemonic, that selects the code system to be modified.
codeSystemMnemonic | The HL7 mnemonic code for the code system to be selected |
---|
The above example selects the “BEERS” code system for modification. Unless otherwise noted, all of the changes within the selection were passed by a 12-1-0 vote (the author being the single negative vote) with the provision that author will sample all of the changes before they are officially recorded.
Modifying the Code System Mnemonic, Name or Description
The modifyCodeSystem element is used to update the properties of the code system itself.
modifyCodeSystem has two optional elements. The first, ballotStatus, defines the status of the modification if it is different than the status as it occurs on the selectCodeSystem node. The second optional element, description, is used to add, update or remove the existing code system description. If the description element is not supplied, the existing code system description is unchanged. The name of a code system can be changed as well, using the codeSystemName attribute.
codeSystemName | If present, the code system OID will be updated to this value |
---|---|
newOID | If present, the code system OID will be updated to this value |
The above example changes the BEERS code system name from what it was previously (Beer and Flavor Classification) to “Castello Beer and Flavor Classification.
Updating the Print Name of a Concept Code
Print names for concept codes can be removed or updated, and the setting for which print name is preferred for a given language can be changed as well.
updateCodePrintName includes an optional ballotStatus that reflects the status of the change if it is different from that of the entire revision.
conceptCode | The concept code to be changed |
---|---|
oldPrintName | The original print name |
newPrintName | The new print name. If omitted, the name isn’t changed. If present, but empty, the print name is removed. |
languageCode | The language code for both the old and new print names. Default: en. Note: the language of a print name cannot be changed. If this is necessary, the print name for one language must first be removed and then re-added under the second language. |
isPreferred | true means that this print name is the preferred one for the supplied language. Setting this to true sets all other isPreferred flags to false to for the given concept code/language. |
The first entry above changes the print name of concept code “1004” from “LIGHT ALE” to “Light Ale”. The second entry changes the German print name for concept code “1004” from “Pils” to “Kölsch”. Note that this operation would fail if there wasn’t already a German print name “Pils”. The third entry changes “Lager” to be the preferred German print name if it isn’t already. If it is, this operation would still succeed. The fourth entry removes the “Kölsch” print name completely – a somewhat odd request since we went to all the trouble of changing it a couple lines earlier.
Changing the Description of a Concept Code
The description of a concept code may be added, modified or removed using the updateCodeDescription element.
As with all updates, updateCodeDescription can have its own ballotStatus if needed to reflect special cases. It has an optional oldDescription element that can contain the description that is being changed and a newDescription element that contains the revised description or can be empty if the description is to be completely removed. If present, the oldDescription will be validated against the database before the change is performed.
conceptCode | The concept code that the change is being applied to |
---|---|
conceptName | A valid designation for the concept code. Optional, but will be validated if supplied. |
The example above removes the second sentence from the “Light Ale” description. Note that the preferred name is “Light Ale” rather than “LIGHT ALE” because of an update that occurred earlier in both this document and the actual XML update source.
Updating Property on a Concept Code
Once a property has been added to a coded concept, that property may be updated using the updatePropertyOnCode' element.
As with other property setting elements, the value to which the property should be updated is documented as the content of a child property element.
conceptCode | The concept code to which the property is attached |
---|---|
propertyId | The identifier (name) of the property to be updated. |
Removing Properties from a Concept Code
A property that has been added to a coded concept may be removed using the removePropertyFromCode element.
conceptCode | The concept code to which the property is attached |
---|---|
propertyId | The identifier (name) of the property to be removed. |
Moving a Code in the Subsumption Hierarchy
Concept codes can be rearranged within the concept subsumption hierarchy. moveCode can be used to assert that one concept code is a “kind of” or “is implied by” a second concept code. It can also remove this assertion.
As with all update operations, moveCode has a separate, optional ballotStatus node. The moveCode attributes specify the operation to be performed:
conceptCode | The code of the concept to be moved. |
---|---|
conceptName | A valid designation for the concept to be moved. Optional, and if supplied it will be validated against the database before the operation occurs. |
fromParentCode | The current direct parent of the concept code, if any. This attribute should be omitted if conceptCode doesn’t currently occur under any other node. |
fromParentName | A valid designation for the from parent code. Optional, but validated if supplied. |
toParentCode | The new parent of conceptCode. If omitted, conceptCode no longer has a parent in the subsumption hierarchy. |
toParentName | A valid designation for the to parent code. Optional, but validated if supplied. |
In the above example, concept code “1008” (SWEET STOUT) is first removed as a child of “1006” (STOUT). If this operation succeeds, both STOUT and SWEET STOUT would be root nodes in the subsumption hierarchy. The second part the operation asserts that 1006 (STOUT) is a kind of 1008 (SWEET STOUT). Note that all other entries in the subsumption hierarchy remain unchanged (e.g. 1009 – MILK STOUT) remains a kind of STOUT throughout.
Retiring a Concept Code
While a concept code may never be reused within a code system, it may be 'retired' from active use.
As with all operations, retireCode may be accompanied by an optional ballotStatus. The attributes of retireCode determine what actually happens:
conceptCode | The code of the concept to be retired |
---|---|
conceptName | A valid designation for the concept to be retired. Required. |
replacementCode | A new or existing concept code that will replace the retired code. If new, all of the retired code’s names, properties and relationships are copied over to the new code. If replacementCode already exists, the current concept code’s properties, etc. are dropped. |
replacementName | The name of the replacement concept code. If the replacement code exists and this name is supplied it will be validated. If the replacement code is new and this name is supplied, it will become the preferred name for the replacement code. |
completeDelete | <<Editor is Uncertain as to what this means>> |
Removing Existing Concept Relationships
It is also possible to undo relationships that have previously been asserted using the addConceptRelationship node.
Like all operations, removeConceptRelationship can have a ballotStatus entry that overrides the outside status. removeConceptRelationship has the following attributes:
parentCodeSystemMnemonic | The mnemonic identifying the code system that holds the parent code. Optional. If blank, is assumed to be the code system established by the parent registerCodeSystem or selectCodeSystem. |
---|---|
parentCode | The left hand or parent side of an existing relationship entry |
parentName | A valid designation for the parentCode. Optional but validated if present. |
relationship | The code for the existing relationship (e.g. smallerThan) |
childCodeSystemMnemonic | The mnemonic identifying the code system that holds the child code. Optional. If blank, is assumed to be the code system established by the parent registerCodeSystem or selectCodeSystem. |
childCode | The right hand or child side of an existing relationship entry |
childName | A valid designation for the childCode. Optional but validated if present. |