From 27b98c6a881740494018a3fb72d5f15a29eae450 Mon Sep 17 00:00:00 2001 From: Dmytro Rud Date: Sat, 22 Apr 2023 21:08:08 +0200 Subject: [PATCH] #413: Properly populate PurposeOfUse attribute in audit records of some HL7v3-based transactions --- .../commons/ihe/core/atna/event/IHEAuditMessageBuilder.java | 4 ++-- .../ipf/commons/ihe/hl7v3/iti55/Iti55AuditStrategy.groovy | 2 +- .../ipf/commons/ihe/hl7v3/iti56/Iti56AuditStrategy.groovy | 2 +- .../ipf/commons/ihe/hl7v3/pcc1/Pcc1AuditStrategy.groovy | 2 +- src/site/changes.xml | 5 +++++ 5 files changed, 10 insertions(+), 5 deletions(-) diff --git a/commons/ihe/core/src/main/java/org/openehealth/ipf/commons/ihe/core/atna/event/IHEAuditMessageBuilder.java b/commons/ihe/core/src/main/java/org/openehealth/ipf/commons/ihe/core/atna/event/IHEAuditMessageBuilder.java index b77c587280..b629d9241a 100644 --- a/commons/ihe/core/src/main/java/org/openehealth/ipf/commons/ihe/core/atna/event/IHEAuditMessageBuilder.java +++ b/commons/ihe/core/src/main/java/org/openehealth/ipf/commons/ihe/core/atna/event/IHEAuditMessageBuilder.java @@ -157,10 +157,10 @@ public List dicomDetails(String repositoryId, return details(DOCUMENT_UNIQUE_ID, documentInstanceId, seriesInstanceId, repositoryId, homeCommunityId, isXcaHomeCommunityId); } - private List details(String insranceKey, String instanceId, String seriesInstanceId, String repositoryId, String homeCommunityId, boolean xcaHomeCommunityId) { + private List details(String instanceKey, String instanceId, String seriesInstanceId, String repositoryId, String homeCommunityId, boolean xcaHomeCommunityId) { var tvp = new ArrayList(0); if (instanceId != null) { - tvp.add(getTypeValuePair(insranceKey, instanceId)); + tvp.add(getTypeValuePair(instanceKey, instanceId)); } if (seriesInstanceId != null) { tvp.add(getTypeValuePair(SERIES_INSTANCE_UNIQUE_ID, seriesInstanceId)); diff --git a/commons/ihe/hl7v3/src/main/groovy/org/openehealth/ipf/commons/ihe/hl7v3/iti55/Iti55AuditStrategy.groovy b/commons/ihe/hl7v3/src/main/groovy/org/openehealth/ipf/commons/ihe/hl7v3/iti55/Iti55AuditStrategy.groovy index a076b63122..4c38523569 100644 --- a/commons/ihe/hl7v3/src/main/groovy/org/openehealth/ipf/commons/ihe/hl7v3/iti55/Iti55AuditStrategy.groovy +++ b/commons/ihe/hl7v3/src/main/groovy/org/openehealth/ipf/commons/ihe/hl7v3/iti55/Iti55AuditStrategy.groovy @@ -54,7 +54,7 @@ class Iti55AuditStrategy extends Iti47AuditStrategy { @Override AuditMessage[] makeAuditMessage(AuditContext auditContext, Hl7v3AuditDataset auditDataset) { - QueryInformationBuilder builder = new QueryInformationBuilder<>(auditContext, auditDataset, Hl7v3EventTypeCode.CrossGatewayPatientDiscovery) + QueryInformationBuilder builder = new QueryInformationBuilder<>(auditContext, auditDataset, Hl7v3EventTypeCode.CrossGatewayPatientDiscovery, auditDataset.getPurposesOfUse()) // No patient identifiers are included for the Initiating Gateway if (isServerSide()) { builder.addPatients(auditDataset.patientIds) diff --git a/commons/ihe/hl7v3/src/main/groovy/org/openehealth/ipf/commons/ihe/hl7v3/iti56/Iti56AuditStrategy.groovy b/commons/ihe/hl7v3/src/main/groovy/org/openehealth/ipf/commons/ihe/hl7v3/iti56/Iti56AuditStrategy.groovy index 60e21f094c..70eebbcf15 100644 --- a/commons/ihe/hl7v3/src/main/groovy/org/openehealth/ipf/commons/ihe/hl7v3/iti56/Iti56AuditStrategy.groovy +++ b/commons/ihe/hl7v3/src/main/groovy/org/openehealth/ipf/commons/ihe/hl7v3/iti56/Iti56AuditStrategy.groovy @@ -71,7 +71,7 @@ class Iti56AuditStrategy extends Hl7v3AuditStrategy { @Override AuditMessage[] makeAuditMessage(AuditContext auditContext, Hl7v3AuditDataset auditDataset) { - new QueryInformationBuilder<>(auditContext, auditDataset, Hl7v3EventTypeCode.PatientLocationQuery) + new QueryInformationBuilder<>(auditContext, auditDataset, Hl7v3EventTypeCode.PatientLocationQuery, auditDataset.getPurposesOfUse()) .addPatients(auditDataset.patientIds) .setQueryParameters("PatientLocationQueryRequest", PatientLocationQuery, auditDataset.requestPayload) .getMessages() diff --git a/commons/ihe/hl7v3/src/main/groovy/org/openehealth/ipf/commons/ihe/hl7v3/pcc1/Pcc1AuditStrategy.groovy b/commons/ihe/hl7v3/src/main/groovy/org/openehealth/ipf/commons/ihe/hl7v3/pcc1/Pcc1AuditStrategy.groovy index f614d35e2f..dc52ecd0bb 100644 --- a/commons/ihe/hl7v3/src/main/groovy/org/openehealth/ipf/commons/ihe/hl7v3/pcc1/Pcc1AuditStrategy.groovy +++ b/commons/ihe/hl7v3/src/main/groovy/org/openehealth/ipf/commons/ihe/hl7v3/pcc1/Pcc1AuditStrategy.groovy @@ -58,7 +58,7 @@ class Pcc1AuditStrategy extends Hl7v3AuditStrategy { @Override AuditMessage[] makeAuditMessage(AuditContext auditContext, Hl7v3AuditDataset auditDataset) { - new QueryInformationBuilder<>(auditContext, auditDataset, Hl7v3EventTypeCode.QueryExistingData) + new QueryInformationBuilder<>(auditContext, auditDataset, Hl7v3EventTypeCode.QueryExistingData, auditDataset.getPurposesOfUse()) .setQueryParameters(auditDataset.messageId, QueryExistingData, auditDataset.requestPayload) .addPatients(auditDataset.patientIds) .getMessages() diff --git a/src/site/changes.xml b/src/site/changes.xml index 7cc5d25919..eabd55a087 100644 --- a/src/site/changes.xml +++ b/src/site/changes.xml @@ -23,6 +23,11 @@ Christian Ohr + + + Properly populate PurposeOfUse attribute in audit records of some HL7v3-based transactions + + Don't log in HL7v3 continuation webservice when returning zero results