FHIR Chat · Concept Map $translate · terminology

Stream: terminology

Topic: Concept Map $translate


view this post on Zulip Jane Pankratova (Aug 10 2021 at 17:49):

Hi everyone!

I am currently implementing the POST-$translate method for a ConceptMap resource.

I ran into a problem that in the current version of FHIR R4 only coding can be passed to the dependency.concept parameter.
In one of the discussions here, I found out that in R5 it is proposed to replace dependency.concept with dependency.value, where it would be possible to write not only CodeableConcept, but all other types as well.

The problem is that it's not enough for me to pass only the value, for example:

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "code",
      "valueCode": "10001005"
    },
    {
      "name": "dependency",
      "part": [
        {
          "name": "value",
          "valueQuantity": {
            "value": 1,
            "unit": "year",
            "system": "http://unitsofmeasure.org",
            "code": "a"
          }
        }
      ]
    }
  ]
}

But I need to identify it with concept. So it's not just some value, but it's the value within a code system, for example:

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "code",
      "valueCode": "10001005"
    },
    {
      "name": "dependency",
      "part": [
        {
          "name": "value",
          "valueQuantity": {
            "value": 1,
            "unit": "year",
            "system": "http://unitsofmeasure.org",
            "code": "a"
          }
        },
        {
          "name": "concept",
          "valueCoding": {
            "system": "http://smomed.info/sct",
            "code": "445518008"
          }
        }
      ]
    }
  ]
}

Is it okay to do something like that?

view this post on Zulip Michael Lawley (Aug 10 2021 at 20:39):

If I'm following, "age at onset" identifies the property that the mapping depends on? In which case, the type of the dependency.concept parameter should be CodeableConcept

Alternatively, you have two dependsOn values, one of type Quantity and one of type Coding.

Ultimately it depends on how your ConceptMap is representing this mapping information.

view this post on Zulip Jane Pankratova (Aug 11 2021 at 06:44):

If I'm following, "age at onset" identifies the property that the mapping depends on? In which case, the type of the dependency.concept parameter should be CodeableConcept

Yes, it does.
And it should be CodeableConcept when there's that kind of rule: IFA 11850561000119105 / Contusion of right chest wall /. So the mapping depends on not value property but code property.

It will look like that (if I've got it right):

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "code",
      "valueCode": "10001005"
    },
    {
      "name": "dependency",
      "part": [
        {
          "name": "concept",
          "valueCodeableConcept": {
            "coding": [
              {
                "system": "http://smomed.info/sct",
                "code": "11850561000119105",
                "display": "Contusion of right chest wall"
              }
            ],
            "text": "Contusion of right chest wall"
          }
        }
      ]
    }
  ]
}

But I don't understand how to deal with it if I want to pass not codeableConcept but some value, so I can use it in the process of mapping. And I also need to link the value with its code. It means that I need to specify that the current valueQuantity (age in this example) belongs to SNOMED's 445518008 property (like in the example below) (+ for example, if I apply $translate to another ConceptMap, I could say that this valueQuantity belongs to LOINC code system).

I can't do that - just pass "age on set" as CodeableConcept for $translate because it doesn't contain any value for this:

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "code",
      "valueCode": "10001005"
    },
    {
      "name": "dependency",
      "part": [
        {
          "name": "concept",
          "valueCodeableConcept": {
            "coding": [
              {
                "system": "http://smomed.info/sct",
                "code": "445518008",
                "display": "Age at onset of clinical finding (observable entity)"
              }
            ],
            "text": "Age at onset of clinical finding (observable entity)"
          }
        }
      ]
    }
  ]
}

That's why I want to use R5 because dependency.concept is replaced with dependency.value, so I can start passing value properties, but it doesn't support dependency.concept anymore (according to the proposal file, and it's not described in specification yet) which I need to link these two properties.

So, I imagine it to be like that that every part of dependency parameter has:

  • concept (dependency.concept | coding) - 0..1
  • value (dependency.value[x] | [x] - every type) - 0..1

It means If I have value property I specify both concept and value, and if I have only code property, I specify only concept.

Alternatively, you have two dependsOn values, one of type Quantity and one of type Coding.

If I understand your comment right, it's not like I want to have two not linked together values, I need to have two values (both Quantity and and its defining Coding) combined together.

view this post on Zulip Michael Lawley (Aug 12 2021 at 21:29):

The R5 equivalent of dependency.concept is dependency.valueCoding

However, it sounds like what you're want to express is that the dependency.valueQuantity is the value of an age at onset field, with that field being identified by a SNOMED code. In this case, the dependency.element value could be set to http://snomed.info/id/445518008 (which would correspond to group.element.target.dependsOn.property in the ConceptMap).

view this post on Zulip Michael Lawley (Aug 12 2021 at 21:31):

It is analogous to the example here https://build.fhir.org/conceptmap-example-specimen-type.html (which is using product rather than dependsOn, but the essential idea is the same)

view this post on Zulip Michael Lawley (Aug 12 2021 at 23:32):

{
  "resourceType": "Parameters",
  "parameter": [
    {
      "name": "code",
      "valueCode": "10001005"
    },
    {
      "name": "dependency",
      "part": [
        {
          "name": "element",
          "valueUri": "http://snomed.info/id/445518008"
        },
        {
          "name": "value",
          "valueQuantity": {
            "value": 1,
            "unit": "year",
            "system": "http://unitsofmeasure.org",
            "code": "a"
          }
        }
      ]
    }
  ]
}

view this post on Zulip Jane Pankratova (Aug 24 2021 at 07:52):

Michael Lawley said:

The R5 equivalent of dependency.concept is dependency.valueCoding

However, it sounds like what you're want to express is that the dependency.valueQuantity is the value of an age at onset field, with that field being identified by a SNOMED code. In this case, the dependency.element value could be set to http://snomed.info/id/445518008 (which would correspond to group.element.target.dependsOn.property in the ConceptMap).

Yes, that's what I want. I've got it! Thanks a lot.


Last updated: Apr 12 2022 at 19:14 UTC