Update Condition Mapping authored by Henke, Elisa's avatar Henke, Elisa
# Condition Mapping
![fhir-to-omop-Condition](uploads/d829bf5e1cda8c8e7cdc86ea33eadf71/fhir-to-omop-Condition.png)
![fhir-to-omop-Condition.drawio](uploads/833c8e6c2f269d2d959dacb375ca353b/fhir-to-omop-Condition.drawio.png)
:information_source: All ICD codes will also be mapped to a SNOMED Code. The mapping information is available in OMOP in the `cds_etl_helper.MATERIALIZED VIEW.icd_snomed_domain_lookup`, which is generated from ICD10GM vocabulary (CONCEPT) and CONCEPT_RELATIONSHIP tables.
......@@ -9,94 +9,144 @@
| FHIR | FHIR - required | OMOP | OMOP - required | Comments |
| :------: | :------: | :------: |:------: |:------: |
| | | condition_occurrence_id | :heavy_check_mark:| This id is generated for each condition resource automatically. |
| subject.reference or <br> subject.identifier.value | | person_id | :heavy_check_mark: | The patient reference is used to search for the person_id in FHIR_ID_TO_OMOP_ID_MAP. |
| subject.reference or <br> subject.identifier.value | | person_id | :heavy_check_mark: | The patient reference is used to search for the person_id in PERSON. |
| | | condition_concept_id | :heavy_check_mark: | SNOMED concept associated with the ICD code from condition_source_value without special characters |
| recordedDate or <br> onsetPeriod.start or <br> onsetDateTime.value | :heavy_check_mark: <br> <br> | condition_start_date | :heavy_check_mark: | |
| recordedDate or <br> onsetPeriod.start or <br> onsetDateTime.value | :heavy_check_mark: <br> <br> | condition_start_datetime | | |
| onsetPeriod.end | | condition_end_date | | |
| onsetPeriod.end | | condition_end_datetime | | |
| | | condition_type_concept_id| :heavy_check_mark: | See post processing for diagnosis rank. |
| | | condition_type_concept_id| :heavy_check_mark: | default value: 44803913 (Diagnosis) or <br> See post processing for diagnosis rank. |
|code.coding.extension| | condition_status_concept_id | | See mapping in source_to_concept_map. |
| | | :x: stop_reason | | |
| | | :x: provider_id | | |
| encounter.reference or <br> encounter.identifier.value | | visit_occurrence_id | | The encounter reference is used to search for the visit_occurrence_id in FHIR_ID_TO_OMOP_ID_MAP. |
| encounter.reference or <br> encounter.identifier.value | | visit_occurrence_id | | The encounter reference is used to search for the visit_occurrence_id in VISIT_OCCURRENCE. |
| | |visit_detail_id| | See post processing for visit_detail_id |
| code.coding.code | :heavy_check_mark: | condition_source_value | | ICD-code WHERE system = "http://fhir.de/CodeSystem/dimdi/icd-10-gm" |
| | | condition_source_concept_id | | ICD-code from condition_source_value <br> CONCEPT.concept_id WHERE CONCEPT.concept_code = condition_source_value |
|code.coding.extension| |condition_status_source_value| | |
| id | | fhir_logical_id | | |
| identifier.value| | fhir_identifier | | |
## Condition to MEASUREMENT
| FHIR | FHIR - required | OMOP | OMOP - required | Comments |
| :------: | :------: |:------: |:------: |:------: |
| | | measurement_id | :heavy_check_mark: | This id is generated for each condition resource automatically. |
| subject.reference or <br> subject.identifier.value | | person_id | :heavy_check_mark: | The patient reference is used to search for the person_id in FHIR_ID_TO_OMOP_ID_MAP. |
| subject.reference or <br> subject.identifier.value | | person_id | :heavy_check_mark: | The patient reference is used to search for the person_id in PERSON. |
| | |measurement_concept_id| :heavy_check_mark: | SNOMED concept associated with the ICD code from measurement_source_value without special characters |
|recordedDate or <br> onsetPeriod.start or <br> onsetDateTime.value | :heavy_check_mark: <br> <br> |measurement_date |:heavy_check_mark:| |
|recordedDate or <br> onsetPeriod.start or <br> onsetDateTime.value | :heavy_check_mark: <br> <br> |measurement_datetime|| |
| | | :x: measurement_time | | |
| | |measurement_type_concept_id| :heavy_check_mark: | See post processing for diagnosis rank. |
| | |measurement_type_concept_id| :heavy_check_mark: | default value: 44803913 (Diagnosis) or <br> See post processing for diagnosis rank. |
| | | :x: operator_concept_id | | |
| | | :x: value_as_number | | |
| | | :x: value_as_concept_id | | |
| | | :x: unit_concept_id | | |
| | | :x: range_low | | |
| | | :x: range_high | | |
| encounter.reference or <br> encounter.identifier.value | | visit_occurrence_id | | The encounter reference is used to search for the visit_occurrence_id in FHIR_ID_TO_OMOP_ID_MAP. |
| encounter.reference or <br> encounter.identifier.value | | visit_occurrence_id | | The encounter reference is used to search for the visit_occurrence_id in VISIT_OCCURRENCE. |
| | |visit_detail_id| | See post processing for visit_detail_id |
| code.coding.code | :heavy_check_mark: |measurement_source_value || ICD-code WHERE system = "http://fhir.de/CodeSystem/dimdi/icd-10-gm" |
| | |measurement_source_concept_id| | ICD-code from measurement_source_value <br> CONCEPT.concept_id WHERE CONCEPT.concept_code = measurement_source_value |
| | | :x: unit_source_value | | |
| | | :x: value_source_value | | |
| id | | fhir_logical_id | | |
| identifier.value| | fhir_identifier | | |
## Condition to PROCEDURE_OCCURRENCE
| FHIR |FHIR - required | OMOP | OMOP - required | Comments |
|:------: |:------: |:------: |:------: |:------: |
| | | procedure_occurrence_id| :heavy_check_mark: |This id is generated for each condition resource automatically. |
| subject.reference or <br> subject.identifier.value | | person_id | :heavy_check_mark: | The patient reference is used to search for the person_id in FHIR_ID_TO_OMOP_ID_MAP. |
| subject.reference or <br> subject.identifier.value | | person_id | :heavy_check_mark: | The patient reference is used to search for the person_id in PERSON. |
| | |procedure_concept_id| :heavy_check_mark: | SNOMED concept associated with the ICD code from procedure_source_value without special characters |
|recordedDate or <br> onsetPeriod.start or <br> onsetDateTime.value | :heavy_check_mark: <br> <br> |procedure_date| :heavy_check_mark: | |
|recordedDate or <br> onsetPeriod.start or <br> onsetDateTime.value | :heavy_check_mark: <br> <br> |procedure_datetime| | |
| | |procedure_type_concept_id| :heavy_check_mark: |See post processing for diagnosis rank. |
| | |procedure_type_concept_id| :heavy_check_mark: |default value: 44803913 (Diagnosis) or <br> See post processing for diagnosis rank. |
| | | :x: modifier_concept_id | | |
| | | :x: quantity | | |
| | | :x: provider_id | | |
| encounter.reference or <br> encounter.identifier.value | | visit_occurrence_id | | The encounter reference is used to search for the visit_occurrence_id in FHIR_ID_TO_OMOP_ID_MAP. |
| encounter.reference or <br> encounter.identifier.value | | visit_occurrence_id | | The encounter reference is used to search for the visit_occurrence_id in VISIT_OCCURRENCE. |
| | |visit_detail_id| |See post processing for visit_detail_id |
| code.coding.code | :heavy_check_mark: |procedure_source_value| | ICD-code WHERE system = "http://fhir.de/CodeSystem/dimdi/icd-10-gm" |
| | |procedure_source_concept_id| | ICD-code from procedure_source_value <br> CONCEPT.concept_id WHERE CONCEPT.concept_code = procedure_source_value |
| | | :x: modifier_source_value | | |
| id | | fhir_logical_id | | |
| identifier.value| | fhir_identifier | | |
## Condition to OBSERVATION
### Information for ICD diagnosis
| FHIR | FHIR - required | OMOP | OMOP - required | Comments |
|:------: |:------: |:------: |:------: |:------: |
| | | observation_id | :heavy_check_mark: |This id is generated for each condition resource automatically. |
| subject.reference or <br> subject.identifier.value | | person_id | :heavy_check_mark: | The patient reference is used to search for the person_id in FHIR_ID_TO_OMOP_ID_MAP. |
| subject.reference or <br> subject.identifier.value | | person_id | :heavy_check_mark: | The patient reference is used to search for the person_id in PERSON. |
| | |observation_concept_id| :heavy_check_mark: | SNOMED concept associated with the ICD code from observation_source_value without special characters |
|recordedDate or <br> onsetPeriod.start or <br> onsetDateTime.value | :heavy_check_mark: <br> <br> |observation_date|:heavy_check_mark: | |
|recordedDate or <br> onsetPeriod.start or <br> onsetDateTime.value | :heavy_check_mark: <br> <br> |observation_datetime| | |
| | |observation_type_concept_id| :heavy_check_mark: |See post processing for diagnosis rank. |
| | |observation_type_concept_id| :heavy_check_mark: |default value: 44803913 (Diagnosis) or <br> See post processing for diagnosis rank. |
| | | :x: value_as_number | | |
| | | :x: value_as_string | | |
| | | :x: value_as_concept_id | | |
| | | :x: qualifier_concept_id | | |
| | | :x: unit_concept_id | | |
| | | :x: provider_id | | |
| encounter.reference or <br> encounter.identifier.value | | visit_occurrence_id | | The encounter reference is used to search for the visit_occurrence_id in FHIR_ID_TO_OMOP_ID_MAP. |
| encounter.reference or <br> encounter.identifier.value | | visit_occurrence_id | | The encounter reference is used to search for the visit_occurrence_id in VISIT_OCCURRENCE. |
| | |visit_detail_id| | See post processing for visit_detail_id |
| code.coding.code | :heavy_check_mark: |observation_source_value| | ICD-code WHERE system = "http://fhir.de/CodeSystem/dimdi/icd-10-gm" |
| | |observation_source_concept_id| | ICD-code from observation_source_value <br> CONCEPT.concept_id WHERE CONCEPT.concept_code = observation_source_value |
| | | :x: unit_source_value | | |
| | | :x: qualifier_source_value | | |
| id | | fhir_logical_id | | |
| identifier.value| | fhir_identifier | | |
### Information for ICD site localization
| FHIR | FHIR - required | OMOP | OMOP - required | Comments |
|:------: |:------: |:------: |:------: |:------: |
| | | observation_id | :heavy_check_mark: |This id is generated for each condition resource automatically. |
| subject.reference or <br> subject.identifier.value | | person_id | :heavy_check_mark: | The patient reference is used to search for the person_id in PERSON. |
| | |observation_concept_id| :heavy_check_mark: | SNOMED concept associated with the value from observation_source_value <br> See mapping in source_to_concept_map. |
|recordedDate or <br> onsetPeriod.start or <br> onsetDateTime.value | :heavy_check_mark: <br> <br> |observation_date|:heavy_check_mark: | |
|recordedDate or <br> onsetPeriod.start or <br> onsetDateTime.value | :heavy_check_mark: <br> <br> |observation_datetime| | |
| | |observation_type_concept_id| :heavy_check_mark: |default value: 38000280 (Observation recorded from EHR) |
| | | :x: value_as_number | | |
| code.coding.code.extension.valueCoding.value | | value_as_string | | Extension WHERE system = "http://fhir.de/CodeSystem/kbv/s-icd-seitenlokalisation" |
| | | :x: value_as_concept_id | | |
| | | :x: qualifier_concept_id | | |
| | | :x: unit_concept_id | | |
| | | :x: provider_id | | |
| encounter.reference or <br> encounter.identifier.value | | visit_occurrence_id | | The encounter reference is used to search for the visit_occurrence_id in VISIT_OCCURRENCE. |
| | |visit_detail_id| | See post processing for visit_detail_id |
| code.coding.code.extension.valueCoding.value | |observation_source_value| | Extension WHERE system = "http://fhir.de/CodeSystem/kbv/s-icd-seitenlokalisation" |
| | | :x: observation_source_concept_id| | |
| | | :x: unit_source_value | | |
| | | :x: qualifier_source_value | | |
| id | | fhir_logical_id | | |
| identifier.value| | fhir_identifier | | |
## Condition to POST_PROCESS_MAP
### Information for primary and secondary ICD
| FHIR | FHIR - required | OMOP | OMOP - required | Comments |
| ------ | ------ | ------ | ------ | ------ |
| | | data_id | | This id is generated for each condition resource automatically. |
| | | type | | default value: "CONDITION" |
| id | | data_one | | |
| recordedDate or <br> onsetPeriod.start or <br> onsetDateTime.value | :heavy_check_mark: <br> <br> | data_two | | "v" + the linkage between visit_occurrence_id and the *_start_datetime |
| | | omop_id | | This id represents the person_id of the person table. |
| | | omop_id | | This id represents the person_id of the PERSON table. |
| code.coding.code | :heavy_check_mark: | omop_table | | It represents the linkage between the primary and the secondary ICD code including indication of the respective domain. |
| id | | fhir_logical_id | | |
| identifier.value| | fhir_identifier | | |
### Information for ICD site localization
| FHIR | FHIR - required | OMOP | OMOP - required | Comments |
| ------ | ------ | ------ | ------ | ------ |
| | | data_id | | This id is generated for each condition resource automatically. |
| | | type | | default value: "CONDITION" |
| code.coding.code.extension.valueCoding.value | | data_one | | siteLocalization + ":Observation" |
| code.coding.code | :heavy_check_mark: | data_two | | It represents the linkage between the ICD code its respective domain. |
| | | omop_id | | This id represents the person_id of the PERSON table. |
| | | omop_table | | default value: "site_localization" |
| id | | fhir_logical_id | | |
| identifier.value| | fhir_identifier | | |
## Example
......@@ -117,6 +167,15 @@
"system": "http://fhir.de/CodeSystem/dimdi/icd-10-gm",
"version": "2018"
}
},
{
"url": "http://fhir.de/StructureDefinition/seitenlokalisation",
"valueCoding": {
"code": "B",
"system": "http://fhir.de/CodeSystem/kbv/s-icd-seitenlokalisation",
"display": "beiderseits",
"version": "1.00"
}
}
]
}
......@@ -144,13 +203,26 @@
### Output OMOP tables
+ CONDITION_OCCURRENCE
|condition_occurrence_id|person_id|condition_concept_id|condition_start_date|condition_start_datetime|condition_type_concept_id|visit_occurrence_id|condition_source_value|condition_source_concept_id|
|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
|1|1|4295950|2018-02-15|2018-02-15 17:25:00|44786627|1|Z71|37097751|
|2|1|4238738|2018-02-15|2018-02-15 17:25:00|44786627|1|Z50.1|37097284|
|condition_occurrence_id|person_id|condition_concept_id|condition_start_date|condition_start_datetime|condition_type_concept_id|visit_occurrence_id|condition_source_value|condition_source_concept_id|fhir_logical_id|fhir_identifier|
|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
|1|1|4295950|2018-02-15|2018-02-15 17:25:00|44786627|1|Z71|37097751|id-1|id-1|
|2|1|4238738|2018-02-15|2018-02-15 17:25:00|44786627|1|Z50.1|37097284|id-1|id-1|
+ OBSERVATION
|observation_id|person_id|observation_concept_id|observation_date|observation_datetime|observation_type_concept_id|value_as_string|visit_occurrence_id|observation_source_value|fhir_logical_id|fhir_identifier|
|----|----|----|----|----|----|----|----|----|----|----|
|1|1|4197258|2018-02-15|2018-02-15 17:25:00|38000280|B|1|B|id-1|id-1|
+ POST_PROCESS_MAP
|data_id|type|data_one|data_two|omop_id|omop_table|
|:----:|:----:|:----:|:----:|:----:|:----:|
| 1 | CONDITION | id-1 | v1:2018-02-15 17:25:00 | 1 | Z71:Condition:Z50.1:Condition |
\ No newline at end of file
Information for primary and secondary ICD
|data_id|type|data_one|data_two|omop_id|omop_table|fhir_logical_id|fhir_identifier|
|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
| 1 | CONDITION | id-1 | v1:2018-02-15 17:25:00 | 1 | Z71:Condition:Z50.1:Condition |id-1|id-1|
Information for ICD site localization
|data_id|type|data_one|data_two|omop_id|omop_table|fhir_logical_id|fhir_identifier|
|:----:|:----:|:----:|:----:|:----:|:----:|:----:|:----:|
| 2 | CONDITION | B:Observation | Z71:Condition | 1 | site_localization |id-1|id-1|
| 3 | CONDITION | B:Observation | Z50.1:Condition | 1 | site_localization |id-1|id-1|
\ No newline at end of file