Documents the process for updating a map project destination terminology during an editing cycle when it is updated.
Consider the example of the SNOMEDCT to ICD10 mapping project. There is an infrequent and at most annual update to ICD10. The map projects and terminology content are "version aware", meaning there is a terminologyVersion field that must be maintained. Depending on choices made regarding this value, there are different strategies for ensuring the mapping tool has access to the intended version of the destination terminology.
There are two strategies for using terminology version that are useful for different use cases.
There are two strategies here.
When using an actual terminology version value, when a new version of the terminology is loaded, the map project metadata must be updated to reflect the change in "destination terminology version". This can be done by an admin in the map project metadata editing tools.
When using a terminology version value of "latest", it is presumed that the map project metadata is already set to this and does not require updating.
When updating to a new version of the destination terminology, such as ICD10 2010 to ICD10 2015, it is desirable to identify areas in which the terminology has changed in order to re-edit maps with those map targets. Some conditions of interest in this regard may include:
This is really a terminology-specific determination and a specification for how to identify the types of change that would be desirable to drive re-editing of mappings should be developed on a case-by-case basis.
Once algorithms are determined, the QA Check mechanism can be used to identify maps with target codes that warrant re-editing due to changes. For example, the following query is used to identify concepts mapped to codes that have new siblings in the updated destination terminology.
select distinct 'all' value, conceptId itemId, conceptName itemName from map_records a, map_entries me, (select a.terminologyId self, b.terminologyId sib from tree_positions a, tree_positions b where a.terminology = ':DESTINATION_TERMINOLOGY:' and a.terminologyVersion = ':DESTINATION_TERMINOLOGY_VERSION:' and b.terminology = a.terminology and b.terminologyVersion = a.terminologyVersion and a.ancestorPath = b.ancestorPath and a.terminologyId != b.terminologyId) b where a.mapProjectId = :MAP_PROJECT_ID: and a.id = me.mapRecord_id and me.targetId=b.self and NOT EXISTS (select * from tree_positions c, tree_positions d where c.terminology = ':DESTINATION_TERMINOLOGY:' and c.terminologyVersion = ':PREVIOUS_DESTINATION_TERMINOLOGY_VERSION:' and d.terminology = c.terminology and d.terminologyVersion = c.terminologyVersion and c.ancestorPath = d.ancestorPath and c.terminologyId != d.terminologyId and b.self = c.terminologyId and b.sib = d.terminologyId); |
In some cases, some content (such as specific IDs from the index file) may be involved in the identify/modify/validate routines and should be revisited to see if the lists are comprehensive and complete. e.g. the ICD10 project specfic handler method "getIcd10ExternalCauseCodes()".
Once everything is updated, use the Concept and Target Name Updater to update the target name of map entries.