HL7 FHIR® US Core Implementation Guide STU 3

Argo R4, published by The Argonaut Project. This is not an authorized publication; it is the continuous build for version 3.1.0). This version is based on the current content of https://github.com/argonautproject/R4/ and changes regularly. See the Directory of published versions

StructureDefinition-us-core-provenance

This profile sets minimum expectations for the Provenance resource to record, search and fetch Provenance information associated with a record. It identifies which core elements, extensions, vocabularies and value sets SHALL be present in the resource when using this profile. This FHIR Provenance profile here covers the minimal (basic) information to support lineage of information.

Example Usage Scenarios:

The following are example usage scenarios for the US Core Provenance profile:

  • Query for the Provenance records associated with an Allergy
  • Query for the Provenance records associated with a Problem

Mandatory and Must Support Data Elements

The following data-elements are mandatory (i.e. data MUST be present) or must be supported if the data is present in the sending system (Must Support definition). They 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 Provenance must have:

  1. resource(s) the Provenance record is supporting (target)
  2. a date and time for the activity

Each Provenance must support:

  1. an author responsible for the update
  2. the author organization responsible for the information
  3. the transmitter device or organization that provided the information
  4. if the transmitter device is provided, the transmitter organization responsible for the transmission is also required.

Profile specific implementation guidance:

  • If a system receives a provider in Provenance.agent.who as free text they must capture who sent them the information as the organization. On request they SHALL provide this organization as the source and MAY include the free text provider.

Examples

Formal Views of Profile Content

Description of Profiles, Differentials, and Snapshots.

The official URL for this profile is: http://hl7.org/fhir/us/core/StructureDefinition/us-core-provenance

Published on Mon Aug 05 00:00:00 UTC 2019 as active by the HL7 US Realm Steering Committee.

This profile builds on Provenance


Provenance

Summary of the Mandatory Requirements

  1. One or more Target References in Provenance.target
  2. An instant in Provenance.recorded
  3. One or more Agents in Provenance.agent
    • which must have at least a Agent value in Provenance.agent
      • which must have a CodeableConcept value in Provenance.agent.type with an extensible binding to Provenance participant type
        • which must have a Coding value in Provenance.agent.type.coding
          • which must have a fixed Provenance.agent.type.coding.system = http://terminology.hl7.org/CodeSystem/provenance-participant-type
          • which must have a fixed Provenance.agent.type.coding.code = author
      • which must have a Who Reference value in Provenance.agent.who
      • which should have a Onbehalfof Reference value in Provenance.agent.onBehalfOf
NameFlagsCard.TypeDescription & Constraintsdoco
.. Provenance 0..*US Core Provenance - DRAFT
... target S1..*Reference(Resource)The Resource this Provenance record supports
... recorded S1..1instantTimestamp when the activity was recorded / updated
... agent S1..*(Slice Definition)Slice: Unordered, Open by pattern:type
.... agent:All Slices Content/Rules for all slices
..... type S0..1CodeableConceptBinding: US Core Provenance Participant Type Codes (extensible)
.... agent:ProvenanceAuthorSlice S0..*BackboneElement
..... type S1..1CodeableConceptRequired Pattern: At least the following
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/provenance-participant-type
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: author
..... who S1..1Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | RelatedPerson | US Core Patient Profile | Device | US Core Organization Profile)
..... onBehalfOf SI0..1Reference(US Core Organization Profile)provenance-1: onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device
.... agent:ProvenanceTransmitterSlice S0..1BackboneElement
..... type S1..1CodeableConceptRequired Pattern: At least the following
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... system1..1uriIdentity of the terminology system
Fixed Value: http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: transmitter
..... who S1..1Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | RelatedPerson | US Core Patient Profile | Device | US Core Organization Profile)
..... onBehalfOf SI0..1Reference(US Core Organization Profile)provenance-1: onBehalfOf SHALL be present when Provenance.agent.who is a Device

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraintsdoco
.. Provenance I0..*US Core Provenance - DRAFT
... 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: CommonLanguages (preferred)
Max Binding: AllLanguages
... text 0..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
... target SΣ1..*Reference(Resource)The Resource this Provenance record supports
... occurred[x] 0..1When the activity occurred
.... occurredPeriodPeriod
.... occurredDateTimedateTime
... recorded SΣ1..1instantTimestamp when the activity was recorded / updated
... policy 0..*uriPolicy or plan the activity was defined by
... location 0..1Reference(Location)Where the activity occurred, if relevant
... reason 0..*CodeableConceptReason the activity is occurring
Binding: V3 Value SetPurposeOfUse (extensible)
... activity 0..1CodeableConceptActivity that occurred
Binding: ProvenanceActivityType (extensible)
... agent SI1..*(Slice Definition)Actor involved
Slice: Unordered, Open by pattern:type
.... agent:All Slices Content/Rules for all slices
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type SΣ0..1CodeableConceptHow the agent participated
Binding: US Core Provenance Participant Type Codes (extensible)
..... role 0..*CodeableConceptWhat the agents role was
Binding: SecurityRoleType (example)
..... who Σ1..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)Who participated
..... onBehalfOf 0..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)Who the agent is representing
.... agent:ProvenanceAuthorSlice SI0..*BackboneElementActor involved
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type SΣ1..1CodeableConceptHow the agent participated
Binding: ProvenanceParticipantType (extensible)
Required Pattern: At least the following
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... id0..1stringUnique id for inter-element referencing
....... extension0..*ExtensionAdditional content defined by implementations
....... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/provenance-participant-type
....... version0..1stringVersion of the system - if relevant
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: author
....... display0..1stringRepresentation defined by the system
....... userSelected0..1booleanIf this coding was chosen directly by the user
...... text0..1stringPlain text representation of the concept
..... role 0..*CodeableConceptWhat the agents role was
Binding: SecurityRoleType (example)
..... who SΣ1..1Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | RelatedPerson | US Core Patient Profile | Device | US Core Organization Profile)Who participated
..... onBehalfOf SI0..1Reference(US Core Organization Profile)Who the agent is representing
provenance-1: onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device
.... agent:ProvenanceTransmitterSlice SI0..1BackboneElementActor involved
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type SΣ1..1CodeableConceptHow the agent participated
Binding: ProvenanceParticipantType (extensible)
Required Pattern: At least the following
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... id0..1stringUnique id for inter-element referencing
....... extension0..*ExtensionAdditional content defined by implementations
....... system1..1uriIdentity of the terminology system
Fixed Value: http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type
....... version0..1stringVersion of the system - if relevant
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: transmitter
....... display0..1stringRepresentation defined by the system
....... userSelected0..1booleanIf this coding was chosen directly by the user
...... text0..1stringPlain text representation of the concept
..... role 0..*CodeableConceptWhat the agents role was
Binding: SecurityRoleType (example)
..... who SΣ1..1Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | RelatedPerson | US Core Patient Profile | Device | US Core Organization Profile)Who participated
..... onBehalfOf SI0..1Reference(US Core Organization Profile)Who the agent is representing
provenance-1: onBehalfOf SHALL be present when Provenance.agent.who is a Device
... entity I0..*BackboneElementAn entity used in this activity
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... role Σ1..1codederivation | revision | quotation | source | removal
Binding: ProvenanceEntityRole (required)
.... what Σ1..1Reference(Resource)Identity of entity
.... agent 0..*Unknown reference to #Provenance.agent:ProvenanceTransmitterSlice
Entity is attributed to this agent
... signature 0..*SignatureSignature on target

doco Documentation for this format

Provenance

Summary of the Mandatory Requirements

  1. One or more Target References in Provenance.target
  2. An instant in Provenance.recorded
  3. One or more Agents in Provenance.agent
    • which must have at least a Agent value in Provenance.agent
      • which must have a CodeableConcept value in Provenance.agent.type with an extensible binding to Provenance participant type
        • which must have a Coding value in Provenance.agent.type.coding
          • which must have a fixed Provenance.agent.type.coding.system = http://terminology.hl7.org/CodeSystem/provenance-participant-type
          • which must have a fixed Provenance.agent.type.coding.code = author
      • which must have a Who Reference value in Provenance.agent.who
      • which should have a Onbehalfof Reference value in Provenance.agent.onBehalfOf

Differential View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Provenance 0..*US Core Provenance - DRAFT
... target S1..*Reference(Resource)The Resource this Provenance record supports
... recorded S1..1instantTimestamp when the activity was recorded / updated
... agent S1..*(Slice Definition)Slice: Unordered, Open by pattern:type
.... agent:All Slices Content/Rules for all slices
..... type S0..1CodeableConceptBinding: US Core Provenance Participant Type Codes (extensible)
.... agent:ProvenanceAuthorSlice S0..*BackboneElement
..... type S1..1CodeableConceptRequired Pattern: At least the following
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/provenance-participant-type
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: author
..... who S1..1Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | RelatedPerson | US Core Patient Profile | Device | US Core Organization Profile)
..... onBehalfOf SI0..1Reference(US Core Organization Profile)provenance-1: onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device
.... agent:ProvenanceTransmitterSlice S0..1BackboneElement
..... type S1..1CodeableConceptRequired Pattern: At least the following
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... system1..1uriIdentity of the terminology system
Fixed Value: http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: transmitter
..... who S1..1Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | RelatedPerson | US Core Patient Profile | Device | US Core Organization Profile)
..... onBehalfOf SI0..1Reference(US Core Organization Profile)provenance-1: onBehalfOf SHALL be present when Provenance.agent.who is a Device

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Provenance I0..*US Core Provenance - DRAFT
... 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: CommonLanguages (preferred)
Max Binding: AllLanguages
... text 0..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
... target SΣ1..*Reference(Resource)The Resource this Provenance record supports
... occurred[x] 0..1When the activity occurred
.... occurredPeriodPeriod
.... occurredDateTimedateTime
... recorded SΣ1..1instantTimestamp when the activity was recorded / updated
... policy 0..*uriPolicy or plan the activity was defined by
... location 0..1Reference(Location)Where the activity occurred, if relevant
... reason 0..*CodeableConceptReason the activity is occurring
Binding: V3 Value SetPurposeOfUse (extensible)
... activity 0..1CodeableConceptActivity that occurred
Binding: ProvenanceActivityType (extensible)
... agent SI1..*(Slice Definition)Actor involved
Slice: Unordered, Open by pattern:type
.... agent:All Slices Content/Rules for all slices
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type SΣ0..1CodeableConceptHow the agent participated
Binding: US Core Provenance Participant Type Codes (extensible)
..... role 0..*CodeableConceptWhat the agents role was
Binding: SecurityRoleType (example)
..... who Σ1..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)Who participated
..... onBehalfOf 0..1Reference(Practitioner | PractitionerRole | RelatedPerson | Patient | Device | Organization)Who the agent is representing
.... agent:ProvenanceAuthorSlice SI0..*BackboneElementActor involved
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type SΣ1..1CodeableConceptHow the agent participated
Binding: ProvenanceParticipantType (extensible)
Required Pattern: At least the following
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... id0..1stringUnique id for inter-element referencing
....... extension0..*ExtensionAdditional content defined by implementations
....... system1..1uriIdentity of the terminology system
Fixed Value: http://terminology.hl7.org/CodeSystem/provenance-participant-type
....... version0..1stringVersion of the system - if relevant
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: author
....... display0..1stringRepresentation defined by the system
....... userSelected0..1booleanIf this coding was chosen directly by the user
...... text0..1stringPlain text representation of the concept
..... role 0..*CodeableConceptWhat the agents role was
Binding: SecurityRoleType (example)
..... who SΣ1..1Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | RelatedPerson | US Core Patient Profile | Device | US Core Organization Profile)Who participated
..... onBehalfOf SI0..1Reference(US Core Organization Profile)Who the agent is representing
provenance-1: onBehalfOf SHALL be present when Provenance.agent.who is a Practitioner or Device
.... agent:ProvenanceTransmitterSlice SI0..1BackboneElementActor involved
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
..... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
..... type SΣ1..1CodeableConceptHow the agent participated
Binding: ProvenanceParticipantType (extensible)
Required Pattern: At least the following
...... id0..1stringUnique id for inter-element referencing
...... extension0..*ExtensionAdditional content defined by implementations
...... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
....... id0..1stringUnique id for inter-element referencing
....... extension0..*ExtensionAdditional content defined by implementations
....... system1..1uriIdentity of the terminology system
Fixed Value: http://hl7.org/fhir/us/core/CodeSystem/us-core-provenance-participant-type
....... version0..1stringVersion of the system - if relevant
....... code1..1codeSymbol in syntax defined by the system
Fixed Value: transmitter
....... display0..1stringRepresentation defined by the system
....... userSelected0..1booleanIf this coding was chosen directly by the user
...... text0..1stringPlain text representation of the concept
..... role 0..*CodeableConceptWhat the agents role was
Binding: SecurityRoleType (example)
..... who SΣ1..1Reference(US Core Practitioner Profile | US Core PractitionerRole Profile | RelatedPerson | US Core Patient Profile | Device | US Core Organization Profile)Who participated
..... onBehalfOf SI0..1Reference(US Core Organization Profile)Who the agent is representing
provenance-1: onBehalfOf SHALL be present when Provenance.agent.who is a Device
... entity I0..*BackboneElementAn entity used in this activity
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... role Σ1..1codederivation | revision | quotation | source | removal
Binding: ProvenanceEntityRole (required)
.... what Σ1..1Reference(Resource)Identity of entity
.... agent 0..*Unknown reference to #Provenance.agent:ProvenanceTransmitterSlice
Entity is attributed to this agent
... signature 0..*SignatureSignature on target

doco Documentation for this format

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


Quick Start

Below is an overview of the required set of RESTful FHIR interactions - for example, search and read operations - for this profile. See the Conformance requirements for a complete list of supported RESTful interactions for this IG.

  • See the General Guidance section for additional rules and expectations when a server requires status parameters.
  • See the General Guidance section for additional guidance on searching for multiple patients.

Mandatory Search Parameters:

The following search parameters, search parameter combinations SHALL be supported. Any listed search parameter modifiers, comparators, chains and composites SHALL also be supported UNLESS they are listed as “optional” in which case they SHOULD be supported.:

  1. SHALL support searching for all resources of a particular type for a patient and all the Provenance records for those resources using a combination of the patient parameter for that resource and the us-core-includeprovenance search parameter:

    1. GET [base]/[Resource]?patient=[id]&us-core-includeprovenance

    Example:

    1. GET [base]/AllergyIntolerance?patient=1233541&us-core-includeprovenance

    Implementation Notes: Fetches a bundle of all resources of a particular type for the specified patient (how to search by reference) and any corresponding Provenance resources.

  2. SHALL support searching for a particular resource and all its Provenance resources using combination of the _id parameter and the us-core-includeprovenance search parameter:

    GET [base]/[Resource]?_id=[id]&us-core-includeprovenance

    Example:

    1. GET [base]/AllergyIntolerance?_id=[id]&us-core-includeprovenance

    Implementation Notes: Fetches a bundle of a resource of a particular type (within the clients authorization scope) and any corresponding Provenance resources. (how to search by token)