R6 Ballot (2nd Draft)

Publish-box (todo)

FHIR Infrastructure icon Work GroupMaturity Level: N/AStandards Status: Informative

The RESTful API defines a set of common interactions (read, update, search, etc.) performed on a repository of typed resources. For further information concerning how operations are defined and invoked, see Extended Operations on the RESTful API.

This is a full list of the operations defined by this specification:

Base Operations (All resource types)
Validate a resource [base]/[Resource]/$validate | [base]/[Resource]/[id]/$validate
Access a list of profiles, tags, and security labels [base]/$meta | [base]/[Resource]/$meta | [base]/[Resource]/[id]/$meta
Add profiles, tags, and security labels to a resource [base]/[Resource]/[id]/$meta-add
Delete profiles, tags, and security labels for a resource [base]/[Resource]/[id]/$meta-delete
Convert from one form to another [base]/$convert
Execute a graphql statement [base]/$graphql | [base]/[Resource]/[id]/$graphql
Return a graph of resources [base]/[Resource]/[id]/$graph
Add to an array in a large resource [base]/[Resource]/[id]/$add
Remove from an array in a large resource [base]/[Resource]/[id]/$remove
Filter an array in a large resource [base]/[Resource]/[id]/$filter
Fetch the current version of a canonical resource (based on canonical versioning) [base]/$current-canonical | [base]/[CanonicalResource]/$current-canonical
Operations Defined by Resource Types
Apply [base]/ActivityDefinition/$apply | [base]/ActivityDefinition/[id]/$apply
Data Requirements [base]/ActivityDefinition/[id]/$data-requirements
Fetch a subset of the CapabilityStatement resource [base]/CapabilityStatement/$subset | [base]/CapabilityStatement/[id]/$subset
Test if a server implements a client's required operations [base]/CapabilityStatement/$implements | [base]/CapabilityStatement/[id]/$implements
Test if a server implements a client's required operations [base]/CapabilityStatement/$conforms
Discover what versions a server supports [base]/$versions
Apply [base]/ChargeItemDefinition/[id]/$apply
Submit a Claim resource for adjudication [base]/Claim/$submit
Concept Look Up & Decomposition [base]/CodeSystem/$lookup | [base]/CodeSystem/[id]/$lookup
Code System based Validation [base]/CodeSystem/$validate-code | [base]/CodeSystem/[id]/$validate-code
Subsumption Testing [base]/CodeSystem/$subsumes | [base]/CodeSystem/[id]/$subsumes
Finding codes based on supplied properties [base]/CodeSystem/$find-matches | [base]/CodeSystem/[id]/$find-matches
Generate a Document [base]/Composition/[id]/$document
Concept Translation [base]/ConceptMap/$translate | [base]/ConceptMap/[id]/$translate
Closure Table Maintenance [base]/$closure
Submit an EligibilityRequest resource for assessment [base]/CoverageEligibilityRequest/$submit
Generate a DocumentReference from a document [base]/DocumentReference/$generate
Fetch DocumentReference [base]/DocumentReference/$docref
Fetch Encounter Record [base]/Encounter/[id]/$everything
Fetch EpisodeOfCare Record [base]/EpisodeOfCare/[id]/$everything
Fetch a group of Patient Records [base]/Group/[id]/$everything
Data Requirements [base]/$data-requirements | [base]/Library/[id]/$data-requirements
Find a functional list [base]/List/$find
Evaluate Measure [base]/Measure/$evaluate-measure | [base]/Measure/[id]/$evaluate-measure
Data Requirements [base]/Measure/[id]/$data-requirements
Submit Data [base]/Measure/$submit-data | [base]/Measure/[id]/$submit-data
Collect Data [base]/Measure/$collect-data | [base]/Measure/[id]/$collect-data
Care Gaps [base]/Measure/$care-gaps
Fetch Product Record [base]/MedicinalProductDefinition/$everything | [base]/MedicinalProductDefinition/[id]/$everything
Process Message [base]/$process-message
Fetch Preferred id [base]/NamingSystem/$preferred-id
Translate id [base]/NamingSystem/$translate-id
Observation Statistics [base]/Observation/$stats
Last N Observations Query [base]/Observation/$lastn
Find patient matches using MPI based logic [base]/Patient/$match
Fetch Patient Record [base]/Patient/$everything | [base]/Patient/[id]/$everything
Patient Merge [base]/Patient/$merge
Purge Patient Record [base]/Patient/[id]/$purge
Apply [base]/PlanDefinition/$apply | [base]/PlanDefinition/[id]/$apply
Data Requirements [base]/PlanDefinition/[id]/$data-requirements
Apply [base]/SpecimenDefinition/$apply | [base]/SpecimenDefinition/[id]/$apply
Build Questionnaire [base]/StructureDefinition/$questionnaire | [base]/StructureDefinition/[id]/$questionnaire
Generate Snapshot [base]/StructureDefinition/$snapshot | [base]/StructureDefinition/[id]/$snapshot
Model Instance Transformation [base]/StructureMap/$transform | [base]/StructureMap/[id]/$transform
Search and retrieve prior events for a Subscription [base]/Subscription/[id]/$events
Get Current Subscription Status for One or More Subscriptions [base]/Subscription/$status | [base]/Subscription/[id]/$status
Get a binding token for use in a websocket connection [base]/Subscription/$get-ws-binding-token | [base]/Subscription/[id]/$get-ws-binding-token
Value Set Expansion [base]/ValueSet/$expand | [base]/ValueSet/[id]/$expand
Value Set based Validation [base]/ValueSet/$validate-code | [base]/ValueSet/[id]/$validate-code

Notes:

  • The special operations on the meta element also operate on previous versions of a resource (/_history/). They are the only operations that can manipulate versions other than the "current" version.
  • Implementation Guides can define additional operations

This specification defines a set of services, which are business level aggregations of Resources and Operations that provide a defined package of functionality that correspond to an identified business need.

Note that in addition to the services defined in this specification, many implementation guides icon define business level services.

This table lists the services currently defined:

Name Description Links
Terminology Service

A service that lets healthcare applications make use of codes, code systems, and value sets without having to become experts in the fine details of the code system, value set and concept map resources, and the underlying code systems and terminological principles. The service provides the following functionality:

  • Defining and managing code systems, value sets, and concept maps
  • Code lookup & Validation
  • Value Set Expansion (including for UI data entry support)
  • Value Set Validation
  • Translations between code systems
  • Subsumption testing and other logical analyses
  • Maintaining a closure table
Capability statement
module
Conformance Service

A service that provides the underlying services needed to test whether resources conform to the rules defined by the FHIR specification and applicable implementation guides, and to help author implementation guides. The service provides the following functionality:

  • Defining and managing structure definitions, data elements, Capability statements, search parameters, and operation & compartment definitions
  • Resource Validation
  • Comparing and subsetting Capability statements
To be developed
Knowledge Repository

A service that provides basic retrieval and maintenance functionality for clinical knowledge artifacts. The service provides the following functionality:

  • Defining and managing plan and activity definitions (e.g. order sets, protocols, decision support rules, documentation templates, etc.), libraries, and measures
  • Search and retrieval of knowledge artifacts
  • Data requirements analysis of knowledge artifacts
Capability statement
module
Measure Processor

A service that provides measure evaluation functionality. The service provides the following functionality:

  • Searching and retrieval of measure definitions
  • Evaluation of measures for patients and populations
  • Data requirements analysis of measure definitions
Capability statement
module

Possible candidate Business Services for future versions:

  • Conversion Service (using mapping language, and also iso-semantic transforms in a resource)
  • Questionnaire related functionality (though see SDC)
  • Patient Registration & Reconciliation service (per IXS)
  • Medication Management service (home specific variant?)
  • Clinical Data Repository
  • Clinical Task Manager
  • Communications Manager
  • Other?

Note that there is already past & current work on some of these in HL7 (though not necessarily FHIR specific).