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 4ce427bd..4843b136 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 @@ -594,6 +594,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()); @@ -664,12 +665,20 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel d.put("hargaJasa", persenAnestesi / 100 * hargaJual); } else if (RADIOLOGI.equals(d.get("idDepartemen"))) { 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"))) { d.put("hargaJasa", persenRehabMedik / 100 * hargaJual); + if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) + d.put("isTermasukProporsi", false); } else if (KONSULTASI.equals(d.get("idGolonganProduk"))) { d.put("hargaJasa", persenKonsultasi / 100 * hargaJual); + if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) + d.put("isTermasukProporsi", false); } else if (VISIT.equals(d.get("idGolonganProduk"))) { 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"))) { d.put("hargaJasa", persenTindakan / 100 * hargaJual); } else if (drAnastesiList.contains(idPegawai) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { @@ -678,12 +687,20 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel && idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { 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()))) { d.put("hargaJasa", persenRemunLabGenetika / 100 * hargaJual); + if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) + d.put("isTermasukProporsi", false); } else if (drKkPatologiAnatomiList.contains(idPegawai)) { d.put("hargaJasa", persenRemunDokterPA / 100 * hargaJual); + if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) + d.put("isTermasukProporsi", false); } else if (LABORATORIUM.equals(d.get("idDepartemen"))) { 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; @@ -692,6 +709,11 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel d.put("hargaJasa", persenTindakan / 100 * hargaJual); } } + /* + * Filtered by proporsi jasa layanan + */ + listRatedPay = listRatedPay.stream().filter(d -> Boolean.parseBoolean(d.get("isTermasukProporsi").toString())) + .collect(Collectors.toList()); /* * Inisialisasi collect logbook klaim MPP */