One SNOMED code maps to more than one SNOMED code when using ‘Maps to’ releationship.
Using Nov 2016 vocabulary release
SELECT count( distinct c1_concept_id ) as snomed_concepts
, SUM( case when rows > 1 THEN 1 ELSE 0 END ) as snomed_with_multiple_maps
FROM
(
SELECT c1_concept_id, count(*) as rows
FROM
(
SELECT DISTINCT c1.concept_id as c1_concept_id, c2.concept_id as c2_concept_id
FROM concept c1
JOIN concept_relationship cr ON cr.concept_id_1 = c1.concept_id
JOIN concept c2 ON c2.concept_id = cr.concept_id_2
WHERE cr.invalid_reason IS NULL AND relationship_id = ‘Maps to’
AND c1.vocabulary_id = ‘SNOMED’ and c1.concept_id
)
GROUP BY c1_concept_id
)
snomed_concepts snomed_with_multiple_maps
426,241 1,631
example
SELECT c1.concept_id as c1_concept_id, c1.concept_name, c2.concept_id as c2_concept_id, c2.concept_name
FROM concept c1
JOIN concept_relationship cr ON cr.concept_id_1 = c1.concept_id
JOIN concept c2 ON c2.concept_id = cr.concept_id_2
WHERE cr.invalid_reason IS NULL AND relationship_id = ‘Maps to’
AND c1.concept_id = 40274838;
c1_concept_id concept_name c2_concept_id concept_name
40274838 Neonatal hyperbilirubinemia 4105871 Neonatal hyperbilirubinemia
40274838 Neonatal hyperbilirubinemia 4173180 Newborn physiological jaundice
This seems to occur when the SNOMED concept has been updated. For
example SNOMED concept id 40274838 was updated and
‘Concept replaced by’ 4105871. Which explains one of the ‘Maps to’ relationships. If the valid_start_date of concept_relationship is correct,
then another ‘Maps to’ relationship was created on 2016-01-31.