Update PelayananPasienServiceImpl.java
Penerapan persen remun kk anestesi sebagai operator dan dokter anestesi di luar ibs dan tindakan mandiri radiologi
This commit is contained in:
parent
d267159833
commit
eaee1e7c0f
@ -1,6 +1,5 @@
|
||||
package com.jasamedika.medifirst2000.service.impl;
|
||||
|
||||
import com.jasamedika.medifirst2000.constants.Master;
|
||||
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
|
||||
import com.jasamedika.medifirst2000.dao.*;
|
||||
import com.jasamedika.medifirst2000.dto.TagihanPendaftaranDto;
|
||||
@ -23,6 +22,23 @@ import java.time.format.DateTimeFormatter;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.jasamedika.medifirst2000.constants.Master.Departemen.*;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.Departemen.RADIOLOGI;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.FeeForService.HK_02_04_III_558_2015_4_B_1;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.FeeForService.HK_02_04_III_558_2015_5_B_C_D;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.GolonganProduk.KONSULTASI;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.GolonganProduk.VISIT;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.JenisPegawai.DOKTER;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.JenisPetugasPelaksana.*;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.JenisProduk.NONLOGBOOK;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.JenisProduk.OBAT_ALKES;
|
||||
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.Ruangan.*;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.SubUnitKerja.*;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.TipePegawai.PURNA_WAKTU;
|
||||
|
||||
/**
|
||||
* Implement class for PelayananPasienService
|
||||
*
|
||||
@ -149,38 +165,36 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
|
||||
List<Integer> idsKonsultasiDokterJaga = splitDataSettingDatafixed("pr_konsultasi_dokter_jaga");
|
||||
|
||||
if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(idKelPasien)) {
|
||||
if (idDepartemen.equals(Master.Departemen.IGD)) {
|
||||
if (Arrays.asList(KELOMPOK_BPJS).contains(idKelPasien)) {
|
||||
if (idDepartemen.equals(IGD)) {
|
||||
if (idsKonsultasiDokterJaga.contains(idLayanan)) {
|
||||
result = 30000.0;
|
||||
} else {
|
||||
result = (hargaJual - hargaDiskon) * jumlahLayanan
|
||||
* Master.FeeForService.HK_02_04_III_558_2015_5_B_C_D;
|
||||
result = (hargaJual - hargaDiskon) * jumlahLayanan * HK_02_04_III_558_2015_5_B_C_D;
|
||||
}
|
||||
} else if (idDepartemen.equals(Master.Departemen.RAWAT_INAP)) {
|
||||
if (tipePegawai.equals(Master.TipePegawai.PURNA_WAKTU)) {
|
||||
result = (hargaJual - hargaDiskon) * jumlahLayanan
|
||||
* Master.FeeForService.HK_02_04_III_558_2015_5_B_C_D;
|
||||
} else if (idDepartemen.equals(RAWAT_INAP)) {
|
||||
if (tipePegawai.equals(PURNA_WAKTU)) {
|
||||
result = (hargaJual - hargaDiskon) * jumlahLayanan * HK_02_04_III_558_2015_5_B_C_D;
|
||||
} else {
|
||||
result = 0.0;
|
||||
}
|
||||
} else {
|
||||
result = (hargaJual - hargaDiskon) * jumlahLayanan * Master.FeeForService.HK_02_04_III_558_2015_5_B_C_D;
|
||||
result = (hargaJual - hargaDiskon) * jumlahLayanan * HK_02_04_III_558_2015_5_B_C_D;
|
||||
}
|
||||
} else {
|
||||
if (idDepartemen.equals(Master.Departemen.IGD)) {
|
||||
if (idDepartemen.equals(IGD)) {
|
||||
if (idsKonsultasiDokterJaga.contains(idLayanan)) {
|
||||
result = 30000.0;
|
||||
} else {
|
||||
result = (hargaJual - hargaDiskon) * jumlahLayanan;
|
||||
}
|
||||
} else if (idDepartemen.equals(Master.Departemen.RAWAT_INAP)) {
|
||||
if (Arrays.stream(Master.KONSUL_VISIT).anyMatch(namaLayanan.toLowerCase()::contains)) {
|
||||
if (tipePegawai.equals(Master.TipePegawai.PURNA_WAKTU)) {
|
||||
if ((hargaJual - hargaDiskon) < Master.FeeForService.HK_02_04_III_558_2015_4_B_1) {
|
||||
} else if (idDepartemen.equals(RAWAT_INAP)) {
|
||||
if (Arrays.stream(KONSUL_VISIT).anyMatch(namaLayanan.toLowerCase()::contains)) {
|
||||
if (tipePegawai.equals(PURNA_WAKTU)) {
|
||||
if ((hargaJual - hargaDiskon) < HK_02_04_III_558_2015_4_B_1) {
|
||||
result = (hargaJual - hargaDiskon) * jumlahLayanan;
|
||||
} else {
|
||||
result = Master.FeeForService.HK_02_04_III_558_2015_4_B_1 * jumlahLayanan;
|
||||
result = HK_02_04_III_558_2015_4_B_1 * jumlahLayanan;
|
||||
}
|
||||
} else {
|
||||
result = (hargaJual - hargaDiskon) * jumlahLayanan;
|
||||
@ -220,8 +234,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
System.out.println(e.getMessage());
|
||||
}
|
||||
|
||||
List<Map<String, Object>> data = pelayananPasienDao.getDataPendapatan(Master.JenisPegawai.DOKTER, dateAwal,
|
||||
dateAkhir);
|
||||
List<Map<String, Object>> data = pelayananPasienDao.getDataPendapatan(DOKTER, dateAwal, dateAkhir);
|
||||
|
||||
for (Map<String, Object> map : data) {
|
||||
if (!listIdPegawai.contains(Integer.parseInt(map.get("idPegawai").toString()))
|
||||
@ -244,7 +257,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
Double hargaDiskon = Double.parseDouble(map.get("hargaDiskon").toString());
|
||||
Double jumlahLayanan = Double.parseDouble(map.get("jumlahLayanan").toString());
|
||||
|
||||
if (!map.get("idJenisProduk").equals(Master.JenisProduk.OBAT_ALKES)) {
|
||||
if (!map.get("idJenisProduk").equals(OBAT_ALKES)) {
|
||||
remun += calculateRemunWithFfs(idKelPasien, idDepartemen, idLayanan, namaLayanan, tipePegawai,
|
||||
hargaJual, hargaDiskon, jumlahLayanan);
|
||||
}
|
||||
@ -267,9 +280,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<String> result = new ArrayList<>();
|
||||
|
||||
List<Integer> labRadiologi = new ArrayList<>();
|
||||
labRadiologi.add(Master.Ruangan.LABORATORIUM_PATOLOGI_ANATOMI);
|
||||
labRadiologi.add(Master.Ruangan.LABORATORIUM_PATOLOGI_KLINIK);
|
||||
labRadiologi.add(Master.Ruangan.RADIOLOGI);
|
||||
labRadiologi.add(LABORATORIUM_PATOLOGI_ANATOMI);
|
||||
labRadiologi.add(LABORATORIUM_PATOLOGI_KLINIK);
|
||||
labRadiologi.add(RADIOLOGI);
|
||||
|
||||
List<Integer> listProdukKlinik = splitDataSettingDatafixed("listProdukDiskonPegawai");
|
||||
List<Integer> listProdukTht = splitDataSettingDatafixed("listProdukDiskonThtPegawai");
|
||||
@ -280,9 +293,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<Integer> listProdukMpp = splitDataSettingDatafixed("listProdukDiskonPasien");
|
||||
|
||||
List<Map<String, Object>> data = pelayananPasienDao.findLayananTagihan(noRegistrasi, jenisDiskon,
|
||||
Master.Ruangan.KLINIK_KARYAWAN, listProdukKlinik, Master.Ruangan.POLI_THT, listProdukTht,
|
||||
Master.Ruangan.POLI_MATA, listProdukMata, Master.Ruangan.KLINIK_GIGI_KARYAWAN, listProdukGigi,
|
||||
labRadiologi, listProdukLabRadiologi, listProdukFarmasi, listProdukMpp);
|
||||
KLINIK_KARYAWAN, listProdukKlinik, POLI_THT, listProdukTht, POLI_MATA, listProdukMata,
|
||||
KLINIK_GIGI_KARYAWAN, listProdukGigi, labRadiologi, listProdukLabRadiologi, listProdukFarmasi,
|
||||
listProdukMpp);
|
||||
|
||||
List<PelayananPasien> models = new ArrayList<>();
|
||||
for (Map<String, Object> map : data) {
|
||||
@ -428,7 +441,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
*/
|
||||
double persenOperatorIBS = Double.parseDouble(GetSettingDataFixed("persenRemunOperatorIBS"));
|
||||
double persenAsistenIBS = Double.parseDouble(GetSettingDataFixed("persenRemunAsistenIBS"));
|
||||
double persenAnestesiIBS = Double.parseDouble(GetSettingDataFixed("persenRemunAnestesiIBS"));
|
||||
double persenAnestesi = Double.parseDouble(GetSettingDataFixed("persenRemunAnestesiIBS"));
|
||||
double persenRadiologi = Double.parseDouble(GetSettingDataFixed("persenRemunRadiologi"));
|
||||
double persenLaboratorium = Double.parseDouble(GetSettingDataFixed("persenRemunLaboratorium"));
|
||||
double persenRehabMedik = Double.parseDouble(GetSettingDataFixed("persenRemunRehabMedik"));
|
||||
@ -445,13 +458,12 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
*/
|
||||
List<Integer> listDetailJenisProduk;
|
||||
List<Integer> listDetailJenisProdukException = new ArrayList<>();
|
||||
List<Integer> drKkPediatrikGDList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PEDIATRIK_GD);
|
||||
List<Integer> drAnastesiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_ANESTESI);
|
||||
List<Integer> drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM);
|
||||
List<Integer> drKkPerinatologiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PERINATOLOGI);
|
||||
List<Integer> drKkPatologiAnatomiList = pegawaiDao
|
||||
.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI);
|
||||
List<Integer> drKkGenetika = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_GENETIKA);
|
||||
List<Integer> drKkPediatrikGDList = pegawaiDao.getDokterByKelompokKerja(KK_PEDIATRIK_GD);
|
||||
List<Integer> drAnastesiList = pegawaiDao.getDokterByKelompokKerja(KK_ANESTESI);
|
||||
List<Integer> drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(KK_UMUM);
|
||||
List<Integer> drKkPerinatologiList = pegawaiDao.getDokterByKelompokKerja(KK_PERINATOLOGI);
|
||||
List<Integer> drKkPatologiAnatomiList = pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_ANATOMI);
|
||||
List<Integer> drKkGenetika = pegawaiDao.getDokterByKelompokKerja(KK_GENETIKA);
|
||||
List<Integer> laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog();
|
||||
List<Integer> idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk");
|
||||
List<Integer> idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama");
|
||||
@ -467,11 +479,11 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<Integer> idsMonitoringHemodinamikGagalOrgan = splitDataSettingDatafixed(
|
||||
"idMonitoringHemodinamikGagalOrgan");
|
||||
List<Integer> idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan");
|
||||
if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) {
|
||||
if (pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_ANATOMI).contains(idPegawai)) {
|
||||
listDetailJenisProduk = idsRegDJPPenunjangPA;
|
||||
} else if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_KLINIK).contains(idPegawai)) {
|
||||
} else if (pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_KLINIK).contains(idPegawai)) {
|
||||
listDetailJenisProduk = idsRegDJPPenunjangPK;
|
||||
} else if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_RADIOLOGI).contains(idPegawai)) {
|
||||
} else if (pegawaiDao.getDokterByKelompokKerja(KK_RADIOLOGI).contains(idPegawai)) {
|
||||
listDetailJenisProduk = idsRegDJPPenunjangRad;
|
||||
} else {
|
||||
listDetailJenisProduk = idsRegDJPMedisUtama;
|
||||
@ -500,64 +512,64 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
* Untuk diskon jasa medis oleh dpjp
|
||||
*/
|
||||
d.put("hargaJasa", 0.0);
|
||||
} else if (Master.Ruangan.KLINIK_KARYAWAN.equals(d.get("idRuangan"))
|
||||
|| Master.Ruangan.KLINIK_GIGI_KARYAWAN.equals(d.get("idRuangan"))) {
|
||||
} else if (KLINIK_KARYAWAN.equals(d.get("idRuangan")) || KLINIK_GIGI_KARYAWAN.equals(d.get("idRuangan"))) {
|
||||
/*
|
||||
* Untuk semua klaim di ruangan klinik karyawan
|
||||
*/
|
||||
d.put("hargaJasa", 0.0);
|
||||
} else if (drKsmUmumList.contains(idPegawai)
|
||||
&& Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
||||
} else if (drKsmUmumList.contains(idPegawai) && 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"))
|
||||
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
&& CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
|
||||
&& Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS)
|
||||
.contains(Integer.parseInt(d.get("idKelompokPasien").toString()))
|
||||
&& Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
|
||||
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))
|
||||
&& 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"))
|
||||
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
&& CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
|
||||
&& Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS)
|
||||
.contains(Integer.parseInt(d.get("idKelompokPasien").toString()))
|
||||
&& Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
||||
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))
|
||||
&& 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"))
|
||||
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
&& CommonUtil.isNotNullOrEmpty(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;
|
||||
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))
|
||||
&& DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
||||
double persenJasa = persenAnestesi / 100;
|
||||
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"))) {
|
||||
} 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()));
|
||||
} else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
&& Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
||||
} 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()));
|
||||
} else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
&& Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
||||
d.put("hargaJasa", persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (Master.Departemen.RADIOLOGI.equals(d.get("idDepartemen"))) {
|
||||
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
&& DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
||||
d.put("hargaJasa", persenAnestesi / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (RADIOLOGI.equals(d.get("idDepartemen"))) {
|
||||
d.put("hargaJasa", persenRadiologi / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (Master.Departemen.REHAB_MEDIK.equals(d.get("idDepartemen"))) {
|
||||
} else if (REHAB_MEDIK.equals(d.get("idDepartemen"))) {
|
||||
d.put("hargaJasa", persenRehabMedik / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (Master.GolonganProduk.KONSULTASI.equals(d.get("idGolonganProduk"))) {
|
||||
} else if (KONSULTASI.equals(d.get("idGolonganProduk"))) {
|
||||
d.put("hargaJasa", persenKonsultasi / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (Master.GolonganProduk.VISIT.equals(d.get("idGolonganProduk"))) {
|
||||
} else if (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"))
|
||||
} else if (drAnastesiList.contains(idPegawai) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
|
||||
d.put("hargaJasa", persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (drAnastesiList.contains(idPegawai) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
||||
d.put("hargaJasa", persenAnestesi / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (drKkGenetika.contains(idPegawai)
|
||||
&& idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString()))
|
||||
&& (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"))) {
|
||||
} else if (Arrays.asList(GENETIKA).contains(Integer.parseInt(d.get("idRuangan").toString()))) {
|
||||
d.put("hargaJasa", persenRemunLabGenetika / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (drKkPatologiAnatomiList.contains(idPegawai)) {
|
||||
d.put("hargaJasa", persenRemunDokterPA / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (Master.Departemen.LABORATORIUM.equals(d.get("idDepartemen"))) {
|
||||
} else if (LABORATORIUM.equals(d.get("idDepartemen"))) {
|
||||
d.put("hargaJasa", persenLaboratorium / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (CommonUtil.isNotNullOrEmpty(d.get("idRuangan")) && Arrays.asList(Master.Ruangan.ICU_NICU)
|
||||
.contains(Integer.parseInt(d.get("idRuangan").toString()))) {
|
||||
} else if (CommonUtil.isNotNullOrEmpty(d.get("idRuangan"))
|
||||
&& Arrays.asList(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 {
|
||||
@ -570,8 +582,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<Map<String, Object>> rawDataBpjs0 = new ArrayList<>();
|
||||
for (Map<String, Object> d : listData)
|
||||
if (CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
|
||||
&& Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS)
|
||||
.contains(Integer.parseInt(d.get("idKelompokPasien").toString())))
|
||||
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString())))
|
||||
rawDataBpjs0.add(d);
|
||||
/*
|
||||
* Filter tindakan operasi untuk pasien BPJS hanya diambil tarif
|
||||
@ -580,7 +591,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<Map<String, Object>> rawDataBpjs1 = new ArrayList<>();
|
||||
{
|
||||
List<Map<String, Object>> bpjsBedahSentral = rawDataBpjs0.stream()
|
||||
.filter(d -> Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen")))
|
||||
.filter(d -> BEDAH_SENTRAL.equals(d.get("idDepartemen")))
|
||||
.sorted(Comparator.comparing(o -> Double.parseDouble(o.get("jumlah").toString()),
|
||||
Comparator.reverseOrder()))
|
||||
.sorted(Comparator.comparing(o -> Double.parseDouble(o.get("hargaJual").toString()),
|
||||
@ -594,10 +605,10 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
listIdPelayananPasien.add(b.get("idPelayananPasien").toString());
|
||||
}
|
||||
for (Map<String, Object> d : rawDataBpjs0)
|
||||
if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
&& listIdPelayananPasien.contains(d.get("idPelayananPasien").toString())) {
|
||||
rawDataBpjs1.add(d);
|
||||
} else if (!Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))) {
|
||||
} else if (!BEDAH_SENTRAL.equals(d.get("idDepartemen"))) {
|
||||
rawDataBpjs1.add(d);
|
||||
}
|
||||
}
|
||||
@ -613,7 +624,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
*/
|
||||
List<Map<String, Object>> listEpisode = new ArrayList<>();
|
||||
for (Map<String, Object> d : rawDataBpjs1) {
|
||||
if (Master.GolonganProduk.VISIT.equals(d.get("idGolonganProduk"))) {
|
||||
if (VISIT.equals(d.get("idGolonganProduk"))) {
|
||||
boolean existEpisode = false;
|
||||
for (Map<String, Object> e : listEpisode)
|
||||
if (e.get("id").toString().equals(d.get("idPasienDaftar"))
|
||||
@ -637,7 +648,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
for (Map<String, Object> d : rawDataBpjs1) {
|
||||
int count = 1;
|
||||
for (Map<String, Object> e : listEpisode)
|
||||
if (Master.GolonganProduk.VISIT.equals(d.get("idGolonganProduk"))) {
|
||||
if (VISIT.equals(d.get("idGolonganProduk"))) {
|
||||
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"))
|
||||
@ -651,7 +662,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
if (!Master.GolonganProduk.VISIT.equals(d.get("idGolonganProduk")) && count == 1)
|
||||
if (!VISIT.equals(d.get("idGolonganProduk")) && count == 1)
|
||||
rawDataBpjs2.add(d);
|
||||
}
|
||||
} else {
|
||||
@ -670,9 +681,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<Map<String, Object>> listEpisode = new ArrayList<>();
|
||||
for (Map<String, Object> d : rawDataBpjs2) {
|
||||
if (CommonUtil.isNotNullOrEmpty(d.get("idRuangan"))
|
||||
&& Arrays.asList(Master.Ruangan.ICU_NICU)
|
||||
.contains(Integer.parseInt(d.get("idRuangan").toString()))
|
||||
&& Master.GolonganProduk.VISIT.equals(d.get("idGolonganProduk"))) {
|
||||
&& Arrays.asList(ICU_NICU).contains(Integer.parseInt(d.get("idRuangan").toString()))
|
||||
&& VISIT.equals(d.get("idGolonganProduk"))) {
|
||||
boolean existEpisode = false;
|
||||
for (Map<String, Object> e : listEpisode)
|
||||
if (e.get("id").toString().equals(d.get("idPasienDaftar"))
|
||||
@ -697,9 +707,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
int count = 1;
|
||||
for (Map<String, Object> e : listEpisode)
|
||||
if (CommonUtil.isNotNullOrEmpty(d.get("idRuangan"))
|
||||
&& Arrays.asList(Master.Ruangan.ICU_NICU)
|
||||
.contains(Integer.parseInt(d.get("idRuangan").toString()))
|
||||
&& Master.GolonganProduk.VISIT.equals(d.get("idGolonganProduk"))) {
|
||||
&& Arrays.asList(ICU_NICU).contains(Integer.parseInt(d.get("idRuangan").toString()))
|
||||
&& VISIT.equals(d.get("idGolonganProduk"))) {
|
||||
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"))
|
||||
@ -713,10 +722,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
if ((CommonUtil.isNullOrEmpty(d.get("idRuangan"))
|
||||
|| (CommonUtil.isNotNullOrEmpty(d.get("idRuangan")) && !Arrays.asList(Master.Ruangan.ICU_NICU)
|
||||
.contains(Integer.parseInt(d.get("idRuangan").toString()))))
|
||||
|| !Master.GolonganProduk.VISIT.equals(d.get("idGolonganProduk")) && count == 1)
|
||||
if ((CommonUtil.isNullOrEmpty(d.get("idRuangan")) || (CommonUtil.isNotNullOrEmpty(d.get("idRuangan"))
|
||||
&& !Arrays.asList(ICU_NICU).contains(Integer.parseInt(d.get("idRuangan").toString()))))
|
||||
|| !VISIT.equals(d.get("idGolonganProduk")) && count == 1)
|
||||
rawDataBpjs3.add(d);
|
||||
}
|
||||
} else {
|
||||
@ -735,8 +743,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<Map<String, Object>> listEpisode = new ArrayList<>();
|
||||
for (Map<String, Object> d : rawDataBpjs3) {
|
||||
if (CommonUtil.isNotNullOrEmpty(d.get("idRuangan"))
|
||||
&& Arrays.asList(Master.Ruangan.ICU_NICU)
|
||||
.contains(Integer.parseInt(d.get("idRuangan").toString()))
|
||||
&& Arrays.asList(ICU_NICU).contains(Integer.parseInt(d.get("idRuangan").toString()))
|
||||
&& idsMonitoringHemodinamikGagalOrgan
|
||||
.contains(Integer.parseInt(d.get("idProduk").toString()))) {
|
||||
boolean existEpisode = false;
|
||||
@ -763,8 +770,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
int count = 1;
|
||||
for (Map<String, Object> e : listEpisode)
|
||||
if (CommonUtil.isNotNullOrEmpty(d.get("idRuangan"))
|
||||
&& Arrays.asList(Master.Ruangan.ICU_NICU)
|
||||
.contains(Integer.parseInt(d.get("idRuangan").toString()))
|
||||
&& Arrays.asList(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"))
|
||||
@ -780,9 +786,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
if ((CommonUtil.isNullOrEmpty(d.get("idRuangan"))
|
||||
|| (CommonUtil.isNotNullOrEmpty(d.get("idRuangan")) && !Arrays.asList(Master.Ruangan.ICU_NICU)
|
||||
.contains(Integer.parseInt(d.get("idRuangan").toString()))))
|
||||
if ((CommonUtil.isNullOrEmpty(d.get("idRuangan")) || (CommonUtil.isNotNullOrEmpty(d.get("idRuangan"))
|
||||
&& !Arrays.asList(ICU_NICU).contains(Integer.parseInt(d.get("idRuangan").toString()))))
|
||||
|| !idsMonitoringHemodinamikGagalOrgan.contains(Integer.parseInt(d.get("idProduk").toString()))
|
||||
&& count == 1)
|
||||
rawDataBpjs4.add(d);
|
||||
@ -802,8 +807,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
*/
|
||||
List<Map<String, Object>> listEpisode = new ArrayList<>();
|
||||
for (Map<String, Object> d : rawDataBpjs4) {
|
||||
if ((Master.Ruangan.NICU.equals(d.get("idRuangan"))
|
||||
|| Master.Ruangan.NICU_COVID.equals(d.get("idRuangan")))
|
||||
if ((NICU.equals(d.get("idRuangan")) || NICU_COVID.equals(d.get("idRuangan")))
|
||||
&& idsMonitoringIntervensi.contains(Integer.parseInt(d.get("idProduk").toString()))) {
|
||||
boolean existEpisode = false;
|
||||
for (Map<String, Object> e : listEpisode)
|
||||
@ -828,8 +832,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
for (Map<String, Object> d : rawDataBpjs4) {
|
||||
int count = 1;
|
||||
for (Map<String, Object> e : listEpisode)
|
||||
if ((Master.Ruangan.NICU.equals(d.get("idRuangan"))
|
||||
|| Master.Ruangan.NICU_COVID.equals(d.get("idRuangan")))
|
||||
if ((NICU.equals(d.get("idRuangan")) || NICU_COVID.equals(d.get("idRuangan")))
|
||||
&& 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"))
|
||||
@ -844,8 +847,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
if (((!Master.Ruangan.NICU.equals(d.get("idRuangan"))
|
||||
&& !Master.Ruangan.NICU_COVID.equals(d.get("idRuangan")))
|
||||
if (((!NICU.equals(d.get("idRuangan")) && !NICU_COVID.equals(d.get("idRuangan")))
|
||||
|| !idsMonitoringIntervensi.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
&& count == 1)
|
||||
rawDataBpjs5.add(d);
|
||||
@ -866,9 +868,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
.atZone(ZoneId.systemDefault()).toLocalDateTime();
|
||||
for (Map<String, Object> j : listJadwalKerja) {
|
||||
if ((CommonUtil.isNullOrEmpty(d.get("idKelompokPasien"))
|
||||
|| (CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
|
||||
&& !Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS)
|
||||
.contains(Integer.parseInt(d.get("idKelompokPasien").toString()))))
|
||||
|| (CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien")) && !Arrays.asList(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();
|
||||
@ -901,9 +902,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
LocalDate tglMasuk = ((Date) j.get("tanggal")).toInstant().atZone(ZoneId.systemDefault())
|
||||
.toLocalDate();
|
||||
if (CommonUtil.isNullOrEmpty(d.get("idKelompokPasien"))
|
||||
|| (CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
|
||||
&& !Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS)
|
||||
.contains(Integer.parseInt(d.get("idKelompokPasien").toString()))))
|
||||
|| (CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien")) && !Arrays.asList(KELOMPOK_BPJS)
|
||||
.contains(Integer.parseInt(d.get("idKelompokPasien").toString()))))
|
||||
if (CommonUtil.isNullOrEmpty(j.get("jamMasuk"))) {
|
||||
if (tglPelayanan.isEqual(tglMasuk)) {
|
||||
listDataLuarJamKerja.add(d);
|
||||
@ -941,14 +941,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<Map<String, Object>> listPelayananRemun = new ArrayList<>();
|
||||
List<Map<String, Object>> listPelayananFfs = new ArrayList<>();
|
||||
double capaianRemun = 0.0;
|
||||
if (pegawaiDao.getPegawaiByKategoryPegawai(Arrays.asList(Master.KategoryPegawai.DOKTER_LUAR))
|
||||
.contains(idPegawai)) {
|
||||
if (pegawaiDao.getPegawaiByKategoryPegawai(Arrays.asList(DOKTER_LUAR)).contains(idPegawai)) {
|
||||
/*
|
||||
* Dokter luar hanya mendapatkan ffs
|
||||
*/
|
||||
for (Map<String, Object> next = queuePelayanan.poll(); next != null; next = queuePelayanan.poll())
|
||||
if (CommonUtil.isNotNullOrEmpty(next.get("idKelompokPasien"))
|
||||
&& Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS)
|
||||
&& Arrays.asList(KELOMPOK_BPJS)
|
||||
.contains(Integer.parseInt(next.get("idKelompokPasien").toString()))
|
||||
&& idsDokterBPJSffs.contains(idPegawai)) {
|
||||
/*
|
||||
@ -956,16 +955,14 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
*/
|
||||
listPelayananFfs.add(next);
|
||||
} else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk"))
|
||||
|| (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk"))
|
||||
&& !Arrays.asList(Master.JenisProduk.NONLOGBOOK)
|
||||
.contains(Integer.parseInt(next.get("idJenisProduk").toString())))) {
|
||||
|| (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk")) && !Arrays.asList(NONLOGBOOK)
|
||||
.contains(Integer.parseInt(next.get("idJenisProduk").toString())))) {
|
||||
listPelayananFfs.add(next);
|
||||
}
|
||||
} else {
|
||||
for (Map<String, Object> next = queuePelayanan.poll(); next != null; next = queuePelayanan.poll())
|
||||
if (CommonUtil.isNotNullOrEmpty(next.get("idKelompokPasien"))
|
||||
&& Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS)
|
||||
.contains(Integer.parseInt(next.get("idKelompokPasien").toString()))) {
|
||||
if (CommonUtil.isNotNullOrEmpty(next.get("idKelompokPasien")) && Arrays.asList(KELOMPOK_BPJS)
|
||||
.contains(Integer.parseInt(next.get("idKelompokPasien").toString()))) {
|
||||
/*
|
||||
* Urutan alokasi bpjs sebagai urutan prioritas
|
||||
*/
|
||||
@ -980,12 +977,12 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
listPelayananRemun.add(next);
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
} else if (((CommonUtil.isNotNullOrEmpty(next.get("idDepartemen"))
|
||||
&& Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_UTAMA)
|
||||
&& Arrays.asList(GRUP_RAWAT_JALAN_UTAMA)
|
||||
.contains(Integer.parseInt(next.get("idDepartemen").toString())))
|
||||
|| Master.GolonganProduk.VISIT.equals(next.get("idGolonganProduk")))
|
||||
|| VISIT.equals(next.get("idGolonganProduk")))
|
||||
&& (CommonUtil.isNullOrEmpty(next.get("idJenisProduk"))
|
||||
|| (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk"))
|
||||
&& !Arrays.asList(Master.JenisProduk.NONLOGBOOK).contains(
|
||||
&& !Arrays.asList(NONLOGBOOK).contains(
|
||||
Integer.parseInt(next.get("idJenisProduk").toString()))))) {
|
||||
/*
|
||||
* Dibatasi hanya di rawat jalan atau visite saja
|
||||
@ -1014,7 +1011,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
} else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk"))
|
||||
|| (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk"))
|
||||
&& !Arrays.asList(Master.JenisProduk.NONLOGBOOK).contains(
|
||||
&& !Arrays.asList(NONLOGBOOK).contains(
|
||||
Integer.parseInt(next.get("idJenisProduk").toString())))) {
|
||||
listPelayananRemun.add(next);
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
@ -1023,8 +1020,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
|| (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
|
||||
&& !listDetailJenisProduk.contains(
|
||||
Integer.parseInt(next.get("idDetailJenisProduk").toString()))))
|
||||
&& Master.Departemen.IGD.equals(next.get("idDepartemen"))
|
||||
&& drKsmUmumList.contains(idPegawai)
|
||||
&& IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai)
|
||||
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))) {
|
||||
/*
|
||||
* Aturan dokter ksm umum di igd
|
||||
@ -1051,9 +1047,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
*/
|
||||
listPelayananRemun.add(next);
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
} else if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA
|
||||
.equals(next.get("idJenisPelaksana"))
|
||||
&& Master.Departemen.RADIOLOGI.equals(next.get("idDepartemen"))) {
|
||||
} else if (DOKTER_PEMERIKSA.equals(next.get("idJenisPelaksana"))
|
||||
&& RADIOLOGI.equals(next.get("idDepartemen"))) {
|
||||
listPelayananRemun.add(next);
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
}
|
||||
@ -1076,7 +1071,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
} else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk"))
|
||||
|| (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk"))
|
||||
&& !Arrays.asList(Master.JenisProduk.NONLOGBOOK).contains(
|
||||
&& !Arrays.asList(NONLOGBOOK).contains(
|
||||
Integer.parseInt(next.get("idJenisProduk").toString())))) {
|
||||
listPelayananRemun.add(next);
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
@ -1099,12 +1094,12 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
listPelayananRemun.add(next);
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
} else if ((CommonUtil.isNotNullOrEmpty(next.get("idDepartemen"))
|
||||
&& Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_UTAMA)
|
||||
&& Arrays.asList(GRUP_RAWAT_JALAN_UTAMA)
|
||||
.contains(Integer.parseInt(next.get("idDepartemen").toString())))
|
||||
|| Master.GolonganProduk.VISIT.equals(next.get("idGolonganProduk")) && (CommonUtil
|
||||
|| VISIT.equals(next.get("idGolonganProduk")) && (CommonUtil
|
||||
.isNullOrEmpty(next.get("idJenisProduk"))
|
||||
|| (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk"))
|
||||
&& !Arrays.asList(Master.JenisProduk.NONLOGBOOK).contains(
|
||||
&& !Arrays.asList(NONLOGBOOK).contains(
|
||||
Integer.parseInt(next.get("idJenisProduk").toString()))))) {
|
||||
/*
|
||||
* Dibatasi hanya di rawat jalan atau visite saja
|
||||
@ -1133,7 +1128,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
} else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk"))
|
||||
|| (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk"))
|
||||
&& !Arrays.asList(Master.JenisProduk.NONLOGBOOK).contains(
|
||||
&& !Arrays.asList(NONLOGBOOK).contains(
|
||||
Integer.parseInt(next.get("idJenisProduk").toString())))) {
|
||||
listPelayananRemun.add(next);
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
@ -1142,8 +1137,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
|| (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
|
||||
&& !listDetailJenisProduk.contains(
|
||||
Integer.parseInt(next.get("idDetailJenisProduk").toString()))))
|
||||
&& Master.Departemen.IGD.equals(next.get("idDepartemen"))
|
||||
&& drKsmUmumList.contains(idPegawai)
|
||||
&& IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai)
|
||||
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))) {
|
||||
/*
|
||||
* Aturan dokter ksm umum di igd
|
||||
@ -1170,9 +1164,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
*/
|
||||
listPelayananRemun.add(next);
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
} else if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA
|
||||
.equals(next.get("idJenisPelaksana"))
|
||||
&& Master.Departemen.RADIOLOGI.equals(next.get("idDepartemen"))) {
|
||||
} else if (DOKTER_PEMERIKSA.equals(next.get("idJenisPelaksana"))
|
||||
&& RADIOLOGI.equals(next.get("idDepartemen"))) {
|
||||
listPelayananRemun.add(next);
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
}
|
||||
@ -1195,7 +1188,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
} else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk"))
|
||||
|| (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk"))
|
||||
&& !Arrays.asList(Master.JenisProduk.NONLOGBOOK).contains(
|
||||
&& !Arrays.asList(NONLOGBOOK).contains(
|
||||
Integer.parseInt(next.get("idJenisProduk").toString())))) {
|
||||
listPelayananRemun.add(next);
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
@ -1216,12 +1209,12 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
*/
|
||||
listPelayananFfs.add(next);
|
||||
} else if ((CommonUtil.isNotNullOrEmpty(next.get("idDepartemen"))
|
||||
&& Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_UTAMA)
|
||||
&& Arrays.asList(GRUP_RAWAT_JALAN_UTAMA)
|
||||
.contains(Integer.parseInt(next.get("idDepartemen").toString())))
|
||||
|| Master.GolonganProduk.VISIT.equals(next.get("idGolonganProduk")) && (CommonUtil
|
||||
|| VISIT.equals(next.get("idGolonganProduk")) && (CommonUtil
|
||||
.isNullOrEmpty(next.get("idJenisProduk"))
|
||||
|| (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk"))
|
||||
&& !Arrays.asList(Master.JenisProduk.NONLOGBOOK).contains(
|
||||
&& !Arrays.asList(NONLOGBOOK).contains(
|
||||
Integer.parseInt(next.get("idJenisProduk").toString()))))) {
|
||||
/*
|
||||
* Dibatasi hanya di rawat jalan atau visite saja
|
||||
@ -1248,7 +1241,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
listPelayananFfs.add(next);
|
||||
} else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk"))
|
||||
|| (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk"))
|
||||
&& !Arrays.asList(Master.JenisProduk.NONLOGBOOK).contains(
|
||||
&& !Arrays.asList(NONLOGBOOK).contains(
|
||||
Integer.parseInt(next.get("idJenisProduk").toString())))) {
|
||||
listPelayananFfs.add(next);
|
||||
}
|
||||
@ -1256,8 +1249,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
|| (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
|
||||
&& !listDetailJenisProduk.contains(
|
||||
Integer.parseInt(next.get("idDetailJenisProduk").toString()))))
|
||||
&& Master.Departemen.IGD.equals(next.get("idDepartemen"))
|
||||
&& drKsmUmumList.contains(idPegawai)
|
||||
&& IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai)
|
||||
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))) {
|
||||
/*
|
||||
* Aturan dokter ksm umum di igd
|
||||
@ -1282,9 +1274,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
*/
|
||||
listPelayananRemun.add(next);
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
} else if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA
|
||||
.equals(next.get("idJenisPelaksana"))
|
||||
&& Master.Departemen.RADIOLOGI.equals(next.get("idDepartemen"))) {
|
||||
} else if (DOKTER_PEMERIKSA.equals(next.get("idJenisPelaksana"))
|
||||
&& RADIOLOGI.equals(next.get("idDepartemen"))) {
|
||||
listPelayananRemun.add(next);
|
||||
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
|
||||
}
|
||||
@ -1306,7 +1297,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
listPelayananFfs.add(next);
|
||||
} else if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk"))
|
||||
|| (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk"))
|
||||
&& !Arrays.asList(Master.JenisProduk.NONLOGBOOK).contains(
|
||||
&& !Arrays.asList(NONLOGBOOK).contains(
|
||||
Integer.parseInt(next.get("idJenisProduk").toString())))) {
|
||||
listPelayananFfs.add(next);
|
||||
}
|
||||
@ -1364,6 +1355,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
return null;
|
||||
}
|
||||
Map<String, Object> remunFfs = this.splitRemunFfs(idPegawai, bulan);
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Map<String, Object>> listData = (List<Map<String, Object>>) remunFfs.get("remun");
|
||||
Double target = Double.parseDouble(remunFfs.get("targetRemun").toString());
|
||||
String targetFormatted = remunFfs.get("targetRemunFormatted").toString();
|
||||
@ -1372,7 +1364,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
*/
|
||||
double persenOperatorIBS = Double.parseDouble(GetSettingDataFixed("persenRemunOperatorIBS"));
|
||||
double persenAsistenIBS = Double.parseDouble(GetSettingDataFixed("persenRemunAsistenIBS"));
|
||||
double persenAnestesiIBS = Double.parseDouble(GetSettingDataFixed("persenRemunAnestesiIBS"));
|
||||
double persenAnestesi = Double.parseDouble(GetSettingDataFixed("persenRemunAnestesiIBS"));
|
||||
double persenRadiologi = Double.parseDouble(GetSettingDataFixed("persenRemunRadiologi"));
|
||||
double persenLaboratorium = Double.parseDouble(GetSettingDataFixed("persenRemunLaboratorium"));
|
||||
double persenRehabMedik = Double.parseDouble(GetSettingDataFixed("persenRemunRehabMedik"));
|
||||
@ -1387,10 +1379,10 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
/*
|
||||
* Persiapan filter logic remunerasi
|
||||
*/
|
||||
List<Integer> drKkPatologiAnatomiList = pegawaiDao
|
||||
.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI);
|
||||
List<Integer> drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM);
|
||||
List<Integer> drKkGenetika = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_GENETIKA);
|
||||
List<Integer> drKkPatologiAnatomiList = pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_ANATOMI);
|
||||
List<Integer> drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(KK_UMUM);
|
||||
List<Integer> drKkGenetika = pegawaiDao.getDokterByKelompokKerja(KK_GENETIKA);
|
||||
List<Integer> drAnastesiList = pegawaiDao.getDokterByKelompokKerja(KK_ANESTESI);
|
||||
List<Integer> idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan");
|
||||
/*
|
||||
* Set persen jasa dan harga jasa pasien bpjs di ibs, icu
|
||||
@ -1401,77 +1393,82 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
* Mapping persentase jasa remunerasi
|
||||
*/
|
||||
for (Map<String, Object> d : listData) {
|
||||
if (drKsmUmumList.contains(idPegawai)
|
||||
&& Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
||||
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",
|
||||
persenRemunDokterUmumHD / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
&& CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
|
||||
&& Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS)
|
||||
.contains(Integer.parseInt(d.get("idKelompokPasien").toString()))
|
||||
&& Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
|
||||
&& 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 + "%");
|
||||
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"))
|
||||
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
&& CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
|
||||
&& Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS)
|
||||
.contains(Integer.parseInt(d.get("idKelompokPasien").toString()))
|
||||
&& Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
||||
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))
|
||||
&& ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
||||
double persenJasa = persenAsistenIBS / 100;
|
||||
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"))
|
||||
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
&& CommonUtil.isNotNullOrEmpty(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 + "% + " + persenAnestesiIBS + "%");
|
||||
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))
|
||||
&& DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
||||
double persenJasa = persenAnestesi / 100;
|
||||
d.put("persenJasa", persenTarifJasaBedah + "% + " + persenAnestesi + "%");
|
||||
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"))) {
|
||||
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
&& DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
|
||||
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"))) {
|
||||
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
&& ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
||||
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 + "%");
|
||||
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
&& DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
||||
d.put("persenJasa", persenAnestesi + "%");
|
||||
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("hargaJasa", persenAnestesi / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (RADIOLOGI.equals(d.get("idDepartemen"))) {
|
||||
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"))) {
|
||||
} else if (REHAB_MEDIK.equals(d.get("idDepartemen"))) {
|
||||
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"))) {
|
||||
} else if (KONSULTASI.equals(d.get("idGolonganProduk"))) {
|
||||
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"))) {
|
||||
} else if (VISIT.equals(d.get("idGolonganProduk"))) {
|
||||
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"))
|
||||
} else if (drAnastesiList.contains(idPegawai) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
|
||||
d.put("persenJasa", persenTindakan + "%");
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa", persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (drAnastesiList.contains(idPegawai) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
||||
d.put("persenJasa", persenAnestesi + "%");
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa", persenAnestesi / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (drKkGenetika.contains(idPegawai)
|
||||
&& idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString()))
|
||||
&& (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"))) {
|
||||
} else if (Arrays.asList(GENETIKA).contains(Integer.parseInt(d.get("idRuangan").toString()))) {
|
||||
d.put("persenJasa", persenRemunLabGenetika + "%");
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa",
|
||||
@ -1480,12 +1477,12 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
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"))) {
|
||||
} else if (LABORATORIUM.equals(d.get("idDepartemen"))) {
|
||||
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 (CommonUtil.isNotNullOrEmpty(d.get("idRuangan")) && Arrays.asList(Master.Ruangan.ICU_NICU)
|
||||
.contains(Integer.parseInt(d.get("idRuangan").toString()))) {
|
||||
} else if (CommonUtil.isNotNullOrEmpty(d.get("idRuangan"))
|
||||
&& Arrays.asList(ICU_NICU).contains(Integer.parseInt(d.get("idRuangan").toString()))) {
|
||||
double persenJasa = persenTindakan / 100;
|
||||
d.put("persenJasa", persenTarifJasaICU + "% + " + persenTindakan + "%");
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
@ -1658,6 +1655,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
return null;
|
||||
}
|
||||
Map<String, Object> remunFfs = this.splitRemunFfs(idPegawai, bulan);
|
||||
@SuppressWarnings("unchecked")
|
||||
List<Map<String, Object>> listData = (List<Map<String, Object>>) remunFfs.get("ffs");
|
||||
/*
|
||||
* Mendapatkan persentase jasa
|
||||
@ -1665,7 +1663,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
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 persenAnestesi = Double.parseDouble(GetSettingDataFixed("persenJasaAnestesiIBS"));
|
||||
double persenRadiologi = Double.parseDouble(GetSettingDataFixed("persenJasaRadiologi"));
|
||||
double persenLaboratorium = Double.parseDouble(GetSettingDataFixed("persenJasaLaboratorium"));
|
||||
double persenRehabMedik = Double.parseDouble(GetSettingDataFixed("persenJasaRehabMedik"));
|
||||
@ -1678,18 +1676,17 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
/*
|
||||
* Persiapan filter logic remunerasi
|
||||
*/
|
||||
List<Integer> drKkPatologiAnatomiList = pegawaiDao
|
||||
.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI);
|
||||
List<Integer> drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM);
|
||||
List<Integer> drKkGenetika = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_GENETIKA);
|
||||
List<Integer> drKkPatologiAnatomiList = pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_ANATOMI);
|
||||
List<Integer> drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(KK_UMUM);
|
||||
List<Integer> drKkGenetika = pegawaiDao.getDokterByKelompokKerja(KK_GENETIKA);
|
||||
List<Integer> drAnastesiList = pegawaiDao.getDokterByKelompokKerja(KK_ANESTESI);
|
||||
List<Integer> idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan");
|
||||
/*
|
||||
* Mapping persentase jasa remunerasi
|
||||
*/
|
||||
for (Map<String, Object> d : listData) {
|
||||
if (CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
|
||||
&& Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS)
|
||||
.contains(Integer.parseInt(d.get("idKelompokPasien").toString()))) {
|
||||
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))) {
|
||||
/*
|
||||
* Set persen jasa dokter luar yang klaim ffs dengan persen jasa
|
||||
* dari tarif total
|
||||
@ -1701,49 +1698,57 @@ 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 (drKsmUmumList.contains(idPegawai)
|
||||
&& Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
||||
} else if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
||||
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"))) {
|
||||
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
&& DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
|
||||
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"))) {
|
||||
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
&& ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
||||
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 + "%");
|
||||
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
&& DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
||||
d.put("persenJasa", persenAnestesi + "%");
|
||||
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("hargaJasa", persenAnestesi / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (RADIOLOGI.equals(d.get("idDepartemen"))) {
|
||||
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"))) {
|
||||
} else if (REHAB_MEDIK.equals(d.get("idDepartemen"))) {
|
||||
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"))) {
|
||||
} else if (KONSULTASI.equals(d.get("idGolonganProduk"))) {
|
||||
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"))) {
|
||||
} else if (VISIT.equals(d.get("idGolonganProduk"))) {
|
||||
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"))
|
||||
} else if (drAnastesiList.contains(idPegawai) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
|
||||
d.put("persenJasa", persenTindakan + "%");
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa", persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (drAnastesiList.contains(idPegawai) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
||||
d.put("persenJasa", persenAnestesi + "%");
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa", persenAnestesi / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (drKkGenetika.contains(idPegawai)
|
||||
&& idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString()))
|
||||
&& (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"))) {
|
||||
} else if (Arrays.asList(GENETIKA).contains(Integer.parseInt(d.get("idRuangan").toString()))) {
|
||||
d.put("persenJasa", persenJasaLabGenetika + "%");
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa", persenJasaLabGenetika / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
@ -1751,7 +1756,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
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"))) {
|
||||
} else if (LABORATORIUM.equals(d.get("idDepartemen"))) {
|
||||
d.put("persenJasa", persenLaboratorium + "%");
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa", persenLaboratorium / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user