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 b2b0b3ca..0829aff6 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 @@ -26,7 +26,6 @@ import java.util.stream.Collectors; * Implement class for PelayananPasienService * * @author Generator - * @param */ @Service("pelayananPasienService") public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements PelayananPasienService { @@ -69,7 +68,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel @Override public Map savePelayananPasien(PelayananPasienVO vo) { - Map result = new HashMap(); + Map result = new HashMap<>(); PelayananPasien model = new PelayananPasien(); model = pelayananPasienConverter.transferVOToModel(vo, model); model.setPasien(antrianPasienDiPeriksaDao.finByNoIdAndTglRegistrasi(Short.parseShort("0"), @@ -145,7 +144,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel public Double calculateRemunWithFfs(Integer idKelPasien, Integer idDepartemen, Integer idLayanan, String namaLayanan, Integer tipePegawai, Double hargaJual, Double hargaDiskon, Double jumlahLayanan) { - Double result = 0.0; + double result; List idsKonsultasiDokterJaga = splitDataSettingDatafixed("pr_konsultasi_dokter_jaga"); @@ -254,7 +253,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } if (!remun.equals(0.0)) { mapRes.put("remunValue", remun); - mapRes.put("remunKurs", kursINA.format(remun).toString()); + mapRes.put("remunKurs", kursINA.format(remun)); result.add(mapRes); } } @@ -394,11 +393,11 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel Map result = new HashMap<>(); DateFormat df = new SimpleDateFormat("yyyy-MM"); DateTimeFormatter jamFormat = DateTimeFormatter.ofPattern("HH.mm"); - Date date = new Date(); - Date dateLine = new Date(); + Date date; + Date dateLine; try { date = df.parse(bulan); - dateLine = df.parse(GetSettingDataFixed("berlakuTargetJasaRemunDokter").toString()); + dateLine = df.parse(GetSettingDataFixed("berlakuTargetJasaRemunDokter")); } catch (ParseException e) { e.printStackTrace(); return null; @@ -426,23 +425,23 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel /* * Mendapatkan persentase jasa */ - Double persenOperatorIBS = Double.parseDouble(GetSettingDataFixed("persenRemunOperatorIBS").toString()); - Double persenAsistenIBS = Double.parseDouble(GetSettingDataFixed("persenRemunAsistenIBS").toString()); - Double persenAnestesiIBS = Double.parseDouble(GetSettingDataFixed("persenRemunAnestesiIBS").toString()); - Double persenRadiologi = Double.parseDouble(GetSettingDataFixed("persenRemunRadiologi").toString()); - Double persenLaboratorium = Double.parseDouble(GetSettingDataFixed("persenRemunLaboratorium").toString()); - Double persenRehabMedik = Double.parseDouble(GetSettingDataFixed("persenRemunRehabMedik").toString()); - Double persenKonsultasi = Double.parseDouble(GetSettingDataFixed("persenRemunKonsultasiDokter").toString()); - Double persenVisite = Double.parseDouble(GetSettingDataFixed("persenRemunVisiteDokter").toString()); - Double persenTindakan = Double.parseDouble(GetSettingDataFixed("persenRemunTindakanDokter").toString()); - Double persenTarifJasaBedah = Double.parseDouble(GetSettingDataFixed("persenTarifJasaBedah").toString()); - Double persenTarifJasaICU = Double.parseDouble(GetSettingDataFixed("persenTarifJasaICU").toString()); - Double persenRemunDokterPA = Double.parseDouble(GetSettingDataFixed("persenRemunDokterPA").toString()); - Double persenRemunDokterUmumHD = Double.parseDouble(GetSettingDataFixed("persenRemunDokterUmumHD").toString()); + double persenOperatorIBS = Double.parseDouble(GetSettingDataFixed("persenRemunOperatorIBS")); + double persenAsistenIBS = Double.parseDouble(GetSettingDataFixed("persenRemunAsistenIBS")); + double persenAnestesiIBS = Double.parseDouble(GetSettingDataFixed("persenRemunAnestesiIBS")); + double persenRadiologi = Double.parseDouble(GetSettingDataFixed("persenRemunRadiologi")); + double persenLaboratorium = Double.parseDouble(GetSettingDataFixed("persenRemunLaboratorium")); + double persenRehabMedik = Double.parseDouble(GetSettingDataFixed("persenRemunRehabMedik")); + double persenKonsultasi = Double.parseDouble(GetSettingDataFixed("persenRemunKonsultasiDokter")); + double persenVisite = Double.parseDouble(GetSettingDataFixed("persenRemunVisiteDokter")); + double persenTindakan = Double.parseDouble(GetSettingDataFixed("persenRemunTindakanDokter")); + double persenTarifJasaBedah = Double.parseDouble(GetSettingDataFixed("persenTarifJasaBedah")); + double persenTarifJasaICU = Double.parseDouble(GetSettingDataFixed("persenTarifJasaICU")); + double persenRemunDokterPA = Double.parseDouble(GetSettingDataFixed("persenRemunDokterPA")); + double persenRemunDokterUmumHD = Double.parseDouble(GetSettingDataFixed("persenRemunDokterUmumHD")); /* * Persiapan filter logic remunerasi */ - List listDetailJenisProduk = new ArrayList<>(); + List listDetailJenisProduk; List listDetailJenisProdukException = new ArrayList<>(); List drKkPediatrikGDList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PEDIATRIK_GD); List drAnastesiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_ANESTESI); @@ -507,17 +506,20 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel && Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { d.put("hargaJasa", persenRemunDokterUmumHD / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen")) - && Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien")) + && Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS) + .contains(Integer.parseInt(d.get("idKelompokPasien").toString())) && Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { double persenJasa = persenOperatorIBS / 100; d.put("hargaJasa", persenJasa * persenTarifIBS * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen")) - && Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien")) + && Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS) + .contains(Integer.parseInt(d.get("idKelompokPasien").toString())) && Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { double persenJasa = persenAsistenIBS / 100; d.put("hargaJasa", persenJasa * persenTarifIBS * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen")) - && Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien")) + && Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS) + .contains(Integer.parseInt(d.get("idKelompokPasien").toString())) && Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { double persenJasa = persenAnestesiIBS / 100; d.put("hargaJasa", persenJasa * persenTarifIBS * Double.parseDouble(d.get("hargaJual").toString())); @@ -542,7 +544,8 @@ 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 (Arrays.asList(Master.Ruangan.ICU_NICU).contains(d.get("idRuangan"))) { + } else if (Arrays.asList(Master.Ruangan.ICU_NICU) + .contains(Integer.parseInt(d.get("idRuangan").toString()))) { double persenJasa = persenTindakan / 100; d.put("hargaJasa", persenJasa * persenTarifICU * Double.parseDouble(d.get("hargaJual").toString())); } else { @@ -554,7 +557,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ List> rawDataBpjs0 = new ArrayList<>(); for (Map d : listData) - if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien"))) + if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS) + .contains(Integer.parseInt(d.get("idKelompokPasien").toString()))) rawDataBpjs0.add(d); /* * Filter tindakan operasi untuk pasien BPJS hanya diambil tarif @@ -572,13 +576,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel List listIdPelayananPasien = new ArrayList<>(); List listIdPasienDaftar = new ArrayList<>(); for (Map b : bpjsBedahSentral) - if (!listIdPasienDaftar.contains(b.get("idPasienDaftar"))) { + if (!listIdPasienDaftar.contains(b.get("idPasienDaftar").toString())) { listIdPasienDaftar.add(b.get("idPasienDaftar").toString()); listIdPelayananPasien.add(b.get("idPelayananPasien").toString()); } for (Map d : rawDataBpjs0) if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen")) - && listIdPelayananPasien.contains(d.get("idPelayananPasien"))) { + && listIdPelayananPasien.contains(d.get("idPelayananPasien").toString())) { rawDataBpjs1.add(d); } else if (!Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))) { rawDataBpjs1.add(d); @@ -652,7 +656,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ List> listEpisode = new ArrayList<>(); for (Map d : rawDataBpjs2) { - if (Arrays.asList(Master.Ruangan.ICU_NICU).contains(d.get("idRuangan")) + if (Arrays.asList(Master.Ruangan.ICU_NICU).contains(Integer.parseInt(d.get("idRuangan").toString())) && Master.GolonganProduk.VISIT.equals(d.get("idGolonganProduk"))) { boolean existEpisode = false; for (Map e : listEpisode) @@ -677,7 +681,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel for (Map d : rawDataBpjs2) { int count = 1; for (Map e : listEpisode) - if (Arrays.asList(Master.Ruangan.ICU_NICU).contains(d.get("idRuangan")) + if (Arrays.asList(Master.Ruangan.ICU_NICU).contains(Integer.parseInt(d.get("idRuangan").toString())) && Master.GolonganProduk.VISIT.equals(d.get("idGolonganProduk"))) { if (d.get("idPasienDaftar").toString().equals(e.get("id")) && Integer.valueOf(d.get("idProduk").toString()).equals(e.get("idProduk")) @@ -692,7 +696,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } else { break; } - if (!Arrays.asList(Master.Ruangan.ICU_NICU).contains(d.get("idRuangan")) + if (!Arrays.asList(Master.Ruangan.ICU_NICU).contains(Integer.parseInt(d.get("idRuangan").toString())) || !Master.GolonganProduk.VISIT.equals(d.get("idGolonganProduk")) && count == 1) rawDataBpjs3.add(d); } @@ -711,8 +715,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ List> listEpisode = new ArrayList<>(); for (Map d : rawDataBpjs3) { - if (Arrays.asList(Master.Ruangan.ICU_NICU).contains(d.get("idRuangan")) - && idsMonitoringHemodinamikGagalOrgan.contains(d.get("idProduk"))) { + if (Arrays.asList(Master.Ruangan.ICU_NICU).contains(Integer.parseInt(d.get("idRuangan").toString())) + && idsMonitoringHemodinamikGagalOrgan + .contains(Integer.parseInt(d.get("idProduk").toString()))) { boolean existEpisode = false; for (Map e : listEpisode) if (e.get("id").toString().equals(d.get("idPasienDaftar")) @@ -736,8 +741,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel for (Map d : rawDataBpjs3) { int count = 1; for (Map e : listEpisode) - if (Arrays.asList(Master.Ruangan.ICU_NICU).contains(d.get("idRuangan")) - && idsMonitoringHemodinamikGagalOrgan.contains(d.get("idProduk"))) { + if (Arrays.asList(Master.Ruangan.ICU_NICU).contains(Integer.parseInt(d.get("idRuangan").toString())) + && idsMonitoringHemodinamikGagalOrgan + .contains(Integer.parseInt(d.get("idProduk").toString()))) { if (d.get("idPasienDaftar").toString().equals(e.get("id")) && Integer.valueOf(d.get("idProduk").toString()).equals(e.get("idProduk")) && d.get("tanggal").toString().equals(e.get("tanggal")) @@ -751,8 +757,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } else { break; } - if (!Arrays.asList(Master.Ruangan.ICU_NICU).contains(d.get("idRuangan")) - || !idsMonitoringHemodinamikGagalOrgan.contains(d.get("idProduk")) && count == 1) + if (!Arrays.asList(Master.Ruangan.ICU_NICU).contains(Integer.parseInt(d.get("idRuangan").toString())) + || !idsMonitoringHemodinamikGagalOrgan.contains(Integer.parseInt(d.get("idProduk").toString())) + && count == 1) rawDataBpjs4.add(d); } } else { @@ -772,7 +779,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel for (Map d : rawDataBpjs4) { if ((Master.Ruangan.NICU.equals(d.get("idRuangan")) || Master.Ruangan.NICU_COVID.equals(d.get("idRuangan"))) - && idsMonitoringIntervensi.contains(d.get("idProduk"))) { + && idsMonitoringIntervensi.contains(Integer.parseInt(d.get("idProduk").toString()))) { boolean existEpisode = false; for (Map e : listEpisode) if (e.get("id").toString().equals(d.get("idPasienDaftar")) @@ -798,7 +805,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel for (Map e : listEpisode) if ((Master.Ruangan.NICU.equals(d.get("idRuangan")) || Master.Ruangan.NICU_COVID.equals(d.get("idRuangan"))) - && idsMonitoringIntervensi.contains(d.get("idProduk"))) { + && idsMonitoringIntervensi.contains(Integer.parseInt(d.get("idProduk").toString()))) { if (d.get("idPasienDaftar").toString().equals(e.get("id")) && Integer.valueOf(d.get("idProduk").toString()).equals(e.get("idProduk")) && d.get("tanggal").toString().equals(e.get("tanggal")) @@ -814,7 +821,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel } if (((!Master.Ruangan.NICU.equals(d.get("idRuangan")) && !Master.Ruangan.NICU_COVID.equals(d.get("idRuangan"))) - || !idsMonitoringIntervensi.contains(d.get("idProduk"))) && count == 1) + || !idsMonitoringIntervensi.contains(Integer.parseInt(d.get("idProduk").toString()))) + && count == 1) rawDataBpjs5.add(d); } } else { @@ -825,7 +833,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ List> listEpisode = new ArrayList<>(); for (Map d : listData) { - if (!Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien")) + if (!Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS) + .contains(Integer.parseInt(d.get("idKelompokPasien").toString())) && Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))) { boolean existEpisode = false; for (Map e : listEpisode) @@ -847,7 +856,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ for (Map d : listData) { for (Map e : listEpisode) { - if (!Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien")) + if (!Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS) + .contains(Integer.parseInt(d.get("idKelompokPasien").toString())) && Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen")) && d.get("idPasienDaftar").toString().equals(e.get("id")) && Integer.valueOf(d.get("idProduk").toString()).equals(e.get("idProduk"))) { @@ -857,16 +867,16 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { d.put("hargaJasa", - 1.0 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { d.put("hargaJasa", - 1.0 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { d.put("hargaJasa", - 1.0 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else { d.put("hargaJasa", - 1.0 * persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString())); + persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString())); } int count = Integer.parseInt(e.get("count").toString()); e.put("count", ++count); @@ -1007,7 +1017,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel LocalDateTime tglJamPelayanan = ((Date) d.get("tglPelayanan")).toInstant() .atZone(ZoneId.systemDefault()).toLocalDateTime(); for (Map j : listJadwalKerja) { - if (!Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien")) + if (!Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS) + .contains(Integer.parseInt(d.get("idKelompokPasien").toString())) && CommonUtil.isNotNullOrEmpty(j.get("jamMasuk"))) { LocalDate tglMasuk = ((Date) j.get("tanggal")).toInstant().atZone(ZoneId.systemDefault()) .toLocalDate(); @@ -1039,7 +1050,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel for (Map j : listJadwalKerja) { LocalDate tglMasuk = ((Date) j.get("tanggal")).toInstant().atZone(ZoneId.systemDefault()) .toLocalDate(); - if (!Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien"))) + if (!Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS) + .contains(Integer.parseInt(d.get("idKelompokPasien").toString()))) if (CommonUtil.isNullOrEmpty(j.get("jamMasuk"))) { if (tglPelayanan.isEqual(tglMasuk)) { listDataLuarJamKerja.add(d); @@ -1068,39 +1080,36 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * Offer data yang sudah diurutkan dalam queue */ Queue> queuePelayanan = new ArrayDeque<>(); - rawDataBpjs5.forEach(pelayanan -> { - queuePelayanan.offer(pelayanan); - }); - listDataJamKerja.forEach(pelayanan -> { - queuePelayanan.offer(pelayanan); - }); - listDataLuarJamKerja.forEach(pelayanan -> { - queuePelayanan.offer(pelayanan); - }); + rawDataBpjs5.forEach(queuePelayanan::offer); + listDataJamKerja.forEach(queuePelayanan::offer); + listDataLuarJamKerja.forEach(queuePelayanan::offer); /* * Memisahkan data diurutkan menjadi logbook remun dan logbook ffs */ List> listPelayananRemun = new ArrayList<>(); List> listPelayananFfs = new ArrayList<>(); - Double capaianRemun = 0.0; + double capaianRemun = 0.0; if (pegawaiDao.getPegawaiByKategoryPegawai(Arrays.asList(Master.KategoryPegawai.DOKTER_LUAR)) .contains(idPegawai)) { /* * Dokter luar hanya mendapatkan ffs */ for (Map next = queuePelayanan.poll(); next != null; next = queuePelayanan.poll()) - if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(next.get("idKelompokPasien")) + if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS) + .contains(Integer.parseInt(next.get("idKelompokPasien").toString())) && idsDokterBPJSffs.contains(idPegawai)) { /* * dokter-dokter tertentu yang hanya dapat pasien bpjs */ listPelayananFfs.add(next); - } else if (!Arrays.asList(Master.JenisProduk.NONLOGBOOK).contains(next.get("idJenisProduk"))) { + } else if (!Arrays.asList(Master.JenisProduk.NONLOGBOOK) + .contains(Integer.parseInt(next.get("idJenisProduk").toString()))) { listPelayananFfs.add(next); } } else { for (Map next = queuePelayanan.poll(); next != null; next = queuePelayanan.poll()) - if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(next.get("idKelompokPasien"))) { + if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS) + .contains(Integer.parseInt(next.get("idKelompokPasien").toString()))) { /* * Urutan alokasi bpjs sebagai urutan prioritas */ @@ -1108,92 +1117,101 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel /* * Bpjs untuk dokter-dokter kk pediatrik gawat darurat */ - if (idsDokterPediatrikGD.contains(next.get("idProduk"))) { + if (idsDokterPediatrikGD.contains(Integer.parseInt(next.get("idProduk").toString()))) { /* * Dibatasi oleh daftar tindakan tertentu */ listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } else if ((Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_UTAMA) - .contains(next.get("idDepartemen")) + .contains(Integer.parseInt(next.get("idDepartemen").toString())) || Master.GolonganProduk.VISIT.equals(next.get("idGolonganProduk"))) - && !Arrays.asList(Master.JenisProduk.NONLOGBOOK).contains(next.get("idJenisProduk"))) { + && !Arrays.asList(Master.JenisProduk.NONLOGBOOK) + .contains(Integer.parseInt(next.get("idJenisProduk").toString()))) { /* * Dibatasi hanya di rawat jalan atau visite saja */ listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } - } else if (!drKkPediatrikGDList.contains(idPegawai)) { + } else { /* * Selain dokter-dokter kk pediatrik gawat darurat */ - if (listDetailJenisProduk.contains(next.get("idDetailJenisProduk"))) { + if (listDetailJenisProduk + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { /* * Dibatasi oleh daftar jenis tindakan tertentu */ - if (idsRegDJPPenunjangPA.contains(next.get("idDetailJenisProduk")) - || idsRegDJPPenunjangPK.contains(next.get("idDetailJenisProduk"))) { + if (idsRegDJPPenunjangPA + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) + || idsRegDJPPenunjangPK + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { /* * Pengecualian daftar tindakan penunjang yang * bebas klaim */ listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } else if (!Arrays.asList(Master.JenisProduk.NONLOGBOOK) - .contains(next.get("idJenisProduk"))) { + .contains(Integer.parseInt(next.get("idJenisProduk").toString()))) { listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } - } else if (!listDetailJenisProduk.contains(next.get("idDetailJenisProduk")) + } else if (!listDetailJenisProduk + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) && Master.Departemen.IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai) - && idsDokterUmumIGD.contains(next.get("idProduk"))) { + && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))) { /* * Aturan dokter ksm umum di igd */ listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); - } else if (!listDetailJenisProduk.contains(next.get("idDetailJenisProduk")) + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + } else if (!listDetailJenisProduk + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) && drKkPerinatologiList.contains(idPegawai) - && idsDokterPerinatologi.contains(next.get("idProduk"))) { + && idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))) { /* * Aturan dokter kk perinatologi dengan pembatasan * tindakan tertentu */ listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } else if (drAnastesiList.contains(idPegawai)) { - if (idsPenunjangBukanAnestesi.contains(next.get("idProduk"))) { + if (idsPenunjangBukanAnestesi.contains(Integer.parseInt(next.get("idProduk").toString()))) { /* * Aturan dokter kk anestesi dengan pembatasan * tindakan tertentu */ listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } else if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA .equals(next.get("idJenisPelaksana")) && Master.Departemen.RADIOLOGI.equals(next.get("idDepartemen"))) { listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } } else if (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException) - && listDetailJenisProdukException.contains(next.get("idDetailJenisProduk"))) { + && listDetailJenisProdukException + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { /* * Diluar pembatasan jenis produk */ - if (idsRegDJPPenunjangPA.contains(next.get("idDetailJenisProduk")) - || idsRegDJPPenunjangPK.contains(next.get("idDetailJenisProduk"))) { + if (idsRegDJPPenunjangPA + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) + || idsRegDJPPenunjangPK + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { /* * Pengecualian daftar tindakan penunjang yang * bebas klaim */ listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } else if (!Arrays.asList(Master.JenisProduk.NONLOGBOOK) - .contains(next.get("idJenisProduk"))) { + .contains(Integer.parseInt(next.get("idJenisProduk").toString()))) { listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } } } @@ -1206,92 +1224,101 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel /* * Bpjs untuk dokter-dokter kk pediatrik gawat darurat */ - if (idsDokterPediatrikGD.contains(next.get("idProduk"))) { + if (idsDokterPediatrikGD.contains(Integer.parseInt(next.get("idProduk").toString()))) { /* * Dibatasi oleh daftar tindakan tertentu */ listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } else if ((Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_UTAMA) - .contains(next.get("idDepartemen")) + .contains(Integer.parseInt(next.get("idDepartemen").toString())) || Master.GolonganProduk.VISIT.equals(next.get("idGolonganProduk"))) - && !Arrays.asList(Master.JenisProduk.NONLOGBOOK).contains(next.get("idJenisProduk"))) { + && !Arrays.asList(Master.JenisProduk.NONLOGBOOK) + .contains(Integer.parseInt(next.get("idJenisProduk").toString()))) { /* * Dibatasi hanya di rawat jalan atau visite saja */ listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } - } else if (!drKkPediatrikGDList.contains(idPegawai)) { + } else { /* * Selain dokter-dokter kk pediatrik gawat darurat */ - if (listDetailJenisProduk.contains(next.get("idDetailJenisProduk"))) { + if (listDetailJenisProduk + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { /* * Dibatasi oleh daftar jenis tindakan tertentu */ - if (idsRegDJPPenunjangPA.contains(next.get("idDetailJenisProduk")) - || idsRegDJPPenunjangPK.contains(next.get("idDetailJenisProduk"))) { + if (idsRegDJPPenunjangPA + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) + || idsRegDJPPenunjangPK + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { /* * Pengecualian daftar tindakan penunjang yang * bebas klaim */ listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } else if (!Arrays.asList(Master.JenisProduk.NONLOGBOOK) - .contains(next.get("idJenisProduk"))) { + .contains(Integer.parseInt(next.get("idJenisProduk").toString()))) { listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } - } else if (!listDetailJenisProduk.contains(next.get("idDetailJenisProduk")) + } else if (!listDetailJenisProduk + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) && Master.Departemen.IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai) - && idsDokterUmumIGD.contains(next.get("idProduk"))) { + && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))) { /* * Aturan dokter ksm umum di igd */ listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); - } else if (!listDetailJenisProduk.contains(next.get("idDetailJenisProduk")) + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); + } else if (!listDetailJenisProduk + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) && drKkPerinatologiList.contains(idPegawai) - && idsDokterPerinatologi.contains(next.get("idProduk"))) { + && idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))) { /* * Aturan dokter kk perinatologi dengan pembatasan * tindakan tertentu */ listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } else if (drAnastesiList.contains(idPegawai)) { - if (idsPenunjangBukanAnestesi.contains(next.get("idProduk"))) { + if (idsPenunjangBukanAnestesi.contains(Integer.parseInt(next.get("idProduk").toString()))) { /* * Aturan dokter kk anestesi dengan pembatasan * tindakan tertentu */ listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } else if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA .equals(next.get("idJenisPelaksana")) && Master.Departemen.RADIOLOGI.equals(next.get("idDepartemen"))) { listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } } else if (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException) - && listDetailJenisProdukException.contains(next.get("idDetailJenisProduk"))) { + && listDetailJenisProdukException + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { /* * Diluar pembatasan jenis produk */ - if (idsRegDJPPenunjangPA.contains(next.get("idDetailJenisProduk")) - || idsRegDJPPenunjangPK.contains(next.get("idDetailJenisProduk"))) { + if (idsRegDJPPenunjangPA + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) + || idsRegDJPPenunjangPK + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { /* * Pengecualian daftar tindakan penunjang yang * bebas klaim */ listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } else if (!Arrays.asList(Master.JenisProduk.NONLOGBOOK) - .contains(next.get("idJenisProduk"))) { + .contains(Integer.parseInt(next.get("idJenisProduk").toString()))) { listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } } } @@ -1303,83 +1330,92 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel /* * Ffs untuk dokter-dokter kk pediatrik gawat darurat */ - if (idsDokterPediatrikGD.contains(next.get("idProduk"))) { + if (idsDokterPediatrikGD.contains(Integer.parseInt(next.get("idProduk").toString()))) { /* * Dibatasi oleh daftar tindakan tertentu */ listPelayananFfs.add(next); } else if ((Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_UTAMA) - .contains(next.get("idDepartemen")) + .contains(Integer.parseInt(next.get("idDepartemen").toString())) || Master.GolonganProduk.VISIT.equals(next.get("idGolonganProduk"))) - && !Arrays.asList(Master.JenisProduk.NONLOGBOOK).contains(next.get("idJenisProduk"))) { + && !Arrays.asList(Master.JenisProduk.NONLOGBOOK) + .contains(Integer.parseInt(next.get("idJenisProduk").toString()))) { /* * Dibatasi hanya di rawat jalan atau visite saja */ listPelayananFfs.add(next); } - } else if (!drKkPediatrikGDList.contains(idPegawai)) { + } else { /* * Selain dokter-dokter kk pediatrik gawat darurat */ - if (listDetailJenisProduk.contains(next.get("idDetailJenisProduk"))) { + if (listDetailJenisProduk + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { /* * Dibatasi oleh daftar jenis tindakan tertentu */ - if (idsRegDJPPenunjangPA.contains(next.get("idDetailJenisProduk")) - || idsRegDJPPenunjangPK.contains(next.get("idDetailJenisProduk"))) { + if (idsRegDJPPenunjangPA + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) + || idsRegDJPPenunjangPK + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { /* * Pengecualian daftar tindakan penunjang yang * bebas klaim */ listPelayananFfs.add(next); } else if (!Arrays.asList(Master.JenisProduk.NONLOGBOOK) - .contains(next.get("idJenisProduk"))) { + .contains(Integer.parseInt(next.get("idJenisProduk").toString()))) { listPelayananFfs.add(next); } - } else if (!listDetailJenisProduk.contains(next.get("idDetailJenisProduk")) + } else if (!listDetailJenisProduk + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) && Master.Departemen.IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai) - && idsDokterUmumIGD.contains(next.get("idProduk"))) { + && idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))) { /* * Aturan dokter ksm umum di igd */ listPelayananFfs.add(next); - } else if (!listDetailJenisProduk.contains(next.get("idDetailJenisProduk")) + } else if (!listDetailJenisProduk + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) && drKkPerinatologiList.contains(idPegawai) - && idsDokterPerinatologi.contains(next.get("idProduk"))) { + && idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))) { /* * Aturan dokter kk perinatologi dengan pembatasan * tindakan tertentu */ listPelayananFfs.add(next); } else if (drAnastesiList.contains(idPegawai)) { - if (idsPenunjangBukanAnestesi.contains(next.get("idProduk"))) { + if (idsPenunjangBukanAnestesi.contains(Integer.parseInt(next.get("idProduk").toString()))) { /* * Aturan dokter kk anestesi dengan pembatasan * tindakan tertentu */ listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } else if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA .equals(next.get("idJenisPelaksana")) && Master.Departemen.RADIOLOGI.equals(next.get("idDepartemen"))) { listPelayananRemun.add(next); - capaianRemun += Double.valueOf(next.get("hargaJasa").toString()); + capaianRemun += Double.parseDouble(next.get("hargaJasa").toString()); } } else if (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException) - && listDetailJenisProdukException.contains(next.get("idDetailJenisProduk"))) { + && listDetailJenisProdukException + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { /* * Diluar pembatasan jenis produk */ - if (idsRegDJPPenunjangPA.contains(next.get("idDetailJenisProduk")) - || idsRegDJPPenunjangPK.contains(next.get("idDetailJenisProduk"))) { + if (idsRegDJPPenunjangPA + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString())) + || idsRegDJPPenunjangPK + .contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) { /* * Pengecualian daftar tindakan penunjang yang * bebas klaim */ listPelayananFfs.add(next); } else if (!Arrays.asList(Master.JenisProduk.NONLOGBOOK) - .contains(next.get("idJenisProduk"))) { + .contains(Integer.parseInt(next.get("idJenisProduk").toString()))) { listPelayananFfs.add(next); } } @@ -1422,7 +1458,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel public Map logbookRemunTarifDokter(Integer idPegawai, String bulan) { Map result = new HashMap<>(); List> dataResult = new ArrayList<>(); - List> dataTanggal = new ArrayList<>(); List listIdProduk = new ArrayList<>(); List listPersenJasa = new ArrayList<>(); List listHargaJasa = new ArrayList<>(); @@ -1437,19 +1472,19 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel /* * Mendapatkan persentase jasa */ - Double persenOperatorIBS = Double.parseDouble(GetSettingDataFixed("persenRemunOperatorIBS").toString()); - Double persenAsistenIBS = Double.parseDouble(GetSettingDataFixed("persenRemunAsistenIBS").toString()); - Double persenAnestesiIBS = Double.parseDouble(GetSettingDataFixed("persenRemunAnestesiIBS").toString()); - Double persenRadiologi = Double.parseDouble(GetSettingDataFixed("persenRemunRadiologi").toString()); - Double persenLaboratorium = Double.parseDouble(GetSettingDataFixed("persenRemunLaboratorium").toString()); - Double persenRehabMedik = Double.parseDouble(GetSettingDataFixed("persenRemunRehabMedik").toString()); - Double persenKonsultasi = Double.parseDouble(GetSettingDataFixed("persenRemunKonsultasiDokter").toString()); - Double persenVisite = Double.parseDouble(GetSettingDataFixed("persenRemunVisiteDokter").toString()); - Double persenTindakan = Double.parseDouble(GetSettingDataFixed("persenRemunTindakanDokter").toString()); - Double persenTarifJasaBedah = Double.parseDouble(GetSettingDataFixed("persenTarifJasaBedah").toString()); - Double persenTarifJasaICU = Double.parseDouble(GetSettingDataFixed("persenTarifJasaICU").toString()); - Double persenRemunDokterPA = Double.parseDouble(GetSettingDataFixed("persenRemunDokterPA").toString()); - Double persenRemunDokterUmumHD = Double.parseDouble(GetSettingDataFixed("persenRemunDokterUmumHD").toString()); + double persenOperatorIBS = Double.parseDouble(GetSettingDataFixed("persenRemunOperatorIBS")); + double persenAsistenIBS = Double.parseDouble(GetSettingDataFixed("persenRemunAsistenIBS")); + double persenAnestesiIBS = Double.parseDouble(GetSettingDataFixed("persenRemunAnestesiIBS")); + double persenRadiologi = Double.parseDouble(GetSettingDataFixed("persenRemunRadiologi")); + double persenLaboratorium = Double.parseDouble(GetSettingDataFixed("persenRemunLaboratorium")); + double persenRehabMedik = Double.parseDouble(GetSettingDataFixed("persenRemunRehabMedik")); + double persenKonsultasi = Double.parseDouble(GetSettingDataFixed("persenRemunKonsultasiDokter")); + double persenVisite = Double.parseDouble(GetSettingDataFixed("persenRemunVisiteDokter")); + double persenTindakan = Double.parseDouble(GetSettingDataFixed("persenRemunTindakanDokter")); + double persenTarifJasaBedah = Double.parseDouble(GetSettingDataFixed("persenTarifJasaBedah")); + double persenTarifJasaICU = Double.parseDouble(GetSettingDataFixed("persenTarifJasaICU")); + double persenRemunDokterPA = Double.parseDouble(GetSettingDataFixed("persenRemunDokterPA")); + double persenRemunDokterUmumHD = Double.parseDouble(GetSettingDataFixed("persenRemunDokterUmumHD")); /* * Persiapan filter logic remunerasi */ @@ -1467,77 +1502,81 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel for (Map d : listData) { if (drKsmUmumList.contains(idPegawai) && Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { - d.put("persenJasa", persenRemunDokterUmumHD.toString() + "%"); + d.put("persenJasa", persenRemunDokterUmumHD + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenRemunDokterUmumHD / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen")) - && Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien")) + && Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS) + .contains(Integer.parseInt(d.get("idKelompokPasien").toString())) && Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { double persenJasa = persenOperatorIBS / 100; - d.put("persenJasa", persenTarifJasaBedah.toString() + "% + " + persenOperatorIBS.toString() + "%"); + d.put("persenJasa", persenTarifJasaBedah + "% + " + persenOperatorIBS + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenJasa * persenTarifIBS * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen")) - && Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien")) + && Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS) + .contains(Integer.parseInt(d.get("idKelompokPasien").toString())) && Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { double persenJasa = persenAsistenIBS / 100; - d.put("persenJasa", persenTarifJasaBedah.toString() + "% + " + persenAsistenIBS.toString() + "%"); + d.put("persenJasa", persenTarifJasaBedah + "% + " + persenAsistenIBS + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenJasa * persenTarifIBS * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen")) - && Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien")) + && Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS) + .contains(Integer.parseInt(d.get("idKelompokPasien").toString())) && Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { double persenJasa = persenAnestesiIBS / 100; - d.put("persenJasa", persenTarifJasaBedah.toString() + "% + " + persenAnestesiIBS.toString() + "%"); + d.put("persenJasa", persenTarifJasaBedah + "% + " + persenAnestesiIBS + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenJasa * persenTarifIBS * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen")) && Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { - d.put("persenJasa", persenOperatorIBS.toString() + "%"); + d.put("persenJasa", persenOperatorIBS + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen")) && Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { - d.put("persenJasa", persenAsistenIBS.toString() + "%"); + d.put("persenJasa", persenAsistenIBS + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen")) && Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { - d.put("persenJasa", persenAnestesiIBS.toString() + "%"); + d.put("persenJasa", persenAnestesiIBS + "%"); 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() + "%"); + d.put("persenJasa", persenRadiologi + "%"); 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() + "%"); + d.put("persenJasa", persenRehabMedik + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenRehabMedik / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.GolonganProduk.KONSULTASI.equals(d.get("idGolonganProduk"))) { - d.put("persenJasa", persenKonsultasi.toString() + "%"); + d.put("persenJasa", persenKonsultasi + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenKonsultasi / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.GolonganProduk.VISIT.equals(d.get("idGolonganProduk"))) { - d.put("persenJasa", persenVisite.toString() + "%"); + d.put("persenJasa", persenVisite + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenVisite / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (drKkPatologiAnatomiList.contains(idPegawai)) { - d.put("persenJasa", persenRemunDokterPA.toString() + "%"); + d.put("persenJasa", persenRemunDokterPA + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenRemunDokterPA / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.Departemen.LABORATORIUM.equals(d.get("idDepartemen"))) { - d.put("persenJasa", persenLaboratorium.toString() + "%"); + d.put("persenJasa", persenLaboratorium + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenLaboratorium / 100 * Double.parseDouble(d.get("hargaJual").toString())); - } else if (Arrays.asList(Master.Ruangan.ICU_NICU).contains(d.get("idRuangan"))) { + } else if (Arrays.asList(Master.Ruangan.ICU_NICU) + .contains(Integer.parseInt(d.get("idRuangan").toString()))) { double persenJasa = persenTindakan / 100; - d.put("persenJasa", persenTarifJasaICU.toString() + "% + " + persenTindakan.toString() + "%"); + d.put("persenJasa", persenTarifJasaICU + "% + " + persenTindakan + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenJasa * persenTarifICU * Double.parseDouble(d.get("hargaJual").toString())); } else { - d.put("persenJasa", persenTindakan.toString() + "%"); + d.put("persenJasa", persenTindakan + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString())); } @@ -1546,23 +1585,23 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * Populate data filter */ listData.forEach(d -> { - if (!listIdProduk.contains(d.get("idProduk"))) + if (!listIdProduk.contains(Integer.parseInt(d.get("idProduk").toString()))) listIdProduk.add(Integer.valueOf(d.get("idProduk").toString())); - if (!listPersenJasa.contains(d.get("persenJasa"))) + if (!listPersenJasa.contains(d.get("persenJasa").toString())) listPersenJasa.add(d.get("persenJasa").toString()); - if (!listHargaJasa.contains(d.get("hargaJasa"))) + if (!listHargaJasa.contains(Double.parseDouble(d.get("hargaJasa").toString()))) listHargaJasa.add(Double.valueOf(d.get("hargaJasa").toString())); - if (!listHargaJual.contains(d.get("hargaJual"))) + if (!listHargaJual.contains(Double.parseDouble(d.get("hargaJual").toString()))) listHargaJual.add(Double.valueOf(d.get("hargaJual").toString())); - if (!listIdKelompokPasien.contains(d.get("idKelompokPasien"))) + if (!listIdKelompokPasien.contains(Integer.parseInt(d.get("idKelompokPasien").toString()))) listIdKelompokPasien.add(Integer.valueOf(d.get("idKelompokPasien").toString())); - if (!listTanggal.contains(d.get("tanggal"))) + if (!listTanggal.contains(d.get("tanggal").toString())) listTanggal.add(d.get("tanggal").toString()); }); /* * Pengelompokkan tanggal pelayanan */ - dataTanggal = groupingTanggalRemun(listData); + List> dataTanggal = groupingTanggalRemun(listData); /* * Pengelompokkan produk layanan */ @@ -1574,7 +1613,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel List> detail = new ArrayList<>(); int counter = 0; double jumlah = 0.0; - double jumlahHargaJasa = 0.0; + double jumlahHargaJasa; for (Map map : dataTanggal) { Map mapCount = new HashMap<>(); if (idProduk.equals(map.get("idProduk")) && persenJasa.equals(map.get("persenJasa")) @@ -1648,7 +1687,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel @Override public List> logbookFfsTarifDokter(Integer idPegawai, String bulan) { List> result = new ArrayList<>(); - List> dataTanggal = new ArrayList<>(); List listIdProduk = new ArrayList<>(); List listPersenJasa = new ArrayList<>(); List listHargaJasa = new ArrayList<>(); @@ -1662,18 +1700,18 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel /* * Mendapatkan persentase jasa */ - Double persenBPJS = Double.parseDouble(GetSettingDataFixed("persenJasaBPJS").toString()); - Double persenOperatorIBS = Double.parseDouble(GetSettingDataFixed("persenJasaOperatorIBS").toString()); - Double persenAsistenIBS = Double.parseDouble(GetSettingDataFixed("persenJasaAsistenIBS").toString()); - Double persenAnestesiIBS = Double.parseDouble(GetSettingDataFixed("persenJasaAnestesiIBS").toString()); - Double persenRadiologi = Double.parseDouble(GetSettingDataFixed("persenJasaRadiologi").toString()); - Double persenLaboratorium = Double.parseDouble(GetSettingDataFixed("persenJasaLaboratorium").toString()); - Double persenRehabMedik = Double.parseDouble(GetSettingDataFixed("persenJasaRehabMedik").toString()); - Double persenKonsultasi = Double.parseDouble(GetSettingDataFixed("persenJasaKonsultasiDokter").toString()); - Double persenVisite = Double.parseDouble(GetSettingDataFixed("persenJasaVisiteDokter").toString()); - Double persenTindakan = Double.parseDouble(GetSettingDataFixed("persenJasaTindakanDokter").toString()); - Double persenJasaDokterPA = Double.parseDouble(GetSettingDataFixed("persenJasaDokterPA").toString()); - Double persenJasaDokterUmumHD = Double.parseDouble(GetSettingDataFixed("persenJasaDokterUmumHD").toString()); + double persenBPJS = Double.parseDouble(GetSettingDataFixed("persenJasaBPJS")); + double persenOperatorIBS = Double.parseDouble(GetSettingDataFixed("persenJasaOperatorIBS")); + double persenAsistenIBS = Double.parseDouble(GetSettingDataFixed("persenJasaAsistenIBS")); + double persenAnestesiIBS = Double.parseDouble(GetSettingDataFixed("persenJasaAnestesiIBS")); + double persenRadiologi = Double.parseDouble(GetSettingDataFixed("persenJasaRadiologi")); + double persenLaboratorium = Double.parseDouble(GetSettingDataFixed("persenJasaLaboratorium")); + double persenRehabMedik = Double.parseDouble(GetSettingDataFixed("persenJasaRehabMedik")); + double persenKonsultasi = Double.parseDouble(GetSettingDataFixed("persenJasaKonsultasiDokter")); + double persenVisite = Double.parseDouble(GetSettingDataFixed("persenJasaVisiteDokter")); + double persenTindakan = Double.parseDouble(GetSettingDataFixed("persenJasaTindakanDokter")); + double persenJasaDokterPA = Double.parseDouble(GetSettingDataFixed("persenJasaDokterPA")); + double persenJasaDokterUmumHD = Double.parseDouble(GetSettingDataFixed("persenJasaDokterUmumHD")); /* * Persiapan filter logic remunerasi */ @@ -1684,12 +1722,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * Mapping persentase jasa remunerasi */ for (Map d : listData) { - if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien"))) { + if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS) + .contains(Integer.parseInt(d.get("idKelompokPasien").toString()))) { /* * Set persen jasa dokter luar yang klaim ffs dengan persen jasa * dari tarif total */ - d.put("persenJasa", persenBPJS.toString() + "%"); + d.put("persenJasa", persenBPJS + "%"); /* * Set harga jasa klaim jasa ffs pasien bpjs oleh dokter-dokter * tertentu @@ -1698,51 +1737,51 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel d.put("hargaJasa", persenBPJS / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (drKsmUmumList.contains(idPegawai) && Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { - d.put("persenJasa", persenJasaDokterUmumHD.toString() + "%"); + d.put("persenJasa", persenJasaDokterUmumHD + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenJasaDokterUmumHD / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen")) && Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { - d.put("persenJasa", persenOperatorIBS.toString() + "%"); + d.put("persenJasa", persenOperatorIBS + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen")) && Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { - d.put("persenJasa", persenAsistenIBS.toString() + "%"); + d.put("persenJasa", persenAsistenIBS + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen")) && Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { - d.put("persenJasa", persenAnestesiIBS.toString() + "%"); + d.put("persenJasa", persenAnestesiIBS + "%"); 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() + "%"); + d.put("persenJasa", persenRadiologi + "%"); 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() + "%"); + d.put("persenJasa", persenRehabMedik + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenRehabMedik / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.GolonganProduk.KONSULTASI.equals(d.get("idGolonganProduk"))) { - d.put("persenJasa", persenKonsultasi.toString() + "%"); + d.put("persenJasa", persenKonsultasi + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenKonsultasi / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.GolonganProduk.VISIT.equals(d.get("idGolonganProduk"))) { - d.put("persenJasa", persenVisite.toString() + "%"); + d.put("persenJasa", persenVisite + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenVisite / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (drKkPatologiAnatomiList.contains(idPegawai)) { - d.put("persenJasa", persenJasaDokterPA.toString() + "%"); + d.put("persenJasa", persenJasaDokterPA + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenJasaDokterPA / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.Departemen.LABORATORIUM.equals(d.get("idDepartemen"))) { - d.put("persenJasa", persenLaboratorium.toString() + "%"); + d.put("persenJasa", persenLaboratorium + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenLaboratorium / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else { - d.put("persenJasa", persenTindakan.toString() + "%"); + d.put("persenJasa", persenTindakan + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) d.put("hargaJasa", persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString())); } @@ -1752,7 +1791,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ List> listEpisode = new ArrayList<>(); for (Map d : listData) { - if (!Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien")) + if (!Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS) + .contains(Integer.parseInt(d.get("idKelompokPasien").toString())) && Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))) { boolean existEpisode = false; for (Map e : listEpisode) @@ -1774,7 +1814,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ for (Map d : listData) { for (Map e : listEpisode) { - if (!Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien")) + if (!Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS) + .contains(Integer.parseInt(d.get("idKelompokPasien").toString())) && Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen")) && d.get("idPasienDaftar").toString().equals(e.get("id")) && Integer.valueOf(d.get("idProduk").toString()).equals(e.get("idProduk"))) { @@ -1784,16 +1825,16 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel */ if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) { d.put("hargaJasa", - 1.0 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) { d.put("hargaJasa", - 1.0 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) { d.put("hargaJasa", - 1.0 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); + persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else { d.put("hargaJasa", - 1.0 * persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString())); + persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString())); } int count = Integer.parseInt(e.get("count").toString()); e.put("count", ++count); @@ -1926,58 +1967,25 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * Populate data filter */ listData.forEach(d -> { - if (!listIdProduk.contains(d.get("idProduk"))) + if (!listIdProduk.contains(Integer.parseInt(d.get("idProduk").toString()))) listIdProduk.add(Integer.valueOf(d.get("idProduk").toString())); - if (!listPersenJasa.contains(d.get("persenJasa"))) + if (!listPersenJasa.contains(d.get("persenJasa").toString())) listPersenJasa.add(d.get("persenJasa").toString()); - if (!listHargaJasa.contains(d.get("hargaJasa"))) + if (!listHargaJasa.contains(Double.parseDouble(d.get("hargaJasa").toString()))) listHargaJasa.add(Double.valueOf(d.get("hargaJasa").toString())); - if (!listHargaJual.contains(d.get("hargaJual"))) + if (!listHargaJual.contains(Double.parseDouble(d.get("hargaJual").toString()))) listHargaJual.add(Double.valueOf(d.get("hargaJual").toString())); - if (!listIdKelompokPasien.contains(d.get("idKelompokPasien"))) + if (!listIdKelompokPasien.contains(Integer.parseInt(d.get("idKelompokPasien").toString()))) listIdKelompokPasien.add(Integer.valueOf(d.get("idKelompokPasien").toString())); - if (!listTanggal.contains(d.get("tanggal"))) + if (!listTanggal.contains(d.get("tanggal").toString())) listTanggal.add(d.get("tanggal").toString()); - if (!listJenisRuangan.contains(d.get("jenisRuangan"))) + if (!listJenisRuangan.contains(d.get("jenisRuangan").toString())) listJenisRuangan.add(d.get("jenisRuangan").toString()); }); /* * Pengelompokkan tanggal pelayanan */ - for (Integer idProduk : listIdProduk) { - for (String persenJasa : listPersenJasa) { - for (Double hargaJual : listHargaJual) { - for (Integer idKelompokPasien : listIdKelompokPasien) { - for (String jenisRuangan : listJenisRuangan) { - for (String tanggal : listTanggal) { - Map mapData = new HashMap<>(); - double jumlah = 0.0; - List norecs = new ArrayList<>(); - int dataHitungKe = 0; - for (Map map : listData) { - if (idProduk.equals(map.get("idProduk")) && persenJasa.equals(map.get("persenJasa")) - && hargaJual.equals(map.get("hargaJual")) - && idKelompokPasien.equals(map.get("idKelompokPasien")) - && jenisRuangan.equals(map.get("jenisRuangan")) - && tanggal.equals(map.get("tanggal"))) { - jumlah += Double.parseDouble(map.get("jumlah").toString()); - norecs.add(map.get("idPelayananPasien").toString()); - dataHitungKe++; - if (dataHitungKe == 1) - mapData.putAll(map); - } - } - if (CommonUtil.isNotNullOrEmpty(mapData.get("jumlah"))) { - mapData.put("jumlah", jumlah); - mapData.put("norecs", norecs); - dataTanggal.add(mapData); - } - } - } - } - } - } - } + List> dataTanggal = groupingTanggalFfs(listData); /* * Pengelompokkan produk layanan */ @@ -1990,7 +1998,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel List> detail = new ArrayList<>(); int counter = 0; double jumlah = 0.0; - double jumlahHargaJasa = 0.0; + double jumlahHargaJasa; for (Map map : dataTanggal) { Map mapCount = new HashMap<>(); if (idProduk.equals(map.get("idProduk")) && persenJasa.equals(map.get("persenJasa")) @@ -2096,11 +2104,48 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel return result; } - @Override - public List> detailLogbookTarifDokter(Integer idPegawai, List norecs) { - List> result = pelayananPasienDao.findPelayananPasienByPetugasAndPelayananPasien(idPegawai, - norecs); + private List> groupingTanggalFfs(List> listData) { + Map>>>>>>> collectTanggal = listData + .stream() + .collect(Collectors.groupingBy(o1 -> Integer.parseInt(o1.get("idProduk").toString()), + Collectors.groupingBy(o2 -> o2.get("persenJasa").toString(), Collectors.groupingBy( + o3 -> Double.parseDouble(o3.get("hargaJual").toString()), Collectors.groupingBy( + o4 -> Integer.parseInt(o4.get("idKelompokPasien").toString()), Collectors + .groupingBy(o5 -> o5.get("jenisRuangan").toString(), + Collectors.groupingBy(o6 -> o6.get("tanggal").toString()))))))); + List> result = new ArrayList<>(); + collectTanggal.forEach((k1, v1) -> v1.forEach((k2, v2) -> v2 + .forEach((k3, v3) -> v3.forEach((k4, v4) -> v4.forEach((k5, v5) -> v5.forEach((k6, v6) -> { + HashMap map = new HashMap<>(); + map.put("idProduk", k1); + map.put("persenJasa", k2); + map.put("hargaJual", k3); + map.put("idKelompokPasien", k4); + map.put("jenisRuangan", k5); + map.put("tanggal", k6); + List norecs = v6.stream().map(e -> e.get("idPelayananPasien").toString()) + .collect(Collectors.toList()); + map.put("norecs", norecs); + double jumlah = v6.stream().mapToDouble(e -> Double.parseDouble(e.get("jumlah").toString())).sum(); + map.put("jumlah", jumlah); + Optional> first = v6.stream().findFirst(); + first.ifPresent(e -> { + map.put("namaProduk", e.get("namaProduk").toString()); + map.put("kelompokPasien", e.get("kelompokPasien").toString()); + map.put("hargaJasa", Double.parseDouble(e.get("hargaJasa").toString())); + map.put("tglPelayanan", e.get("tglPelayanan")); + map.put("sortIdKelompokPasien", Integer.parseInt(e.get("sortIdKelompokPasien").toString())); + map.put("sortIdKelas", Integer.parseInt(e.get("sortIdKelas").toString())); + map.put("jenisRuangan", e.get("jenisRuangan").toString()); + }); + result.add(map); + })))))); return result; } + @Override + public List> detailLogbookTarifDokter(Integer idPegawai, List norecs) { + return pelayananPasienDao.findPelayananPasienByPetugasAndPelayananPasien(idPegawai, norecs); + } + } \ No newline at end of file