I am new to the community and want to thank everyone for all of the help I have already found here. I work with a group at QuintilesIMS that take’s XML CCDA’s and imports them in to an OMOP database. We are currently in the process of working to become CDM v5.0 compliant.
One question I have is surrounding implementing multiple codes for a single event, and how some of you have done so?
For example, Say you were to receive a patients record and are given the ICD-9 and then the SNOMED, and ICD-10 equivalent codes for that one CONDITION_OCCURRENCE record.
Currently based on the way we have CDM v5 is documented my understanding is as follows: We would provide the CONCEPT_ID for the SNOMED code in the CONDITION_CONCEPT_ID and the ID for the ICD-9 in CONDITION_SOURCE_CONCEPT_ID.
But where can/should the ICD-10 be stored?
This is just an example based on conditions but we will run into the same question on drugs, procedures and observations.
Welcome! I am newer to the community, but have started the ETL process to OMOP. We are navigating the waters between our source systems and OMOP too. We don’t have multiple codes for one event, so someone else may have an even better solution if you really want to include all three source codes for each condition_occurrence. Not sure why you would if they all reference the same event??
Let me make sure I have this straight. The ICD-9, ICD-10CM, and SNOMED codes all refer to one condition_occurrence for one patient_id? If correct, decide which code system or systems you will use for your CONDITION table. Make sure to document why you chose that code system in the CDM_SOURCE table. The source string for each condition will be the condition_source_concept_id. Only one source code string is used/recorded in the OMOP tables for the x_source_concept_id in order to only produce one record for each condition/procedure/drug/etc.
All source codes, even the source codes that are used as the standard vocabulary in OMOP, are translated to the OMOP code system. So the string for SNOMED code 61462000 (malaria) would be the condition_source_concept_id and the condition_concept_id would be 438067, which is the given OMOP id.
You are correct the ICD-9, ICD-10CM, and SNOMED codes all refer to one condition_occurrence for one patient_id. Although it would be easy to choose one of these code systems we are wanting to show all. I am mainly looking to find if anyone else has implemented something of the same fashion. Also, just as explanation, we have end users that would like to see all 3 code systems as some users are ready to research on ICD-10 where others prefer to continue with ICD-9
Any additional suggestions will be greatly appreciated.
There is no way to show all three code in the OMOP Condition Occurrence table, unless you add an additional column to hold one of the code. Adding an additional column to the table does not violate any OMOP rule. I think any other ‘clever’ scheme that you come up with will in fact be outside of the OMOP standard. So to appease your end users put the ICD 9 or 10 code in the condition_source_value and then the other code in the column that you added.
Let me give you a little bit of OHDSI/OMOP pep talk, maybe you can convince your users: There is really no use for 3 codes that have an identical meaning. From a database perspective it is wrong anyway, because you introduce the possiblity of an internal conflict. But even if you can keep it clean - how many times can you say it was a, say, myocardial infarction? The best solution is to map everything to the most grannular coding scheme, andfor Conditions that is SNOMED-CT. And that is what we do.
If they want to do research on ICD-9 or ICD-10 - they can do so by using the mapping records in the CONCEPT_RELATIONSHIP table no problem.
And finally: The purpose of the OMOP CDM is to allow systematic analytics by using standardized tools and methods. These won’t be able to sift through your hodgepodge of codes anyway like your users are used to. They need one way to say “Myocardial Infarction”.
Bottom line: Don’t do it. Map the source codes and let them get used to doing it the right way.
Thank you everyone for the information and kind words!! This really helped me find the direction we should go with the implementation. I think I am on the right track and will try and move forward with “not doing it”.