diff --git a/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/controller/BridgingDaftarOnlineController.java b/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/controller/BridgingDaftarOnlineController.java index 5aa474a7..bc32af97 100644 --- a/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/controller/BridgingDaftarOnlineController.java +++ b/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/controller/BridgingDaftarOnlineController.java @@ -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 getAntrianDipanggil(@PathVariable Integer idRuangan) { + String noantrean = antrianService.currentAntrian(idRuangan); + return new ResponseEntity<>(noantrean, HttpStatus.OK); + } } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/AntrianPasienDiPeriksaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/AntrianPasienDiPeriksaDao.java index e553bb2b..f342c63e 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/AntrianPasienDiPeriksaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/AntrianPasienDiPeriksaDao.java @@ -190,6 +190,15 @@ public interface AntrianPasienDiPeriksaDao extends PagingAndSortingRepository> findAntreanByRuangan(@Param("tglAwal") Date tglAwal, - @Param("tglAkhir") Date tglAkhir, @Param("ruanganId") Integer ruanganId); + List> 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); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/AntrianPasienDiPeriksaService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/AntrianPasienDiPeriksaService.java index 349b500d..4b4e1bc1 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/AntrianPasienDiPeriksaService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/AntrianPasienDiPeriksaService.java @@ -34,4 +34,6 @@ public interface AntrianPasienDiPeriksaService Integer getFormatNumberByMonthYearBilik(Integer idRuangan); Map getAntreanByRuangan(LocalDate tglMasuk, Integer ruanganId); + + String currentAntrian(Integer idRuangan); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/AntrianPasienDiPeriksaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/AntrianPasienDiPeriksaServiceImpl.java index 3f68ffec..99398a16 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/AntrianPasienDiPeriksaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/AntrianPasienDiPeriksaServiceImpl.java @@ -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); + } }