@Override public Iti65AuditDataset createAuditDataset() { return new Iti65AuditDataset(isServerSide()); }
@Override public Iti65AuditDataset enrichAuditDatasetFromRequest(Iti65AuditDataset auditDataset, Object request, Map<String, Object> parameters) { Iti65AuditDataset dataset = super.enrichAuditDatasetFromRequest(auditDataset, request, parameters); Bundle bundle = (Bundle) request; // DocumentManifest documentManifest = bundle.getEntry().stream() .map(Bundle.BundleEntryComponent::getResource) .filter(DocumentManifest.class::isInstance) .map(DocumentManifest.class::cast) .findFirst().orElseThrow(() -> new RuntimeException("ITI-65 bundle must contain DocumentManifest")); dataset.enrichDatasetFromDocumentManifest(documentManifest); return dataset; }
@Override public AuditMessage[] makeAuditMessage(AuditContext auditContext, Iti65AuditDataset auditDataset) { return new PHIExportBuilder<>(auditContext, auditDataset, FhirEventTypeCode.ProvideDocumentBundle) .setPatient(auditDataset.getPatientId()) .addExportedEntity( auditDataset.getDocumentManifestUuid() != null ? auditDataset.getDocumentManifestUuid() : auditContext.getAuditValueIfMissing(), ParticipantObjectIdTypeCode.XdsMetadata, ParticipantObjectTypeCodeRole.Job, Collections.emptyList()) .getMessages(); } }
@Override public void doAudit(Iti65AuditDataset auditDataset) { AuditorManager.getFhirAuditor().auditIti65( isServerSide(), auditDataset.getEventOutcomeCode(), auditDataset.getServiceEndpointUrl(), auditDataset.getClientIpAddress(), auditDataset.getPatientId(), auditDataset.getDocumentManifestUuid()); }
public void enrichDatasetFromDocumentManifest(DocumentManifest documentManifest) { getPatientIds().add(documentManifest.getSubject().getReference()); // If available, use the documentManifest identifier as documentManifestUuid if (!documentManifest.getIdentifier().isEmpty()) { this.documentManifestUuid = documentManifest.getIdentifier().get(0).getValue(); } } }
@Override public boolean enrichAuditDatasetFromResponse(Iti65AuditDataset auditDataset, Object response, AuditContext auditContext) { Bundle bundle = (Bundle) response; // Extract DocumentManifest (UU)IDs from the response bundle for auditing bundle.getEntry().stream() .map(Bundle.BundleEntryComponent::getResponse) .filter(Objects::nonNull) .filter(r -> r.getLocation() != null && r.getLocation().startsWith("DocumentManifest")) .findFirst() .ifPresent(r -> auditDataset.setDocumentManifestUuid(r.getLocation())); return super.enrichAuditDatasetFromResponse(auditDataset, response, auditContext); }
public void enrichDatasetFromDocumentManifest(DocumentManifest documentManifest) { Reference reference = documentManifest.getSubject(); getPatientIds().add(reference.getResource() != null ? reference.getResource().getIdElement().getValue() : reference.getReference()); // If available, use the documentManifest identifier as documentManifestUuid if (!documentManifest.getIdentifier().isEmpty()) { this.documentManifestUuid = documentManifest.getIdentifier().get(0).getValue(); } } }
@Override public boolean enrichAuditDatasetFromResponse(Iti65AuditDataset auditDataset, Object response, AuditContext auditContext) { Bundle bundle = (Bundle) response; // Extract DocumentManifest (UU)IDs from the response bundle for auditing bundle.getEntry().stream() .map(Bundle.BundleEntryComponent::getResponse) .filter(Objects::nonNull) .filter(r -> r.getLocation() != null && r.getLocation().startsWith("DocumentManifest")) .findFirst() .ifPresent(r -> auditDataset.setDocumentManifestUuid(r.getLocation())); return super.enrichAuditDatasetFromResponse(auditDataset, response, auditContext); }
@Override public AuditMessage[] makeAuditMessage(AuditContext auditContext, Iti65AuditDataset auditDataset) { return new PHIImportBuilder<>(auditContext, auditDataset, FhirEventTypeCode.ProvideDocumentBundle) .setPatient(auditDataset.getPatientId()) .addImportedEntity( auditDataset.getDocumentManifestUuid(), ParticipantObjectIdTypeCode.XdsMetadata, ParticipantObjectTypeCodeRole.Job, Collections.emptyList()) .getMessages(); } }
public void enrichDatasetFromDocumentManifest(DocumentManifest documentManifest) { Reference reference = documentManifest.getSubject(); getPatientIds().add(reference.getResource() != null ? reference.getResource().getIdElement().getValue() : reference.getReference()); // If available, use the documentManifest identifier as documentManifestUuid if (!documentManifest.getIdentifier().isEmpty()) { this.documentManifestUuid = documentManifest.getIdentifier().get(0).getValue(); } } }
@Override public Iti65AuditDataset createAuditDataset() { return new Iti65AuditDataset(isServerSide()); }
@Override public Iti65AuditDataset enrichAuditDatasetFromRequest(Iti65AuditDataset auditDataset, Object request, Map<String, Object> parameters) { Iti65AuditDataset dataset = super.enrichAuditDatasetFromRequest(auditDataset, request, parameters); Bundle bundle = (Bundle) request; // DocumentManifest documentManifest = bundle.getEntry().stream() .map(Bundle.BundleEntryComponent::getResource) .filter(DocumentManifest.class::isInstance) .map(DocumentManifest.class::cast) .findFirst().orElseThrow(() -> new RuntimeException("ITI-65 bundle must contain DocumentManifest")); dataset.enrichDatasetFromDocumentManifest(documentManifest); return dataset; }
@Override public boolean enrichAuditDatasetFromResponse(Iti65AuditDataset auditDataset, Object response, AuditContext auditContext) { Bundle bundle = (Bundle) response; // Extract DocumentManifest (UU)IDs from the response bundle for auditing bundle.getEntry().stream() .map(Bundle.BundleEntryComponent::getResponse) .filter(Objects::nonNull) .filter(r -> r.getLocation() != null && r.getLocation().startsWith("DocumentManifest")) .findFirst() .ifPresent(r -> auditDataset.setDocumentManifestUuid(r.getLocation())); return super.enrichAuditDatasetFromResponse(auditDataset, response, auditContext); }
@Override public AuditMessage[] makeAuditMessage(AuditContext auditContext, Iti65AuditDataset auditDataset) { return new PHIImportBuilder<>(auditContext, auditDataset, FhirEventTypeCode.ProvideDocumentBundle) .setPatient(auditDataset.getPatientId()) .addImportedEntity( auditDataset.getDocumentManifestUuid(), ParticipantObjectIdTypeCode.XdsMetadata, ParticipantObjectTypeCodeRole.Job, Collections.emptyList()) .getMessages(); } }
public void enrichDatasetFromDocumentManifest(DocumentManifest documentManifest) { Reference reference = documentManifest.getSubject(); getPatientIds().add(reference.getResource() != null ? reference.getResource().getIdElement().getValue() : reference.getReference()); // If available, use the documentManifest identifier as documentManifestUuid if (!documentManifest.getIdentifier().isEmpty()) { this.documentManifestUuid = documentManifest.getIdentifier().get(0).getValue(); } } }
@Override public Iti65AuditDataset createAuditDataset() { return new Iti65AuditDataset(isServerSide()); }
@Override public Iti65AuditDataset enrichAuditDatasetFromRequest(Iti65AuditDataset auditDataset, Object request, Map<String, Object> parameters) { Iti65AuditDataset dataset = super.enrichAuditDatasetFromRequest(auditDataset, request, parameters); Bundle bundle = (Bundle) request; // DocumentManifest documentManifest = bundle.getEntry().stream() .map(Bundle.BundleEntryComponent::getResource) .filter(DocumentManifest.class::isInstance) .map(DocumentManifest.class::cast) .findFirst().orElseThrow(() -> new RuntimeException("ITI-65 bundle must contain DocumentManifest")); dataset.enrichDatasetFromDocumentManifest(documentManifest); return dataset; }
@Override public AuditMessage[] makeAuditMessage(AuditContext auditContext, Iti65AuditDataset auditDataset) { return new PHIExportBuilder<>(auditContext, auditDataset, FhirEventTypeCode.ProvideDocumentBundle) .setPatient(auditDataset.getPatientId()) .addExportedEntity( auditDataset.getDocumentManifestUuid() != null ? auditDataset.getDocumentManifestUuid() : auditContext.getAuditValueIfMissing(), ParticipantObjectIdTypeCode.XdsMetadata, ParticipantObjectTypeCodeRole.Job, Collections.emptyList()) .getMessages(); } }
@Override public Iti65AuditDataset createAuditDataset() { return new Iti65AuditDataset(isServerSide()); }
@Override public Iti65AuditDataset enrichAuditDatasetFromRequest(Iti65AuditDataset auditDataset, Object request, Map<String, Object> parameters) { Iti65AuditDataset dataset = super.enrichAuditDatasetFromRequest(auditDataset, request, parameters); Bundle bundle = (Bundle) request; // DocumentManifest documentManifest = bundle.getEntry().stream() .map(Bundle.BundleEntryComponent::getResource) .filter(DocumentManifest.class::isInstance) .map(DocumentManifest.class::cast) .findFirst().orElseThrow(() -> new RuntimeException("ITI-65 bundle must contain DocumentManifest")); dataset.enrichDatasetFromDocumentManifest(documentManifest); return dataset; }