From 07300a5b58e2fa30bef2defa11e5bd678cc2465a Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Wed, 2 Aug 2023 15:12:53 +0700 Subject: [PATCH] Update service pelayanan pasien Pembuatan custom porsi persentase paket bayi tabung --- .../medifirst2000/constants/Master.java | 4 +- .../impl/PelayananPasienServiceImpl.java | 68 +++++++++++++++---- 2 files changed, 58 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 11426d55..01112e8d 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 @@ -329,6 +329,8 @@ public class Master { public static final class Produk { public static final int KARCIS = 395; + public static final Integer KONSULTASI_DOKTER_JAGA = 400; + public static final Integer PAKET_BAYI_TABUNG = 1002129402; public static final Integer[] DOKTER_UMUM_IGD = { 783, 401333, 402413, 402414, 402449, 402484 }; public static final Integer[] KONSULTASI_EKSEKUTIF = { 401092, 401093 }; @@ -336,8 +338,6 @@ public class Master { public static final Integer[] PENUNJANG_BUKAN_ANASTESI = { 13409, 15208, 19325, 19346, 19371, 19405, 19406, 19535, 19599, 402009, 10009835, 10012269, 1002117344, 1002117938, 1002117963, 1002117964, 1002117965, 1002117966 }; - - public static final Integer KONSULTASI_DOKTER_JAGA = 400; } public static final class Profesi { 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 c6bc496d..2e31f029 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 @@ -35,6 +35,7 @@ import static com.jasamedika.medifirst2000.constants.Master.JenisProduk.OBAT_ALK import static com.jasamedika.medifirst2000.constants.Master.KONSUL_VISIT; import static com.jasamedika.medifirst2000.constants.Master.KategoryPegawai.DOKTER_LUAR; import static com.jasamedika.medifirst2000.constants.Master.KelompokPasien.KELOMPOK_BPJS; +import static com.jasamedika.medifirst2000.constants.Master.Produk.PAKET_BAYI_TABUNG; import static com.jasamedika.medifirst2000.constants.Master.Ruangan.*; import static com.jasamedika.medifirst2000.constants.Master.SubUnitKerja.*; import static com.jasamedika.medifirst2000.constants.Master.TipePegawai.PURNA_WAKTU; @@ -439,7 +440,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel /* * Mendapatkan persentase jasa */ - double persenOperatorIBS = Double.parseDouble(GetSettingDataFixed("persenRemunOperatorIBS")); + double persenOperator = Double.parseDouble(GetSettingDataFixed("persenRemunOperatorIBS")); double persenAsistenIBS = Double.parseDouble(GetSettingDataFixed("persenRemunAsistenIBS")); double persenAnestesi = Double.parseDouble(GetSettingDataFixed("persenRemunAnestesiIBS")); double persenRadiologi = Double.parseDouble(GetSettingDataFixed("persenRemunRadiologi")); @@ -453,6 +454,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel double persenRemunDokterPA = Double.parseDouble(GetSettingDataFixed("persenRemunDokterPA")); double persenRemunDokterUmumHD = Double.parseDouble(GetSettingDataFixed("persenRemunDokterUmumHD")); double persenRemunLabGenetika = Double.parseDouble(GetSettingDataFixed("persenRemunLabGenetika")); + double persenRemunOperatorPBT = Double.parseDouble(GetSettingDataFixed("persenRemunOperatorPBT")); + double persenRemunAnestesiPBT = Double.parseDouble(GetSettingDataFixed("persenRemunAnestesiPBT")); /* * Persiapan filter logic remunerasi */ @@ -517,13 +520,23 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * Untuk semua klaim di ruangan klinik karyawan */ d.put("hargaJasa", 0.0); + } else if (DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")) + && PAKET_BAYI_TABUNG.equals(d.get("idProduk"))) { + double persenJasa = persenOperator / 100; + double persenPBT = persenRemunOperatorPBT / 100; + d.put("hargaJasa", persenJasa * persenPBT * Double.parseDouble(d.get("hargaJual").toString())); + } else if (DOKTER_ANASTESI.equals(d.get("idJenisPelaksana")) + && PAKET_BAYI_TABUNG.equals(d.get("idProduk"))) { + double persenJasa = persenAnestesi / 100; + double persenPBT = persenRemunAnestesiPBT / 100; + d.put("hargaJasa", persenJasa * persenPBT * Double.parseDouble(d.get("hargaJual").toString())); } else if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { d.put("hargaJasa", persenRemunDokterUmumHD / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (BEDAH_SENTRAL.equals(d.get("idDepartemen")) && CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien")) && Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString())) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { - double persenJasa = persenOperatorIBS / 100; + double persenJasa = persenOperator / 100; d.put("hargaJasa", persenJasa * persenTarifIBS * Double.parseDouble(d.get("hargaJual").toString())); } else if (BEDAH_SENTRAL.equals(d.get("idDepartemen")) && CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien")) @@ -539,7 +552,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel d.put("hargaJasa", persenJasa * persenTarifIBS * Double.parseDouble(d.get("hargaJual").toString())); } else if (BEDAH_SENTRAL.equals(d.get("idDepartemen")) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { - d.put("hargaJasa", persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + d.put("hargaJasa", persenOperator / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (BEDAH_SENTRAL.equals(d.get("idDepartemen")) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { d.put("hargaJasa", persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); @@ -1417,7 +1430,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel /* * Mendapatkan persentase jasa */ - double persenOperatorIBS = Double.parseDouble(GetSettingDataFixed("persenRemunOperatorIBS")); + double persenOperator = Double.parseDouble(GetSettingDataFixed("persenRemunOperatorIBS")); double persenAsistenIBS = Double.parseDouble(GetSettingDataFixed("persenRemunAsistenIBS")); double persenAnestesi = Double.parseDouble(GetSettingDataFixed("persenRemunAnestesiIBS")); double persenRadiologi = Double.parseDouble(GetSettingDataFixed("persenRemunRadiologi")); @@ -1431,6 +1444,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel double persenRemunDokterPA = Double.parseDouble(GetSettingDataFixed("persenRemunDokterPA")); double persenRemunDokterUmumHD = Double.parseDouble(GetSettingDataFixed("persenRemunDokterUmumHD")); double persenRemunLabGenetika = Double.parseDouble(GetSettingDataFixed("persenRemunLabGenetika")); + double persenRemunOperatorPBT = Double.parseDouble(GetSettingDataFixed("persenRemunOperatorPBT")); + double persenRemunAnestesiPBT = Double.parseDouble(GetSettingDataFixed("persenRemunAnestesiPBT")); /* * Persiapan filter logic remunerasi */ @@ -1448,7 +1463,20 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * Mapping persentase jasa remunerasi */ for (Map d : listData) { - if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { + if (DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")) && PAKET_BAYI_TABUNG.equals(d.get("idProduk"))) { + double persenJasa = persenOperator / 100; + double persenPBT = persenRemunOperatorPBT / 100; + d.put("persenJasa", persenRemunOperatorPBT + "% + " + persenOperator + "%"); + if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) + d.put("hargaJasa", persenPBT * persenJasa * Double.parseDouble(d.get("hargaJual").toString())); + } else if (DOKTER_ANASTESI.equals(d.get("idJenisPelaksana")) + && PAKET_BAYI_TABUNG.equals(d.get("idProduk"))) { + double persenJasa = persenAnestesi / 100; + double persenPBT = persenRemunAnestesiPBT / 100; + d.put("persenJasa", persenRemunAnestesiPBT + "% + " + persenAnestesi + "%"); + if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) + d.put("hargaJasa", persenPBT * persenJasa * Double.parseDouble(d.get("hargaJual").toString())); + } else if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { d.put("persenJasa", persenRemunDokterUmumHD + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", @@ -1457,8 +1485,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel && CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien")) && Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString())) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { - double persenJasa = persenOperatorIBS / 100; - d.put("persenJasa", persenTarifJasaBedah + "% + " + persenOperatorIBS + "%"); + double persenJasa = persenOperator / 100; + d.put("persenJasa", persenTarifJasaBedah + "% + " + persenOperator + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenJasa * persenTarifIBS * Double.parseDouble(d.get("hargaJual").toString())); } else if (BEDAH_SENTRAL.equals(d.get("idDepartemen")) @@ -1479,9 +1507,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel d.put("hargaJasa", persenJasa * persenTarifIBS * Double.parseDouble(d.get("hargaJual").toString())); } else if (BEDAH_SENTRAL.equals(d.get("idDepartemen")) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { - d.put("persenJasa", persenOperatorIBS + "%"); + d.put("persenJasa", persenOperator + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + d.put("hargaJasa", persenOperator / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (BEDAH_SENTRAL.equals(d.get("idDepartemen")) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { d.put("persenJasa", persenAsistenIBS + "%"); @@ -1716,7 +1744,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * Mendapatkan persentase jasa */ double persenBPJS = Double.parseDouble(GetSettingDataFixed("persenJasaBPJS")); - double persenOperatorIBS = Double.parseDouble(GetSettingDataFixed("persenJasaOperatorIBS")); + double persenOperator = Double.parseDouble(GetSettingDataFixed("persenJasaOperatorIBS")); double persenAsistenIBS = Double.parseDouble(GetSettingDataFixed("persenJasaAsistenIBS")); double persenAnestesi = Double.parseDouble(GetSettingDataFixed("persenJasaAnestesiIBS")); double persenRadiologi = Double.parseDouble(GetSettingDataFixed("persenJasaRadiologi")); @@ -1728,6 +1756,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel double persenJasaDokterPA = Double.parseDouble(GetSettingDataFixed("persenJasaDokterPA")); double persenJasaDokterUmumHD = Double.parseDouble(GetSettingDataFixed("persenJasaDokterUmumHD")); double persenJasaLabGenetika = Double.parseDouble(GetSettingDataFixed("persenJasaLabGenetika")); + double persenJasaOperatorPBT = Double.parseDouble(GetSettingDataFixed("persenJasaOperatorPBT")); + double persenJasaAnestesiPBT = Double.parseDouble(GetSettingDataFixed("persenJasaAnestesiPBT")); /* * Persiapan filter logic remunerasi */ @@ -1753,6 +1783,20 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenBPJS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")) + && PAKET_BAYI_TABUNG.equals(d.get("idProduk"))) { + double persenJasa = persenOperator / 100; + double persenPBT = persenJasaOperatorPBT / 100; + d.put("persenJasa", persenJasaOperatorPBT + "% + " + persenOperator + "%"); + if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) + d.put("hargaJasa", persenPBT * persenJasa * Double.parseDouble(d.get("hargaJual").toString())); + } else if (DOKTER_ANASTESI.equals(d.get("idJenisPelaksana")) + && PAKET_BAYI_TABUNG.equals(d.get("idProduk"))) { + double persenJasa = persenAnestesi / 100; + double persenPBT = persenJasaAnestesiPBT / 100; + d.put("persenJasa", persenJasaAnestesiPBT + "% + " + persenAnestesi + "%"); + if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) + d.put("hargaJasa", persenPBT * persenJasa * Double.parseDouble(d.get("hargaJual").toString())); } else if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { d.put("persenJasa", persenJasaDokterUmumHD + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) @@ -1760,9 +1804,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel persenJasaDokterUmumHD / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (BEDAH_SENTRAL.equals(d.get("idDepartemen")) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { - d.put("persenJasa", persenOperatorIBS + "%"); + d.put("persenJasa", persenOperator + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + d.put("hargaJasa", persenOperator / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (BEDAH_SENTRAL.equals(d.get("idDepartemen")) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { d.put("persenJasa", persenAsistenIBS + "%");