Current Build
Patient Administration Work GroupMaturity Level: N/ABallot Status: Informative Compartments: Not linked to any defined compartments

R2 : R3 Conversion maps for HealthcareService.

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

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

uses "http://hl7.org/fhir/DSTU2/StructureDefinition/HealthcareService" alias HealthcareServiceR2 as source
uses "http://hl7.org/fhir/StructureDefinition/HealthcareService" alias HealthcareService as target

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

group for type+types HealthcareService extends DomainResource
  input src : HealthcareServiceR2 as source
  input tgt : HealthcareService as target

  "HealthcareService-identifier" : for src.identifier make tgt.identifier
  "HealthcareService-providedBy" : for src.providedBy make tgt.providedBy
  "HealthcareService-serviceCategory" : for src.serviceCategory make tgt.category
  "HealthcareService-serviceType" : for src.serviceType as v then hsvcType(v, tgt)
  "HealthcareService-location" : for src.location make tgt.location
  "HealthcareService-serviceName" : for src.serviceName make tgt.name
  "HealthcareService-comment" : for src.comment make tgt.comment
  "HealthcareService-extraDetails" : for src.extraDetails make tgt.extraDetails
  "HealthcareService-photo" : for src.photo make tgt.photo
  "HealthcareService-telecom" : for src.telecom make tgt.telecom
  "HealthcareService-coverageArea" : for src.coverageArea make tgt.coverageArea
  "HealthcareService-serviceProvisionCode" : for src.serviceProvisionCode make tgt.serviceProvisionCode
  "HealthcareService-eligibility" : for src.eligibility make tgt.eligibility
  "HealthcareService-eligibilityNote" : for src.eligibilityNote make tgt.eligibilityNote
  "HealthcareService-programName" : for src.programName make tgt.programName
  "HealthcareService-characteristic" : for src.characteristic make tgt.characteristic
  "HealthcareService-referralMethod" : for src.referralMethod make tgt.referralMethod
  "HealthcareService-appointmentRequired" : for src.appointmentRequired make tgt.appointmentRequired
  "HealthcareService-availableTime" : for src.availableTime as vs0 make tgt.availableTime as vt0 then hsvcAvailable(vs0, vt0)
  "HealthcareService-notAvailable" : for src.notAvailable as vs0 make tgt.notAvailable as vt0 then hsvcNotAvailable(vs0, vt0)
  "HealthcareService-availabilityExceptions" : for src.availabilityExceptions make tgt.availabilityExceptions
endgroup

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

  "HealthcareService.availableTime-daysOfWeek" : for src.daysOfWeek make tgt.daysOfWeek
  "HealthcareService.availableTime-allDay" : for src.allDay make tgt.allDay
  "HealthcareService.availableTime-availableStartTime" : for src.availableStartTime make tgt.availableStartTime
  "HealthcareService.availableTime-availableEndTime" : for src.availableEndTime make tgt.availableEndTime
endgroup

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

  "HealthcareService.notAvailable-description" : for src.description make tgt.description
  "HealthcareService.notAvailable-during" : for src.during make tgt.during
endgroup

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

  "HealthcareService.serviceType-type" : for src.type make tgt.type
  "HealthcareService.serviceType-speciality" : for src.specialty make tgt.specialty
endgroup

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

uses "http://hl7.org/fhir/StructureDefinition/HealthcareService" alias HealthcareService as source
uses "http://hl7.org/fhir/DSTU2/StructureDefinition/HealthcareService" alias HealthcareServiceR2 as target

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

group for type+types  HealthcareService extends DomainResource
  input src : HealthcareService as source
  input tgt : HealthcareServiceR2 as target

  "HealthcareService-identifier" : for src.identifier make tgt.identifier
  "HealthcareService-providedBy" : for src.providedBy make tgt.providedBy
  "HealthcareService-serviceCategory" : for src.category make tgt.serviceCategory
  "HealthcareService-serviceType" : for src.type as vs make tgt.serviceType as vt, vt.type as vt then CodeableConcept(vs, vt)
  "HealthcareService-speciality" : for src.specialty as vs make tgt.serviceType as vt first, vt.specialty as vt then CodeableConcept(vs, vt) // put all the specialties on the first type
  "HealthcareService-location" : for src.location make tgt.location
  "HealthcareService-serviceName" : for src.name make tgt.serviceName
  "HealthcareService-comment" : for src.comment make tgt.comment
  "HealthcareService-extraDetails" : for src.extraDetails make tgt.extraDetails
  "HealthcareService-photo" : for src.photo make tgt.photo
  "HealthcareService-telecom" : for src.telecom make tgt.telecom
  "HealthcareService-coverageArea" : for src.coverageArea make tgt.coverageArea
  "HealthcareService-serviceProvisionCode" : for src.serviceProvisionCode make tgt.serviceProvisionCode
  "HealthcareService-eligibility" : for src.eligibility make tgt.eligibility
  "HealthcareService-eligibilityNote" : for src.eligibilityNote make tgt.eligibilityNote
  "HealthcareService-programName" : for src.programName make tgt.programName
  "HealthcareService-characteristic" : for src.characteristic make tgt.characteristic
  "HealthcareService-referralMethod" : for src.referralMethod make tgt.referralMethod
  "HealthcareService-appointmentRequired" : for src.appointmentRequired make tgt.appointmentRequired
  "HealthcareService-availableTime" : for src.availableTime as vs0 make tgt.availableTime as vt0 then hsvcAvailable(vs0, vt0)
  "HealthcareService-notAvailable" : for src.notAvailable as vs0 make tgt.notAvailable as vt0 then hsvcNotAvailable(vs0, vt0)
  "HealthcareService-availabilityExceptions" : for src.availabilityExceptions make tgt.availabilityExceptions
endgroup

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

  "HealthcareService.availableTime-daysOfWeek" : for src.daysOfWeek make tgt.daysOfWeek
  "HealthcareService.availableTime-allDay" : for src.allDay make tgt.allDay
  "HealthcareService.availableTime-availableStartTime" : for src.availableStartTime make tgt.availableStartTime
  "HealthcareService.availableTime-availableEndTime" : for src.availableEndTime make tgt.availableEndTime
endgroup

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

  "HealthcareService.notAvailable-description" : for src.description make tgt.description
  "HealthcareService.notAvailable-during" : for src.during make tgt.during
endgroup