The data I am working with has already been extracted from the EPIC systems and consolidated into a research data warehouse, so I am not exactly sure about how the data is represented on the EPIC side. I am getting mostly CPT4 and HCPCS in the procedures data. They are coming as a single procedure ( mapped to an epic_procedure_id mapped to the cpt4 or hcpcs code ) with comma separated modifiers in one field. Some of the modifiers are not mapped in OMOP. I am seeing codes for X1, X2, X3, … These seem to be mainly related to imaging, but do not correlate to number of views in the CPT description. Could this be the number of times the procedure happened?
Here is an example:
CPT: 73590 ( Radiologic examination; tibia and fibula, 2 views )
modifiers: 26, X2, RT
26= Professional Component
X2= ??
RT= Right side
I am not sure of an analytic use case. I just wanted to be able to flag a record as having modifiers in case that information is needed. Then we can look inside the qualifier_source_value and extract from there.
Another way of representing the data would be to use the fact_relationship to create a relationship from the procedure_occurrence to the concept_id of the actual modifier:
procedure_occurrence table:
procedure_occurrence_id: 123
procedure_concept_id: 2211485
modifier_concept_id: 0
qualifier_concept_id 26, X2, RT
fact_relationship table:
( 26 modifier )
domain_concept_id_1: 10 -- procedure
fact_id_1: 2211485 -- procedure_occurrence_id
domain_concept_id_2: 12 -- Modifier
fact_id_2: 42739576 -- 26 modifier
relationship_concept_id: 12 -- modifier?
( RT modifier )
domain_concept_id_1: 10 -- procedure
fact_id_1: 2211485 -- procedure_occurrence_id
domain_concept_id_2: 12 -- Modifier
fact_id_2: 45888271 -- RT modifier
relationship_concept_id: 12 -- modifier?
This doesn’t help with any unmapped modifiers. But they would still be in the source record’s qualifier_source_value field.
This make also break the desired design of the fact relationship table.