Mappings for the athena-auditevent-profile resource profile.
AthenaAuditEvent |
AuditEvent | FHIRR4_AUDITEVENTVIEW |
id | MakeId(%EVENT_ID%) |
meta | |
lastUpdated | %EVENT_TIMESTAMP% |
security (SENSITIVE-CHART) | CheckSensitive(%SENSITIVECHART%) |
type | MakeCoding(%EVENT_TYPE_ID%,null,%EVENT_TYPE_DESCRIPTION%) |
action | MapCode(%ACTIONTYPE%,"EVENTACTION") |
period | MakePeriod(%EVENT_TIMESTAMP%) |
recorded | %EVENT_TIMESTAMP% |
outcome | MapCode(%OUTCOME%,"EVENTOUTCOME") |
outcomeDesc | %OUTCOME_DESCRIPTION% |
agent | |
who | MakeReference("USR",%PVID%,"Practitioner") |
name | %LOGINNAME% |
requestor | %UserIsRequestor% |
location | MakeReference("LOCREG",%LOCID%,"Location") |
entity | |
what | MakeReference("PERSON",%PID%,"Patient") |
AthenaAuditEvent |
AuditEvent | FHIRR4_AUDITEVENTVIEW |
id | MakeId(%EVENT_ID%) |
meta | |
lastUpdated | %EVENT_TIMESTAMP% |
security (SENSITIVE-CHART) | CheckSensitive(%SENSITIVECHART%) |
type | MakeCoding(%EVENT_TYPE_ID%,null,%EVENT_TYPE_DESCRIPTION%) |
action | MapCode(%ACTIONTYPE%,"EVENTACTION") |
period | MakePeriod(%EVENT_TIMESTAMP%) |
recorded | %EVENT_TIMESTAMP% |
outcome | MapCode(%OUTCOME%,"EVENTOUTCOME") |
outcomeDesc | %OUTCOME_DESCRIPTION% |
agent | |
who | MakeReference("USR",%PVID%,"Practitioner") |
name | %LOGINNAME% |
requestor | %UserIsRequestor% |
location | MakeReference("LOCREG",%LOCID%,"Location") |
entity | |
what | MakeReference("PATIENTPROFILE",%PID%,"Patient") |
AthenaAuditEvent |
AuditEvent | Entity. Role, or Act, ControlAct[moodCode=EVN] |
meta | |
id | n/a |
extension | n/a |
text | Act.text? |
contained | N/A |
extension | N/A |
modifierExtension | N/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 |
id | n/a |
extension | n/a |
modifierExtension | N/A |
type | .typeCode and/or .functionCode |
role | .role |
who | .id, .role |
altId | .id (distinguish id type by root) |
name | .name |
requestor | If 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. |
policy | ActPolicyType |
media | .player.description.mediaType |
network | .player.description.reference |
id | n/a |
extension | n/a |
modifierExtension | N/A |
address | pre-coordinated into URL |
type | pre-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] |
id | n/a |
extension | n/a |
modifierExtension | N/A |
site | .scopedRole[classCode=LOCE].player.desc |
observer | .id |
type | .code |
entity | .outboundRelationship[typeCode=SUBJ].target or .participation[typeCode=SBJ].role |
id | n/a |
extension | n/a |
modifierExtension | N/A |
what | .id, [self] |
type | [self::Act].code or role.player.code |
role | role.code (not sure what this would mean for an Act) |
lifecycle | target of ObservationEvent[code="lifecycle"].value |
securityLabel | .confidentialityCode |
name | .title |
description | .text |
query | No mapping |
detail | .inboundRelationship[typeCode=SUBJ].target[classCode=OBS, moodCode=EVN] |
id | n/a |
extension | n/a |
modifierExtension | N/A |
type | .code |
value[x] | .value |
AthenaAuditEvent |
AuditEvent | Message |
meta | |
versionId | Don'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. |
type | EventId |
subtype | EventTypeCode |
action | EventActionCode |
period | EventDateTime |
recorded | EventDateTime |
outcome | EventOutcomeIndicator |
outcomeDesc | EventOutcomeDescription |
purposeOfEvent | EventPurposeOfUse |
agent | ActiveParticipant |
type | RoleIdCode |
role | RoleIdCode |
who | UserId |
altId | AlternativeUserId |
name | UserName |
requestor | UserIsRequestor |
policy | ParticipantRoleIDCode |
media | MediaType |
network | |
address | NetworkAccessPointID |
type | NetworkAccessPointTypeCode |
source | AuditSourceIdentification |
site | AuditEnterpriseSiteId |
observer | AuditSourceId |
type | AuditSourceTypeCode |
entity | ParticipantObjectIdentification |
what | ParticipantObjectID and ParticipantObjectIDTypeCode, ParticipantObjectID |
type | ParticipantObjectTypeCode |
role | ParticipantObjectTypeCodeRole |
lifecycle | ParticipantObjectDataLifeCycle |
securityLabel | ParticipantObjectSensitivity |
name | ParticipantObjectName |
description | ParticipantObjectDescription |
query | ParticipantObjectQuery |
detail | ParticipantObjectDetail |
type | ParticipantObjectDetail.type |
value[x] | ParticipantObjectDetail.value |
AthenaAuditEvent |
AuditEvent | |
id | The 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 | |
versionId | If 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. |
lastUpdated | This 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. |
type | Activity |
period | Activity.startTime & Activity.endTime, Activity.when |
recorded | Activity.when |
purposeOfEvent | Activity.Activity |
agent | Agent |
type | Agent.Attribution |
role | Agent.Attribution |
who | Agent.Identity |
altId | Agent.Identity |
name | Agent.Identity |
location | Activity.location |
network | |
address | Agent.Location |
purposeOfUse | Agent.Activity |
entity | Entity |
type | Entity.type |
role | Entity.role |
lifecycle | Entity.role |
name | Entity.Label |