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-slot-prefetch

Raw xml


<OperationDefinition xmlns="http://hl7.org/fhir">
  <id value="slot-prefetch"/>
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml">
			<h2>Availability Prefetch Operation</h2>
			<p>OPERATION: Availability Prefetch Operation</p>
			<p>The official URL for this operation definition is: </p>
			<pre>http://fhir.org/guides/argonaut-scheduling/OperationDefinition/slot-prefetch</pre>
			<div>
				<p>This operation fetches available free slots for the 'initial load', update and reconciliation steps in the <a href="patient-scheduling.html#use-case-3-prefetching-open-slots">Prefetch Use Case</a>.  The server determines which open slots to expose to the application for use in creating new appointments.  If neither a start or end date is given then the maximum period as defined by local business rules and starting from when the operation was transacted SHALL be used.   The actors practitioner, organization and location further refine the search.</p>
			</div>
			<p>URL: [base]/Slot/$prefetch</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>start</td>
					<td>1..1</td>
					<td>dateTime</td>
					<td/>
					<td>
						<div>
							<p>The period of time that should be checked for free slots. If no start date is provided,  all available slots prior to the end date are in scope (subject to limits imposed by local business rules).</p>
						</div>
					</td>
				</tr>
				<tr>
					<td>IN</td>
					<td>end</td>
					<td>1..1</td>
					<td>dateTime</td>
					<td/>
					<td>
						<div>
							<p>The period of time that should be checked for appointment availability. If no end date is provided, all available slots after the start date are in scope (subject to limits imposed by local business rules).</p>
						</div>
					</td>
				</tr>
				<tr>
					<td>IN</td>
					<td>practitioner</td>
					<td>0..*</td>
					<td>uri</td>
					<td/>
					<td>
						<div>
							<p>The Practitioner reference when performing a provider based query.  This is a reference to a FHIR Practitioner resource,  e.g. 'Practitioner/123'.</p>
						</div>
					</td>
				</tr>
				<tr>
					<td>IN</td>
					<td>organization</td>
					<td>0..*</td>
					<td>uri</td>
					<td/>
					<td>
						<div>
							<p>The Organization reference when performing a provider based query.  This is a reference to a FHIR Organization resource,  e.g. 'Organization/abc'.</p>
						</div>
					</td>
				</tr>
				<tr>
					<td>IN</td>
					<td>location-string</td>
					<td>0..*</td>
					<td>string</td>
					<td/>
					<td>
						<div>
							<p>A (part of the) address of the location of interest.  (e.g., zip codes, city or state).  This string parameter is interpreted as a  <a href="http://build.fhir.org/search.html#string">String search parameter</a> and covers the <code>string</code> type elements in the <a href="http://build.fhir.org/datatypes.html#Address">Address datatype</a>.</p>
						</div>
					</td>
				</tr>
				<tr>
					<td>IN</td>
					<td>location-reference</td>
					<td>0..*</td>
					<td>uri</td>
					<td/>
					<td>
						<div>
							<p>A Location reference when performing an operation where the Location resource <code>id</code> is known.</p>
						</div>
					</td>
				</tr>
				<tr>
					<td>OUT</td>
					<td>return</td>
					<td>0..1</td>
					<td>Bundle(<a href="StructureDefinition-slot-bundle.html">Argonaut Slot Bundle Profile</a>)</td>
					<td/>
					<td>
						<div>
							<p>An <a href="StructureDefinition-slot-bundle.html">Argonaut Slot Bundle Profile</a> of type <code>searchset</code> with entries of proposed <a href="http://build.fhir.org/slot.html">Slot</a> resources and may also contain an <a href="http://build.fhir.org/operationoutcome.html">OperationOutcome</a> with errors, warnings or information as a result of processing the operation - e.g., an informational notice that the returned slots are not within the requested start and end times.  An empty bundle means no available slots based on inputs</p>
						</div>
					</td>
				</tr>
			</table>
			<div>
        <ul>
          <li>All input parameters are simple types allowing either the <code>GET</code> or the <code>POST</code> syntax to be used to initiate the interaction.  Examples of both are shown below.</li>
          <li>If more than one actor type is present, the response SHALL contain slots with <em>all</em> of these actors (i.e, this is a logical 'AND').  If an actor type is repeated the response SHALL contain slots with <em>any</em> of these actors and the order SHOULD be interpreted as the order of preference (i.e. this is a logical  'OR' and does not drive a joint appointment with multiple practitioners. locations or organizations).</li>
          <li>References can be to an absolute URL, but servers only perform operations on their own resources.</li>
        </ul>
			</div>
		</div>
  </text>
  <url
       value="http://fhir.org/guides/argonaut-scheduling/OperationDefinition/slot-prefetch"/>
  <version value="1.0.0"/>
  <name value="Availability_Prefetch_Operation"/>
  <status value="active"/>
  <kind value="operation"/>
  <date value="2018-02-12T19:00:00+11:00"/>
  <description
               value="This operation fetches available free slots for the &#39;initial load&#39;, update and reconciliation steps in the [Prefetch Use Case](patient-scheduling.html#use-case-3-prefetching-open-slots).  The server determines which open slots to expose to the application for use in creating new appointments.  If neither a start or end date is given then the maximum period as defined by local business rules and starting from when the operation was transacted SHALL be used.   The actors practitioner, organization and location further refine the search."/>
  <jurisdiction>
    <coding>
      <system value="urn:iso:std:iso:3166"/>
      <code value="US"/>
      <display value="United States of America"/>
    </coding>
  </jurisdiction>
  <code value="find"/>
  <comment
           value="Note that all input parameters are simple types allowing either the &#39;GET&#39;  or the &#39;POST&#39; syntax to be used to initiate the interaction.  Examples of both are shown below.

 -  If more than one actor type is present, the response SHALL contain slots with *all* of these actors (i.e, this is a logical &#39;AND&#39;).  If an actor type is repeated, the response SHALL contain slots with *any* of these actors and the order SHOULD be interpreted as the order of preference (i.e. this is a logical  &#39;OR&#39; and  does not drive a joint appointment with multiple practitioners. locations or organizations)."/>
  <resource value="Slot"/>
  <system value="false"/>
  <type value="true"/>
  <instance value="false"/>
  <parameter>
    <name value="start"/>
    <use value="in"/>
    <min value="1"/>
    <max value="1"/>
    <documentation
                   value="The period of time that should be checked for free slots. If no start date is provided,  all available slots prior to the end date are in scope (subject to limits imposed by local business rules)."/>
    <type value="dateTime"/>
  </parameter>
  <parameter>
    <name value="end"/>
    <use value="in"/>
    <min value="1"/>
    <max value="1"/>
    <documentation
                   value="The period of time that should be checked for appointment availability. If no end date is provided, all available slots after the start date are in scope (subject to limits imposed by local business rules)."/>
    <type value="dateTime"/>
  </parameter>
  <parameter>
    <name value="practitioner"/>
    <use value="in"/>
    <min value="0"/>
    <max value="*"/>
    <documentation
                   value="The Practitioner reference when performing a provider based query.  This is a reference to a FHIR Practitioner resource,  e.g. &#39;Practitioner/123&#39;."/>
    <type value="uri"/>
  </parameter>
  <parameter>
    <name value="organization"/>
    <use value="in"/>
    <min value="0"/>
    <max value="*"/>
    <documentation
                   value="The Organization reference when performing a provider based query.  This is a reference to a FHIR Organization resource,  e.g. &#39;Organization/abc&#39;."/>
    <type value="uri"/>
  </parameter>
  <parameter>
    <name value="location-string"/>
    <use value="in"/>
    <min value="0"/>
    <max value="*"/>
    <documentation
                   value="A (part of the) address of the location of interest.  (e.g., zip codes, city or state).  This string parameter is interpreted as a  [String search parameter](http://build.fhir.org/search.html#string) and covers the `string` type elements in the [Address datatype](http://build.fhir.org/datatypes.html#Address)."/>
    <type value="string"/>
    <searchType value="string"/>
  </parameter>
  <parameter>
    <name value="location-reference"/>
    <use value="in"/>
    <min value="0"/>
    <max value="*"/>
    <documentation
                   value="A Location reference when performing an operation where the Location resource `id` is known."/>
    <type value="uri"/>
  </parameter>
  <parameter>
    <name value="return"/>
    <use value="out"/>
    <min value="0"/>
    <max value="1"/>
    <documentation
                   value="An [Argonaut Slot Bundle Profile](StructureDefinition-prefetch-slot.html) of type `searchset` with entries of proposed [Slot](http://build.fhir.org/slot.html) resources and may also contain an [OperationOutcome](http://build.fhir.org/operationoutcome.html) with errors, warnings or information as a result of processing the operation - e.g., an informational notice that the returned slots are not within the requested start and end times.  An empty bundle means no available slots based on inputs"/>
    <type value="Bundle"/>
    <profile>
      <reference
                 value="http://fhir.org/guides/argonaut-scheduling/StructureDefinition/slot-bundle"/>
    </profile>
  </parameter>
</OperationDefinition>