$translate on ConceptMap

All the examples can be found at the "FHIR ConceptMap Resource and translation"community notebook which is accessible via your Aidbox Notebooks UI Tab

Parameters and usage

ParameterTypeDescription
coderequiredThe code that is to be translated
systemrequiredThe system for the code that is to be translated
urloptional

A canonical URL for a concept map.

Ignored when ConceptMap id is provided

reverseoptionalIf true, the translate should return all the codes that might be mapped to the given code

Example request

http
GET /fhir/ConceptMap/cm1/$translate?code=fetus-speciment&system=http://snomed&reverse=true
yaml
status: 200
body:
  resourceType: Parameters
  parameter:
  - name: result
    valueBoolean: true
  - name: match
    part:
    - name: equivalence
      valueCode: equivalent
    - name: concept
      valueCoding:
        system: http://hl7
        code: fetus-scalp
        userSelected: false
    - name: source
      valueUri: http://cm1
    - name: product
      part:
      - name: element
        valueUri: http://snomed/scalp-structure
      - name: concept
        valueCoding:
          system: http://snomed
          code: scalp-structure
          userSelected: false

Ungrouping ConceptMaps on create

ConceptMaps are ungrouped on create to have an opportunity to use Search API instead of $tranalate operation. ConceptMaps are transformed into ConceptMapRule resources.

ConceptMapRule resource schema:

  • element as in ConceptMap
  • source: source system where concepts to be mapped are defined
  • target: target system that the concepts are to be mapped to
  • sourceValueSet: the source value set that contains the concepts that are being mapped
  • targetValueSet: the target value set which provides context for the mappings
  • conceptMapId: id of the original ConceptMap
  • conceptmapUrl: url of the original ConceptMap
  • unmapped: as in ConceptMap

Aidbox Search API for ConceptMapRule

http
GET /fhir/ConceptMapRule?.source=http://hl7.org/fhir/address-use&.target=http://terminology.hl7.org/CodeSystem/v3-AddressUse&.element.code=home&_elements=.element.target
yaml
status: 200
body:
  resourceType: Bundle
  type: searchset
  meta:
    versionId: '70'
  total: 1
  link:
  - relation: first
    url: "/fhir/ConceptMapRule?.source=http://hl7.org/fhir/address-use&.target=http://terminology.hl7.org/CodeSystem/v3-AddressUse&.element.code=home&_elements=.element.target&page=1"
  - relation: self
    url: "/fhir/ConceptMapRule?.source=http://hl7.org/fhir/address-use&.target=http://terminology.hl7.org/CodeSystem/v3-AddressUse&.element.code=home&_elements=.element.target&page=1"
  entry:
  - resource:
      element:
        target:
        - code: H
          display: home
          equivalence: equivalent
      id: 7378326f-d142-43d5-8ef4-97cdad65d159
      resourceType: ConceptMapRule

Created ConceptMap does not have group property as it is just a meta header resource.

Convert ConceptMap.json to ndjson bundle

In order to convert a huge ConceptMap to ndjson bundle use this FHIR converter.

bash
java -jar [JAR_PATH] cmndj -i PATH/TO/CONCEPT_MAP.json -o PATH/TO/OUTPUT_BUNDLE.ndjson

The output bundle consists of ConceptMap meta resource and the set of ConceptMapRule resources.

Use aidbox.bulk data importto upload output bundle.

How to get full ConceptMap resource

Aidbox doesn't store ConceptMap groups in ConceptMap resource as mentioned above.

To get full ConceptMap resource make a request using /fhir prefix.

Example:

http
GET /fhir/ConceptMap/my-concept-map