Update AntrianPasienDiPeriksaService

Pembuatan service mendapatkan no antrean yang sedang dipanggil
This commit is contained in:
salmanoe 2023-02-09 13:37:26 +07:00
parent c26b23a85a
commit fa7b127992
4 changed files with 33 additions and 3 deletions

View File

@ -729,4 +729,10 @@ public class BridgingDaftarOnlineController {
Boolean exists = pasienDaftarService.checkStatusPasien(idPasien);
return new ResponseEntity<>(exists, HttpStatus.OK);
}
@RequestMapping(value = "/bpjs/antrian/panggil/{idRuangan}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<String> getAntrianDipanggil(@PathVariable Integer idRuangan) {
String noantrean = antrianService.currentAntrian(idRuangan);
return new ResponseEntity<>(noantrean, HttpStatus.OK);
}
}

View File

@ -190,6 +190,15 @@ public interface AntrianPasienDiPeriksaDao extends PagingAndSortingRepository<An
+ "from AntrianPasienDiPeriksa apd " + "inner join apd.pasienDaftar pd "
+ "where apd.statusEnabled is true " + "and pd.statusEnabled is true "
+ "and apd.tglMasuk between :tglAwal and :tglAkhir " + "and apd.ruanganId = :ruanganId")
List<Map<String, Object>> findAntreanByRuangan(@Param("tglAwal") Date tglAwal,
@Param("tglAkhir") Date tglAkhir, @Param("ruanganId") Integer ruanganId);
List<Map<String, Object>> findAntreanByRuangan(@Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir,
@Param("ruanganId") Integer ruanganId);
@Query(value = "SELECT CASE WHEN apd.prefixnoantrian IS NULL THEN CAST(apd.noantrian AS VARCHAR) "
+ "WHEN apd.prefixnoantrian IS NOT NULL THEN apd.prefixnoantrian || apd.noantrian ELSE '-' END "
+ "FROM antrianpasiendiperiksa_t apd " + "WHERE apd.objectruanganfk = :ruanganId "
+ "AND (apd.tglmasuk BETWEEN :start AND :end " + "OR apd.tglkeluar BETWEEN :start AND :end) "
+ "AND tgldipanggildokter <= :tanggal "
+ "ORDER BY apd.tgldipanggildokter DESC LIMIT 1", nativeQuery = true)
String currentAntrian(@Param("ruanganId") Integer ruanganId, @Param("start") Date start, @Param("end") Date end,
@Param("tanggal") Date tanggal);
}

View File

@ -34,4 +34,6 @@ public interface AntrianPasienDiPeriksaService
Integer getFormatNumberByMonthYearBilik(Integer idRuangan);
Map<String, Object> getAntreanByRuangan(LocalDate tglMasuk, Integer ruanganId);
String currentAntrian(Integer idRuangan);
}

View File

@ -50,7 +50,7 @@ import com.jasamedika.medifirst2000.vo.PegawaiVO;
public class AntrianPasienDiPeriksaServiceImpl extends BaseVoServiceImpl implements AntrianPasienDiPeriksaService {
@Autowired
private AntrianPasienDiPeriksaConverter antrianPasienDiPeriksaConverter;
@Autowired
private AntrianPasienDiPeriksaDao antrianPasienDiPeriksaDao;
@ -302,4 +302,17 @@ public class AntrianPasienDiPeriksaServiceImpl extends BaseVoServiceImpl impleme
return result;
}
}
@Override
public String currentAntrian(Integer idRuangan) {
LocalTime timeNow = LocalTime.now();
LocalDate dateNow = LocalDate.now();
LocalDateTime now = LocalDateTime.of(dateNow, timeNow);
Date tgl = Date.from(now.atZone(ZoneId.systemDefault()).toInstant());
LocalDateTime start = LocalDateTime.of(dateNow, LocalTime.MIN);
Date tglAwal = Date.from(start.atZone(ZoneId.systemDefault()).toInstant());
LocalDateTime end = LocalDateTime.of(dateNow, LocalTime.MAX);
Date tglAkhir = Date.from(end.atZone(ZoneId.systemDefault()).toInstant());
return antrianPasienDiPeriksaDao.currentAntrian(idRuangan, tglAwal, tglAkhir, tgl);
}
}