@Test public void totalSjukskrivningstidForPatientAndCareUnitMottagning() { final WebCertUser user = createDefaultUser(AuthoritiesConstants.PRIVILEGE_SIGNERA_INTYG); user.setValdVardenhet(user.getVardgivare().get(0).getVardenheter().get(0).getMottagningar().get(0)); final ListActiveSickLeavesForCareUnitResponseType response = createResponse(); final SjukfallEnhet sjukfallEnhet = createSjukfallForEnhet(START_DATUM, SLUT_DATUM); doReturn(user) .when(webCertUserService) .getUser(); doReturn(response) .when(sickLeavesForCareUnit) .listActiveSickLeavesForCareUnit(anyString(), any(ListActiveSickLeavesForCareUnitType.class)); doReturn(Collections.singletonList(sjukfallEnhet)) .when(sjukfallEngineService) .beraknaSjukfallForEnhet(anyList(), any(IntygParametrar.class)); final int tid = fmbSjukfallService .totalSjukskrivningstidForPatientAndCareUnit(Personnummer.createPersonnummer(PERSON_NUMMER).get(), PERIODS); Mockito.verify(sickLeavesForCareUnit, times(1)).listActiveSickLeavesForCareUnit(anyString(), requestCaptor.capture()); final ListActiveSickLeavesForCareUnitType actualRequest = requestCaptor.getValue(); assertEquals(VARDENHET_VE1, actualRequest.getEnhetsId().getExtension()); assertThat(tid).isEqualTo((int) DAYS.between(START_DATUM, SLUT_DATUM) +1); }
@Override public int totalSjukskrivningstidForPatientAndCareUnit(final Personnummer personnummer, List<Period> periods) { LOG.debug("Starting: {}", MESSAGE); final Try<List<SjukfallEnhet>> sjukfallUppslag = Try.of(() -> getAktivtSjukfallForPatientAndEnhet(personnummer, periods)); if (sjukfallUppslag.isFailure()) { LOG.error("Unable to get sjukfall: ", sjukfallUppslag.getCause()); throw new WebCertServiceException(WebCertServiceErrorCodeEnum.EXTERNAL_SYSTEM_PROBLEM, "Failed: " + MESSAGE); } LOG.debug("Done: {}", MESSAGE); if (isThereActiveSickLeaves(sjukfallUppslag)) { return getTotaltAntalDagar(sjukfallUppslag.get()); } else { return getTotalNumberOfDaysFromPeriods(periods); } }
FmbSjukfallServiceImpl implements FmbSjukfallService { @Override public int totalSjukskrivningstidForPatientAndCareUnit(final Personnummer personnummer, List<Period> periods) { LOG.debug("Starting: {}", MESSAGE); final Try<List<SjukfallEnhet>> sjukfallUppslag = Try.of(() -> getAktivtSjukfallForPatientAndEnhet(personnummer, periods)); if (sjukfallUppslag.isFailure()) { LOG.error("Unable to get sjukfall: ", sjukfallUppslag.getCause()); throw new WebCertServiceException(WebCertServiceErrorCodeEnum.EXTERNAL_SYSTEM_PROBLEM, "Failed: " + MESSAGE); } LOG.debug("Done: {}", MESSAGE); if (isThereActiveSickLeaves(sjukfallUppslag)) { return getTotaltAntalDagar(sjukfallUppslag.get()); } else { return getTotalNumberOfDaysFromPeriods(periods); } } }
FmbSjukfallServiceImpl implements FmbSjukfallService { @Override public int totalSjukskrivningstidForPatientAndCareUnit(final Personnummer personnummer, List<Period> periods) { LOG.debug("Starting: {}", MESSAGE); final Try<List<SjukfallEnhet>> sjukfallUppslag = Try.of(() -> getAktivtSjukfallForPatientAndEnhet(personnummer, periods)); if (sjukfallUppslag.isFailure()) { LOG.error("Unable to get sjukfall: ", sjukfallUppslag.getCause()); throw new WebCertServiceException(WebCertServiceErrorCodeEnum.EXTERNAL_SYSTEM_PROBLEM, "Failed: " + MESSAGE); } LOG.debug("Done: {}", MESSAGE); if (isThereActiveSickLeaves(sjukfallUppslag)) { return getTotaltAntalDagar(sjukfallUppslag.get()); } else { return getTotalNumberOfDaysFromPeriods(periods); } } FmbSjukfallServiceImpl(
        final ListActiveSickLeavesForCareUnitResponderInterface sickLeavesForCareUnit,
        final SjukfallEngineService sjukfallEngineService,
        final WebCertUserService webCertUserService); }
FmbSjukfallServiceImpl implements FmbSjukfallService { @Override public int totalSjukskrivningstidForPatientAndCareUnit(final Personnummer personnummer, List<Period> periods) { LOG.debug("Starting: {}", MESSAGE); final Try<List<SjukfallEnhet>> sjukfallUppslag = Try.of(() -> getAktivtSjukfallForPatientAndEnhet(personnummer, periods)); if (sjukfallUppslag.isFailure()) { LOG.error("Unable to get sjukfall: ", sjukfallUppslag.getCause()); throw new WebCertServiceException(WebCertServiceErrorCodeEnum.EXTERNAL_SYSTEM_PROBLEM, "Failed: " + MESSAGE); } LOG.debug("Done: {}", MESSAGE); if (isThereActiveSickLeaves(sjukfallUppslag)) { return getTotaltAntalDagar(sjukfallUppslag.get()); } else { return getTotalNumberOfDaysFromPeriods(periods); } } FmbSjukfallServiceImpl(
        final ListActiveSickLeavesForCareUnitResponderInterface sickLeavesForCareUnit,
        final SjukfallEngineService sjukfallEngineService,
        final WebCertUserService webCertUserService); @Override int totalSjukskrivningstidForPatientAndCareUnit(final Personnummer personnummer, List<Period> periods); }
FmbSjukfallServiceImpl implements FmbSjukfallService { @Override public int totalSjukskrivningstidForPatientAndCareUnit(final Personnummer personnummer, List<Period> periods) { LOG.debug("Starting: {}", MESSAGE); final Try<List<SjukfallEnhet>> sjukfallUppslag = Try.of(() -> getAktivtSjukfallForPatientAndEnhet(personnummer, periods)); if (sjukfallUppslag.isFailure()) { LOG.error("Unable to get sjukfall: ", sjukfallUppslag.getCause()); throw new WebCertServiceException(WebCertServiceErrorCodeEnum.EXTERNAL_SYSTEM_PROBLEM, "Failed: " + MESSAGE); } LOG.debug("Done: {}", MESSAGE); if (isThereActiveSickLeaves(sjukfallUppslag)) { return getTotaltAntalDagar(sjukfallUppslag.get()); } else { return getTotalNumberOfDaysFromPeriods(periods); } } FmbSjukfallServiceImpl(
        final ListActiveSickLeavesForCareUnitResponderInterface sickLeavesForCareUnit,
        final SjukfallEngineService sjukfallEngineService,
        final WebCertUserService webCertUserService); @Override int totalSjukskrivningstidForPatientAndCareUnit(final Personnummer personnummer, List<Period> periods);  }