R6 Ballot (2nd Draft)

Publish-box (todo)

Security icon Work GroupMaturity Level: N/AStandards Status: InformativeSecurity Category: Not Classified Compartments: Device, Patient, Practitioner, RelatedPerson

Mappings for the provenance resource (see Mappings to Other Standards for further information & status).

Provenance infrastructure.information
    target FiveWs.what[x]
    occurred[x] FiveWs.done[x]
    recorded FiveWs.recorded
    location FiveWs.where[x]
    authorization FiveWs.why[x]
    why FiveWs.why[x]
    activity FiveWs.why[x]
    basedOn FiveWs.why[x]
    patient FiveWs.subject[x]
    encounter FiveWs.context
    agent FiveWs.who
Provenance Event
    occurred[x] Event.occurrence
    location Event.location
    authorization Event.reason
    why Event.reason
    activity Event.code
    basedOn Event.basedOn
    patient Event.subject
    encounter Event.encounter
    agent Event.performer
        type Event.performer.function
        who Event.performer.actor
Provenance ControlAct[isNormalAct() and subsumes(CACT, classCode) and moodCode=EVN]
    target ./outboundRelationship[isNormalActRelationship() and typeCode=SUBJ]/target OR ./participation[isNormalParticipation() and typeCode=SBJ]/role OR ./participation[isNormalParticipation() and typeCode=SBJ]/role[isNormalRole()]/player
    occurred[x] ./effectiveTime[type=IVL_TS]
    recorded unique(./participation[isNormalParticipation() and typeCode=AUT]/time[type=TS])
    policy ./inboundRelationship[isNormalActRelationship() and typeCode="SUBJ"]/source[isNormalAct and subsumes(POLICY, classCode) and moodCode=EVN]/text[typeCode='ED'/tel
    location unique(./participation[isNormalParticipation() and typeCode=LOC]/role[isNormalRole() and subsumes(SDLOC, classCode)]/player[isNormalEntity and classCode="LOC" and determinerCode="INST"]
    authorization unique(./reasonCode)
    why unique(./reasonCode)
    activity Act.code
    basedOn Act.code
    patient participation[typeCode=RTGT]
    encounter Act.code
    agent ./participation[isNormalParticipation()] OR ./outboundRelationship[isNormalActRelationship() and typeCode='DRIV']
        type .role
        role .typecode
        who .id
        onBehalfOf Person, Practitioner, Organization, Device :* .role [classCode = RoleClassMutualRelationship; role.code and * .scopes[Role](classCode=IDENT) and *.plays [Role.Code]
    entity ./subjectOf
        role ./typeCode
        what ./text/reference
        agent ./author/role
    signature ./signatureText

The provenance resource is based on known practices in the HL7 implementation space, particularly those found in the v2 EVN segment, the v3 ControlAct Wrapper, the CDA header, and IHE ATNA. The conceptual model underlying the design is the W3C provenance Specification icon. Though the content and format of the resource is designed to meet specific requirements for FHIR, all the parts of the resource are formally mapped to the PROV-O specification, and FHIR resources can be transformed to their W3C PROV equivalent.

Provenance Activity
    target Entity Created/Updated
    occurred[x] Activity.startTime & Activity.endTime
    recorded Activity.when
    policy
    location Activity.location
    authorization
    why Activity.Activity
    activity Activity.Activity
    basedOn Activity.Activity
    patient Entity.Identity
    encounter Activity.Activity
    agent Agent
        type Agent.Attribution
        role
        who
        onBehalfOf
    entity Entity
        role Entity.role
        what Entity.Identity
        agent
    signature
Provenance
    target AuditEvent.entity.reference
    occurred[x]
    recorded AuditEvent.recorded
    policy AuditEvent.agent.policy
    location AuditEvent.agent.location
    authorization AuditEvent.purposeOfEvent
    why
    activity AuditEvent.code
    basedOn
    patient
    encounter
    agent AuditEvent.agent
        type AuditEvent.agent.type
        role AuditEvent.agent.role
        who
        onBehalfOf
    entity AuditEvent.entity
        role AuditEvent.entity.role
        what AuditEvent.entity.reference
        agent AuditEvent.entity.agent
    signature