Appointment

The appointment scheduling functionality that is currently supported by the IS-H FHIR interface has a limited scope as it was designed for a very specific use case.

Find free slots

Below is a potential flow of requests to determine free slots. This flow corresponds to the behavior of the IS-H Transaction for visit scheduling.

  1. Search for planning objects with certain criteria
  • Example: Search within a given treatment OU (AUGAMBU)
  • https://[base]Schedule?actor:identifier=https://fhir.exampleHospital/IS-H/fhir/TreatmentOrgUnit|AUGAMBU
  1. Determine free time slots for one of the found schedules
  • Example: Search for free slots for a found schedule:
  • https://[base]/Slot?schedule:identifier=http://https://fhir.exampleHospital/S-H/fhir/Schedule|AUGAMBU-0000000005

Create an appointment

For a given free slot you can book (i.e. create) an appointment via

  • POST https://[base]/Appointment
  • The body shall contain the following elements (see also example here)
    • appointment.status = "booked"
    • appointment.serviceCategory = slot.serviceCategory
    • appointment.supportingInformation = Reference to the organization for which you are booking
    • appointment.start = slot.start
    • appointment.participant = reference to Patient and identifier

Read all appointments for a given patient

This can be done via a search like this:

  • REST Post: https://[base]/Appointment?actor:identifier=http://fhir.exampleHospital/IS-H/fhir/Patient|0002123456

Update an appointment

For updating appointments a limited set of elements is supported:

  • appointment.status
  • appointment.specialty

The following elements can NOT be changed via an appointment update:

  • appointment.start / appointment.end
  • appointment.serviceCategory
  • appointment.supportingInformation
  • appointment.appointmentType.

If you would like to change the currently not supported elements, you have to cancel the appointment instance and create a new instance with the required information.

The Appointment profile that SAP Patient Management supports is the following:

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierS Σ0..*Identifier
statusS Σ ?!1..1codeBinding
cancelationReasonS Σ0..1CodeableConcept
serviceCategoryS Σ0..*CodeableConcept
serviceTypeS Σ0..*CodeableConcept
specialtyS Σ0..*CodeableConceptBinding
appointmentTypeS Σ0..1CodeableConceptBinding
reasonCodeΣ0..*CodeableConceptBinding
reasonReferenceI0..*Reference(Condition | Procedure | Observation | ImmunizationRecommendation)
priorityS0..1unsignedInt
descriptionS0..1string
supportingInformationS I0..*Reference(Resource)
startS Σ0..1instant
endS Σ0..1instant
minutesDurationS0..1positiveInt
slotI0..*Reference(Slot)
created0..1dateTime
comment0..1string
patientInstruction0..1string
basedOnI0..*Reference(ServiceRequest)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
typeΣ0..*CodeableConceptBinding
actorΣ I0..1Reference(Patient | Practitioner | PractitionerRole | RelatedPerson | Device | HealthcareService | Location)
requiredΣ0..1codeBinding
statusΣ1..1codeBinding
periodI0..1Period
requestedPeriodI0..*Period