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
|
* Alokasi data diambil terlebih dahulu untuk kelompok BPJS, Jaminan
|
||||||
* Kemenkes
|
* Kemenkes
|
||||||
*/
|
*/
|
||||||
List<Map<String, Object>> listDataBpjs = new ArrayList<>();
|
List<Map<String, Object>> rawDataBpjs0 = new ArrayList<>();
|
||||||
for (Map<String, Object> d : listData)
|
for (Map<String, Object> d : listData)
|
||||||
if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien")))
|
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
|
* Filter tindakan operasi untuk pasien BPJS hanya diambil tarif
|
||||||
* tertinggi saja dalam satu siklus pelayanan
|
* 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")))
|
.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()),
|
.sorted(Comparator.comparing(o -> Double.parseDouble(o.get("hargaJual").toString()),
|
||||||
Comparator.reverseOrder()))
|
Comparator.reverseOrder()))
|
||||||
.sorted(Comparator.comparing(o -> o.get("idPasienDaftar").toString())).collect(Collectors.toList());
|
.sorted(Comparator.comparing(o -> o.get("idPasienDaftar").toString())).collect(Collectors.toList());
|
||||||
List<String> listIdPelayananPasien = new ArrayList<>();
|
List<String> listIdPelayananPasien = new ArrayList<>();
|
||||||
List<String> listIdPasienDaftar = 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"))) {
|
if (!listIdPasienDaftar.contains(b.get("idPasienDaftar"))) {
|
||||||
listIdPasienDaftar.add(b.get("idPasienDaftar").toString());
|
listIdPasienDaftar.add(b.get("idPasienDaftar").toString());
|
||||||
listIdPelayananPasien.add(b.get("idPelayananPasien").toString());
|
listIdPelayananPasien.add(b.get("idPelayananPasien").toString());
|
||||||
}
|
}
|
||||||
List<Map<String, Object>> listDataBpjsNew = new ArrayList<>();
|
List<Map<String, Object>> rawDataBpjs1 = new ArrayList<>();
|
||||||
for (Map<String, Object> d : listDataBpjs) {
|
for (Map<String, Object> d : rawDataBpjs0) {
|
||||||
if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||||
&& listIdPelayananPasien.contains(d.get("idPelayananPasien").toString())) {
|
&& listIdPelayananPasien.contains(d.get("idPelayananPasien").toString())) {
|
||||||
listDataBpjsNew.add(d);
|
rawDataBpjs1.add(d);
|
||||||
} else {
|
} else if (!Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))) {
|
||||||
listDataBpjsNew.add(d);
|
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
|
* Alokasi data diurutkan dulu untuk jam kerja. Asumsi jam kerja dokter
|
||||||
* nonshift
|
* nonshift
|
||||||
@ -610,7 +621,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
* Offer data yang sudah diurutkan dalam queue
|
* Offer data yang sudah diurutkan dalam queue
|
||||||
*/
|
*/
|
||||||
Queue<Map<String, Object>> queuePelayanan = new ArrayDeque<>();
|
Queue<Map<String, Object>> queuePelayanan = new ArrayDeque<>();
|
||||||
listDataBpjsNew.forEach(pelayanan -> {
|
rawDataBpjs1.forEach(pelayanan -> {
|
||||||
queuePelayanan.offer(pelayanan);
|
queuePelayanan.offer(pelayanan);
|
||||||
});
|
});
|
||||||
listDataJamKerja.forEach(pelayanan -> {
|
listDataJamKerja.forEach(pelayanan -> {
|
||||||
@ -1045,7 +1056,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
for (Map<String, Object> d : listData) {
|
for (Map<String, Object> d : listData) {
|
||||||
if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien"))) {
|
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() + "%");
|
d.put("persenJasa", persenBPJS.toString() + "%");
|
||||||
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
if (Double.parseDouble(d.get("hargaJasa").toString()) != 0.0)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user