Implementation Guide
23.1.0 - R4 APIs

Publish Box goes here

Resource Profile: AthenaAuditEvent - Mappings

Active as of 2022-03-01

Mappings for the athena-auditevent-profile resource profile.

Mappings for athenaFlow (http://unknown.org/athenaFlow)

AthenaAuditEvent
AuditEventFHIRR4_AUDITEVENTVIEW
   idMakeId(%EVENT_ID%)
   meta
      lastUpdated%EVENT_TIMESTAMP%
      security (SENSITIVE-CHART)CheckSensitive(%SENSITIVECHART%)
   typeMakeCoding(%EVENT_TYPE_ID%,null,%EVENT_TYPE_DESCRIPTION%)
   actionMapCode(%ACTIONTYPE%,"EVENTACTION")
   periodMakePeriod(%EVENT_TIMESTAMP%)
   recorded%EVENT_TIMESTAMP%
   outcomeMapCode(%OUTCOME%,"EVENTOUTCOME")
   outcomeDesc%OUTCOME_DESCRIPTION%
   agent
      whoMakeReference("USR",%PVID%,"Practitioner")
      name%LOGINNAME%
      requestor%UserIsRequestor%
      locationMakeReference("LOCREG",%LOCID%,"Location")
   entity
      whatMakeReference("PERSON",%PID%,"Patient")

Mappings for athenaPractice (http://unknown.org/athenaPractice)

AthenaAuditEvent
AuditEventFHIRR4_AUDITEVENTVIEW
   idMakeId(%EVENT_ID%)
   meta
      lastUpdated%EVENT_TIMESTAMP%
      security (SENSITIVE-CHART)CheckSensitive(%SENSITIVECHART%)
   typeMakeCoding(%EVENT_TYPE_ID%,null,%EVENT_TYPE_DESCRIPTION%)
   actionMapCode(%ACTIONTYPE%,"EVENTACTION")
   periodMakePeriod(%EVENT_TIMESTAMP%)
   recorded%EVENT_TIMESTAMP%
   outcomeMapCode(%OUTCOME%,"EVENTOUTCOME")
   outcomeDesc%OUTCOME_DESCRIPTION%
   agent
      whoMakeReference("USR",%PVID%,"Practitioner")
      name%LOGINNAME%
      requestor%UserIsRequestor%
      locationMakeReference("LOCREG",%LOCID%,"Location")
   entity
      whatMakeReference("PATIENTPROFILE",%PID%,"Patient")

Mappings for RIM Mapping (http://hl7.org/v3)

AthenaAuditEvent
AuditEventEntity. Role, or Act, ControlAct[moodCode=EVN]
   meta
      idn/a
      extensionn/a
   textAct.text?
   containedN/A
   extensionN/A
   modifierExtensionN/A
   type.code (type, subtype and action are pre-coordinated or sent as translations)
   subtype.code (type, subtype and action are pre-coordinated or sent as translations)
   action.code (type, subtype and action are pre-coordinated or sent as translations)
   period./effectiveTime[type=IVL_TS], .effectiveTime
   recorded.effectiveTime
   outcome.actionNegationInd
   outcomeDesc.outboundRelationship[typeCode=OUT].target.text
   purposeOfEvent* .reasonCode [ControlActReason when Act.class = CACT Control Act] *.outboundRelationship[typeCode=RSON].target, * .reasonCode [ControlActReason when Act.class = CACT Control Act] *.outboundRelationship[typeCode=RSON].target
   agent.participation
      idn/a
      extensionn/a
      modifierExtensionN/A
      type.typeCode and/or .functionCode
      role.role
      who.id, .role
      altId.id (distinguish id type by root)
      name.name
      requestorIf participation.typeCode was author, then true
      location* Role.Class =SDLOC *Role.Code = ServiceDeliveryLocationRoleType *Entity.Code = PlaceEntityType = df.Types of places for Entity.Class = PLC *EntityClass = PLC = df.A physical place or site with its containing structure. May be natural or man-made. The geographic position of a place might or might not be constant., * Role.Class =SDLOC *Role.Code = ServiceDeliveryLocationRoleType *Entity.Code = PlaceEntityType = df.Types of places for Entity.Class = PLC *EntityClass = PLC = df.A physical place or site with its containing structure. May be natural or man-made. The geographic position of a place may or may not be constant.
      policyActPolicyType
      media.player.description.mediaType
      network.player.description.reference
         idn/a
         extensionn/a
         modifierExtensionN/A
         addresspre-coordinated into URL
         typepre-coordinated into URL
      purposeOfUse*.reasonCode [ActHealthInformationPurposeOfUseReason codes/v:PurposeOfUse (2.16.840.1.113883.1.11.20448) * .outboundRelationship[typeCode=RSON or SUBJ].target, *.reasonCode [ActHealthInformationPurposeOfUseReason codes/v:PurposeOfUse (2.16.840.1.113883.1.11.20448) * .outboundRelationship[typeCode=RSON or SUBJ].target
   source.participation[typeCode=INF].role[classCode=ASSIGN].player[classCode=DEV, determinerCode=INSTANCE]
      idn/a
      extensionn/a
      modifierExtensionN/A
      site.scopedRole[classCode=LOCE].player.desc
      observer.id
      type.code
   entity.outboundRelationship[typeCode=SUBJ].target or .participation[typeCode=SBJ].role
      idn/a
      extensionn/a
      modifierExtensionN/A
      what.id, [self]
      type[self::Act].code or role.player.code
      rolerole.code (not sure what this would mean for an Act)
      lifecycletarget of ObservationEvent[code="lifecycle"].value
      securityLabel.confidentialityCode
      name.title
      description.text
      queryNo mapping
      detail.inboundRelationship[typeCode=SUBJ].target[classCode=OBS, moodCode=EVN]
         idn/a
         extensionn/a
         modifierExtensionN/A
         type.code
         value[x].value

Mappings for DICOM Tag Mapping (http://nema.org/dicom)

AthenaAuditEvent
AuditEventMessage
   meta
      versionIdDon't map versionId if we don't support versioning.
      security (SENSITIVE-CHART)Need a user story to address the issue of resetting the code because we don't want to mark a chart as NOT being sensitive if it was originally marked that way, BUT the update did not change the value explicitely.
   typeEventId
   subtypeEventTypeCode
   actionEventActionCode
   periodEventDateTime
   recordedEventDateTime
   outcomeEventOutcomeIndicator
   outcomeDescEventOutcomeDescription
   purposeOfEventEventPurposeOfUse
   agentActiveParticipant
      typeRoleIdCode
      roleRoleIdCode
      whoUserId
      altIdAlternativeUserId
      nameUserName
      requestorUserIsRequestor
      policyParticipantRoleIDCode
      mediaMediaType
      network
         addressNetworkAccessPointID
         typeNetworkAccessPointTypeCode
   sourceAuditSourceIdentification
      siteAuditEnterpriseSiteId
      observerAuditSourceId
      typeAuditSourceTypeCode
   entityParticipantObjectIdentification
      whatParticipantObjectID and ParticipantObjectIDTypeCode, ParticipantObjectID
      typeParticipantObjectTypeCode
      roleParticipantObjectTypeCodeRole
      lifecycleParticipantObjectDataLifeCycle
      securityLabelParticipantObjectSensitivity
      nameParticipantObjectName
      descriptionParticipantObjectDescription
      queryParticipantObjectQuery
      detailParticipantObjectDetail
         typeParticipantObjectDetail.type
         value[x]ParticipantObjectDetail.value

Mappings for HL7 v2 Mapping (http://hl7.org/v2)

AthenaAuditEvent
AuditEvent
   idMakeId(%PID%)
   meta
      lastUpdated%DB_UPDATED_DATE%
      security (SENSITIVE-CHART)CheckSensitive(%SENSITIVECHART%)

Mappings for W3C PROV (http://www.w3.org/ns/prov)

AthenaAuditEvent
AuditEvent
   idThe id attribute will always be mapped using the MakeId() function. This function will construct an ID as appropriate. The first argument is a string which is unused at this time.
   meta
      versionIdIf the resource supports retrieval of specific versions, this identifier should use the MakeVersionId() function with the field giving the version id as the first argument.
      lastUpdatedThis is almost always %DB_UPDATED_DATE%, but may be another field if that field contains the last update date of the record.
      profile (athena-argonautrequirements)These are fixed values that contain the URLs assocaited with any profile we want to always claim conformance to.
      profile (athena-auditevent-profile)The last profile is always the GE profile for this resource.
      security (SENSITIVE-CHART)All data related to a patient must be joined with the PERSON table or view by PID, and the SENSITIVECHART flag needs to be reported. If the value is one, we will output an HL7 V3 ConfidentialityCode of "R" to indicate that this is a sensitive chart, or "N" to indicate that this chart is not sensitive. We will need user stories to address access control policies for sensitive charts for read, query, create and update.
   typeActivity
   periodActivity.startTime & Activity.endTime, Activity.when
   recordedActivity.when
   purposeOfEventActivity.Activity
   agentAgent
      typeAgent.Attribution
      roleAgent.Attribution
      whoAgent.Identity
      altIdAgent.Identity
      nameAgent.Identity
      locationActivity.location
      network
         addressAgent.Location
      purposeOfUseAgent.Activity
   entityEntity
      typeEntity.type
      roleEntity.role
      lifecycleEntity.role
      nameEntity.Label

Mappings for FHIR Provenance Mapping (http://hl7.org/fhir/provenance)

AthenaAuditEvent
AuditEvent
   periodProvenance.occurred[x], Provenance.recorded
   recordedProvenance.recorded
   purposeOfEventProvenance.reason, Provenance.activity
   agentProvenance.agent
      typeProvenance.agent.type
      roleProvenance.agent.role
      whoProvenance.agent.who, Provenance.agent.actor
      locationProvenance.location
      policyProvenance.policy
   entityProvenance.target, Provenance.entity
      whatProvenance.target, Provenance.entity.what, Provenance.target, Provenance.entity.reference
      typeProvenance.entity.type
      lifecycleProvenance.entity.role

Mappings for Workflow Pattern (http://hl7.org/fhir/workflow)

AthenaAuditEvent
AuditEventEvent
   typeEvent.code
   periodEvent.occurred[x]
   purposeOfEventEvent.reasonCode
   agentEvent.performer
      typeEvent.performer.function
      whoEvent.performer.actor
      locationEvent.location

Mappings for FiveWs Pattern Mapping (http://hl7.org/fhir/fivews)

AthenaAuditEvent
AuditEvent
   typeFiveWs.what[x]
   subtypeFiveWs.what[x]
   actionFiveWs.what[x]
   periodFiveWs.done[x]
   recordedFiveWs.recorded
   outcomeFiveWs.what[x]
   outcomeDescFiveWs.what[x]
   purposeOfEventFiveWs.why[x]
   agentFiveWs.who
      typeFiveWs.who
      roleFiveWs.who
      whoFiveWs.who
      altIdFiveWs.who
      nameFiveWs.who
      requestorFiveWs.who
      locationFiveWs.where[x]
      policyFiveWs.why[x]
      mediaFiveWs.where[x]
      networkFiveWs.where[x]
         addressFiveWs.where[x]
         typeFiveWs.where[x]
      purposeOfUseFiveWs.why[x]
   sourceFiveWs.witness
      siteFiveWs.witness
      observerFiveWs.witness
      typeFiveWs.witness
   entityFiveWs.what[x]
      whatFiveWs.what[x]
      typeFiveWs.what[x]
      roleFiveWs.context
      lifecycleFiveWs.context
      securityLabelFiveWs.context
      nameFiveWs.context
      descriptionFiveWs.context
      queryFiveWs.context
      detailFiveWs.context
         typeFiveWs.context
         value[x]FiveWs.context