Update service pelayanan pasien
Penyesuaian aturan produk pelayanan kecantikan pada logbook fixed-pay
This commit is contained in:
parent
b9ca0f1722
commit
898d5a6345
@ -206,6 +206,9 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
|
||||
+ "apd.noRec as idAntrianPasienDiperiksa,apd.pegawaiId as idDPJP," + "apd.ruanganId as idRuangan,"
|
||||
+ "case when lower(ru.namaRuangan) like '%eksekutif%' then 'Eksekutif' else 'Reguler' end as jenisRuangan,"
|
||||
+ "ru.departemenId as idDepartemen," + "pd.noRec as idPasienDaftar,pd.pasienId as pasienId,"
|
||||
+ "sum(case when ppp.ObjectJenisPetugasPeId = 4 and ppd.komponenHargaId = 35 then ppd.hargaJual else 0.0 end) as hargaJasaD,"
|
||||
+ "sum(case when ppp.ObjectJenisPetugasPeId = 13 and ppd.komponenHargaId = 22 then ppd.hargaJual else 0.0 end) as hargaJasaAs,"
|
||||
+ "sum(case when ppp.ObjectJenisPetugasPeId = 6 and ppd.komponenHargaId = 21 then ppd.hargaJual else 0.0 end) as hargaJasaAn,"
|
||||
+ "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 "
|
||||
|
||||
@ -154,8 +154,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
PelayananPasien model = new PelayananPasien();
|
||||
model = pelayananPasienConverter.transferVOToModel(vo, model);
|
||||
model.setPasien(antrianPasienDiPeriksaDao.finByNoIdAndTglRegistrasi(Short.parseShort("0"),
|
||||
vo.getPasien().getId(), vo.getTglRegistrasi()));
|
||||
model.setPasien(antrianPasienDiPeriksaDao.finByNoIdAndTglRegistrasi((short) 0, vo.getPasien().getId(),
|
||||
vo.getTglRegistrasi()));
|
||||
if (CommonUtil.isNotNullOrEmpty(vo.getJenisObat())) {
|
||||
model.setJenisObat(jenisObatConverter.transferVOToModel(vo.getJenisObat(), new JenisObat()));
|
||||
}
|
||||
@ -546,6 +546,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<Integer> idsMonitoringHemodinamikGagalOrgan = splitDataSettingDatafixed(
|
||||
"idMonitoringHemodinamikGagalOrgan");
|
||||
List<Integer> idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan");
|
||||
List<Integer> idProdukKecantikanFixedPay = splitDataSettingDatafixed("idProdukKecantikanFixedPay");
|
||||
if (drKkPatologiAnatomiList.contains(idPegawai)) {
|
||||
listDetailJenisProduk = idsRegDJPPenunjangPA;
|
||||
} else if (pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_KLINIK).contains(idPegawai)) {
|
||||
@ -564,6 +565,15 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
*/
|
||||
List<Map<String, Object>> listRatedPay = pelayananPasienDao.findPelayananPasienByPetugasAndTanggal(idPegawai,
|
||||
tglAwal, tglAkhir);
|
||||
/*
|
||||
* Pemisahan produk kecantikan untuk fixed pay
|
||||
*/
|
||||
List<Map<String, Object>> listKecantikanFixedPay = listRatedPay.stream()
|
||||
.filter(d -> idProdukKecantikanFixedPay.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
.collect(Collectors.toList());
|
||||
listRatedPay = listRatedPay.stream()
|
||||
.filter(d -> !idProdukKecantikanFixedPay.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
.collect(Collectors.toList());
|
||||
List<Integer> allPaketId = mapProdukPaketDao.findProdukEntriId();
|
||||
List<Map<String, Object>> listFixedPay = listRatedPay.stream()
|
||||
.filter(d -> allPaketId.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
@ -1508,23 +1518,23 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
{
|
||||
List<Map<String, Object>> listPelayananFixedPay = new ArrayList<>();
|
||||
if (CommonUtil.isNotNullOrEmpty(listFixedPay))
|
||||
listPelayananFixedPay = setPelayananPaket(idPegawai, bulan, listFixedPay);
|
||||
listPelayananFixedPay = setPelayananPaket(idPegawai, listFixedPay);
|
||||
if (CommonUtil.isNotNullOrEmpty(listKecantikanFixedPay))
|
||||
listPelayananFixedPay.addAll(setKecantikanFixedPay(listKecantikanFixedPay));
|
||||
result.put("fixed-pay", listPelayananFixedPay);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<Map<String, Object>> setPelayananPaket(Integer idPegawai, String bulan,
|
||||
List<Map<String, Object>> listData) {
|
||||
private List<Map<String, Object>> setKecantikanFixedPay(List<Map<String, Object>> listData) {
|
||||
/*
|
||||
* Transformasi data paket menggunakan mapprodukpaket dan
|
||||
* mapprodukpakettoproduk
|
||||
* Transformasi data produk kecantikan
|
||||
*/
|
||||
List<Map<String, Object>> listFixedPay = transformPelayananPaket(idPegawai, bulan, listData);
|
||||
List<Map<String, Object>> listFixedPay = transformPelayananKecantikan(listData);
|
||||
/*
|
||||
* Populate data filter
|
||||
*/
|
||||
List<Map<String, Object>> dataTanggal = groupingTanggalPaket(listFixedPay);
|
||||
List<Map<String, Object>> dataTanggal = distinctGroupFixedPay(listFixedPay);
|
||||
/*
|
||||
* Pengelompokkan produk layanan
|
||||
*/
|
||||
@ -1562,7 +1572,54 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<Map<String, Object>> groupingTanggalPaket(List<Map<String, Object>> listFixedPay) {
|
||||
private List<Map<String, Object>> setPelayananPaket(Integer idPegawai, List<Map<String, Object>> listData) {
|
||||
/*
|
||||
* Transformasi data paket menggunakan mapprodukpaket dan
|
||||
* mapprodukpakettoproduk
|
||||
*/
|
||||
List<Map<String, Object>> listFixedPay = transformPelayananPaket(idPegawai, listData);
|
||||
/*
|
||||
* Populate data filter
|
||||
*/
|
||||
List<Map<String, Object>> dataTanggal = distinctGroupFixedPay(listFixedPay);
|
||||
/*
|
||||
* Pengelompokkan produk layanan
|
||||
*/
|
||||
List<Map<String, Object>> result = groupingKategoriFixedPay(dataTanggal);
|
||||
/*
|
||||
* Final sorting
|
||||
*/
|
||||
result = result.stream()
|
||||
.sorted(Comparator.comparing(o1 -> (Date) o1.get("tglPelayanan"),
|
||||
Comparator.nullsLast(Comparator.naturalOrder())))
|
||||
.sorted(Comparator.comparing(o2 -> Integer.parseInt(o2.get("sortIdKelompokPasien").toString()),
|
||||
Comparator.nullsLast(Comparator.naturalOrder())))
|
||||
.sorted(Comparator.comparing(o3 -> Integer.parseInt(o3.get("sortIdKelas").toString()),
|
||||
Comparator.nullsLast(Comparator.naturalOrder())))
|
||||
.sorted(Comparator.comparing(o4 -> o4.get("namaProduk").toString()))
|
||||
.sorted(Comparator.comparing(o5 -> o5.get("jenisRuangan").toString(), Comparator.reverseOrder()))
|
||||
.sorted(Comparator.comparing(o4 -> o4.get("bulanPulangIbu").toString())).collect(Collectors.toList());
|
||||
result.forEach(r -> {
|
||||
/*
|
||||
* Hapus informasi tidak perlu
|
||||
*/
|
||||
r.remove("idDPJP");
|
||||
r.remove("tglPelayanan");
|
||||
r.remove("tanggal");
|
||||
r.remove("idKelas");
|
||||
r.remove("namaKelas");
|
||||
r.remove("idPelayananPasienPetugas");
|
||||
r.remove("idPelayananPasien");
|
||||
r.remove("norecs");
|
||||
r.remove("idDepartemen");
|
||||
r.remove("idPasienDaftar");
|
||||
r.remove("idPegawai");
|
||||
r.remove("idAntrianPasienDiperiksa");
|
||||
});
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<Map<String, Object>> distinctGroupFixedPay(List<Map<String, Object>> listFixedPay) {
|
||||
List<Integer> listIdProduk = new ArrayList<>();
|
||||
List<Double> listHargaJasa = new ArrayList<>();
|
||||
List<Double> listHargaJual = new ArrayList<>();
|
||||
@ -1592,8 +1649,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
return groupingTanggalFixedPay(listFixedPay);
|
||||
}
|
||||
|
||||
private List<Map<String, Object>> transformPelayananPaket(Integer idPegawai, String bulan,
|
||||
List<Map<String, Object>> listData) {
|
||||
private List<Map<String, Object>> transformPelayananPaket(Integer idPegawai, List<Map<String, Object>> listData) {
|
||||
List<Integer> drKsmObgyn = pegawaiDao.getDokterByKsm(KSM_OBGYN);
|
||||
SimpleDateFormat month = new SimpleDateFormat("MMM-yyyy", new Locale("in", "ID"));
|
||||
listData.forEach(d -> {
|
||||
@ -1773,6 +1829,24 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
return listData;
|
||||
}
|
||||
|
||||
private List<Map<String, Object>> transformPelayananKecantikan(List<Map<String, Object>> listData) {
|
||||
listData.forEach(d -> {
|
||||
if (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")))
|
||||
d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString()))
|
||||
+ "% komponen tarif, sayatan ke-" + d.get("urutanSayatan").toString());
|
||||
});
|
||||
listData.forEach(d -> {
|
||||
double hargaJasa = Double.parseDouble(d.get("hargaJasaD").toString())
|
||||
+ Double.parseDouble(d.get("hargaJasaAs").toString())
|
||||
+ Double.parseDouble(d.get("hargaJasaAn").toString());
|
||||
d.put("tglPulangIbu", null);
|
||||
d.put("bulanPulangIbu", "");
|
||||
d.put("hargaJasa", hargaJasa);
|
||||
d.put("isBatalPaket", false);
|
||||
});
|
||||
return listData;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> logbookRemunTarifDokter(Integer idPegawai, String bulan) {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user