From 96f687fed7f84ce6fd0b6896bdef6ec94da5fe4d Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Mon, 26 Jul 2021 08:56:39 +0700 Subject: [PATCH] - perbaikan dikembalikan notifikasi sip dan atau str - penerapan aturan bpjs saat hitung dan simpan target pelayanan medis di dalam jam kerja - penerapan aturan bpjs saat hitung dan simpan target pelayanan medis di luar jam kerja - penerapan aturan bpjs di logbook skor dokter dalam jam kerja --- .../dao/IkiDanRemunerasiDao.java | 51 +++++++++++-------- .../impl/IkiDanRemunerasiServiceImpl.java | 4 +- .../impl/LogbookKinerjaServiceImpl.java | 12 +++-- .../impl/RekamDataPegawaiServiceImpl.java | 27 +--------- 4 files changed, 41 insertions(+), 53 deletions(-) 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 29d65be9..64989b93 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 @@ -117,18 +117,19 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository :karcisId " + "order by su.name, pr.id") public List> getDataLayananJamKerja(@Param("tglAwal") Date tglAwal, @Param("psbbAwal") Date psbbAwal, @Param("psbbAkhir") Date psbbAkhir, @Param("tglAkhir") Date tglAkhir, @Param("listNonjadwalId") List listIdNonjadwal, @Param("jenisPegawaiId") Integer idJenisPegawai, @Param("listKsmId") List listIdKsm, @Param("listNontindakanId") List listIdNontindakan, - @Param("karcisId") Integer idKarcis); + @Param("listBpjsId") List listIdBpjs, @Param("karcisId") Integer idKarcis); // Target_pelayanan_luar_jam_kerja @Query("select distinct new Map(ppp.ObjectJenisPetugasPeId as jenisPetugasId," @@ -148,21 +149,21 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository :karcisId " - + "order by pg.namaLengkap, pr.id") + + "and pd.kelompokPasienId not in (:listBpjsId)) " + "and pg.jenisPegawaiId = :jenisPegawaiId " + + "and jb.kelompokJabatanId in (3,4) " + "and djp.jenisProdukId not in (:listNontindakanId) " + + "and pr.id <> :karcisId " + "order by pg.namaLengkap, pr.id") public List> getDataLayananLuarJamKerja(@Param("tglAwal") Date tglAwal, @Param("psbbAwal") Date psbbAwal, @Param("psbbAkhir") Date psbbAkhir, @Param("tglAkhir") Date tglAkhir, @Param("listNonjadwalId") List listIdNonjadwal, @Param("jenisPegawaiId") Integer idJenisPegawai, @Param("listKsmId") List listIdKsm, @Param("listNontindakanId") List listIdNontindakan, - @Param("karcisId") Integer idKarcis); + @Param("listBpjsId") List listIdBpjs, @Param("karcisId") Integer idKarcis); // Logbook_kinerja_jam_kerja_dokter @Query("select distinct new Map(ppp.ObjectJenisPetugasPeId as jenisPetugasId," @@ -178,18 +179,19 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository :karcisId " + "and pg.id = :pegawaiId " + "order by pr.namaProduk, pp.tglPelayanan") public List> getDataLogbookJamKerjaDokter(@Param("bulan") String bulan, @Param("psbbAwal") Date psbbAwal, @Param("psbbAkhir") Date psbbAkhir, @Param("listNonjadwalId") List listIdNonjadwal, @Param("jenisPegawaiId") Integer idJenisPegawai, @Param("pegawaiId") Integer idPegawai, @Param("listNontindakanId") List listIdNontindakan, - @Param("karcisId") Integer idKarcis); + @Param("listBpjsId") List listIdBpjs, @Param("karcisId") Integer idKarcis); // Logbook_kinerja_luar_jam_kerja_dokter @Query("select distinct new Map(ppp.ObjectJenisPetugasPeId as jenisPetugasId," @@ -205,20 +207,21 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository :karcisId " + "and pg.id = :pegawaiId " + "order by pr.namaProduk, pp.tglPelayanan") + + "and pd.kelompokPasienId not in (:listBpjsId)) " + "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> getDataLogbookLuarJamKerjaDokter(@Param("bulan") String bulan, @Param("psbbAwal") Date psbbAwal, @Param("psbbAkhir") Date psbbAkhir, @Param("listNonjadwalId") List listIdNonjadwal, @Param("jenisPegawaiId") Integer idJenisPegawai, @Param("pegawaiId") Integer idPegawai, @Param("listNontindakanId") List listIdNontindakan, - @Param("karcisId") Integer idKarcis); + @Param("listBpjsId") List listIdBpjs, @Param("karcisId") Integer idKarcis); // Detail_logbook_kinerja_jam_kerja_dokter @Query("select distinct new Map(jpp.id as jenisPetugasId, jpp.jenisPetugasPe as jenisPetugas," @@ -237,18 +240,20 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository :karcisId " + "and pg.id = :pegawaiId" + " order by pr.namaProduk, pp.tglPelayanan") public List> findDetailPasienLogbookJamKerjaDokter(@Param("produkId") Integer idProduk, @Param("tglPelayanan") String tglPelayanan, @Param("psbbAwal") Date psbbAwal, @Param("psbbAkhir") Date psbbAkhir, @Param("listNonjadwalId") List listIdNonjadwal, @Param("jenisPegawaiId") Integer idJenisPegawai, @Param("pegawaiId") Integer idPegawai, - @Param("listNontindakanId") List listIdNontindakan, @Param("karcisId") Integer idKarcis); + @Param("listNontindakanId") List listIdNontindakan, @Param("listBpjsId") List listIdBpjs, + @Param("karcisId") Integer idKarcis); // Detail_logbook_kinerja_luar_jam_kerja_dokter @Query("select distinct new Map(jpp.id as jenisPetugasId, jpp.jenisPetugasPe as jenisPetugas," @@ -267,18 +272,20 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository :karcisId " + "and pg.id = :pegawaiId " + "order by pr.namaProduk, pp.tglPelayanan") + + "and pd.kelompokPasienId not in (:listBpjsId)) " + "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> findDetailPasienLogbookLuarJamKerjaDokter(@Param("produkId") Integer idProduk, @Param("tglPelayanan") String tglPelayanan, @Param("psbbAwal") Date psbbAwal, @Param("psbbAkhir") Date psbbAkhir, @Param("listNonjadwalId") List listIdNonjadwal, @Param("jenisPegawaiId") Integer idJenisPegawai, @Param("pegawaiId") Integer idPegawai, - @Param("listNontindakanId") List listIdNontindakan, @Param("karcisId") Integer idKarcis); + @Param("listNontindakanId") List listIdNontindakan, @Param("listBpjsId") List listIdBpjs, + @Param("karcisId") Integer idKarcis); } \ No newline at end of file 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 2cb16280..891203bd 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 @@ -523,7 +523,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik List> dataLayananRaw = ikiDanRemunerasiDao.getDataLayananJamKerja(calTglAwal.getTime(), bulan.getTime(), pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, Arrays.asList(Master.UnitKerja.KSM), Arrays.asList(Master.JenisProduk.NONTINDAKAN), - Master.Produk.KARCIS); + Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), Master.Produk.KARCIS); // get_kategori_bulan List listBulanPelayanan = new ArrayList<>(); @@ -949,7 +949,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik List> dataLayananRaw = ikiDanRemunerasiDao.getDataLayananLuarJamKerja(calTglAwal.getTime(), bulan.getTime(), pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, Arrays.asList(Master.UnitKerja.KSM), Arrays.asList(Master.JenisProduk.NONTINDAKAN), - Master.Produk.KARCIS); + Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), Master.Produk.KARCIS); // get_kategori_bulan List listBulanPelayanan = new ArrayList<>(); 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 edca7b7c..3604660f 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 @@ -609,7 +609,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb List> dataLayanan = ikiDanRemunerasiDao.getDataLogbookJamKerjaDokter( mf.format(new Date(bulan)), pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, idPegawai, - Arrays.asList(Master.JenisProduk.NONTINDAKAN), Master.Produk.KARCIS); + Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), + Master.Produk.KARCIS); List> dataSkor = skoringTindakanMedisDao .findSkoringLogbookDokter(mf.format(new Date(bulan)), idPegawai, Arrays.asList(Master.UnitKerja.KSM)); @@ -815,7 +816,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb List> dataLayanan = ikiDanRemunerasiDao.getDataLogbookLuarJamKerjaDokter( mf.format(new Date(bulan)), pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, idPegawai, - Arrays.asList(Master.JenisProduk.NONTINDAKAN), Master.Produk.KARCIS); + Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), + Master.Produk.KARCIS); List> dataSkor = skoringTindakanMedisDao .findSkoringLogbookDokter(mf.format(new Date(bulan)), idPegawai, Arrays.asList(Master.UnitKerja.KSM)); @@ -1015,7 +1017,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb List> dataLayanan = ikiDanRemunerasiDao.findDetailPasienLogbookJamKerjaDokter(idProduk, tglPelayanan, pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, idPegawai, - Arrays.asList(Master.JenisProduk.NONTINDAKAN), Master.Produk.KARCIS); + Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), + Master.Produk.KARCIS); for (Map mapLayanan : dataLayanan) { if (idIndikator.equals(Master.IndikatorKinerjaJamKerja.VISITE) @@ -1374,7 +1377,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb List> dataLayanan = ikiDanRemunerasiDao.findDetailPasienLogbookLuarJamKerjaDokter(idProduk, tglPelayanan, pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, idPegawai, - Arrays.asList(Master.JenisProduk.NONTINDAKAN), Master.Produk.KARCIS); + Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), + Master.Produk.KARCIS); for (Map mapLayanan : dataLayanan) { if (idIndikator.equals(Master.IndikatorKinerjaLuarJamKerja.VISITE) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RekamDataPegawaiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RekamDataPegawaiServiceImpl.java index cafd045b..029a00d0 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RekamDataPegawaiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RekamDataPegawaiServiceImpl.java @@ -5,8 +5,6 @@ import java.security.NoSuchAlgorithmException; import java.sql.Timestamp; import java.text.DateFormat; import java.text.SimpleDateFormat; -import java.time.LocalDateTime; -import java.time.format.DateTimeFormatter; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; @@ -2872,24 +2870,10 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re public Map getpegawaiSipStrExpiredByPegawai() { Map result = new HashMap<>(); - DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - - LocalDateTime today = LocalDateTime.now(); - - LocalDateTime PSBBDate = LocalDateTime.of(2020, 9, 14, 0, 0, 0); - LocalDateTime PSBBEnd = LocalDateTime.parse(GetSettingDataFixed("psbbperiod"), dtf); - LoginUser loginUser = loginUserService.getLoginUser(); - Map sip = new HashMap<>(); - Map str = new HashMap<>(); - if ((today.equals(PSBBDate) || today.isAfter(PSBBDate)) && (today.isBefore(PSBBEnd) || today.equals(PSBBEnd))) { - sip = pegawaiDao.findSipExpiredByPegawai(getPreviousSixMonth(), loginUser.getPegawai().getId()); - str = pegawaiDao.findStrExpiredByPegawai(getPreviousSixMonth(), loginUser.getPegawai().getId()); - } else { - sip = pegawaiDao.findSipExpiredByPegawai(getNextSixMonth(), loginUser.getPegawai().getId()); - str = pegawaiDao.findStrExpiredByPegawai(getNextSixMonth(), loginUser.getPegawai().getId()); - } + Map sip = pegawaiDao.findSipExpiredByPegawai(getNextSixMonth(), loginUser.getPegawai().getId()); + Map str = pegawaiDao.findStrExpiredByPegawai(getNextSixMonth(), loginUser.getPegawai().getId()); if (CommonUtil.isNotNullOrEmpty(sip) && CommonUtil.isNotNullOrEmpty(str)) { result.putAll(sip); @@ -2912,13 +2896,6 @@ public class RekamDataPegawaiServiceImpl extends BaseVoServiceImpl implements Re return cal.getTime(); } - public Date getPreviousSixMonth() { - Calendar cal = Calendar.getInstance(); - cal.setTime(new Date()); - cal.add(Calendar.MONTH, -5); - return cal.getTime(); - } - @Transactional(readOnly = false) public void disableIsprimary(Integer idPegawai, Integer id) { mapPegawaiJabatanToUnitKerjaDao.changeIsNotPrimary(idPegawai, id);