diff --git a/src/prefixmaps/data/linked_data.csv b/src/prefixmaps/data/linked_data.csv index 041d713..f776233 100644 --- a/src/prefixmaps/data/linked_data.csv +++ b/src/prefixmaps/data/linked_data.csv @@ -4,6 +4,7 @@ linkml,biolink,https://w3id.org/biolink/vocab/,canonical linkml,dcmitype,http://purl.org/dc/dcmitype/,canonical linkml,dcterms,http://purl.org/dc/terms/,canonical linkml,foaf,http://xmlns.com/foaf/0.1/,canonical +linkml,ICD10CM,https://www.icd10data.com/search?s=,canonical linkml,linkml,https://w3id.org/linkml/,canonical linkml,NANDO,http://identifiers.org/NANDO:,canonical linkml,NCIThesaurus,http://ncicb.nci.nih.gov/xml/owl/EVS/Thesaurus.owl#,canonical diff --git a/src/prefixmaps/data/linked_data.curated.yaml b/src/prefixmaps/data/linked_data.curated.yaml index e04cb68..593b77d 100644 --- a/src/prefixmaps/data/linked_data.curated.yaml +++ b/src/prefixmaps/data/linked_data.curated.yaml @@ -33,3 +33,6 @@ prefixes: dcmitype: http://purl.org/dc/dcmitype/ wgs: http://www.w3.org/2003/01/geo/wgs84_pos# xml: http://www.w3.org/XML/1998/namespace + # Bioregistry's URI format for ICD-10-CM. Its icd.codes provider, which older bioregistry + # releases made canonical, has been dead since 2025-07 and is marked "gone" upstream. + ICD10CM: https://www.icd10data.com/search?s= diff --git a/src/prefixmaps/data/merged.csv b/src/prefixmaps/data/merged.csv index 6c3de9d..e25630c 100644 --- a/src/prefixmaps/data/merged.csv +++ b/src/prefixmaps/data/merged.csv @@ -6932,7 +6932,8 @@ merged,ICD10,https://icdcodelookup.com/icd-10/codes/,prefix_alias,bioregistry merged,ICD10,https://identifiers.org/icd/,prefix_alias,bioregistry merged,ICD10,https://identifiers.org/icd:,prefix_alias,bioregistry merged,ICD10,https://n2t.net/icd:,prefix_alias,bioregistry -merged,ICD10CM,https://icd.codes/icd10cm/,canonical,bioregistry +merged,ICD10CM,https://www.icd10data.com/search?s=,canonical,linkml +merged,ICD10CM,https://icd.codes/icd10cm/,prefix_alias,bioregistry merged,ICD10CM,http://bioregistry.io/ICD10CM:,prefix_alias,bioregistry merged,ICD10CM,http://icd.codes/icd10cm/,prefix_alias,bioregistry merged,ICD10CM,http://purl.bioontology.org/ontology/ICD10CM/,prefix_alias,bioregistry diff --git a/src/prefixmaps/data/merged.monarch.csv b/src/prefixmaps/data/merged.monarch.csv index b87346c..7684b8d 100644 --- a/src/prefixmaps/data/merged.monarch.csv +++ b/src/prefixmaps/data/merged.monarch.csv @@ -6932,7 +6932,8 @@ merged.monarch,ICD10,https://icdcodelookup.com/icd-10/codes/,prefix_alias,bioreg merged.monarch,ICD10,https://identifiers.org/icd/,prefix_alias,bioregistry merged.monarch,ICD10,https://identifiers.org/icd:,prefix_alias,bioregistry merged.monarch,ICD10,https://n2t.net/icd:,prefix_alias,bioregistry -merged.monarch,ICD10CM,https://icd.codes/icd10cm/,canonical,bioregistry +merged.monarch,ICD10CM,https://www.icd10data.com/search?s=,canonical,linkml +merged.monarch,ICD10CM,https://icd.codes/icd10cm/,prefix_alias,bioregistry merged.monarch,ICD10CM,http://bioregistry.io/ICD10CM:,prefix_alias,bioregistry merged.monarch,ICD10CM,http://icd.codes/icd10cm/,prefix_alias,bioregistry merged.monarch,ICD10CM,http://purl.bioontology.org/ontology/ICD10CM/,prefix_alias,bioregistry diff --git a/src/prefixmaps/data/merged.oak.csv b/src/prefixmaps/data/merged.oak.csv index 6a45ae8..8cd35d7 100644 --- a/src/prefixmaps/data/merged.oak.csv +++ b/src/prefixmaps/data/merged.oak.csv @@ -6932,7 +6932,8 @@ merged.oak,ICD10,https://icdcodelookup.com/icd-10/codes/,prefix_alias,bioregistr merged.oak,ICD10,https://identifiers.org/icd/,prefix_alias,bioregistry merged.oak,ICD10,https://identifiers.org/icd:,prefix_alias,bioregistry merged.oak,ICD10,https://n2t.net/icd:,prefix_alias,bioregistry -merged.oak,ICD10CM,https://icd.codes/icd10cm/,canonical,bioregistry +merged.oak,ICD10CM,https://www.icd10data.com/search?s=,canonical,linkml +merged.oak,ICD10CM,https://icd.codes/icd10cm/,prefix_alias,bioregistry merged.oak,ICD10CM,http://bioregistry.io/ICD10CM:,prefix_alias,bioregistry merged.oak,ICD10CM,http://icd.codes/icd10cm/,prefix_alias,bioregistry merged.oak,ICD10CM,http://purl.bioontology.org/ontology/ICD10CM/,prefix_alias,bioregistry diff --git a/tests/test_core/test_prefixmaps.py b/tests/test_core/test_prefixmaps.py index 565a2c9..f19709e 100644 --- a/tests/test_core/test_prefixmaps.py +++ b/tests/test_core/test_prefixmaps.py @@ -229,3 +229,23 @@ def test_synonyms(self): for curie in others: with self.subTest(curie=curie): self.assertEqual(canonical, converter.standardize_curie(curie)) + + def test_curated_icd10cm_prefix(self): + """ICD10CM is curated in linked_data to follow Bioregistry's URI format. + + Older bioregistry releases made the dead icd.codes namespace canonical, see #80. + """ + canonical = "https://www.icd10data.com/search?s=" + for name in ["linked_data", "merged", "merged.monarch", "merged.oak"]: + with self.subTest(context=name): + ctxt = load_context(name) + self.assertEqual(canonical, ctxt.as_dict()["ICD10CM"]) + self.assertEqual("ICD10CM", ctxt.as_inverted_dict()[canonical]) + # the dead icd.codes namespace and the BioPortal PURL stay as aliases + aliases = { + pe.namespace + for pe in self.dyn_merged_context.prefix_expansions + if pe.prefix == "ICD10CM" and pe.status == StatusType.prefix_alias + } + self.assertIn("https://icd.codes/icd10cm/", aliases) + self.assertIn("http://purl.bioontology.org/ontology/ICD10CM/", aliases)