Update service pelayanan pasien
Pembuatan api untuk logbook tarif untuk klaim mpp
This commit is contained in:
parent
f985c4ebeb
commit
f91bcc3089
@ -26,6 +26,8 @@ public interface PelayananPasienService {
|
|||||||
|
|
||||||
List<Map<String, Object>> logbookFfsTarifDokter(Integer idPegawai, String bulan);
|
List<Map<String, Object>> logbookFfsTarifDokter(Integer idPegawai, String bulan);
|
||||||
|
|
||||||
|
List<Map<String, Object>> logbookKlaimMpp(Integer idPegawai, String bulan);
|
||||||
|
|
||||||
List<Map<String, Object>> detailLogbookTarifDokter(Integer idPegawai, List<String> norecs);
|
List<Map<String, Object>> detailLogbookTarifDokter(Integer idPegawai, List<String> norecs);
|
||||||
|
|
||||||
List<TagihanPendaftaranDto> tagihan(String noRegistrasi);
|
List<TagihanPendaftaranDto> tagihan(String noRegistrasi);
|
||||||
|
|||||||
@ -575,15 +575,18 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
} else {
|
} else {
|
||||||
d.put("hargaJasa", persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
d.put("hargaJasa", persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
* Inisialisasi collect logbook klaim MPP
|
||||||
|
*/
|
||||||
|
List<Map<String, Object>> listPelayananKlaimMpp = new ArrayList<>();
|
||||||
/*
|
/*
|
||||||
* Alokasi data diambil terlebih dahulu untuk kelompok BPJS, Jaminan
|
* Alokasi data diambil terlebih dahulu untuk kelompok BPJS, Jaminan
|
||||||
* Kemenkes
|
* Kemenkes
|
||||||
*/
|
*/
|
||||||
List<Map<String, Object>> rawDataBpjs0 = new ArrayList<>();
|
List<Map<String, Object>> rawDataBpjs0 = listData
|
||||||
for (Map<String, Object> d : listData)
|
.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien")) && Arrays
|
||||||
if (CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
|
.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString())))
|
||||||
&& Arrays.asList(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString())))
|
.collect(Collectors.toList());
|
||||||
rawDataBpjs0.add(d);
|
|
||||||
/*
|
/*
|
||||||
* Filter tindakan operasi untuk pasien BPJS hanya diambil tarif
|
* Filter tindakan operasi untuk pasien BPJS hanya diambil tarif
|
||||||
* tertinggi saja dalam satu siklus pelayanan
|
* tertinggi saja dalam satu siklus pelayanan
|
||||||
@ -610,6 +613,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
rawDataBpjs1.add(d);
|
rawDataBpjs1.add(d);
|
||||||
} else if (!BEDAH_SENTRAL.equals(d.get("idDepartemen"))) {
|
} else if (!BEDAH_SENTRAL.equals(d.get("idDepartemen"))) {
|
||||||
rawDataBpjs1.add(d);
|
rawDataBpjs1.add(d);
|
||||||
|
} else {
|
||||||
|
listPelayananKlaimMpp.add(d);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
@ -658,6 +663,11 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
count++;
|
count++;
|
||||||
e.put("count", count);
|
e.put("count", count);
|
||||||
break;
|
break;
|
||||||
|
} else 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"))
|
||||||
|
&& Integer.parseInt(e.get("count").toString()) > maxVisit) {
|
||||||
|
listPelayananKlaimMpp.add(d);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
@ -718,6 +728,11 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
count++;
|
count++;
|
||||||
e.put("count", count);
|
e.put("count", count);
|
||||||
break;
|
break;
|
||||||
|
} else 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"))
|
||||||
|
&& Integer.parseInt(e.get("count").toString()) > maxVisit) {
|
||||||
|
listPelayananKlaimMpp.add(d);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
@ -782,6 +797,11 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
count++;
|
count++;
|
||||||
e.put("count", count);
|
e.put("count", count);
|
||||||
break;
|
break;
|
||||||
|
} else 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"))
|
||||||
|
&& Integer.parseInt(e.get("count").toString()) > maxMonitoring) {
|
||||||
|
listPelayananKlaimMpp.add(d);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
@ -789,8 +809,15 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
if ((CommonUtil.isNullOrEmpty(d.get("idRuangan")) || (CommonUtil.isNotNullOrEmpty(d.get("idRuangan"))
|
if ((CommonUtil.isNullOrEmpty(d.get("idRuangan")) || (CommonUtil.isNotNullOrEmpty(d.get("idRuangan"))
|
||||||
&& !Arrays.asList(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()))
|
|| !idsMonitoringHemodinamikGagalOrgan.contains(Integer.parseInt(d.get("idProduk").toString()))
|
||||||
&& count == 1)
|
&& count == 1) {
|
||||||
rawDataBpjs4.add(d);
|
rawDataBpjs4.add(d);
|
||||||
|
} else 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) {
|
||||||
|
listPelayananKlaimMpp.add(d);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
rawDataBpjs4.addAll(rawDataBpjs3);
|
rawDataBpjs4.addAll(rawDataBpjs3);
|
||||||
@ -843,14 +870,24 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
count++;
|
count++;
|
||||||
e.put("count", count);
|
e.put("count", count);
|
||||||
break;
|
break;
|
||||||
|
} else 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"))
|
||||||
|
&& Integer.parseInt(e.get("count").toString()) > maxMonitoring) {
|
||||||
|
listPelayananKlaimMpp.add(d);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (((!NICU.equals(d.get("idRuangan")) && !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())))
|
|| !idsMonitoringIntervensi.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||||
&& count == 1)
|
&& count == 1) {
|
||||||
rawDataBpjs5.add(d);
|
rawDataBpjs5.add(d);
|
||||||
|
} else if (((!NICU.equals(d.get("idRuangan")) && !NICU_COVID.equals(d.get("idRuangan")))
|
||||||
|
|| !idsMonitoringIntervensi.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||||
|
&& count > 1) {
|
||||||
|
listPelayananKlaimMpp.add(d);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
rawDataBpjs5.addAll(rawDataBpjs4);
|
rawDataBpjs5.addAll(rawDataBpjs4);
|
||||||
@ -1305,35 +1342,53 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
{
|
||||||
* Sorting data remun diurutkan
|
/*
|
||||||
*/
|
* Sorting data remun diurutkan
|
||||||
listPelayananRemun = listPelayananRemun.stream()
|
*/
|
||||||
.sorted(Comparator.comparing(o1 -> (Date) o1.get("tglPelayanan"),
|
listPelayananRemun = listPelayananRemun.stream()
|
||||||
Comparator.nullsLast(Comparator.naturalOrder())))
|
.sorted(Comparator.comparing(o1 -> (Date) o1.get("tglPelayanan"),
|
||||||
.sorted(Comparator.comparing(o2 -> Integer.parseInt(o2.get("sortIdKelompokPasien").toString()),
|
Comparator.nullsLast(Comparator.naturalOrder())))
|
||||||
Comparator.nullsLast(Comparator.naturalOrder())))
|
.sorted(Comparator.comparing(o2 -> Integer.parseInt(o2.get("sortIdKelompokPasien").toString()),
|
||||||
.sorted(Comparator.comparing(o3 -> Integer.parseInt(o3.get("sortIdKelas").toString()),
|
Comparator.nullsLast(Comparator.naturalOrder())))
|
||||||
Comparator.nullsLast(Comparator.naturalOrder())))
|
.sorted(Comparator.comparing(o3 -> Integer.parseInt(o3.get("sortIdKelas").toString()),
|
||||||
.sorted(Comparator.comparing(o4 -> o4.get("namaProduk").toString())).collect(Collectors.toList());
|
Comparator.nullsLast(Comparator.naturalOrder())))
|
||||||
result.put("remun", listPelayananRemun);
|
.sorted(Comparator.comparing(o4 -> o4.get("namaProduk").toString())).collect(Collectors.toList());
|
||||||
/*
|
result.put("remun", listPelayananRemun);
|
||||||
* Informasi target
|
/*
|
||||||
*/
|
* Informasi target
|
||||||
result.put("targetRemun", targetRemun);
|
*/
|
||||||
result.put("targetRemunFormatted", new DecimalFormat("Rp#,##0.00").format(targetRemun));
|
result.put("targetRemun", targetRemun);
|
||||||
/*
|
result.put("targetRemunFormatted", new DecimalFormat("Rp#,##0.00").format(targetRemun));
|
||||||
* Sorting data ffs diurutkan
|
}
|
||||||
*/
|
{
|
||||||
listPelayananFfs = listPelayananFfs.stream()
|
/*
|
||||||
.sorted(Comparator.comparing(o -> (Date) o.get("tglPelayanan"),
|
* Sorting data ffs diurutkan
|
||||||
Comparator.nullsLast(Comparator.naturalOrder())))
|
*/
|
||||||
.sorted(Comparator.comparing(o -> Integer.parseInt(o.get("sortIdKelompokPasien").toString()),
|
listPelayananFfs = listPelayananFfs.stream()
|
||||||
Comparator.nullsLast(Comparator.naturalOrder())))
|
.sorted(Comparator.comparing(o -> (Date) o.get("tglPelayanan"),
|
||||||
.sorted(Comparator.comparing(o -> Integer.parseInt(o.get("sortIdKelas").toString()),
|
Comparator.nullsLast(Comparator.naturalOrder())))
|
||||||
Comparator.nullsLast(Comparator.naturalOrder())))
|
.sorted(Comparator.comparing(o -> Integer.parseInt(o.get("sortIdKelompokPasien").toString()),
|
||||||
.sorted(Comparator.comparing(o -> o.get("namaProduk").toString())).collect(Collectors.toList());
|
Comparator.nullsLast(Comparator.naturalOrder())))
|
||||||
result.put("ffs", listPelayananFfs);
|
.sorted(Comparator.comparing(o -> Integer.parseInt(o.get("sortIdKelas").toString()),
|
||||||
|
Comparator.nullsLast(Comparator.naturalOrder())))
|
||||||
|
.sorted(Comparator.comparing(o -> o.get("namaProduk").toString())).collect(Collectors.toList());
|
||||||
|
result.put("ffs", listPelayananFfs);
|
||||||
|
}
|
||||||
|
{
|
||||||
|
/*
|
||||||
|
* Sorting data klaim mpp diurutkan
|
||||||
|
*/
|
||||||
|
listPelayananKlaimMpp = listPelayananKlaimMpp.stream()
|
||||||
|
.sorted(Comparator.comparing(o -> (Date) o.get("tglPelayanan"),
|
||||||
|
Comparator.nullsLast(Comparator.naturalOrder())))
|
||||||
|
.sorted(Comparator.comparing(o -> Integer.parseInt(o.get("sortIdKelompokPasien").toString()),
|
||||||
|
Comparator.nullsLast(Comparator.naturalOrder())))
|
||||||
|
.sorted(Comparator.comparing(o -> Integer.parseInt(o.get("sortIdKelas").toString()),
|
||||||
|
Comparator.nullsLast(Comparator.naturalOrder())))
|
||||||
|
.sorted(Comparator.comparing(o -> o.get("namaProduk").toString())).collect(Collectors.toList());
|
||||||
|
result.put("klaim-mpp", listPelayananKlaimMpp);
|
||||||
|
}
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1918,6 +1973,195 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<Map<String, Object>> logbookKlaimMpp(Integer idPegawai, String bulan) {
|
||||||
|
List<Integer> listIdProduk = new ArrayList<>();
|
||||||
|
List<String> listPersenJasa = new ArrayList<>();
|
||||||
|
List<Double> listHargaJasa = new ArrayList<>();
|
||||||
|
List<Double> listHargaJual = new ArrayList<>();
|
||||||
|
List<Integer> listIdKelompokPasien = new ArrayList<>();
|
||||||
|
List<String> listTanggal = new ArrayList<>();
|
||||||
|
List<String> listJenisRuangan = new ArrayList<>();
|
||||||
|
DateFormat df = new SimpleDateFormat("yyyy-MM");
|
||||||
|
Date date;
|
||||||
|
try {
|
||||||
|
date = df.parse(bulan);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
System.out.println(e.getMessage());
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
Map<String, Object> remunFfs = this.splitRemunFfs(idPegawai, bulan);
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
List<Map<String, Object>> listData = (List<Map<String, Object>>) remunFfs.get("klaim-mpp");
|
||||||
|
/*
|
||||||
|
* Mendapatkan persentase jasa
|
||||||
|
*/
|
||||||
|
double persenBPJS = Double.parseDouble(GetSettingDataFixed("persenJasaBPJS"));
|
||||||
|
double persenOperatorIBS = Double.parseDouble(GetSettingDataFixed("persenJasaOperatorIBS"));
|
||||||
|
double persenAsistenIBS = Double.parseDouble(GetSettingDataFixed("persenJasaAsistenIBS"));
|
||||||
|
double persenAnestesi = Double.parseDouble(GetSettingDataFixed("persenJasaAnestesiIBS"));
|
||||||
|
double persenRadiologi = Double.parseDouble(GetSettingDataFixed("persenJasaRadiologi"));
|
||||||
|
double persenLaboratorium = Double.parseDouble(GetSettingDataFixed("persenJasaLaboratorium"));
|
||||||
|
double persenRehabMedik = Double.parseDouble(GetSettingDataFixed("persenJasaRehabMedik"));
|
||||||
|
double persenKonsultasi = Double.parseDouble(GetSettingDataFixed("persenJasaKonsultasiDokter"));
|
||||||
|
double persenVisite = Double.parseDouble(GetSettingDataFixed("persenJasaVisiteDokter"));
|
||||||
|
double persenTindakan = Double.parseDouble(GetSettingDataFixed("persenJasaTindakanDokter"));
|
||||||
|
double persenJasaDokterPA = Double.parseDouble(GetSettingDataFixed("persenJasaDokterPA"));
|
||||||
|
double persenJasaDokterUmumHD = Double.parseDouble(GetSettingDataFixed("persenJasaDokterUmumHD"));
|
||||||
|
double persenJasaLabGenetika = Double.parseDouble(GetSettingDataFixed("persenJasaLabGenetika"));
|
||||||
|
/*
|
||||||
|
* Persiapan filter logic remunerasi
|
||||||
|
*/
|
||||||
|
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(KELOMPOK_BPJS).contains(Integer.parseInt(d.get("idKelompokPasien").toString()))) {
|
||||||
|
/*
|
||||||
|
* Set persen jasa dokter luar yang klaim ffs dengan persen jasa
|
||||||
|
* dari tarif total
|
||||||
|
*/
|
||||||
|
d.put("persenJasa", persenBPJS + "%");
|
||||||
|
/*
|
||||||
|
* Set harga jasa klaim jasa ffs pasien bpjs oleh dokter-dokter
|
||||||
|
* tertentu
|
||||||
|
*/
|
||||||
|
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) && 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 (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 (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 (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", 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 (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 (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 (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 (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(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()));
|
||||||
|
} else if (drKkPatologiAnatomiList.contains(idPegawai)) {
|
||||||
|
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 (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 {
|
||||||
|
d.put("persenJasa", persenTindakan + "%");
|
||||||
|
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||||
|
d.put("hargaJasa", persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
* Populate data filter
|
||||||
|
*/
|
||||||
|
listData.forEach(d -> {
|
||||||
|
if (!listIdProduk.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||||
|
listIdProduk.add(Integer.valueOf(d.get("idProduk").toString()));
|
||||||
|
if (!listPersenJasa.contains(d.get("persenJasa").toString()))
|
||||||
|
listPersenJasa.add(d.get("persenJasa").toString());
|
||||||
|
if (!listHargaJasa.contains(Double.parseDouble(d.get("hargaJasa").toString())))
|
||||||
|
listHargaJasa.add(Double.valueOf(d.get("hargaJasa").toString()));
|
||||||
|
if (!listHargaJual.contains(Double.parseDouble(d.get("hargaJual").toString())))
|
||||||
|
listHargaJual.add(Double.valueOf(d.get("hargaJual").toString()));
|
||||||
|
if (!listIdKelompokPasien.contains(Integer.parseInt(d.get("idKelompokPasien").toString())))
|
||||||
|
listIdKelompokPasien.add(Integer.valueOf(d.get("idKelompokPasien").toString()));
|
||||||
|
if (!listTanggal.contains(d.get("tanggal").toString()))
|
||||||
|
listTanggal.add(d.get("tanggal").toString());
|
||||||
|
if (!listJenisRuangan.contains(d.get("jenisRuangan").toString()))
|
||||||
|
listJenisRuangan.add(d.get("jenisRuangan").toString());
|
||||||
|
});
|
||||||
|
/*
|
||||||
|
* Pengelompokkan tanggal pelayanan
|
||||||
|
*/
|
||||||
|
List<Map<String, Object>> dataTanggal = groupingTanggalFfs(listData);
|
||||||
|
/*
|
||||||
|
* Pengelompokkan produk layanan
|
||||||
|
*/
|
||||||
|
List<Map<String, Object>> result = groupingKategoriFfs(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()))
|
||||||
|
.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;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, Object>> detailLogbookTarifDokter(Integer idPegawai, List<String> norecs) {
|
public List<Map<String, Object>> detailLogbookTarifDokter(Integer idPegawai, List<String> norecs) {
|
||||||
return pelayananPasienDao.findPelayananPasienByPetugasAndPelayananPasien(idPegawai, norecs);
|
return pelayananPasienDao.findPelayananPasienByPetugasAndPelayananPasien(idPegawai, norecs);
|
||||||
|
|||||||
@ -2668,6 +2668,25 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@RequestMapping(value = "/dokter/logbook-tarif/klaim-mpp/{idPegawai}/{bulan}", method = RequestMethod.GET)
|
||||||
|
public ResponseEntity<List<Map<String, Object>>> getLogbookKlaimMpp(HttpServletRequest request,
|
||||||
|
@PathVariable("idPegawai") Integer idPegawai, @PathVariable("bulan") String bulan) {
|
||||||
|
try {
|
||||||
|
List<Map<String, Object>> result = pelayananPasienService.logbookKlaimMpp(idPegawai, bulan);
|
||||||
|
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
|
||||||
|
getMessage(MessageResource.LABEL_SUCCESS, request));
|
||||||
|
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
|
||||||
|
} catch (ServiceVOException sve) {
|
||||||
|
LOGGER.error("Got exception {} when get logbook ffs tarif dokter", sve.getMessage());
|
||||||
|
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage());
|
||||||
|
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage);
|
||||||
|
} catch (JpaSystemException jse) {
|
||||||
|
LOGGER.error("Got exception {} when get logbook ffs tarif dokter", jse.getMessage());
|
||||||
|
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
|
||||||
|
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@RequestMapping(value = "/dokter/logbook-tarif/detail/{idPegawai}", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
@RequestMapping(value = "/dokter/logbook-tarif/detail/{idPegawai}", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||||
public ResponseEntity<List<Map<String, Object>>> getDetailLogbookTarifDokter(HttpServletRequest request,
|
public ResponseEntity<List<Map<String, Object>>> getDetailLogbookTarifDokter(HttpServletRequest request,
|
||||||
@PathVariable("idPegawai") Integer idPegawai, @RequestBody List<String> norecs) {
|
@PathVariable("idPegawai") Integer idPegawai, @RequestBody List<String> norecs) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user