Profiles & Operations Index > Profile: Provenance

Profile: Provenance

Canonical URL:http://ontariohealth.ca/fhir/ehr/StructureDefinition/profile-provenance

Simplifier project page: Provenance EHR

Derived from: Provenance (R4)

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work

Differential View

idΣ0..1id
id0..1string
extensionC0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileΣ0..*canonical(StructureDefinition)
securityΣ0..*CodingBinding
id0..1string
extensionC0..*Extension
systemS Σ1..1uriPattern
versionΣ0..1string
codeS Σ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemS Σ1..1uriPattern
versionΣ0..1string
codeS Σ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
originalCreateDateS C0..1Extension(dateTime)
originalUpdateDateS C0..1Extension(dateTime)
modifierExtension?! C0..*Extension
id0..1string
ext-target-typeS C0..1Extension(Coding)
referenceS Σ C0..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
occurredDateTimedateTime
occurredPeriodPeriod
recordedS Σ1..1instant
policyS0..*uri
locationC0..1Reference(Location)
reason0..*CodeableConceptBinding
activityS1..1CodeableConceptBinding
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ0..1uri
versionΣ0..1string
codeS Σ0..1code
displayS Σ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
role0..*CodeableConcept
id0..1string
extensionC0..*Extension
referenceS Σ C0..1string
typeΣ0..1uriBinding
identifierS Σ0..1Identifier
displayS Σ0..1string
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
identifierS Σ0..1Identifier
displayΣ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
roleS Σ1..1codeBinding
id0..1string
extensionC0..*Extension
referenceS Σ C0..1string
typeΣ0..1uriBinding
identifierS Σ0..1Identifier
displayΣ0..1string
agent0..*see (agent)
signature0..*Signature

Hybrid View

idΣ0..1id
id0..1string
extensionC0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileΣ0..*canonical(StructureDefinition)
securityΣ0..*CodingBinding
id0..1string
extensionC0..*Extension
systemS Σ1..1uriPattern
versionΣ0..1string
codeS Σ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemS Σ1..1uriPattern
versionΣ0..1string
codeS Σ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
originalCreateDateS C0..1Extension(dateTime)
originalUpdateDateS C0..1Extension(dateTime)
modifierExtension?! C0..*Extension
id0..1string
ext-target-typeS C0..1Extension(Coding)
referenceS Σ C0..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
occurredDateTimedateTime
occurredPeriodPeriod
recordedS Σ1..1instant
policyS0..*uri
locationC0..1Reference(Location)
reason0..*CodeableConceptBinding
activityS1..1CodeableConceptBinding
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ0..1uri
versionΣ0..1string
codeS Σ0..1code
displayS Σ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
role0..*CodeableConcept
id0..1string
extensionC0..*Extension
referenceS Σ C0..1string
typeΣ0..1uriBinding
identifierS Σ0..1Identifier
displayS Σ0..1string
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
identifierS Σ0..1Identifier
displayΣ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
roleS Σ1..1codeBinding
id0..1string
extensionC0..*Extension
referenceS Σ C0..1string
typeΣ0..1uriBinding
identifierS Σ0..1Identifier
displayΣ0..1string
agent0..*see (agent)
signature0..*Signature

Snapshot View

idΣ0..1id
id0..1string
extensionC0..*Extension
versionIdΣ0..1id
lastUpdatedΣ0..1instant
sourceΣ0..1uri
profileΣ0..*canonical(StructureDefinition)
securityΣ0..*CodingBinding
id0..1string
extensionC0..*Extension
systemS Σ1..1uriPattern
versionΣ0..1string
codeS Σ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
id0..1string
extensionC0..*Extension
systemS Σ1..1uriPattern
versionΣ0..1string
codeS Σ1..1code
displayΣ0..1string
userSelectedΣ0..1boolean
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
originalCreateDateS C0..1Extension(dateTime)
originalUpdateDateS C0..1Extension(dateTime)
modifierExtension?! C0..*Extension
id0..1string
ext-target-typeS C0..1Extension(Coding)
referenceS Σ C0..1string
typeΣ0..1uriBinding
identifierΣ0..1Identifier
displayΣ0..1string
occurredDateTimedateTime
occurredPeriodPeriod
recordedS Σ1..1instant
policyS0..*uri
locationC0..1Reference(Location)
reason0..*CodeableConceptBinding
activityS1..1CodeableConceptBinding
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
id0..1string
extensionC0..*Extension
id0..1string
extensionC0..*Extension
systemS Σ0..1uri
versionΣ0..1string
codeS Σ0..1code
displayS Σ0..1string
userSelectedΣ0..1boolean
textΣ0..1string
role0..*CodeableConcept
id0..1string
extensionC0..*Extension
referenceS Σ C0..1string
typeΣ0..1uriBinding
identifierS Σ0..1Identifier
displayS Σ0..1string
id0..1string
extensionC0..*Extension
referenceΣ C0..1string
typeΣ0..1uriBinding
identifierS Σ0..1Identifier
displayΣ0..1string
id0..1string
extensionC0..*Extension
modifierExtensionΣ ?! C0..*Extension
roleS Σ1..1codeBinding
id0..1string
extensionC0..*Extension
referenceS Σ C0..1string
typeΣ0..1uriBinding
identifierS Σ0..1Identifier
displayΣ0..1string
agent0..*see (agent)
signature0..*Signature

Table View

Provenance..
Provenance.meta..
Provenance.meta.tag1..
Provenance.meta.tag:domain1..1
Provenance.meta.tag:domain.system1..
Provenance.meta.tag:domain.code1..
Provenance.meta.tag:hl7v2-message-type0..1
Provenance.meta.tag:hl7v2-message-type.system1..
Provenance.meta.tag:hl7v2-message-type.code1..
Provenance.extension..
Provenance.extension:originalCreateDateExtension0..1
Provenance.extension:originalUpdateDateExtension0..1
Provenance.target..
Provenance.target.extension:ext-target-typeExtension0..1
Provenance.target.reference..
Provenance.recorded..
Provenance.policy..
Provenance.activity1..
Provenance.agent..
Provenance.agent.type1..
Provenance.agent.type.coding..
Provenance.agent.type.coding.system..
Provenance.agent.type.coding.code..
Provenance.agent.type.coding.display..
Provenance.agent.who..
Provenance.agent.who.reference..
Provenance.agent.who.identifier..
Provenance.agent.who.display..
Provenance.agent.onBehalfOf..
Provenance.agent.onBehalfOf.identifier..
Provenance.entity1..
Provenance.entity.role..
Provenance.entity.what..
Provenance.entity.what.reference..
Provenance.entity.what.identifier..

JSON View

{
"resourceType": "StructureDefinition",
"id": "profile-provenance",
"url": "http://ontariohealth.ca/fhir/ehr/StructureDefinition/profile-provenance",
"version": "1.0.0",
"name": "ProvenanceEHR",
"title": "Provenance EHR",
"status": "active",
"description": "This profile sets minimum expectations for the Provenance resource to record, search, and fetch provenance information associated with a record. It covers the minimal (basic) information to support lineage of information. It specifies which core elements, extensions, vocabularies, and value sets **SHALL** be present and constrains how the elements are used. Before reviewing this profile, implementers are encouraged to read the Basic Provenance guidance page, which documents several key use cases, specifically, the organization responsible for the most recent action on the resource.",
"fhirVersion": "4.0.1",
"kind": "resource",
"abstract": false,
"type": "Provenance",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Provenance",
"derivation": "constraint",
"element": [
{
"id": "Provenance.meta.tag",
"path": "Provenance.meta.tag",
"slicing": {
{
"type": "value",
"path": "system"
}
],
"rules": "open"
},
"min": 1,
"mustSupport": true
},
{
"id": "Provenance.meta.tag:domain",
"path": "Provenance.meta.tag",
"sliceName": "domain",
"min": 1,
"max": "1",
"mustSupport": true,
"binding": {
"strength": "required",
"valueSet": "http://ontariohealth.ca/fhir/ehr/ValueSet/cdf-data-domain"
}
},
{
"id": "Provenance.meta.tag:domain.system",
"path": "Provenance.meta.tag.system",
"min": 1,
"patternUri": "http://ontariohealth.ca/fhir/CodeSystem/cdf-data-domains",
"mustSupport": true
},
{
"id": "Provenance.meta.tag:domain.code",
"path": "Provenance.meta.tag.code",
"min": 1,
"mustSupport": true
},
{
"id": "Provenance.meta.tag:hl7v2-message-type",
"path": "Provenance.meta.tag",
"sliceName": "hl7v2-message-type",
"min": 0,
"max": "1",
"mustSupport": true
},
{
"id": "Provenance.meta.tag:hl7v2-message-type.system",
"path": "Provenance.meta.tag.system",
"min": 1,
"patternUri": "http://ontariohealth.ca/fhir/CodeSystem/cdf-v2-message-type",
"mustSupport": true
},
{
"id": "Provenance.meta.tag:hl7v2-message-type.code",
"path": "Provenance.meta.tag.code",
"min": 1,
"mustSupport": true
},
{
"id": "Provenance.extension",
"path": "Provenance.extension",
"slicing": {
{
"type": "value",
"path": "url"
}
],
"ordered": false,
"rules": "open"
}
},
{
"id": "Provenance.extension:originalCreateDate",
"path": "Provenance.extension",
"sliceName": "originalCreateDate",
"min": 0,
"max": "1",
"type": [
{
"code": "Extension",
"profile": [
"http://ontariohealth.ca/fhir/ehr/StructureDefinition/ext-original-create-date"
]
}
],
"mustSupport": true
},
{
"id": "Provenance.extension:originalUpdateDate",
"path": "Provenance.extension",
"sliceName": "originalUpdateDate",
"min": 0,
"max": "1",
"type": [
{
"code": "Extension",
"profile": [
"http://ontariohealth.ca/fhir/ehr/StructureDefinition/ext-original-update-date"
]
}
],
"mustSupport": true
},
{
"id": "Provenance.target",
"path": "Provenance.target",
"short": "The Resource(s) this Provenance record supports",
"mustSupport": true
},
{
"id": "Provenance.target.extension:ext-target-type",
"path": "Provenance.target.extension",
"sliceName": "ext-target-type",
"min": 0,
"max": "1",
"type": [
{
"code": "Extension",
"profile": [
"http://ontariohealth.ca/fhir/ehr/StructureDefinition/ext-provenance-target-type"
]
}
],
"mustSupport": true
},
{
"id": "Provenance.target.reference",
"path": "Provenance.target.reference",
"mustSupport": true
},
{
"id": "Provenance.recorded",
"path": "Provenance.recorded",
"short": "Timestamp when the activity was recorded / updated",
"mustSupport": true
},
{
"id": "Provenance.policy",
"path": "Provenance.policy",
"mustSupport": true
},
{
"id": "Provenance.activity",
"path": "Provenance.activity",
"min": 1,
"mustSupport": true,
"binding": {
"strength": "extensible",
"valueSet": "http://ontariohealth.ca/fhir/ehr/ValueSet/provenance-activity-type"
}
},
{
"id": "Provenance.agent",
"path": "Provenance.agent",
"short": "Actor involved. For HL7v2 conversion: Ontario Health HL7v2 to FHIR Translation Engine, MSH-3.2 (unique identifier representing the sending system), X-Gtwy-ID (unique identifier generated by APIM). For FHIR contribution: azp (unique identifier representing the Sending System, provided by OH, sourced from the OAG token), X-Gtwy-ID (unique identifier generated by OAG).",
"mustSupport": true
},
{
"id": "Provenance.agent.type",
"path": "Provenance.agent.type",
"min": 1,
"mustSupport": true,
"binding": {
"strength": "extensible",
"valueSet": "http://ontariohealth.ca/fhir/ehr/ValueSet/provenance-agent-type"
}
},
{
"id": "Provenance.agent.type.coding",
"path": "Provenance.agent.type.coding",
"mustSupport": true
},
{
"id": "Provenance.agent.type.coding.system",
"path": "Provenance.agent.type.coding.system",
"mustSupport": true
},
{
"id": "Provenance.agent.type.coding.code",
"path": "Provenance.agent.type.coding.code",
"mustSupport": true
},
{
"id": "Provenance.agent.type.coding.display",
"path": "Provenance.agent.type.coding.display",
"mustSupport": true
},
{
"id": "Provenance.agent.who",
"path": "Provenance.agent.who",
"mustSupport": true
},
{
"id": "Provenance.agent.who.reference",
"path": "Provenance.agent.who.reference",
"mustSupport": true
},
{
"id": "Provenance.agent.who.identifier",
"path": "Provenance.agent.who.identifier",
"mustSupport": true
},
{
"id": "Provenance.agent.who.display",
"path": "Provenance.agent.who.display",
"mustSupport": true
},
{
"id": "Provenance.agent.onBehalfOf",
"path": "Provenance.agent.onBehalfOf",
"mustSupport": true
},
{
"id": "Provenance.agent.onBehalfOf.identifier",
"path": "Provenance.agent.onBehalfOf.identifier",
"mustSupport": true
},
{
"id": "Provenance.entity",
"path": "Provenance.entity",
"short": "An entity used in this activity. For HL7v2 conversion: MSH-10 (Message Control ID / message unique identifier). For FHIR contribution: X-Request-ID.",
"min": 1,
"mustSupport": true
},
{
"id": "Provenance.entity.role",
"path": "Provenance.entity.role",
"mustSupport": true
},
{
"id": "Provenance.entity.what",
"path": "Provenance.entity.what",
"mustSupport": true
},
{
"id": "Provenance.entity.what.reference",
"path": "Provenance.entity.what.reference",
"mustSupport": true
},
{
"id": "Provenance.entity.what.identifier",
"path": "Provenance.entity.what.identifier",
"mustSupport": true
}
]
}
}

Usage

The Provenance resource must be provided in OCINet's live FHIR feed to miCDR to describe the entities and process involved in the producing the submitted resource.

Notes

.meta.tag

  • SHALL populate two instances with the value below:

First instance:

  "system": "http://ontariohealth.ca/fhir/CodeSystem/cdf-data-domains",     "code": "mi",
  "display": "Medical Imaging"

Second instance:

  "system": "http://ontariohealth.ca/fhir/CodeSystem/cdf-v2-message-type",  "code": `use <MSH-9.1>^<MSH-9.2>, e.g. ORU^R01"
  

.target.identifier

  • SHALL contain the identifier of the bundle in the submission (i.e. Bundle.identifier). Both system and value must be provided.

.recorded

  • SHALL contain the current timestamp

.policy

  • SHALL contain fixed URI value http://ontariohealth.ca/fhir/provenance-policy/ocinet

.activity

  • SHALL contain the elements as shown below:
"activity" : {
    "coding" : [
      {
        "system" : "http://terminology.hl7.org/CodeSystem/iso-21089-lifecycle",
        "code" : "transform",
        "display" : "Transform/Translate Record Lifecycle Event"
      }
    ]
  }

.agent

  • SHALL contain the instances to support different agents: composer, transformer, and author.

  • To support composer. It should contain the following

    • agent.type
 "system": "http://terminology.hl7.org/CodeSystem/provenance-participant-type",
 "code" : "composer",
  "display" : "Composer"
  • agent.who.identifier: for reports and orders, identifier.system MUST be urn:ietf:rfc:3986. For agent.who.identifier.value, use the organization OID converted from PID-3.6. This OID must be prefixed with "urn:oid:"

Example:

"identifier": [
{
 "system": "urn:ietf:rfc:3986",
 "value" : "urn:oid:[org OID]"
  }
]
  • To support transformer (i.e. OCINet). It should contain the following
    • agent.type
 "system": "http://terminology.hl7.org/CodeSystem/provenance-participant-type",
 "code" : "transformer",
  "display" : "Transformer"
  • agent.who.display: use fixed value OCINet HL7v2 to FHIR Translation Engine

  • If MSH-3 has value, author agent should be populated. It should contain the following

  • agent.type

 "system": "http://terminology.hl7.org/CodeSystem/provenance-participant-type",
 "code" : "author",
  "display" : "Author"
  • agent.who:
    • For reports and orders, map identifier.value to MSH-3
    • For image manifests, map display to full name of DIR

.entity

SHALL be populated as follows:

  • entity.role SHALL be fixed to derivation
  • entity.what.identifier:
    • For reports and orders:
      • For system, use the OID converted from PID-3.6 (MRN assigning authority) and map it to this field with prefix `urn:oid:"
      • For value, use the value from MSH-10
    • For imaging manifests:
      • Use the same value for system
      • Use submission set unique ID for value. The unique ID is found in XDS submission set. Example below:
      <rim:ExternalIdentifier id="EI_02" registryObject="Document01" identificationScheme="urn:uuid:2e82c1f6-a085-4c72-9da3-8640a32e42ab" value="2.16.840.1.113883.3.239.23.7.2043249">
      <rim:Name> 
      <rim:LocalizedString value="XDSDocumentEntry.uniqueId"/> 
      </rim:Name>
      </rim:ExternalIdentifier>