CDM Table name: STEM
Reading from OPTUM_EHR.NLP_Measurement
Note: If note_date is more than 1 year before patient birth, omit this data entry. Do not put this entry in CDM
| Destination Field | Source Field | Logic | Comment |
|---|---|---|---|
| id | autogenerate | ||
| domain_id | This should be the domain_id of the standard concept in the CONCEPT_ID field. If a source code is mapped to CONCEPT_ID 0, put the domain_id as Observation. | ||
| person_id | ptid | ||
| visit_occurrence_id | encid | Lookup the VISIT_OCCURRENCE_ID based on the encid | If encid is blank then use note_date to determine which VISIT_OCCURRENCE_ID the diagnosis should be associated to |
| visit_detail_id | encid | Lookup the VISIT_DETAIL_ID based on the encid | If encid is blank then leave VISIT_DETAIL_ID blank |
| provider_id | encid | Lookup the PROVIDER_ID from the VISIT_DETAIL table using the encid | If encid is blank then leave PROVIDER_ID blank |
| start_date | coalesce(measurement_date, note_date) | ||
| end_date | coalesce(measurement_date, note_date) | ||
| start_datetime | coalesce(measurement_date, note_date) | Set time to midnight | |
| end_datetime | coalesce(measurement_date, note_date) | Set time to midnight | |
| concept_id | measurement_type | Use the SOURCE_TO_STANDARD query to map the code to standard concept(s) with the following filters: Where source_vocabulary_id = ‘JNJ_OPTUM_EHR_NLPM’ and Target_standard_concept = ‘S’ and target_invalid_reason is NULL If there is no mapping available, set concept_id to zero. | |
| source_value | measurement_type | ||
| source_concept_id | 0 | ||
| type_concept_id | 32858 | NLP | |
| operator_concept_id | 0 | ||
| unit_concept_id | measurement_detail | If the inbound record maps to measurement_concept_id = (Body mass index) and unit maps to any of these: ‘kilogram per square meter’, ‘No matching concept’, ‘kilogram’, ‘square meter’, then set the unit_concept_id to 9531 (kilogram per square meter). Otherwise, match to the JNJ_UNITS STCM. If no match is found, set this field to 0. | |
| unit_source_value | measurement_detail | ||
| range_high | |||
| range_low | |||
| value_as_number | measurement_value | If value of measurement_value is numeric put in value_as_number | |
| value_as_string | measurement_value | If value of measurement_value is NOT numeric put in value_as_string | |
| value_as_concept_id | measurement_value | If value of obs_result is NOT numeric use the SOURCE_TO_STANDARD query to map the code to standard concept(s) with the following filters: Where source_vocabulary_id = ‘JNJ_OPTUM_EHR_LABRES’ and Target_standard_concept = ‘S’ and target_invalid_reason is NULL If there is no mapping available, set value_as_concept_id to zero. If value of obs_result is numeric OR null, set value_as_concept_id to null | |
| value_source_value | measurement_value | ||
| verbatim_end_date | |||
| days_supply | |||
| dose_unit_source_value | |||
| lot_number | |||
| modifier_concept_id | |||
| modifier_concept_id | |||
| modifier_source_value | |||
| quantity | |||
| refills | |||
| route_concept_id | |||
| route_source_value | |||
| sig | |||
| stop_reason | |||
| unique_device_id | |||
| anatomic_site_concept_id | |||
| disease_status_concept_id | |||
| specimen_source_id | |||
| anatomic_site_source_value | |||
| disease_status_source_value | |||
| condition_status_concept_id | |||
| condition_status_source_value |
Change log
11-Aug-2023
- Added Note “If note_date is more than 1 year before patient birth, omit this data entry. Do not put this entry in CDM”
- start or end date <- coalesce(measurement_date, note_date)
- unit mapping uses only jnj_units