FHIR Release 3 (STU) Current Build
This page is part of FHIR STU 3 (v3.0.1) in it's permanent home (it will always be available at this URL). It has been superceded by R4 . For a full list of available versions, see the Directory of published versions .
Patient Administration Work Group Maturity Level : N/A Ballot Standards Status : Informative Security Category : Individual Compartments : Practitioner

R2 : R3 Converson : R4 Conversion maps for Practitioner.

Functional status for this map: 18 14 tests that all execute ok. 15 fail All tests pass round-trip testing and all r3 resources are valid. ( see documentation)

map "http://hl7.org/fhir/StructureMap/Practitioner2to3" = "R2 to R3 Conversions for Practitioner"
map "http://hl7.org/fhir/StructureMap/Practitioner3to4" = "R3 to R4 Conversions for Practitioner"
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Practitioner" alias PractitionerR2 as source

uses "http://hl7.org/fhir/3.0/StructureDefinition/Practitioner" alias PractitionerR3 as source

uses "http://hl7.org/fhir/StructureDefinition/Practitioner" alias Practitioner as target
imports "http://hl7.org/fhir/StructureMap/*2to3"
group for type+types  Practitioner extends DomainResource
  input src : PractitionerR2 as source
  input tgt : Practitioner as target
  "Practitioner-identifier" : for src.identifier make tgt.identifier
  "Practitioner-active" : for src.active make tgt.active
  "Practitioner-name" : for src.name make tgt.name
  "Practitioner-telecom" : for src.telecom make tgt.telecom
  "Practitioner-address" : for src.address make tgt.address
  "Practitioner-gender" : for src.gender make tgt.gender
  "Practitioner-birthDate" : for src.birthDate make tgt.birthDate
  "Practitioner-photo" : for src.photo make tgt.photo
  "Practitioner-role" : for src.practitionerRole as vs0 make create("PractitionerRole") as vt0 then prcRole(src, tgt, vs0, vt0)
  "Practitioner-qualification" : for src.qualification as vs0 make tgt.qualification as vt0 then prcQualification(vs0, vt0) 
  "Practitioner-communication" : for src.communication make tgt.communication
endgroup
group prcRole extends BackboneElement
  input pr as source // the source r2 practitioner resource
  input prtgt as target // the target r3 practitioner resource
  input src as source // the source practitioner role
  input tgt as target // the target PractitionerRole resource

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

  "Practitioner.role-id" : for src make tgt.practitioner = create("Reference") as p, p.reference = ('Practitioner/'+pr.id) 
  "Practitioner.role-organization" : for src.managingOrganization make tgt.organization
  "Practitioner.role-code" : for src.role make tgt.code
  "Practitioner.role-specialty" : for src.specialty make tgt.specialty
  "Practitioner.role-period" : for src.period make tgt.period
  "Practitioner.role-location" : for src.location make tgt.location
  "Practitioner.role-healthcareService" : for src.healthcareService make tgt.healthcareService
endgroup
  
group prcQualification extends BackboneElement
  input src as source
  input tgt as target

group Practitioner(source src : PractitionerR3, target tgt : Practitioner) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier;
  src.active -> tgt.active;
  src.name -> tgt.name;
  src.telecom -> tgt.telecom;
  src.address -> tgt.address;
  src.gender -> tgt.gender;
  src.birthDate -> tgt.birthDate;
  src.photo -> tgt.photo;
  src.qualification as vs0 -> tgt.qualification as vt0 then {
    vs0.identifier -> vt0.identifier;
    vs0.code -> vt0.code;
    vs0.period -> vt0.period;
    vs0.issuer -> vt0.issuer;
  };
  src.communication -> tgt.communication;
}

  "Practitioner.qualification-identifier" : for src.identifier make tgt.identifier
  "Practitioner.qualification-code" : for src.code make tgt.code
  "Practitioner.qualification-period" : for src.period make tgt.period
  "Practitioner.qualification-issuer" : for src.issuer make tgt.issuer
endgroup

map "http://hl7.org/fhir/StructureMap/Practitioner3to2" = "R3 to R2 Conversion for Practitioner"
map "http://hl7.org/fhir/StructureMap/Practitioner4to3" = "R4 to R3 Conversion for Practitioner"
uses "http://hl7.org/fhir/StructureDefinition/Practitioner" alias Practitioner as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/Practitioner" alias PractitionerR2 as target
imports "http://hl7.org/fhir/StructureMap/*3to2"
group for type+types  Practitioner extends DomainResource
  input src : Practitioner as source
  input tgt : PractitionerR2 as target
  "Practitioner-identifier" : for src.identifier make tgt.identifier
  "Practitioner-active" : for src.active make tgt.active
  "Practitioner-name" : for src.name make tgt.name
  "Practitioner-telecom" : for src.telecom make tgt.telecom
  "Practitioner-address" : for src.address make tgt.address
  "Practitioner-gender" : for src.gender make tgt.gender
  "Practitioner-birthDate" : for src.birthDate make tgt.birthDate
  "Practitioner-photo" : for src.photo make tgt.photo
  "Practitioner-role" : for search('/PractitionerRole?practitioner='+src.id) : PractitionerRole as vs0 make tgt.practitionerRole as vt0 then prcRole(vs0, vt0)
  "Practitioner-qualification" : for src.qualification as vs0 make tgt.qualification as vt0 then prcQualification(vs0, vt0) 
  "Practitioner-communication" : for src.communication make tgt.communication
endgroup

uses "http://hl7.org/fhir/3.0/StructureDefinition/Practitioner" alias PractitionerR3 as target

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

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

  "Practitioner.role-organization" : for src.organization make tgt.managingOrganization
  "Practitioner.role-code" : for src.code make tgt.role
  "Practitioner.role-specialty" : for src.specialty make tgt.specialty
  "Practitioner.role-period" : for src.period make tgt.period
  "Practitioner.role-location" : for src.location make tgt.location
  "Practitioner.role-healthcareService" : for src.healthcareService make tgt.healthcareService
endgroup
  
group prcQualification extends BackboneElement
  input src as source
  input tgt as target

group Practitioner(source src : Practitioner, target tgt : PractitionerR3) extends DomainResource <<type+>> {
  src.identifier -> tgt.identifier;
  src.active -> tgt.active;
  src.name -> tgt.name;
  src.telecom -> tgt.telecom;
  src.address -> tgt.address;
  src.gender -> tgt.gender;
  src.birthDate -> tgt.birthDate;
  src.photo -> tgt.photo;
  src.qualification as vs0 -> tgt.qualification as vt0 then {
    vs0.identifier -> vt0.identifier;
    vs0.code -> vt0.code;
    vs0.period -> vt0.period;
    vs0.issuer -> vt0.issuer;
  };
  src.communication -> tgt.communication;
}

  "Practitioner.qualification-identifier" : for src.identifier make tgt.identifier
  "Practitioner.qualification-code" : for src.code make tgt.code
  "Practitioner.qualification-period" : for src.period make tgt.period
  "Practitioner.qualification-issuer" : for src.issuer make tgt.issuer
endgroup

<p>No validation errors - all conversions are clean</p>