Update PelayananPasienServiceImpl.java
Perbaikan filter pembatasan kinerja operasi bpjs
This commit is contained in:
parent
aba960b0ca
commit
699f713778
@ -518,35 +518,46 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
* Alokasi data diambil terlebih dahulu untuk kelompok BPJS, Jaminan
|
||||
* Kemenkes
|
||||
*/
|
||||
List<Map<String, Object>> listDataBpjs = new ArrayList<>();
|
||||
List<Map<String, Object>> rawDataBpjs0 = new ArrayList<>();
|
||||
for (Map<String, Object> d : listData)
|
||||
if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien")))
|
||||
listDataBpjs.add(d);
|
||||
rawDataBpjs0.add(d);
|
||||
/*
|
||||
* Filter tindakan operasi untuk pasien BPJS hanya diambil tarif
|
||||
* tertinggi saja dalam satu siklus pelayanan
|
||||
*/
|
||||
List<Map<String, Object>> listRawDataBpjs = listDataBpjs.stream()
|
||||
List<Map<String, Object>> pRawDataBpjs0 = rawDataBpjs0.stream()
|
||||
.filter(d -> Master.Departemen.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()),
|
||||
Comparator.reverseOrder()))
|
||||
.sorted(Comparator.comparing(o -> o.get("idPasienDaftar").toString())).collect(Collectors.toList());
|
||||
List<String> listIdPelayananPasien = new ArrayList<>();
|
||||
List<String> listIdPasienDaftar = new ArrayList<>();
|
||||
for (Map<String, Object> b : listRawDataBpjs)
|
||||
for (Map<String, Object> b : pRawDataBpjs0)
|
||||
if (!listIdPasienDaftar.contains(b.get("idPasienDaftar"))) {
|
||||
listIdPasienDaftar.add(b.get("idPasienDaftar").toString());
|
||||
listIdPelayananPasien.add(b.get("idPelayananPasien").toString());
|
||||
}
|
||||
List<Map<String, Object>> listDataBpjsNew = new ArrayList<>();
|
||||
for (Map<String, Object> d : listDataBpjs) {
|
||||
List<Map<String, Object>> rawDataBpjs1 = new ArrayList<>();
|
||||
for (Map<String, Object> d : rawDataBpjs0) {
|
||||
if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||
&& listIdPelayananPasien.contains(d.get("idPelayananPasien").toString())) {
|
||||
listDataBpjsNew.add(d);
|
||||
} else {
|
||||
listDataBpjsNew.add(d);
|
||||
rawDataBpjs1.add(d);
|
||||
} else if (!Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))) {
|
||||
rawDataBpjs1.add(d);
|
||||
}
|
||||
}
|
||||
/*
|
||||
* Filter visite untuk pasien BPJS hanya diambil 1 kali di luar ICU dan
|
||||
* NICU per hari per dokter
|
||||
*/
|
||||
List<Map<String, Object>> pRawDataBpjs1 = rawDataBpjs1.stream()
|
||||
.filter(d -> !Master.Ruangan.ICU_PICU.equals(d.get("idRuangan"))
|
||||
&& !Master.Ruangan.NICU.equals(d.get("idRuangan"))
|
||||
&& Master.GolonganProduk.VISIT.equals(d.get("idGolonganProduk")))
|
||||
.sorted(Comparator.comparing(o -> (Date) o.get("tglPelayanan"))).collect(Collectors.toList());
|
||||
/*
|
||||
* Alokasi data diurutkan dulu untuk jam kerja. Asumsi jam kerja dokter
|
||||
* nonshift
|
||||
@ -610,7 +621,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
* Offer data yang sudah diurutkan dalam queue
|
||||
*/
|
||||
Queue<Map<String, Object>> queuePelayanan = new ArrayDeque<>();
|
||||
listDataBpjsNew.forEach(pelayanan -> {
|
||||
rawDataBpjs1.forEach(pelayanan -> {
|
||||
queuePelayanan.offer(pelayanan);
|
||||
});
|
||||
listDataJamKerja.forEach(pelayanan -> {
|
||||
@ -1045,7 +1056,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
for (Map<String, Object> d : listData) {
|
||||
if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien"))) {
|
||||
/*
|
||||
* Dokter luar yang klaim ffs dengan persen jasa dari tarif total
|
||||
* Dokter luar yang klaim ffs dengan persen jasa dari tarif
|
||||
* total
|
||||
*/
|
||||
d.put("persenJasa", persenBPJS.toString() + "%");
|
||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user