OHDSI Home | Forums | Wiki | Github

About domain restrictions of MEASUREMENT.value_as_concept_id

(Pasi Rikala) #1

(I am not sure if this belongs to Implementers or Vocabulary Users. Since I am an ETL implementer, this seems more natural…)

https://ohdsi.github.io/CommonDataModel/cdm531.html#measurement says this about value_as_concept_id column:

If the raw data gives a categorial result for measurements those values are captured and mapped to standard concepts in the ‘Meas Value’ domain.

and also

This is also the destination for the ‘Maps to value’ relationship.

What should I do with a source concept “Y90.0 Blood alcohol level of less than 20 mg/100 ml” from ICD10 vocabulary (concept_id=45590669)?
CONCEPT_RELATIONSHIP row with relationship_id == “Maps to” says this is a SNOMED vocabulary concept in Measurement domain: “167009006 Blood ethanol measurement” so this clearly goes into MEASUREMENT table.

CONCEPT_RELATIONSHIP row with relationship_id == “Maps to value” states the ICD10 code maps as value to SNOMED concept “442082004 Measurement finding within reference range” (Concept_id=40481826) but the domain is “Condition”.
Can I use this Concept_id=40481826 as MEASUREMENT.value_as_concept_id even though it is in Condition domain and not “Meas value”?

(Dmytry Dymshyts) #2

Hi @prikala,
Nice finding.

Ideally, this concept should be represented as whole MEASUREMENT table row:
Measurement_concept_id = Blood ethanol measurement
value_as_number = 20,
unit_concept_id = milligram per milliliter
operator_concept_id = <.

We want to add the “Wide mapping table” to store relationships between a source concept and different attributes (to Event_concept_id, unit, operator and number in this case).

Not sure, when it will be agreed by the community and takes an actual place.
So, you can create some look-up table and use it during your conversion to get the result above.
Note, the concepts like
Y90.2 Blood alcohol level of 40-59 mg/100 ml
will end up in two rows, one with >=40, another with <=59

And if you don’t want to be bothered with the additional logic, just break the rule of Meas Value restriction for now.
And once we release the “Wide mapping table”, you can fix that.