Package org.ehrbase.repository
Class EhrFolderRepository
java.lang.Object
org.ehrbase.repository.AbstractVersionedObjectRepository<EhrFolderVersionRecord,EhrFolderDataRecord,EhrFolderVersionHistoryRecord,EhrFolderDataHistoryRecord,com.nedap.archie.rm.directory.Folder>
org.ehrbase.repository.EhrFolderRepository
@Repository
public class EhrFolderRepository
extends AbstractVersionedObjectRepository<EhrFolderVersionRecord,EhrFolderDataRecord,EhrFolderVersionHistoryRecord,EhrFolderDataHistoryRecord,com.nedap.archie.rm.directory.Folder>
Handles DB-Access to
EhrFolderVersion etc.-
Nested Class Summary
Nested classes/interfaces inherited from class org.ehrbase.repository.AbstractVersionedObjectRepository
AbstractVersionedObjectRepository.Tables -
Field Summary
Fields inherited from class org.ehrbase.repository.AbstractVersionedObjectRepository
context, contributionRepository, DATA_HISTORY_PROTOTYPE, DATA_PROTOTYPE, NOT_MATCH_LATEST_VERSION, NOT_MATCH_SYSTEM_ID, NOT_MATCH_UID, systemService, tables, timeProvider, VERSION_HISTORY_PROTOTYPE, VERSION_PROTOTYPE -
Constructor Summary
ConstructorsConstructorDescriptionEhrFolderRepository(org.jooq.DSLContext context, ContributionRepository contributionRepository, SystemService systemService, TimeProvider timeProvider) -
Method Summary
Modifier and TypeMethodDescriptionvoidadminDelete(UUID ehrId, Integer ehrFoldersIdx) voidcommit(UUID ehrId, com.nedap.archie.rm.directory.Folder folder, UUID contributionId, UUID auditId, int ehrFoldersIdx) Create a new Folder in the DBvoiddelete(UUID ehrId, UUID rootFolderId, int version, int ehrFoldersIdx, UUID contributionId, UUID auditId) Delete a Folder in the DBOptional<com.nedap.archie.rm.directory.Folder> findByVersion(UUID ehrId, int folderIdx, int version) List<com.nedap.archie.rm.support.identification.ObjectVersionId> findForContribution(UUID ehrId, UUID contributionId) Optional<com.nedap.archie.rm.directory.Folder> Optional<com.nedap.archie.rm.support.identification.ObjectVersionId> findVersionByTime(UUID ehrId, int folderIdx, OffsetDateTime time) protected Class<com.nedap.archie.rm.directory.Folder> protected List<org.jooq.TableField<EhrFolderVersionRecord, ?>> booleanprotected org.jooq.Field<org.jooq.JSONB> jsonbDataAggregation(org.jooq.Table<?> dataTable) Inserts item_uuids into json, so the FOLDER.items can be restored later.voidupdate(UUID ehrId, com.nedap.archie.rm.directory.Folder folder, UUID contributionId, UUID auditId, int ehrFoldersIdx) Update a Folder in the DBMethods inherited from class org.ehrbase.repository.AbstractVersionedObjectRepository
buildLocatableDataQuery, buildObjectVersionId, checkIsNextHeadVoId, commitHead, contributionCondition, copyHeadToHistory, createCurrentTime, dataRootCondition, delete, deleteHead, extractSystemId, extractUid, extractVersion, field, findByVersion, findHead, findLatestHistoryRoot, findRootRecordByVersion, findVersionByTime, findVersionHeadRecords, findVersionIdsByContribution, fromJoinedVersionData, getAdditionalSelectFields, getOriginalVersion, hasEhr, isDeleted, jsonDataField, toLocatable, toRecords, update, versionHeadQueryExtended
-
Constructor Details
-
EhrFolderRepository
public EhrFolderRepository(org.jooq.DSLContext context, ContributionRepository contributionRepository, SystemService systemService, TimeProvider timeProvider)
-
-
Method Details
-
getVersionDataJoinFields
- Specified by:
getVersionDataJoinFieldsin classAbstractVersionedObjectRepository<EhrFolderVersionRecord,EhrFolderDataRecord, EhrFolderVersionHistoryRecord, EhrFolderDataHistoryRecord, com.nedap.archie.rm.directory.Folder>
-
jsonbDataAggregation
protected org.jooq.Field<org.jooq.JSONB> jsonbDataAggregation(org.jooq.Table<?> dataTable) Inserts item_uuids into json, so the FOLDER.items can be restored later. Restoring could be done by the db, but then the whole objects would need to be transferred.- Overrides:
jsonbDataAggregationin classAbstractVersionedObjectRepository<EhrFolderVersionRecord,EhrFolderDataRecord, EhrFolderVersionHistoryRecord, EhrFolderDataHistoryRecord, com.nedap.archie.rm.directory.Folder>
-
commit
@Transactional public void commit(UUID ehrId, com.nedap.archie.rm.directory.Folder folder, @Nullable UUID contributionId, @Nullable UUID auditId, int ehrFoldersIdx) Create a new Folder in the DB- Parameters:
ehrId-folder-contributionId- Ifnulldefault contribution will be createdContributionRepository.createDefault(UUID, ContributionDataType, ContributionChangeType)auditId- Ifnulldefault audit will be createdContributionRepository.createDefaultAudit(ContributionChangeType, AuditDetailsTargetType)
-
update
@Transactional public void update(UUID ehrId, com.nedap.archie.rm.directory.Folder folder, @Nullable UUID contributionId, @Nullable UUID auditId, int ehrFoldersIdx) Update a Folder in the DB- Parameters:
ehrId- AffectedEHRfolder- AffectedFolderwith new head system versioncontributionId- Ifnulldefault contribution will be createdContributionRepository.createDefault(UUID, ContributionDataType, ContributionChangeType)auditId- Ifnulldefault audit will be createdContributionRepository.createDefaultAudit(ContributionChangeType, AuditDetailsTargetType)
-
findHead
-
delete
@Transactional public void delete(UUID ehrId, UUID rootFolderId, int version, int ehrFoldersIdx, UUID contributionId, UUID auditId) Delete a Folder in the DB- Parameters:
ehrId-rootFolderId-version- Version to be deleted. Must match latest.ehrFoldersIdx-contributionId- Ifnulldefault contribution will be createdContributionRepository.createDefault(UUID, ContributionDataType, ContributionChangeType)auditId- Ifnulldefault audit will be createdContributionRepository.createDefaultAudit(ContributionChangeType, AuditDetailsTargetType)
-
findByVersion
-
getLocatableClass
- Specified by:
getLocatableClassin classAbstractVersionedObjectRepository<EhrFolderVersionRecord,EhrFolderDataRecord, EhrFolderVersionHistoryRecord, EhrFolderDataHistoryRecord, com.nedap.archie.rm.directory.Folder>
-
findVersionByTime
public Optional<com.nedap.archie.rm.support.identification.ObjectVersionId> findVersionByTime(UUID ehrId, int folderIdx, OffsetDateTime time) -
hasFolder
-
adminDelete
-
findForContribution
-