From d267159833c8203a6b52d9be9371661d8002e46a Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Thu, 27 Jul 2023 14:08:55 +0700 Subject: [PATCH] Update service pelayanan pasien Pembuatan filter id produk lab genetika di luar ruangan untuk penyesuaian aturan remun dokter lab genetika --- .../medifirst2000/constants/Master.java | 1 + .../impl/PelayananPasienServiceImpl.java | 43 +++++++++++++++++-- 2 files changed, 41 insertions(+), 3 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 c61f12cc..11426d55 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 @@ -449,6 +449,7 @@ public class Master { public static final class SubUnitKerja { public static final Integer KK_ANESTESI = 223; public static final Integer KK_FARMAKOLOGI = 205; + public static final Integer KK_GENETIKA = 198; public static final Integer KK_PATOLOGI_ANATOMI = 197; public static final Integer KK_PATOLOGI_KLINIK = 199; public static final Integer KK_PEDIATRIK_GD = 244; 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 8adb612a..6ca057c1 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 @@ -217,7 +217,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel dateAwal = sdf.parse(tglAwal); dateAkhir = sdf.parse(tglAkhir); } catch (ParseException e) { - e.printStackTrace(); + System.out.println(e.getMessage()); } List> data = pelayananPasienDao.getDataPendapatan(Master.JenisPegawai.DOKTER, dateAwal, @@ -400,7 +400,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel date = df.parse(bulan); dateLine = df.parse(GetSettingDataFixed("berlakuTargetJasaRemunDokter")); } catch (ParseException e) { - e.printStackTrace(); + System.out.println(e.getMessage()); return null; } /* @@ -451,6 +451,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel List drKkPerinatologiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PERINATOLOGI); List drKkPatologiAnatomiList = pegawaiDao .getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI); + List drKkGenetika = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_GENETIKA); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); @@ -465,6 +466,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel List idsMonitoringIntervensi = splitDataSettingDatafixed("idMonitoringIntervensi"); List idsMonitoringHemodinamikGagalOrgan = splitDataSettingDatafixed( "idMonitoringHemodinamikGagalOrgan"); + List idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan"); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; } else if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_KLINIK).contains(idPegawai)) { @@ -545,6 +547,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel d.put("hargaJasa", persenKonsultasi / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Master.GolonganProduk.VISIT.equals(d.get("idGolonganProduk"))) { d.put("hargaJasa", persenVisite / 100 * Double.parseDouble(d.get("hargaJual").toString())); + } else if (drKkGenetika.contains(idPegawai) && idProdukLabGenetikaLuarRuangan.contains(d.get("idProduk")) + && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { + d.put("hargaJasa", persenRemunLabGenetika / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Arrays.asList(Master.Ruangan.GENETIKA).contains(d.get("idRuangan"))) { d.put("hargaJasa", persenRemunLabGenetika / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (drKkPatologiAnatomiList.contains(idPegawai)) { @@ -1350,6 +1355,14 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel List listHargaJual = new ArrayList<>(); List listIdKelompokPasien = new ArrayList<>(); List listTanggal = new ArrayList<>(); + DateFormat df = new SimpleDateFormat("yyyy-MM"); + Date date; + try { + date = df.parse(bulan); + } catch (ParseException e) { + System.out.println(e.getMessage()); + return null; + } Map remunFfs = this.splitRemunFfs(idPegawai, bulan); List> listData = (List>) remunFfs.get("remun"); Double target = Double.parseDouble(remunFfs.get("targetRemun").toString()); @@ -1377,6 +1390,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel List drKkPatologiAnatomiList = pegawaiDao .getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); + List drKkGenetika = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_GENETIKA); + List idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan"); /* * Set persen jasa dan harga jasa pasien bpjs di ibs, icu */ @@ -1450,10 +1465,17 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel 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 (drKkGenetika.contains(idPegawai) && idProdukLabGenetikaLuarRuangan.contains(d.get("idProduk")) + && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { + d.put("persenJasa", persenRemunLabGenetika + "%"); + if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) + d.put("hargaJasa", + persenRemunLabGenetika / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Arrays.asList(Master.Ruangan.GENETIKA).contains(d.get("idRuangan"))) { d.put("persenJasa", persenRemunLabGenetika + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) - d.put("hargaJasa", persenRemunLabGenetika / 100 * Double.parseDouble(d.get("hargaJual").toString())); + d.put("hargaJasa", + persenRemunLabGenetika / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (drKkPatologiAnatomiList.contains(idPegawai)) { d.put("persenJasa", persenRemunDokterPA + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) @@ -1627,6 +1649,14 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel List listIdKelompokPasien = new ArrayList<>(); List listTanggal = new ArrayList<>(); List listJenisRuangan = new ArrayList<>(); + DateFormat df = new SimpleDateFormat("yyyy-MM"); + Date date; + try { + date = df.parse(bulan); + } catch (ParseException e) { + System.out.println(e.getMessage()); + return null; + } Map remunFfs = this.splitRemunFfs(idPegawai, bulan); List> listData = (List>) remunFfs.get("ffs"); /* @@ -1651,6 +1681,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel List drKkPatologiAnatomiList = pegawaiDao .getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); + List drKkGenetika = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_GENETIKA); + List idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan"); /* * Mapping persentase jasa remunerasi */ @@ -1706,6 +1738,11 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel 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 (drKkGenetika.contains(idPegawai) && idProdukLabGenetikaLuarRuangan.contains(d.get("idProduk")) + && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { + d.put("persenJasa", persenJasaLabGenetika + "%"); + if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0) + d.put("hargaJasa", persenJasaLabGenetika / 100 * Double.parseDouble(d.get("hargaJual").toString())); } else if (Arrays.asList(Master.Ruangan.GENETIKA).contains(d.get("idRuangan"))) { d.put("persenJasa", persenJasaLabGenetika + "%"); if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)