From cb6c075d3c484062eaaab34c4a92e01fd2bfcc03 Mon Sep 17 00:00:00 2001 From: salmanoe Date: Thu, 24 Jun 2021 16:14:22 +0700 Subject: [PATCH] - perbaikan pencarian pengaturan bobot jenis indikator menggunakan kelompok jabatan - perbaikan hitung target pelayanan medis otomatis melibatkan skor jika diskon dan asisten spesialis - pembuatan service data pasien di logbook kinerja dokter --- .../dao/BobotJenisIndikatorDao.java | 10 +- .../dao/IkiDanRemunerasiDao.java | 29 +- .../service/BobotJenisIndikatorService.java | 2 +- .../service/LogbookKinerjaService.java | 3 + .../impl/BobotJenisIndikatorServiceImpl.java | 16 +- .../impl/IkiDanRemunerasiServiceImpl.java | 16 +- .../impl/LogbookKinerjaServiceImpl.java | 372 +++++++++++++++++- .../asynctask/timer/TargetLayananTimer.java | 2 +- .../IkiDanRemunerasiController.java | 30 +- .../controller/SdmController.java | 4 - 10 files changed, 453 insertions(+), 31 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/BobotJenisIndikatorDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/BobotJenisIndikatorDao.java index 7ea7e7a6..c66098d8 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/BobotJenisIndikatorDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/BobotJenisIndikatorDao.java @@ -24,13 +24,21 @@ public interface BobotJenisIndikatorDao extends PagingAndSortingRepository> findBobotJenisByBulanBerlaku(@Param("periode") String periode); + @Query(strQryGrid + cdtBulan + cdtKelompokJabatan + sortGrid) + public List> findBobotJenisByBulanBerlaku(@Param("periode") String periode, + @Param("kelompokJabatanId") Integer idKelompokJabatan); + @Query(strQryGrid + cdtTglPembaharuanData + sortGrid) public List> findBobotJenisByTglPembaharuanData( @Param("tglPembaharuanData") String tglPembaharuanData); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IkiDanRemunerasiDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IkiDanRemunerasiDao.java index 59d862e9..c19a793f 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IkiDanRemunerasiDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/IkiDanRemunerasiDao.java @@ -99,10 +99,12 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository> getDataLogbookDokter(@Param("bulan") String bulan, @Param("jenisPegawaiId") Integer idJenisPegawai, @Param("pegawaiId") Integer idPegawai, @Param("listNontindakanId") List listIdNontindakan, @Param("karcisId") Integer idKarcis); + + @Query("select distinct new Map(ppp.ObjectJenisPetugasPeId as jenisPetugasId," + + "pr.id as produkId,pr.namaProduk as namaProduk," + "pp.noRec as noRec," + + "pp.tglPelayanan as tglPelayanan," + + "to_char(pp.tglPelayanan,'dd-MM-yyyy HH:mi:ss') as tglPelayananFormatted," + "pp.jumlah as jumlah," + + "pp.hargaDiscount as hargaDiskon," + "ru.departemenId as departemenId,ru.id as ruanganId," + + "pd.noRegistrasi as noRegistrasi,pd.isDiskonPegawai as statusDiskon," + "ps.namaPasien as namaPasien) " + + "from PelayananPasienPetugas ppp, MapRuanganToProduk mrtp " + "left join ppp.pelayananPasien pp " + + "left join ppp.kdpegawai pg " + "left join pp.produk pr " + "left join pp.pasienDaftar apd " + + "left join pr.detailJenisProduk djp " + "left join apd.pasienDaftar pd " + "left join apd.ruangan ru " + + "left join pd.pasien ps " + "where mrtp.produkId = pr.id " + "and mrtp.ruanganId = apd.ruanganId " + + "and mrtp.statusEnabled is true " + "and pg.statusEnabled is true " + "and pd.statusEnabled is true " + + "and pr.id = :produkId " + "and to_char(pp.tglPelayanan,'yyyy-MM-dd') = :tglPelayanan " + + "and ((to_char(pp.tglPelayanan,'dy') in ('mon','tue','wed','thu') " + + "and to_char(pp.tglPelayanan,'HH24:MM:ss') between '07:00:00' and '15:30:00') " + + "or (to_char(pp.tglPelayanan,'dy') in ('fri') " + + "and to_char(pp.tglPelayanan,'HH24:MM:ss') between '07:00:00' and '16:00:00')) " + + "and pg.jenisPegawaiId = :jenisPegawaiId " + "and djp.jenisProdukId not in (:listNontindakanId) " + + "and pr.id <> :karcisId " + "and pg.id = :pegawaiId " + "order by pr.namaProduk, pp.tglPelayanan") + public List> findDetailPasienLogbook(@Param("produkId") Integer idProduk, + @Param("tglPelayanan") String tglPelayanan, @Param("jenisPegawaiId") Integer idJenisPegawai, + @Param("pegawaiId") Integer idPegawai, @Param("listNontindakanId") List listIdNontindakan, + @Param("karcisId") Integer idKarcis); } \ No newline at end of file diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/BobotJenisIndikatorService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/BobotJenisIndikatorService.java index 0faec525..ac39775e 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/BobotJenisIndikatorService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/BobotJenisIndikatorService.java @@ -18,7 +18,7 @@ public interface BobotJenisIndikatorService extends BaseVoService> findAllBobotJenis(Long periode); + public List> findAllBobotJenis(Long periode, Integer idKelompokJabatan); public List findBobotJenisJabatan(Long periode, Integer idJabatan); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java index ff0f5290..13296915 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/LogbookKinerjaService.java @@ -35,4 +35,7 @@ public interface LogbookKinerjaService extends BaseVoService> findLogbookSkoringDokter(Integer idPegawai, Long bulan); + public List> findDetailPasienLogbook(Integer idPegawai, Integer idIndikator, Integer idProduk, + String tglPelayanan, Integer idJenisPetugas, Double skor); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/BobotJenisIndikatorServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/BobotJenisIndikatorServiceImpl.java index 3d755296..3ef315ba 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/BobotJenisIndikatorServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/BobotJenisIndikatorServiceImpl.java @@ -195,14 +195,20 @@ public class BobotJenisIndikatorServiceImpl extends BaseVoServiceImpl implements } @Override - public List> findAllBobotJenis(Long periode) { + public List> findAllBobotJenis(Long periode, Integer idKelompokJabatan) { List listIdKelompokJabatan = new ArrayList<>(); List listTglPembaharuanData = new ArrayList<>(); DateFormat tf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - List> result = bobotJenisIndikatorDao - .findBobotJenisByBulanBerlaku(new SimpleDateFormat("yyyy-MM").format(new Date(periode))); + List> result = new ArrayList<>(); + if (CommonUtil.isNotNullOrEmpty(idKelompokJabatan)) { + result = bobotJenisIndikatorDao.findBobotJenisByBulanBerlaku( + new SimpleDateFormat("yyyy-MM").format(new Date(periode)), idKelompokJabatan); + } else { + result = bobotJenisIndikatorDao + .findBobotJenisByBulanBerlaku(new SimpleDateFormat("yyyy-MM").format(new Date(periode))); + } for (Map map : result) { if (!listIdKelompokJabatan.contains(map.get("kelompokJabatanId"))) { @@ -219,11 +225,11 @@ public class BobotJenisIndikatorServiceImpl extends BaseVoServiceImpl implements .collect(Collectors.toList()); int sumTP = 0; - for (Integer idKelompokJabatan : listIdKelompokJabatan) { + for (Integer idKK : listIdKelompokJabatan) { for (String tglPembaharuanData : listTglPembaharuanDataSorted) { for (Map map : result) { if (CommonUtil.isNotNullOrEmpty(map.get("kelompokJabatanId")) - && idKelompokJabatan.equals(map.get("kelompokJabatanId")) + && idKK.equals(map.get("kelompokJabatanId")) && tglPembaharuanData.equals(tf.format((Date) map.get("tglPembaharuanData")))) { sumTP++; if (sumTP <= 3) { diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java index 232578ec..b6c0aa40 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java @@ -596,17 +596,27 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik // scoring data layanan for (Map layanan : dataLayananRaw) { for (Map skoring : dataSkoringFiltered) { - if (layanan.get("idTindakan").equals(skoring.get("produkId")) && layanan.get("idKelompokKerja").equals(skoring.get("kelompokKerjaId")) && (((Date) skoring.get("tglBerlaku")).before(((Date) layanan.get("tglPelayanan"))) || ((Date) skoring.get("tglBerlaku")).equals(((Date) layanan.get("tglPelayanan"))))) { - if (listRuangEks.contains(layanan.get("idRuangan")) - && !Arrays.asList(Master.Produk.KONSULTASI_EKSEKUTIF).contains(layanan.get("idTindakan"))) { + + if (Double.valueOf(layanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(layanan.get("statusDiskon")) + || !Boolean.valueOf(layanan.get("statusDiskon").toString()))) { + layanan.put("jumlahTindakan", 0.0); + } else if (listRuangEks.contains(layanan.get("idRuangan")) + && !layanan.get("namaTindakan").toString().toLowerCase().contains(Master.KONSUL) + && !layanan.get("namaTindakan").toString().toLowerCase().contains(Master.VISIT)) { layanan.put("jumlahTindakan", Double.valueOf(layanan.get("jumlahTindakan").toString()) * Double.valueOf(skoring.get("skor").toString()) * Master.Remunerasi.PERSEN_SKOR_EKSEKUTIF); + } else if (layanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + layanan.put("jumlahTindakan", + Double.valueOf(layanan.get("jumlahTindakan").toString()) + * Double.valueOf(skoring.get("skor").toString()) + * Master.Remunerasi.PERSEN_SKOR_ASISTEN_SPESIALIS); } else { layanan.put("jumlahTindakan", Double.valueOf(layanan.get("jumlahTindakan").toString()) * Double.valueOf(skoring.get("skor").toString())); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java index d91b2ad2..5f0ee5c6 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java @@ -594,23 +594,24 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb // RULES for (Map mapLayanan : dataLayanan) { - if (mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { - mapLayanan.put("skor", Double.valueOf(mapLayanan.get("skor").toString()) - * Master.Remunerasi.PERSEN_SKOR_ASISTEN_SPESIALIS); - mapLayanan.put("tSkor", Double.valueOf(mapLayanan.get("skor").toString()) - * Double.valueOf(mapLayanan.get("jumlah").toString())); - } else if (!mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL) - && listRuangEks.contains(mapLayanan.get("ruanganId"))) { - mapLayanan.put("skor", - Double.valueOf(mapLayanan.get("skor").toString()) * Master.Remunerasi.PERSEN_SKOR_EKSEKUTIF); - mapLayanan.put("tSkor", Double.valueOf(mapLayanan.get("skor").toString()) - * Double.valueOf(mapLayanan.get("jumlah").toString())); - } else if (Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + if (Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { // tidak_dapat_skor_untuk_diskon_dpjp mapLayanan.put("skor", 0.0); mapLayanan.put("tSkor", 0.0); + } else if (!mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL) + && !mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT) + && listRuangEks.contains(mapLayanan.get("ruanganId"))) { + mapLayanan.put("skor", + Double.valueOf(mapLayanan.get("skor").toString()) * Master.Remunerasi.PERSEN_SKOR_EKSEKUTIF); + mapLayanan.put("tSkor", Double.valueOf(mapLayanan.get("skor").toString()) + * Double.valueOf(mapLayanan.get("jumlah").toString())); + } else if (mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + mapLayanan.put("skor", Double.valueOf(mapLayanan.get("skor").toString()) + * Master.Remunerasi.PERSEN_SKOR_ASISTEN_SPESIALIS); + mapLayanan.put("tSkor", Double.valueOf(mapLayanan.get("skor").toString()) + * Double.valueOf(mapLayanan.get("jumlah").toString())); } else { mapLayanan.put("tSkor", Double.valueOf(mapLayanan.get("skor").toString()) * Double.valueOf(mapLayanan.get("jumlah").toString())); @@ -746,4 +747,351 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb return result; } + @Override + public List> findDetailPasienLogbook(Integer idPegawai, Integer idIndikator, Integer idProduk, + String tglPelayanan, Integer idJenisPetugas, Double skor) { + List> result = new ArrayList<>(); + + List listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif"); + + List> dataLayanan = ikiDanRemunerasiDao.findDetailPasienLogbook(idProduk, tglPelayanan, + Master.JenisPegawai.DOKTER, idPegawai, Arrays.asList(Master.JenisProduk.NONTINDAKAN), + Master.Produk.KARCIS); + + for (Map mapLayanan : dataLayanan) { + if (idIndikator.equals(Master.IndikatorKinerjaDetail.KONSUL_EKS) + && mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL) + && listRuangEks.contains(mapLayanan.get("ruanganId"))) { + if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) + && mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) + || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } + } else if (!idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) + && !mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) + || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } + } + } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.KONSUL_GADAR) + && mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL) + && mapLayanan.get("departemenId").equals(Master.Departemen.IGD)) { + if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) + && mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) + || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } + } else if (!idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) + && !mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) + || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } + } + } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.KONSUL_REG) + && mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL)) { + if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) + && mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) + || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } + } else if (!idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) + && !mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) + || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } + } + } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.VISITE) + && mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT)) { + if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) + && mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) + || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } + } else if (!idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) + && !mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) + || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } + } + } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.TINDAKAN_EKS) + && listRuangEks.contains(mapLayanan.get("ruanganId"))) { + if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) + && mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) + || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } + } else if (!idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) + && !mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) + || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } + } + } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.TINDAKAN_GADAR) + && mapLayanan.get("departemenId").equals(Master.Departemen.IGD)) { + if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) + && mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) + || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } + } else if (!idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) + && !mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) + || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } + } + } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.TINDAKAN_OPS) + && mapLayanan.get("ruanganId").equals(Master.Ruangan.OK)) { + if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) + && mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) + || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } + } else if (!idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) + && !mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) + || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } + } + } else if (idIndikator.equals(Master.IndikatorKinerjaDetail.TINDAKAN_REG)) { + if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) + && mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) + || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } + } else if (!idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) + && !mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) { + if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0 + && (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon")) + || !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) { + mapLayanan.remove("noRec"); + mapLayanan.remove("statusDiskon"); + mapLayanan.remove("departemenId"); + mapLayanan.remove("ruanganId"); + mapLayanan.remove("hargaDiskon"); + result.add(mapLayanan); + } + } + } + } + + return result; + } + } diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/asynctask/timer/TargetLayananTimer.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/asynctask/timer/TargetLayananTimer.java index 748b2905..9e726d86 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/asynctask/timer/TargetLayananTimer.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/asynctask/timer/TargetLayananTimer.java @@ -83,7 +83,7 @@ public class TargetLayananTimer { runDate.add(Calendar.MONTH, 1); } - LOGGER.info("MonthlyTimer : Set to next month " + runDate.getTime()); + LOGGER.info("TargetLayananTimer : Set to next month " + runDate.getTime()); return runDate.getTime(); } diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java index c96eb041..bb826ee9 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java @@ -1015,9 +1015,10 @@ public class IkiDanRemunerasiController extends LocaleController>> getMasterBobotJenisIndikator(HttpServletRequest request, - @RequestParam(value = "periode", required = true) Long periode) { + @RequestParam(value = "periode", required = true) Long periode, + @RequestParam(value = "kelompokKerjaId", required = false) Integer idKelompokKerja) { try { - List> result = bobotJenisIndikatorService.findAllBobotJenis(periode); + List> result = bobotJenisIndikatorService.findAllBobotJenis(periode, idKelompokKerja); mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, getMessage(MessageResource.LABEL_SUCCESS, request)); return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); @@ -1152,4 +1153,29 @@ public class IkiDanRemunerasiController extends LocaleController>> getDetailPasienDetail(HttpServletRequest request, + @RequestParam(value = "pegawaiId", required = true) Integer idPegawai, + @RequestParam(value = "indikatorId", required = true) Integer idIndikator, + @RequestParam(value = "produkId", required = true) Integer idProduk, + @RequestParam(value = "tglPelayanan", required = true) String tglPelayanan, + @RequestParam(value = "jenisPetugasId", required = true) Integer idJenisPetugas, + @RequestParam(value = "skor", required = true) Double skor) throws ParseException { + try { + List> result = logbookKinerjaService.findDetailPasienLogbook(idPegawai, idIndikator, + idProduk, tglPelayanan, idJenisPetugas, skor); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); + } catch (ServiceVOException sve) { + LOGGER.error("Got exception {} when get detail pasien logbook skoring dokter", sve.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when get detail pasien logbook skoring dokter", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } } diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java index 084acdd5..4f134ca7 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/SdmController.java @@ -132,7 +132,6 @@ import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.util.DateUtil; import com.jasamedika.medifirst2000.util.rest.RestUtil; import com.jasamedika.medifirst2000.vo.*; -import com.jasamedika.medifirst2000.vo.custom.TargetLayananCustomVO; @RestController @RequestMapping("/sdm") @@ -401,9 +400,6 @@ public class SdmController extends LocaleController { @Autowired private RuanganService ruanganService; - @Autowired - private TargetLayananService targetLayananService; - @Autowired private RekamUraianRincianKegiatanService rekamUraianRincianKegiatanService;