Overview

Documents the process for updating a map project destination terminology during an editing cycle when it is updated.

Details

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.

Maintaining terminologyVersion

There are two strategies for using terminology version that are useful for different use cases.

Updating the target terminology content and version

There are two strategies here.

Updating the map project target terminology version

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.

Identifying cases for re-editing maps on destination terminology change

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);

 

Review hardcoded information in terminology-specific handlers

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()".

Updating Concept/Target Names

Once everything is updated, use the Concept and Target Name Updater to update the target name of map entries. 

References/Links