Argonaut Data Query Implementation Guide Version 1.0.0

This page is part of the Argonaut Data Query Implementation Guide (v1.0.0: Release) based on FHIR R2. This is the current published version in it's permanent home (it will always be available at this URL). For a full list of available versions, see the Directory of published versions

Argonaut Data Query Implementation Guide Server

Formats: XML, JSON, Turtle

Argonaut Data Query Implementation Guide Server

FHIR Version: 1.0.2
Supported formats: xml , json
Published: 2016-12-15
Published by: Argonaut Project

This profile defines the expected capabilities of a Argonaut Data Query server when conforming to the Argonaut Data Query IG The conformance resource includes the complete list of actual profiles, RESTful operations, and search parameters supported by Argonaut Data Query Servers. Servers have the option of choosing from this list to access necessary data based on their local use cases and other contextual requirements.


RESTful Behavior



Description:

The Argonaut Data Query Server SHALL:

  1. Support the Argonaut Data Query Patient resource profile.
  2. Support at least one additional resource profile from the list of Argonaut Data Query Profiles
  3. Implement REST behavior according to the FHIR specification
  4. Support json resource formats for all Argonaut Data Query interactions.
  5. Identify the Argonaut Data Query profile(s) supported as part of the FHIR Meta profile attribute for each instance.
  6. Declare a Conformance identifying the list of profiles, operations, search parameter supported.

The Argonaut Data Query Server SHOULD:

  1. Support xml resource formats for all Argonaut Data Query interactions.

Security:

Argonaut Data Query Servers SHALL

  1. implement the security requirements documented in this guide
  2. A server has ensured that every API request includes a valid Authorization token, supplied via: Authorization: Bearer {server-specific-token-here}
  3. A server has rejected any unauthorized requests by returning an HTTP 401 Unauthorized response code.

Supported Operations: MAY Support docref

Profile Summary:


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


Summary of Argonaut Profile search criteria. Specific server search capabilities are described in detail below in each of the resource sections.


Resource Type Supported Profiles Supported Searches Supported Includes
Patient
name , family , given , identifier , gender , birthdate
name + gender , name + birthdate , family + gender , given + gender
 
AllergyIntolerance
patient
 
CarePlan
patient , category , status , date
patient + category , patient + category + date , patient + category + status , patient + category + status + date
 
Condition
patient , category , clinicalstatus
patient + clinicalstatus , patient + category
 
Device
patient
 
DocumentReference
patient , period , type
patient + type + period
 
Goal
patient , date
patient + date
 
Immunization
patient
 
DiagnosticReport
patient , category , code , date
patient + category , patient + category + date , patient + category + code , patient + category + code + date
 
Medication

 
MedicationStatement
patient
MedicationStatement.medicationReference
MedicationOrder
patient
MedicationOrder.medicationReference
Observation
patient , category , code , date
patient + category , patient + category + date , patient + category + code , patient + category + code + date
 
Procedure
patient , date
patient + date
 

Resource  Details:


  1. Resource Type: Patient

    Supported Profiles: 

    Summary of Argonaut Data Query Search Criteria for StructureDefinition-argo-patient

    • A server is capable of returning a patient using GET [base]/Patient/[id].
    • A server returns valid FHIR Patient resources according to the Data Access Framework (DAF) Patient Profile..
    • A server has exposed a FHIR Patient search endpoint supporting at a minimum the following search parameters:
      • identifier
    • A server has exposed a FHIR Patient search endpoint supporting at a minimum the following search parameters when at least 2 (example name and gender) are present:
      • name
      • gender
      • birthdate

    Search Parameters:

    Conformance Parameter Type Modifiers
    SHALL name string  
    SHALL family string  
    SHALL given string  
    SHALL identifier token  
    SHALL gender token  
    SHALL birthdate date  

    Supported Search Combinations: name + gender , name + birthdate , family + gender , given + gender


  2. Resource Type: AllergyIntolerance

    Supported Profiles: 

    Summary of Argonaut Data Query Search Criteria for StructureDefinition-argo-allergyintolerance

    • A server is capable of returning a patient’s allergies using GET /AllergyIntolerance?patient=[id].

    Search Parameters:

    Conformance Parameter Type Modifiers
    SHALL patient reference  


  3. Resource Type: CarePlan

    Supported Profiles: 

    Summary of Argonaut Data Query Search Criteria for StructureDefinition-argo-careplan

    • A server is capable of returning all of a patient’s Assessment and Plan of Treatment information using GET /CarePlan?patient=[id]&category=assess-plan.
    • A server SHOULD be capable of returning a patient’s Assessment and Plan of Treatment information over a specified time period using GET /CarePlan?patient=[id]&category=assess-plan&date=[date].

    • A server SHOULD be capable returning all of a patient’s active Assessment and Plan of Treatment information using GET /CarePlan?patient=[id]&category=assess-plan&status=active.
    • A server SHOULD be capable returning a patient’s active Assessment and Plan of Treatment information over a specified time period using GET /CarePlan?patient=[id]&category=assess-plan&status=active&date=[date].

    Summary of Argonaut Search Criteria for StructureDefinition-argo-careteam

    • A server is capable of returning a patients current care team members using GET[base]/CarePlan?patient=[id]&category=careteam&status=active

    Search Parameters:

    Conformance Parameter Type Modifiers
    SHALL patient reference  
    SHALL category token  
    SHOULD status token  
    SHOULD date date

    The server SHALL support the date search modifiers ‘ge’,‘le’,‘gt','lt' for this profile

    Supported Search Combinations: patient + category , patient + category + date , patient + category + status , patient + category + status + date


  4. Resource Type: Condition

    Supported Profiles: 

    Summary of Argonaut Data Query Search Criteria for StructureDefinition-argo-condition

    • A server is capable of returning a patient’s conditions list using GET/Condition?patient=[id].

    • A server SHOULD be capable returning all of a patient’s active problems and health concerns using ‘GET /Condition?patient=[id]&clinicalstatus=active,recurrance,remission’
    • A server SHOULD be capable returning all of a patient’s problems or all of patient’s health concerns using ‘GET /Condition?patient=[id]&category=[problem|health-concern]’

    Search Parameters:

    Conformance Parameter Type Modifiers
    SHALL patient reference  
    SHOULD category token  
    SHOULD clinicalstatus token  

    Supported Search Combinations: patient + clinicalstatus , patient + category


  5. Resource Type: Device

    Supported Profiles: 

    Summary of Argonaut Data Query Search Criteria for StructureDefinition-argo-device

    • A server is capable of returning all Unique device identifier(s)(UDI) for a patient’s implanted device(s) using GET /Device?patient=[id].

    Search Parameters:

    Conformance Parameter Type Modifiers
    SHALL patient reference  


  6. Resource Type: DocumentReference

    Supported Profiles: 

    Search Criteria for StructureDefinition-argo-documentreference

    • To fetch document references, the Server SHALL support either:
      • a direct query for DocumentReference resources as described here
      • or the $docref operationoperation

    The Client SHALL support both methods.

    • If supporting a direct query, a server SHALL be capable of returning at least the most recent CCD document references and MAY provide most recent references to other document types for a patient using:GET [base]/DocumentReference/$docref?patient=[id]
    • If supporting a direct query, A server SHOULD be capable of returning references to CCD documents and MAY provide references to other document types for a patient searched by type and/or date using:GET [base]/DocumentReference/$docref?patient=[id]{&type=[type]}{&period=[date]}

    Search Parameters:

    Conformance Parameter Type Modifiers
    SHALL patient reference  
    SHOULD period date

    The server SHALL support the date search modifiers ‘ge’,‘le’,‘gt','lt' for this profile

    SHOULD type token  

    Supported Search Combinations: patient + type + period


  7. Resource Type: Goal

    Supported Profiles: 

    Summary of Argonaut Data Query Search Criteria for StructureDefinition-argo-device

    • A server is capable of returning all of a patient’s goals using GET [base]/Goal?patient=[id].
    • A server is capable of returning all of all of a patient’s goals over a specified time period using GET [base]/Goal?patient=[id]&date=[date]{&date=[date]}.

    Search Parameters:

    Conformance Parameter Type Modifiers
    SHALL patient reference  
    SHALL date date

    The server SHALL support the date search modifiers ‘ge’,‘le’,‘gt','lt' for this profile

    Supported Search Combinations: patient + date


  8. Resource Type: Immunization

    Supported Profiles: 

    Summary of Argonaut Data Query Search Criteria for StructureDefinition-argo-immunization

    • A client has connected to a server and fetched all immunizations for a patient using GET /Immunization?patient=[id].

    Search Parameters:

    Conformance Parameter Type Modifiers
    SHALL patient reference  


  9. Resource Type: DiagnosticReport

    Supported Profiles: 

    Summary of Argonaut Data Query Search Criteria for StructureDefinition-argo-diagnosticreport

    • A server is capable of returning all of a patient’s laboratory diagnostic reports queried by category using GET [base]/DiagnosticReport?patient=[id]&category=LAB.
    • A server is capable of returning all of a patient’s laboratory diagnostic reports queried by category code and date range using GET [base]/DiagnosticReport?patient=[id]&category=LAB&date=[date]{&date=[date]}.
    • A server is capable of returning all of a patient’s laboratory diagnostic reports queried by category and code using GET [base]/DiagnosticReport?patient=[id]&category=LAB&code=[LOINC].

    • A server SHOULD be capable of returning all of a patient’s laboratory diagnostic reports queried by category and one or more codes and date range using GET [base]/DiagnosticReport?patient=[id]&category=LAB&code=[LOINC1{,LOINC2,LOINC3,…}]&date=[date]{&date=[date]}.

    Search Parameters:

    Conformance Parameter Type Modifiers
    SHALL patient reference  
    SHALL category token  
    SHALL code token  
    SHALL date date

    The server SHALL support the date search modifiers ‘ge’,‘le’,‘gt','lt' for this profile

    Supported Search Combinations: patient + category , patient + category + date , patient + category + code , patient + category + code + date


  10. Resource Type: Medication

    Supported Profiles: 

    The MedicationStatement and MedicationOrder resources can represent a medication, using either a code or refer to a Medication resource. If the Medication Resource is used in a MedicationStatement or a MedicationOrder, then the READ and SEARCH Criteria SHALL be supported.

    Search Parameters:

    Conformance Parameter Type Modifiers


  11. Resource Type: MedicationStatement

    Supported Profiles: 

    Summary of Argonaut Data Query Search Criteria for StructureDefinition-argo-medicationstatement

    The MedicationStatement and MedicationOrder resources can represent a medication, using either a code or refer to a Medication resource. When referencing a Medication resource, the resource may be contained or an external resource. The server application can choose any one way or more than one method, but IF the an external reference to Medication is used, the server SHALL support the include parameter for searching this element. The client application must support both methods.

    • A server is capable of returning a patient’s medications using one of or both
    1. GET /MedicationStatement?patient=[id]
    2. GET /MedicationStatement?patient=[id]&_include=MedicationStatement:medication

    Search Parameters:

    Conformance Parameter Type Modifiers
    SHALL patient reference  

    Supported Includes: MedicationStatement.medicationReference


  12. Resource Type: MedicationOrder

    Supported Profiles: 

    Summary of Argonaut Data Query Search Criteria for StructureDefinition-argo-MedicationOrder

    The MedicationStatement and MedicationOrder resources can represent a medication, using either a code or refer to a Medication resource. When referencing a Medication resource, the resource may be contained or an external resource. The server application can choose any one way or more than one method, but if the an external reference to Medication is used, the server SHALL support the include parameter for searching this element. The client application must support both methods.

    • A server is capable of returning a patient’s medications using one of or both
    1. GET /MedicationOrder?patient=[id]
    2. GET /MedicationOrder?patient=[id]&_include=MedicationOrder:medication

    Search Parameters:

    Conformance Parameter Type Modifiers
    SHALL patient reference  

    Supported Includes: MedicationOrder.medicationReference


  13. Resource Type: Observation

    Supported Profiles: 

    .

    Summary of Argonaut Data Query Search Criteria for StructureDefinition-argo-observationresults

    • A server is capable of returning all of a patient's laboratory results queried by category using GET [base]/Observation?patient=[id]&category=laboratory.
    • A server is capable of returning all of a patient's laboratory results queried by category code and date range usingGET [base]/Observation?patient=[id]&category=laboratory&date=[date]{&date=[date]}.
    • A server is capable of returning all of a patient's laboratory results queried by category and code using GET [base]/Observation?patient=[id]&category=laboratory&code=[LOINC].
    • A server SHOULD be capable of returning all of a patient's laboratory results queried by category and one or more codes and date range using GET [base]/Observation?patient=[id]&category=laboratory&code=[LOINC1{,LOINC2,LOINC3,...}]&date=[date]{&date=[date]}.

    Summary of Argonaut Data Query Search Criteria for StructureDefinition-argo-smokingstatus

    • A server is capable of returning a a patient’s smoking status using GET [base]/Observation?patient=[id]&code=72166-2

    Summary of Argonaut Data Query Search Criteria for StructureDefinition-argo-vitalsigns

    • A server is capable of returning all of a patient’s vital signs that it supports using GET [base]/Observation?patient=[id]&category=vital-signs.
    • A server is capable of returning all of a patient’s vital signs queried by date range using GET [base]/Observation?patient=[id]&category=vital-signs&date=[date]{&date=[date]}.
    • A server is capable of returning any of a patient’s vital signs queried by one or more of the codes listed below using GET [base]/Observation?patient=[id]&code[vital sign LOINC{,LOINC2,LOINC3,…}].

    • A server SHOULD be capable of returning any of a patient’s vital signs queried by one or more of the codes listed below and date range using GET [base]/Observation?patient=[id]&code=[LOINC{,LOINC2…}]vital-signs&date=[date]{&date=[date]}.

    Search Parameters:

    Conformance Parameter Type Modifiers
    SHALL patient reference  
    SHALL category token  
    SHALL code token  
    SHALL date date

    The server SHALL support the date search modifiers ‘ge’,‘le’,‘gt','lt' for this profile

    Supported Search Combinations: patient + category , patient + category + date , patient + category + code , patient + category + code + date


  14. Resource Type: Procedure

    Supported Profiles: 

    Summary of Argonaut Data Query Search Criteria for StructureDefinition-argo-procedure

    • A server is capable of returning a patient’s procedures using GET/Procedure?patient=[id].
    • A server is capable of returning all of all of a patient’s procedures over a specified time period using GET /Procedure?patient=[id]&date=[date]{&date=[date]}.

    Search Parameters:

    Conformance Parameter Type Modifiers
    SHALL patient reference  
    SHALL date date

    The server SHALL support the date search modifiers ‘ge’,‘le’,‘gt','lt' for this profile

    Supported Search Combinations: patient + date