From c5218e73b660a397915dd5b6ad10e838e58dedaa Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Mon, 17 Feb 2025 13:53:08 +0700 Subject: [PATCH 1/2] Update RemunerasiServiceImpl.java Rollback TMT ksm umum --- .../service/impl/RemunerasiServiceImpl.java | 172 ++++++++++-------- 1 file changed, 97 insertions(+), 75 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java index 33bf0077..657a2937 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java @@ -336,6 +336,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAkhir); List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAkhir); List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAkhir); + List idsDokterUmumExclude = splitDataSettingDatafixed("pr_dokter_umum_exclude"); List idsDokterPerinatologi = getNilaiDataFixByTMT("pr_dokter_perinatologi", tglAkhir); List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAkhir); List idsDokterBPJSffs = splitDataSettingDatafixed("dokterBPJSffs"); @@ -1031,34 +1032,40 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera /* * Selain dokter-dokter kk pediatrik gawat darurat */ - if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) - && listDetailJenisProduk - .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) - && !drKsmUmumList.contains(idPegawai)) { - /* - * Dibatasi oleh daftar jenis tindakan tertentu - */ - if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && (idsRegDJPPenunjangPA - .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) - || idsRegDJPPenunjangPK - .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())))) { + if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { + if (!drKsmUmumList.contains(idPegawai) || !idsDokterUmumExclude + .contains(Integer.parseInt(next.get("idProduk").toString()))) { /* - * Pengecualian daftar tindakan penunjang yang - * bebas klaim + * Dibatasi oleh daftar jenis tindakan tertentu */ - listPelayananRemun.add(next); - capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); - } else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk")) - || (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk")) - && !idsJenisProdukNonLogbook.contains( - Integer.parseInt(next.get("idJenisProduk").toString())))) { - listPelayananRemun.add(next); - capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) + && (idsRegDJPPenunjangPA + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) + || idsRegDJPPenunjangPK.contains(Integer + .parseInt(next.get("idDetailJenisProduk").toString())))) { + /* + * Pengecualian daftar tindakan penunjang + * yang bebas klaim + */ + listPelayananRemun.add(next); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + } else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk")) + || (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk")) + && !idsJenisProdukNonLogbook.contains( + Integer.parseInt(next.get("idJenisProduk").toString())))) { + listPelayananRemun.add(next); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + } } - } else if (drKsmUmumList.contains(idPegawai) + } else if ((CommonUtil.isNullOrEmpty(next.get("idDetailJenisProduk")) + || (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) + && !listDetailJenisProduk.contains( + Integer.parseInt(next.get("idDetailJenisProduk").toString())))) + && IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai) && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))) { /* - * Aturan dokter ksm umum + * Aturan dokter ksm umum di igd */ listPelayananRemun.add(next); capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); @@ -1095,7 +1102,8 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera /* * Diluar pembatasan jenis produk */ - if (!drKsmUmumList.contains(idPegawai)) { + if (!drKsmUmumList.contains(idPegawai) || !idsDokterUmumExclude + .contains(Integer.parseInt(next.get("idProduk").toString()))) { if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && (idsRegDJPPenunjangPA .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) @@ -1169,31 +1177,37 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera /* * Selain dokter-dokter kk pediatrik gawat darurat */ - if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) - && listDetailJenisProduk - .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) - && !drKsmUmumList.contains(idPegawai)) { - /* - * Dibatasi oleh daftar jenis tindakan tertentu - */ - if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && (idsRegDJPPenunjangPA - .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) - || idsRegDJPPenunjangPK - .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())))) { + if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { + if (!drKsmUmumList.contains(idPegawai) || !idsDokterUmumExclude + .contains(Integer.parseInt(next.get("idProduk").toString()))) { /* - * Pengecualian daftar tindakan penunjang yang - * bebas klaim + * Dibatasi oleh daftar jenis tindakan tertentu */ - listPelayananRemun.add(next); - capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); - } else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk")) - || (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk")) - && !idsJenisProdukNonLogbook.contains( - Integer.parseInt(next.get("idJenisProduk").toString())))) { - listPelayananRemun.add(next); - capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) + && (idsRegDJPPenunjangPA + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) + || idsRegDJPPenunjangPK.contains(Integer + .parseInt(next.get("idDetailJenisProduk").toString())))) { + /* + * Pengecualian daftar tindakan penunjang + * yang bebas klaim + */ + listPelayananRemun.add(next); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + } else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk")) + || (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk")) + && !idsJenisProdukNonLogbook.contains( + Integer.parseInt(next.get("idJenisProduk").toString())))) { + listPelayananRemun.add(next); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + } } - } else if (drKsmUmumList.contains(idPegawai) + } else if ((CommonUtil.isNullOrEmpty(next.get("idDetailJenisProduk")) + || (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) + && !listDetailJenisProduk.contains( + Integer.parseInt(next.get("idDetailJenisProduk").toString())))) + && IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai) && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))) { /* * Aturan dokter ksm umum di igd @@ -1233,7 +1247,8 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera /* * Diluar pembatasan jenis produk */ - if (!drKsmUmumList.contains(idPegawai)) { + if (!drKsmUmumList.contains(idPegawai) || !idsDokterUmumExclude + .contains(Integer.parseInt(next.get("idProduk").toString()))) { if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && (idsRegDJPPenunjangPA .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) @@ -1318,37 +1333,43 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera /* * Selain dokter-dokter kk pediatrik gawat darurat */ - if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) - && listDetailJenisProduk - .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) - && !drKsmUmumList.contains(idPegawai)) { - /* - * Dibatasi oleh daftar jenis tindakan tertentu - */ - if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && (idsRegDJPPenunjangPA - .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) - || idsRegDJPPenunjangPK - .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())))) { + if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { + if (!drKsmUmumList.contains(idPegawai) || !idsDokterUmumExclude + .contains(Integer.parseInt(next.get("idProduk").toString()))) { /* - * Pengecualian daftar tindakan penunjang yang - * bebas klaim + * Dibatasi oleh daftar jenis tindakan tertentu */ - if (Boolean.parseBoolean(next.get("isJamKerja").toString())) { - listPelayananFfs.add(next); - } else { - listPelayananNonJknLuarJamKerja.add(next); - } - } else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk")) - || (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk")) - && !idsJenisProdukNonLogbook.contains( - Integer.parseInt(next.get("idJenisProduk").toString())))) { - if (Boolean.parseBoolean(next.get("isJamKerja").toString())) { - listPelayananFfs.add(next); - } else { - listPelayananNonJknLuarJamKerja.add(next); + if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) + && (idsRegDJPPenunjangPA + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) + || idsRegDJPPenunjangPK.contains(Integer + .parseInt(next.get("idDetailJenisProduk").toString())))) { + /* + * Pengecualian daftar tindakan penunjang + * yang bebas klaim + */ + if (Boolean.parseBoolean(next.get("isJamKerja").toString())) { + listPelayananFfs.add(next); + } else { + listPelayananNonJknLuarJamKerja.add(next); + } + } else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk")) + || (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk")) + && !idsJenisProdukNonLogbook.contains( + Integer.parseInt(next.get("idJenisProduk").toString())))) { + if (Boolean.parseBoolean(next.get("isJamKerja").toString())) { + listPelayananFfs.add(next); + } else { + listPelayananNonJknLuarJamKerja.add(next); + } } } - } else if (drKsmUmumList.contains(idPegawai) + } else if ((CommonUtil.isNullOrEmpty(next.get("idDetailJenisProduk")) + || (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) + && !listDetailJenisProduk.contains( + Integer.parseInt(next.get("idDetailJenisProduk").toString())))) + && IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai) && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))) { /* * Aturan dokter ksm umum di igd @@ -1400,7 +1421,8 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera /* * Diluar pembatasan jenis produk */ - if (!drKsmUmumList.contains(idPegawai)) { + if (!drKsmUmumList.contains(idPegawai) || !idsDokterUmumExclude + .contains(Integer.parseInt(next.get("idProduk").toString()))) { if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && (idsRegDJPPenunjangPA .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) From 118010038113cd553c2d387b25cf4fd07aca6766 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Mon, 17 Feb 2025 14:20:41 +0700 Subject: [PATCH 2/2] Update RemunerasiServiceImpl.java Penerapan pengecekan TMT pembatasan KSM umum --- .../service/impl/RemunerasiServiceImpl.java | 70 +++++++++++++++---- 1 file changed, 55 insertions(+), 15 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java index 657a2937..210b5dc6 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java @@ -363,6 +363,10 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera listDetailJenisProdukException = idsRegDJPAdminNonPK; listDetailJenisProdukException.removeAll(listDetailJenisProduk); } + /* + * TMT KSM Umum mulai menggunakan pembatasan tindakan + */ + Date tmtTindakanKSMUmum = new Date(1738342800000L); /* * Mendapatkan data mentah pelayanan pasien */ @@ -1028,14 +1032,23 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera || CATHLAB.equals(next.get("idRuangan")))) { listPelayananRemun.add(next); capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + } else if (drKsmUmumList.contains(idPegawai) + && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString())) + && (tglAwal.equals(tmtTindakanKSMUmum) || tglAwal.after(tmtTindakanKSMUmum))) { + /* + * Aturan dokter ksm umum + */ + listPelayananRemun.add(next); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } else { /* * Selain dokter-dokter kk pediatrik gawat darurat */ if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { - if (!drKsmUmumList.contains(idPegawai) || !idsDokterUmumExclude - .contains(Integer.parseInt(next.get("idProduk").toString()))) { + if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude + .contains(Integer.parseInt(next.get("idProduk").toString())) + && tglAwal.before(tmtTindakanKSMUmum))) { /* * Dibatasi oleh daftar jenis tindakan tertentu */ @@ -1063,7 +1076,8 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera && !listDetailJenisProduk.contains( Integer.parseInt(next.get("idDetailJenisProduk").toString())))) && IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai) - && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))) { + && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString())) + && tglAwal.before(tmtTindakanKSMUmum)) { /* * Aturan dokter ksm umum di igd */ @@ -1102,8 +1116,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera /* * Diluar pembatasan jenis produk */ - if (!drKsmUmumList.contains(idPegawai) || !idsDokterUmumExclude - .contains(Integer.parseInt(next.get("idProduk").toString()))) { + if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude + .contains(Integer.parseInt(next.get("idProduk").toString())) + && tglAwal.before(tmtTindakanKSMUmum))) { if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && (idsRegDJPPenunjangPA .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) @@ -1173,14 +1188,23 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera || CATHLAB.equals(next.get("idRuangan")))) { listPelayananRemun.add(next); capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + } else if (drKsmUmumList.contains(idPegawai) + && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString())) + && (tglAwal.equals(tmtTindakanKSMUmum) || tglAwal.after(tmtTindakanKSMUmum))) { + /* + * Aturan dokter ksm umum + */ + listPelayananRemun.add(next); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } else { /* * Selain dokter-dokter kk pediatrik gawat darurat */ if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { - if (!drKsmUmumList.contains(idPegawai) || !idsDokterUmumExclude - .contains(Integer.parseInt(next.get("idProduk").toString()))) { + if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude + .contains(Integer.parseInt(next.get("idProduk").toString())) + && tglAwal.before(tmtTindakanKSMUmum))) { /* * Dibatasi oleh daftar jenis tindakan tertentu */ @@ -1208,7 +1232,8 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera && !listDetailJenisProduk.contains( Integer.parseInt(next.get("idDetailJenisProduk").toString())))) && IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai) - && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))) { + && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString())) + && tglAwal.before(tmtTindakanKSMUmum)) { /* * Aturan dokter ksm umum di igd */ @@ -1247,8 +1272,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera /* * Diluar pembatasan jenis produk */ - if (!drKsmUmumList.contains(idPegawai) || !idsDokterUmumExclude - .contains(Integer.parseInt(next.get("idProduk").toString()))) { + if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude + .contains(Integer.parseInt(next.get("idProduk").toString())) + && tglAwal.before(tmtTindakanKSMUmum))) { if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && (idsRegDJPPenunjangPA .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) @@ -1329,14 +1355,26 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera } else { listPelayananNonJknLuarJamKerja.add(next); } + } else if (drKsmUmumList.contains(idPegawai) + && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString())) + && (tglAwal.equals(tmtTindakanKSMUmum) || tglAwal.after(tmtTindakanKSMUmum))) { + /* + * Aturan dokter ksm umum + */ + if (Boolean.parseBoolean(next.get("isJamKerja").toString())) { + listPelayananFfs.add(next); + } else { + listPelayananNonJknLuarJamKerja.add(next); + } } else { /* * Selain dokter-dokter kk pediatrik gawat darurat */ if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { - if (!drKsmUmumList.contains(idPegawai) || !idsDokterUmumExclude - .contains(Integer.parseInt(next.get("idProduk").toString()))) { + if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude + .contains(Integer.parseInt(next.get("idProduk").toString())) + && tglAwal.before(tmtTindakanKSMUmum))) { /* * Dibatasi oleh daftar jenis tindakan tertentu */ @@ -1370,7 +1408,8 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera && !listDetailJenisProduk.contains( Integer.parseInt(next.get("idDetailJenisProduk").toString())))) && IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai) - && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))) { + && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString())) + && tglAwal.before(tmtTindakanKSMUmum)) { /* * Aturan dokter ksm umum di igd */ @@ -1421,8 +1460,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera /* * Diluar pembatasan jenis produk */ - if (!drKsmUmumList.contains(idPegawai) || !idsDokterUmumExclude - .contains(Integer.parseInt(next.get("idProduk").toString()))) { + if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude + .contains(Integer.parseInt(next.get("idProduk").toString())) + && tglAwal.before(tmtTindakanKSMUmum))) { if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && (idsRegDJPPenunjangPA .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))