Search in sources :

Example 56 with Arende

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

the class ArendeViewConverterTest method convertToJson.

@Test
public void convertToJson() throws JsonGenerationException, JsonMappingException, IOException {
    Arende arende = buildArende("lisjp");
    StringWriter jsonWriter = new StringWriter();
    CustomObjectMapper objectMapper = new CustomObjectMapper();
    objectMapper.writeValue(jsonWriter, arende);
}
Also used : StringWriter(java.io.StringWriter) CustomObjectMapper(se.inera.intyg.common.util.integration.json.CustomObjectMapper) MedicinsktArende(se.inera.intyg.webcert.persistence.arende.model.MedicinsktArende) Arende(se.inera.intyg.webcert.persistence.arende.model.Arende) Test(org.junit.Test)

Example 57 with Arende

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

the class UtkastBootstrapBean method createArende.

private String createArende(Utlatande utlatande, boolean komplettering, String paminnelseMeddelandeId, FrageStallare fragestallare, ArendeAmne amne) {
    Arende arende = new Arende();
    arende.setAmne(amne);
    arende.setEnhetId(utlatande.getGrundData().getSkapadAv().getVardenhet().getEnhetsid());
    arende.setEnhetName(utlatande.getGrundData().getSkapadAv().getVardenhet().getEnhetsnamn());
    arende.setIntygsId(utlatande.getId());
    arende.setIntygTyp(utlatande.getTyp());
    if (komplettering) {
        MedicinsktArende ma = new MedicinsktArende();
        // This question always exist.
        ma.setFrageId("1");
        ma.setInstans(1);
        ma.setText("Kompletteringstext");
        arende.setKomplettering(Arrays.asList(ma));
    }
    arende.setMeddelande("Meddelandetext");
    String meddelandeId = UUID.randomUUID().toString();
    arende.setMeddelandeId(meddelandeId);
    arende.setPaminnelseMeddelandeId(paminnelseMeddelandeId);
    arende.setPatientPersonId(utlatande.getGrundData().getPatient().getPersonId().getPersonnummer());
    arende.setReferensId("referens");
    arende.setRubrik(arende.getAmne().getDescription());
    arende.setSenasteHandelse(LocalDateTime.now());
    arende.setSigneratAv(utlatande.getGrundData().getSkapadAv().getPersonId());
    arende.setSigneratAvName(utlatande.getGrundData().getSkapadAv().getFullstandigtNamn());
    arende.setSkickatAv(fragestallare.getKod());
    arende.setSkickatTidpunkt(LocalDateTime.now());
    if (fragestallare.equals(FrageStallare.WEBCERT)) {
        arende.setStatus(Status.PENDING_EXTERNAL_ACTION);
    } else {
        arende.setStatus(Status.PENDING_INTERNAL_ACTION);
        arende.setSistaDatumForSvar(LocalDate.now().plusWeeks(2));
    }
    arende.setSvarPaId(null);
    arende.setSvarPaReferens(null);
    arende.setTimestamp(LocalDateTime.now());
    arende.setVardaktorName(utlatande.getGrundData().getSkapadAv().getFullstandigtNamn());
    arende.setVardgivareName(utlatande.getGrundData().getSkapadAv().getVardenhet().getVardgivare().getVardgivarnamn());
    arende.setVidarebefordrad(false);
    arendeRepo.save(arende);
    return meddelandeId;
}
Also used : MedicinsktArende(se.inera.intyg.webcert.persistence.arende.model.MedicinsktArende) MedicinsktArende(se.inera.intyg.webcert.persistence.arende.model.MedicinsktArende) Arende(se.inera.intyg.webcert.persistence.arende.model.Arende)

Example 58 with Arende

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

the class ArendeConverter method createArendeFromUtkast.

public static Arende createArendeFromUtkast(ArendeAmne amne, String rubrik, String meddelande, Utkast utkast, LocalDateTime now, String vardaktorNamn, HsaEmployeeService hsaEmployeeService) {
    Arende arende = new Arende();
    arende.setStatus(Status.PENDING_EXTERNAL_ACTION);
    arende.setAmne(amne);
    arende.setEnhetId(utkast.getEnhetsId());
    arende.setEnhetName(utkast.getEnhetsNamn());
    arende.setVardgivareName(utkast.getVardgivarNamn());
    arende.setIntygsId(utkast.getIntygsId());
    arende.setIntygTyp(utkast.getIntygsTyp());
    arende.setMeddelande(meddelande);
    arende.setPatientPersonId(utkast.getPatientPersonnummer().getPersonnummer());
    arende.setRubrik(rubrik);
    arende.setSigneratAv(utkast.getSignatur().getSigneradAv());
    arende.setSigneratAvName(getSignedByName(utkast, hsaEmployeeService));
    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 59 with Arende

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

the class ArendeConverter method convert.

public static Arende convert(SendMessageToCareType request) {
    Arende res = new Arende();
    res.setAmne(ArendeAmne.valueOf(request.getAmne().getCode()));
    res.setIntygsId(request.getIntygsId().getExtension());
    res.getKontaktInfo().addAll(request.getSkickatAv().getKontaktInfo());
    res.getKomplettering().addAll(request.getKomplettering().stream().map(ArendeConverter::convert).collect(Collectors.toList()));
    res.setMeddelande(request.getMeddelande());
    res.setMeddelandeId(request.getMeddelandeId());
    res.setPaminnelseMeddelandeId(request.getPaminnelseMeddelandeId());
    res.setPatientPersonId(request.getPatientPersonId().getExtension());
    res.setReferensId(request.getReferensId());
    res.setRubrik(request.getRubrik());
    res.setSistaDatumForSvar(request.getSistaDatumForSvar());
    res.setSkickatAv(FragestallareConverterUtil.partToFrageStallarKod(request.getSkickatAv().getPart().getCode()));
    res.setSkickatTidpunkt(request.getSkickatTidpunkt());
    if (request.getSvarPa() != null) {
        res.setSvarPaId(request.getSvarPa().getMeddelandeId());
        res.setSvarPaReferens(request.getSvarPa().getReferensId());
    }
    return res;
}
Also used : Arende(se.inera.intyg.webcert.persistence.arende.model.Arende) MedicinsktArende(se.inera.intyg.webcert.persistence.arende.model.MedicinsktArende)

Example 60 with Arende

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

the class ArendeViewConverter method createConversationViewFromArendeList.

private ArendeConversationView createConversationViewFromArendeList(List<Arende> messagesInThread, List<AnsweredWithIntyg> kompltForIntyg, List<ArendeDraft> arendeDrafts) {
    Optional<Arende> fraga = messagesInThread.stream().filter(a -> getArendeType(a) == ArendeType.FRAGA).reduce((element, otherElement) -> {
        throw new IllegalArgumentException("More than 1 fraga found.");
    });
    Optional<Arende> svar = messagesInThread.stream().filter(a -> getArendeType(a) == ArendeType.SVAR).reduce((element, otherElement) -> {
        throw new IllegalArgumentException("More than 1 svar found.");
    });
    List<Arende> paminnelser = messagesInThread.stream().filter(a -> getArendeType(a) == ArendeType.PAMINNELSE).collect(Collectors.toList());
    if (!fraga.isPresent()) {
        throw new IllegalArgumentException("No fraga found for the given message thread.");
    }
    String draftText = null;
    if (!svar.isPresent() && !FrageStallare.WEBCERT.getKod().equals(fraga.get().getSkickatAv())) {
        draftText = arendeDrafts.stream().filter(d -> d.getQuestionId().equals(fraga.get().getMeddelandeId())).findAny().map(ArendeDraft::getText).orElse(null);
    }
    // Find oldest intyg among kompletterande intyg, that's newer than the fraga
    AnsweredWithIntyg komplt = null;
    if (!svar.isPresent() && fraga.get().getAmne() == ArendeAmne.KOMPLT) {
        komplt = AnsweredWithIntygUtil.returnOldestKompltOlderThan(fraga.get().getTimestamp(), kompltForIntyg);
    }
    return convertToArendeConversationView(fraga.get(), svar.orElse(null), komplt, paminnelser, draftText);
}
Also used : ArendeDraft(se.inera.intyg.webcert.persistence.arende.model.ArendeDraft) ArendeType(se.inera.intyg.webcert.web.web.controller.api.dto.ArendeView.ArendeType) LoggerFactory(org.slf4j.LoggerFactory) Autowired(org.springframework.beans.factory.annotation.Autowired) ArrayList(java.util.ArrayList) ArendeView(se.inera.intyg.webcert.web.web.controller.api.dto.ArendeView) ImmutableList(com.google.common.collect.ImmutableList) CollectionUtils(org.apache.commons.collections.CollectionUtils) ArendeAmne(se.inera.intyg.webcert.persistence.arende.model.ArendeAmne) Map(java.util.Map) Utlatande(se.inera.intyg.common.support.model.common.internal.Utlatande) AnsweredWithIntygUtil(se.inera.intyg.webcert.web.converter.util.AnsweredWithIntygUtil) MedicinsktArende(se.inera.intyg.webcert.persistence.arende.model.MedicinsktArende) Logger(org.slf4j.Logger) MedicinsktArendeView(se.inera.intyg.webcert.web.web.controller.api.dto.MedicinsktArendeView) Throwables(com.google.common.base.Throwables) IntygModuleRegistryImpl(se.inera.intyg.common.support.modules.registry.IntygModuleRegistryImpl) Collectors(java.util.stream.Collectors) Arende(se.inera.intyg.webcert.persistence.arende.model.Arende) IntygServiceImpl(se.inera.intyg.webcert.web.service.intyg.IntygServiceImpl) Objects(java.util.Objects) AnsweredWithIntyg(se.inera.intyg.webcert.web.web.controller.api.dto.AnsweredWithIntyg) List(java.util.List) Component(org.springframework.stereotype.Component) ModuleApi(se.inera.intyg.common.support.modules.support.api.ModuleApi) ArendeConversationView(se.inera.intyg.webcert.web.web.controller.api.dto.ArendeConversationView) Optional(java.util.Optional) FrageStallare(se.inera.intyg.webcert.web.service.fragasvar.dto.FrageStallare) Comparator(java.util.Comparator) Collections(java.util.Collections) ModuleNotFoundException(se.inera.intyg.common.support.modules.registry.ModuleNotFoundException) ArendeDraft(se.inera.intyg.webcert.persistence.arende.model.ArendeDraft) MedicinsktArende(se.inera.intyg.webcert.persistence.arende.model.MedicinsktArende) Arende(se.inera.intyg.webcert.persistence.arende.model.Arende) AnsweredWithIntyg(se.inera.intyg.webcert.web.web.controller.api.dto.AnsweredWithIntyg)

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