Skip to contents

Use case

A need to map blood count components from two different source systems to OMOP. There are different potential OMOP concept ids. How to choose between them ? How to deal with a situation where different institutions end up with different OMOP concept ids for essentially the same measure.

Leukocytes

Starting with a single concept id 3010813 (chosen in a mapping process) for the number of Leukocytes in a volume of blood.

lvbg <- omop_id(3010813)

lvbg |> 
  select(-valid_start_date,-valid_end_date,-invalid_reason) |> 
  kable()
concept_id concept_name domain_id vocabulary_id concept_class_id standard_concept concept_code
3010813 Leukocytes [#/volume] in Blood Measurement LOINC Lab Test S 26464-8

Using omopcept to find the immediate relations of “Leukocytes [#/volume] in Blood”


leuk_r <- omop_relations(3010813)

leuk_r |> arrange(relationship_id) |>
  select(relationship_id,concept_name_2,domain_id,concept_class_id) |> 
  kable()
relationship_id concept_name_2 domain_id concept_class_id
Contained in panel Hemogram without Platelets panel - Blood Measurement Lab Test
Contained in panel Laboratory Observation Survey
Contained in panel Differential panel, method unspecified - Blood Measurement Lab Test
Contained in panel Manual Differential panel - Blood Measurement Lab Test
Contained in panel Laboratory - acute [CARE] Observation Survey
Contained in panel Leukogram panel - Blood Measurement Lab Test
Contained in panel Short blood count panel - Blood Measurement Lab Test
Has component Leukocytes Observation LOINC Component
Has property Number Concentration Observation LOINC Property
Has scale type Qn Observation LOINC Scale
Has system Blood Observation LOINC System
Has time aspect Point in time (spot) Observation LOINC Time
Is Leukocytes [#/volume] in Blood Observation LOINC Time
Is a Leukocytes | Blood | Hematology and Cell counts Measurement LOINC Hierarchy
Is a Leukocytes|Number Concentration (count/vol)|Moment in time|Blood Measurement LOINC Group
Is a Hematology (coagulation) differential count Measurement LOINC Class

Of these relations Leukocytes | Blood | Hematology and Cell counts looks like it may be useful, it has a concept_class_id of LOINC Hierarchy and itself has the following relations.


lbhcc_r <- omop_relations(37043992) |> 
  arrange(relationship_id) 

lbhcc_r |>
  select(relationship_id,concept_name_2,domain_id,concept_class_id) |> 
  kable()
relationship_id concept_name_2 domain_id concept_class_id
Is Leukocytes | Blood | Hematology and Cell counts Measurement Lab Test
Is a Leukocytes Observation LOINC Component
Subsumes Leukocytes [#/volume] corrected for nucleated erythrocytes in Blood Measurement Lab Test
Subsumes Leukocytes [#/volume] in Blood by Estimate Measurement Lab Test
Subsumes Leukocytes [#/volume] in Blood by Automated count Measurement Lab Test
Subsumes Leukocytes [#/volume] in Blood Measurement Lab Test
Subsumes Leukocytes [#/volume] corrected for nucleated erythrocytes in Blood by Automated count Measurement Lab Test
Subsumes Leukocytes [#/volume] in Blood by Manual count Measurement Lab Test

#lbhcc_r |> 
#  omop_graph( graphtitle = "", saveplot = FALSE )

Can we find similar hierarchy parents for other blood count concepts ?

Seems yes, there are > 400 concepts that match “*Blood | Hematology and Cell counts”.

We can do similar for erythrocytes as we did for leukocytes.


#new fixed=TRUE arg for omop_names() allows this 
bhccounts <- omop_names("Blood | Hematology and Cell counts", fixed=TRUE) |> 
  #returning 452 concepts
  #removing those for Fetus
  filter(!str_detect(concept_name,"Fetus"))
  #now down to 417 concepts

#can I filter out desired one from this ?
#ery <- bhccounts |> 
#  filter(concept_name, starts_with("Erythrocytes |"))

#it is id 37059055
ery_r <- omop_relations(37059055)

ery_r |> 
  select(relationship_id,concept_name_2,domain_id,concept_class_id) |> 
  kable()
relationship_id concept_name_2 domain_id concept_class_id
Is Erythrocytes | Blood | Hematology and Cell counts Measurement Lab Test
Subsumes Erythrocytes [Morphology] in Blood by Automated count Measurement Lab Test
Subsumes Erythrocytes [#/volume] in Blood Measurement Lab Test
Subsumes Erythrocytes [#/volume] in Blood by Automated count Measurement Lab Test
Subsumes Erythrocytes [#/volume] in Blood by Manual count Measurement Lab Test
Is a Erythrocytes Observation LOINC Component

See https://github.com/OHDSI/Vocabulary-v5.0/issues/301 which has some info about this