Search in sources :

Example 76 with Arende

use of se.inera.intyg.webcert.persistence.arende.model.Arende in project webcert by sklintyg.

the class ArendeServiceImpl method closeArendeAsHandled.

private Arende closeArendeAsHandled(Arende arendeToClose) {
    NotificationEvent notificationEvent = determineNotificationEvent(arendeToClose, false);
    arendeToClose.setStatus(Status.CLOSED);
    arendeToClose.setSenasteHandelse(LocalDateTime.now(systemClock));
    Arende closedArende = arendeRepository.save(arendeToClose);
    sendNotification(closedArende, notificationEvent);
    arendeDraftService.delete(closedArende.getIntygsId(), closedArende.getMeddelandeId());
    return closedArende;
}
Also used : NotificationEvent(se.inera.intyg.webcert.web.service.notification.NotificationEvent) MedicinsktArende(se.inera.intyg.webcert.persistence.arende.model.MedicinsktArende) Arende(se.inera.intyg.webcert.persistence.arende.model.Arende)

Example 77 with Arende

use of se.inera.intyg.webcert.persistence.arende.model.Arende in project webcert by sklintyg.

the class ArendeServiceImpl method getArenden.

@Override
public List<ArendeConversationView> getArenden(String intygsId) {
    WebCertUser user = webcertUserService.getUser();
    List<Arende> arendeList = getArendeForIntygId(intygsId, user);
    arendeList.stream().findFirst().map(Arende::getPatientPersonId).map(personNummer -> Personnummer.createPersonnummer(personNummer).orElseThrow(() -> new IllegalArgumentException("Could not parse personnummer when querying for arenden."))).ifPresent(pn -> authoritiesValidator.given(user).privilegeIf(AuthoritiesConstants.PRIVILEGE_HANTERA_SEKRETESSMARKERAD_PATIENT, SekretessStatus.TRUE.equals(patientDetailsResolver.getSekretessStatus(pn))).orThrow());
    return getArendeConversationViewList(intygsId, arendeList);
}
Also used : Arrays(java.util.Arrays) ArendeDraft(se.inera.intyg.webcert.persistence.arende.model.ArendeDraft) PatientDetailsResolver(se.inera.intyg.webcert.web.service.patient.PatientDetailsResolver) LoggerFactory(org.slf4j.LoggerFactory) Autowired(org.springframework.beans.factory.annotation.Autowired) MonitoringLogService(se.inera.intyg.webcert.web.service.monitoring.MonitoringLogService) Lakare(se.inera.intyg.webcert.web.service.dto.Lakare) WebCertUserService(se.inera.intyg.webcert.web.service.user.WebCertUserService) CertificateSenderService(se.inera.intyg.webcert.web.service.certificatesender.CertificateSenderService) Fk7263EntryPoint(se.inera.intyg.common.fk7263.support.Fk7263EntryPoint) UtkastRepository(se.inera.intyg.webcert.persistence.utkast.repository.UtkastRepository) SendMessageToRecipientTypeConverter(se.inera.intyg.webcert.common.client.converter.SendMessageToRecipientTypeConverter) ArendeAmne(se.inera.intyg.webcert.persistence.arende.model.ArendeAmne) Map(java.util.Map) HsaEmployeeService(se.inera.intyg.infra.integration.hsa.services.HsaEmployeeService) SendMessageToRecipientType(se.riv.clinicalprocess.healthcond.certificate.sendMessageToRecipient.v2.SendMessageToRecipientType) Status(se.inera.intyg.webcert.persistence.model.Status) MedicinsktArende(se.inera.intyg.webcert.persistence.arende.model.MedicinsktArende) AuthoritiesValidator(se.inera.intyg.infra.security.authorities.validation.AuthoritiesValidator) SekretessStatus(se.inera.intyg.webcert.common.model.SekretessStatus) Predicate(java.util.function.Predicate) Personnummer(se.inera.intyg.schemas.contract.Personnummer) Set(java.util.Set) Collectors(java.util.stream.Collectors) JAXBException(javax.xml.bind.JAXBException) Arende(se.inera.intyg.webcert.persistence.arende.model.Arende) Utkast(se.inera.intyg.webcert.persistence.utkast.model.Utkast) Objects(java.util.Objects) QueryFragaSvarParameter(se.inera.intyg.webcert.web.service.fragasvar.dto.QueryFragaSvarParameter) AnsweredWithIntyg(se.inera.intyg.webcert.web.web.controller.api.dto.AnsweredWithIntyg) List(java.util.List) NotificationEvent(se.inera.intyg.webcert.web.service.notification.NotificationEvent) ArendeConversationView(se.inera.intyg.webcert.web.web.controller.api.dto.ArendeConversationView) FrageStallare(se.inera.intyg.webcert.web.service.fragasvar.dto.FrageStallare) NotNull(org.jetbrains.annotations.NotNull) WebCertServiceException(se.inera.intyg.webcert.common.service.exception.WebCertServiceException) Filter(se.inera.intyg.webcert.persistence.model.Filter) FragaSvarService(se.inera.intyg.webcert.web.service.fragasvar.FragaSvarService) SendMessageToRecipientTypeBuilder(se.inera.intyg.webcert.web.integration.builders.SendMessageToRecipientTypeBuilder) CertificateSenderException(se.inera.intyg.webcert.web.service.certificatesender.CertificateSenderException) ArendeListItem(se.inera.intyg.webcert.web.web.controller.api.dto.ArendeListItem) LocalDateTime(java.time.LocalDateTime) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) GroupableItem(se.inera.intyg.webcert.common.model.GroupableItem) Value(org.springframework.beans.factory.annotation.Value) ArendeConverter(se.inera.intyg.webcert.web.converter.ArendeConverter) Strings(com.google.common.base.Strings) ArendeListItemConverter(se.inera.intyg.webcert.web.converter.ArendeListItemConverter) TsBasEntryPoint(se.inera.intyg.common.ts_bas.support.TsBasEntryPoint) Service(org.springframework.stereotype.Service) AuthoritiesHelper(se.inera.intyg.infra.security.authorities.AuthoritiesHelper) AnsweredWithIntygUtil(se.inera.intyg.webcert.web.converter.util.AnsweredWithIntygUtil) StatisticsGroupByUtil(se.inera.intyg.webcert.web.service.util.StatisticsGroupByUtil) ArendeViewConverter(se.inera.intyg.webcert.web.converter.ArendeViewConverter) NotificationService(se.inera.intyg.webcert.web.service.notification.NotificationService) Logger(org.slf4j.Logger) ArendeRepository(se.inera.intyg.webcert.persistence.arende.repository.ArendeRepository) TsDiabetesEntryPoint(se.inera.intyg.common.ts_diabetes.support.TsDiabetesEntryPoint) WebCertServiceErrorCodeEnum(se.inera.intyg.webcert.common.service.exception.WebCertServiceErrorCodeEnum) QueryFragaSvarResponse(se.inera.intyg.webcert.web.service.fragasvar.dto.QueryFragaSvarResponse) WebCertUser(se.inera.intyg.webcert.web.service.user.dto.WebCertUser) Clock(java.time.Clock) FilterConverter(se.inera.intyg.webcert.web.converter.FilterConverter) Preconditions(com.google.common.base.Preconditions) VisibleForTesting(com.google.common.annotations.VisibleForTesting) AuthoritiesConstants(se.inera.intyg.infra.security.common.model.AuthoritiesConstants) Comparator(java.util.Comparator) Transactional(org.springframework.transaction.annotation.Transactional) MedicinsktArende(se.inera.intyg.webcert.persistence.arende.model.MedicinsktArende) Arende(se.inera.intyg.webcert.persistence.arende.model.Arende) WebCertUser(se.inera.intyg.webcert.web.service.user.dto.WebCertUser)

Example 78 with Arende

use of se.inera.intyg.webcert.persistence.arende.model.Arende in project webcert by sklintyg.

the class ArendeServiceImpl method closeAllNonClosed.

@Override
public void closeAllNonClosed(String intygsId) {
    List<Arende> list = arendeRepository.findByIntygsId(intygsId);
    for (Arende arende : list) {
        if (arende.getAmne() != ArendeAmne.PAMINN && arende.getSvarPaId() == null && arende.getStatus() != Status.CLOSED) {
            closeArendeAsHandled(arende);
        }
    }
    fragaSvarService.closeAllNonClosedQuestions(intygsId);
}
Also used : MedicinsktArende(se.inera.intyg.webcert.persistence.arende.model.MedicinsktArende) Arende(se.inera.intyg.webcert.persistence.arende.model.Arende)

Example 79 with Arende

use of se.inera.intyg.webcert.persistence.arende.model.Arende in project webcert by sklintyg.

the class ArendeConverter method createAnswerFromArende.

public static Arende createAnswerFromArende(String meddelande, Arende svarPaMeddelande, LocalDateTime now, String vardaktorNamn) {
    Arende arende = new Arende();
    arende.setStatus(Status.CLOSED);
    arende.setSvarPaId(svarPaMeddelande.getMeddelandeId());
    arende.setSvarPaReferens(svarPaMeddelande.getReferensId());
    arende.setAmne(svarPaMeddelande.getAmne());
    arende.setEnhetId(svarPaMeddelande.getEnhetId());
    arende.setEnhetName(svarPaMeddelande.getEnhetName());
    arende.setVardgivareName(svarPaMeddelande.getVardgivareName());
    arende.setIntygsId(svarPaMeddelande.getIntygsId());
    arende.setIntygTyp(svarPaMeddelande.getIntygTyp());
    arende.setMeddelande(meddelande);
    arende.setPatientPersonId(svarPaMeddelande.getPatientPersonId());
    arende.setRubrik(svarPaMeddelande.getRubrik());
    arende.setSigneratAv(svarPaMeddelande.getSigneratAv());
    arende.setSigneratAvName(svarPaMeddelande.getSigneratAvName());
    decorateOutgoingArende(arende, now, vardaktorNamn);
    return arende;
}
Also used : Arende(se.inera.intyg.webcert.persistence.arende.model.Arende) MedicinsktArende(se.inera.intyg.webcert.persistence.arende.model.MedicinsktArende)

Example 80 with Arende

use of se.inera.intyg.webcert.persistence.arende.model.Arende in project webcert by sklintyg.

the class CopyCompletionUtkastBuilderTest method testPopulateCompletionFromSignedIntygDecoratesWithReferensId.

@Test
public void testPopulateCompletionFromSignedIntygDecoratesWithReferensId() throws Exception {
    final String intygsTyp = "luse";
    final String meddelandeId = "meddelandeId";
    final String referensId = UUID.randomUUID().toString();
    Arende arende = new Arende();
    arende.setReferensId(referensId);
    when(moduleRegistry.getModuleApi(intygsTyp)).thenReturn(mockModuleApi);
    when(mockIntygService.fetchIntygData(INTYG_ID, intygsTyp, false)).thenReturn(createIntygContentHolder());
    when(mockModuleApi.validateDraft(isNull())).thenReturn(new ValidateDraftResponse(ValidationStatus.VALID, new ArrayList<>()));
    when(arendeService.getArende(meddelandeId)).thenReturn(arende);
    CreateCompletionCopyRequest copyRequest = buildCompletionRequest();
    copyRequest.setMeddelandeId(meddelandeId);
    copyRequest.setTyp(intygsTyp);
    copyRequest.setOriginalIntygTyp(intygsTyp);
    Person patientDetails = new Person(PATIENT_SSN, false, false, PATIENT_FNAME, PATIENT_MNAME, PATIENT_LNAME, "Postadr", "12345", "postort");
    copyCompletionBuilder.populateCopyUtkastFromSignedIntyg(copyRequest, patientDetails, true, false, false);
    ArgumentCaptor<CreateDraftCopyHolder> createDraftCopyHolderCaptor = ArgumentCaptor.forClass(CreateDraftCopyHolder.class);
    verify(mockModuleApi).createCompletionFromTemplate(createDraftCopyHolderCaptor.capture(), any(), eq(KOMMENTAR));
    assertNotNull(createDraftCopyHolderCaptor.getValue());
    assertEquals(meddelandeId, createDraftCopyHolderCaptor.getValue().getRelation().getMeddelandeId());
    assertEquals(RelationKod.KOMPLT, createDraftCopyHolderCaptor.getValue().getRelation().getRelationKod());
    assertEquals(referensId, createDraftCopyHolderCaptor.getValue().getRelation().getReferensId());
    assertEquals(INTYG_ID, createDraftCopyHolderCaptor.getValue().getRelation().getRelationIntygsId());
}
Also used : ArrayList(java.util.ArrayList) CreateCompletionCopyRequest(se.inera.intyg.webcert.web.service.utkast.dto.CreateCompletionCopyRequest) CreateDraftCopyHolder(se.inera.intyg.common.support.modules.support.api.dto.CreateDraftCopyHolder) Arende(se.inera.intyg.webcert.persistence.arende.model.Arende) ValidateDraftResponse(se.inera.intyg.common.support.modules.support.api.dto.ValidateDraftResponse) Person(se.inera.intyg.infra.integration.pu.model.Person) Test(org.junit.Test)

Aggregations

Arende (se.inera.intyg.webcert.persistence.arende.model.Arende)125 MedicinsktArende (se.inera.intyg.webcert.persistence.arende.model.MedicinsktArende)95 Test (org.junit.Test)88 Filter (se.inera.intyg.webcert.persistence.model.Filter)32 LocalDateTime (java.time.LocalDateTime)20 Utkast (se.inera.intyg.webcert.persistence.utkast.model.Utkast)20 Matchers.anyString (org.mockito.Matchers.anyString)17 WebCertServiceException (se.inera.intyg.webcert.common.service.exception.WebCertServiceException)16 WebCertUser (se.inera.intyg.webcert.web.service.user.dto.WebCertUser)15 ArendeConversationView (se.inera.intyg.webcert.web.web.controller.api.dto.ArendeConversationView)14 ArendeAmne (se.inera.intyg.webcert.persistence.arende.model.ArendeAmne)12 QueryFragaSvarParameter (se.inera.intyg.webcert.web.service.fragasvar.dto.QueryFragaSvarParameter)11 QueryFragaSvarResponse (se.inera.intyg.webcert.web.service.fragasvar.dto.QueryFragaSvarResponse)11 ArendeView (se.inera.intyg.webcert.web.web.controller.api.dto.ArendeView)8 ImmutableList (com.google.common.collect.ImmutableList)6 Signatur (se.inera.intyg.webcert.persistence.utkast.model.Signatur)6 NotificationEvent (se.inera.intyg.webcert.web.service.notification.NotificationEvent)6 ArendeListItem (se.inera.intyg.webcert.web.web.controller.api.dto.ArendeListItem)6 SendMessageToRecipientType (se.riv.clinicalprocess.healthcond.certificate.sendMessageToRecipient.v2.SendMessageToRecipientType)6 ArrayList (java.util.ArrayList)5