I am new to the forum for please forgive me if this is old news. I am working with current projects implementing OMOP and FHIR. The problem I am having is that the ICD-10-CM vocabulary is not up to date with the latest release. As such, I am ending up with about 22% of the conditions being loaded for the past 15 months with no found concept_id.
I could load the missing content in my own instance, but this would not benefit others who expect the concept_id to be standard across all OMOP CDM instances.
if a ICD 10 is not present in concept table, then there are two options:
---- create a spreadsheet with all the ICD 10 codes (columns: vocabulary, code) and post an issue at https://github.com/OHDSI/Athena contribute there
---- create local concept idās for the ICD 10.
Creating local concept id
create a table with the following fields: as in http://www.ohdsi.org/web/wiki/doku.php?id=documentation:cdm:concept
Some options
---- concept_name: code descriptor, the long descriptor for ICD10
---- domain_id: best practice is to make it āOBSERVATIONā domain. Itās an opinion.
---- vocabulary_id: of the various vocabulary ID which one corresponds best? use that http://www.ohdsi.org/web/wiki/doku.php?id=documentation:cdm:vocabulary
---- standard_concept: NULL
---- concept_code: source code
---- valid_start_date: 1-Jan-1970
---- valid_end_date: 31-Dec-2099
---- invalid_reason: NULL for now. if in the future, omop community supports the code you are interested, then replace this with invalid, replace the concept id with communities concept id in post ETL data.
How to assign concept id:
Count up starting 2,000,000,001. As you add more rows, make sure this is unique.
Values for concept_ids generated as part of Standardized Vocabularies will be reserved from 0 to 2,000,000,000. Above this range, concept_ids are available for local use and are guaranteed not to clash with future releases of the Standardized Vocabularies.
@jsjacobs, thanks for the inquery, @Gowtham_Rao, thanks for the help with a simple approach description.
New ICD10CM concepts with corresponding mappings to SNOMED will be added to OMOP vocabulary
in the future.
Iām wondering how you ended up with 22% of missing conditions (maybe due to the specificity of your dataset), but ICD10CM added 2305 concepts in the last release, that is about 2.5 % of all the ICD10CM concept count.
The approach of @Gowtham_Rao is quite good, if you need this concepts before we add them officially to the vocabulary.
I want to note:
āDomain_id: better to put āConditionā as there are diseases mostly (A92.5 Zika virus disease, C49.A, Gastrointestinal stromal tumor, etc.), but if you donāt know - āObservationā is a best option.
ā valid_start_date: ā1-Oct-2016ā ā as the date when these concepts were added (and of course if you donāt know whether there are only new concepts, put ā1-Jan-1970ā as a valid_start_date.
And ICD 10 and ICD-10-CM are different vocabularies.
ICD 10 is WHO version (15297 concepts), and ICD-10-CM is the US extension (91737 concepts).
I wouldnāt add ICD10CM concepts for the reason you are mentioning: Your concept_ids will not be persistent. In fact, they may well be ovewritten, unless you use >2Billion as @Gowtham_Rao suggests.
Going back and reviewing the instance based on your and Gowthamās comments about domain_id of āObservationā I found that many of the ICD-10-CM concept codes actually did already exist, but were identified as Observations and not Conditions. I had naively assumed that diagnoses reported with ICD-10-CM were always Conditions. I had added them starting at 2,000,000,001 as Gowtham has recommended so it is no problem for me to go back and clear them up where needed. The question is whether these all remain Condition Occurrences that are just using the domain id of Observation or if they now should be mapped to Observations in OMOP.
Yep, some of ICD10CM concepts are Observations, for example:
W61.4 Contact with turkey
W22.01XA Walked into wall, initial encounter
V97.1 Person injured while boarding or alighting from aircraft
and so on,
Thus these concepts are mapped to Observation and itās totally OK for them to be in Observation_occurence table.
As @Dymshyts says: We are reassigning the āessenceā of these concepts. A Condition should be a diagnosis, or a sign or symptom of a disease. Vocabularies used in billilng and reporting notoriously sway away from that tight definition, because thatās a requirement for their primary use case. Even though they are called āClassification of Diseaseā. CPT4 and HCPCS are much worse. The procedures are barely a majority in them, if that.
Full ICD10CM dataset will be refreshed in the beginning of June. It will have new 2305 concepts and some fixes related to existing mappings. But still no mapping for these new 2305 concepts.
But anyway you can use them in your CDM filling source_concept_id, condition_source_value with ICD10CM concept_id and concept_code, and condition_concept_id = 0.
Just adding to this thread. In Athena, it looks like the latest refresh was April 28. Did the June refresh happen? Weād be happy to get an update.
We have found ~1,900 ICD10CM codes that are used in VA, are really ICD10CM codes (I hand checked a few dozen of these on icd10data.com - especially the very common and even the weird looking ones), but arenāt in the CONCEPT table. For almost all these concepts a less granular ICD10Code exists in the CONCEPT table (R97.20 is our code that isnāt in CONCEPT, but R97.2 does exist in CONCEPT) or sibling codes exist (D78.31 is our code that isnāt in CONCEPT, but D78.01, D78.11, D78.21, and D78.81 are in CONCEPT).
Looking on your examples:
select concept_code, concept_name from concept where concept_code in ( āR97.20ā, āD78.31ā ) and vocabulary_id = āICD10CMā and invalid_reason is null
;
result:
D78.31 Postprocedural hematoma of the spleen following a procedure on the spleen
R97.20 Elevated prostate specific antigen [PSA]
So they are in a latest vocabulary release.
But if you look on concept_relationship table, you donāt find the mappings to SNOMED, thatās true. But itās another issue. And weāre working on it.