Argo-Scheduling Implementation Guide Release 1.0.0

This page is part of the Argonaut Scheduling Implementation Guide (v1.0.0: Release) based on FHIR R3. This is the current published version. For a full list of available versions, see the Directory of published versions

XML Format: OperationDefinition-appointment-book

Raw xml


<OperationDefinition xmlns="http://hl7.org/fhir">
  <id value="appointment-book"/>
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml">
			<h2>Appointment_Book</h2>
			<p>OPERATION: Appointment_Book</p>
			<p>The official URL for this operation definition is: </p>
			<pre>http://fhir.org/guides/argonaut-scheduling/OperationDefinition/appointment-book</pre>
			<div>
				<p>Request to book a selected Appointment. This operation follows the appointment availability and optional hold interactiona.  This operaton completes the booking of an appointment.  The server determines if the nominated appointment is still available (i.e., all the required actors and physical assets needed for the appointment are still available) and either accepts or rejects the hold request and updates the resource status accordingly.  See the <a href="state-diagram.html">Appointment State Diagram</a> for further details on statuses.</p>
			</div>
			<p>URL: [base]/Appointment/$book</p>
			<p>URL: [base]/Appointment/[id]/$book</p>
			<p>Parameters</p>
			<table class="grid">
				<tr>
					<td>
						<b>Use</b>
					</td>
					<td>
						<b>Name</b>
					</td>
					<td>
						<b>Cardinality</b>
					</td>
					<td>
						<b>Type</b>
					</td>
					<td>
						<b>Binding</b>
					</td>
					<td>
						<b>Documentation</b>
					</td>
				</tr>
				<tr>
					<td>IN</td>
					<td>appt-id</td>
					<td>0..1</td>
					<td>uri</td>
					<td/>
					<td>
						<div>
							<p>A resource id for one of proposed Appointments returned by a prior <code>$find</code> operation (e.g., Resource/1234).  This is the same resource id as used for the <code>$hold</code> operation.  References can be to an absolute URL, but servers only perform this operation on their own appointments.</p>
						</div>
					</td>
				</tr>
				<tr>
					<td>IN</td>
					<td>appt-resource</td>
					<td>0..1</td>
					<td>Appointment (<a href="StructureDefinition-argo-appt.html">Argonaut Appointment Profile</a>)</td>
					<td/>
					<td>
						<div>
							<p>When prefetching open Slots, an <a href="StructureDefinition-argo-appt.html">Argonaut Appointment Profile</a> resource is created by the Client Application and is exchanged with the FHIR Scheduler (EHR). This parameter represents this profile and is the same as used for the <code>$hold</code> operation.</p>
						</div>
					</td>
				</tr>
				<tr>
					<td>IN</td>
					<td>cancelled-appt-id</td>
					<td>0..1</td>
					<td>uri</td>
					<td/>
					<td>
						<div>
							<p>For this implementation, rescheduling is two step process of cancelling an appointment and rebooking a new appointment.  This parameter represents the resource id (e.g., Resource/1234) of the <em>cancelled</em> Appointment and the <code>appt-id</code> parameter represents the <em>new</em> appointment when rescheduling and rebooking a new appointment.  References can be to an absolute URL, but servers only perform this operation on their own appointments.</p>
						</div>
					</td>
				</tr>
				<tr>
					<td>IN</td>
					<td>patient-id</td>
					<td>0..*</td>
					<td>uri</td>
					<td/>
					<td>
						<div>
							<p>A resource id for the Patient(s) participant in the resource (e.g., Patient/1234).  References can be to an absolute URL, but servers only perform this operation on their own patients.  For existing patients the client may need to fetch Patient ID using RESTful <code>GET</code> to the FHIR Server (i.e., <a href="http://hl7.org/fhir/us/core/1.0.1//StructureDefinition-us-core-patient.html#search">US-Core Patient Search</a>). For new patients client needs to fetch Patient ID using RESTful <code>POST</code> to register the patient on the FHIR Server (see <a href="http://hl7.org/fhir/STU3/http.html#create">create</a> and <a href="http://hl7.org/fhir/STU3/http.html#ccreate">conditional create</a>)</p>
						</div>
					</td>
				</tr>
				<tr>
					<td>IN</td>
					<td>comment</td>
					<td>0..1</td>
					<td>string</td>
					<td/>
					<td>
						<div>
							<p>Comments or special instructions</p>
						</div>
					</td>
				</tr>
				<tr>
					<td>OUT</td>
					<td>return</td>
					<td>0..1</td>
					<td>Bundle (<a href="StructureDefinition-avail-bundle.html">Argonaut Appointment Bundle Profile</a>)</td>
					<td/>
					<td>
						<div>
							<p>An <a href="StructureDefinition-avail-bundle.html">Argonaut Appointment Bundle Profile </a> of type <code>searchset</code> of requested Appointment resource and may also contain an <a href="http://hl7.org/fhir/STU3/operationoutcome.html">OperationOutcome</a> with errors, warnings or information as a result of processing the operation.   If the booking is accepted, the Appointment resource will have an updated <code>status</code> of &quot;booked&quot; and  the <code>participants</code>element updated to include the patients.  If the booking is rejected, the Appointment resource will have an updated <code>status</code> of  &quot;cancelled&quot;.</p>
						</div>
					</td>
				</tr>
			</table>
			<div>
				<ul>
					<li>
						<p>This operation is not <a href="https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html">idempotent</a> and may only be invoked by performing an HTTP POST.</p>
					</li>
					<li>
						<p>When using the <code>appt-resource</code> as the <em>only</em> input parameter, the payload can be <em>either</em> the Appointment resource or use the <a href="http://hl7.org/fhir/STU3/parameters.html">Parameters</a> format as shown in the examples below</p>
					</li>
				</ul>
			</div>
		</div>
  </text>
  <url
       value="http://fhir.org/guides/argonaut-scheduling/OperationDefinition/appointment-book"/>
  <version value="1.0.0"/>
  <name value="Appointment_Book"/>
  <status value="active"/>
  <kind value="operation"/>
  <date value="2017-08-10T04:36:05+10:00"/>
  <publisher value="Argonaut Project"/>
  <description
               value="Request to book a selected Appointment. This operation follows the appointment availability and optional hold interactiona.  This operaton completes the booking of an appointment.  The server determines if the nominated appointment is still available (i.e., all the required actors and physical assets needed for the appointment are still available) and either accepts or rejects the hold request and updates the resource status accordingly.  See the [Appointment State Diagram](state-diagram.html) for further details on statuses."/>
  <jurisdiction>
    <coding>
      <system value="urn:iso:std:iso:3166"/>
      <code value="US"/>
      <display value="United States of America"/>
    </coding>
  </jurisdiction>
  <idempotent value="false"/>
  <code value="book"/>
  <comment
           value="- This operation is not [idempotent](https://www.w3.org/Protocols/rfc2616/rfc2616-sec9.html) and may only be invoked by performing an HTTP POST.

- When using the `appt-resource` as the *only* input parameter, the payload can be *either* the Appointment resource or use the [Parameters](http://hl7.org/fhir/STU3/parameters.html) format as shown in the examples below"/>
  <resource value="Appointment"/>
  <system value="false"/>
  <type value="true"/>
  <instance value="true"/>
  <parameter>
    <name value="appt-id"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <documentation
                   value="A resource id for one of proposed Appointments returned by a prior `$find` operation (e.g., Resource/1234).  This is the same resource id as used for the `$hold` operation.  References can be to an absolute URL, but servers only perform this operation on their own appointments."/>
    <type value="uri"/>
  </parameter>
  <parameter>
    <name value="appt-resource"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <documentation
                   value="When prefetching open Slots, an [Argonaut Appointment Profile](StructureDefinition-argo-appt.html) resource is created by the Client Application and is exchanged with the FHIR Scheduler (EHR). This parameter represents this profile and is the same as used for the `$hold` operation."/>
    <type value="Appointment"/>
    <profile>
      <reference value="StructureDefinition/argo-appt"/>
    </profile>
  </parameter>
  <parameter>
    <name value="cancelled-appt-id"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <documentation
                   value="For this implementation, rescheduling is two step process of cancelling an appointment and rebooking a new appointment.  This parameter represents the resource id (e.g., Resource/1234) of the *cancelled* Appointment and the `appt-id` parameter represents the *new* appointment when rescheduling and rebooking a new appointment.  References can be to an absolute URL, but servers only perform this operation on their own appointments."/>
    <type value="uri"/>
  </parameter>
  <parameter>
    <name value="patient-id"/>
    <use value="in"/>
    <min value="0"/>
    <max value="*"/>
    <documentation
                   value="A resource id for the Patient(s) participant in the resource (e.g., Patient/1234).  References can be to an absolute URL, but servers only perform this operation on their own patients.  For existing patients the client may need to fetch Patient ID using RESTful `GET` to the FHIR Server (i.e., [US-Core Patient Search](http://hl7.org/fhir/us/core/1.0.1//StructureDefinition-us-core-patient.html#search)). For new patients client needs to fetch Patient ID using RESTful `POST` to register the patient on the FHIR Server (see [create](http://hl7.org/fhir/STU3/http.html#create) and [conditional create](http://hl7.org/fhir/STU3/http.html#ccreate))"/>
    <type value="uri"/>
  </parameter>
  <parameter>
    <name value="comment"/>
    <use value="in"/>
    <min value="0"/>
    <max value="1"/>
    <documentation value="Comments or special instructions"/>
    <type value="string"/>
  </parameter>
  <parameter>
    <name value="return"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <documentation
                   value="An [Argonaut Appointment Bundle Profile ](StructureDefinition-avail-bundle.html) of type `searchset` of requested Appointment resource and may also contain an [OperationOutcome](http://hl7.org/fhir/STU3/operationoutcome.html) with errors, warnings or information as a result of processing the operation.   If the booking is accepted, the Appointment resource will have an updated `status` of &quot;booked&quot; and  the `participants`element updated to include the patients.  If the booking is rejected, the Appointment resource will have an updated `status` of  &quot;cancelled&quot;."/>
    <type value="Bundle"/>
    <profile>
      <reference value="StructureDefinition/avail-bundle"/>
    </profile>
  </parameter>
</OperationDefinition>