From fe493631831ef6eb77a6341e3e2086a3cda631a9 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Wed, 7 Jun 2023 12:53:51 +0700 Subject: [PATCH] Update service pelayanan pasien Penerapan aturan remun dokter anestesi untuk tindakan mandiri di radiologi --- .../medifirst2000/constants/Master.java | 3 ++ .../impl/PelayananPasienServiceImpl.java | 54 ++++++++++++++----- 2 files changed, 43 insertions(+), 14 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java index 5b0859e9..1421faef 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java @@ -367,18 +367,21 @@ public class Master { } public static final class Ruangan { + public static final Integer[] ICU_NICU = { 328, 75, 707, 708 }; public static final Integer[] NONRANAP = { 45, 75, 76, 328, 463, 464 }; public static final Integer[] NONIKI_NONFFS = { 535 }; public static final Integer[] PENUNJANG_MURNI = { 39, 276 }; public static final Integer[] PERISTI = { 45, 75, 76, 463, 464 }; public static final Integer[] TANJUNG = { 72, 551 }; + public static final Integer ICU_COVID = 707; public static final Integer ICU_PICU = 328; public static final Integer KLINIK_GIGI_KARYAWAN = 702; public static final Integer KLINIK_KARYAWAN = 70; public static final Integer KLINIK_TERPADU_DIALISIS = 535; public static final Integer MICU = 464; public static final Integer NICU = 75; + public static final Integer NICU_COVID = 708; public static final int KLINIK_FALSE_EMERGENCY = 309; public static final int LABORATORIUM_PATOLOGI_ANATOMI = 39; diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java index 7ab81b61..2fa9fb67 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java @@ -466,6 +466,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel Double persenTarifJasaICU = Double.parseDouble(GetSettingDataFixed("persenTarifJasaICU").toString()); Double persenRemunDokterPA = Double.parseDouble(GetSettingDataFixed("persenRemunDokterPA").toString()); Double persenRemunDokterUmumHD = Double.parseDouble(GetSettingDataFixed("persenRemunDokterUmumHD").toString()); + Double persenRemunAnestesiRadiologi = Double + .parseDouble(GetSettingDataFixed("persenRemunAnestesiRadiologi").toString()); + /* * Persiapan filter logic remunerasi */ @@ -561,7 +564,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel d.put("hargaJasa", persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); } } else if (Master.Departemen.RADIOLOGI.equals(d.get("idDepartemen"))) { - d.put("hargaJasa", persenRadiologi / 100 * Double.parseDouble(d.get("hargaJual").toString())); + if (drAnastesiList.contains(idPegawai) + && Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + d.put("hargaJasa", + persenRemunAnestesiRadiologi / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else { + d.put("hargaJasa", persenRadiologi / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } } else if (Master.Departemen.REHAB_MEDIK.equals(d.get("idDepartemen"))) { d.put("hargaJasa", persenRehabMedik / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.GolonganProduk.KONSULTASI.equals(d.get("idGolonganProduk"))) { @@ -572,8 +581,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel d.put("hargaJasa", persenRemunDokterPA / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.Departemen.LABORATORIUM.equals(d.get("idDepartemen"))) { d.put("hargaJasa", persenLaboratorium / 100 * Double.parseDouble(d.get("hargaJual").toString())); - } else if (Master.Ruangan.ICU_PICU.equals(d.get("idRuangan")) - || Master.Ruangan.NICU.equals(d.get("idRuangan"))) { + } else if (Arrays.asList(Master.Ruangan.ICU_NICU).contains(d.get("idRuangan"))) { double persenJasa = persenTindakan / 100; d.put("hargaJasa", persenJasa * persenTarifICU * Double.parseDouble(d.get("hargaJual").toString())); } else { @@ -1453,15 +1461,15 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel Double persenTarifJasaICU = Double.parseDouble(GetSettingDataFixed("persenTarifJasaICU").toString()); Double persenRemunDokterPA = Double.parseDouble(GetSettingDataFixed("persenRemunDokterPA").toString()); Double persenRemunDokterUmumHD = Double.parseDouble(GetSettingDataFixed("persenRemunDokterUmumHD").toString()); + Double persenRemunAnestesiRadiologi = Double + .parseDouble(GetSettingDataFixed("persenRemunAnestesiRadiologi").toString()); /* * Persiapan filter logic remunerasi */ List drKkPatologiAnatomiList = pegawaiDao .getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); - List idsMonitoringIntervensi = splitDataSettingDatafixed("idMonitoringIntervensi"); - List idsMonitoringHemodinamikGagalOrgan = splitDataSettingDatafixed( - "idMonitoringHemodinamikGagalOrgan"); + List drAnastesiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_ANESTESI); /* * Set persen jasa dan harga jasa pasien bpjs di ibs, icu */ @@ -1516,9 +1524,17 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel d.put("hargaJasa", persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); } } else if (Master.Departemen.RADIOLOGI.equals(d.get("idDepartemen"))) { - d.put("persenJasa", persenRadiologi.toString() + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenRadiologi / 100 * Double.parseDouble(d.get("hargaJual").toString())); + if (drAnastesiList.contains(idPegawai) + && Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + d.put("persenJasa", persenRemunAnestesiRadiologi.toString() + "%"); + if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) + d.put("hargaJasa", + persenRemunAnestesiRadiologi / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else { + d.put("persenJasa", persenRadiologi.toString() + "%"); + if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) + d.put("hargaJasa", persenRadiologi / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } } else if (Master.Departemen.REHAB_MEDIK.equals(d.get("idDepartemen"))) { d.put("persenJasa", persenRehabMedik.toString() + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) @@ -1539,8 +1555,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel d.put("persenJasa", persenLaboratorium.toString() + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenLaboratorium / 100 * Double.parseDouble(d.get("hargaJual").toString())); - } else if (Master.Ruangan.ICU_PICU.equals(d.get("idRuangan")) - || Master.Ruangan.NICU.equals(d.get("idRuangan"))) { + } else if (Arrays.asList(Master.Ruangan.ICU_NICU).contains(d.get("idRuangan"))) { double persenJasa = persenTindakan / 100; d.put("persenJasa", persenTarifJasaICU.toString() + "% + " + persenTindakan.toString() + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) @@ -1719,12 +1734,15 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel Double persenTindakan = Double.parseDouble(GetSettingDataFixed("persenJasaTindakanDokter").toString()); Double persenJasaDokterPA = Double.parseDouble(GetSettingDataFixed("persenJasaDokterPA").toString()); Double persenRemunDokterUmumHD = Double.parseDouble(GetSettingDataFixed("persenRemunDokterUmumHD").toString()); + Double persenJasaAnestesiRadiologi = Double + .parseDouble(GetSettingDataFixed("persenJasaAnestesiRadiologi").toString()); /* * Persiapan filter logic remunerasi */ List drKkPatologiAnatomiList = pegawaiDao .getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); + List drAnastesiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_ANESTESI); /* * Mapping persentase jasa remunerasi */ @@ -1764,9 +1782,17 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.Departemen.RADIOLOGI.equals(d.get("idDepartemen"))) { - d.put("persenJasa", persenRadiologi.toString() + "%"); - if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenRadiologi / 100 * Double.parseDouble(d.get("hargaJual").toString())); + if (drAnastesiList.contains(idPegawai) + && Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { + d.put("persenJasa", persenJasaAnestesiRadiologi.toString() + "%"); + if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) + d.put("hargaJasa", + persenJasaAnestesiRadiologi / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else { + d.put("persenJasa", persenRadiologi.toString() + "%"); + if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) + d.put("hargaJasa", persenRadiologi / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } } else if (Master.Departemen.REHAB_MEDIK.equals(d.get("idDepartemen"))) { d.put("persenJasa", persenRehabMedik.toString() + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)