Update service pelayanan pasien
Penerapan aturan diskon jasa medis di logbook dokter remunerasi yang baru
This commit is contained in:
parent
b45c45652c
commit
747885a75e
@ -208,13 +208,24 @@ public interface PelayananPasienDao extends PagingAndSortingRepository<Pelayanan
|
||||
+ "pp.noRec as idPelayananPasien,coalesce(pp.hargaJual,0) as hargaJual,coalesce(pp.jumlah,0) as jumlah,"
|
||||
+ "pp.tglPelayanan as tglPelayanan,to_char(pp.tglPelayanan,'yyyy-MM-dd') as tanggal,"
|
||||
+ "apd.noRec as idAntrianPasienDiperiksa,apd.pegawaiId as idDPJP," + "ru.departemenId as idDepartemen,"
|
||||
+ "pd.noRec as idPasienDaftar) " + "from PelayananPasienPetugas ppp " + "inner join ppp.pelayananPasien pp "
|
||||
+ "pd.noRec as idPasienDaftar, "
|
||||
+ "sum(case when ppd.komponenHargaId = 35 then ppd.hargaDiscount else 0.0 end) as totalDiskon) "
|
||||
+ "from PelayananPasienDetail ppd, PelayananPasienPetugas ppp " + "inner join ppp.pelayananPasien pp "
|
||||
+ "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd " + "left join pp.produk pr "
|
||||
+ "left join pp.kelas kls " + "left join pd.kelompokPasien kp " + "left join apd.ruangan ru "
|
||||
+ "left join pr.detailJenisProduk djp " + "where (ppp.statusEnabled is true or ppp.statusEnabled is null) "
|
||||
+ "left join pr.detailJenisProduk djp "
|
||||
+ "where ppd.pelayananPasienId = pp.noRec and (ppp.statusEnabled is true or ppp.statusEnabled is null) "
|
||||
+ "and (pp.statusEnabled is true or pp.statusEnabled is null) "
|
||||
+ "and (pd.statusEnabled is true or pd.statusEnabled is null) " + "and ppp.ObjectPegawaiId = :pegawaiId "
|
||||
+ "and pp.tglPelayanan between :tglAwal and :tglAkhir "
|
||||
+ "and pp.tglPelayanan between :tglAwal and :tglAkhir " + "group by pr.id,pr.namaProduk,"
|
||||
+ "pr.detailJenisProdukId,pr.golonganProdukId," + "djp.jenisProdukId," + "kp.id,"
|
||||
+ "case when kp.id = 2 then 1 when kp.id = 4 then 2 when kp.id = 8 then 3 when kp.id = 9 then 4 when kp.id = 1 then 5 when kp.id = 5 then 6 when kp.id = 6 then 7 when kp.id = 3 then 8 when kp.id = 7 then 9 else 10 end,"
|
||||
+ "kp.kelompokPasien," + "kls.id,"
|
||||
+ "case when kls.id = 6 then 1 when kls.id = 1 then 2 when kls.id = 2 then 3 when kls.id =3 then 4 when kls.id = 8 then 5 when kls.id = 5 then 6 when kls.id = 21 then 7 else 8 end,"
|
||||
+ "kls.namaKelas," + "ppp.noRec," + "ppp.ObjectJenisPetugasPeId,ppp.ObjectPegawaiId,"
|
||||
+ "pp.noRec,coalesce(pp.hargaJual,0),coalesce(pp.jumlah,0),"
|
||||
+ "pp.tglPelayanan,to_char(pp.tglPelayanan,'yyyy-MM-dd')," + "apd.noRec,apd.pegawaiId," + "ru.departemenId,"
|
||||
+ "pd.noRec "
|
||||
+ "order by case when kp.id = 2 then 1 when kp.id = 4 then 2 when kp.id = 8 then 3 when kp.id = 9 then 4 "
|
||||
+ "when kp.id = 1 then 5 when kp.id = 5 then 6 when kp.id = 6 then 7 when kp.id = 3 then 8 when kp.id = 7 then 9 else 10 end asc, "
|
||||
+ "pp.tglPelayanan, " + "pp.hargaJual, "
|
||||
|
||||
@ -33,6 +33,7 @@ import com.jasamedika.medifirst2000.dao.PasienDaftarDao;
|
||||
import com.jasamedika.medifirst2000.dao.PegawaiDao;
|
||||
import com.jasamedika.medifirst2000.dao.PegawaiJadwalKerjaDao;
|
||||
import com.jasamedika.medifirst2000.dao.PelayananPasienDao;
|
||||
import com.jasamedika.medifirst2000.dao.PelayananPasienDetailDao;
|
||||
import com.jasamedika.medifirst2000.dao.StrukPelayananDao;
|
||||
import com.jasamedika.medifirst2000.dao.TargetRemunDokterDetailDao;
|
||||
import com.jasamedika.medifirst2000.entities.JenisObat;
|
||||
@ -477,7 +478,10 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
* Mapping persentase jasa remunerasi
|
||||
*/
|
||||
for (Map<String, Object> d : listData)
|
||||
if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskon"))
|
||||
&& Double.parseDouble(d.get("totalDiskon").toString()) > 0.0) {
|
||||
d.put("hargaJasa", 0.0);
|
||||
} else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
&& Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien"))) {
|
||||
double persenTarif = persenTarifJasaBedah / 100;
|
||||
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
|
||||
@ -838,45 +842,60 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
|
||||
double persenJasa = persenOperatorIBS / 100;
|
||||
d.put("persenJasa", persenOperatorIBS.toString() + "%");
|
||||
d.put("hargaJasa", persenJasa * persenTarif * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa",
|
||||
persenJasa * persenTarif * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
||||
double persenJasa = persenAsistenIBS / 100;
|
||||
d.put("persenJasa", persenAsistenIBS.toString() + "%");
|
||||
d.put("hargaJasa", persenJasa * persenTarif * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa",
|
||||
persenJasa * persenTarif * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
||||
double persenJasa = persenAnestesiIBS / 100;
|
||||
d.put("persenJasa", persenAnestesiIBS.toString() + "%");
|
||||
d.put("hargaJasa", persenJasa * persenTarif * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa",
|
||||
persenJasa * persenTarif * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
}
|
||||
} else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))) {
|
||||
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
|
||||
d.put("persenJasa", persenOperatorIBS.toString() + "%");
|
||||
d.put("hargaJasa", persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa", persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
||||
d.put("persenJasa", persenAsistenIBS.toString() + "%");
|
||||
d.put("hargaJasa", persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa", persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
||||
d.put("persenJasa", persenAnestesiIBS.toString() + "%");
|
||||
d.put("hargaJasa", persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
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("hargaJasa", persenRadiologi / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa", persenRadiologi / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (Master.Departemen.LABORATORIUM.equals(d.get("idDepartemen"))) {
|
||||
d.put("persenJasa", persenLaboratorium.toString() + "%");
|
||||
d.put("hargaJasa", persenLaboratorium / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa", persenLaboratorium / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (Master.Departemen.REHAB_MEDIK.equals(d.get("idDepartemen"))) {
|
||||
d.put("persenJasa", persenRehabMedik.toString() + "%");
|
||||
d.put("hargaJasa", persenRehabMedik / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
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("hargaJasa", persenKonsultasi / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
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("hargaJasa", persenVisite / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa", persenVisite / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else {
|
||||
d.put("persenJasa", persenTindakan.toString() + "%");
|
||||
d.put("hargaJasa", persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa", persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
}
|
||||
}
|
||||
/*
|
||||
@ -1023,6 +1042,7 @@ 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());
|
||||
@ -1036,36 +1056,49 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
* Mapping persentase jasa remunerasi
|
||||
*/
|
||||
for (Map<String, Object> d : listData) {
|
||||
if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien"))) {
|
||||
d.put("persenJasa", persenBPJS.toString() + "%");
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa", persenBPJS / 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("hargaJasa", persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
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("hargaJasa", persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
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("hargaJasa", persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
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("hargaJasa", persenRadiologi / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa", persenRadiologi / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (Master.Departemen.LABORATORIUM.equals(d.get("idDepartemen"))) {
|
||||
d.put("persenJasa", persenLaboratorium.toString() + "%");
|
||||
d.put("hargaJasa", persenLaboratorium / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa", persenLaboratorium / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else if (Master.Departemen.REHAB_MEDIK.equals(d.get("idDepartemen"))) {
|
||||
d.put("persenJasa", persenRehabMedik.toString() + "%");
|
||||
d.put("hargaJasa", persenRehabMedik / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
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("hargaJasa", persenKonsultasi / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
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("hargaJasa", persenVisite / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa", persenVisite / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
} else {
|
||||
d.put("persenJasa", persenTindakan.toString() + "%");
|
||||
d.put("hargaJasa", persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
d.put("hargaJasa", persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||
}
|
||||
}
|
||||
/*
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user