use of se.inera.intyg.webcert.persistence.model.Status in project webcert by sklintyg.
the class FragaSvarRepositoryImpl method createPredicate.
private Predicate createPredicate(Filter filter, CriteriaBuilder builder, Root<FragaSvar> root) {
Predicate pred = builder.conjunction();
pred = builder.and(pred, root.get("vardperson").get("enhetsId").in(filter.getEnhetsIds()));
pred = builder.and(pred, root.get("intygsReferens").get("intygsTyp").in(filter.getIntygsTyper()));
if (filter.isQuestionFromFK()) {
pred = builder.and(pred, builder.equal(root.get("frageStallare"), "FK"));
}
if (filter.isQuestionFromWC()) {
pred = builder.and(pred, builder.equal(root.get("frageStallare"), "WC"));
}
if (!Strings.isNullOrEmpty(filter.getHsaId())) {
pred = builder.and(pred, builder.equal(root.get("vardperson").get("hsaId"), filter.getHsaId()));
}
if (filter.getVidarebefordrad() != null) {
pred = builder.and(pred, builder.equal(root.<Boolean>get("vidarebefordrad"), filter.getVidarebefordrad()));
}
if (filter.getChangedFrom() != null) {
pred = builder.and(pred, builder.greaterThanOrEqualTo(root.<LocalDateTime>get("senasteHandelse"), filter.getChangedFrom()));
}
if (filter.getChangedTo() != null) {
pred = builder.and(pred, builder.lessThan(root.<LocalDateTime>get("senasteHandelse"), filter.getChangedTo()));
}
if (filter.getReplyLatest() != null) {
pred = builder.and(pred, builder.lessThanOrEqualTo(root.<LocalDate>get("sistaDatumForSvar"), filter.getReplyLatest()));
}
switch(filter.getVantarPa()) {
case ALLA_OHANTERADE:
pred = builder.and(pred, builder.notEqual(root.<Status>get("status"), Status.CLOSED));
break;
case HANTERAD:
pred = builder.and(pred, builder.equal(root.<Status>get("status"), Status.CLOSED));
break;
case KOMPLETTERING_FRAN_VARDEN:
pred = builder.and(pred, builder.equal(root.<Status>get("status"), Status.PENDING_INTERNAL_ACTION), builder.equal(root.<Amne>get("amne"), Amne.KOMPLETTERING_AV_LAKARINTYG));
break;
case SVAR_FRAN_VARDEN:
Predicate careReplyAmnePred = builder.or(builder.equal(root.<Amne>get("amne"), Amne.OVRIGT), builder.equal(root.<Amne>get("amne"), Amne.ARBETSTIDSFORLAGGNING), builder.equal(root.<Amne>get("amne"), Amne.AVSTAMNINGSMOTE), builder.equal(root.<Amne>get("amne"), Amne.KONTAKT));
pred = builder.and(pred, builder.equal(root.<Status>get("status"), Status.PENDING_INTERNAL_ACTION), careReplyAmnePred);
break;
case SVAR_FRAN_FK:
pred = builder.and(pred, builder.equal(root.<Status>get("status"), Status.PENDING_EXTERNAL_ACTION), builder.notEqual(root.<Amne>get("amne"), Amne.MAKULERING_AV_LAKARINTYG));
break;
case MARKERA_SOM_HANTERAD:
Predicate amnePred1;
amnePred1 = builder.and(builder.equal(root.<Status>get("status"), Status.PENDING_INTERNAL_ACTION), builder.equal(root.<Amne>get("amne"), Amne.MAKULERING_AV_LAKARINTYG));
Predicate amnePred2;
amnePred2 = builder.and(builder.equal(root.<Status>get("status"), Status.PENDING_INTERNAL_ACTION), builder.equal(root.<Amne>get("amne"), Amne.PAMINNELSE));
pred = builder.and(pred, builder.or(amnePred1, amnePred2, builder.equal(root.<Status>get("status"), Status.ANSWERED)));
break;
case ALLA:
break;
}
return pred;
}
use of se.inera.intyg.webcert.persistence.model.Status in project webcert by sklintyg.
the class ArendeServiceImpl method determineNotificationEvent.
private NotificationEvent determineNotificationEvent(Arende arende, boolean arendeIsAnswered) {
FrageStallare frageStallare = FrageStallare.getByKod(arende.getSkickatAv());
Status arendeSvarStatus = arende.getStatus();
if (FrageStallare.FORSAKRINGSKASSAN.equals(frageStallare)) {
if (Status.PENDING_INTERNAL_ACTION.equals(arendeSvarStatus)) {
return NotificationEvent.QUESTION_FROM_RECIPIENT_HANDLED;
} else if (Status.CLOSED.equals(arendeSvarStatus)) {
return NotificationEvent.QUESTION_FROM_RECIPIENT_UNHANDLED;
}
}
if (FrageStallare.WEBCERT.equals(frageStallare)) {
if (Status.ANSWERED.equals(arendeSvarStatus)) {
return NotificationEvent.QUESTION_FROM_CARE_WITH_ANSWER_HANDLED;
} else if (Status.CLOSED.equals(arendeSvarStatus) && arendeIsAnswered) {
return NotificationEvent.QUESTION_FROM_CARE_WITH_ANSWER_UNHANDLED;
} else if (Status.CLOSED.equals(arendeSvarStatus)) {
return NotificationEvent.QUESTION_FROM_CARE_UNHANDLED;
} else {
return NotificationEvent.QUESTION_FROM_CARE_HANDLED;
}
}
return null;
}
use of se.inera.intyg.webcert.persistence.model.Status in project webcert by sklintyg.
the class ArendeListItemConverterTest method testConvertArende.
@Test
public void testConvertArende() {
final ArendeAmne amne = ArendeAmne.KONTKT;
final String intygsId = "intygsId";
final String intygTyp = "luse";
final String meddelandeId = "meddelandeId";
final String patientPersonId = "patientPersonId";
final String signeratAvName = "signeratAvName";
final String skickatAv = "skickatAv";
final LocalDateTime skickatTidpunkt = LocalDateTime.now();
final Status status = Status.ANSWERED;
final Boolean vidarebefordrad = Boolean.TRUE;
final String enhetsnamn = "enhetsnamn";
final String vardgivarnamn = "vardgivarnamn";
Arende arende = createArende(amne, intygsId, intygTyp, meddelandeId, patientPersonId, signeratAvName, skickatAv, skickatTidpunkt, status, vidarebefordrad, enhetsnamn, vardgivarnamn);
ArendeListItem result = ArendeListItemConverter.convert(arende);
assertEquals(amne.name(), result.getAmne());
assertEquals(intygsId, result.getIntygId());
assertEquals(intygTyp, result.getIntygTyp());
assertEquals(meddelandeId, result.getMeddelandeId());
assertEquals(patientPersonId, result.getPatientId());
assertEquals(signeratAvName, result.getSigneratAvNamn());
assertEquals(skickatAv, result.getFragestallare());
assertEquals(skickatTidpunkt, result.getReceivedDate());
assertEquals(status, result.getStatus());
assertEquals(true, result.isVidarebefordrad());
assertEquals(enhetsnamn, result.getEnhetsnamn());
assertEquals(vardgivarnamn, result.getVardgivarnamn());
}
use of se.inera.intyg.webcert.persistence.model.Status in project webcert by sklintyg.
the class ArendeListItemConverterTest method testConvert.
@Test
public void testConvert() {
final String fragestallare = "fragestallare";
final String intygId = "intygId";
final String intygTyp = "intygTyp";
final long internReferens = 13;
final LocalDateTime senasteHandelse = LocalDateTime.now();
final String signeratAv = "signeratAv";
final String enhetsnamn = "enhetsnamn";
final String vardgivarnamn = "vardgivarnamn";
final Amne amne = Amne.AVSTAMNINGSMOTE;
final boolean vidarebefordrad = false;
final Status status = Status.PENDING_INTERNAL_ACTION;
FragaSvar fs = createFragaSvar(fragestallare, intygId, intygTyp, patientId, internReferens, senasteHandelse, signeratAv, enhetsnamn, vardgivarnamn, amne, vidarebefordrad, status);
ArendeListItem arende = ArendeListItemConverter.convert(fs);
assertNotNull(arende);
assertEquals(fragestallare, arende.getFragestallare());
assertEquals(intygId, arende.getIntygId());
assertEquals(intygTyp, arende.getIntygTyp());
assertEquals(patientId, arende.getPatientId());
assertEquals(Long.toString(internReferens), arende.getMeddelandeId());
assertEquals(senasteHandelse, arende.getReceivedDate());
assertEquals(signeratAv, arende.getSigneratAvNamn());
assertEquals(enhetsnamn, arende.getEnhetsnamn());
assertEquals(vardgivarnamn, arende.getVardgivarnamn());
assertEquals(ArendeAmne.AVSTMN.name(), arende.getAmne());
assertEquals(vidarebefordrad, arende.isVidarebefordrad());
assertEquals(status, arende.getStatus());
}
use of se.inera.intyg.webcert.persistence.model.Status in project webcert by sklintyg.
the class FragaSvarServiceImpl method determineNotificationEvent.
private NotificationEvent determineNotificationEvent(FragaSvar fragaSvar) {
FrageStallare frageStallare = FrageStallare.getByKod(fragaSvar.getFrageStallare());
Status fragaSvarStatus = fragaSvar.getStatus();
if (FrageStallare.FORSAKRINGSKASSAN.equals(frageStallare)) {
if (Status.PENDING_INTERNAL_ACTION.equals(fragaSvarStatus)) {
return NotificationEvent.QUESTION_FROM_RECIPIENT_HANDLED;
} else if (Status.CLOSED.equals(fragaSvarStatus)) {
return NotificationEvent.QUESTION_FROM_RECIPIENT_UNHANDLED;
}
}
if (FrageStallare.WEBCERT.equals(frageStallare)) {
if (Status.ANSWERED.equals(fragaSvarStatus)) {
return NotificationEvent.QUESTION_FROM_CARE_WITH_ANSWER_HANDLED;
} else if (Status.CLOSED.equals(fragaSvarStatus) && !Strings.isNullOrEmpty(fragaSvar.getSvarsText())) {
return NotificationEvent.QUESTION_FROM_CARE_WITH_ANSWER_UNHANDLED;
} else if (Status.CLOSED.equals(fragaSvarStatus)) {
return NotificationEvent.QUESTION_FROM_CARE_UNHANDLED;
} else {
return NotificationEvent.QUESTION_FROM_CARE_HANDLED;
}
}
return null;
}
Aggregations