Class ContextAccess

java.lang.Object
org.ehrbase.dao.access.support.DataAccess
org.ehrbase.dao.access.jooq.ContextAccess
All Implemented Interfaces:
I_ContextAccess, I_DomainAccess, I_SimpleCRUD

public class ContextAccess extends DataAccess implements I_ContextAccess
Since:
1.0
Author:
Christian Chevalley, Jake Smolka, Luis Marco-Ruiz
  • Constructor Details

    • ContextAccess

      public ContextAccess(org.jooq.DSLContext context, ServerConfig serverConfig, com.nedap.archie.rm.composition.EventContext eventContext, Short sysTenant)
  • Method Details

    • retrieveInstance

      public static I_ContextAccess retrieveInstance(I_DomainAccess domainAccess, UUID id)
      Description copied from interface: I_ContextAccess
      retrieve an Event Context access layer instance from the DB
      Parameters:
      domainAccess - SQL context
      id - the event context id
      Returns:
      an interface to the access layer
    • retrieveInstance

      public static I_ContextAccess retrieveInstance(I_DomainAccess domainAccess, org.jooq.Result<?> records)
    • retrieveHistoricalEventContext

      public static com.nedap.archie.rm.composition.EventContext retrieveHistoricalEventContext(I_DomainAccess domainAccess, UUID compositionId, Timestamp transactionTime)
      Description copied from interface: I_ContextAccess
      Retrieves an EventContext for a specific historical time.
      Parameters:
      domainAccess - Access object
      compositionId - ID of composition the context is connected to
      transactionTime - Historical time of the context
      Returns:
      New EventContext object matching the given time or null if not available.
      Throws:
      InternalServerException - on failure of decoding DvText or DvDateTime
    • setRecordFields

      public void setRecordFields(UUID id, com.nedap.archie.rm.composition.EventContext eventContext, Short sysTenant)
      setup an EventContextRecord instance based on values from an EventContext instance
      Specified by:
      setRecordFields in interface I_ContextAccess
      Parameters:
      id -
      eventContext -
    • commit

      public UUID commit(Timestamp transactionTime)
      Description copied from interface: I_SimpleCRUD
      storeComposition a new entry in the DB
      Specified by:
      commit in interface I_SimpleCRUD
      Returns:
      the UUID of the newly created record
      Throws:
      InternalServerException - when database operation or
      IllegalArgumentException - when context commit failed
    • commit

      public UUID commit()
      Description copied from interface: I_SimpleCRUD
      storeComposition a new entry in the DB, using a default transaction time
      only implemented with "root" tables: ehr, contribution and composition!
      Specified by:
      commit in interface I_SimpleCRUD
      Returns:
      the UUID of the newly created record
      Throws:
      InternalServerException - when database operation or
      IllegalArgumentException - when context commit failed
    • update

      public Boolean update(Timestamp transactionTime)
      Description copied from interface: I_SimpleCRUD
      updateComposition the current entry
      depending on the implementation, records are updated only if one or more field(s) have been changed
      Specified by:
      update in interface I_SimpleCRUD
      Returns:
      Throws:
      InternalServerException - if DB inconsistency or other problem with updating DB entry
    • update

      public Boolean update(Timestamp transactionTime, boolean force)
      Description copied from interface: I_SimpleCRUD
      updateComposition the current entry even if the record is not modified
      intended to be used with temporal tables to ensure that a set of interdependent tables are updated in sync. This approach is used to simplify versions retrieval.
      Specified by:
      update in interface I_SimpleCRUD
      Returns:
      Throws:
      InternalServerException - when update failed
    • update

      @Deprecated public Boolean update()
      Deprecated.
      Description copied from interface: I_SimpleCRUD
      updateComposition the current entry using time now as the system transaction time
      only implemented at root level object (contribution, composition, ehr). depending on the implementation, records are updated only if one or more field(s) have been changed
      Specified by:
      update in interface I_SimpleCRUD
      Returns:
      Throws:
      InternalServerException - because inherited interface function isn't implemented in this class
    • update

      @Deprecated public Boolean update(Boolean force)
      Deprecated.
      Description copied from interface: I_SimpleCRUD
      updateComposition the current entry using time now as the system transaction time
      only implemented at root level object (contribution, composition, ehr). depending on the implementation, records are updated only if one or more field(s) have been changed
      Specified by:
      update in interface I_SimpleCRUD
      Returns:
      Throws:
      InternalServerException - because inherited interface function isn't implemented in this class
    • delete

      public Integer delete()
      Description copied from interface: I_SimpleCRUD
      delete the Versioned Object associated with the instance implementing this Data Access Interface. Relies on ON DELETE CASCADE
      Specified by:
      delete in interface I_SimpleCRUD
      Returns:
    • mapRmEventContext

      public com.nedap.archie.rm.composition.EventContext mapRmEventContext()
      Description copied from interface: I_ContextAccess
      Creates an EventContext object from already set record data of an already existing ContextAccess instance.
      Specified by:
      mapRmEventContext in interface I_ContextAccess
      Returns:
      EventContext object representing this instance's data
      Throws:
      InternalServerException - on failure of decoding DvText or DvDateTime
    • getOtherContextJson

      public String getOtherContextJson()
      Description copied from interface: I_ContextAccess
      Retrieves otherContext from event context record, which is represented as json blob in the DB.
      Specified by:
      getOtherContextJson in interface I_ContextAccess
      Returns:
      Json representation of otherContext
    • setCompositionId

      public void setCompositionId(UUID compositionId)
      Specified by:
      setCompositionId in interface I_ContextAccess
    • getId

      public UUID getId()
      Specified by:
      getId in interface I_ContextAccess
    • isVoid

      public boolean isVoid()
      Specified by:
      isVoid in interface I_ContextAccess
    • getDataAccess

      public DataAccess getDataAccess()
      Specified by:
      getDataAccess in interface I_DomainAccess