Merge branch 'dev/base' into dev/integrasi/minio

This commit is contained in:
Salman Manoe 2025-02-27 13:24:09 +07:00
commit 6c5cc07fb2
4 changed files with 210 additions and 70 deletions

View File

@ -415,8 +415,10 @@ public final class Master {
public static final class SubUnitKerja { public static final class SubUnitKerja {
public static final Integer KK_ANESTESI = 223; public static final Integer KK_ANESTESI = 223;
public static final Integer KK_EMERGIC = 218;
public static final Integer KK_FARMAKOLOGI = 205; public static final Integer KK_FARMAKOLOGI = 205;
public static final Integer KK_GENETIKA = 198; public static final Integer KK_GENETIKA = 198;
public static final Integer KK_HEMATO_ONKO = 216;
public static final Integer KK_PATOLOGI_ANATOMI = 197; public static final Integer KK_PATOLOGI_ANATOMI = 197;
public static final Integer KK_PATOLOGI_KLINIK = 199; public static final Integer KK_PATOLOGI_KLINIK = 199;
public static final Integer KK_PEDIATRIK_GD = 244; public static final Integer KK_PEDIATRIK_GD = 244;

View File

@ -497,4 +497,8 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends JpaRepository<MapPegawa
+ "and mj.unitKerjaPegawaiId in (:listUnitKerjaId) " + "and pg.jenisPegawaiId = 1") + "and mj.unitKerjaPegawaiId in (:listUnitKerjaId) " + "and pg.jenisPegawaiId = 1")
Set<Integer> findDokterByUnitKerja(@Param("listUnitKerjaId") List<Integer> listIdUnitKerja); Set<Integer> findDokterByUnitKerja(@Param("listUnitKerjaId") List<Integer> listIdUnitKerja);
@Query("select skj.id from MapPegawaiJabatanToUnitKerja mj " + "inner join mj.subUnitKerjaPegawai skj "
+ "where mj.statusEnabled is true " + "and skj.statusEnabled is true " + "and lower(skj.name) like 'kk%' "
+ "and mj.pegawaiId = :pegawaiId")
List<Integer> findKelompokKerjaByDokter(@Param("pegawaiId") Integer idPegawai);
} }

View File

@ -134,12 +134,14 @@ public abstract class BaseVoServiceImpl {
Type effectiveDateDataFixType = new TypeToken<List<EffectiveDateDataFixDTO>>() { Type effectiveDateDataFixType = new TypeToken<List<EffectiveDateDataFixDTO>>() {
}.getType(); }.getType();
String jsonProdukDokterUmum = getSettingDataFixed(namaField); String jsonProdukDokterUmum = getSettingDataFixed(namaField);
if (jsonProdukDokterUmum.isEmpty())
return result;
List<EffectiveDateDataFixDTO> dataFixDTOList = gson.fromJson(jsonProdukDokterUmum, effectiveDateDataFixType); List<EffectiveDateDataFixDTO> dataFixDTOList = gson.fromJson(jsonProdukDokterUmum, effectiveDateDataFixType);
Optional<EffectiveDateDataFixDTO> first = dataFixDTOList.stream() Optional<EffectiveDateDataFixDTO> first = dataFixDTOList.stream()
.sorted(Comparator.comparing(EffectiveDateDataFixDTO::getTmt, Comparator.reverseOrder())) .sorted(Comparator.comparing(EffectiveDateDataFixDTO::getTmt, Comparator.reverseOrder()))
.filter(dto -> dto.getTmt() <= date.getTime()).findFirst(); .filter(dto -> dto.getTmt() <= date.getTime()).findFirst();
if (first.isPresent()) { if (first.isPresent()) {
String[] split = first.get().getNilaiField().split(","); String[] split = first.get().getNilaiField().replace(" ","").split(",");
for (String s : split) for (String s : split)
result.add(Integer.valueOf(s)); result.add(Integer.valueOf(s));
} }

View File

@ -110,6 +110,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
@Autowired @Autowired
private MapJabatanProfesiDao mapJabatanProfesiDao; private MapJabatanProfesiDao mapJabatanProfesiDao;
@Autowired
private MapPegawaiJabatanToUnitKerjaDao mapPegawaiJabatanToUnitKerjaDao;
@Override @Override
public Map<String, Object> saveProgramKegiatan(ProgramKegiatanVO vo) { public Map<String, Object> saveProgramKegiatan(ProgramKegiatanVO vo) {
Map<String, Object> result = new HashMap<>(); Map<String, Object> result = new HashMap<>();
@ -275,6 +278,11 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
} catch (ParseException e) { } catch (ParseException e) {
return null; return null;
} }
/*
* Mendapatkan kelompok kerja dokter
*/
List<Integer> kelompokKerjaByDokter = mapPegawaiJabatanToUnitKerjaDao.findKelompokKerjaByDokter(idPegawai);
Integer idKKDokter = kelompokKerjaByDokter.stream().findFirst().orElse(-1);
/* /*
* Mendapatkan daftar jadwal kerja, tanggal dan jam kerja * Mendapatkan daftar jadwal kerja, tanggal dan jam kerja
*/ */
@ -320,13 +328,6 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
*/ */
List<Integer> listDetailJenisProduk; List<Integer> listDetailJenisProduk;
List<Integer> listDetailJenisProdukException = new ArrayList<>(); List<Integer> listDetailJenisProdukException = new ArrayList<>();
List<Integer> drKkPediatrikGDList = pegawaiDao.getDokterByKelompokKerja(KK_PEDIATRIK_GD);
List<Integer> drAnastesiList = pegawaiDao.getDokterByKelompokKerja(KK_ANESTESI);
List<Integer> drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(KK_UMUM);
List<Integer> drKkPerinatologiList = pegawaiDao.getDokterByKelompokKerja(KK_PERINATOLOGI);
List<Integer> drKkPatologiAnatomiList = pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_ANATOMI);
List<Integer> drKkGenetika = pegawaiDao.getDokterByKelompokKerja(KK_GENETIKA);
List<Integer> drKkRadiologi = pegawaiDao.getDokterByKelompokKerja(KK_RADIOLOGI);
List<Integer> laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); List<Integer> laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog();
List<Integer> terapisRehabMedik = mapJabatanProfesiDao.findIdPegawaiByProfesiIn(Arrays.asList(TERAPI)); List<Integer> terapisRehabMedik = mapJabatanProfesiDao.findIdPegawaiByProfesiIn(Arrays.asList(TERAPI));
List<Integer> idsJenisProdukNonLogbook = getNilaiDataFixByTMT("listJenisProdukNonLogbook", tglAkhir); List<Integer> idsJenisProdukNonLogbook = getNilaiDataFixByTMT("listJenisProdukNonLogbook", tglAkhir);
@ -341,6 +342,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
List<Integer> idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAkhir); List<Integer> idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAkhir);
List<Integer> idsDokterBPJSffs = splitDataSettingDatafixed("dokterBPJSffs"); List<Integer> idsDokterBPJSffs = splitDataSettingDatafixed("dokterBPJSffs");
List<Integer> idsDokterPediatrikGD = getNilaiDataFixByTMT("pr_dokter_pediatrik_gd", tglAkhir); List<Integer> idsDokterPediatrikGD = getNilaiDataFixByTMT("pr_dokter_pediatrik_gd", tglAkhir);
List<Integer> idsDokterHematoOnko = getNilaiDataFixByTMT("pr_dokter_hematoonko_anak", tglAkhir);
List<Integer> idsDokterEmergic = getNilaiDataFixByTMT("pr_produk_emergic_anak", tglAkhir);
List<Integer> idsPerawat = getNilaiDataFixByTMT("pr_produk_perawat", tglAkhir);
List<Integer> listIdPegawaiRemunKelompokBudiRahmat = splitDataSettingDatafixed( List<Integer> listIdPegawaiRemunKelompokBudiRahmat = splitDataSettingDatafixed(
"listIdPegawaiRemunKelompokBudiRahmat"); "listIdPegawaiRemunKelompokBudiRahmat");
List<Integer> idsMonitoringIntervensi = getNilaiDataFixByTMT("idMonitoringIntervensi", tglAkhir); List<Integer> idsMonitoringIntervensi = getNilaiDataFixByTMT("idMonitoringIntervensi", tglAkhir);
@ -350,11 +354,11 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
List<Integer> idsKepalaPaketFixedPay = getNilaiDataFixByTMT("idProdukKepalaPaketFixedPay", tglAkhir); List<Integer> idsKepalaPaketFixedPay = getNilaiDataFixByTMT("idProdukKepalaPaketFixedPay", tglAkhir);
List<Integer> paketBukanFixedPay = getNilaiDataFixByTMT("produkPaketBukanFixedPay", tglAkhir); List<Integer> paketBukanFixedPay = getNilaiDataFixByTMT("produkPaketBukanFixedPay", tglAkhir);
List<Integer> idsKarcis = getNilaiDataFixByTMT("listKarcisIdProduk", tglAkhir); List<Integer> idsKarcis = getNilaiDataFixByTMT("listKarcisIdProduk", tglAkhir);
if (drKkPatologiAnatomiList.contains(idPegawai)) { if (KK_PATOLOGI_ANATOMI.equals(idKKDokter)) {
listDetailJenisProduk = idsRegDJPPenunjangPA; listDetailJenisProduk = idsRegDJPPenunjangPA;
} else if (pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_KLINIK).contains(idPegawai)) { } else if (KK_PATOLOGI_KLINIK.equals(idKKDokter)) {
listDetailJenisProduk = idsRegDJPPenunjangPK; listDetailJenisProduk = idsRegDJPPenunjangPK;
} else if (drKkRadiologi.contains(idPegawai)) { } else if (KK_RADIOLOGI.equals(idKKDokter)) {
listDetailJenisProduk = idsRegDJPPenunjangRad; listDetailJenisProduk = idsRegDJPPenunjangRad;
} else { } else {
listDetailJenisProduk = idsRegDJPMedisUtama; listDetailJenisProduk = idsRegDJPMedisUtama;
@ -364,9 +368,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
listDetailJenisProdukException.removeAll(listDetailJenisProduk); listDetailJenisProdukException.removeAll(listDetailJenisProduk);
} }
/* /*
* TMT KSM Umum mulai menggunakan pembatasan tindakan * TMT Tarif baru tahun 2024
*/ */
Date tmtTindakanKSMUmum = new Date(1738342800000L); Date tmtTarif2024 = new Date(1738342800000L);
/* /*
* Mendapatkan data mentah pelayanan pasien * Mendapatkan data mentah pelayanan pasien
*/ */
@ -409,7 +413,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
d.put("hargaJual", d.get("komponenTotalTarif")); d.put("hargaJual", d.get("komponenTotalTarif"));
d.put("isTermasukProporsi", true); d.put("isTermasukProporsi", true);
double hargaJual = Double.parseDouble(d.get("hargaJual").toString()); double hargaJual = Double.parseDouble(d.get("hargaJual").toString());
if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { if (KK_UMUM.equals(idKKDokter) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenRemunDokterUmumHD / 100, hargaJual, d); RemunHargaJasa hargaJasa = hargaJasa(persenRemunDokterUmumHD / 100, hargaJual, d);
d.put("hargaJasa", hargaJasa.getNilai()); d.put("hargaJasa", hargaJasa.getNilai());
} else if (terapisRehabMedik.contains(idPegawai)) { } else if (terapisRehabMedik.contains(idPegawai)) {
@ -497,13 +501,13 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
d.put("hargaJasa", hargaJasa.getNilai()); d.put("hargaJasa", hargaJasa.getNilai());
if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")))
d.put("isTermasukProporsi", false); d.put("isTermasukProporsi", false);
} else if (drAnastesiList.contains(idPegawai) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { } else if (KK_ANESTESI.equals(idKKDokter) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d); RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d);
d.put("hargaJasa", hargaJasa.getNilai()); d.put("hargaJasa", hargaJasa.getNilai());
} else if (drAnastesiList.contains(idPegawai) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { } else if (KK_ANESTESI.equals(idKKDokter) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d); RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d);
d.put("hargaJasa", hargaJasa.getNilai()); d.put("hargaJasa", hargaJasa.getNilai());
} else if (drKkGenetika.contains(idPegawai) } else if (KK_GENETIKA.equals(idKKDokter)
&& idsLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) && idsLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString()))
&& (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) {
/* /*
@ -518,7 +522,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
d.put("hargaJasa", hargaJasa.getNilai()); d.put("hargaJasa", hargaJasa.getNilai());
if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")))
d.put("isTermasukProporsi", false); d.put("isTermasukProporsi", false);
} else if (drKkPatologiAnatomiList.contains(idPegawai)) { } else if (KK_PATOLOGI_ANATOMI.equals(idKKDokter)) {
RemunHargaJasa hargaJasa = hargaJasa(persenRemunDokterPA / 100, hargaJual, d); RemunHargaJasa hargaJasa = hargaJasa(persenRemunDokterPA / 100, hargaJual, d);
d.put("hargaJasa", hargaJasa.getNilai()); d.put("hargaJasa", hargaJasa.getNilai());
if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")))
@ -590,7 +594,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
* pasien di luar dokter-dokter kk eria * pasien di luar dokter-dokter kk eria
*/ */
List<Map<String, Object>> rawDataBpjs2 = new ArrayList<>(); List<Map<String, Object>> rawDataBpjs2 = new ArrayList<>();
if (!drKkPediatrikGDList.contains(idPegawai)) { if (!KK_PEDIATRIK_GD.equals(idKKDokter)) {
/* /*
* Dapatkan semua pendaftaran BPJS untuk visite di luar * Dapatkan semua pendaftaran BPJS untuk visite di luar
* dokter-dokter kk eria * dokter-dokter kk eria
@ -651,7 +655,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
* hari per dokter per pasien kk eria * hari per dokter per pasien kk eria
*/ */
List<Map<String, Object>> rawDataBpjs3 = new ArrayList<>(); List<Map<String, Object>> rawDataBpjs3 = new ArrayList<>();
if (drKkPediatrikGDList.contains(idPegawai)) { if (KK_PEDIATRIK_GD.equals(idKKDokter)) {
/* /*
* Dapatkan semua pendaftaran BPJS untuk visite dokter-dokter kk * Dapatkan semua pendaftaran BPJS untuk visite dokter-dokter kk
* eria * eria
@ -718,7 +722,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
* diambil maksimal 2 kali per hari per pasien per dokter kk eria * diambil maksimal 2 kali per hari per pasien per dokter kk eria
*/ */
List<Map<String, Object>> rawDataBpjs4 = new ArrayList<>(); List<Map<String, Object>> rawDataBpjs4 = new ArrayList<>();
if (drKkPediatrikGDList.contains(idPegawai)) { if (KK_PEDIATRIK_GD.equals(idKKDokter)) {
/* /*
* Dapatkan semua pendaftaran BPJS untuk monitoring hemodinamik * Dapatkan semua pendaftaran BPJS untuk monitoring hemodinamik
* gagal organ dokter-dokter kk eria * gagal organ dokter-dokter kk eria
@ -795,7 +799,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
* 2 kali per hari per pasien per dokter kk perinatologi * 2 kali per hari per pasien per dokter kk perinatologi
*/ */
List<Map<String, Object>> rawDataBpjs5 = new ArrayList<>(); List<Map<String, Object>> rawDataBpjs5 = new ArrayList<>();
if (drKkPerinatologiList.contains(idPegawai)) { if (KK_PERINATOLOGI.equals(idKKDokter)) {
/* /*
* Dapatkan semua pendaftaran BPJS untuk monitoring intervensi * Dapatkan semua pendaftaran BPJS untuk monitoring intervensi
* dokter-dokter kk perinatologi * dokter-dokter kk perinatologi
@ -989,7 +993,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
/* /*
* Urutan alokasi bpjs sebagai urutan prioritas * Urutan alokasi bpjs sebagai urutan prioritas
*/ */
if (drKkPediatrikGDList.contains(idPegawai)) { if (KK_PEDIATRIK_GD.equals(idKKDokter) && tglAwal.before(tmtTarif2024)) {
if (CommonUtil.isNotNullOrEmpty(next.get("kptl"))) { if (CommonUtil.isNotNullOrEmpty(next.get("kptl"))) {
if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk")) if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk"))
|| (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk")) || (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk"))
@ -1028,15 +1032,49 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} }
} }
} else if (drKkRadiologi.contains(idPegawai) && (BEDAH_SENTRAL.equals(next.get("idDepartemen")) } else if (KK_PEDIATRIK_GD.equals(idKKDokter)
&& idsDokterPediatrikGD.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk eria tarif 2024
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (KK_RADIOLOGI.equals(idKKDokter) && (BEDAH_SENTRAL.equals(next.get("idDepartemen"))
|| CATHLAB.equals(next.get("idRuangan")))) { || CATHLAB.equals(next.get("idRuangan")))) {
listPelayananRemun.add(next); listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (drKsmUmumList.contains(idPegawai) } else if (KK_UMUM.equals(idKKDokter)
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString())) && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTindakanKSMUmum) || tglAwal.after(tmtTindakanKSMUmum))) { && (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/* /*
* Aturan dokter ksm umum * Aturan dokter ksm umum tarif 2024
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (KK_PERINATOLOGI.equals(idKKDokter)
&& idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk perinatologi tarif 2024
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (KK_HEMATO_ONKO.equals(idKKDokter)
&& idsDokterHematoOnko.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk hematologi dan onkologi anak tarif
* 2024
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (KK_EMERGIC.equals(idKKDokter)
&& idsDokterEmergic.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk emergensi rawat intensif anak tarif
* 2024
*/ */
listPelayananRemun.add(next); listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
@ -1046,9 +1084,11 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
*/ */
if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) {
if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude if (!idsPerawat.contains(Integer.parseInt(next.get("idProduk").toString()))
.contains(Integer.parseInt(next.get("idProduk").toString())) || (KK_UMUM.equals(idKKDokter)
&& tglAwal.before(tmtTindakanKSMUmum))) { && !idsDokterUmumExclude
.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTarif2024))) {
/* /*
* Dibatasi oleh daftar jenis tindakan tertentu * Dibatasi oleh daftar jenis tindakan tertentu
*/ */
@ -1075,9 +1115,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|| (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) || (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
&& !listDetailJenisProduk.contains( && !listDetailJenisProduk.contains(
Integer.parseInt(next.get("idDetailJenisProduk").toString())))) Integer.parseInt(next.get("idDetailJenisProduk").toString()))))
&& IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai) && IGD.equals(next.get("idDepartemen")) && KK_UMUM.equals(idKKDokter)
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString())) && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTindakanKSMUmum)) { && tglAwal.before(tmtTarif2024)) {
/* /*
* Aturan dokter ksm umum di igd * Aturan dokter ksm umum di igd
*/ */
@ -1087,15 +1127,16 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|| (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) || (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
&& !listDetailJenisProduk.contains( && !listDetailJenisProduk.contains(
Integer.parseInt(next.get("idDetailJenisProduk").toString())))) Integer.parseInt(next.get("idDetailJenisProduk").toString()))))
&& drKkPerinatologiList.contains(idPegawai) && KK_PERINATOLOGI.equals(idKKDokter)
&& idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))) { && idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTarif2024)) {
/* /*
* Aturan dokter kk perinatologi dengan pembatasan * Aturan dokter kk perinatologi dengan pembatasan
* tindakan tertentu * tindakan tertentu
*/ */
listPelayananRemun.add(next); listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (drAnastesiList.contains(idPegawai)) { } else if (KK_ANESTESI.equals(idKKDokter)) {
if (idsPenunjangBukanAnestesi.contains(Integer.parseInt(next.get("idProduk").toString()))) { if (idsPenunjangBukanAnestesi.contains(Integer.parseInt(next.get("idProduk").toString()))) {
/* /*
* Aturan dokter kk anestesi dengan pembatasan * Aturan dokter kk anestesi dengan pembatasan
@ -1116,9 +1157,11 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
/* /*
* Diluar pembatasan jenis produk * Diluar pembatasan jenis produk
*/ */
if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude if (!idsPerawat.contains(Integer.parseInt(next.get("idProduk").toString()))
.contains(Integer.parseInt(next.get("idProduk").toString())) || (KK_UMUM.equals(idKKDokter)
&& tglAwal.before(tmtTindakanKSMUmum))) { && !idsDokterUmumExclude
.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTarif2024))) {
if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
&& (idsRegDJPPenunjangPA && (idsRegDJPPenunjangPA
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))
@ -1145,7 +1188,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
* Alokasi bagian remunerasi berdasarkan target rupiah * Alokasi bagian remunerasi berdasarkan target rupiah
* sesuai tanggal mulai berlaku * sesuai tanggal mulai berlaku
*/ */
if (drKkPediatrikGDList.contains(idPegawai)) { if (KK_PEDIATRIK_GD.equals(idKKDokter) && tglAwal.before(tmtTarif2024)) {
if (CommonUtil.isNotNullOrEmpty(next.get("kptl"))) { if (CommonUtil.isNotNullOrEmpty(next.get("kptl"))) {
if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk")) if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk"))
|| (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk")) || (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk"))
@ -1184,15 +1227,49 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} }
} }
} else if (drKkRadiologi.contains(idPegawai) && (BEDAH_SENTRAL.equals(next.get("idDepartemen")) } else if (KK_PEDIATRIK_GD.equals(idKKDokter)
&& idsDokterPediatrikGD.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk eria tarif 2024
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (KK_RADIOLOGI.equals(idKKDokter) && (BEDAH_SENTRAL.equals(next.get("idDepartemen"))
|| CATHLAB.equals(next.get("idRuangan")))) { || CATHLAB.equals(next.get("idRuangan")))) {
listPelayananRemun.add(next); listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (drKsmUmumList.contains(idPegawai) } else if (KK_UMUM.equals(idKKDokter)
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString())) && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTindakanKSMUmum) || tglAwal.after(tmtTindakanKSMUmum))) { && (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/* /*
* Aturan dokter ksm umum * Aturan dokter ksm umum tarif 2024
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (KK_PERINATOLOGI.equals(idKKDokter)
&& idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk perinatologi tarif 2024
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (KK_HEMATO_ONKO.equals(idKKDokter)
&& idsDokterHematoOnko.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk hematologi dan onkologi anak tarif
* 2024
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (KK_EMERGIC.equals(idKKDokter)
&& idsDokterEmergic.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk emergensi rawat intensif anak tarif
* 2024
*/ */
listPelayananRemun.add(next); listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
@ -1202,9 +1279,11 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
*/ */
if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) {
if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude if (!idsPerawat.contains(Integer.parseInt(next.get("idProduk").toString()))
.contains(Integer.parseInt(next.get("idProduk").toString())) || (KK_UMUM.equals(idKKDokter)
&& tglAwal.before(tmtTindakanKSMUmum))) { && !idsDokterUmumExclude
.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTarif2024))) {
/* /*
* Dibatasi oleh daftar jenis tindakan tertentu * Dibatasi oleh daftar jenis tindakan tertentu
*/ */
@ -1231,9 +1310,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|| (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) || (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
&& !listDetailJenisProduk.contains( && !listDetailJenisProduk.contains(
Integer.parseInt(next.get("idDetailJenisProduk").toString())))) Integer.parseInt(next.get("idDetailJenisProduk").toString()))))
&& IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai) && IGD.equals(next.get("idDepartemen")) && KK_UMUM.equals(idKKDokter)
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString())) && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTindakanKSMUmum)) { && tglAwal.before(tmtTarif2024)) {
/* /*
* Aturan dokter ksm umum di igd * Aturan dokter ksm umum di igd
*/ */
@ -1243,15 +1322,16 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|| (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) || (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
&& !listDetailJenisProduk.contains( && !listDetailJenisProduk.contains(
Integer.parseInt(next.get("idDetailJenisProduk").toString())))) Integer.parseInt(next.get("idDetailJenisProduk").toString()))))
&& drKkPerinatologiList.contains(idPegawai) && KK_PERINATOLOGI.equals(idKKDokter)
&& idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))) { && idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTarif2024)) {
/* /*
* Aturan dokter kk perinatologi dengan pembatasan * Aturan dokter kk perinatologi dengan pembatasan
* tindakan tertentu * tindakan tertentu
*/ */
listPelayananRemun.add(next); listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (drAnastesiList.contains(idPegawai)) { } else if (KK_ANESTESI.equals(idKKDokter)) {
if (idsPenunjangBukanAnestesi.contains(Integer.parseInt(next.get("idProduk").toString()))) { if (idsPenunjangBukanAnestesi.contains(Integer.parseInt(next.get("idProduk").toString()))) {
/* /*
* Aturan dokter kk anestesi dengan pembatasan * Aturan dokter kk anestesi dengan pembatasan
@ -1272,9 +1352,11 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
/* /*
* Diluar pembatasan jenis produk * Diluar pembatasan jenis produk
*/ */
if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude if (!idsPerawat.contains(Integer.parseInt(next.get("idProduk").toString()))
.contains(Integer.parseInt(next.get("idProduk").toString())) || (KK_UMUM.equals(idKKDokter)
&& tglAwal.before(tmtTindakanKSMUmum))) { && !idsDokterUmumExclude
.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTarif2024))) {
if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
&& (idsRegDJPPenunjangPA && (idsRegDJPPenunjangPA
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))
@ -1300,7 +1382,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
/* /*
* Alokasi untuk bagian ffs * Alokasi untuk bagian ffs
*/ */
if (drKkPediatrikGDList.contains(idPegawai)) { if (KK_PEDIATRIK_GD.equals(idKKDokter) && tglAwal.before(tmtTarif2024)) {
if (CommonUtil.isNotNullOrEmpty(next.get("kptl"))) { if (CommonUtil.isNotNullOrEmpty(next.get("kptl"))) {
if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk")) if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk"))
|| (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk")) || (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk"))
@ -1348,18 +1430,63 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
} }
} }
} }
} else if (drKkRadiologi.contains(idPegawai) && (BEDAH_SENTRAL.equals(next.get("idDepartemen")) } else if (KK_PEDIATRIK_GD.equals(idKKDokter)
&& idsDokterPediatrikGD.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk eria tarif 2024
*/
if (Boolean.parseBoolean(next.get("isJamKerja").toString())) {
listPelayananFfs.add(next);
} else {
listPelayananNonJknLuarJamKerja.add(next);
}
} else if (KK_RADIOLOGI.equals(idKKDokter) && (BEDAH_SENTRAL.equals(next.get("idDepartemen"))
|| CATHLAB.equals(next.get("idRuangan")))) { || CATHLAB.equals(next.get("idRuangan")))) {
if (Boolean.parseBoolean(next.get("isJamKerja").toString())) { if (Boolean.parseBoolean(next.get("isJamKerja").toString())) {
listPelayananFfs.add(next); listPelayananFfs.add(next);
} else { } else {
listPelayananNonJknLuarJamKerja.add(next); listPelayananNonJknLuarJamKerja.add(next);
} }
} else if (drKsmUmumList.contains(idPegawai) } else if (KK_UMUM.equals(idKKDokter)
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString())) && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTindakanKSMUmum) || tglAwal.after(tmtTindakanKSMUmum))) { && (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/* /*
* Aturan dokter ksm umum * Aturan dokter ksm umum tarif 2024
*/
if (Boolean.parseBoolean(next.get("isJamKerja").toString())) {
listPelayananFfs.add(next);
} else {
listPelayananNonJknLuarJamKerja.add(next);
}
} else if (KK_PERINATOLOGI.equals(idKKDokter)
&& idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk perinatologi tarif 2024
*/
if (Boolean.parseBoolean(next.get("isJamKerja").toString())) {
listPelayananFfs.add(next);
} else {
listPelayananNonJknLuarJamKerja.add(next);
}
} else if (KK_HEMATO_ONKO.equals(idKKDokter)
&& idsDokterHematoOnko.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk hematologi dan onkologi tarif 2024
*/
if (Boolean.parseBoolean(next.get("isJamKerja").toString())) {
listPelayananFfs.add(next);
} else {
listPelayananNonJknLuarJamKerja.add(next);
}
} else if (KK_EMERGIC.equals(idKKDokter)
&& idsDokterEmergic.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk emergensi rawat intensif anak tarif
* 2024
*/ */
if (Boolean.parseBoolean(next.get("isJamKerja").toString())) { if (Boolean.parseBoolean(next.get("isJamKerja").toString())) {
listPelayananFfs.add(next); listPelayananFfs.add(next);
@ -1372,9 +1499,11 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
*/ */
if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) {
if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude if (!idsPerawat.contains(Integer.parseInt(next.get("idProduk").toString()))
.contains(Integer.parseInt(next.get("idProduk").toString())) || (KK_UMUM.equals(idKKDokter)
&& tglAwal.before(tmtTindakanKSMUmum))) { && !idsDokterUmumExclude
.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTarif2024))) {
/* /*
* Dibatasi oleh daftar jenis tindakan tertentu * Dibatasi oleh daftar jenis tindakan tertentu
*/ */
@ -1407,9 +1536,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|| (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) || (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
&& !listDetailJenisProduk.contains( && !listDetailJenisProduk.contains(
Integer.parseInt(next.get("idDetailJenisProduk").toString())))) Integer.parseInt(next.get("idDetailJenisProduk").toString()))))
&& IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai) && IGD.equals(next.get("idDepartemen")) && KK_UMUM.equals(idKKDokter)
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString())) && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTindakanKSMUmum)) { && tglAwal.before(tmtTarif2024)) {
/* /*
* Aturan dokter ksm umum di igd * Aturan dokter ksm umum di igd
*/ */
@ -1422,8 +1551,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|| (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) || (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
&& !listDetailJenisProduk.contains( && !listDetailJenisProduk.contains(
Integer.parseInt(next.get("idDetailJenisProduk").toString())))) Integer.parseInt(next.get("idDetailJenisProduk").toString()))))
&& drKkPerinatologiList.contains(idPegawai) && KK_PERINATOLOGI.equals(idKKDokter)
&& idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))) { && idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTarif2024)) {
/* /*
* Aturan dokter kk perinatologi dengan pembatasan * Aturan dokter kk perinatologi dengan pembatasan
* tindakan tertentu * tindakan tertentu
@ -1433,7 +1563,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
} else { } else {
listPelayananNonJknLuarJamKerja.add(next); listPelayananNonJknLuarJamKerja.add(next);
} }
} else if (drAnastesiList.contains(idPegawai)) { } else if (KK_ANESTESI.equals(idKKDokter)) {
if (idsPenunjangBukanAnestesi.contains(Integer.parseInt(next.get("idProduk").toString()))) { if (idsPenunjangBukanAnestesi.contains(Integer.parseInt(next.get("idProduk").toString()))) {
/* /*
* Aturan dokter kk anestesi dengan pembatasan * Aturan dokter kk anestesi dengan pembatasan
@ -1460,9 +1590,11 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
/* /*
* Diluar pembatasan jenis produk * Diluar pembatasan jenis produk
*/ */
if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude if (!idsPerawat.contains(Integer.parseInt(next.get("idProduk").toString()))
.contains(Integer.parseInt(next.get("idProduk").toString())) || (KK_UMUM.equals(idKKDokter)
&& tglAwal.before(tmtTindakanKSMUmum))) { && !idsDokterUmumExclude
.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTarif2024))) {
if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
&& (idsRegDJPPenunjangPA && (idsRegDJPPenunjangPA
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))