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