Implementation Guide
23.1.0 - R4 APIs

Publish Box goes here

Resource Profile: AthenaAppointment - Mappings

Active as of 2022-03-01

Mappings for the athena-appointment-profile resource profile.

Mappings for athenaFlow (http://unknown.org/athenaFlow)

AthenaAppointment
AppointmentFHIRR4_APPOINTMENTVIEW
   id%ID%
   meta
      lastUpdated%DB_UPDATED_DATE%
      security (SENSITIVECHART)CheckSensitive(%SENSITIVECHART%)
   extension
   extension (RecallAppointmentId)
   extension (RecallId)
   extension (Booklist)
      value[x]%BOOKLIST%
   identifierMakeIdentifier("U",getSiteSystem("Appointment"),%EXTAPPTID%)
   statusMapCode(%APPTSTATUS%,"APPOINTMENTSTATUS")
   serviceTypeMakeConcept(%TYPEID%,"https://docs.mydata.athenahealth.com/fhir-r4/CodeSystem/athena-appointment-service-type.html",%D_APPTTYPE%)
   reasonCodeMakeTextConcept(%REASON%)
   priority%URGENCY%
   description%D_APPTTYPE%
   startMakeTimestamp(%APPTDATE%,%APPTTIME%)
   endMakeTimestamp(%APPTDATE%,%APPTTIME%,%DURATION%)
   minutesDuration%DURATION%
   comment%COMMENTSANDINSTRUCTIONS%
   participant
   participant (Patient)
      actorMakeReference("PERSON",%PID%,"Patient")
      statusIsStatusCode("tentative",%PARTSTATUS%)
   participant (Practitioner)
      type (T1_Type)MapConcept("PPRF","APPOINTMENTTYPE")
      type (T2_Type)MapConcept(%PRACTTYPECODE%,"C80APPOINTMENTTYPEEMR")
      actorMakeReference("USR",%DOCTORID%,"Practitioner")
      statusIsStatusCode("tentative",%PARTSTATUS%)
   participant (Location)
      actorMakeReference("LOCREG",%LOCATIONID%,"Location")
      statusIsStatusCode("tentative",%PARTSTATUS%)

Mappings for athenaPractice (http://unknown.org/athenaPractice)

AthenaAppointment
AppointmentFHIRR4_APPOINTMENTVIEW
   idMakeIdWithPrefix(%ID%,%ID_PREFIX%)
   meta
      lastUpdated%UPDATED_DATE%
      security (SENSITIVECHART)CheckSensitive(%SENSITIVECHART%)
   extension
   extension (RecallAppointmentId)
      value[x]MakeReference("APPOINTMENT",%RECALLAPPOINTMENTID%,"Appointment")
   extension (RecallId)
      value[x]MakeReference("APPOINTMENT",%RECALLID%,"Appointment")
   identifierMakeIdentifier("U",getSiteSystem("Appointment"),%EXTERNALAPPTID%)
   statusMapCode(%DESCRIPTION%,"APPOINTMENTSTATUS_CPS")
   serviceTypeMakeConceptIgnoringZeroValues(%TYPEID%,"https://docs.mydata.athenahealth.com/fhir-r4/CodeSystem/athena-appointment-service-type.html",%APPTTYPE%)
   reasonCodeMakeTextConcept(%REASON%)
   description%APPTTYPE%
   start%STARTTIME%
   end%ENDTIME%
   minutesDuration%DURATION%
   slotMakeReference(null,%APPTSLOTID%,"Slot")
   comment%REASON%
   participant
   participant (Patient)
      actorMakeReference(null,%PID%,"Patient")
      statusIsStatusCode("tentative",%PARTSTATUS%)
   participant (Practitioner)
      type (T1_Type)MapConcept("PPRF","APPOINTMENTTYPE")
      type (T2_Type)MapConcept(%PRACTTYPECODE%,"C80APPOINTMENTTYPECPS")
      actorMakeReference(null,%DOCTORID%,"Practitioner")
      statusIsStatusCode("tentative",%PARTSTATUS%)
   participant (Location)
      actorMakeReference("LOCREG",%FACILITYID%,"Location")
      statusIsStatusCode("tentative",%PARTSTATUS%)
   participant (Resource)
      typeMapConcept("RESOURCE","PARTICIPANTTYPECPS")
      actorMakeResourceReference(null,%RESOURCEID%,null)
      statusIsStatusCode("tentative",%PARTSTATUS%)

Mappings for Workflow Pattern (http://hl7.org/fhir/workflow)

AthenaAppointment
AppointmentRequest
   identifierRequest.identifier
   statusRequest.status
   serviceTypeRequest.code
   reasonCodeRequest.reasonCode
   reasonReferenceRequest.reasonReference
   priorityRequest.priority
   supportingInformationRequest.supportingInfo
   startRequest.occurrence[x]
   endRequest.occurrence[x]
   minutesDurationRequest.occurrence[x]
   createdRequest.authoredOn
   commentRequest.note
   basedOnRequest.basedOn
   participantRequest.performer, Request.subject
   participant (Patient)Request.performer, Request.subject
   participant (Practitioner)Request.performer, Request.subject
   participant (Location)Request.performer, Request.subject
   participant (Resource)Request.performer, Request.subject
   requestedPeriodRequest.occurrence[x]

Mappings for RIM Mapping (http://hl7.org/v3)

AthenaAppointment
AppointmentEntity. Role, or Act, Act[@moodCode <= 'INT']
   meta
      idn/a
      extensionn/a
   textAct.text?
   containedN/A
   extension
   extension (RecallAppointmentId)
      idn/a
      extensionn/a
      urlN/A
      value[x]N/A
   extension (RecallId)
      idn/a
      extensionn/a
      urlN/A
      value[x]N/A
   extension (Booklist)
      idn/a
      extensionn/a
      urlN/A
      value[x]N/A
   modifierExtensionN/A
   identifier.id
   status.statusCode
   cancelationReasonn/a
   serviceCategoryn/a, might be inferred from the ServiceDeliveryLocation
   serviceTypen/a, might be inferred from the ServiceDeliveryLocation
   specialty.performer.AssignedPerson.code
   appointmentType.code
   reasonCode.reasonCode
   reasonReference.inboundRelationship[@typeCode = 'RSON'].observation
   priority.priorityCode
   description.text
   supportingInformation.inboundRelationship[@typeCode = 'SPRT'].observation
   start.effectiveTime.low
   end.effectiveTime.high
   minutesDuration.activityTime[@xsi:type = ('SXPR_TS', 'PIVL_TS')].width
   slot.outboundRelationship[@typeCode = 'REFR'].act[@classCode = 'ACT'][@moodCode = 'SLOT']
   created.author.time
   comment.subjectOf.observation[@moodCode = 'EVN'][code = 'annotation'].value
   patientInstruction.subjectOf.observation[@moodCode = 'EVN'][code = 'annotation'].value
   basedOn.outboundRelationship[@typeCode = 'FLFS'].act[@classCode < 'ActCareProvisionRequestType'][@moodCode = 'RQO']
   participantperformer | reusableDevice | subject | location
      idn/a
      extensionn/a
      modifierExtensionN/A
      type(performer | reusableDevice | subject | location).@typeCode
      actorperformer.person | reusableDevice.manufacturedDevice | subject.patient | location.serviceDeliveryLocation
      required(performer | reusableDevice | subject | location).@performInd
      status(performer | reusableDevice | subject | location).statusCode
      periodn/a
   participant (Patient)performer | reusableDevice | subject | location
      idn/a
      extensionn/a
      modifierExtensionN/A
      type(performer | reusableDevice | subject | location).@typeCode
      actorperformer.person | reusableDevice.manufacturedDevice | subject.patient | location.serviceDeliveryLocation
      required(performer | reusableDevice | subject | location).@performInd
      status(performer | reusableDevice | subject | location).statusCode
      periodn/a
   participant (Practitioner)performer | reusableDevice | subject | location
      idn/a
      extensionn/a
      modifierExtensionN/A
      type(performer | reusableDevice | subject | location).@typeCode
      type (T1_Type)(performer | reusableDevice | subject | location).@typeCode
      type (T2_Type)(performer | reusableDevice | subject | location).@typeCode
      actorperformer.person | reusableDevice.manufacturedDevice | subject.patient | location.serviceDeliveryLocation
      required(performer | reusableDevice | subject | location).@performInd
      status(performer | reusableDevice | subject | location).statusCode
      periodn/a
   participant (Location)performer | reusableDevice | subject | location
      idn/a
      extensionn/a
      modifierExtensionN/A
      type(performer | reusableDevice | subject | location).@typeCode
      actorperformer.person | reusableDevice.manufacturedDevice | subject.patient | location.serviceDeliveryLocation
      required(performer | reusableDevice | subject | location).@performInd
      status(performer | reusableDevice | subject | location).statusCode
      periodn/a
   participant (Resource)performer | reusableDevice | subject | location
      idn/a
      extensionn/a
      modifierExtensionN/A
      type(performer | reusableDevice | subject | location).@typeCode
      actorperformer.person | reusableDevice.manufacturedDevice | subject.patient | location.serviceDeliveryLocation
      required(performer | reusableDevice | subject | location).@performInd
      status(performer | reusableDevice | subject | location).statusCode
      periodn/a
   requestedPeriod.activityTime[@xsi:type = ('SXPR_TS', 'PIVL_TS')]

Mappings for iCalendar (http://ietf.org/rfc/2445)

AthenaAppointment
AppointmentVEVENT
   identifierUID
   statusSTATUS
   serviceCategoryCATEGORIES
   appointmentTypeCLASSIFICATION
   priorityPRIORITY
   descriptionSUMMARY
   supportingInformationATTACH
   startDTSTART
   endDTEND
   minutesDurationDURATION (e.g. PT15M)
   createdCREATED
   commentDESCRIPTION (for internal use)
   patientInstructionDESCRIPTION (for patient use)
   participantATTENDEE component to be created
      typen/a
      actorATTENDEE: (Need to provide the common name CN and also the MAILTO properties from the practitioner resource) where the participant type is not "information-only"
      requiredROLE=REQ-PARTICIPANT (roleparam)
      statusATTENDEE;CN="John Doe";RSVP=TRUE:mailto:john@doe.com (rsvpparam | partstatparam)
   participant (Patient)ATTENDEE component to be created
      typen/a
      actorATTENDEE: (Need to provide the common name CN and also the MAILTO properties from the practitioner resource) where the participant type is not "information-only"
      requiredROLE=REQ-PARTICIPANT (roleparam)
      statusATTENDEE;CN="John Doe";RSVP=TRUE:mailto:john@doe.com (rsvpparam | partstatparam)
   participant (Practitioner)ATTENDEE component to be created
      typen/a
      type (T1_Type)n/a
      type (T2_Type)n/a
      actorATTENDEE: (Need to provide the common name CN and also the MAILTO properties from the practitioner resource) where the participant type is not "information-only"
      requiredROLE=REQ-PARTICIPANT (roleparam)
      statusATTENDEE;CN="John Doe";RSVP=TRUE:mailto:john@doe.com (rsvpparam | partstatparam)
   participant (Location)ATTENDEE component to be created
      typen/a
      actorATTENDEE: (Need to provide the common name CN and also the MAILTO properties from the practitioner resource) where the participant type is not "information-only"
      requiredROLE=REQ-PARTICIPANT (roleparam)
      statusATTENDEE;CN="John Doe";RSVP=TRUE:mailto:john@doe.com (rsvpparam | partstatparam)
   participant (Resource)ATTENDEE component to be created
      typen/a
      actorATTENDEE: (Need to provide the common name CN and also the MAILTO properties from the practitioner resource) where the participant type is not "information-only"
      requiredROLE=REQ-PARTICIPANT (roleparam)
      statusATTENDEE;CN="John Doe";RSVP=TRUE:mailto:john@doe.com (rsvpparam | partstatparam)

Mappings for FiveWs Pattern Mapping (http://hl7.org/fhir/fivews)

AthenaAppointment
Appointment
   identifierFiveWs.identifier
   statusFiveWs.status
   specialtyFiveWs.class
   priorityFiveWs.class
   supportingInformationFiveWs.context
   startFiveWs.init
   endFiveWs.done[x]
   participant
      actorFiveWs.who
   participant (Patient)
      actorFiveWs.who
   participant (Practitioner)
      actorFiveWs.who
   participant (Location)
      actorFiveWs.who
   participant (Resource)
      actorFiveWs.who

Mappings for HL7 v2 Mapping (http://hl7.org/v2)

AthenaAppointment
Appointment
   identifierSCH-1, SCH-2, ARQ-1, ARQ-2
   statusSCH-25
   appointmentTypeARQ-7
   reasonCodeAIS-3, SCH-7
   priorityARQ-12, SCH-11.6 / TQ1-9
   descriptionNTE-3
   startARQ-11.1, SCH-11.4 / TQ1-7
   endSCH-11.5 / TQ1-8/ calculated based on the start and the duration which is in ARQ-9
   commentNTE-3
   patientInstructionNTE-3
   participantPID, AIP, AIG, AIL
      typeAIP-4, AIG-4
      actorPID-3-Patient ID List | AIL-3 | AIG-3 | AIP-3
      statusAIP-12, AIG-14
   participant (Patient)PID, AIP, AIG, AIL
      typeAIP-4, AIG-4
      actorPID-3-Patient ID List | AIL-3 | AIG-3 | AIP-3
      statusAIP-12, AIG-14
   participant (Practitioner)PID, AIP, AIG, AIL
      typeAIP-4, AIG-4
      type (T1_Type)AIP-4, AIG-4
      type (T2_Type)AIP-4, AIG-4
      actorPID-3-Patient ID List | AIL-3 | AIG-3 | AIP-3
      statusAIP-12, AIG-14
   participant (Location)PID, AIP, AIG, AIL
      typeAIP-4, AIG-4
      actorPID-3-Patient ID List | AIL-3 | AIG-3 | AIP-3
      statusAIP-12, AIG-14
   participant (Resource)PID, AIP, AIG, AIL
      typeAIP-4, AIG-4
      actorPID-3-Patient ID List | AIL-3 | AIG-3 | AIP-3
      statusAIP-12, AIG-14
   requestedPeriodARQ-11