StructureMap-Appointment5to4B

Sourcehl7.fhir.uv.extensions.r4#1.0.0:FHIR Extensions Pack (v4.0.1)
resourceTypeStructureMap
idAppointment5to4B
canonicalhttp://hl7.org/fhir/StructureMap/Appointment5to4B
version1.0.0
statusactive
publisherHL7 International / FHIR Infrastructure
nameAppointment5to4B
titleFML Conversion for Appointment: R5 to R4B
date2023-03-26T08:47:34+11:00
descriptionFMLConversionforAppointmentR5toR4B
jurisdictionsuv
Usages(none)

    
/// url = 
    
    'http://hl7.org/fhir/StructureMap/Appointment5to4B'

    
/// name = 
    
    'Appointment5to4B'

    
/// title = 
    
    'FML Conversion for Appointment: R5 to R4B'

    
/// status = 
    
    'active'


    conceptmap
     "
AppointmentStatus    " {

      prefix 
s     = "
    http://hl7.org/fhir/appointmentstatus
    "

      prefix 
t     = "
http://hl7.org/fhir/4.3/appointmentstatus    "


  s    :
proposed     -
 t    :
proposed
  s    :
pending     -
 t    :
pending
  s    :
booked     -
 t    :
booked
  s    :
arrived     -
 t    :
arrived
  s    :
fulfilled     -
 t    :
fulfilled
  s    :
cancelled     -
 t    :
cancelled
  s    :
noshow     -
 t    :
noshow
  s    :
"entered-in-error"     -
 t    :
    "
entered-in-error    "

  s    :
"checked-in"     -
 t    :
    "
checked-in    "

  s    :
waitlist     -
 t    :
waitlist
    }


    conceptmap
     "
ParticipationStatus    " {

      prefix 
s     = "
    http://hl7.org/fhir/participationstatus
    "

      prefix 
t     = "
http://hl7.org/fhir/4.3/participationstatus    "


  s    :
accepted     -
 t    :
accepted
  s    :
declined     -
 t    :
declined
  s    :
tentative     -
 t    :
tentative
  s    :
"needs-action"     -
 t    :
    "
needs-action    "

    }


    uses
     "
    http://hl7.org/fhir/StructureDefinition/Appointment
    " 
    alias 
AppointmentR5     as 
    source

    uses
     "
http://hl7.org/fhir/4.3/StructureDefinition/Appointment    " 
    alias 
AppointmentR4B     as 
    target


    imports
     "
http://hl7.org/fhir/StructureMap/*5to4B    "


    group 
Appointment    (
    source
     src
     : 
AppointmentR5,     target
     tgt
     : 
AppointmentR4B    )
     extends 
DomainResource     <<type+>>
     {

  src.identifier    
 ->     
tgt.identifier    ;

  src.status     as 
    v
    
 ->     
tgt.status =     translate
    (
    v
    , 
    '#AppointmentStatus'
    , 
    'code'
    )
    ;

  src.cancellationReason    
 ->     
tgt.cancelationReason    ;

  src.serviceCategory    
 ->     
tgt.serviceCategory    ;
     // 
    src.class -> tgt.class;

  src.serviceType    
 ->     
tgt.serviceType    ;

  src.specialty    
 ->     
tgt.specialty    ;

  src.appointmentType    
 ->     
tgt.appointmentType    ;

  src.reason    
 ->     
tgt.reasonCode    ;

  src.description    
 ->     
tgt.description    ;
     // 
    src.priority -> tgt.priority; // CodeableConcept.text -> unsignedInt ??

  src.supportingInformation    
 ->     
tgt.supportingInformation    ;
     // 
    src.replaces -> tgt.replaces;

  src.start    
 ->     
tgt.start    ;
     // 
    src.previousAppointment -> tgt.previousAppointment;

  src.end    
 ->     
tgt.end    ;

  src.minutesDuration    
 ->     
tgt.minutesDuration    ;

  src.requestedPeriod    
 ->     
tgt.requestedPeriod    ;

  src.slot    
 ->     
tgt.slot    ;

  src.created    
 ->     
tgt.created    ;
     // 
    src.account -> tgt.account;

  src.note    
 ->     
tgt.comment    ;
     // 
    src.cancellationDate -> tgt.cancellationDate;

  src.patientInstruction    
 ->     
tgt.patientInstruction    ;

  src.basedOn    
 ->     
tgt.basedOn    ;

  src.participant     as 
    s
    
 ->     
tgt.participant     as 
    t
     then 
AppointmentParticipant    (
    s
    , 
    t
    )
    ;
     // 
    src.subject -> tgt.subject;

    }


    group 
AppointmentParticipant    (
    source
     src
,     target
     tgt
    )
     extends 
BackboneElement     {

  src.type    
 ->     
tgt.type    ;

  src.period    
 ->     
tgt.period    ;

  src.actor    
 ->     
tgt.actor    ;

  src.required     as 
    s
     where 
required = 'true'    
 ->     
 tgt.required     as 
    t
    , 
 t.value =     'required'
    ;

  src.required     as 
    s
     where 
required = 'false'    
 ->     
 tgt.required     as 
    t
    , 
 t.value =     'optional'
    ;

  src.status     as 
    v
    
 ->     
tgt.status =     translate
    (
    v
    , 
    '#ParticipationStatus'
    , 
    'code'
    )
    ;

    }


  

Produced 06 Apr 2023