Skip to content

HeyDonto FHIR R4 API - Workflow (1.0)

The workflow module focuses on the coordination of activities within and across systems. This includes three primary aspects:

  • How do we ask for another person, device or system to do something?
  • How do we track the linkages and dependencies between activities - actions to their authorizations, complex activities to individual steps, protocols to plans to orders, etc.?
  • How do we define what activities are possible and the expected order and dependencies of the steps within those activities? I.e. process/orchestration definition

Index

Infrastructure:

Scheduling:

Clinical Process:


Introduction

Workflows can be performed through direct posting of resources to a target server (combined with a specific tag), by using the Task resource, through the use of messaging or via FHIR services. This specification includes a workflow page that describes the concepts underlying the discussion of workflows, and points to a number of different communication and architectural workflow patterns.

In addition to the Task resource, this specification defines three logical models - Definition, Request and Event that define the patterns for resources that are typically involved in workflow. These patterns include elements defining common attributes of each type of resource as well as relationships between them. These relationships are summarized on the workflow page, along with a complete list of resources that follow (or are hoped to soon follow) the request and event patterns.

Finally the PlanDefinition and ActivityDefinition resources combine to support the creation of protocols, orders sets, guidelines and other workflow definitions by describing the types of activities that can occur and setting rules about their composition, sequencing, interdependencies and flow.


Common Use Cases

Workflow manifests in many places in the healthcare environment:

  • Creating a lab order, drug prescription, or other clinical order or an insurance claim, enrollment request, Appointment or similar administrative request and asking for it to be actioned by a specific organization or practitioner

  • Negotiating a fulfillment process, such as requesting further information before accepting a claim or referral or proposing an alternative therapy when processing an order

  • Letting an ordering physician know what the current progress is in fulfilling an order (e.g. blood has been drawn, sample is being processed, preliminary results are in, etc.)

  • Defining a plan or recommendation for a set of clinical and/or administrative activities to manage a patient's care and then tracking how those plans and recommendations are (or are not) acted upon over time

  • Communicating a state change to a request or order (e.g. suspension, update, cancellation, etc.) to a fulfilling system so that they can take appropriate action

  • Asking for a state change, requesting the merge of a couple of patients or the invoking of some operation or decision support in an asynchronous manner - for example, one where human intervention is required

  • Designing or adhering to a study protocol, chemotherapy protocol, instantiating an order set or other plan definition

FHIR provides multiple ways to enable these scenarios (and many others). Common mechanisms, along with their pros and cons can be found in the workflow sections on patterns.


Security and Privacy

Resources related to workflow need to adhere to the same security and privacy guidelines that apply to all FHIR resources, including specific considerations for those that may contain personally-identifying information. There are a couple of additional security and privacy considerations specific to workflow:

  1. Some workflows are ad-hoc without pre-defined participants or flows. These can be challenging for security and privacy processes to manage appropriately

  2. Workflow can drive automated behavior. I.e. The mere existence of an electronic record can cause information to flow, procedures to be performed, records to be changed and money to be transferred, potentially without any intervention, oversight or sanity checking by a human being. As such, even greater care must be taken to ensure that:

    • Constraints are placed on what systems (and users) can initiate workflow processes
    • Requests for action are appropriately authenticated before action is taken
    • Patient consents and other relevant policies are enforced either by the system storing the request or the system acting upon it (and that if enforcement is not performed by the actor, that they are confident that relevant policies have been enforced on the request prior to action)

For more general considerations, see the Security and Privacy module.


Developmental Roadmap

Initial work has taken place on aligning most (though not yet all) resources with the Definition, Request and Event patterns. In the lead-up to R5, we'll be moving the alignment checks into the build process and more formally documenting (and potentially reporting) on variations along with their justifications. Further alignment is also possible (where beneficial to implementers). We'll also be examining the potential for exposing alignment with the patterns in a computably useful manner (e.g. as interfaces).

Work will continue on the workflow patterns, including vetting the patterns against various clinical scenarios and enhancing pattern documentation. We also hope to examine both messaging and services in more detail with further guidance about when and how such mechanisms should be used for workflow and how they relate to the Task resource. As well, we'll examine the possibility for developing "standardized" workflows for certain domains and how such patterns might be documented, particularly through the use of the ExampleScenario resource. We will look for implementer feedback to guide this work.

The PlanDefinition and ActivityDefinition resources will continue to evolve based on feedback from the implementer community. We'll explore using them in a variety of ways, including clinical order sets, medication protocols, workflow protocols, clinical pathways, administrative protocols, etc. We hope to develop several example workflow protocols.

Additional topics for future work include:

  • The initial effort to align with workflow patterns has been a bit over-zealous for some resources, resulting in the loss of domain-specific context or occasionally the introduction of elements that might be more properly represented as extensions. In R5, we'll continue to work on improving the balance, ensuring that consistency with patterns does not overshadow the essential requirements for implementer intuitiveness and simplicity

  • Resolving the overlap between the SupplyRequest, DeviceRequest and VisionPrescription resources

  • Improving mapping and alignment of the elements and status codes of the Task resource with the WS-HumanTask specification

  • Creating "best practice" guides for how to implement workflow for different business patterns

  • Examining how workflow is used for compensating actions E.g. account transactions and reversals

Overview
Languages
Servers
Mock server

https://docs.heydonto.com/_mock/apis/fhir/workflow/

Sandbox

https://api-staging.heydonto.com/

Production

https://api.heydonto.com/

Operations
Operations

Request

Security
bearer or bearer
Path
siteIdstringrequired

Site identifier

Query
_countnumber

Number of items to return (default=20).

Example: _count=10
_page_tokenstring

Token for fetching the next page of results.

Example: _page_token=CgYK...
_sortstring

Sort the results by a given field, e.g. _sort=family or _sort=-date.

Example: _sort=family
_elementsstring

Restrict returned fields, e.g. _elements=identifier,name.

Example: _elements=identifier,name
telecomstring

Filter by resource telecom, e.g. date=[SYSTEM]|[VALUE].

Example: telecom=telecom=phone|555-555-5555
_idstring

Search for a specific resource by ID, e.g. _id=abc123.

Example: _id=abc123
identifierstring

Search for resources by identifier token, e.g. identifier=http://hospital.org|12345.

Example: identifier=http://hospital.org|12345
_includeArray of strings

Include related resources, e.g. _include=Appointment:patient.

patientstring

Include related patient resources, e.g. patient=Patient/[id]&.

Example: patient=patient=Patient/[id]&
_revincludeArray of strings

Reverse include related resources, e.g. _revinclude=Observation:subject.

_hasstring

Reverse chaining, e.g. _has:Observation:subject:code=http://loinc.org|1234-5.

Example: _has=Observation:subject:code=http://loinc.org|1234-5
_tagstring

Search by tag on the resource meta, e.g. _tag=http://example.org/tags|sample-tag.

Example: _tag=http://example.org/tags|sample-tag
_securitystring

Search by security label on resource meta, e.g. _security=RBAC|CONFIDENTIAL.

Example: _security=RBAC|CONFIDENTIAL
_profilestring

Search by profile in resource meta, e.g. _profile=http://example.org/fhir/StructureDefinition/custom-profile.

Example: _profile=http://example.org/fhir/StructureDefinition/custom-profile
curl -i -X GET \
  'https://docs.heydonto.com/_mock/apis/fhir/workflow/site/{siteId}/fhir/appointment?_count=10&_page_token=CgYK...&_sort=family&_elements=identifier%2Cname&telecom=telecom%3Dphone%2C555-555-5555&_id=abc123&identifier=http%3A%2F%2Fhospital.org%2C12345&_include=string&patient=patient%3DPatient%2F%5Bid%5D%26&_revinclude=string&_has=Observation%3Asubject%3Acode%3Dhttp%3A%2F%2Floinc.org%2C1234-5&_tag=http%3A%2F%2Fexample.org%2Ftags%2Csample-tag&_security=RBAC%2CCONFIDENTIAL&_profile=http%3A%2F%2Fexample.org%2Ffhir%2FStructureDefinition%2Fcustom-profile' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Bodyapplication/json
resourceTypeanyrequired

This is a Bundle resource

Value"Bundle"
Example: "Bundle"
idstring(id)^[A-Za-z0-9\-\.]{1,64}$

Any combination of letters, numerals, "-" and ".", with a length limit of 64 characters. (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.) Ids are case-insensitive.

Example: "example-id"
metaobject(Meta)

The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.

implicitRulesstring(uri)^\S*$

String of characters used to identify a name or a resource

Example: "https://example.org/resource"
_implicitRulesobject(Element)

Base definition for all elements in a resource.

languagestring(code)^[^\s]+(\s[^\s]+)*$

A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents

Example: "sample-code"
_languageobject(Element)

Base definition for all elements in a resource.

identifierobject(Identifier)

An identifier - identifies some entity uniquely and unambiguously. Typically this is used for business identifiers.

typeany

Indicates the purpose of this bundle - how it is intended to be used.

Enum"document""message""transaction""transaction-response""batch""batch-response""history""searchset""collection"
Example: "searchset"
_typeobject(Element)

Base definition for all elements in a resource.

timestampstring(date-time)(instant)^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-...

An instant in time - known at least to the second

Example: "2024-01-01T00:00:00Z"
_timestampobject(Element)

Base definition for all elements in a resource.

totalnumber(unsignedInt)^[0]|([1-9][0-9]*)$

An integer with a value that is not negative (e.g. >= 0)

Example: 0
_totalobject(Element)

Base definition for all elements in a resource.

linkArray of objects(Bundle_Link)

A series of links that provide context to this bundle.

Example: [{"relation":"search","url":"https://api.heydonto.com/fhir/appointment/?_count=20"},{"relation":"next","url":"https://api.heydonto.com/fhir/appointment/?_count=20&_page_token=TOKEN"},{"relation":"first","url":"https://api.heydonto.com/fhir/appointment/?_count=20"},{"relation":"self","url":"https://api.heydonto.com/fhir/appointment/?_count=20"}]
entryArray of objects(Appointment)

An entry in a bundle resource - will either contain a resource or information about a resource (transactions and history only).

Example: [{"resourceType":"Appointment","id":"example","text":{"status":"generated","div":"<div xmlns=\"http://www.w3.org/1999/xhtml\">Brian MRI results discussion</div>"},"status":"booked","serviceCategory":[{"coding":[{"system":"http://example.org/service-category","code":"gp","display":"General Practice"}]}],"serviceType":[{"coding":[{"code":"52","display":"General Discussion"}]}],"specialty":[{"coding":[{"system":"http://snomed.info/sct","code":"394814009","display":"General practice"}]}],"appointmentType":{"coding":[{"system":"http://terminology.hl7.org/CodeSystem/v2-0276","code":"FOLLOWUP","display":"A follow up visit from a previous appointment"}]},"reasonReference":[{"reference":"Condition/example","display":"Severe burn of left ear"}],"priority":5,"description":"Discussion on the results of your recent MRI","start":"2013-12-10T09:00:00Z","end":"2013-12-10T11:00:00Z","created":"2013-10-10","comment":"Further expand on the results of the MRI and determine the next actions that may be appropriate.","basedOn":[{"reference":"ServiceRequest/myringotomy"}],"participant":[{"actor":{"reference":"Patient/example","display":"Peter James Chalmers"},"required":"required","status":"accepted"},{"type":[{"coding":[{"system":"http://terminology.hl7.org/CodeSystem/v3-ParticipationType","code":"ATND"}]}],"actor":{"reference":"Practitioner/example","display":"Dr Adam Careful"},"required":"required","status":"accepted"},{"actor":{"reference":"Location/1","display":"South Wing, second floor"},"required":"required","status":"accepted"}]}]
signatureobject(Signature)

A signature along with supporting context. The signature may be a digital signature that is cryptographic in nature, or some other signature acceptable to the domain. This other signature may be as simple as a graphical image representing a hand-written signature, or a signature ceremony Different signature approaches have different utilities.

Response
application/json
{ "resourceType": "Bundle", "type": "searchset", "total": 100, "link": [ { … }, { … }, { … }, { … } ], "entry": [ { … } ] }

Request

Security
bearer or bearer
Path
siteIdstringrequired

Site identifier

Bodyapplication/jsonrequired
resourceTypeanyrequired

This is a Appointment resource

Value"Appointment"
Example: "Appointment"
idstring(id)^[A-Za-z0-9\-\.]{1,64}$

Any combination of letters, numerals, "-" and ".", with a length limit of 64 characters. (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.) Ids are case-insensitive.

Example: "example-id"
metaobject(Meta)

The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.

implicitRulesstring(uri)^\S*$

String of characters used to identify a name or a resource

Example: "https://example.org/resource"
_implicitRulesobject(Element)

Base definition for all elements in a resource.

languagestring(code)^[^\s]+(\s[^\s]+)*$

A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents

Example: "sample-code"
_languageobject(Element)

Base definition for all elements in a resource.

textobject(Narrative)

A human-readable summary of the resource conveying the essential clinical and business information for the resource.

containedArray of #Account (object) or #ActivityDefinition (object) or #AdverseEvent (object) or #AllergyIntolerance (object) or #Appointment (object) or #AppointmentResponse (object) or #AuditEvent (object) or #Basic (object) or #Binary (object) or #BiologicallyDerivedProduct (object) or #BodyStructure (object) or #Bundle (object) or #CapabilityStatement (object) or #CarePlan (object) or #CareTeam (object) or #CatalogEntry (object) or #ChargeItem (object) or #ChargeItemDefinition (object) or #Claim (object) or #ClaimResponse (object) or #ClinicalImpression (object) or #CodeSystem (object) or #Communication (object) or #CommunicationRequest (object) or #CompartmentDefinition (object) or #Composition (object) or #ConceptMap (object) or #Condition (object) or #Consent (object) or #Contract (object) or #Coverage (object) or #CoverageEligibilityRequest (object) or #CoverageEligibilityResponse (object) or #DetectedIssue (object) or #Device (object) or #DeviceDefinition (object) or #DeviceMetric (object) or #DeviceRequest (object) or #DeviceUseStatement (object) or #DiagnosticReport (object) or #DocumentManifest (object) or #DocumentReference (object) or #EffectEvidenceSynthesis (object) or #Encounter (object) or #Endpoint (object) or #EnrollmentRequest (object) or #EnrollmentResponse (object) or #EpisodeOfCare (object) or #EventDefinition (object) or #Evidence (object) or #EvidenceVariable (object) or #ExampleScenario (object) or #ExplanationOfBenefit (object) or #FamilyMemberHistory (object) or #Flag (object) or #Goal (object) or #GraphDefinition (object) or #Group (object) or #GuidanceResponse (object) or #HealthcareService (object) or #ImagingStudy (object) or #Immunization (object) or #ImmunizationEvaluation (object) or #ImmunizationRecommendation (object) or #ImplementationGuide (object) or #InsurancePlan (object) or #Invoice (object) or #Library (object) or #Linkage (object) or #List (object) or #Location (object) or #Measure (object) or #MeasureReport (object) or #Media (object) or #Medication (object) or #MedicationAdministration (object) or #MedicationDispense (object) or #MedicationKnowledge (object) or #MedicationRequest (object) or #MedicationStatement (object) or #MedicinalProduct (object) or #MedicinalProductAuthorization (object) or #MedicinalProductContraindication (object) or #MedicinalProductIndication (object) or #MedicinalProductIngredient (object) or #MedicinalProductInteraction (object) or #MedicinalProductManufactured (object) or #MedicinalProductPackaged (object) or #MedicinalProductPharmaceutical (object) or #MedicinalProductUndesirableEffect (object) or #MessageDefinition (object) or #MessageHeader (object) or #MolecularSequence (object) or #NamingSystem (object) or #NutritionOrder (object) or #Observation (object) or #ObservationDefinition (object) or #OperationDefinition (object) or #OperationOutcome (object) or #Organization (object) or #OrganizationAffiliation (object) or #Parameters (object) or #Patient (object) or #PaymentNotice (object) or #PaymentReconciliation (object) or #Person (object) or #PlanDefinition (object) or #Practitioner (object) or #PractitionerRole (object) or #Procedure (object) or #Provenance (object) or #Questionnaire (object) or #QuestionnaireResponse (object) or #RelatedPerson (object) or #RequestGroup (object) or #ResearchDefinition (object) or #ResearchElementDefinition (object) or #ResearchStudy (object) or #ResearchSubject (object) or #RiskAssessment (object) or #RiskEvidenceSynthesis (object) or #Schedule (object) or #SearchParameter (object) or #ServiceRequest (object) or #Slot (object) or #Specimen (object) or #SpecimenDefinition (object) or #StructureDefinition (object) or #StructureMap (object) or #Subscription (object) or #Substance (object) or #SubstanceNucleicAcid (object) or #SubstancePolymer (object) or #SubstanceProtein (object) or #SubstanceReferenceInformation (object) or #SubstanceSourceMaterial (object) or #SubstanceSpecification (object) or #SupplyDelivery (object) or #SupplyRequest (object) or #Task (object) or #TerminologyCapabilities (object) or #TestReport (object) or #TestScript (object) or #ValueSet (object) or #VerificationResult (object) or #VisionPrescription (object)(ResourceList)

These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.

extensionArray of objects(Extension)

May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

modifierExtensionArray of objects(Extension)

May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

identifierArray of objects(Identifier)

This records identifiers associated with this appointment concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).

statusany

The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status.

Enum"proposed""pending""booked""arrived""fulfilled""cancelled""noshow""entered-in-error""checked-in""waitlist"
Example: "booked"
_statusobject(Element)

Base definition for all elements in a resource.

cancelationReasonobject(CodeableConcept)

A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.

serviceCategoryArray of objects(CodeableConcept)

A broad categorization of the service that is to be performed during this appointment.

Example: [{"coding":[{"system":"http://example.org/service-category","code":"gp","display":"General Practice"}]}]
serviceTypeArray of objects(CodeableConcept)

The specific service that is to be performed during this appointment.

Example: [{"coding":[{"code":"52","display":"General Discussion"}]}]
specialtyArray of objects(CodeableConcept)

The specialty of a practitioner that would be required to perform the service requested in this appointment.

Example: [{"coding":[{"system":"http://snomed.info/sct","code":"394814009","display":"General practice"}]}]
appointmentTypeobject(CodeableConcept)

A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.

reasonCodeArray of objects(CodeableConcept)

The coded reason that this appointment is being scheduled. This is more clinical than administrative.

reasonReferenceArray of objects(Reference)

Reason the appointment has been scheduled to take place, as specified using information from another resource. When the patient arrives and the encounter begins it may be used as the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.

Example: [{"reference":"Condition/example","display":"Severe burn of left ear"}]
prioritynumber(unsignedInt)^[0]|([1-9][0-9]*)$

An integer with a value that is not negative (e.g. >= 0)

Example: 0
_priorityobject(Element)

Base definition for all elements in a resource.

descriptionstring(string)^[ \r\n\t\S]+$

A sequence of Unicode characters

Example: "example-string"
_descriptionobject(Element)

Base definition for all elements in a resource.

supportingInformationArray of objects(Reference)

Additional information to support the appointment provided when making the appointment.

startstring(date-time)(instant)^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-...

An instant in time - known at least to the second

Example: "2024-01-01T00:00:00Z"
_startobject(Element)

Base definition for all elements in a resource.

endstring(date-time)(instant)^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-...

An instant in time - known at least to the second

Example: "2024-01-01T00:00:00Z"
_endobject(Element)

Base definition for all elements in a resource.

minutesDurationnumber(positiveInt)^[1-9][0-9]*$

An integer with a value that is positive (e.g. >0)

Example: 1
_minutesDurationobject(Element)

Base definition for all elements in a resource.

slotArray of objects(Reference)

The slots from the participants' schedules that will be filled by the appointment.

createdstring(date-time)(dateTime)^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-...

A date, date-time or partial date (e.g. just year or year + month). If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored. Dates SHALL be valid dates.

Example: "2024-01-01T00:00:00Z"
_createdobject(Element)

Base definition for all elements in a resource.

commentstring(string)^[ \r\n\t\S]+$

A sequence of Unicode characters

Example: "example-string"
_commentobject(Element)

Base definition for all elements in a resource.

patientInstructionstring(string)^[ \r\n\t\S]+$

A sequence of Unicode characters

Example: "example-string"
_patientInstructionobject(Element)

Base definition for all elements in a resource.

basedOnArray of objects(Reference)

The service request this appointment is allocated to assess (e.g. incoming referral or procedure request).

Example: [{"reference":"ServiceRequest/myringotomy"}]
participantArray of objects(Appointment_Participant)required

List of participants involved in the appointment.

Example: [{"actor":{"reference":"Patient/example","display":"Peter James Chalmers"},"required":"required","status":"accepted"},{"type":[{"coding":[{"system":"http://terminology.hl7.org/CodeSystem/v3-ParticipationType","code":"ATND"}]}],"actor":{"reference":"Practitioner/example","display":"Dr Adam Careful"},"required":"required","status":"accepted"},{"actor":{"reference":"Location/1","display":"South Wing, second floor"},"required":"required","status":"accepted"}]
participant[].​idstring

An extension object type #string.

Example: "example-string"
participant[].​extensionArray of objects(#Extension)

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

participant[].​modifierExtensionArray of objects(#Extension)

May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

participant[].​typeArray of objects(#CodeableConcept)

Role of participant in the appointment.

participant[].​actorobject(#Reference)

An extension object type #Reference.

participant[].​requiredany

Whether this participant is required to be present at the meeting. This covers a use-case where two doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present.

Enum"required""optional""information-only"
Example: "required"
participant[].​_requiredobject(#Element)

An extension object type #Element.

participant[].​statusany

Participation status of the actor.

Enum"accepted""declined""tentative""needs-action"
Example: "accepted"
participant[].​_statusobject(#Element)

An extension object type #Element.

participant[].​periodobject(#Period)

An extension object type #Period.

requestedPeriodArray of objects(Period)

A set of date ranges (potentially including times) that the appointment is preferred to be scheduled within.

The duration (usually in minutes) could also be provided to indicate the length of the appointment to fill and populate the start/end times for the actual allocated time. However, in other situations the duration may be calculated by the scheduling system.

curl -i -X POST \
  'https://docs.heydonto.com/_mock/apis/fhir/workflow/site/{siteId}/fhir/appointment' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "resourceType": "Appointment",
    "id": "example",
    "text": {
      "status": "generated",
      "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Brian MRI results discussion</div>"
    },
    "status": "booked",
    "serviceCategory": [
      {
        "coding": [
          {
            "system": "http://example.org/service-category",
            "code": "gp",
            "display": "General Practice"
          }
        ]
      }
    ],
    "serviceType": [
      {
        "coding": [
          {
            "code": "52",
            "display": "General Discussion"
          }
        ]
      }
    ],
    "specialty": [
      {
        "coding": [
          {
            "system": "http://snomed.info/sct",
            "code": "394814009",
            "display": "General practice"
          }
        ]
      }
    ],
    "appointmentType": {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/v2-0276",
          "code": "FOLLOWUP",
          "display": "A follow up visit from a previous appointment"
        }
      ]
    },
    "reasonReference": [
      {
        "reference": "Condition/example",
        "display": "Severe burn of left ear"
      }
    ],
    "priority": 5,
    "description": "Discussion on the results of your recent MRI",
    "start": "2013-12-10T09:00:00Z",
    "end": "2013-12-10T11:00:00Z",
    "created": "2013-10-10",
    "comment": "Further expand on the results of the MRI and determine the next actions that may be appropriate.",
    "basedOn": [
      {
        "reference": "ServiceRequest/myringotomy"
      }
    ],
    "participant": [
      {
        "actor": {
          "reference": "Patient/example",
          "display": "Peter James Chalmers"
        },
        "required": "required",
        "status": "accepted"
      },
      {
        "type": [
          {
            "coding": [
              {
                "system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
                "code": "ATND"
              }
            ]
          }
        ],
        "actor": {
          "reference": "Practitioner/example",
          "display": "Dr Adam Careful"
        },
        "required": "required",
        "status": "accepted"
      },
      {
        "actor": {
          "reference": "Location/1",
          "display": "South Wing, second floor"
        },
        "required": "required",
        "status": "accepted"
      }
    ]
  }'

Responses

Bodyapplication/json
resourceTypeanyrequired

This is a Appointment resource

Value"Appointment"
Example: "Appointment"
idstring(id)^[A-Za-z0-9\-\.]{1,64}$

Any combination of letters, numerals, "-" and ".", with a length limit of 64 characters. (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.) Ids are case-insensitive.

Example: "example-id"
metaobject(Meta)

The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.

implicitRulesstring(uri)^\S*$

String of characters used to identify a name or a resource

Example: "https://example.org/resource"
_implicitRulesobject(Element)

Base definition for all elements in a resource.

languagestring(code)^[^\s]+(\s[^\s]+)*$

A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents

Example: "sample-code"
_languageobject(Element)

Base definition for all elements in a resource.

textobject(Narrative)

A human-readable summary of the resource conveying the essential clinical and business information for the resource.

containedArray of #Account (object) or #ActivityDefinition (object) or #AdverseEvent (object) or #AllergyIntolerance (object) or #Appointment (object) or #AppointmentResponse (object) or #AuditEvent (object) or #Basic (object) or #Binary (object) or #BiologicallyDerivedProduct (object) or #BodyStructure (object) or #Bundle (object) or #CapabilityStatement (object) or #CarePlan (object) or #CareTeam (object) or #CatalogEntry (object) or #ChargeItem (object) or #ChargeItemDefinition (object) or #Claim (object) or #ClaimResponse (object) or #ClinicalImpression (object) or #CodeSystem (object) or #Communication (object) or #CommunicationRequest (object) or #CompartmentDefinition (object) or #Composition (object) or #ConceptMap (object) or #Condition (object) or #Consent (object) or #Contract (object) or #Coverage (object) or #CoverageEligibilityRequest (object) or #CoverageEligibilityResponse (object) or #DetectedIssue (object) or #Device (object) or #DeviceDefinition (object) or #DeviceMetric (object) or #DeviceRequest (object) or #DeviceUseStatement (object) or #DiagnosticReport (object) or #DocumentManifest (object) or #DocumentReference (object) or #EffectEvidenceSynthesis (object) or #Encounter (object) or #Endpoint (object) or #EnrollmentRequest (object) or #EnrollmentResponse (object) or #EpisodeOfCare (object) or #EventDefinition (object) or #Evidence (object) or #EvidenceVariable (object) or #ExampleScenario (object) or #ExplanationOfBenefit (object) or #FamilyMemberHistory (object) or #Flag (object) or #Goal (object) or #GraphDefinition (object) or #Group (object) or #GuidanceResponse (object) or #HealthcareService (object) or #ImagingStudy (object) or #Immunization (object) or #ImmunizationEvaluation (object) or #ImmunizationRecommendation (object) or #ImplementationGuide (object) or #InsurancePlan (object) or #Invoice (object) or #Library (object) or #Linkage (object) or #List (object) or #Location (object) or #Measure (object) or #MeasureReport (object) or #Media (object) or #Medication (object) or #MedicationAdministration (object) or #MedicationDispense (object) or #MedicationKnowledge (object) or #MedicationRequest (object) or #MedicationStatement (object) or #MedicinalProduct (object) or #MedicinalProductAuthorization (object) or #MedicinalProductContraindication (object) or #MedicinalProductIndication (object) or #MedicinalProductIngredient (object) or #MedicinalProductInteraction (object) or #MedicinalProductManufactured (object) or #MedicinalProductPackaged (object) or #MedicinalProductPharmaceutical (object) or #MedicinalProductUndesirableEffect (object) or #MessageDefinition (object) or #MessageHeader (object) or #MolecularSequence (object) or #NamingSystem (object) or #NutritionOrder (object) or #Observation (object) or #ObservationDefinition (object) or #OperationDefinition (object) or #OperationOutcome (object) or #Organization (object) or #OrganizationAffiliation (object) or #Parameters (object) or #Patient (object) or #PaymentNotice (object) or #PaymentReconciliation (object) or #Person (object) or #PlanDefinition (object) or #Practitioner (object) or #PractitionerRole (object) or #Procedure (object) or #Provenance (object) or #Questionnaire (object) or #QuestionnaireResponse (object) or #RelatedPerson (object) or #RequestGroup (object) or #ResearchDefinition (object) or #ResearchElementDefinition (object) or #ResearchStudy (object) or #ResearchSubject (object) or #RiskAssessment (object) or #RiskEvidenceSynthesis (object) or #Schedule (object) or #SearchParameter (object) or #ServiceRequest (object) or #Slot (object) or #Specimen (object) or #SpecimenDefinition (object) or #StructureDefinition (object) or #StructureMap (object) or #Subscription (object) or #Substance (object) or #SubstanceNucleicAcid (object) or #SubstancePolymer (object) or #SubstanceProtein (object) or #SubstanceReferenceInformation (object) or #SubstanceSourceMaterial (object) or #SubstanceSpecification (object) or #SupplyDelivery (object) or #SupplyRequest (object) or #Task (object) or #TerminologyCapabilities (object) or #TestReport (object) or #TestScript (object) or #ValueSet (object) or #VerificationResult (object) or #VisionPrescription (object)(ResourceList)

These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.

extensionArray of objects(Extension)

May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

modifierExtensionArray of objects(Extension)

May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

identifierArray of objects(Identifier)

This records identifiers associated with this appointment concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).

statusany

The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status.

Enum"proposed""pending""booked""arrived""fulfilled""cancelled""noshow""entered-in-error""checked-in""waitlist"
Example: "booked"
_statusobject(Element)

Base definition for all elements in a resource.

cancelationReasonobject(CodeableConcept)

A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.

serviceCategoryArray of objects(CodeableConcept)

A broad categorization of the service that is to be performed during this appointment.

Example: [{"coding":[{"system":"http://example.org/service-category","code":"gp","display":"General Practice"}]}]
serviceTypeArray of objects(CodeableConcept)

The specific service that is to be performed during this appointment.

Example: [{"coding":[{"code":"52","display":"General Discussion"}]}]
specialtyArray of objects(CodeableConcept)

The specialty of a practitioner that would be required to perform the service requested in this appointment.

Example: [{"coding":[{"system":"http://snomed.info/sct","code":"394814009","display":"General practice"}]}]
appointmentTypeobject(CodeableConcept)

A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.

reasonCodeArray of objects(CodeableConcept)

The coded reason that this appointment is being scheduled. This is more clinical than administrative.

reasonReferenceArray of objects(Reference)

Reason the appointment has been scheduled to take place, as specified using information from another resource. When the patient arrives and the encounter begins it may be used as the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.

Example: [{"reference":"Condition/example","display":"Severe burn of left ear"}]
prioritynumber(unsignedInt)^[0]|([1-9][0-9]*)$

An integer with a value that is not negative (e.g. >= 0)

Example: 0
_priorityobject(Element)

Base definition for all elements in a resource.

descriptionstring(string)^[ \r\n\t\S]+$

A sequence of Unicode characters

Example: "example-string"
_descriptionobject(Element)

Base definition for all elements in a resource.

supportingInformationArray of objects(Reference)

Additional information to support the appointment provided when making the appointment.

startstring(date-time)(instant)^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-...

An instant in time - known at least to the second

Example: "2024-01-01T00:00:00Z"
_startobject(Element)

Base definition for all elements in a resource.

endstring(date-time)(instant)^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-...

An instant in time - known at least to the second

Example: "2024-01-01T00:00:00Z"
_endobject(Element)

Base definition for all elements in a resource.

minutesDurationnumber(positiveInt)^[1-9][0-9]*$

An integer with a value that is positive (e.g. >0)

Example: 1
_minutesDurationobject(Element)

Base definition for all elements in a resource.

slotArray of objects(Reference)

The slots from the participants' schedules that will be filled by the appointment.

createdstring(date-time)(dateTime)^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-...

A date, date-time or partial date (e.g. just year or year + month). If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored. Dates SHALL be valid dates.

Example: "2024-01-01T00:00:00Z"
_createdobject(Element)

Base definition for all elements in a resource.

commentstring(string)^[ \r\n\t\S]+$

A sequence of Unicode characters

Example: "example-string"
_commentobject(Element)

Base definition for all elements in a resource.

patientInstructionstring(string)^[ \r\n\t\S]+$

A sequence of Unicode characters

Example: "example-string"
_patientInstructionobject(Element)

Base definition for all elements in a resource.

basedOnArray of objects(Reference)

The service request this appointment is allocated to assess (e.g. incoming referral or procedure request).

Example: [{"reference":"ServiceRequest/myringotomy"}]
participantArray of objects(Appointment_Participant)required

List of participants involved in the appointment.

Example: [{"actor":{"reference":"Patient/example","display":"Peter James Chalmers"},"required":"required","status":"accepted"},{"type":[{"coding":[{"system":"http://terminology.hl7.org/CodeSystem/v3-ParticipationType","code":"ATND"}]}],"actor":{"reference":"Practitioner/example","display":"Dr Adam Careful"},"required":"required","status":"accepted"},{"actor":{"reference":"Location/1","display":"South Wing, second floor"},"required":"required","status":"accepted"}]
participant[].​idstring

An extension object type #string.

Example: "example-string"
participant[].​extensionArray of objects(#Extension)

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

participant[].​modifierExtensionArray of objects(#Extension)

May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

participant[].​typeArray of objects(#CodeableConcept)

Role of participant in the appointment.

participant[].​actorobject(#Reference)

An extension object type #Reference.

participant[].​requiredany

Whether this participant is required to be present at the meeting. This covers a use-case where two doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present.

Enum"required""optional""information-only"
Example: "required"
participant[].​_requiredobject(#Element)

An extension object type #Element.

participant[].​statusany

Participation status of the actor.

Enum"accepted""declined""tentative""needs-action"
Example: "accepted"
participant[].​_statusobject(#Element)

An extension object type #Element.

participant[].​periodobject(#Period)

An extension object type #Period.

requestedPeriodArray of objects(Period)

A set of date ranges (potentially including times) that the appointment is preferred to be scheduled within.

The duration (usually in minutes) could also be provided to indicate the length of the appointment to fill and populate the start/end times for the actual allocated time. However, in other situations the duration may be calculated by the scheduling system.

Response
application/json
{ "resourceType": "Appointment", "id": "example", "text": { "status": "generated", "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Brian MRI results discussion</div>" }, "status": "booked", "serviceCategory": [ { … } ], "serviceType": [ { … } ], "specialty": [ { … } ], "appointmentType": { "coding": [ … ] }, "reasonReference": [ { … } ], "priority": 5, "description": "Discussion on the results of your recent MRI", "start": "2013-12-10T09:00:00Z", "end": "2013-12-10T11:00:00Z", "created": "2013-10-10", "comment": "Further expand on the results of the MRI and determine the next actions that may be appropriate.", "basedOn": [ { … } ], "participant": [ { … }, { … }, { … } ] }

Request

Security
bearer or bearer
Path
idstringrequired

ID of the Appointment

siteIdstringrequired

Site identifier

curl -i -X GET \
  'https://docs.heydonto.com/_mock/apis/fhir/workflow/site/{siteId}/fhir/appointment/{id}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Bodyapplication/json
resourceTypeanyrequired

This is a Appointment resource

Value"Appointment"
Example: "Appointment"
idstring(id)^[A-Za-z0-9\-\.]{1,64}$

Any combination of letters, numerals, "-" and ".", with a length limit of 64 characters. (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.) Ids are case-insensitive.

Example: "example-id"
metaobject(Meta)

The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.

implicitRulesstring(uri)^\S*$

String of characters used to identify a name or a resource

Example: "https://example.org/resource"
_implicitRulesobject(Element)

Base definition for all elements in a resource.

languagestring(code)^[^\s]+(\s[^\s]+)*$

A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents

Example: "sample-code"
_languageobject(Element)

Base definition for all elements in a resource.

textobject(Narrative)

A human-readable summary of the resource conveying the essential clinical and business information for the resource.

containedArray of #Account (object) or #ActivityDefinition (object) or #AdverseEvent (object) or #AllergyIntolerance (object) or #Appointment (object) or #AppointmentResponse (object) or #AuditEvent (object) or #Basic (object) or #Binary (object) or #BiologicallyDerivedProduct (object) or #BodyStructure (object) or #Bundle (object) or #CapabilityStatement (object) or #CarePlan (object) or #CareTeam (object) or #CatalogEntry (object) or #ChargeItem (object) or #ChargeItemDefinition (object) or #Claim (object) or #ClaimResponse (object) or #ClinicalImpression (object) or #CodeSystem (object) or #Communication (object) or #CommunicationRequest (object) or #CompartmentDefinition (object) or #Composition (object) or #ConceptMap (object) or #Condition (object) or #Consent (object) or #Contract (object) or #Coverage (object) or #CoverageEligibilityRequest (object) or #CoverageEligibilityResponse (object) or #DetectedIssue (object) or #Device (object) or #DeviceDefinition (object) or #DeviceMetric (object) or #DeviceRequest (object) or #DeviceUseStatement (object) or #DiagnosticReport (object) or #DocumentManifest (object) or #DocumentReference (object) or #EffectEvidenceSynthesis (object) or #Encounter (object) or #Endpoint (object) or #EnrollmentRequest (object) or #EnrollmentResponse (object) or #EpisodeOfCare (object) or #EventDefinition (object) or #Evidence (object) or #EvidenceVariable (object) or #ExampleScenario (object) or #ExplanationOfBenefit (object) or #FamilyMemberHistory (object) or #Flag (object) or #Goal (object) or #GraphDefinition (object) or #Group (object) or #GuidanceResponse (object) or #HealthcareService (object) or #ImagingStudy (object) or #Immunization (object) or #ImmunizationEvaluation (object) or #ImmunizationRecommendation (object) or #ImplementationGuide (object) or #InsurancePlan (object) or #Invoice (object) or #Library (object) or #Linkage (object) or #List (object) or #Location (object) or #Measure (object) or #MeasureReport (object) or #Media (object) or #Medication (object) or #MedicationAdministration (object) or #MedicationDispense (object) or #MedicationKnowledge (object) or #MedicationRequest (object) or #MedicationStatement (object) or #MedicinalProduct (object) or #MedicinalProductAuthorization (object) or #MedicinalProductContraindication (object) or #MedicinalProductIndication (object) or #MedicinalProductIngredient (object) or #MedicinalProductInteraction (object) or #MedicinalProductManufactured (object) or #MedicinalProductPackaged (object) or #MedicinalProductPharmaceutical (object) or #MedicinalProductUndesirableEffect (object) or #MessageDefinition (object) or #MessageHeader (object) or #MolecularSequence (object) or #NamingSystem (object) or #NutritionOrder (object) or #Observation (object) or #ObservationDefinition (object) or #OperationDefinition (object) or #OperationOutcome (object) or #Organization (object) or #OrganizationAffiliation (object) or #Parameters (object) or #Patient (object) or #PaymentNotice (object) or #PaymentReconciliation (object) or #Person (object) or #PlanDefinition (object) or #Practitioner (object) or #PractitionerRole (object) or #Procedure (object) or #Provenance (object) or #Questionnaire (object) or #QuestionnaireResponse (object) or #RelatedPerson (object) or #RequestGroup (object) or #ResearchDefinition (object) or #ResearchElementDefinition (object) or #ResearchStudy (object) or #ResearchSubject (object) or #RiskAssessment (object) or #RiskEvidenceSynthesis (object) or #Schedule (object) or #SearchParameter (object) or #ServiceRequest (object) or #Slot (object) or #Specimen (object) or #SpecimenDefinition (object) or #StructureDefinition (object) or #StructureMap (object) or #Subscription (object) or #Substance (object) or #SubstanceNucleicAcid (object) or #SubstancePolymer (object) or #SubstanceProtein (object) or #SubstanceReferenceInformation (object) or #SubstanceSourceMaterial (object) or #SubstanceSpecification (object) or #SupplyDelivery (object) or #SupplyRequest (object) or #Task (object) or #TerminologyCapabilities (object) or #TestReport (object) or #TestScript (object) or #ValueSet (object) or #VerificationResult (object) or #VisionPrescription (object)(ResourceList)

These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.

extensionArray of objects(Extension)

May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

modifierExtensionArray of objects(Extension)

May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

identifierArray of objects(Identifier)

This records identifiers associated with this appointment concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).

statusany

The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status.

Enum"proposed""pending""booked""arrived""fulfilled""cancelled""noshow""entered-in-error""checked-in""waitlist"
Example: "booked"
_statusobject(Element)

Base definition for all elements in a resource.

cancelationReasonobject(CodeableConcept)

A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.

serviceCategoryArray of objects(CodeableConcept)

A broad categorization of the service that is to be performed during this appointment.

Example: [{"coding":[{"system":"http://example.org/service-category","code":"gp","display":"General Practice"}]}]
serviceTypeArray of objects(CodeableConcept)

The specific service that is to be performed during this appointment.

Example: [{"coding":[{"code":"52","display":"General Discussion"}]}]
specialtyArray of objects(CodeableConcept)

The specialty of a practitioner that would be required to perform the service requested in this appointment.

Example: [{"coding":[{"system":"http://snomed.info/sct","code":"394814009","display":"General practice"}]}]
appointmentTypeobject(CodeableConcept)

A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.

reasonCodeArray of objects(CodeableConcept)

The coded reason that this appointment is being scheduled. This is more clinical than administrative.

reasonReferenceArray of objects(Reference)

Reason the appointment has been scheduled to take place, as specified using information from another resource. When the patient arrives and the encounter begins it may be used as the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.

Example: [{"reference":"Condition/example","display":"Severe burn of left ear"}]
prioritynumber(unsignedInt)^[0]|([1-9][0-9]*)$

An integer with a value that is not negative (e.g. >= 0)

Example: 0
_priorityobject(Element)

Base definition for all elements in a resource.

descriptionstring(string)^[ \r\n\t\S]+$

A sequence of Unicode characters

Example: "example-string"
_descriptionobject(Element)

Base definition for all elements in a resource.

supportingInformationArray of objects(Reference)

Additional information to support the appointment provided when making the appointment.

startstring(date-time)(instant)^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-...

An instant in time - known at least to the second

Example: "2024-01-01T00:00:00Z"
_startobject(Element)

Base definition for all elements in a resource.

endstring(date-time)(instant)^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-...

An instant in time - known at least to the second

Example: "2024-01-01T00:00:00Z"
_endobject(Element)

Base definition for all elements in a resource.

minutesDurationnumber(positiveInt)^[1-9][0-9]*$

An integer with a value that is positive (e.g. >0)

Example: 1
_minutesDurationobject(Element)

Base definition for all elements in a resource.

slotArray of objects(Reference)

The slots from the participants' schedules that will be filled by the appointment.

createdstring(date-time)(dateTime)^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-...

A date, date-time or partial date (e.g. just year or year + month). If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored. Dates SHALL be valid dates.

Example: "2024-01-01T00:00:00Z"
_createdobject(Element)

Base definition for all elements in a resource.

commentstring(string)^[ \r\n\t\S]+$

A sequence of Unicode characters

Example: "example-string"
_commentobject(Element)

Base definition for all elements in a resource.

patientInstructionstring(string)^[ \r\n\t\S]+$

A sequence of Unicode characters

Example: "example-string"
_patientInstructionobject(Element)

Base definition for all elements in a resource.

basedOnArray of objects(Reference)

The service request this appointment is allocated to assess (e.g. incoming referral or procedure request).

Example: [{"reference":"ServiceRequest/myringotomy"}]
participantArray of objects(Appointment_Participant)required

List of participants involved in the appointment.

Example: [{"actor":{"reference":"Patient/example","display":"Peter James Chalmers"},"required":"required","status":"accepted"},{"type":[{"coding":[{"system":"http://terminology.hl7.org/CodeSystem/v3-ParticipationType","code":"ATND"}]}],"actor":{"reference":"Practitioner/example","display":"Dr Adam Careful"},"required":"required","status":"accepted"},{"actor":{"reference":"Location/1","display":"South Wing, second floor"},"required":"required","status":"accepted"}]
participant[].​idstring

An extension object type #string.

Example: "example-string"
participant[].​extensionArray of objects(#Extension)

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

participant[].​modifierExtensionArray of objects(#Extension)

May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

participant[].​typeArray of objects(#CodeableConcept)

Role of participant in the appointment.

participant[].​actorobject(#Reference)

An extension object type #Reference.

participant[].​requiredany

Whether this participant is required to be present at the meeting. This covers a use-case where two doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present.

Enum"required""optional""information-only"
Example: "required"
participant[].​_requiredobject(#Element)

An extension object type #Element.

participant[].​statusany

Participation status of the actor.

Enum"accepted""declined""tentative""needs-action"
Example: "accepted"
participant[].​_statusobject(#Element)

An extension object type #Element.

participant[].​periodobject(#Period)

An extension object type #Period.

requestedPeriodArray of objects(Period)

A set of date ranges (potentially including times) that the appointment is preferred to be scheduled within.

The duration (usually in minutes) could also be provided to indicate the length of the appointment to fill and populate the start/end times for the actual allocated time. However, in other situations the duration may be calculated by the scheduling system.

Response
application/json
{ "resourceType": "Appointment", "id": "example", "text": { "status": "generated", "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Brian MRI results discussion</div>" }, "status": "booked", "serviceCategory": [ { … } ], "serviceType": [ { … } ], "specialty": [ { … } ], "appointmentType": { "coding": [ … ] }, "reasonReference": [ { … } ], "priority": 5, "description": "Discussion on the results of your recent MRI", "start": "2013-12-10T09:00:00Z", "end": "2013-12-10T11:00:00Z", "created": "2013-10-10", "comment": "Further expand on the results of the MRI and determine the next actions that may be appropriate.", "basedOn": [ { … } ], "participant": [ { … }, { … }, { … } ] }

Request

Security
bearer or bearer
Path
siteIdstringrequired

Site identifier

idstringrequired

ID of the Appointment to update

Bodyapplication/jsonrequired
resourceTypeanyrequired

This is a Appointment resource

Value"Appointment"
Example: "Appointment"
idstring(id)^[A-Za-z0-9\-\.]{1,64}$

Any combination of letters, numerals, "-" and ".", with a length limit of 64 characters. (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.) Ids are case-insensitive.

Example: "example-id"
metaobject(Meta)

The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.

implicitRulesstring(uri)^\S*$

String of characters used to identify a name or a resource

Example: "https://example.org/resource"
_implicitRulesobject(Element)

Base definition for all elements in a resource.

languagestring(code)^[^\s]+(\s[^\s]+)*$

A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents

Example: "sample-code"
_languageobject(Element)

Base definition for all elements in a resource.

textobject(Narrative)

A human-readable summary of the resource conveying the essential clinical and business information for the resource.

containedArray of #Account (object) or #ActivityDefinition (object) or #AdverseEvent (object) or #AllergyIntolerance (object) or #Appointment (object) or #AppointmentResponse (object) or #AuditEvent (object) or #Basic (object) or #Binary (object) or #BiologicallyDerivedProduct (object) or #BodyStructure (object) or #Bundle (object) or #CapabilityStatement (object) or #CarePlan (object) or #CareTeam (object) or #CatalogEntry (object) or #ChargeItem (object) or #ChargeItemDefinition (object) or #Claim (object) or #ClaimResponse (object) or #ClinicalImpression (object) or #CodeSystem (object) or #Communication (object) or #CommunicationRequest (object) or #CompartmentDefinition (object) or #Composition (object) or #ConceptMap (object) or #Condition (object) or #Consent (object) or #Contract (object) or #Coverage (object) or #CoverageEligibilityRequest (object) or #CoverageEligibilityResponse (object) or #DetectedIssue (object) or #Device (object) or #DeviceDefinition (object) or #DeviceMetric (object) or #DeviceRequest (object) or #DeviceUseStatement (object) or #DiagnosticReport (object) or #DocumentManifest (object) or #DocumentReference (object) or #EffectEvidenceSynthesis (object) or #Encounter (object) or #Endpoint (object) or #EnrollmentRequest (object) or #EnrollmentResponse (object) or #EpisodeOfCare (object) or #EventDefinition (object) or #Evidence (object) or #EvidenceVariable (object) or #ExampleScenario (object) or #ExplanationOfBenefit (object) or #FamilyMemberHistory (object) or #Flag (object) or #Goal (object) or #GraphDefinition (object) or #Group (object) or #GuidanceResponse (object) or #HealthcareService (object) or #ImagingStudy (object) or #Immunization (object) or #ImmunizationEvaluation (object) or #ImmunizationRecommendation (object) or #ImplementationGuide (object) or #InsurancePlan (object) or #Invoice (object) or #Library (object) or #Linkage (object) or #List (object) or #Location (object) or #Measure (object) or #MeasureReport (object) or #Media (object) or #Medication (object) or #MedicationAdministration (object) or #MedicationDispense (object) or #MedicationKnowledge (object) or #MedicationRequest (object) or #MedicationStatement (object) or #MedicinalProduct (object) or #MedicinalProductAuthorization (object) or #MedicinalProductContraindication (object) or #MedicinalProductIndication (object) or #MedicinalProductIngredient (object) or #MedicinalProductInteraction (object) or #MedicinalProductManufactured (object) or #MedicinalProductPackaged (object) or #MedicinalProductPharmaceutical (object) or #MedicinalProductUndesirableEffect (object) or #MessageDefinition (object) or #MessageHeader (object) or #MolecularSequence (object) or #NamingSystem (object) or #NutritionOrder (object) or #Observation (object) or #ObservationDefinition (object) or #OperationDefinition (object) or #OperationOutcome (object) or #Organization (object) or #OrganizationAffiliation (object) or #Parameters (object) or #Patient (object) or #PaymentNotice (object) or #PaymentReconciliation (object) or #Person (object) or #PlanDefinition (object) or #Practitioner (object) or #PractitionerRole (object) or #Procedure (object) or #Provenance (object) or #Questionnaire (object) or #QuestionnaireResponse (object) or #RelatedPerson (object) or #RequestGroup (object) or #ResearchDefinition (object) or #ResearchElementDefinition (object) or #ResearchStudy (object) or #ResearchSubject (object) or #RiskAssessment (object) or #RiskEvidenceSynthesis (object) or #Schedule (object) or #SearchParameter (object) or #ServiceRequest (object) or #Slot (object) or #Specimen (object) or #SpecimenDefinition (object) or #StructureDefinition (object) or #StructureMap (object) or #Subscription (object) or #Substance (object) or #SubstanceNucleicAcid (object) or #SubstancePolymer (object) or #SubstanceProtein (object) or #SubstanceReferenceInformation (object) or #SubstanceSourceMaterial (object) or #SubstanceSpecification (object) or #SupplyDelivery (object) or #SupplyRequest (object) or #Task (object) or #TerminologyCapabilities (object) or #TestReport (object) or #TestScript (object) or #ValueSet (object) or #VerificationResult (object) or #VisionPrescription (object)(ResourceList)

These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.

extensionArray of objects(Extension)

May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

modifierExtensionArray of objects(Extension)

May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

identifierArray of objects(Identifier)

This records identifiers associated with this appointment concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).

statusany

The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status.

Enum"proposed""pending""booked""arrived""fulfilled""cancelled""noshow""entered-in-error""checked-in""waitlist"
Example: "booked"
_statusobject(Element)

Base definition for all elements in a resource.

cancelationReasonobject(CodeableConcept)

A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.

serviceCategoryArray of objects(CodeableConcept)

A broad categorization of the service that is to be performed during this appointment.

Example: [{"coding":[{"system":"http://example.org/service-category","code":"gp","display":"General Practice"}]}]
serviceTypeArray of objects(CodeableConcept)

The specific service that is to be performed during this appointment.

Example: [{"coding":[{"code":"52","display":"General Discussion"}]}]
specialtyArray of objects(CodeableConcept)

The specialty of a practitioner that would be required to perform the service requested in this appointment.

Example: [{"coding":[{"system":"http://snomed.info/sct","code":"394814009","display":"General practice"}]}]
appointmentTypeobject(CodeableConcept)

A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.

reasonCodeArray of objects(CodeableConcept)

The coded reason that this appointment is being scheduled. This is more clinical than administrative.

reasonReferenceArray of objects(Reference)

Reason the appointment has been scheduled to take place, as specified using information from another resource. When the patient arrives and the encounter begins it may be used as the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.

Example: [{"reference":"Condition/example","display":"Severe burn of left ear"}]
prioritynumber(unsignedInt)^[0]|([1-9][0-9]*)$

An integer with a value that is not negative (e.g. >= 0)

Example: 0
_priorityobject(Element)

Base definition for all elements in a resource.

descriptionstring(string)^[ \r\n\t\S]+$

A sequence of Unicode characters

Example: "example-string"
_descriptionobject(Element)

Base definition for all elements in a resource.

supportingInformationArray of objects(Reference)

Additional information to support the appointment provided when making the appointment.

startstring(date-time)(instant)^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-...

An instant in time - known at least to the second

Example: "2024-01-01T00:00:00Z"
_startobject(Element)

Base definition for all elements in a resource.

endstring(date-time)(instant)^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-...

An instant in time - known at least to the second

Example: "2024-01-01T00:00:00Z"
_endobject(Element)

Base definition for all elements in a resource.

minutesDurationnumber(positiveInt)^[1-9][0-9]*$

An integer with a value that is positive (e.g. >0)

Example: 1
_minutesDurationobject(Element)

Base definition for all elements in a resource.

slotArray of objects(Reference)

The slots from the participants' schedules that will be filled by the appointment.

createdstring(date-time)(dateTime)^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-...

A date, date-time or partial date (e.g. just year or year + month). If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored. Dates SHALL be valid dates.

Example: "2024-01-01T00:00:00Z"
_createdobject(Element)

Base definition for all elements in a resource.

commentstring(string)^[ \r\n\t\S]+$

A sequence of Unicode characters

Example: "example-string"
_commentobject(Element)

Base definition for all elements in a resource.

patientInstructionstring(string)^[ \r\n\t\S]+$

A sequence of Unicode characters

Example: "example-string"
_patientInstructionobject(Element)

Base definition for all elements in a resource.

basedOnArray of objects(Reference)

The service request this appointment is allocated to assess (e.g. incoming referral or procedure request).

Example: [{"reference":"ServiceRequest/myringotomy"}]
participantArray of objects(Appointment_Participant)required

List of participants involved in the appointment.

Example: [{"actor":{"reference":"Patient/example","display":"Peter James Chalmers"},"required":"required","status":"accepted"},{"type":[{"coding":[{"system":"http://terminology.hl7.org/CodeSystem/v3-ParticipationType","code":"ATND"}]}],"actor":{"reference":"Practitioner/example","display":"Dr Adam Careful"},"required":"required","status":"accepted"},{"actor":{"reference":"Location/1","display":"South Wing, second floor"},"required":"required","status":"accepted"}]
participant[].​idstring

An extension object type #string.

Example: "example-string"
participant[].​extensionArray of objects(#Extension)

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

participant[].​modifierExtensionArray of objects(#Extension)

May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

participant[].​typeArray of objects(#CodeableConcept)

Role of participant in the appointment.

participant[].​actorobject(#Reference)

An extension object type #Reference.

participant[].​requiredany

Whether this participant is required to be present at the meeting. This covers a use-case where two doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present.

Enum"required""optional""information-only"
Example: "required"
participant[].​_requiredobject(#Element)

An extension object type #Element.

participant[].​statusany

Participation status of the actor.

Enum"accepted""declined""tentative""needs-action"
Example: "accepted"
participant[].​_statusobject(#Element)

An extension object type #Element.

participant[].​periodobject(#Period)

An extension object type #Period.

requestedPeriodArray of objects(Period)

A set of date ranges (potentially including times) that the appointment is preferred to be scheduled within.

The duration (usually in minutes) could also be provided to indicate the length of the appointment to fill and populate the start/end times for the actual allocated time. However, in other situations the duration may be calculated by the scheduling system.

curl -i -X PUT \
  'https://docs.heydonto.com/_mock/apis/fhir/workflow/site/{siteId}/fhir/appointment/{id}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>' \
  -H 'Content-Type: application/json' \
  -d '{
    "resourceType": "Appointment",
    "id": "example",
    "text": {
      "status": "generated",
      "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Brian MRI results discussion</div>"
    },
    "status": "booked",
    "serviceCategory": [
      {
        "coding": [
          {
            "system": "http://example.org/service-category",
            "code": "gp",
            "display": "General Practice"
          }
        ]
      }
    ],
    "serviceType": [
      {
        "coding": [
          {
            "code": "52",
            "display": "General Discussion"
          }
        ]
      }
    ],
    "specialty": [
      {
        "coding": [
          {
            "system": "http://snomed.info/sct",
            "code": "394814009",
            "display": "General practice"
          }
        ]
      }
    ],
    "appointmentType": {
      "coding": [
        {
          "system": "http://terminology.hl7.org/CodeSystem/v2-0276",
          "code": "FOLLOWUP",
          "display": "A follow up visit from a previous appointment"
        }
      ]
    },
    "reasonReference": [
      {
        "reference": "Condition/example",
        "display": "Severe burn of left ear"
      }
    ],
    "priority": 5,
    "description": "Discussion on the results of your recent MRI",
    "start": "2013-12-10T09:00:00Z",
    "end": "2013-12-10T11:00:00Z",
    "created": "2013-10-10",
    "comment": "Further expand on the results of the MRI and determine the next actions that may be appropriate.",
    "basedOn": [
      {
        "reference": "ServiceRequest/myringotomy"
      }
    ],
    "participant": [
      {
        "actor": {
          "reference": "Patient/example",
          "display": "Peter James Chalmers"
        },
        "required": "required",
        "status": "accepted"
      },
      {
        "type": [
          {
            "coding": [
              {
                "system": "http://terminology.hl7.org/CodeSystem/v3-ParticipationType",
                "code": "ATND"
              }
            ]
          }
        ],
        "actor": {
          "reference": "Practitioner/example",
          "display": "Dr Adam Careful"
        },
        "required": "required",
        "status": "accepted"
      },
      {
        "actor": {
          "reference": "Location/1",
          "display": "South Wing, second floor"
        },
        "required": "required",
        "status": "accepted"
      }
    ]
  }'

Responses

Bodyapplication/json
resourceTypeanyrequired

This is a Appointment resource

Value"Appointment"
Example: "Appointment"
idstring(id)^[A-Za-z0-9\-\.]{1,64}$

Any combination of letters, numerals, "-" and ".", with a length limit of 64 characters. (This might be an integer, an unprefixed OID, UUID or any other identifier pattern that meets these constraints.) Ids are case-insensitive.

Example: "example-id"
metaobject(Meta)

The metadata about a resource. This is content in the resource that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.

implicitRulesstring(uri)^\S*$

String of characters used to identify a name or a resource

Example: "https://example.org/resource"
_implicitRulesobject(Element)

Base definition for all elements in a resource.

languagestring(code)^[^\s]+(\s[^\s]+)*$

A string which has at least one character and no leading or trailing whitespace and where there is no whitespace other than single spaces in the contents

Example: "sample-code"
_languageobject(Element)

Base definition for all elements in a resource.

textobject(Narrative)

A human-readable summary of the resource conveying the essential clinical and business information for the resource.

containedArray of #Account (object) or #ActivityDefinition (object) or #AdverseEvent (object) or #AllergyIntolerance (object) or #Appointment (object) or #AppointmentResponse (object) or #AuditEvent (object) or #Basic (object) or #Binary (object) or #BiologicallyDerivedProduct (object) or #BodyStructure (object) or #Bundle (object) or #CapabilityStatement (object) or #CarePlan (object) or #CareTeam (object) or #CatalogEntry (object) or #ChargeItem (object) or #ChargeItemDefinition (object) or #Claim (object) or #ClaimResponse (object) or #ClinicalImpression (object) or #CodeSystem (object) or #Communication (object) or #CommunicationRequest (object) or #CompartmentDefinition (object) or #Composition (object) or #ConceptMap (object) or #Condition (object) or #Consent (object) or #Contract (object) or #Coverage (object) or #CoverageEligibilityRequest (object) or #CoverageEligibilityResponse (object) or #DetectedIssue (object) or #Device (object) or #DeviceDefinition (object) or #DeviceMetric (object) or #DeviceRequest (object) or #DeviceUseStatement (object) or #DiagnosticReport (object) or #DocumentManifest (object) or #DocumentReference (object) or #EffectEvidenceSynthesis (object) or #Encounter (object) or #Endpoint (object) or #EnrollmentRequest (object) or #EnrollmentResponse (object) or #EpisodeOfCare (object) or #EventDefinition (object) or #Evidence (object) or #EvidenceVariable (object) or #ExampleScenario (object) or #ExplanationOfBenefit (object) or #FamilyMemberHistory (object) or #Flag (object) or #Goal (object) or #GraphDefinition (object) or #Group (object) or #GuidanceResponse (object) or #HealthcareService (object) or #ImagingStudy (object) or #Immunization (object) or #ImmunizationEvaluation (object) or #ImmunizationRecommendation (object) or #ImplementationGuide (object) or #InsurancePlan (object) or #Invoice (object) or #Library (object) or #Linkage (object) or #List (object) or #Location (object) or #Measure (object) or #MeasureReport (object) or #Media (object) or #Medication (object) or #MedicationAdministration (object) or #MedicationDispense (object) or #MedicationKnowledge (object) or #MedicationRequest (object) or #MedicationStatement (object) or #MedicinalProduct (object) or #MedicinalProductAuthorization (object) or #MedicinalProductContraindication (object) or #MedicinalProductIndication (object) or #MedicinalProductIngredient (object) or #MedicinalProductInteraction (object) or #MedicinalProductManufactured (object) or #MedicinalProductPackaged (object) or #MedicinalProductPharmaceutical (object) or #MedicinalProductUndesirableEffect (object) or #MessageDefinition (object) or #MessageHeader (object) or #MolecularSequence (object) or #NamingSystem (object) or #NutritionOrder (object) or #Observation (object) or #ObservationDefinition (object) or #OperationDefinition (object) or #OperationOutcome (object) or #Organization (object) or #OrganizationAffiliation (object) or #Parameters (object) or #Patient (object) or #PaymentNotice (object) or #PaymentReconciliation (object) or #Person (object) or #PlanDefinition (object) or #Practitioner (object) or #PractitionerRole (object) or #Procedure (object) or #Provenance (object) or #Questionnaire (object) or #QuestionnaireResponse (object) or #RelatedPerson (object) or #RequestGroup (object) or #ResearchDefinition (object) or #ResearchElementDefinition (object) or #ResearchStudy (object) or #ResearchSubject (object) or #RiskAssessment (object) or #RiskEvidenceSynthesis (object) or #Schedule (object) or #SearchParameter (object) or #ServiceRequest (object) or #Slot (object) or #Specimen (object) or #SpecimenDefinition (object) or #StructureDefinition (object) or #StructureMap (object) or #Subscription (object) or #Substance (object) or #SubstanceNucleicAcid (object) or #SubstancePolymer (object) or #SubstanceProtein (object) or #SubstanceReferenceInformation (object) or #SubstanceSourceMaterial (object) or #SubstanceSpecification (object) or #SupplyDelivery (object) or #SupplyRequest (object) or #Task (object) or #TerminologyCapabilities (object) or #TestReport (object) or #TestScript (object) or #ValueSet (object) or #VerificationResult (object) or #VisionPrescription (object)(ResourceList)

These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.

extensionArray of objects(Extension)

May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

modifierExtensionArray of objects(Extension)

May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

identifierArray of objects(Identifier)

This records identifiers associated with this appointment concern that are defined by business processes and/or used to refer to it when a direct URL reference to the resource itself is not appropriate (e.g. in CDA documents, or in written / printed documentation).

statusany

The overall status of the Appointment. Each of the participants has their own participation status which indicates their involvement in the process, however this status indicates the shared status.

Enum"proposed""pending""booked""arrived""fulfilled""cancelled""noshow""entered-in-error""checked-in""waitlist"
Example: "booked"
_statusobject(Element)

Base definition for all elements in a resource.

cancelationReasonobject(CodeableConcept)

A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.

serviceCategoryArray of objects(CodeableConcept)

A broad categorization of the service that is to be performed during this appointment.

Example: [{"coding":[{"system":"http://example.org/service-category","code":"gp","display":"General Practice"}]}]
serviceTypeArray of objects(CodeableConcept)

The specific service that is to be performed during this appointment.

Example: [{"coding":[{"code":"52","display":"General Discussion"}]}]
specialtyArray of objects(CodeableConcept)

The specialty of a practitioner that would be required to perform the service requested in this appointment.

Example: [{"coding":[{"system":"http://snomed.info/sct","code":"394814009","display":"General practice"}]}]
appointmentTypeobject(CodeableConcept)

A concept that may be defined by a formal reference to a terminology or ontology or may be provided by text.

reasonCodeArray of objects(CodeableConcept)

The coded reason that this appointment is being scheduled. This is more clinical than administrative.

reasonReferenceArray of objects(Reference)

Reason the appointment has been scheduled to take place, as specified using information from another resource. When the patient arrives and the encounter begins it may be used as the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.

Example: [{"reference":"Condition/example","display":"Severe burn of left ear"}]
prioritynumber(unsignedInt)^[0]|([1-9][0-9]*)$

An integer with a value that is not negative (e.g. >= 0)

Example: 0
_priorityobject(Element)

Base definition for all elements in a resource.

descriptionstring(string)^[ \r\n\t\S]+$

A sequence of Unicode characters

Example: "example-string"
_descriptionobject(Element)

Base definition for all elements in a resource.

supportingInformationArray of objects(Reference)

Additional information to support the appointment provided when making the appointment.

startstring(date-time)(instant)^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-...

An instant in time - known at least to the second

Example: "2024-01-01T00:00:00Z"
_startobject(Element)

Base definition for all elements in a resource.

endstring(date-time)(instant)^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-...

An instant in time - known at least to the second

Example: "2024-01-01T00:00:00Z"
_endobject(Element)

Base definition for all elements in a resource.

minutesDurationnumber(positiveInt)^[1-9][0-9]*$

An integer with a value that is positive (e.g. >0)

Example: 1
_minutesDurationobject(Element)

Base definition for all elements in a resource.

slotArray of objects(Reference)

The slots from the participants' schedules that will be filled by the appointment.

createdstring(date-time)(dateTime)^([0-9]([0-9]([0-9][1-9]|[1-9]0)|[1-9]00)|[1-...

A date, date-time or partial date (e.g. just year or year + month). If hours and minutes are specified, a time zone SHALL be populated. The format is a union of the schema types gYear, gYearMonth, date and dateTime. Seconds must be provided due to schema type constraints but may be zero-filled and may be ignored. Dates SHALL be valid dates.

Example: "2024-01-01T00:00:00Z"
_createdobject(Element)

Base definition for all elements in a resource.

commentstring(string)^[ \r\n\t\S]+$

A sequence of Unicode characters

Example: "example-string"
_commentobject(Element)

Base definition for all elements in a resource.

patientInstructionstring(string)^[ \r\n\t\S]+$

A sequence of Unicode characters

Example: "example-string"
_patientInstructionobject(Element)

Base definition for all elements in a resource.

basedOnArray of objects(Reference)

The service request this appointment is allocated to assess (e.g. incoming referral or procedure request).

Example: [{"reference":"ServiceRequest/myringotomy"}]
participantArray of objects(Appointment_Participant)required

List of participants involved in the appointment.

Example: [{"actor":{"reference":"Patient/example","display":"Peter James Chalmers"},"required":"required","status":"accepted"},{"type":[{"coding":[{"system":"http://terminology.hl7.org/CodeSystem/v3-ParticipationType","code":"ATND"}]}],"actor":{"reference":"Practitioner/example","display":"Dr Adam Careful"},"required":"required","status":"accepted"},{"actor":{"reference":"Location/1","display":"South Wing, second floor"},"required":"required","status":"accepted"}]
participant[].​idstring

An extension object type #string.

Example: "example-string"
participant[].​extensionArray of objects(#Extension)

May be used to represent additional information that is not part of the basic definition of the element. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.

participant[].​modifierExtensionArray of objects(#Extension)

May be used to represent additional information that is not part of the basic definition of the element and that modifies the understanding of the element in which it is contained and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.

Modifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).

participant[].​typeArray of objects(#CodeableConcept)

Role of participant in the appointment.

participant[].​actorobject(#Reference)

An extension object type #Reference.

participant[].​requiredany

Whether this participant is required to be present at the meeting. This covers a use-case where two doctors need to meet to discuss the results for a specific patient, and the patient is not required to be present.

Enum"required""optional""information-only"
Example: "required"
participant[].​_requiredobject(#Element)

An extension object type #Element.

participant[].​statusany

Participation status of the actor.

Enum"accepted""declined""tentative""needs-action"
Example: "accepted"
participant[].​_statusobject(#Element)

An extension object type #Element.

participant[].​periodobject(#Period)

An extension object type #Period.

requestedPeriodArray of objects(Period)

A set of date ranges (potentially including times) that the appointment is preferred to be scheduled within.

The duration (usually in minutes) could also be provided to indicate the length of the appointment to fill and populate the start/end times for the actual allocated time. However, in other situations the duration may be calculated by the scheduling system.

Response
application/json
{ "resourceType": "Appointment", "id": "example", "text": { "status": "generated", "div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Brian MRI results discussion</div>" }, "status": "booked", "serviceCategory": [ { … } ], "serviceType": [ { … } ], "specialty": [ { … } ], "appointmentType": { "coding": [ … ] }, "reasonReference": [ { … } ], "priority": 5, "description": "Discussion on the results of your recent MRI", "start": "2013-12-10T09:00:00Z", "end": "2013-12-10T11:00:00Z", "created": "2013-10-10", "comment": "Further expand on the results of the MRI and determine the next actions that may be appropriate.", "basedOn": [ { … } ], "participant": [ { … }, { … }, { … } ] }

Request

Security
bearer or bearer
Path
idstringrequired

ID of the Appointment to delete

siteIdstringrequired

Site identifier

curl -i -X DELETE \
  'https://docs.heydonto.com/_mock/apis/fhir/workflow/site/{siteId}/fhir/appointment/{id}' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Appointment successfully deleted

Bodyapplication/json
statusTextstringrequired
Example: "OK"
statusnumberrequired
Example: 200
Response
application/json
{ "statusText": "OK", "status": 200 }

Get FHIR r4 appointment history by ID

Request

Security
bearer or bearer
Path
siteIdstringrequired

Site identifier

idstringrequired

ID of the Appointment

curl -i -X GET \
  'https://docs.heydonto.com/_mock/apis/fhir/workflow/site/{siteId}/fhir/appointment/{id}/history' \
  -H 'Authorization: Bearer <YOUR_JWT_HERE>'

Responses

Bodyapplication/json
resourceTypeanyrequired

This is a Bundle resource

Value"Bundle"
Example: "Bundle"
typeanyrequired

Indicates that this is a history bundle.

Value"history"
Example: "history"
entryArray of objectsrequired

A list of entries representing historical versions of the resource.

entry[].​fullUrlstringrequired
Example: "https://api.heydonto.com/appointment/6eca4369-7183-446e-bab7-addc609972d3"
entry[].​requestobjectrequired
entry[].​request.​methodstring
Enum"PUT""POST"
Example: "PUT"
entry[].​request.​urlstring
Example: "https://api.heydonto.com/appointment/6eca4369-7183-446e-bab7-addc609972d3"
entry[].​resourceobjectrequired
Example: {"resourceType":"Resource","id":"example"}
entry[].​responseobjectrequired
entry[].​response.​lastModifiedstring(date-time)
Example: "2024-10-29T01:05:22.739517+00:00"
entry[].​response.​locationstring
Example: "https://api.heydonto.com/appointment/6eca4369-7183-446e-bab7-addc609972d3/_history/MTczMDE2MzkyMjczOTUxNzAwMA"
entry[].​response.​statusstring
Example: "200 OK"
totalintegerrequired
Example: 2
Response
application/json
{ "resourceType": "Bundle", "type": "history", "entry": [ { … } ], "total": 2 }
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations
Operations