FHIR Release 3 (STU) R4 Ballot #2 (Mixed Normative/Trial use)

This page is part of the FHIR Specification (v3.0.2: STU 3). (v3.5.0: R4 Ballot #2). 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

FHIR Infrastructure Work Group Maturity Level : N/A Ballot Status : Informative Compartments : Not linked to any defined compartments

R2 : R3 Converson : R4 Conversion maps for ImplementationGuide.

Functional status for this map: 1 test that all of which 1 fail to execute ok. All tests pass round-trip testing and all r3 resources are valid. . ( see documentation)

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

map "http://hl7.org/fhir/StructureMap/ImplementationGuide3to4" = "R3 to R4 Conversions for ImplementationGuide"


uses "http://hl7.org/fhir/DSTU2/StructureDefinition/ImplementationGuide" alias ImplementationGuideR2 as source
uses "http://hl7.org/fhir/StructureDefinition/ImplementationGuide" alias ImplementationGuide as target


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

uses "http://hl7.org/fhir/3.0/StructureDefinition/ImplementationGuide" alias ImplementationGuideR3 as source
uses "http://hl7.org/fhir/StructureDefinition/ImplementationGuide" alias ImplementationGuide as target


group for type+types  ImplementationGuide extends DomainResource
  input src : ImplementationGuideR2 as source
  input tgt : ImplementationGuide as target

imports "http://hl7.org/fhir/StructureMap/*3to4"


  "ImplementationGuide-url" : for src.url make tgt.url
  "ImplementationGuide-version" : for src.version make tgt.version
  "ImplementationGuide-name" : for src.name make tgt.name
  "ImplementationGuide-status" : for src.status make tgt.status
  "ImplementationGuide-experimental" : for src.experimental make tgt.experimental
  "ImplementationGuide-publisher" : for src.publisher make tgt.publisher
  "ImplementationGuide-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
  }


  "ImplementationGuide-description" : for src.description make tgt.description
  "ImplementationGuide-copyright" : for src.copyright make tgt.copyright
  "ImplementationGuide-jurisdiction" : for src.useContext where coding.system = 'urn:iso:std:iso:3166' make tgt.jurisdiction
  "ImplementationGuide-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)
  "ImplementationGuide-date" : for src.date make tgt.date
  "ImplementationGuide-fhirVersion" : for src.fhirVersion make tgt.fhirVersion
  "ImplementationGuide-dependency" : for src.dependency as vs0 make tgt.dependency as vt0 then {
    "ImplementationGuide.dependency-type" : for vs0.type make vt0.type
    "ImplementationGuide.dependency-uri" : for vs0.uri make vt0.uri
  }


  "ImplementationGuide-package" : for src.package as vs0 make tgt.package as vt0 then {
    "ImplementationGuide.package-name" : for vs0.name make vt0.name
    "ImplementationGuide.package-description" : for vs0.description make vt0.description
    "ImplementationGuide.package-resource" : for vs0.resource as vs make vt0.resource as vt then resource(vs, vt)
  }

group ImplementationGuide extends DomainResource
  input src : ImplementationGuideR3 as source
  input tgt : ImplementationGuide as target


  "ImplementationGuide-global" : for src.global as vs0 make tgt.global as vt0 then {
    "ImplementationGuide.global-type" : for vs0.type make vt0.type
    "ImplementationGuide.global-profile" : for vs0.profile make vt0.profile

  "ImplementationGuide.url" : for src.url as vs make tgt.url as vt
  "ImplementationGuide.version" : for src.version as vs make tgt.version as vt
  "ImplementationGuide.name" : for src.name as vs make tgt.name as vt
  "ImplementationGuide.status" : for src.status as vs make tgt.status as vt
  "ImplementationGuide.experimental" : for src.experimental as vs make tgt.experimental as vt
  "ImplementationGuide.date" : for src.date as vs make tgt.date as vt
  "ImplementationGuide.publisher" : for src.publisher as vs make tgt.publisher as vt
  "ImplementationGuide.contact" : for src.contact as vs make tgt.contact as vt
  "ImplementationGuide.description" : for src.description as vs make tgt.description as vt
  "ImplementationGuide.useContext" : for src.useContext as vs make tgt.useContext as vt
  "ImplementationGuide.jurisdiction" : for src.jurisdiction as vs make tgt.jurisdiction as vt
  "ImplementationGuide.copyright" : for src.copyright as vs make tgt.copyright as vt
  "ImplementationGuide.fhirVersion" : for src.fhirVersion as vs make tgt.fhirVersion as vt
  "ImplementationGuide.dependsOn" : for src.dependency as vs0 make tgt.dependsOn as vt0 then {
  }
  "ImplementationGuide.global" : for src.global as vs0 make tgt.global as vt0 then {
    "ImplementationGuide.global.type" : for vs0.type as vs make vt0.type as vt

  }

  "ImplementationGuide-binary" : for src.binary make tgt.binary
  "ImplementationGuide-page" : for src.page as vs0 make tgt.page as vt0 then page(vs0, vt0)
endgroup

group resource extends BackboneElement
  input src as source
  input tgt as target

  "ImplementationGuide.resource-purpose" : for src where src.purpose = 'example' make tgt.example = true
  "ImplementationGuide.resource-name" : for src.name make tgt.name
  "ImplementationGuide.resource-description" : for src.description make tgt.description
  "ImplementationGuide.resource-acronym" : for src.acronym make tgt.acronym
  "ImplementationGuide.resource-source" : for src.source make tgt.source
  "ImplementationGuide.resource-exampleFor" : for src.exampleFor make tgt.exampleFor

endgroup

group page extends BackboneElement
  input src as source
  input tgt as target

  "ImplementationGuide.page-source" : for src.source make tgt.source
  "ImplementationGuide.page-title" : for src.name make tgt.title
  "ImplementationGuide.page-kind" : for src.kind make tgt.kind
  "ImplementationGuide.page-type" : for src.type make tgt.type
  "ImplementationGuide.page-package" : for src.package make tgt.package
  "ImplementationGuide.page-format" : for src.format make tgt.format
  "ImplementationGuide.page-page" : for src.page as vs0 make tgt.page as vt0 then page(vs0, vt0)
endgroup


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

map "http://hl7.org/fhir/StructureMap/ImplementationGuide4to3" = "R4 to R3 Conversion for ImplementationGuide"


uses "http://hl7.org/fhir/StructureDefinition/ImplementationGuide" alias ImplementationGuide as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/ImplementationGuide" alias ImplementationGuideR2 as target


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

uses "http://hl7.org/fhir/StructureDefinition/ImplementationGuide" alias ImplementationGuide as source
uses "http://hl7.org/fhir/3.0/StructureDefinition/ImplementationGuide" alias ImplementationGuideR3 as target


group for type+types  ImplementationGuide extends DomainResource
  input src : ImplementationGuide as source
  input tgt : ImplementationGuideR2 as target

imports "http://hl7.org/fhir/StructureMap/*4to3"


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


  "ImplementationGuide-date" : for src.date make tgt.date
  "ImplementationGuide-description" : for src.description make tgt.description
  "ImplementationGuide-useContext" : for src.jurisdiction make tgt.useContext
  "ImplementationGuide-copyright" : for src.copyright make tgt.copyright
  "ImplementationGuide-fhirVersion" : for src.fhirVersion make tgt.fhirVersion
  "ImplementationGuide-dependency" : for src.dependency as vs0 make tgt.dependency as vt0 then {
    "ImplementationGuide.dependency-type" : for vs0.type make vt0.type
    "ImplementationGuide.dependency-uri" : for vs0.uri make vt0.uri
  }


  "ImplementationGuide-package" : for src.package as vs0 make tgt.package as vt0 then {
    "ImplementationGuide.package-name" : for vs0.name make vt0.name
    "ImplementationGuide.package-description" : for vs0.description make vt0.description
    "ImplementationGuide.package-resource" : for vs0.resource as vs make vt0.resource as vt then resource(vs, vt)
  }

group ImplementationGuide extends DomainResource
  input src : ImplementationGuideR3 as source
  input tgt : ImplementationGuide as target


  "ImplementationGuide-global" : for src.global as vs0 make tgt.global as vt0 then {
    "ImplementationGuide.global-type" : for vs0.type make vt0.type
    "ImplementationGuide.global-profile" : for vs0.profile make vt0.profile
  }

  "ImplementationGuide.url": for src.url make tgt.url
  "ImplementationGuide.version": for src.version make tgt.version
  "ImplementationGuide.name": for src.name make tgt.name
  "ImplementationGuide.status": for src.status make tgt.status
  "ImplementationGuide.experimental": for src.experimental make tgt.experimental
  "ImplementationGuide.date": for src.date make tgt.date
  "ImplementationGuide.publisher": for src.publisher make tgt.publisher
  "ImplementationGuide.contact": for src.contact make tgt.contact
  "ImplementationGuide.description": for src.description make tgt.description
  "ImplementationGuide.useContext": for src.useContext make tgt.useContext
  "ImplementationGuide.jurisdiction": for src.jurisdiction make tgt.jurisdiction
  "ImplementationGuide.copyright": for src.copyright make tgt.copyright
  "ImplementationGuide.packageId": for src.packageId make tgt.packageId
  "ImplementationGuide.license": for src.license make tgt.license
  "ImplementationGuide.fhirVersion": for src.fhirVersion make tgt.fhirVersion
  "ImplementationGuide.dependsOn": for src.dependsOn as s make tgt.dependsOn as t then ImplementationGuideDependsOn(s,t)
  "ImplementationGuide.global": for src.global as s make tgt.global as t then ImplementationGuideGlobal(s,t)
  "ImplementationGuide.definition": for src.definition as s make tgt.definition as t then ImplementationGuideDefinition(s,t)
  "ImplementationGuide.manifest": for src.manifest as s make tgt.manifest as t then ImplementationGuideManifest(s,t)
endgroup


  "ImplementationGuide-binary" : for src.binary make tgt.binary
  "ImplementationGuide-page" : for src.page as vs0 make tgt.page as vt0 then page(vs0, vt0)

group ImplementationGuideDependsOn extends BackboneElement
  input src : ImplementationGuideR3 as source
  input tgt : ImplementationGuide as target

  "ImplementationGuide.dependsOn.uri": for src.uri make tgt.uri
  "ImplementationGuide.dependsOn.packageId": for src.packageId make tgt.packageId
  "ImplementationGuide.dependsOn.version": for src.version make tgt.version

endgroup

group resource extends BackboneElement
  input src as source
  input tgt as target

group ImplementationGuideGlobal extends BackboneElement
  input src : ImplementationGuideR3 as source
  input tgt : ImplementationGuide as target


  "ImplementationGuide.resource-purpose" : for src where example = true make tgt.purpose = 'example'
  "ImplementationGuide.resource-name" : for src.name make tgt.name
  "ImplementationGuide.resource-description" : for src.description make tgt.description
  "ImplementationGuide.resource-acronym" : for src.acronym make tgt.acronym
  "ImplementationGuide.resource-source" : for src.source make tgt.source
  "ImplementationGuide.resource-exampleFor" : for src.exampleFor make tgt.exampleFor

  "ImplementationGuide.global.type": for src.type make tgt.type
  "ImplementationGuide.global.profile": for src.profile make tgt.profile

endgroup

group page extends BackboneElement
  input src as source
  input tgt as target

group ImplementationGuideDefinition extends BackboneElement
  input src : ImplementationGuideR3 as source
  input tgt : ImplementationGuide as target


  "ImplementationGuide.page-source" : for src.source make tgt.source
  "ImplementationGuide.page-name" : for src.title make tgt.name
  "ImplementationGuide.page-kind" : for src.kind make tgt.kind
  "ImplementationGuide.page-type" : for src.type make tgt.type
  "ImplementationGuide.page-package" : for src.package make tgt.package
  "ImplementationGuide.page-format" : for src.format make tgt.format
  "ImplementationGuide.page-page" : for src.page as vs0 make tgt.page as vt0 then page(vs0, vt0)

  "ImplementationGuide.definition.package": for src.package as s make tgt.package as t then ImplementationGuideDefinitionPackage(s,t)
  "ImplementationGuide.definition.resource": for src.resource as s make tgt.resource as t then ImplementationGuideDefinitionResource(s,t)
  "ImplementationGuide.definition.page": for src.page as s make tgt.page as t then ImplementationGuideDefinitionPage(s,t)
  "ImplementationGuide.definition.parameter": for src.parameter as s make tgt.parameter as t then ImplementationGuideDefinitionParameter(s,t)
  "ImplementationGuide.definition.template": for src.template as s make tgt.template as t then ImplementationGuideDefinitionTemplate(s,t)
endgroup

group ImplementationGuideDefinitionPackage extends BackboneElement
  input src : ImplementationGuideR3 as source
  input tgt : ImplementationGuide as target

  "ImplementationGuide.definition.package.name": for src.name make tgt.name
  "ImplementationGuide.definition.package.description": for src.description make tgt.description
endgroup

group ImplementationGuideDefinitionResource extends BackboneElement
  input src : ImplementationGuideR3 as source
  input tgt : ImplementationGuide as target

  "ImplementationGuide.definition.resource.reference": for src.reference make tgt.reference
  "ImplementationGuide.definition.resource.name": for src.name make tgt.name
  "ImplementationGuide.definition.resource.description": for src.description make tgt.description
  "ImplementationGuide.definition.resource.example": for src.example make tgt.example
  "ImplementationGuide.definition.resource.package": for src.package make tgt.package
endgroup

group ImplementationGuideDefinitionPage extends BackboneElement
  input src : ImplementationGuideR3 as source
  input tgt : ImplementationGuide as target

  "ImplementationGuide.definition.page.name": for src.name make tgt.name
  "ImplementationGuide.definition.page.title": for src.title make tgt.title
  "ImplementationGuide.definition.page.generation": for src.generation make tgt.generation
  "ImplementationGuide.definition.page.page": for src.page make tgt.page
endgroup

group ImplementationGuideDefinitionParameter extends BackboneElement
  input src : ImplementationGuideR3 as source
  input tgt : ImplementationGuide as target

  "ImplementationGuide.definition.parameter.code": for src.code make tgt.code
  "ImplementationGuide.definition.parameter.value": for src.value make tgt.value
endgroup

group ImplementationGuideDefinitionTemplate extends BackboneElement
  input src : ImplementationGuideR3 as source
  input tgt : ImplementationGuide as target

  "ImplementationGuide.definition.template.code": for src.code make tgt.code
  "ImplementationGuide.definition.template.source": for src.source make tgt.source
  "ImplementationGuide.definition.template.scope": for src.scope make tgt.scope
endgroup

group ImplementationGuideManifest extends BackboneElement
  input src : ImplementationGuideR3 as source
  input tgt : ImplementationGuide as target

  "ImplementationGuide.manifest.rendering": for src.rendering make tgt.rendering
  "ImplementationGuide.manifest.resource": for src.resource as s make tgt.resource as t then ImplementationGuideManifestResource(s,t)
  "ImplementationGuide.manifest.page": for src.page as s make tgt.page as t then ImplementationGuideManifestPage(s,t)
  "ImplementationGuide.manifest.image": for src.image make tgt.image
  "ImplementationGuide.manifest.other": for src.other make tgt.other
endgroup

group ImplementationGuideManifestResource extends BackboneElement
  input src : ImplementationGuideR3 as source
  input tgt : ImplementationGuide as target

  "ImplementationGuide.manifest.resource.reference": for src.reference make tgt.reference
  "ImplementationGuide.manifest.resource.example": for src.example make tgt.example
  "ImplementationGuide.manifest.resource.relativePath": for src.relativePath make tgt.relativePath
endgroup

group ImplementationGuideManifestPage extends BackboneElement
  input src : ImplementationGuideR3 as source
  input tgt : ImplementationGuide as target

  "ImplementationGuide.manifest.page.name": for src.name make tgt.name
  "ImplementationGuide.manifest.page.title": for src.title make tgt.title
  "ImplementationGuide.manifest.page.anchor": for src.anchor make tgt.anchor

endgroup