Skip to content
Michael Gurley edited this page Apr 7, 2020 · 7 revisions

Crosswalk between NAACCR and OMOP for clinical events

  1. Populate Condition record in Condition_Occurrence

    a) Person_ID code from NAACCR_Data_Points populates condition_person_ID field.

    1a

    b) Take the patient’s record from NAACCR_Data_Points for the date of diagnosis (NAACCR_Item_Number= 390) and copy NAACCR_item_value. This value will populate condition_start_date_time.

    1b

    c) Then, copy histology_site. This value will populate condition_source_value.

    1c

    d) Find the Concept_ID for histology_site value in the Concept table in the NAACCR vocabulary. This concept_ID will populate condition_source_concept_ID.

    1d

    e) Map the value of condition_source_concept_ID to the corresponding standard concept in the Concept_Relationship table using maps to relationship. Resulting concept _ID value will populate condition_concept_ID.

    1e

    f) Put the value of 35941507 (‘Tumor registry’) in condition_type_concept_ID.

    1f


  1. Populate Modifier record in Measurement for values as concepts

    a) Take values from the following fields from the Condition_Occurrence record created in Step 1 and populate Measurement fields:

    i. condition_person_ID -> measurement_person_ID

    ii. condition_occurrence_ID -> modifier_of_event_id

    iii. and ‘1147127’ that is a concept for 'condition_occurrence.condition_occurrence_id' -> modifier_field_concept_id

    2a

    b) Find NAACCR date item associated with the NAACCR item in question (e.g. Laterality) in the Concept_Relationship table using Variable has date relationship. Then, extract NAACCR value for this NAACCR date item. This value will populate measurement_start_date.

    2b

    c) Take the patient’s record from NAACCR_Data_Points for a particular modifier and copy NAACCR_item_number value. For example, ‘Laterality’ (NAACCR_item_number = 410). This value will populate measurement_source_value.

    2c

    d) Then, copy NAACCR_item_value. This value will populate value_source_value. For example, 1 for ‘Right: origin of primary’.

    2d

    e) Take the value of condition_source_concept_ID from the Condition_Occurrence record (step 1) and find the corresponding NAACCR schema concept_ID for this diagnosis in the Concept_Relationship table using ICD-O to schema relationship.

In some instances, NAACCR items and values are schema specific. To ensure that their corresponding OMOP concepts are properly identified, schema specific searches need to be used.

2e

f) Find OMOP concept_ID for NAACCR_item_number value (e.g. 410) in the Concept table in NAACCR vocabulary. This concept_ID will populate measurement_source_concept_ID.

2f

g) Map the value of measurement_source_concept_ID to the corresponding standard concept in the Concept_Relationship table using maps to relationship. Resulting concept _ID value will populate measurement_concept_ID.

2g

h) Find OMOP concept_ID for the NAACCR permissible value of “Right: origin of primary” by concept_code that is concatenation of NAACCR_item_number and NAACCR_item_value of “410@1”. This concept will populate value_as_concept_id.

In some instances, NAACCR permissible values are schema specific. To ensure that their corresponding OMOP concepts are properly identified, schema specific searches need to be used.

2h


  1. Populate Modifier record in Measurement for values as numbers

Numeric NAACCR items can be identified in Concept_Relationship by connecting respective OMOP concept ID to ‘Numeric’ (concept ID 32676) using ‘has type’ relationship.

The same steps for populating numeric values as 2a-2g should be performed. The following steps are different.

Numeric NAACCR items often contain a mix of different value types including discrete value codes, numeric values or numeric value ranges.

Different scenarios are represented in Table below:

Scenario NAACCR Values Description
1 001-988 001 - 988 millimeters (mm) (Exact size to nearest mm)
2 989 989 mm or larger
3 991 Described as "less than 1 centimeter (cm)"
4 992 Described as "less than 2 cm," or "greater than 1 cm," or "between 1 cm and 2 cm"

a) In scenario 1, NAACCR_item_value is a true number that will populate value_as_number

Numeric NAACCR items may have units. Unit concept is found in Concept_Relationship by connecting respective OMOP concept ID using ‘has units’ relationship. This concept_id will populate unit_concept_id.

3a

For scenarios 2, 3, and 4, NAACCR values are represented by concepts in the vocabulary. Additionally, each of these concepts has a formal representation of their numeric value, unit, and operator in Concept_Numeric table .

b) For scenarios 2 and 3, populate value_as_concept_id as described in 2h. Then, use the following Concept_Numeric fields to populate respective Measurement fields:

i. value_as_number

ii. unit_concept_id

iii. operator_concept_id

3b

c) For scenario 4, there are two records in Concept_Numeric representing lower and upper limits of the range. They will result in two respective records in the Measurement table populated as described in 3b.

3c

Clone this wiki locally