South African flag
Skip to main content

IHE ATNA Transactions

Security and auditing requirements

Reference: www.ihe.net › uploadedFiles › Documents › ITI › IHE_ITI_TF_Vol1

Standards – ATNA

Audit Trail [ITI-20]

Trigger Events​

The following audit events SHALL be recorded by the actors:

EventDescription
Actor-start-stop (ITI-20)Describes the event of an actor (i.e. Application) startup and shutdown.
User Authentication (ITI-20)Describes the event of a user log-on or log-off and whether it was successful or not.
Query Information (ITI-20)Describes audit events associated with the following ITI-21 trigger events: Q22 - Find Candidates, K22 - Find Candidates response.

Node Authentication [ITI-19]

  • Mutual TLS used to authenticate the 3rd Party node.
  • 3rd Party application required to secure access to its own application with login credentials.

Integrator Checklist Requirement

As part of the 3rd Party integration process, integrators must:

Provide proof of required ATNA logging.

IHE ATNA Trigger Event: Query Information

From Health Interoperability Documentation

The Query Information trigger event is used in the following interoperability specifications:

  • Patient lookup from HPRS

Patient Demographics Consumer audit message

This audit message describes the event of a query being submitted by a Patient Demographics Consumer actor, say as part of an IHE transaction like ITI-21 Patient Demographics Query. The general guidance is to log the query event with the query parameters which can be used effectively to detect bad behaviour.

Patient Demographics Consumer audit message - A.5.3.10-1. Audit Message for Query

Event​

AuditMessage / EventIdentification

Field NameOptValue ConstraintsExample
EventIDMEV(110112, DCM, "Query")<EventID code="110112" displayName="Query" codeSystemName="DCM"/>
EventActionCodeMEnumerated Value: E = Execute<EventIdentification EventActionCode="E" ... >
EventDateTimeMnot specialized<EventIdentification ... EventDateTime="2016-07-20T17:27:32.049+02:00" ... >
EventOutcomeIndicatorMnot specialized<EventIdentification ... EventOutcomeIndicator="0">
EventTypeCodeMEV("ITI-21", "IHE Transactions", "Patient Demographics Query")<EventTypeCode code="ITI-21" displayName="Patient Demographics Query" codeSystemName="IHE Transactions"/>

Source​

AuditMessage / ActiveParticipant

Field NameOptValue ConstraintsExample
UserIDMThe identity of the Patient Demographics Consumer Actor facility and sending application from the HL7 message; concatenated together, separated by the ¦ character.<ActiveParticipant UserID="DOH_STANZA_BOPAPE_II_CLINIC^www.health.gov.za/stanza-bopape-ii-clinic^URI¦CELLNOSTICS^www.csir.co.za/msm/cellnostics^URI" ...>
AlternativeUserIDUThe process ID as used within the local operating system in the local system logs formatted as specified in A.5.2.1.<ActiveParticipant UserID="9582" ... >
UserNameUnot specialized
UserIsRequestorUnot specialized<ActiveParticipant ... UserIsRequestor="true" ... >
RoleIDCodeMEV(110153, DCM, "Source")<RoleIDCode code="110153" displayName="Source" codeSystemName="DCM"/>
NetworkAccessPointTypeCodeM"1" for machine (DNS) name, "2" for IP address<ActiveParticipant ... NetworkAccessPointTypeCode="2">
NetworkAccessPointIDMThe machine name or IP address<ActiveParticipant ... NetworkAccessPointID="127.0.1.1" ... >

Human Requestor (if known)​

AuditMessage / ActiveParticipant

Field NameOptValue ConstraintsExample
UserIDMIdentity of the human that initiated the transaction.<ActiveParticipant UserID="MaternalHealthUseCaseTest" ... >
AlternativeUserIDUnot specialized
UserNameUnot specialized
UserIsRequestorUnot specialized<ActiveParticipant ... UserIsRequestor="false" ... >
RoleIDCodeUAccess Control role(s) the user holds that allows this transaction.
NetworkAccessPointTypeCodeNA
NetworkAccessPointIDNA

Destination​

AuditMessage / ActiveParticipant

Field NameOptValue ConstraintsExample
UserIDMThe identity of the Patient Demographics Source facility and receiving application from the HL7 message; concatenated together, separated by the ¦ character.<ActiveParticipant UserID="CSIR_MERAKA^www.csir.co.za/meraka^URI¦CSIR_HIE^www.hie-dev.dhcp.meraka.csir.co.za^URI" .../>
AlternativeUserIDUThe process ID as used within the local operating system in the local system logs.
UserNameUnot specialized
UserIsRequestorUnot specialized<ActiveParticipant ... UserIsRequestor="false" ... >
RoleIDCodeMEV(110152, DCM, "Destination")<RoleIDCode code="110152" displayName="Destination" codeSystemName="DCM"/>
NetworkAccessPointTypeCodeM"1" for machine (DNS) name, "2" for IP address<ActiveParticipant ... NetworkAccessPointTypeCode="1">
NetworkAccessPointIDMThe machine name or IP address<ActiveParticipant ... NetworkAccessPointID="hie.meraka.csir.co.za" ... >

Audit Source​

AuditMessage / AuditSourceIdentification

Field NameOptValue ConstraintsExample
AuditSourceIDUnot specialized<AuditSourceIdentification AuditSourceID="PatientDemographicsConsumer"/>
EventActionCodeUnot specialized
AuditSourceTypeCodeUnot specialized

Patient​

AuditMessage / ParticipantObjectIdentification

Field NameOptValue ConstraintsExample
ParticipantObjectTypeCodeM"1" (Person)<ParticipantObjectIdentification... ParticipantObjectTypeCode="1"...>
ParticipantObjectTypeCodeRoleM"1" (Patient)<ParticipantObjectIdentification... ParticipantObjectTypeCodeRole="1">
ParticipantObjectDataLifeCycleUnot specialized
ParticipantObjectIDTypeCodeMnot specialized<RoleIDCode code="2" displayName="Patient Number" codeSystemName="RFC-3881"/>
ParticipantObjectSensitivityUnot specialized
ParticipantObjectIDMThe patient ID in HL7 CX format.<ParticipantObjectIdentification ParticipantObjectID="9109199019099^^^DHA&www.home-affairs.gov.za&URI" ParticipantObjectTypeCode="1" ParticipantObjectTypeCodeRo...
ParticipantObjectNameUnot specialized
ParticipantObjectQueryUnot specialized
ParticipantObjectDetailUnot specialized

Query Parameters​

AuditMessage / ParticipantObjectIdentification

Field NameOptValue ConstraintsExample
ParticipantObjectTypeCodeM"2" (system object)<ParticipantObjectIdentification... ParticipantObjectTypeCode="2"...>
ParticipantObjectTypeCodeRoleM"24" (query)<ParticipantObjectIdentification... ParticipantObjectTypeCodeRole="24"...>
ParticipantObjectDataLifeCycleUnot specialized
ParticipantObjectIDTypeCodeMEV("ITI-21", "IHE Transactions", "Patient Demographics Query")<RoleIDCode code="ITI-21" displayName="Patient Demographics Query" codeSystemName="IHE Transactions"/>
ParticipantObjectSensitivityUnot specialized
ParticipantObjectIDUnot specialized
ParticipantObjectNameUnot specialized
ParticipantObjectQueryMThe complete query message (including MSH and QPD segments), base64 encoded.<ParticipantObjectQuery>TVSIfF5+XCZ8Q0VMTE5PU1RJQ1Ned3d3LmNzaXIuY28uemEvbXNtL2NlbGxub3N0aWNzXlVSSXxET0hfU1RBTlpBX0JPUEFQRV9JSV9DTElOSUNed3d3LmhlYWx0aC5nb3YuemEv...
ParticipantObjectDetailMType=MSH-10 (the literal string), Value=the value of MSH-10 (from the message content, base64 encoded)<ParticipantObjectDetail type="MSH-10" value="MzcxNDEyMTE3NjE1MjA5NTQzNw=="/>

Patient Demographics Source audit message

This audit message describes the event of a query result being returned by a Patient Demographics Source actor, say as part of an IHE transaction like ITI-21 Patient Demographics Query. The general guidance is to log the query event with the query parameters which can be used effectively to detect bad behaviour.

Patient Demographics Source audit message - A.5.3.10-1. Audit Message for Query

Event​

AuditMessage / EventIdentification

Field NameOptValue ConstraintsExample
EventIDMEV(110112, DCM, "Query")<EventID code="110112" displayName="Query" codeSystemName="DCM"/>
EventActionCodeMEnumerated Value: E = Execute<EventIdentification EventActionCode="E" ... >
EventDateTimeMnot specialized
EventOutcomeIndicatorMnot specialized<EventIdentification ... EventOutcomeIndicator="0">
EventTypeCodeMEV("ITI-21", "IHE Transactions", "Patient Demographics Query")<EventTypeCode code="ITI-21" displayName="Patient Demographics Query" codeSystemName="IHE Transactions"/>

Source​

AuditMessage / ActiveParticipant

Field NameOptValue ConstraintsExample
UserIDMThe identity of the Patient Demographics Consumer Actor facility and sending application from the HL7 message; concatenated together, separated by the ¦ character.<ActiveParticipant UserID="DOH_STANZA_BOPAPE_II_CLINIC^www.health.gov.za/stanza-bopape-ii-clinic^URI¦CELLNOSTICS^www.csir.co.za/msm/cellnostics^URI" AlternativeUserID="9582" UserIsRequestor="true" NetworkAccessPointID="127.0.1.1" NetworkAccessPointTypeCode="2">
AlternativeUserIDUThe process ID as used within the local operating system in the local system logs.
UserNameUnot specialized
UserIsRequestorMnot specialized
RoleIDCodeMEV(110153, DCM, "Source")
NetworkAccessPointTypeCodeM"1" for machine (DNS) name, "2" for IP address
NetworkAccessPointIDMThe machine name or IP address

Destination​

AuditMessage / ActiveParticipant

Field NameOptValue ConstraintsExample
UserIDMThe identity of the Patient Demographics Source (alt Patient Demographics Supplier) facility and receiving application from the HL7 message; concatenated together, separated by the ¦ character.
AlternativeUserIDUThe process ID as used within the local operating system in the local system logs.
UserNameUnot specialized
UserIsRequestorMnot specialized
RoleIDCodeMEV(110152, DCM, "Destination")
NetworkAccessPointTypeCodeM"1" for machine (DNS) name, "2" for IP address
NetworkAccessPointIDMThe machine name or IP address

Audit Source​

AuditMessage / AuditSourceIdentification

Field NameOptValue ConstraintsExample
AuditSourceIDUnot specialized
EventActionCodeUnot specialized
AuditSourceTypeCodeUnot specialized

Patient​

AuditMessage / ParticipantObjectIdentification

Field NameOptValue ConstraintsExample
ParticipantObjectTypeCodeM"1" (Person)<ParticipantObjectIdentification ParticipantObjectID="9109199019099^^^DHA&www.home-affairs.gov.za&URI" ParticipantObjectTypeCode="1" ParticipantObjectTypeCodeRole="1">
ParticipantObjectTypeCodeRoleM"1" (Patient)<ParticipantObjectIDTypeCode code="2" displayName="Patient Number" codeSystemName="RFC-3881"/>
ParticipantObjectDataLifeCycleUnot specialized
ParticipantObjectIDTypeCodeMnot specialized
ParticipantObjectSensitivityUnot specialized
ParticipantObjectIDMThe patient ID in HL7 CX format.
ParticipantObjectNameUnot specialized
ParticipantObjectQueryUnot specialized
ParticipantObjectDetailUnot specialized

Query Parameters​

AuditMessage / ParticipantObjectIdentification

Field NameOptValue ConstraintsExample
ParticipantObjectTypeCodeM"2" (system object)<ParticipantObjectIdentification ParticipantObjectID="" ParticipantObjectTypeCode="2" ParticipantObjectTypeCodeRole="24">
ParticipantObjectTypeCodeRoleM"24" (query)
ParticipantObjectDataLifeCycleUnot specialized
ParticipantObjectIDTypeCodeMEV("ITI-21", "IHE Transactions", "Patient Demographics Query")<ParticipantObjectIDTypeCode code="ITI-21" displayName="Patient Demographics Query" codeSystemName="IHE Transactions"/>
ParticipantObjectSensitivityUnot specialized
ParticipantObjectIDUnot specialized
ParticipantObjectNameUnot specialized
ParticipantObjectQueryMThe complete query message (including MSH and QPD segments), base64 encoded.<ParticipantObjectQuery>TVN...Nw=="/>
ParticipantObjectDetailMType=MSH-10 (the literal string), Value=the value of MSH-10 (from the message content, base64 encoded)<ParticipantObjectDetail type="MSH-10" value="Mz...Nw=="/>