Update service pelayanan pasien

Pembuatan custom porsi persentase paket bayi tabung
This commit is contained in:
Salman Manoe 2023-08-02 15:12:53 +07:00
parent f91bcc3089
commit 07300a5b58
2 changed files with 58 additions and 14 deletions

View File

@ -329,6 +329,8 @@ public class Master {
public static final class Produk {
public static final int KARCIS = 395;
public static final Integer KONSULTASI_DOKTER_JAGA = 400;
public static final Integer PAKET_BAYI_TABUNG = 1002129402;
public static final Integer[] DOKTER_UMUM_IGD = { 783, 401333, 402413, 402414, 402449, 402484 };
public static final Integer[] KONSULTASI_EKSEKUTIF = { 401092, 401093 };
@ -336,8 +338,6 @@ public class Master {
public static final Integer[] PENUNJANG_BUKAN_ANASTESI = { 13409, 15208, 19325, 19346, 19371, 19405, 19406,
19535, 19599, 402009, 10009835, 10012269, 1002117344, 1002117938, 1002117963, 1002117964, 1002117965,
1002117966 };
public static final Integer KONSULTASI_DOKTER_JAGA = 400;
}
public static final class Profesi {

View File

@ -35,6 +35,7 @@ import static com.jasamedika.medifirst2000.constants.Master.JenisProduk.OBAT_ALK
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.Produk.PAKET_BAYI_TABUNG;
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;
@ -439,7 +440,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
/*
* Mendapatkan persentase jasa
*/
double persenOperatorIBS = Double.parseDouble(GetSettingDataFixed("persenRemunOperatorIBS"));
double persenOperator = Double.parseDouble(GetSettingDataFixed("persenRemunOperatorIBS"));
double persenAsistenIBS = Double.parseDouble(GetSettingDataFixed("persenRemunAsistenIBS"));
double persenAnestesi = Double.parseDouble(GetSettingDataFixed("persenRemunAnestesiIBS"));
double persenRadiologi = Double.parseDouble(GetSettingDataFixed("persenRemunRadiologi"));
@ -453,6 +454,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
double persenRemunDokterPA = Double.parseDouble(GetSettingDataFixed("persenRemunDokterPA"));
double persenRemunDokterUmumHD = Double.parseDouble(GetSettingDataFixed("persenRemunDokterUmumHD"));
double persenRemunLabGenetika = Double.parseDouble(GetSettingDataFixed("persenRemunLabGenetika"));
double persenRemunOperatorPBT = Double.parseDouble(GetSettingDataFixed("persenRemunOperatorPBT"));
double persenRemunAnestesiPBT = Double.parseDouble(GetSettingDataFixed("persenRemunAnestesiPBT"));
/*
* Persiapan filter logic remunerasi
*/
@ -517,13 +520,23 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
* Untuk semua klaim di ruangan klinik karyawan
*/
d.put("hargaJasa", 0.0);
} else if (DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))
&& PAKET_BAYI_TABUNG.equals(d.get("idProduk"))) {
double persenJasa = persenOperator / 100;
double persenPBT = persenRemunOperatorPBT / 100;
d.put("hargaJasa", persenJasa * persenPBT * Double.parseDouble(d.get("hargaJual").toString()));
} else if (DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))
&& PAKET_BAYI_TABUNG.equals(d.get("idProduk"))) {
double persenJasa = persenAnestesi / 100;
double persenPBT = persenRemunAnestesiPBT / 100;
d.put("hargaJasa", persenJasa * persenPBT * Double.parseDouble(d.get("hargaJual").toString()));
} else if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa", persenRemunDokterUmumHD / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
&& CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))
&& DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
double persenJasa = persenOperatorIBS / 100;
double persenJasa = persenOperator / 100;
d.put("hargaJasa", persenJasa * persenTarifIBS * Double.parseDouble(d.get("hargaJual").toString()));
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
&& CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
@ -539,7 +552,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
d.put("hargaJasa", persenJasa * persenTarifIBS * Double.parseDouble(d.get("hargaJual").toString()));
} 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()));
d.put("hargaJasa", persenOperator / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} 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()));
@ -1417,7 +1430,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
/*
* Mendapatkan persentase jasa
*/
double persenOperatorIBS = Double.parseDouble(GetSettingDataFixed("persenRemunOperatorIBS"));
double persenOperator = Double.parseDouble(GetSettingDataFixed("persenRemunOperatorIBS"));
double persenAsistenIBS = Double.parseDouble(GetSettingDataFixed("persenRemunAsistenIBS"));
double persenAnestesi = Double.parseDouble(GetSettingDataFixed("persenRemunAnestesiIBS"));
double persenRadiologi = Double.parseDouble(GetSettingDataFixed("persenRemunRadiologi"));
@ -1431,6 +1444,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
double persenRemunDokterPA = Double.parseDouble(GetSettingDataFixed("persenRemunDokterPA"));
double persenRemunDokterUmumHD = Double.parseDouble(GetSettingDataFixed("persenRemunDokterUmumHD"));
double persenRemunLabGenetika = Double.parseDouble(GetSettingDataFixed("persenRemunLabGenetika"));
double persenRemunOperatorPBT = Double.parseDouble(GetSettingDataFixed("persenRemunOperatorPBT"));
double persenRemunAnestesiPBT = Double.parseDouble(GetSettingDataFixed("persenRemunAnestesiPBT"));
/*
* Persiapan filter logic remunerasi
*/
@ -1448,7 +1463,20 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
* Mapping persentase jasa remunerasi
*/
for (Map<String, Object> d : listData) {
if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
if (DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")) && PAKET_BAYI_TABUNG.equals(d.get("idProduk"))) {
double persenJasa = persenOperator / 100;
double persenPBT = persenRemunOperatorPBT / 100;
d.put("persenJasa", persenRemunOperatorPBT + "% + " + persenOperator + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenPBT * persenJasa * Double.parseDouble(d.get("hargaJual").toString()));
} else if (DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))
&& PAKET_BAYI_TABUNG.equals(d.get("idProduk"))) {
double persenJasa = persenAnestesi / 100;
double persenPBT = persenRemunAnestesiPBT / 100;
d.put("persenJasa", persenRemunAnestesiPBT + "% + " + persenAnestesi + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenPBT * persenJasa * Double.parseDouble(d.get("hargaJual").toString()));
} else 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",
@ -1457,8 +1485,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
&& CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
&& 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 + "%");
double persenJasa = persenOperator / 100;
d.put("persenJasa", persenTarifJasaBedah + "% + " + persenOperator + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenJasa * persenTarifIBS * Double.parseDouble(d.get("hargaJual").toString()));
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
@ -1479,9 +1507,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
d.put("hargaJasa", persenJasa * persenTarifIBS * Double.parseDouble(d.get("hargaJual").toString()));
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
&& DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
d.put("persenJasa", persenOperatorIBS + "%");
d.put("persenJasa", persenOperator + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
d.put("hargaJasa", persenOperator / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
&& ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
d.put("persenJasa", persenAsistenIBS + "%");
@ -1716,7 +1744,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
* Mendapatkan persentase jasa
*/
double persenBPJS = Double.parseDouble(GetSettingDataFixed("persenJasaBPJS"));
double persenOperatorIBS = Double.parseDouble(GetSettingDataFixed("persenJasaOperatorIBS"));
double persenOperator = Double.parseDouble(GetSettingDataFixed("persenJasaOperatorIBS"));
double persenAsistenIBS = Double.parseDouble(GetSettingDataFixed("persenJasaAsistenIBS"));
double persenAnestesi = Double.parseDouble(GetSettingDataFixed("persenJasaAnestesiIBS"));
double persenRadiologi = Double.parseDouble(GetSettingDataFixed("persenJasaRadiologi"));
@ -1728,6 +1756,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
double persenJasaDokterPA = Double.parseDouble(GetSettingDataFixed("persenJasaDokterPA"));
double persenJasaDokterUmumHD = Double.parseDouble(GetSettingDataFixed("persenJasaDokterUmumHD"));
double persenJasaLabGenetika = Double.parseDouble(GetSettingDataFixed("persenJasaLabGenetika"));
double persenJasaOperatorPBT = Double.parseDouble(GetSettingDataFixed("persenJasaOperatorPBT"));
double persenJasaAnestesiPBT = Double.parseDouble(GetSettingDataFixed("persenJasaAnestesiPBT"));
/*
* Persiapan filter logic remunerasi
*/
@ -1753,6 +1783,20 @@ 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 (DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))
&& PAKET_BAYI_TABUNG.equals(d.get("idProduk"))) {
double persenJasa = persenOperator / 100;
double persenPBT = persenJasaOperatorPBT / 100;
d.put("persenJasa", persenJasaOperatorPBT + "% + " + persenOperator + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenPBT * persenJasa * Double.parseDouble(d.get("hargaJual").toString()));
} else if (DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))
&& PAKET_BAYI_TABUNG.equals(d.get("idProduk"))) {
double persenJasa = persenAnestesi / 100;
double persenPBT = persenJasaAnestesiPBT / 100;
d.put("persenJasa", persenJasaAnestesiPBT + "% + " + persenAnestesi + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenPBT * persenJasa * Double.parseDouble(d.get("hargaJual").toString()));
} else if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
d.put("persenJasa", persenJasaDokterUmumHD + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
@ -1760,9 +1804,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
persenJasaDokterUmumHD / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
&& DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
d.put("persenJasa", persenOperatorIBS + "%");
d.put("persenJasa", persenOperator + "%");
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
d.put("hargaJasa", persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
d.put("hargaJasa", persenOperator / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (BEDAH_SENTRAL.equals(d.get("idDepartemen"))
&& ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
d.put("persenJasa", persenAsistenIBS + "%");