National Directory of Healthcare Providers & Services (NDH) Implementation Guide
2.0.0-current - ci-build US

National Directory of Healthcare Providers & Services (NDH) Implementation Guide, published by HL7 International / Patient Administration. This guide is not an authorized publication; it is the continuous build for version 2.0.0-current built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-us-ndh/ and changes regularly. See the Directory of published versions

StructureMap: This StructureMap defines the mapping from Plan-Net Practitioner to NDH Practitioner.

Official URL: http://hl7.org/fhir/us/ndh/StructureMap/PlanNetToNdhPractitionerSM Version: 2.0.0-current
Standards status: Trial-use Maturity Level: 4 Computable Name: PlanNetToNdhPractitionerSM

This StructureMap defines the mapping from Plan-Net Practitioner to NDH Practitioner.

Language: en

map "http://hl7.org/fhir/us/ndh/StructureMap/PlanNetToNdhPractitionerSM" = "PlanNetToNdhPractitionerSM"

// This StructureMap defines the mapping from Plan-Net Practitioner to NDH Practitioner.

uses "http://hl7.org/fhir/us/davinci-pdex-plan-net/StructureDefinition/plannet-Practitioner" alias Source as source
uses "http://hl7.org/fhir/us/ndh/StructureDefinition/ndh-Practitioner" alias Target as target

group PlanNetToNdhPractitioner(source src : Practitioner, target tgt : Practitioner) {
  src.identifier as vIdentifier -> tgt.identifier = vIdentifier;
  src.active as vActive -> tgt.active = true;
  src.gender as vGender -> tgt.gender = vGender;
  src.birthDate as vBirthDate -> tgt.birthDate = vBirthDate;
  src.name as vName -> tgt.name = vName;
  src.photo as vPhoto -> tgt.photo = vPhoto;
  src.telecom as vTelecomSrc -> tgt.telecom as vTelecomTgt then {
    vTelecomSrc.system as vTelecomSystem -> vTelecomTgt.system = vTelecomSystem "copyTelecomSystem";
    vTelecomSrc.value as vTelecomValue -> vTelecomTgt.value = vTelecomValue "copyTelecomValue";
    vTelecomSrc.use as vTelecomUse -> vTelecomTgt.use = vTelecomUse "copyTelecomUse";
    vTelecomSrc.rank as vTelecomRank -> vTelecomTgt.rank = vTelecomRank "copyTelecomRank";
    vTelecomSrc.period as vTelecomPeriod -> vTelecomTgt.period = vTelecomPeriod "copyTelecomPeriod";
    vTelecomSrc.extension as vContactpointAvailabletimeSrc where (url = 'http://hl7.org/fhir/us/davinci-pdex-plan-net/StructureDefinition/contactpoint-availabletime') -> vTelecomTgt.extension as vContactpointAvailabletimeTgt then {
      vContactpointAvailabletimeSrc as vContactpointAvailabletimeForUrl -> vContactpointAvailabletimeTgt.url = 'http://hl7.org/fhir/us/ndh/StructureDefinition/base-ext-contactpoint-availabletime' "setContactpointAvailabletimeUrl";
      vContactpointAvailabletimeSrc.extension as vContactpointAvailabletimeSubExt -> vContactpointAvailabletimeTgt.extension = vContactpointAvailabletimeSubExt "copyContactpointAvailabletimeSubExt";
      vContactpointAvailabletimeSrc.value as vContactpointAvailabletimeValue -> vContactpointAvailabletimeTgt.value = vContactpointAvailabletimeValue "copyContactpointAvailabletimeValue";
    } "copyTelecomContactpointAvailabletime";
    vTelecomSrc.extension as vViaIntermediarySrc where (url = 'http://hl7.org/fhir/us/davinci-pdex-plan-net/StructureDefinition/via-intermediary') -> vTelecomTgt.extension as vViaIntermediaryTgt then {
      vViaIntermediarySrc as vViaIntermediaryForUrl -> vViaIntermediaryTgt.url = 'http://hl7.org/fhir/us/ndh/StructureDefinition/base-ext-via-intermediary' "setViaIntermediaryUrl";
      vViaIntermediarySrc.extension as vViaIntermediarySubExt -> vViaIntermediaryTgt.extension = vViaIntermediarySubExt "copyViaIntermediarySubExt";
      vViaIntermediarySrc.value as vViaIntermediaryValue -> vViaIntermediaryTgt.value = vViaIntermediaryValue "copyViaIntermediaryValue";
    } "copyTelecomViaIntermediary";
  } "copyTelecom";
  src.address as vAddress -> tgt.address = vAddress;
  src.communication as vCommunicationSrc -> tgt.communication as vCommunicationTgt then {
    vCommunicationSrc.coding as vCommunicationCoding -> vCommunicationTgt.coding = vCommunicationCoding "copyCommunicationCoding";
    vCommunicationSrc.text as vCommunicationText -> vCommunicationTgt.text = vCommunicationText "copyCommunicationText";
    vCommunicationSrc.extension as vCommunicationProficiencySrc where (url = 'http://hl7.org/fhir/us/davinci-pdex-plan-net/StructureDefinition/communication-proficiency') -> vCommunicationTgt.extension as vCommunicationProficiencyTgt then {
      vCommunicationProficiencySrc as vCommunicationProficiencyForUrl -> vCommunicationProficiencyTgt.url = 'http://hl7.org/fhir/us/ndh/StructureDefinition/base-ext-communication-proficiency' "setCommunicationProficiencyUrl";
      vCommunicationProficiencySrc.value as vCommunicationProficiencyValue -> vCommunicationProficiencyTgt.value = vCommunicationProficiencyValue "copyCommunicationProficiencyValue";
    } "copyCommunicationProficiencyExtension";
  } "copyCommunication";
  src.qualification as vQualificationSrc -> tgt.qualification as vQualificationTgt then {
    vQualificationSrc.extension as vQualificationScopeSrc where (url = 'http://hl7.org/fhir/us/davinci-pdex-plan-net/StructureDefinition/practitioner-qualification') -> vQualificationTgt.extension as vQualificationScopeTgt then {
      vQualificationScopeSrc as vQualificationScopeForUrl -> vQualificationScopeTgt.url = 'http://hl7.org/fhir/us/ndh/StructureDefinition/base-ext-practitioner-qualification-scope' "setPractitionerQualificationScopeUrl";
      vQualificationScopeSrc.extension as vQualificationScopeSubExt -> vQualificationScopeTgt.extension = vQualificationScopeSubExt "copyPractitionerQualificationScopeSubExt";
    } "copyPractitionerQualificationScopeExtension";
    vQualificationSrc.identifier as vQualificationIdentifier -> vQualificationTgt.identifier = vQualificationIdentifier "copyQualificationIdentifier";
    vQualificationSrc.code as vQualificationCode -> vQualificationTgt.code = vQualificationCode "copyQualificationCode";
    vQualificationSrc.period as vQualificationPeriod -> vQualificationTgt.period = vQualificationPeriod "copyQualificationPeriod";
    vQualificationSrc.issuer as vQualificationIssuer -> vQualificationTgt.issuer = vQualificationIssuer "copyQualificationIssuer";
  } "copyQualification";
  src.meta as vMetaSrc -> tgt.meta as vMetaTgt then {
    vMetaSrc.lastUpdated as vLastUpdated -> vMetaTgt.lastUpdated = vLastUpdated;
  };
}