Interface AuditContext

All Known Subinterfaces:
BalpAuditContext
All Known Implementing Classes:
DefaultAuditContext, DefaultBalpAuditContext

public interface AuditContext
AuditContext is the central location where all aspects of serializing and sending out Audit messages are defined. This includes
  • whether auditing is enabled at all
  • the transmission protocol (UDP, TLS, ...)
  • the queue implementation (synchronous, asynchronous, ...
  • the serialization strategy (e.g. which DICOM audit version shall be used)
  • global parameters like source ID, enterprise ID
Since:
3.5
Author:
Christian Ohr
  • Method Details

    • isAuditEnabled

      boolean isAuditEnabled()
      Returns:
      true if auditing is enabled, false otherwise
    • getAuditRepositoryHostName

      String getAuditRepositoryHostName()
      Returns:
      hostname of the audit repository
    • getAuditRepositoryAddress

      InetAddress getAuditRepositoryAddress()
      Returns:
      address of the audit repository
    • getAuditRepositoryPort

      int getAuditRepositoryPort()
      Returns:
      port of the audit repository
    • getSendingApplication

      String getSendingApplication()
      Returns:
      sending application
    • getAuditTransmissionProtocol

      AuditTransmissionProtocol getAuditTransmissionProtocol()
      Returns:
      the wire protocol to be used
    • getAuditMessageQueue

      AuditMessageQueue getAuditMessageQueue()
      Returns:
      the queue implementation to be used
    • getTlsParameters

      TlsParameters getTlsParameters()
      Returns:
      the SSL socket factory to be used for TLS-based connections
    • getWsAuditDatasetEnricher

      <T extends WsAuditDatasetEnricher> T getWsAuditDatasetEnricher()
      Returns:
      Audit dataset enricher for Web Service based transactions.
    • getFhirAuditDatasetEnricher

      <T extends FhirAuditDatasetEnricher> T getFhirAuditDatasetEnricher()
      Returns:
      Audit dataset enricher for FHIR based transactions.
    • getAuditMessagePostProcessor

      default AuditMessagePostProcessor getAuditMessagePostProcessor()
      Returns:
      a post-processor for audit messages (defaults to a NO-OP implementation
    • getSerializationStrategy

      default SerializationStrategy getSerializationStrategy()
      Returns:
      the serialization strategy (defaults to the latest relevant DICOM version)
    • audit

      default void audit(AuditMessage... messages)
      Sends out the (potentially post-processed) audit messages as configured in this audit context
      Parameters:
      messages - audit messages to be sent
    • getAuditMetadataProvider

      default AuditMetadataProvider getAuditMetadataProvider()
      Returns audit metadata e.g. for populating the RFC 5424 header
      Returns:
      audit metadata
    • getAuditValueIfMissing

      default String getAuditValueIfMissing()
      Returns a value that is used when an otherwise mandatory attribute for an audit record in missing (e.g. a participant object ID). In this case, we can still write an audit record (e.g. documenting a failed request due to the missing attribute).

      This can also be set to null at the risk that building the audit record might throw an exception.

      Returns:
      a value that is used when an otherwise mandatory attribute for an audit record in missing
    • getAuditSourceId

      String getAuditSourceId()
      Returns:
      Source ID attribute of the audit event
    • getAuditEnterpriseSiteId

      String getAuditEnterpriseSiteId()
      Returns:
      Enterprise site ID attribute of the audit event
    • getAuditSource

      AuditSource getAuditSource()
      Returns:
      type of audit source
    • getAuditExceptionHandler

      AuditExceptionHandler getAuditExceptionHandler()
      Returns:
      exception handler
    • isIncludeParticipantsFromResponse

      boolean isIncludeParticipantsFromResponse()
      Determines whether participant object records shall be added to the audit message that are derived from the response of a request. This specifically applies to query results. The DICOM audit specification states that this should not be the case, however, project and legal requirements sometimes mandate that e.g. patient identifiers being retrieved shall be audited.
      Returns:
      true if participant object records shall be added, otherwise false
    • getContextRegistry

      io.micrometer.context.ContextRegistry getContextRegistry()
      Returns a registry of ThreadLocalAccessor instances that are used to propagate context when asynchronously queuing audit records.
      Returns:
      context registry
    • noAudit

      static AuditContext noAudit()