Class CompositionServiceImp

java.lang.Object
org.ehrbase.service.CompositionServiceImp
All Implemented Interfaces:
org.ehrbase.api.service.CompositionService, org.ehrbase.api.service.VersionedObjectService<com.nedap.archie.rm.composition.Composition,UUID>

@Service public class CompositionServiceImp extends Object implements org.ehrbase.api.service.CompositionService
CompositionService implementation.
  • Constructor Details

    • CompositionServiceImp

      public CompositionServiceImp(KnowledgeCacheServiceImp knowledgeCacheService, org.ehrbase.api.service.ValidationService validationService, org.ehrbase.api.service.EhrService ehrService, org.ehrbase.api.service.SystemService systemService, CompositionRepository compositionRepository, ItemTagRepository itemTagRepository)
  • Method Details

    • create

      public Optional<UUID> create(UUID ehrId, com.nedap.archie.rm.composition.Composition objData, UUID contribution, UUID audit)
      Specified by:
      create in interface org.ehrbase.api.service.VersionedObjectService<com.nedap.archie.rm.composition.Composition,UUID>
    • create

      public Optional<UUID> create(UUID ehrId, com.nedap.archie.rm.composition.Composition objData)
      Specified by:
      create in interface org.ehrbase.api.service.VersionedObjectService<com.nedap.archie.rm.composition.Composition,UUID>
    • update

      public Optional<UUID> update(UUID ehrId, com.nedap.archie.rm.support.identification.ObjectVersionId targetObjId, com.nedap.archie.rm.composition.Composition objData, UUID contribution, UUID audit)
      Specified by:
      update in interface org.ehrbase.api.service.VersionedObjectService<com.nedap.archie.rm.composition.Composition,UUID>
    • update

      public Optional<UUID> update(UUID ehrId, com.nedap.archie.rm.support.identification.ObjectVersionId targetObjId, com.nedap.archie.rm.composition.Composition objData)
      Specified by:
      update in interface org.ehrbase.api.service.VersionedObjectService<com.nedap.archie.rm.composition.Composition,UUID>
    • delete

      public void delete(UUID ehrId, com.nedap.archie.rm.support.identification.ObjectVersionId targetObjId, UUID contribution, UUID audit)
      Specified by:
      delete in interface org.ehrbase.api.service.VersionedObjectService<com.nedap.archie.rm.composition.Composition,UUID>
    • delete

      public void delete(UUID ehrId, com.nedap.archie.rm.support.identification.ObjectVersionId targetObjId)
      Specified by:
      delete in interface org.ehrbase.api.service.VersionedObjectService<com.nedap.archie.rm.composition.Composition,UUID>
    • retrieve

      public Optional<com.nedap.archie.rm.composition.Composition> retrieve(UUID ehrId, UUID compositionId, Integer version) throws org.ehrbase.api.exception.InternalServerException
      Specified by:
      retrieve in interface org.ehrbase.api.service.CompositionService
      Throws:
      org.ehrbase.api.exception.InternalServerException
    • getEhrIdForComposition

      public Optional<UUID> getEhrIdForComposition(UUID compositionId)
      Specified by:
      getEhrIdForComposition in interface org.ehrbase.api.service.CompositionService
    • serialize

      public org.ehrbase.openehr.sdk.response.dto.ehrscape.StructuredString serialize(org.ehrbase.openehr.sdk.response.dto.ehrscape.CompositionDto composition, org.ehrbase.openehr.sdk.response.dto.ehrscape.CompositionFormat format)
      Public serializer entry point which will be called with composition dto fetched from database and the desired target serialized string format. Will parse the composition dto into target format either with a custom lambda expression for desired target format
      Specified by:
      serialize in interface org.ehrbase.api.service.CompositionService
      Parameters:
      composition - Composition dto from database
      format - Target format
      Returns:
      Structured string with string of data and content format
    • buildComposition

      public com.nedap.archie.rm.composition.Composition buildComposition(String content, org.ehrbase.openehr.sdk.response.dto.ehrscape.CompositionFormat format, String templateId)
      Specified by:
      buildComposition in interface org.ehrbase.api.service.CompositionService
    • getLastVersionNumber

      public int getLastVersionNumber(UUID ehrId, UUID compositionId)
      Specified by:
      getLastVersionNumber in interface org.ehrbase.api.service.CompositionService
    • getVersionByTimestamp

      public int getVersionByTimestamp(UUID compositionId, OffsetDateTime timestamp)
      Specified by:
      getVersionByTimestamp in interface org.ehrbase.api.service.CompositionService
    • retrieveTemplateId

      public String retrieveTemplateId(UUID compositionId)
      Specified by:
      retrieveTemplateId in interface org.ehrbase.api.service.CompositionService
    • exists

      public boolean exists(UUID versionedObjectId)
      Specified by:
      exists in interface org.ehrbase.api.service.CompositionService
    • isDeleted

      public boolean isDeleted(UUID ehrId, UUID versionedObjectId, Integer version)
      Specified by:
      isDeleted in interface org.ehrbase.api.service.CompositionService
    • adminDelete

      @PreAuthorize("hasRole(\'ADMIN\')") public void adminDelete(UUID compositionId)
      Specified by:
      adminDelete in interface org.ehrbase.api.service.CompositionService
    • getVersionedComposition

      public com.nedap.archie.rm.ehr.VersionedComposition getVersionedComposition(UUID ehrId, UUID composition)
      Specified by:
      getVersionedComposition in interface org.ehrbase.api.service.CompositionService
    • getRevisionHistoryOfVersionedComposition

      public com.nedap.archie.rm.generic.RevisionHistory getRevisionHistoryOfVersionedComposition(UUID ehrUid, UUID composition)
      Specified by:
      getRevisionHistoryOfVersionedComposition in interface org.ehrbase.api.service.CompositionService
    • getOriginalVersionComposition

      public Optional<com.nedap.archie.rm.changecontrol.OriginalVersion<com.nedap.archie.rm.composition.Composition>> getOriginalVersionComposition(UUID ehrUid, UUID versionedObjectUid, int version)
      Specified by:
      getOriginalVersionComposition in interface org.ehrbase.api.service.CompositionService