R4 Draft for Comment

This page is part of the FHIR Specification (v3.2.0: R4 Ballot 1). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions . Page versions: R5 R4B R4

(No assigned work group) Maturity Level: 1Informative Use Context: Any

The official URL for this profile is:

http://hl7.org/fhir/StructureDefinition/provenance-relevant-history

Guidance on using Provenance for related history elements

This profile was published on Tue, Dec 3, 2013 00:00+1100 as a draft by Health Level Seven International.

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

This structure is derived from Provenance.

Summary

Mandatory: 3 elements (+2 nested mandatory elements)
Must-Support: 9 elements

Slices

This structure defines the following Slices:

  • The element Provenance.agent is sliced based on the value of value:type

This structure is derived from Provenance.

NameFlagsCard.TypeDescription & Constraintsdoco
.. Provenance I0..*Who, What, When for a set of resources
... 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
... target SΣ1..*Reference(Resource)Resource version
... occurred[x] S1..1Period, dateTimeWhen the activity occurred
... recorded Σ1..1instantWhen 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 S0..*CodeableConceptReason the activity is occurring
Binding: PurposeOfUse (extensible)
... activity S1..1CodeableConceptRecord activity
Binding: Provenance History Record Activity Codes (extensible)
... agent SI1..*BackboneElementWho was involved with change
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... type SΣCodeableConceptHow the agent participated
Slice: Unordered, Open by value:type
Binding: Provenance Event History Agent Role Codes (extensible)
.... role 0..*CodeableConceptWhat the agents role was
Binding: SecurityRoleType (example)
.... who[x] Σ1..1Identifier, Reference(Practitioner), Reference(PractitionerRole), Reference(RelatedPerson), Reference(Patient), Reference(Device), Reference(Organization)Who participated
.... onBehalfOf[x] 0..1Identifier, Reference(Practitioner), Reference(PractitionerRole), Reference(RelatedPerson), Reference(Patient), Reference(Device), Reference(Organization)Who the agent is representing
... agent SI0..1BackboneElementAuthor
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... type SΣ1..1CodeableConceptHow the agent participated
Binding: ParticipationRoleType (extensible)
Required Pattern: {"coding":[{"system":"http://hl7.org/fhir/v3/ParticipationType","code":"AUT"}]}
.... role 0..*CodeableConceptWhat the agents role was
Binding: SecurityRoleType (example)
.... who[x] SΣ1..1Identifier, Reference(Practitioner), Reference(PractitionerRole), Reference(RelatedPerson), Reference(Patient), Reference(Device), Reference(Organization)Author Reference
.... onBehalfOf[x] 0..1Identifier, Reference(Practitioner), Reference(PractitionerRole), Reference(RelatedPerson), Reference(Patient), Reference(Device), Reference(Organization)Who the agent is representing
... entity I0..*BackboneElementAn entity used in this activity
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... role Σ1..1codederivation | revision | quotation | source | removal
Binding: ProvenanceEntityRole (required)
.... what[x] Σ1..1Identifier, Reference(Resource)Identity of entity
.... agent 0..*Unknown reference to #Provenance.agent:author
Entity is attributed to this agent
... signature 0..*SignatureSignature on target

doco Documentation for this format
<!-- Provenance Relevant History -->doco

<Provenance xmlns="http://hl7.org/fhir"
>
  <!-- from Element: extension -->
 <id value="[id]"/><!-- 0..1 Logical id of this artifact -->
 <meta><!-- 0..1 Meta Metadata about the resource --></meta>
 <implicitRules value="[uri]"/><!-- 0..1 A set of rules under which this content was created -->
 <language value="[code]"/><!-- 0..1 Language of the resource content  -->
 <text><!-- 0..1 Narrative 
     Text summary of the resource, for human interpretation --></text>
 <contained><!-- 0..* Resource Contained, inline Resources --></contained>
 <modifierExtension><!-- 0..* Extension  Extensions that cannot be ignored  --></modifierExtension>
 <target><!-- 1..* Reference(Resource) Resource version --></target>
 <occurred[x]><!-- 1..1 Period|dateTime 
     When the activity occurred --></occurred[x]>
 <recorded value="[instant]"/><!-- 1..1 When the activity was recorded / updated -->
 <policy value="[uri]"/><!-- 0..* Policy or plan the activity was defined by -->
 <location><!-- 0..1 Reference(Location) 
     Where the activity occurred, if relevant --></location>
 <reason><!-- 0..* CodeableConcept Reason the activity is occurring  --></reason>
 <activity><!-- 1..1 CodeableConcept Record activity  --></activity>
 <agent> ?? 1..* BackboneElement  <!-- ?? 1..* Who was involved with change -->
  <modifierExtension><!-- 0..* Extension  Extensions that cannot be ignored  --></modifierExtension>
  <-- type sliced by value:type  in the specified orderOpen-->
  <role><!-- 0..* CodeableConcept What the agents role was  --></role>
  <who[x]><!-- 1..1 Identifier|Reference(Practitioner)|Reference(PractitionerRole)|Reference(RelatedPerson)|
    Reference(Patient)|Reference(Device)|Reference(Organization) Who participated --></who[x]>
  <onBehalfOf[x]><!-- 0..1 Identifier|Reference(Practitioner)|Reference(PractitionerRole)|
    Reference(RelatedPerson)|Reference(Patient)|Reference(Device)|Reference(Organization) 
      Who the agent is representing --></onBehalfOf[x]>
 </agent>
 <agent> ?? 0..1 BackboneElement  <!-- ?? 0..1 Author -->
  <modifierExtension><!-- 0..* Extension  Extensions that cannot be ignored  --></modifierExtension>
  <type><!-- 1..1 CodeableConcept How the agent participated  --></type>
  <role><!-- 0..* CodeableConcept What the agents role was  --></role>
  <who[x]><!-- 1..1 Identifier|Reference(Practitioner)|Reference(PractitionerRole)|Reference(RelatedPerson)|
    Reference(Patient)|Reference(Device)|Reference(Organization) Author Reference --></who[x]>
  <onBehalfOf[x]><!-- 0..1 Identifier|Reference(Practitioner)|Reference(PractitionerRole)|
    Reference(RelatedPerson)|Reference(Patient)|Reference(Device)|Reference(Organization) 
      Who the agent is representing --></onBehalfOf[x]>
 </agent>
 <entity> ?? 0..* BackboneElement  <!-- ?? 0..* An entity used in this activity -->
  <modifierExtension><!-- 0..* Extension  Extensions that cannot be ignored  --></modifierExtension>
  <role value="[code]"/><!-- 1..1 derivation | revision | quotation | source | removal  -->
  <what[x]><!-- 1..1 Identifier|Reference(Resource) 
      Identity of entity --></what[x]>
  <agent><!-- See #Provenance.agent:author  Entity is attributed to this agent --></agent>
 </entity>
 <signature><!-- 0..* Signature Signature on target --></signature>
</Provenance>
{ // Provenance Relevant History
  // from Element: extension
    "meta" : { Meta }, //Metadata about the resource
    "implicitRules" : "<uri>", //A set of rules under which this content was created
    "language" : "<code>", //Language of the resource content 
    "text" : { Narrative }, //Text summary of the resource, for human interpretation
    "contained" : [{ Resource }], //Contained, inline Resources
    "modifierExtension" : [{ Extension }], //Extensions that cannot be ignored
    "target" : [{ Reference(Resource) }], // R! Resource version
// value[x]: When the activity occurred. One of these 2:
    "occurredPeriod" : { Period }, // R! When the activity occurred
    "occurredDateTime" : "<dateTime>", // R! When the activity occurred
    "recorded" : "<instant>", // R! When the activity was recorded / updated
    "policy" : ["<uri>"], //Policy or plan the activity was defined by
    "location" : { Reference(Location) }, //Where the activity occurred, if relevant
    "reason" : [{ CodeableConcept }], //Reason the activity is occurring 
    "activity" : { CodeableConcept }, // R! Record activity 
    "agent" : [{ BackboneElement }], // C? R! Who was involved with change
    "agent" : { BackboneElement }, // C?Author
    "entity" : [{ BackboneElement }] // C?An entity used in this activity
    "signature" : [{ Signature }], //Signature on target
  }

This structure is derived from Provenance.

Summary

Mandatory: 3 elements (+2 nested mandatory elements)
Must-Support: 9 elements

Slices

This structure defines the following Slices:

  • The element Provenance.agent is sliced based on the value of value:type

Differential View

This structure is derived from Provenance.

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Provenance I0..*Who, What, When for a set of resources
... 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
... target SΣ1..*Reference(Resource)Resource version
... occurred[x] S1..1Period, dateTimeWhen the activity occurred
... recorded Σ1..1instantWhen 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 S0..*CodeableConceptReason the activity is occurring
Binding: PurposeOfUse (extensible)
... activity S1..1CodeableConceptRecord activity
Binding: Provenance History Record Activity Codes (extensible)
... agent SI1..*BackboneElementWho was involved with change
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... type SΣCodeableConceptHow the agent participated
Slice: Unordered, Open by value:type
Binding: Provenance Event History Agent Role Codes (extensible)
.... role 0..*CodeableConceptWhat the agents role was
Binding: SecurityRoleType (example)
.... who[x] Σ1..1Identifier, Reference(Practitioner), Reference(PractitionerRole), Reference(RelatedPerson), Reference(Patient), Reference(Device), Reference(Organization)Who participated
.... onBehalfOf[x] 0..1Identifier, Reference(Practitioner), Reference(PractitionerRole), Reference(RelatedPerson), Reference(Patient), Reference(Device), Reference(Organization)Who the agent is representing
... agent SI0..1BackboneElementAuthor
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... type SΣ1..1CodeableConceptHow the agent participated
Binding: ParticipationRoleType (extensible)
Required Pattern: {"coding":[{"system":"http://hl7.org/fhir/v3/ParticipationType","code":"AUT"}]}
.... role 0..*CodeableConceptWhat the agents role was
Binding: SecurityRoleType (example)
.... who[x] SΣ1..1Identifier, Reference(Practitioner), Reference(PractitionerRole), Reference(RelatedPerson), Reference(Patient), Reference(Device), Reference(Organization)Author Reference
.... onBehalfOf[x] 0..1Identifier, Reference(Practitioner), Reference(PractitionerRole), Reference(RelatedPerson), Reference(Patient), Reference(Device), Reference(Organization)Who the agent is representing
... entity I0..*BackboneElementAn entity used in this activity
.... id 0..1stringxml:id (or equivalent in JSON)
.... extension 0..*ExtensionAdditional Content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
.... role Σ1..1codederivation | revision | quotation | source | removal
Binding: ProvenanceEntityRole (required)
.... what[x] Σ1..1Identifier, Reference(Resource)Identity of entity
.... agent 0..*Unknown reference to #Provenance.agent:author
Entity is attributed to this agent
... signature 0..*SignatureSignature on target

doco Documentation for this format

XML Template

<!-- Provenance Relevant History -->doco

<Provenance xmlns="http://hl7.org/fhir"
>
  <!-- from Element: extension -->
 <id value="[id]"/><!-- 0..1 Logical id of this artifact -->
 <meta><!-- 0..1 Meta Metadata about the resource --></meta>
 <implicitRules value="[uri]"/><!-- 0..1 A set of rules under which this content was created -->
 <language value="[code]"/><!-- 0..1 Language of the resource content  -->
 <text><!-- 0..1 Narrative 
     Text summary of the resource, for human interpretation --></text>
 <contained><!-- 0..* Resource Contained, inline Resources --></contained>
 <modifierExtension><!-- 0..* Extension  Extensions that cannot be ignored  --></modifierExtension>
 <target><!-- 1..* Reference(Resource) Resource version --></target>
 <occurred[x]><!-- 1..1 Period|dateTime 
     When the activity occurred --></occurred[x]>
 <recorded value="[instant]"/><!-- 1..1 When the activity was recorded / updated -->
 <policy value="[uri]"/><!-- 0..* Policy or plan the activity was defined by -->
 <location><!-- 0..1 Reference(Location) 
     Where the activity occurred, if relevant --></location>
 <reason><!-- 0..* CodeableConcept Reason the activity is occurring  --></reason>
 <activity><!-- 1..1 CodeableConcept Record activity  --></activity>
 <agent> ?? 1..* BackboneElement  <!-- ?? 1..* Who was involved with change -->
  <modifierExtension><!-- 0..* Extension  Extensions that cannot be ignored  --></modifierExtension>
  <-- type sliced by value:type  in the specified orderOpen-->
  <role><!-- 0..* CodeableConcept What the agents role was  --></role>
  <who[x]><!-- 1..1 Identifier|Reference(Practitioner)|Reference(PractitionerRole)|Reference(RelatedPerson)|
    Reference(Patient)|Reference(Device)|Reference(Organization) Who participated --></who[x]>
  <onBehalfOf[x]><!-- 0..1 Identifier|Reference(Practitioner)|Reference(PractitionerRole)|
    Reference(RelatedPerson)|Reference(Patient)|Reference(Device)|Reference(Organization) 
      Who the agent is representing --></onBehalfOf[x]>
 </agent>
 <agent> ?? 0..1 BackboneElement  <!-- ?? 0..1 Author -->
  <modifierExtension><!-- 0..* Extension  Extensions that cannot be ignored  --></modifierExtension>
  <type><!-- 1..1 CodeableConcept How the agent participated  --></type>
  <role><!-- 0..* CodeableConcept What the agents role was  --></role>
  <who[x]><!-- 1..1 Identifier|Reference(Practitioner)|Reference(PractitionerRole)|Reference(RelatedPerson)|
    Reference(Patient)|Reference(Device)|Reference(Organization) Author Reference --></who[x]>
  <onBehalfOf[x]><!-- 0..1 Identifier|Reference(Practitioner)|Reference(PractitionerRole)|
    Reference(RelatedPerson)|Reference(Patient)|Reference(Device)|Reference(Organization) 
      Who the agent is representing --></onBehalfOf[x]>
 </agent>
 <entity> ?? 0..* BackboneElement  <!-- ?? 0..* An entity used in this activity -->
  <modifierExtension><!-- 0..* Extension  Extensions that cannot be ignored  --></modifierExtension>
  <role value="[code]"/><!-- 1..1 derivation | revision | quotation | source | removal  -->
  <what[x]><!-- 1..1 Identifier|Reference(Resource) 
      Identity of entity --></what[x]>
  <agent><!-- See #Provenance.agent:author  Entity is attributed to this agent --></agent>
 </entity>
 <signature><!-- 0..* Signature Signature on target --></signature>
</Provenance>

JSON Template

{ // Provenance Relevant History
  // from Element: extension
    "meta" : { Meta }, //Metadata about the resource
    "implicitRules" : "<uri>", //A set of rules under which this content was created
    "language" : "<code>", //Language of the resource content 
    "text" : { Narrative }, //Text summary of the resource, for human interpretation
    "contained" : [{ Resource }], //Contained, inline Resources
    "modifierExtension" : [{ Extension }], //Extensions that cannot be ignored
    "target" : [{ Reference(Resource) }], // R! Resource version
// value[x]: When the activity occurred. One of these 2:
    "occurredPeriod" : { Period }, // R! When the activity occurred
    "occurredDateTime" : "<dateTime>", // R! When the activity occurred
    "recorded" : "<instant>", // R! When the activity was recorded / updated
    "policy" : ["<uri>"], //Policy or plan the activity was defined by
    "location" : { Reference(Location) }, //Where the activity occurred, if relevant
    "reason" : [{ CodeableConcept }], //Reason the activity is occurring 
    "activity" : { CodeableConcept }, // R! Record activity 
    "agent" : [{ BackboneElement }], // C? R! Who was involved with change
    "agent" : { BackboneElement }, // C?Author
    "entity" : [{ BackboneElement }] // C?An entity used in this activity
    "signature" : [{ Signature }], //Signature on target
  }

 

Alternate definitions: Master Definition (XML, JSON), Schematron

PathNameConformanceValueSet
Provenance.languageCommon LanguagesextensibleCommon Languages
Provenance.reasonPurposeOfUseextensiblePurposeOfUse
Provenance.activityProvenance History Record Activity CodesextensibleProvenance History Record Activity Codes
Provenance.agent.typeParticipationRoleTypeextensibleParticipationRoleType
Provenance.agent.role?extexamplesecurity-role-type
Provenance.agent.typeParticipationRoleTypeextensibleParticipationRoleType
Provenance.agent.role?extexamplesecurity-role-type
Provenance.entity.roleProvenanceEntityRolerequiredProvenanceEntityRole
.