R4 Draft for Comment

This page is part of the FHIR Specification (v3.2.0: R4 Ballot 1). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4 R3

Vocabulary Work GroupMaturity Level: N/ABallot Status: Informative Compartments: Not linked to any defined compartments

R2 : R3 Conversion maps for ConceptMap.

Functional status for this map: 2 tests that all execute ok. All tests pass round-trip testing and 1 r3 resources are invalid (1 errors). (see documentation)

map "http://hl7.org/fhir/StructureMap/ConceptMap2to3" = "R2 to R3 Conversions for ConceptMap"

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/ConceptMap" alias ConceptMapR2 as source
uses "http://hl7.org/fhir/StructureDefinition/ConceptMap" alias ConceptMap as target

imports "http://hl7.org/fhir/StructureMap/primitives2to3"
imports "http://hl7.org/fhir/StructureMap/DomainResource2to3"
imports "http://hl7.org/fhir/StructureMap/CodeableConcept2to3"
imports "http://hl7.org/fhir/StructureMap/ContactPoint2to3"
imports "http://hl7.org/fhir/StructureMap/Identifier2to3"
imports "http://hl7.org/fhir/StructureMap/Reference2to3"

group for type+types  ConceptMap extends DomainResource
  input src : ConceptMapR2 as source
  input tgt : ConceptMap as target

  "ConceptMap-url" : for src.url make tgt.url
  "ConceptMap-identifier" : for src.identifier make tgt.identifier
  "ConceptMap-version" : for src.version make tgt.version
  "ConceptMap-name" : for src.name make tgt.name
  "ConceptMap-status" : for src.status make tgt.status
  "ConceptMap-experimental" : for src.experimental make tgt.experimental
  "ConceptMap-publisher" : for src.publisher make tgt.publisher
  "ConceptMap-contact" : for src.contact as vs0 make tgt.contact as vt0 then {
    "ContactDetail-name" : for vs0.name make vt0.name
    "ContactDetail-telecom" : for vs0.telecom make vt0.telecom
  }

  "ConceptMap-date" : for src.date make tgt.date
  "ConceptMap-description" : for src.description make tgt.description
  "ConceptMap-purpose" : for src.requirements make tgt.purpose
  "ConceptMap-copyright" : for src.copyright make tgt.copyright
  "ConceptMap-jurisdiction" : for src.useContext where coding.system = 'urn:iso:std:iso:3166' make tgt.jurisdiction
  "ConceptMap-useContext" : for src.useContext as vs where (coding.system = 'urn:iso:std:iso:3166').not() make  tgt.useContext as uc,  uc.code as ucc,  ucc.system = "http://hl7.org/fhir/usage-context-type",  ucc.code = "task",  uc.value = create("CodeableConcept") as vt then CodeableConcept(vs, vt)
  "ConceptMap-source" : for src.source make tgt.source
  "ConceptMap-target" : for src.target make tgt.target

  // ConceptMap-backbone:     group src.element as srcE by srcE.codeSystem as srcSCs, inner srcE.target as srcT by srcT.codeSystem as srcTCs make tgt.group as tgtGrp, tgtGrp.source = srcSCs, tgtGrp.target = srcTCs then {
  "ConceptMap-element-1" : for src.element as srcE then {
    "ConceptMap-element-2" : for srcE.target as srcT make tgt.group as tgtGrp, tgtGrp.element as tgtE, tgtE.target as tgtT then {
      "ConceptMap-element-3" : for srcE.codeSystem make tgtGrp.source
      "ConceptMap-element-4" : for srcT.codeSystem make tgtGrp.target
      "ConceptMap-element-code":  for srcE.code make tgtE.code
      "ConceptMap-target-element":  for srcT.code make tgtT.code
      "ConceptMap-target-equivalence":  for srcT.equivalence make tgtT.equivalence
      "ConceptMap-target-comments":  for srcT.comments make tgtT.comment
      "ConceptMap-target-dependsOn":  for srcT.dependsOn as vs make tgtT.dependsOn as vt then {
        "ConceptMap-target-dependsOn-element": for vs.element make vt.property
        "ConceptMap-target-dependsOn-codeSystem": for vs.codeSystem make vt.system
        "ConceptMap-target-dependsOn-code": for vs.code make vt.code
      }  
      "ConceptMap-target-product":  for srcT.product as vs make tgtT.product as vt then {
        "ConceptMap-target-product-element": for vs.element make vt.property
        "ConceptMap-target-product-codeSystem": for vs.codeSystem make vt.system
        "ConceptMap-target-product-code": for vs.code make vt.code
      }  
    }
  }     

endgroup

map "http://hl7.org/fhir/StructureMap/ConceptMap3to2" = "R3 to R2 Conversion for ConceptMap"

uses "http://hl7.org/fhir/StructureDefinition/ConceptMap" alias ConceptMap as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/ConceptMap" alias ConceptMapR2 as target

imports "http://hl7.org/fhir/StructureMap/primitives3to2"
imports "http://hl7.org/fhir/StructureMap/DomainResource3to2"
imports "http://hl7.org/fhir/StructureMap/ContactPoint3to2"
imports "http://hl7.org/fhir/StructureMap/Identifier3to2"
imports "http://hl7.org/fhir/StructureMap/Reference3to2"
imports "http://hl7.org/fhir/StructureMap/CodeableConcept3to2"

group for type+types  ConceptMap extends DomainResource
  input src : ConceptMap as source
  input tgt : ConceptMapR2 as target

  "ConceptMap-url" : for src.url make tgt.url
  "ConceptMap-identifier" : for src.identifier make tgt.identifier
  "ConceptMap-version" : for src.version make tgt.version
  "ConceptMap-name" : for src.name make tgt.name
  "ConceptMap-status" : for src.status make tgt.status
  "ConceptMap-experimental" : for src.experimental make tgt.experimental
  "ConceptMap-publisher" : for src.publisher make tgt.publisher
  "ConceptMap-contact" : for src.contact as vs0 make tgt.contact as vt0 then {
    "ConceptMap.contact-name" : for vs0.name make vt0.name
    "ConceptMap.contact-telecom" : for vs0.telecom make vt0.telecom
  }

  "ConceptMap-date" : for src.date make tgt.date
  "ConceptMap-description" : for src.description make tgt.description
  "ConceptMap-useContext-1" : for src.jurisdiction make tgt.useContext
  "ConceptMap-useContext" : for src.useContext as vs then {
    "ConceptMap-useContext-value" : for vs.value make tgt.useContext
  }
  "ConceptMap-requirements" : for src.purpose make tgt.requirements
  "ConceptMap-copyright" : for src.copyright make tgt.copyright

  "ConceptMap-source" : for src.source make tgt.source
  "ConceptMap-target" : for src.target make tgt.target

  "ConceptMap-group" : for src.group as grp then {
    "ConceptMap-group-element" : for grp.element as els make tgt.element as elt then {
      "ConceptMap-element-code" : for grp.source make elt.codeSystem
      "ConceptMap-element-code" : for els.code make elt.code
      "ConceptMap-element-target" : for els.target as srcT make elt.target as tgtT then  {
        "ConceptMap-target-codeSystem":  for grp.target make tgtT.codeSystem
        "ConceptMap-target-code":  for srcT.code make tgtT.code
        "ConceptMap-target-equivalence":  for srcT.equivalence make tgtT.equivalence
        "ConceptMap-target-comments":  for srcT.comment make tgtT.comments
        "ConceptMap-target-dependsOn":  for srcT.dependsOn as vs make tgtT.dependsOn as vt then {
          "ConceptMap-target-dependsOn-element": for vs.property make vt.element
          "ConceptMap-target-dependsOn-codeSystem": for vs.system make vt.codeSystem
          "ConceptMap-target-dependsOn-code": for vs.code make vt.code
        }  
        "ConceptMap-target-product":  for srcT.product as vs make tgtT.product as vt then {
          "ConceptMap-target-product-element": for vs.property make vt.element
          "ConceptMap-target-product-codeSystem": for vs.system make vt.codeSystem
          "ConceptMap-target-product-code": for vs.code make vt.code
        }  
      }
    }
  }
endgroup

102
  • WARNING @ ConceptMap.group[41].element.target.comment: value should not start or finish with whitespace (src = InstanceValidator)