Package org.ehrbase.dao.access.jooq
Class CompositionAccess
java.lang.Object
org.ehrbase.dao.access.support.DataAccess
org.ehrbase.dao.access.jooq.CompositionAccess
- All Implemented Interfaces:
I_Compensatable,I_CompositionAccess,I_DomainAccess,I_VersionedCRUD
Operations on the static part of Compositions (eg. non archetyped
attributes).
- Since:
- 1.0
- Author:
- Christian Chevalley, Jake Smolka, Luis Marco-Ruiz
-
Field Summary
FieldsFields inherited from interface org.ehrbase.dao.access.interfaces.I_CompositionAccess
COMPOSER_ID, COMPOSER_JOIN, composerId, composerRef, COMPOSITION_JOIN, compositionRef, CONCEPT_JOIN, conceptRef, EVENT_CONTEXT_JOIN, eventContextRef, F_COMPOSER_ID_ISSUER, F_COMPOSER_ID_TYPE_NAME, F_COMPOSER_ID_VALUE, F_COMPOSER_NAME, F_COMPOSER_REF_NAMESPACE, F_COMPOSER_REF_SCHEME, F_COMPOSER_REF_TYPE, F_COMPOSER_REF_VALUE, F_COMPOSITION_ID, F_CONCEPT_DESCRIPTION, F_CONCEPT_ID, F_CONTEXT_END_TIME, F_CONTEXT_END_TIME_TZID, F_CONTEXT_LOCATION, F_CONTEXT_OTHER_CONTEXT, F_CONTEXT_SETTING, F_CONTEXT_START_TIME, F_CONTEXT_START_TIME_TZID, F_ENTRY, F_ENTRY_TEMPLATE, F_FACILITY_ID_ISSUER, F_FACILITY_ID_TYPE_NAME, F_FACILITY_ID_VALUE, F_FACILITY_NAME, F_FACILITY_REF_NAMESPACE, F_FACILITY_REF_SCHEME, F_FACILITY_REF_TYPE, F_FACILITY_REF_VALUE, F_LANGUAGE, F_PARTICIPATION_FUNCTION, F_PARTICIPATION_MODE, F_PARTICIPATION_START_TIME, F_PARTICIPATION_START_TIME_TZID, F_PERFORMER_ID_ISSUER, F_PERFORMER_ID_TYPE_NAME, F_PERFORMER_ID_VALUE, F_PERFORMER_NAME, F_PERFORMER_REF_NAMESPACE, F_PERFORMER_REF_SCHEME, F_PERFORMER_REF_TYPE, F_PERFORMER_REF_VALUE, F_TERRITORY, F_TERRITORY_CODE, F_VERSION, FACILITY_ID, FACILITY_JOIN, facilityId, facilityRef, PARTICIPATION_JOIN, participationRef, PERFORMER_JOIN, performerRef, TERRITORY_JOIN, territoryRefFields inherited from interface org.ehrbase.dao.access.interfaces.I_DomainAccess
DBCP2_POOL, KEY_AUTO_RECONNECT, KEY_CONNECTION_MODE, KEY_DATABASE, KEY_DIALECT, KEY_HOST, KEY_INITIAL_CONNECTIONS, KEY_INTROSPECT_CACHE, KEY_KNOWLEDGE, KEY_LOG_ABANDONNED, KEY_LOGIN, KEY_MAX_ACTIVE, KEY_MAX_CONNECTION, KEY_MAX_IDLE, KEY_PASSWORD, KEY_PORT, KEY_REMOVE_ABANDONNED, KEY_REMOVE_ABANDONNED_TIMEOUT, KEY_SCHEMA, KEY_SET_MAX_PREPARED_STATEMENTS, KEY_SET_POOL_PREPARED_STATEMENTS, KEY_TEST_ON_BORROW, KEY_URL, KEY_WAIT_MS, PG_POOL -
Constructor Summary
ConstructorsConstructorDescriptionCompositionAccess(I_DomainAccess domainAccess, com.nedap.archie.rm.composition.Composition composition, UUID ehrId, String tenantIdentifier) Constructor with convenientI_DomainAccessparameter, for better readability.CompositionAccess(org.jooq.DSLContext context, I_KnowledgeCache knowledgeManager, IntrospectService introspectCache, ServerConfig serverConfig, com.nedap.archie.rm.composition.Composition composition, UUID ehrId, String tenantIdentifier) Basic constructor for composition. -
Method Summary
Modifier and TypeMethodDescriptionvoidInvoke physical deletion.commit(LocalDateTime timestamp, UUID contribution, UUID audit) Commit the object with the necessary metadata, which will be derived from the contribution.commit(LocalDateTime timestamp, UUID committerId, UUID systemId, String description) Commit the object with the necessary metadata.intdelete(LocalDateTime timestamp, UUID contribution, UUID audit) Delete the object with the necessary metadata, which will be derived from the contribution.intdelete(LocalDateTime timestamp, UUID committerId, UUID systemId, String description) Delete the object with the necessary metadata.static booleanexists(I_DomainAccess domainAccess, UUID versionedObjectId) Checks if the given versionedObjectID points to an existing composition.get the composer IdGet the entry linked to the composition.get the event context idget the contribution idgetEhrid()get the EHR id to which this composition belongs togetId()get the composition Idget the language code for this composition (eg.static IntegergetLastVersionNumber(I_DomainAccess domainAccess, UUID compositionId) retrieve the number of versions for this composition or 1 if no history presentgetLinks()FIXME: bug? comment says 2-letter while methods are saying Integer get the 2-letters country codeGets time_committed from contribution of composition.static intgetVersionFromTimeStamp(I_DomainAccess domainAccess, UUID vCompositionUid, Timestamp timeCommitted) Calculate the version corresponding to aVersionedCompositionwhich is the closest in time (before) theTimestampprovided.static Map<Integer,I_CompositionAccess> getVersionMapOfComposition(I_DomainAccess domainAccess, UUID compositionId) Creates Map containing all versions as their Access object with their matching version number.static booleanhasPreviousVersion(I_DomainAccess domainAccess, UUID compositionId) check if a composition has a previous version in historystatic booleanisDeleted(I_DomainAccess domainAccess, UUID versionedObjectId) Checks if given composition ID is ID of a logically deleted composition.static Map<com.nedap.archie.rm.support.identification.ObjectVersionId,I_CompositionAccess> retrieveCompositionsInContribution(I_DomainAccess domainAccess, UUID contribution, String node) static I_CompositionAccessretrieveCompositionVersion(I_DomainAccess domainAccess, UUID id, int version) Retrieve composition(s) for an identified versionstatic I_CompositionAccessretrieveInstance(I_DomainAccess domainAccess, UUID id) Retrieve a composition access instance from the persistence layerstatic I_CompositionAccessretrieveInstanceByTimestamp(I_DomainAccess domainAccess, UUID compositionUid, Timestamp timeCommitted) Returns the instance of aVersionedCompositioncorresponding to the version which is the closest in time before the timeCommitted provided.voidsetAuditDetailsAccess(I_AuditDetailsAccess auditDetailsAccess) voidsetAuditDetailsId(UUID auditId) voidsetComposerId(UUID composerId) set the composer idvoidsetComposition(com.nedap.archie.rm.composition.Composition composition) voidsetCompositionRecord(CompositionHistoryRecord historyRecord) Set the record via converting from a history record.voidvoidsetCompositionRecord(org.jooq.Result<?> records) voidsetContent(I_EntryAccess content) voidsetContext(com.nedap.archie.rm.composition.EventContext eventContext) voidsetContextCompositionId(UUID contextId) set the event context idvoidsetContributionAccess(I_ContributionAccess contributionAccess) voidsetContributionId(UUID contributionId) set the contribution id for this compositionvoidset the EHR idvoidsetFeederAudit(com.nedap.archie.rm.archetyped.FeederAudit feederAudit) voidsetLanguageCode(String code) set the language codevoidvoidsetTerritoryCode(Integer code) FIXME: bug? comment says 2-letter while methods are saying Integer set the 2-letters territory codebooleanupdate(LocalDateTime timestamp, UUID contribution, UUID audit) Update the object with the necessary metadata, which will be derived from the contribution.booleanupdate(LocalDateTime timestamp, UUID committerId, UUID systemId, String description, I_ConceptAccess.ContributionChangeType changeType) Update the object with the necessary metadata.voidupdateCompositionData(com.nedap.archie.rm.composition.Composition newComposition) Methods inherited from class org.ehrbase.dao.access.support.DataAccess
getConnection, getContext, getDialect, getIntrospectService, getKnowledgeManager, getServerConfig, releaseConnection
-
Field Details
-
COMPOSITION_LITERAL
- See Also:
-
-
Constructor Details
-
CompositionAccess
public CompositionAccess(org.jooq.DSLContext context, I_KnowledgeCache knowledgeManager, IntrospectService introspectCache, ServerConfig serverConfig, com.nedap.archie.rm.composition.Composition composition, UUID ehrId, String tenantIdentifier) Basic constructor for composition.- Parameters:
context- DB context object of current server contextknowledgeManager- Knowledge cache object of current server contextintrospectCache- Introspect cache object of current server contextserverConfig- Server config object of current server contextcomposition- Object representation of given new compositionehrId- Given ID of EHR this composition will be created for- Throws:
IllegalArgumentException- when seeking language code, territory code or composer ID failed
-
CompositionAccess
public CompositionAccess(I_DomainAccess domainAccess, com.nedap.archie.rm.composition.Composition composition, UUID ehrId, String tenantIdentifier) Constructor with convenientI_DomainAccessparameter, for better readability.- Parameters:
domainAccess- Current domain access objectcomposition- Object representation of given new compositionehrId- Given ID of EHR this composition will be created for- Throws:
IllegalArgumentException- when seeking language code, territory code or composer ID failed
-
-
Method Details
-
commit
Commit the object with the necessary metadata.- Specified by:
commitin interfaceI_VersionedCRUD- Parameters:
timestamp- Time of operationcommitterId- Audit committersystemId- Audit systemdescription- (Optional) Audit description- Returns:
- ID of object
-
commit
Commit the object with the necessary metadata, which will be derived from the contribution.- Specified by:
commitin interfaceI_VersionedCRUD- Parameters:
timestamp- Time of operationcontribution- Given contribution to use and derive audit data from- Returns:
- ID of object
-
update
public boolean update(LocalDateTime timestamp, UUID committerId, UUID systemId, String description, I_ConceptAccess.ContributionChangeType changeType) Update the object with the necessary metadata.- Specified by:
updatein interfaceI_VersionedCRUD- Parameters:
timestamp- Time of operationcommitterId- Audit committersystemId- Audit systemdescription- (Optional) Audit descriptionchangeType- Specific change type, because there are more than DELETED.- Returns:
- Boolean representing success of update
-
update
Update the object with the necessary metadata, which will be derived from the contribution.- Specified by:
updatein interfaceI_VersionedCRUD- Parameters:
timestamp- Time of operationcontribution- Given contribution to use and derive audit data from- Returns:
- Boolean representing success of update
-
delete
Delete the object with the necessary metadata.- Specified by:
deletein interfaceI_VersionedCRUD- Parameters:
timestamp- Time of operationcommitterId- Audit committersystemId- Audit systemdescription- (Optional) Audit description- Returns:
- Number of deleted objects
-
delete
Delete the object with the necessary metadata, which will be derived from the contribution.- Specified by:
deletein interfaceI_VersionedCRUD- Parameters:
timestamp- Time of operationcontribution- Given contribution to use and derive audit data from- Returns:
- Number of deleted objects
-
retrieveCompositionVersion
public static I_CompositionAccess retrieveCompositionVersion(I_DomainAccess domainAccess, UUID id, int version) Description copied from interface:I_CompositionAccessRetrieve composition(s) for an identified version- Parameters:
domainAccess- SQL contextid- the versioned_object uuidversion- version number- Returns:
I_CompositionAccessobject of the matching access instance- Throws:
IllegalArgumentException- when version number is not greater 0ObjectNotFoundException- when no composition could be found with given input
-
getLastVersionNumber
Description copied from interface:I_CompositionAccessretrieve the number of versions for this composition or 1 if no history present- Returns:
-
hasPreviousVersion
Description copied from interface:I_CompositionAccesscheck if a composition has a previous version in history- Returns:
-
retrieveInstance
Description copied from interface:I_CompositionAccessRetrieve a composition access instance from the persistence layer- Parameters:
domainAccess- SQL context, knowledgeid- a composition uuid- Returns:
- a valid
I_CompositionAccess
-
getVersionFromTimeStamp
public static int getVersionFromTimeStamp(I_DomainAccess domainAccess, UUID vCompositionUid, Timestamp timeCommitted) Description copied from interface:I_CompositionAccessCalculate the version corresponding to aVersionedCompositionwhich is the closest in time (before) theTimestampprovided.- Parameters:
domainAccess- TheI_DomainAccesscontaining the persistence information and DB connection parameters for persisting a composition.vCompositionUid- TheUUIDcorresponding to aVersionedCompositiontimeCommitted-Timestampof commit- Returns:
- version number
- Throws:
ObjectNotFoundException- when no version in compliance with timestamp is availableInternalServerException- on problem with SQL statement or input
-
retrieveInstanceByTimestamp
public static I_CompositionAccess retrieveInstanceByTimestamp(I_DomainAccess domainAccess, UUID compositionUid, Timestamp timeCommitted) Description copied from interface:I_CompositionAccessReturns the instance of aVersionedCompositioncorresponding to the version which is the closest in time before the timeCommitted provided.- Parameters:
domainAccess-I_DomainAccesswith the persistence SQL Context and knowledge cachecompositionUid-UUIDthat identifies the composition.timeCommitted- {java.sql.Timestamp} that indicates the point in time to search version for the composition backwards.- Returns:
- the number of the version that is the closest in time (before) the timeCommitted parameter provided. If a null timeCommitted is provided the latest composition will be returned.
- Throws:
IllegalArgumentException- when no version in compliance with timestamp is available or when calculated version number is not greater 0InternalServerException- on problem with SQL statement or inputObjectNotFoundException- when no composition could be found with given input
-
retrieveCompositionsInContribution
public static Map<com.nedap.archie.rm.support.identification.ObjectVersionId,I_CompositionAccess> retrieveCompositionsInContribution(I_DomainAccess domainAccess, UUID contribution, String node) -
getVersionMapOfComposition
public static Map<Integer,I_CompositionAccess> getVersionMapOfComposition(I_DomainAccess domainAccess, UUID compositionId) Description copied from interface:I_CompositionAccessCreates Map containing all versions as their Access object with their matching version number.- Parameters:
domainAccess- Data AccesscompositionId- Given composition ID- Returns:
- Map referencing all versions by their version number
-
getEhrid
Description copied from interface:I_CompositionAccessget the EHR id to which this composition belongs to- Specified by:
getEhridin interfaceI_CompositionAccess- Returns:
UUID
-
setEhrid
Description copied from interface:I_CompositionAccessset the EHR id- Specified by:
setEhridin interfaceI_CompositionAccess- Parameters:
ehrId-UUID
-
getComposerId
Description copied from interface:I_CompositionAccessget the composer Id- Specified by:
getComposerIdin interfaceI_CompositionAccess- Returns:
UUID
-
setComposerId
Description copied from interface:I_CompositionAccessset the composer id- Specified by:
setComposerIdin interfaceI_CompositionAccess- Parameters:
composerId-UUID
-
getContextId
Description copied from interface:I_CompositionAccessget the event context id- Specified by:
getContextIdin interfaceI_CompositionAccess- Returns:
- Optional with ID if it exists, otherwise empty Optional
-
getContributionId
Description copied from interface:I_CompositionAccessget the contribution id- Specified by:
getContributionIdin interfaceI_Compensatable- Specified by:
getContributionIdin interfaceI_CompositionAccess- Returns:
UUID
-
getLanguageCode
Description copied from interface:I_CompositionAccessget the language code for this composition (eg. 'en', 'fr' etc.)- Specified by:
getLanguageCodein interfaceI_CompositionAccess- Returns:
- language code as string
-
setLanguageCode
Description copied from interface:I_CompositionAccessset the language code- Specified by:
setLanguageCodein interfaceI_CompositionAccess- Parameters:
code- String
-
getTerritoryCode
Description copied from interface:I_CompositionAccessFIXME: bug? comment says 2-letter while methods are saying Integer get the 2-letters country code- Specified by:
getTerritoryCodein interfaceI_CompositionAccess- Returns:
-
setTerritoryCode
Description copied from interface:I_CompositionAccessFIXME: bug? comment says 2-letter while methods are saying Integer set the 2-letters territory code- Specified by:
setTerritoryCodein interfaceI_CompositionAccess- Parameters:
code- String
-
getContent
Description copied from interface:I_CompositionAccessGet the entry linked to the composition.- Specified by:
getContentin interfaceI_CompositionAccess- Returns:
- the entry
- See Also:
-
setContent
- Specified by:
setContentin interfaceI_CompositionAccess
-
getId
Description copied from interface:I_CompositionAccessget the composition Id- Specified by:
getIdin interfaceI_Compensatable- Specified by:
getIdin interfaceI_CompositionAccess
-
getFeederAudit
- Specified by:
getFeederAuditin interfaceI_CompositionAccess
-
getLinks
- Specified by:
getLinksin interfaceI_CompositionAccess
-
setFeederAudit
public void setFeederAudit(com.nedap.archie.rm.archetyped.FeederAudit feederAudit) - Specified by:
setFeederAuditin interfaceI_CompositionAccess
-
setLinks
- Specified by:
setLinksin interfaceI_CompositionAccess
-
setContextCompositionId
Description copied from interface:I_CompositionAccessset the event context id- Specified by:
setContextCompositionIdin interfaceI_CompositionAccess- Parameters:
contextId-UUID- Throws:
InternalServerException- on problem updating context
-
setContributionId
Description copied from interface:I_CompositionAccessset the contribution id for this composition- Specified by:
setContributionIdin interfaceI_CompositionAccess
-
setCompositionRecord
- Specified by:
setCompositionRecordin interfaceI_CompositionAccess
-
setCompositionRecord
Description copied from interface:I_CompositionAccessSet the record via converting from a history record.- Specified by:
setCompositionRecordin interfaceI_CompositionAccess- Parameters:
historyRecord- History record
-
setCompositionRecord
public void setCompositionRecord(org.jooq.Result<?> records) - Specified by:
setCompositionRecordin interfaceI_CompositionAccess- Throws:
IllegalArgumentException- when handling of record failed
-
setComposition
public void setComposition(com.nedap.archie.rm.composition.Composition composition) - Specified by:
setCompositionin interfaceI_CompositionAccess
-
getSysTransaction
- Specified by:
getSysTransactionin interfaceI_Compensatable- Specified by:
getSysTransactionin interfaceI_CompositionAccess
-
getTimeCommitted
Description copied from interface:I_CompositionAccessGets time_committed from contribution of composition.- Specified by:
getTimeCommittedin interfaceI_CompositionAccess- Returns:
- Timestamp of time of commitment
-
setContributionAccess
- Specified by:
setContributionAccessin interfaceI_CompositionAccess
-
setAuditDetailsAccess
- Specified by:
setAuditDetailsAccessin interfaceI_CompositionAccess
-
getVersion
- Specified by:
getVersionin interfaceI_CompositionAccess
-
updateCompositionData
public void updateCompositionData(com.nedap.archie.rm.composition.Composition newComposition) - Specified by:
updateCompositionDatain interfaceI_CompositionAccess- Throws:
IllegalArgumentException- when seeking language code, territory code or composer ID failed
-
setContext
public void setContext(com.nedap.archie.rm.composition.EventContext eventContext) - Specified by:
setContextin interfaceI_CompositionAccess
-
getDataAccess
- Specified by:
getDataAccessin interfaceI_DomainAccess
-
getAuditDetailsId
- Specified by:
getAuditDetailsIdin interfaceI_CompositionAccess
-
getAuditDetailsAccess
- Specified by:
getAuditDetailsAccessin interfaceI_CompositionAccess
-
setAuditDetailsId
- Specified by:
setAuditDetailsIdin interfaceI_CompositionAccess
-
exists
Description copied from interface:I_CompositionAccessChecks if the given versionedObjectID points to an existing composition.- Parameters:
domainAccess- Data access objectversionedObjectId- ID to be checked- Returns:
- True if exists
-
isDeleted
Description copied from interface:I_CompositionAccessChecks if given composition ID is ID of a logically deleted composition.- Parameters:
domainAccess- Data access objectversionedObjectId- ID to be checked- Returns:
- True if deleted, false if not
-
adminDelete
public void adminDelete()Description copied from interface:I_CompositionAccessInvoke physical deletion.- Specified by:
adminDeletein interfaceI_CompositionAccess
-
getAttestationRef
- Specified by:
getAttestationRefin interfaceI_CompositionAccess
-