Argonaut Provider Directory CI Build

This page is part of the Argonaut Provider Directory Guide (v0.1.0: Release 1 Draft) based on FHIR v1.9.0. The current version which supercedes this version is 1.0.0. For a full list of available versions, see the Directory of published versions

D.4.1 StructureDefinition-argo-practitionerrole

US Core AllergyIntolerance Profile

Scope and Usage

This profile sets minimum expectations for the PractitionerRole resource to record, search and fetch allergies/adverse events associated with a patient. It identifies the mandatory core elements, extensions, vocabularies and value sets which SHALL be present in the AllergyIntolerance resource when using this profile. The requirements for the Argonaut Provider Directory data model were drawn from IHE Healthcare Provider Directory and the ONC Provider Directory Workshop.

Mandatory Data Elements and Terminology

The following data-elements are mandatory (i.e data MUST be present). These are presented below in a simple human-readable explanation. Profile specific guidance and examples are provided as well. The Formal Profile Definition below provides the formal summary, definitions, and terminology requirements.

Each PractitionerRole must have:

  1. An associated practitioner
  2. An associated organization
  3. A list of specialities
  4. Contact information

Profile specific implementation guidance:

  • The Practitioner resource SHALL be included when returning the PractitionerRole resource.
  • The Endpoint resource SHALL be included when returning the PractitionerRole resource.
  • The PractitionerRole.endpoint is where the Direct address is included.

D.4.1.1 Formal Views of Profile Content

The official URL for this profile is:

http://fhir.org/guides/argonaut-pd/StructureDefinition/argo-practitionerrole

This profile builds on PractitionerRole.

This profile was published on Wed Nov 09 00:00:00 AEDT 2016 as a draft by Argonaut Project.

Description of Profiles, Differentials, Snapshots, and how the XML and JSON presentations work.

Summary of the Mandatory Requirements

  1. One practitioner in PractitionerRole.practitioner
  2. One organization in PractitionerRole.organization
  3. One practitioner role code in `PractitionerRole.code” which has an extensible binding to:
  4. One practitioner specialty code in `PractitionerSpecialty.code” which has an extensible binding to:
  5. One reference to a location in PractitionerRole.location
  6. At least one contact using either ‘PractitionerRole.telecom’ OR or reference to an EndPoint Resource in PractitionerRole.endpoint
NameFlagsCard.TypeDescription & Constraintsdoco
.. PractitionerRole I0..*Argonaut Provider Directory PractitionerRole
pd-1: SHALL have contact information or a reference to an Endpoint
... practitioner S1..1Reference(http://fhir.org/guides/argonaut-pd/StructureDefinition-argo-practitioner)
... organization S1..1Reference(http://fhir.org/guides/argonaut-pd/StructureDefinition-argo-organization)
... code S1..1CodeableConceptBinding: Argonaut Provider Directory Provider Role (NUCC) (required)
... specialty S1..1CodeableConceptBinding: Argonaut Provider Directory Provider Speciality (NUCC) (required)
... location S0..*Reference(http://fhir.org/guides/argonaut-pd/StructureDefinition-argo-location)
... telecom SI0..*ContactPoint
.... system S1..1code
.... value S1..1string
... endpoint SI0..*Reference(http://fhir.org/guides/argonaut-pd/StructureDefinition-argo-endpoint)

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. PractitionerRole I0..*Argonaut Provider Directory PractitionerRole
pd-1: SHALL have contact information or a reference to an Endpoint
... id ∑0..1idLogical id of this artifact
... meta ∑0..1MetaMetadata about the resource
... implicitRules ?!∑0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional Content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier ∑0..*IdentifierBusiness Identifiers that are specific to a role/location
... active ∑0..1booleanWhether this practitioner's record is in active use
... practitioner S1..1Reference(http://fhir.org/guides/argonaut-pd/StructureDefinition-argo-practitioner)Practitioner that is able to provide the defined services for the organation
... organization S1..1Reference(http://fhir.org/guides/argonaut-pd/StructureDefinition-argo-organization)Organization where the roles are available
... code S1..1CodeableConceptRoles which this practitioner may perform
Binding: Argonaut Provider Directory Provider Role (NUCC) (required)
... specialty S1..1CodeableConceptSpecific specialty of the practitioner
Binding: Argonaut Provider Directory Provider Speciality (NUCC) (required)
... location S0..*Reference(http://fhir.org/guides/argonaut-pd/StructureDefinition-argo-location)The location(s) at which this practitioner provides care
... healthcareService 0..*Reference(HealthcareService)The list of healthcare services that this worker provides for this role's Organization/Location(s)
... telecom S0..*ContactPointContact details that are specific to the role/location/service
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... system SI1..1codephone | fax | email | pager | url | other
Binding: ContactPointSystem (required)
.... value S1..1stringThe actual contact point details
.... use ?!∑0..1codehome | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required)
.... rank ∑0..1positiveIntSpecify preferred order of use (1 = highest)
.... period ∑0..1PeriodTime period when the contact point was/is in use
... period ∑0..1PeriodThe period during which the practitioner is authorized to perform in these role(s)
... availableTime I0..*BackboneElementTimes the Service Site is available
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... daysOfWeek 0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
.... allDay 0..1booleanAlways available? e.g. 24 hour service
.... availableStartTime 0..1timeOpening time of day (ignored if allDay = true)
.... availableEndTime 0..1timeClosing time of day (ignored if allDay = true)
... notAvailable I0..*BackboneElementNot available during this time due to provided reason
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... description 1..1stringReason presented to the user explaining why time not available
.... during 0..1PeriodService not availablefrom this date
... availabilityExceptions 0..1stringDescription of availability exceptions
... endpoint S0..*Reference(http://fhir.org/guides/argonaut-pd/StructureDefinition-argo-endpoint)Technical endpoints providing access to services operated for the practitioner with this role

doco Documentation for this format

Summary of the Mandatory Requirements

  1. One practitioner in PractitionerRole.practitioner
  2. One organization in PractitionerRole.organization
  3. One practitioner role code in `PractitionerRole.code” which has an extensible binding to:
  4. One practitioner specialty code in `PractitionerSpecialty.code” which has an extensible binding to:
  5. One reference to a location in PractitionerRole.location
  6. At least one contact using either ‘PractitionerRole.telecom’ OR or reference to an EndPoint Resource in PractitionerRole.endpoint

Differential View

NameFlagsCard.TypeDescription & Constraintsdoco
.. PractitionerRole I0..*Argonaut Provider Directory PractitionerRole
pd-1: SHALL have contact information or a reference to an Endpoint
... practitioner S1..1Reference(http://fhir.org/guides/argonaut-pd/StructureDefinition-argo-practitioner)
... organization S1..1Reference(http://fhir.org/guides/argonaut-pd/StructureDefinition-argo-organization)
... code S1..1CodeableConceptBinding: Argonaut Provider Directory Provider Role (NUCC) (required)
... specialty S1..1CodeableConceptBinding: Argonaut Provider Directory Provider Speciality (NUCC) (required)
... location S0..*Reference(http://fhir.org/guides/argonaut-pd/StructureDefinition-argo-location)
... telecom SI0..*ContactPoint
.... system S1..1code
.... value S1..1string
... endpoint SI0..*Reference(http://fhir.org/guides/argonaut-pd/StructureDefinition-argo-endpoint)

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. PractitionerRole I0..*Argonaut Provider Directory PractitionerRole
pd-1: SHALL have contact information or a reference to an Endpoint
... id ∑0..1idLogical id of this artifact
... meta ∑0..1MetaMetadata about the resource
... implicitRules ?!∑0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: Common Languages (extensible)
... text I0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional Content defined by implementations
... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... identifier ∑0..*IdentifierBusiness Identifiers that are specific to a role/location
... active ∑0..1booleanWhether this practitioner's record is in active use
... practitioner S1..1Reference(http://fhir.org/guides/argonaut-pd/StructureDefinition-argo-practitioner)Practitioner that is able to provide the defined services for the organation
... organization S1..1Reference(http://fhir.org/guides/argonaut-pd/StructureDefinition-argo-organization)Organization where the roles are available
... code S1..1CodeableConceptRoles which this practitioner may perform
Binding: Argonaut Provider Directory Provider Role (NUCC) (required)
... specialty S1..1CodeableConceptSpecific specialty of the practitioner
Binding: Argonaut Provider Directory Provider Speciality (NUCC) (required)
... location S0..*Reference(http://fhir.org/guides/argonaut-pd/StructureDefinition-argo-location)The location(s) at which this practitioner provides care
... healthcareService 0..*Reference(HealthcareService)The list of healthcare services that this worker provides for this role's Organization/Location(s)
... telecom S0..*ContactPointContact details that are specific to the role/location/service
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... system SI1..1codephone | fax | email | pager | url | other
Binding: ContactPointSystem (required)
.... value S1..1stringThe actual contact point details
.... use ?!∑0..1codehome | work | temp | old | mobile - purpose of this contact point
Binding: ContactPointUse (required)
.... rank ∑0..1positiveIntSpecify preferred order of use (1 = highest)
.... period ∑0..1PeriodTime period when the contact point was/is in use
... period ∑0..1PeriodThe period during which the practitioner is authorized to perform in these role(s)
... availableTime I0..*BackboneElementTimes the Service Site is available
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... daysOfWeek 0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
.... allDay 0..1booleanAlways available? e.g. 24 hour service
.... availableStartTime 0..1timeOpening time of day (ignored if allDay = true)
.... availableEndTime 0..1timeClosing time of day (ignored if allDay = true)
... notAvailable I0..*BackboneElementNot available during this time due to provided reason
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!∑0..*ExtensionExtensions that cannot be ignored
.... description 1..1stringReason presented to the user explaining why time not available
.... during 0..1PeriodService not availablefrom this date
... availabilityExceptions 0..1stringDescription of availability exceptions
... endpoint S0..*Reference(http://fhir.org/guides/argonaut-pd/StructureDefinition-argo-endpoint)Technical endpoints providing access to services operated for the practitioner with this role

doco Documentation for this format

Downloads: StructureDefinition: (XML, JSON, CSV), Schema: XML Schematron

 

D.4.1.2 Quick Start

Below is an overview of the required search and read operations.

Summary of Argonaut Search Criteria for StructureDefinition-argo-practitionerrole


Clients

  • A client has connected to a server and fetched a PractionerRole by identifier using GET [base]/PractionerRole?identifier=[system]|[code]
  • A client has connected to a server and fetched a PractionerRole by name using GET [base]/PractionerRole?family=[string]&given=[string]
  • A client has connected to a server and fetched a PractitionerRole by specialty using ‘GET [base]/PractitionerRole?specialty=[system] [code]’

Servers

  • A server is capable of returning a PractionerRole by identifier using GET [base]/PractionerRole?identifier=[system]|[code]
  • A server is capable of returning a PractionerRole by name using GET [base]/PractionerRole?family=[string]&given=[string]
  • A server is capable of returning a PractitionerRole by specialty using GET [base]/PractitionerRole?specialty=[system] [code]
  • 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.

**GET [base]/PractionerRole?identifier=[system] [code]**

Support: Mandatory

Implementation Notes: Search based on PractionerRole identifier (how to search by token).

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request

Example:

GET https://fhir-open-api-dstu2.smarthealthit.org/PractionerRole?identifier=http://hl7.org/fhir/sid/us-npi%7C1497860456


**GET [base]/PractitionerRole?practitioner.identifier=[system] [code]**

Support: Mandatory

Implementation Notes: Search based on Practitioner identifier (NPI) (how to search by token).

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request

Example:

GET http://fhir3.healthintersections.com.au/open/PractitionerRole?practitioner.identifier=http://hl7.org/fhir/sid/us-ssn%7C999999999


GET [base]/PractitionerRole?practitioner.family=[string]&given=[string]

Support: Mandatory

Implementation Notes: Search based on text name (how to search by string).

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request

Example:

GET http://fhir3.healthintersections.com.au/open/PractitionerRole?practitioner.family=verify&given=v

GET http://fhir3.healthintersections.com.au/open/PractitionerRole?practitioner.family=verify&given=v&_include=PractitionerRole:practitioner


**GET [base]/PractitionerRole?specialty=[system] [code]]**

Support: Mandatory

Implementation Notes: Search based on specialty (how to search by token).

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request

Example:

GET http://fhir3.healthintersections.com.au/open/PractitionerRole?specialty=http://hl7.org/fhir/practitioner-specialty%7Ccardio

Get http://fhir3.healthintersections.com.au/open/PractitionerRole?specialty:text=cardio&_include=PractitionerRole:practitioner


Searches under development

GET [base]/Practitioner?location.address-city=[city] GET [base]/Practitioner?location.address-city=[city]&specialty=[string] GET [base]/Practitioner?location.near=-72.519854,42.373222&near-distance=2m

Support: Mandatory

Implementation Notes: Search based on location (how to search by reference).

Response Class:

  • (Status 200): successful operation
  • (Status 400): invalid parameter
  • (Status 401/4xx): unauthorized request

Example:

TBD