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 b6df85a8..857454cf 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 @@ -595,6 +595,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * Mapping set awal persentase jasa remunerasi dan harga jasa remunerasi */ for (Map d : listRatedPay) { + d.put("isTermasukProporsi", true); double hargaJual = Double.parseDouble(d.get("hargaJual").toString()); if (Boolean.parseBoolean(d.get("isSelisihPaket").toString())) hargaJual -= Double.parseDouble(d.get("hargaDiskon").toString()); @@ -665,17 +666,21 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d, false); d.put("hargaJasa", hargaJasa.getNilai()); } else if (RADIOLOGI.equals(d.get("idDepartemen"))) { - RemunHargaJasa hargaJasa = hargaJasa(persenRadiologi / 100, hargaJual, d, false); - d.put("hargaJasa", hargaJasa.getNilai()); + d.put("hargaJasa", persenRadiologi / 100 * hargaJual); + if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) + d.put("isTermasukProporsi", false); } else if (REHAB_MEDIK.equals(d.get("idDepartemen"))) { - RemunHargaJasa hargaJasa = hargaJasa(persenRehabMedik / 100, hargaJual, d, false); - d.put("hargaJasa", hargaJasa.getNilai()); + d.put("hargaJasa", persenRehabMedik / 100 * hargaJual); + if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) + d.put("isTermasukProporsi", false); } else if (KONSULTASI.equals(d.get("idGolonganProduk"))) { - RemunHargaJasa hargaJasa = hargaJasa(persenKonsultasi / 100, hargaJual, d, false); - d.put("hargaJasa", hargaJasa.getNilai()); + d.put("hargaJasa", persenKonsultasi / 100 * hargaJual); + if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) + d.put("isTermasukProporsi", false); } else if (VISIT.equals(d.get("idGolonganProduk"))) { - RemunHargaJasa hargaJasa = hargaJasa(persenVisite / 100, hargaJual, d, false); - d.put("hargaJasa", hargaJasa.getNilai()); + d.put("hargaJasa", persenVisite / 100 * hargaJual); + if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) + d.put("isTermasukProporsi", false); } else if (drAnastesiList.contains(idPegawai) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d, false); d.put("hargaJasa", hargaJasa.getNilai()); @@ -689,16 +694,21 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * A rule for claimed <= Jul 31th 2023 */ RemunHargaJasa hargaJasa = hargaJasa(persenRemunLabGenetika / 100, hargaJual, d, false); - d.put("hargaJasa", hargaJasa.getNilai()); + d.put("hargaJasa", persenRemunLabGenetika / 100 * hargaJual); + if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) + d.put("isTermasukProporsi", false); } else if (Arrays.asList(GENETIKA).contains(Integer.parseInt(d.get("idRuangan").toString()))) { - RemunHargaJasa hargaJasa = hargaJasa(persenRemunLabGenetika / 100, hargaJual, d, false); - d.put("hargaJasa", hargaJasa.getNilai()); + d.put("hargaJasa", persenRemunLabGenetika / 100 * hargaJual); + if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) + d.put("isTermasukProporsi", false); } else if (drKkPatologiAnatomiList.contains(idPegawai)) { - RemunHargaJasa hargaJasa = hargaJasa(persenRemunDokterPA / 100, hargaJual, d, false); - d.put("hargaJasa", hargaJasa.getNilai()); + d.put("hargaJasa", persenRemunDokterPA / 100 * hargaJual); + if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) + d.put("isTermasukProporsi", false); } else if (LABORATORIUM.equals(d.get("idDepartemen"))) { - RemunHargaJasa hargaJasa = hargaJasa(persenLaboratorium / 100, hargaJual, d, false); - d.put("hargaJasa", hargaJasa.getNilai()); + d.put("hargaJasa", persenLaboratorium / 100 * hargaJual); + if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) + d.put("isTermasukProporsi", false); } else if (CommonUtil.isNotNullOrEmpty(d.get("idRuangan")) && Arrays.asList(ICU_NICU).contains(Integer.parseInt(d.get("idRuangan").toString()))) { double persenJasa = persenTindakan / 100; @@ -709,6 +719,11 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel d.put("hargaJasa", hargaJasa.getNilai()); } } + /* + * Filtered by proporsi jasa layanan + */ + listRatedPay = listRatedPay.stream().filter(d -> Boolean.parseBoolean(d.get("isTermasukProporsi").toString())) + .collect(Collectors.toList()); /* * Inisialisasi collect logbook klaim MPP */