Argonaut Provider Directory Implementation Guide Version 1.0.0

This page is part of the Argonaut Provider Directory 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

CapabilityStatement: server

Formats: XML, JSON, Turtle

CapabilityStatements Defined for this Guide

This section outlines conformance requirements for each of the Provider Directory actors 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 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 Provider Directory actors.

Conformance requirements for an Argonaut Provider Directory Server

  • FHIR Version: 3.0.0
  • Supported formats: xml, json
  • Published: 2017-04-30
  • Published by: Argonaut

The Section describes the expected capabilities of the Provider Directory actor which is responsible for providing responses to the queries submitted by Client applications. It describes the complete list of FHIR profiles, RESTful operations, and search parameters supported by US Provider Directory Servers. Provider Directory Clients have the option of choosing from this list to access necessary data based on their local use cases and other contextual requirements.

Behavior

Description: The Provider Directory Server SHALL:

  • Support the following US Provider Directory resource profiles:
    • Argonaut Endpoint
    • Argonaut Location
    • Argonaut Organization
    • Argonaut Practitioner
    • Argonaut PractitionerRole
  • Return the following response classes:
    • (Status 200): successful operation
    • (Status 400): invalid parameter
    • (Status 401/4xx): unauthorized request
    • (Status 403): insufficient scope
    • (Status 404): unknown resource
    • (Status 410): deleted resource.
  • Implement the RESTful behavior according to the FHIR specification.
  • Support json resource formats for all Provider Directory interactions.
  • Declare a CapabilityStatement identifying the list of profiles, operations, search parameter supported.

Security:

US Provider Directory Servers SHALL:

  • Implement the security requirements documented in the US Core IG.
  • A server has ensured that every API request includes a valid Authorization token, supplied via: Authorization: Bearer {server-specific-token-here}
  • A server has rejected any unauthorized requests by returning an HTTP 401 Unauthorized response code.

Profile Interaction Summary:

  • All servers SHALL make available the read and search interactions for the Profiles the server chooses to support.
  • All servers SHOULD make available the vread and history-instance interactions for the Profiles the server chooses to support.

Summary of Provider Directory search criteria

Specific server search capabilities are described in detail below in each of the resource sections. When returning a PractitionerRole, a Practitioner and Endpoint SHALL be included. When searching on Organization or Location, a server SHALL support the _include parameter for the endpoint parameter. The client application must properly process a bundle when all resources are included, and must be able to retrieve them when not included.

Resource Type Supported Profiles Supported Search parameters Supported _includes
Endpoint Argonaut Endpoint Profile identifier, organization, name
Location Argonaut Location Profile identifier, name, address Location:endpoint
Organization Argonaut Organization Profile identifier, name, address Organization:endpoint
Practitioner Argonaut Practitioner Profile identifier, name
PractitionerRole Argonaut PractitionerRole Profile practitioner, specialty PractitionerRole:practitioner, PractitionerRole:endpoint

Resource Details:

1. Endpoint

Supported Profiles: Argonaut Endpoint Profile

Search Criteria:

A server SHALL be capable of fetching an Endpoint using:

  • GET [base]/Endpoint?identifier=[system]|[code]
  • GET [base]/Endpoint?organization=[id]
  • GET [base]/Endpoint?name=[string]
Conformance Parameter Type _include (see documentation)
SHALL identifier token
SHALL name string
SHALL organization reference
2. Location

Supported Profiles: Argonaut Location Profile

Search Criteria:

A server SHALL be capable of returning a Location using:

  • GET [base]/Location?identifier=[system]|[code]{&_include=Location:endpoint}
  • GET [base]/Location?name=[string]{&_include=Location:endpoint}
  • GET [base]/Location?address=[string]{&_include=Location:endpoint}

Search Parameters:

Conformance Parameter Type _include (see documentation)
SHALL identifier token Location:endpoint
SHALL name string Location:endpoint
SHALL address string Location:endpoint
3. Organization

Supported Profiles: Argonaut Organization Profile

Search Criteria:

A server SHALL be capable of returning an Organization using:

  • GET [base]/Organization?identifier=[system]|[code]{&_include=Organization:endpoint}
  • GET [base]/Organization?name=[string]{&_include=Organization:endpoint}
  • GET [base]/Organization?address=[string]{&_include=Organization:endpoint}
Conformance Parameter Type _include (see documentation)
SHALL identifier token Organization:endpoint
SHALL name string Organization:endpoint
SHALL address string Organization:endpoint
4. Practitioner

Supported Profiles: Argonaut Practitioner Profile

Search Criteria:

A server SHALL be capable of returning a Practitioner using:

  • GET [base]/Practitioner?identifier=[system]|[code]
  • GET [base]/Practitioner?family=[string]&given=[string]
  • GET [base]/Practitioner?name=[string]
Conformance Parameter Type _include (see documentation)
SHALL identifier token
SHALL given string
SHALL family string
SHALL name string
5. PractitionerRole

Supported Profiles: Argonaut PractitionerRole Profile

Search Criteria:

A server SHALL be capable of returning a PractitionerRole using:

  • GET [base]/PractitionerRole?practitioner.identifier=[system]|[code]{&_include=PractitionerRole:practitioner&_include=PractitionerRole:endpoint}
  • GET [base]/PractitionerRole?practitioner.family=[string]&given=[string]{&_include=PractitionerRole:practitioner&_include=PractitionerRole:endpoint}
  • GET [base]/PractitionerRole?specialty=[system]|[code]{&_include=PractitionerRole:practitioner&_include=PractitionerRole:endpoint}

A server MAY return a PractitionerRole using:

  • GET [base]/PractitionerRole?location.address-city=[city]{&_include=PractitionerRole:practitioner&_include=PractitionerRole:endpoint}
  • GET [base]/PractitionerRole?location.address-city=[city]&specialty=[string]{&_include=PractitionerRole:practitioner&_include=PractitionerRole:endpoint}
  • GET [base]/PractitionerRole?location.near=[lat],[long]&near-distance=[distance]{&_include=PractitionerRole:practitioner&_include=PractitionerRole:endpoint}

Search Parameters:

Conformance Parameter Type _include (see documentation)
SHALL practitioner.identifier reference + token (chained parameter) PractitionerRole:practitioner, PractitionerRole:endpoint
SHALL practitioner.family reference + string (chained parameter) PractitionerRole:practitioner, PractitionerRole:endpoint
SHALL specialty token PractitionerRole:practitioner, PractitionerRole:endpoint
MAY location.address reference + string (chained parameter) PractitionerRole:practitioner, PractitionerRole:endpoint
MAY location.near, location.distance reference + token (chained parameter), reference + quantity (chained parameter) PractitionerRole:practitioner, PractitionerRole:endpoint