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

JSON Format: CapabilityStatement-server

Raw json

{
  "resourceType" : "CapabilityStatement",
  "id" : "server",
  "text" : {
    "status" : "additional",
    "div" : "<div xmlns="http://www.w3.org/1999/xhtml">
			<h2 id="argonaut-scheduling-conformance-requirements">Argonaut Scheduling Conformance Requirements</h2>
			<p>This section outlines conformance requirements for the Argonaut Scheduling Servers application, identifying the specific profiles that need to be supported, the specific RESTful operations that need to be supported, and the search parameters that need to be supported. Note: The individual Argonaut Scheduling profiles identify the structural constraints, terminology bindings and invariants, however, implementers must refer to the conformance requirements for details on the RESTful operations, specific profiles and the search parameters applicable to each of the Argonaut Scheduling actors.</p>
			<h3 id="conformance-requirements-for-the-argonaut-scheduling-implementation-guide-server">Conformance requirements for the Argonaut Scheduling Implementation Guide Server</h3>
			<ul>
				<li>FHIR Version: 3.0.1</li>
				<li>Supported formats: xml, json</li>
				<li>Published: March 20, 2018</li>
				<li>Published by: The Argonaut Project</li>
			</ul>
			<p>The Section describes the expected Capabilities of the Argonaut Scheduling Scheduling Server which is responsible for providing responses to the requests submitted by the Argonaut Scheduling Clients. The complete list of FHIR profiles, RESTful operations, and search parameters supported by Argonaut Scheduling Servers are defined.</p>
			<h4 id="behavior">Behavior</h4>
			<p>Description:</p>
			<p>The Argonaut Scheduling Server <strong>SHALL</strong>:</p>
			<ol>
				<li>Support at least one Argonaut Scheduling patient or provider use case.</li>
				<li>Implement the RESTful behavior according to the FHIR specification including returning the appropriate response classes as described in the FHIR specification for <a href="http://hl7.org/fhir/STU3/http.html">FHIR RESTful API</a> and <a href="http://hl7.org/fhir/STU3/operations.html">Extended Operations on the RESTful API</a>.</li>
				<li>Conform to the <a href="http://hl7.org/fhir/us/core/1.0.1">US Core Implementation Guiide</a>.</li>
				<li>Support <em>json</em> resource formats for all Argonaut Scheduling interactions.</li>
				<li>Declare a CapabilityStatement identifying the list of profiles, operations, search parameter supported.</li>
			</ol>
			<p>The Argonaut Scheduling Server <strong>SHOULD</strong>:</p>
			<ol>
				<li>Support <em>xml</em> resource formats for all Argonaut Scheduling interactions.</li>
				<li>Identify the Argonaut Scheduling profiles supported as part of the FHIR <code>meta.profile</code> attribute for each instance.</li>
			</ol>
			<h4 id="security-">Security:</h4>
			<p>For general security consideration refer to the <a href="http://hl7.org/fhir/us/core/security.html">Security section</a> in the US Core Implementation Guide.</p>
			<h4 id="profile-interaction-summary-">Profile Interaction Summary:</h4>
			<p>Specific server capabilities are described in detail in each of the resource sections below.</p>
			<table class="grid">
				<thead>
					<tr>
						<th>Resource Type</th>
						<th>Supported Profiles</th>
						<th>Supported Interactions</th>
					</tr>
				</thead>
				<tbody>
					<tr>
						<td>
							<a href="#appointment">Appointment</a>
						</td>
						<td>Argonaut Appointment Profile</td>
						<td>read, search, patch, $find, $hold, $book</td>
					</tr>
					<tr>
						<td>
							<a href="#bundle">Bundle</a>
						</td>
						<td>Argonaut Appointment Bundle Profile, Argonaut Slot Bundle Profile</td>
						<td>
						</td>
					</tr>
					<tr>
						<td>
							<a href="#coverage">Coverage</a>
						</td>
						<td>Argonaut Coverage Profile</td>
						<td>create, update</td>
					</tr>
					<tr>
						<td>
							<a href="#patient">Patient</a>
						</td>
						<td>US Core Patient Profile</td>
						<td>search, create</td>
					</tr>
					<tr>
						<td>
							<a href="#schedule">Schedule</a>
						</td>
						<td>Argonaut Schedule Notification Profile</td>
						<td>
						</td>
					</tr>
					<tr>
						<td>
							<a href="#slot">Slot</a>
						</td>
						<td>Argonaut Prefetch Slot Profile</td>
						<td>$prefetch</td>
					</tr>
					<tr>
						<td>
							<a href="#subscription">Subscription</a>
						</td>
						<td>Argonaut Scheduling Subscription Profile</td>
						<td>create, delete</td>
					</tr>
				</tbody>
			</table>
			<h4 id="resource-details-">Resource  Details:</h4>
			<hr/>
			<h4 id="appointment">Appointment</h4>
			<p>Supported Profiles:  <a href="StructureDefinition-argo-appt.html">Argonaut Appointment Profile</a>
			</p>
			<p>Capabilities:</p>
			<ol>
				<li>
					<p>A server <strong>SHALL</strong> be capable of returning Appointments using:</p>
					<p>
						<code>GET [base]/Appointment/[id]</code>.</p>
				</li>
				<li>
					<p>A server <strong>SHALL</strong> be capable of returning Appointments using search:</p>
					<p>
						<code>GET [base]/Appointment?patient=[id]{&amp;status=[status]}{&amp;date=[date]{&amp;date=[date]}}{&amp;practitioner=[id]}</code>
					</p>
					<ol>
						<li>
							<p>A server <strong>SHALL</strong> support the following search parameters:</p>
							<ul>
								<li>_id</li>
								<li>patient</li>
							</ul>
						</li>
						<li>
							<p>A server <strong>SHOULD</strong> support the following search parameters:</p>
							<ul>
								<li>status</li>
								<li>date - including the date modifiers ‘ge’,’le’,’gt’,’lt’</li>
								<li>practitioner</li>
							</ul>
						</li>
					</ol>
				</li>
			</ol>
			<ol>
				<li>
					<p>A server <strong>SHALL</strong> be capable of returning Appointments by supporting  the <a href="OperationDefinition-appointment-find.html">Appointment Availability Operation</a>.</p>
					<ul>
						<li>
							<p>Both the <code>GET</code> and <code>POST</code> Syntax SHALL be supported:</p>
							<p>
								<code>GET [base]/Appointment/$find?{parameters}&amp;?{_count}</code>
							</p>
							<p>
								<code>POST [base]/Appointment/$find?{_count}</code>
							</p>
						</li>
					</ul>
				</li>
				<li>
					<p>A server <strong>SHALL</strong> be capable of creating or updating Appointments by supporting  the <a href="OperationDefinition-appointment-hold.html">Appointment Hold Operation</a>.</p>
					<p>
						<code>POST [base]/Appointment/[id]/$hold</code>
					</p>
					<p>
						<code>POST [base]/Appointment/$hold</code>
					</p>
				</li>
				<li>
					<p>A server <strong>SHALL</strong> be capable of creating or updating Appointments by supporting  the <a href="OperationDefinition-appointment-book.html">Appointment Book Operation</a>.</p>
					<p>
						<code>POST [base]/Appointment/[id]/$hold</code>
					</p>
					<p>
						<code>POST [base]/Appointment/$hold</code>
					</p>
				</li>
				<li>
					<p>A server <strong>SHALL</strong> be capable of updating Appointments by supporting patch and <strong>SHALL</strong> declare support for JSON, XML, or FHIRPath Patch.</p>
					<p>
						<code>PATCH [Base]/Appointment/[id]</code>
					</p>
				</li>
			</ol>
			<hr/>
			<h4 id="bundle">Bundle</h4>
			<p>Supported Profiles:</p>
			<ul>
				<li>
					<a href="StructureDefinition-avail-bundle.html">Argonaut Appointment Bundle Profile</a>
				</li>
				<li>
					<a href="StructureDefinition-slot-bundle.html">Argonaut Slot Bundle Profile</a>
				</li>
			</ul>
			<h4 id="coverage">Coverage</h4>
			<p>Supported Profiles:  <a href="StructureDefinition-argo-coverage.html">Argonaut Coverage Profile</a>
			</p>
			<p>Capabilities:</p>
			<ol>
				<li>
					<p>A server <strong>SHOULD</strong> be capable of updating or creating a patient's Coverage.</p>
					<ul>
						<li>A server MAY reject certain updates to the coverage information (for example, type of coverage) and SHOULD return an OperationOutcome explaining the reason.</li>
					</ul>
					<p>
						<code>PUT [base]/Coverage/[id]</code>
					</p>
					<p>
						<code>PUT or POST [base]/Coverage</code>
					</p>
				</li>
			</ol>
			<hr/>
			<h4 id="patient">Patient</h4>
			<p>Supported Profiles:  <a href="http://hl7.org/fhir/us/core/1.0.1//StructureDefinition-us-core-patient.html#search">US Core Patient Profile</a>
			</p>
			<h5>Capabilities</h5>
			<ol>
				<li>
					<p>A server <strong>SHALL</strong> be capable of searching for Patients as defined in the US Core Implementation Guide.</p>
				</li>
				<li>
					<p>A server <strong>SHOULD</strong> be capable of creating Patients by supporting create</p>
					<p>
						<code>POST [base]/Patient</code>
					</p>
					<ul>
						<li>The server <strong>SHOULD</strong> create a new patient resource only if the patient resource does not already exist in the system. If the patient is already registered within the system, the existing patient resource <strong>SHOULD</strong> be returned.</li>
					</ul>
				</li>
			</ol>
			<hr/>
			<h4 id="schedule">Schedule</h4>
			<p>Supported Profiles:  <a href="StructureDefinition-argo-sched-notif.html">Argonaut Schedule Notification Profile</a>
			</p>
			<hr/>
			<h4 id="slot">Slot</h4>
			<p>Supported Profiles:  <a href="StructureDefinition-prefetch-slot.html">Argonaut Prefetch Slot Profile</a>
			</p>
			<p>Capabilities:</p>
			<ol>
				<li>
					<p>A server <strong>SHALL</strong> be capable of returning Slots by supporting  the <a href="OperationDefinition-appointment-find.html">Appointment Availability Operation</a>.</p>
					<ul>
						<li>
							<p>Both the <code>GET</code> and <code>POST</code> Syntax SHALL be supported:</p>
							<p>
								<code>GET [base]/Slot/$prefetch?{parameters}</code>
							</p>
							<p>
								<code>POST [base]/Slot/$prefetch</code>
							</p>
						</li>
					</ul>
				</li>
			</ol>
			<hr/>
			<h4 id="subscription">Subscription</h4>
			<p>Supported Profiles:  <a href="StructureDefinition-argo-sub-notif.html">Argonaut Scheduling Subscription Profile</a>
			</p>
			<p>Capabilities:</p>
			<ol>
				<li>
					<p>A server <strong>SHALL</strong> be capable of creating Subscriptions</p>
					<p>
						<code>POST [base]/Subscription</code>
					</p>
				</li>
				<li>
					<p>A server <strong>SHALL</strong> be capable of deleting Subscriptions</p>
					<p>
						<code>DELETE [base]/Subscription</code>
					</p>
				</li>
			</ol>
			<br/>
		</div>"
  },
  "url" : "http://fhir.org/guides/argonaut-scheduling/CapabilityStatement/server",
  "version" : "1.0.0",
  "name" : "Argonaut_Scheduling_Server_CapabilityStatement",
  "title" : "Argonaut Scheduling Server CapabilityStatement",
  "status" : "active",
  "experimental" : false,
  "date" : "2018-03-18T18:00:00+11:00",
  "publisher" : "Argonaut Project",
  "description" : "The Argonaut Scheduling Server CapabilityStatement provides a for a complete list of supported RESTful interactions for the Argonaut Scheduling Implementation Guide",
  "jurisdiction" : [
    {
      "coding" : [
        {
          "system" : "urn:iso:std:iso:3166",
          "code" : "US",
          "display" : "United States of America"
        }
      ]
    }
  ],
  "kind" : "requirements",
  "fhirVersion" : "3.0.1",
  "format" : [
    "application/fhir+xml",
    "application/fhir+json"
  ],
  "patchFormat" : [
    "application/json-patch+json",
    "application/xml-patch+xml",
    "application/fhirpath-patch+fhirpath"
  ],
  "implementationGuide" : [
    "http://fhir.org/guides/argonaut-scheduling/ImplementationGuide/ig",
    "http://hl7.org/fhir/us/core/ImplementationGuide/ig"
  ],
  "rest" : [
    {
      "mode" : "server",
      "documentation" : "The [Argonaut](http://argonautwiki.hl7.org/) Scheduling Project is a vendor agnostic specification providing FHIR RESTful APIs and guidance for access to and booking of appointments for patients by both patient and practitioner end users. This specification is based on [FHIR Version 3.0.1](http://hl7.org/fhir/STU3) and specifically the [Scheduling and Appointment resources](http://hl7.org/fhir/STU3/administration-module.html#sched).",
      "security" : {
        "service" : [
          {
            "coding" : [
              {
                "system" : "http://hl7.org/fhir/restful-security-service",
                "code" : "SMART-on-FHIR"
              }
            ]
          }
        ],
        "description" : "For general security consideration refer to the [Security section](http://hl7.org/fhir/us/core/security.html) in the US Core Implementation Guide."
      },
      "resource" : [
        {
          "type" : "Appointment",
          "interaction" : [
            {
              "extension" : [
                {
                  "url" : "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
                  "valueCode" : "SHALL"
                }
              ],
              "code" : "read"
            },
            {
              "extension" : [
                {
                  "url" : "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
                  "valueCode" : "SHALL"
                }
              ],
              "code" : "search-type"
            },
            {
              "extension" : [
                {
                  "url" : "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
                  "valueCode" : "SHALL"
                }
              ],
              "code" : "patch"
            }
          ],
          "referencePolicy" : [
            "enforced"
          ],
          "searchParam" : [
            {
              "extension" : [
                {
                  "url" : "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
                  "valueCode" : "SHALL"
                }
              ],
              "name" : "_id",
              "definition" : "http://hl7.org/fhir/SearchParameter/_id",
              "type" : "token"
            },
            {
              "extension" : [
                {
                  "url" : "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
                  "valueCode" : "SHALL"
                }
              ],
              "name" : "patient",
              "definition" : "http://hl7.org/fhir/SearchParameter/patient",
              "type" : "reference"
            },
            {
              "extension" : [
                {
                  "url" : "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
                  "valueCode" : "SHOULD"
                }
              ],
              "name" : "status",
              "definition" : "http://hl7.org/fhir/SearchParameter/status",
              "type" : "token"
            },
            {
              "extension" : [
                {
                  "url" : "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
                  "valueCode" : "SHOULD"
                }
              ],
              "name" : "date",
              "definition" : "http://hl7.org/fhir/SearchParameter/date",
              "type" : "date"
            },
            {
              "extension" : [
                {
                  "url" : "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
                  "valueCode" : "SHOULD"
                }
              ],
              "name" : "practitioner",
              "definition" : "http://hl7.org/fhir/SearchParameter/practitioner",
              "type" : "reference",
              "documentation" : "including the date modifiers ‘ge’,’le’,’gt’,’lt’"
            }
          ]
        },
        {
          "type" : "Coverage",
          "interaction" : [
            {
              "extension" : [
                {
                  "url" : "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
                  "valueCode" : "SHOULD"
                }
              ],
              "code" : "create"
            },
            {
              "extension" : [
                {
                  "url" : "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
                  "valueCode" : "SHOULD"
                }
              ],
              "code" : "update"
            }
          ],
          "updateCreate" : true,
          "referencePolicy" : [
            "enforced"
          ]
        },
        {
          "type" : "Patient",
          "documentation" : "A serve **SHALL** be capable of searching for Patients as defined in the US Core Implementation Guide",
          "interaction" : [
            {
              "extension" : [
                {
                  "url" : "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
                  "valueCode" : "SHOULD"
                }
              ],
              "code" : "create"
            },
            {
              "extension" : [
                {
                  "url" : "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
                  "valueCode" : "SHALL"
                }
              ],
              "code" : "search-type"
            }
          ],
          "referencePolicy" : [
            "enforced"
          ]
        },
        {
          "type" : "Subscription",
          "interaction" : [
            {
              "extension" : [
                {
                  "url" : "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
                  "valueCode" : "SHALL"
                }
              ],
              "code" : "create"
            },
            {
              "extension" : [
                {
                  "url" : "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
                  "valueCode" : "SHALL"
                }
              ],
              "code" : "delete"
            }
          ]
        }
      ],
      "operation" : [
        {
          "extension" : [
            {
              "url" : "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
              "valueCode" : "SHALL"
            }
          ],
          "name" : "find",
          "definition" : {
            "reference" : "http://fhir.org/guides/argonaut-scheduling/OperationDefinition/appointment-find"
          }
        },
        {
          "extension" : [
            {
              "url" : "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
              "valueCode" : "SHALL"
            }
          ],
          "name" : "hold",
          "definition" : {
            "reference" : "http://fhir.org/guides/argonaut-scheduling/OperationDefinition/appointment-hold"
          }
        },
        {
          "extension" : [
            {
              "url" : "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
              "valueCode" : "SHALL"
            }
          ],
          "name" : "book",
          "definition" : {
            "reference" : "http://fhir.org/guides/argonaut-scheduling/OperationDefinition/appointment-book"
          }
        },
        {
          "extension" : [
            {
              "url" : "http://hl7.org/fhir/StructureDefinition/capabilitystatement-expectation",
              "valueCode" : "SHALL"
            }
          ],
          "name" : "prefetch",
          "definition" : {
            "reference" : "http://fhir.org/guides/argonaut-scheduling/OperationDefinition/slot-prefetch"
          }
        }
      ]
    }
  ]
}