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;
}
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);
}
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);
}
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;
}
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());
}
Aggregations