Update LogbookKinerjaServiceImpl.java
Perbaikan daftar detail pasien di logbook skor dokter anestesi
This commit is contained in:
parent
906b24f460
commit
944e63f040
@ -271,6 +271,7 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
|
|||||||
// Detail_logbook_kinerja_jam_kerja_dokter
|
// Detail_logbook_kinerja_jam_kerja_dokter
|
||||||
@Query("select distinct new Map(jpp.id as jenisPetugasId,jpp.jenisPetugasPe as jenisPetugas,"
|
@Query("select distinct new Map(jpp.id as jenisPetugasId,jpp.jenisPetugasPe as jenisPetugas,"
|
||||||
+ "pr.id as produkId,pr.namaProduk as namaProduk,"
|
+ "pr.id as produkId,pr.namaProduk as namaProduk,"
|
||||||
|
+ "coalesce(ppp.asaId,2) as asaId,"
|
||||||
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,to_char(pp.tglPelayanan,'dd-MM-yyyy HH24:MI:ss') as tglPelayananFormatted,pp.jumlah as jumlah,"
|
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,to_char(pp.tglPelayanan,'dd-MM-yyyy HH24:MI:ss') as tglPelayananFormatted,pp.jumlah as jumlah,"
|
||||||
+ "coalesce(pp.hargaDiscount,0) as hargaDiskon,"
|
+ "coalesce(pp.hargaDiscount,0) as hargaDiskon,"
|
||||||
+ "ru.departemenId as departemenId,ru.id as ruanganId,ru.namaRuangan as namaRuangan,"
|
+ "ru.departemenId as departemenId,ru.id as ruanganId,ru.namaRuangan as namaRuangan,"
|
||||||
|
|||||||
@ -1183,11 +1183,13 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
for (Map<String, Object> mapLayanan : dataLayanan) {
|
if (CommonUtil.isNotNullOrEmpty(dataLayananAnestesi)) {
|
||||||
for (Map<String, Object> mapLayananAnestesi : dataLayananAnestesi) {
|
for (Map<String, Object> mapLayanan : dataLayanan) {
|
||||||
if (mapLayanan.get("noRec").toString().equals(mapLayananAnestesi.get("noRec"))) {
|
for (Map<String, Object> mapLayananAnestesi : dataLayananAnestesi) {
|
||||||
mapLayanan.putAll(mapLayananAnestesi);
|
if (mapLayanan.get("noRec").toString().equals(mapLayananAnestesi.get("noRec"))) {
|
||||||
break;
|
mapLayanan.putAll(mapLayananAnestesi);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1199,7 +1201,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
|||||||
// SCORE
|
// SCORE
|
||||||
for (Map<String, Object> mapLayanan : dataLayanan) {
|
for (Map<String, Object> mapLayanan : dataLayanan) {
|
||||||
for (Map<String, Object> mapSkor : dataSkor) {
|
for (Map<String, Object> mapSkor : dataSkor) {
|
||||||
if (!listIdPelayananAnestesi.contains(mapLayanan.get("noRec"))
|
if (!listIdPelayananAnestesi.contains(mapLayanan.get("noRec")) && !mapLayanan.containsKey("skor")
|
||||||
&& mapLayanan.get("produkId").equals(mapSkor.get("produkId"))
|
&& mapLayanan.get("produkId").equals(mapSkor.get("produkId"))
|
||||||
&& (((Date) mapLayanan.get("tglPelayanan")).after((Date) mapSkor.get("tglMulaiBerlaku"))
|
&& (((Date) mapLayanan.get("tglPelayanan")).after((Date) mapSkor.get("tglMulaiBerlaku"))
|
||||||
|| ((Date) mapLayanan.get("tglPelayanan"))
|
|| ((Date) mapLayanan.get("tglPelayanan"))
|
||||||
@ -1720,6 +1722,9 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
|||||||
Date pssbAwal = Date.from(PSBBDate.atZone(ZoneId.systemDefault()).toInstant());
|
Date pssbAwal = Date.from(PSBBDate.atZone(ZoneId.systemDefault()).toInstant());
|
||||||
Date pssbAkhir = Date.from(PSBBEnd.atZone(ZoneId.systemDefault()).toInstant());
|
Date pssbAkhir = Date.from(PSBBEnd.atZone(ZoneId.systemDefault()).toInstant());
|
||||||
|
|
||||||
|
String[] blnComp = tglPelayanan.split("-");
|
||||||
|
String bulan = blnComp[0] + "-" + blnComp[1];
|
||||||
|
|
||||||
List<Integer> listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif");
|
List<Integer> listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif");
|
||||||
List<Integer> listKonsulTapiVisit = splitDataSettingDatafixed("konsulTapiVisit");
|
List<Integer> listKonsulTapiVisit = splitDataSettingDatafixed("konsulTapiVisit");
|
||||||
|
|
||||||
@ -1752,7 +1757,157 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
|||||||
Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS),
|
Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS),
|
||||||
Master.Produk.KARCIS);
|
Master.Produk.KARCIS);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Menghitung skor asa dokter anestesi
|
||||||
|
*/
|
||||||
|
List<String> listIdPelayananAnestesi = new ArrayList<>();
|
||||||
|
{
|
||||||
|
List<Map<String, Object>> dataLayananAnestesi = new ArrayList<>();
|
||||||
|
for (Map<String, Object> map : dataLayanan) {
|
||||||
|
if (map.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.DOKTER_ANASTESI)) {
|
||||||
|
listIdPelayananAnestesi.add(map.get("noRec").toString());
|
||||||
|
dataLayananAnestesi.add(map);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Map<String, Object>> listCountReferensiSkor = new ArrayList<>();
|
||||||
|
if (CommonUtil.isNotNullOrEmpty(listIdPelayananAnestesi)) {
|
||||||
|
listCountReferensiSkor = pelayananPasienPetugasDao
|
||||||
|
.countReferensiSkorPelayananAnestesi(listIdPelayananAnestesi);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<String> listIdRefSkor = new ArrayList<>();
|
||||||
|
for (Map<String, Object> map : listCountReferensiSkor) {
|
||||||
|
listIdRefSkor.add(map.get("pelayananId").toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Map<String, Object>> listDataReferensiSkor = new ArrayList<>();
|
||||||
|
if (CommonUtil.isNotNullOrEmpty(listIdRefSkor)) {
|
||||||
|
listDataReferensiSkor = pelayananPasienPetugasDao.findReferensiSkorPelayananAnestesi(listIdRefSkor,
|
||||||
|
Arrays.asList(Master.UnitKerja.KSM));
|
||||||
|
}
|
||||||
|
|
||||||
|
List<ReferensiSkorAnestesiVO> listRefSkor = new ArrayList<>();
|
||||||
|
for (String idRefSkor : listIdRefSkor) {
|
||||||
|
ReferensiSkorAnestesiVO ref = new ReferensiSkorAnestesiVO();
|
||||||
|
for (Map<String, Object> map : listDataReferensiSkor) {
|
||||||
|
if (idRefSkor.equals(map.get("pelayananId"))) {
|
||||||
|
ref.setPelayananId(map.get("pelayananId").toString());
|
||||||
|
ref.setProdukId(Integer.valueOf(map.get("produkId").toString()));
|
||||||
|
if (map.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA)) {
|
||||||
|
ref.setDokterPemeriksaId(Integer.valueOf(map.get("petugasId").toString()));
|
||||||
|
ref.setKelompokKerjaId(Integer.valueOf(map.get("kkId").toString()));
|
||||||
|
} else if (map.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.DOKTER_ANASTESI)
|
||||||
|
&& idPegawai.equals(map.get("petugasId"))) {
|
||||||
|
ref.setDokterAnestesiId(Integer.valueOf(map.get("petugasId").toString()));
|
||||||
|
ref.setAsaId(Byte.valueOf(map.get("asaId").toString()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
listRefSkor.add(ref);
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Map<String, Object>> dataSkorAnestesi = new ArrayList<>();
|
||||||
|
if (CommonUtil.isNotNullOrEmpty(listRefSkor)) {
|
||||||
|
dataSkorAnestesi = skoringTindakanMedisDaoCustom.findSkoringLogbookDokter(bulan, listRefSkor);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Skor dokter anestesi (bukan tindakan mandiri)
|
||||||
|
*/
|
||||||
|
for (ReferensiSkorAnestesiVO refSkor : listRefSkor) {
|
||||||
|
for (Map<String, Object> mapLayanan : dataLayananAnestesi) {
|
||||||
|
for (Map<String, Object> mapSkor : dataSkorAnestesi) {
|
||||||
|
if (CommonUtil.isNotNullOrEmpty(refSkor.getPelayananId())
|
||||||
|
&& CommonUtil.isNotNullOrEmpty(mapLayanan.get("noRec"))
|
||||||
|
&& CommonUtil.isNotNullOrEmpty(refSkor.getAsaId())
|
||||||
|
&& CommonUtil.isNotNullOrEmpty(mapLayanan.get("asaId"))
|
||||||
|
&& CommonUtil.isNotNullOrEmpty(refSkor.getProdukId())
|
||||||
|
&& CommonUtil.isNotNullOrEmpty(mapLayanan.get("produkId"))
|
||||||
|
&& CommonUtil.isNotNullOrEmpty(mapSkor.get("produkId"))
|
||||||
|
&& CommonUtil.isNotNullOrEmpty(refSkor.getDokterAnestesiId())
|
||||||
|
&& CommonUtil.isNotNullOrEmpty(idPegawai)
|
||||||
|
&& CommonUtil.isNotNullOrEmpty(refSkor.getDokterPemeriksaId())
|
||||||
|
&& CommonUtil.isNotNullOrEmpty(mapSkor.get("pegawaiId"))
|
||||||
|
&& CommonUtil.isNotNullOrEmpty(refSkor.getKelompokKerjaId())
|
||||||
|
&& CommonUtil.isNotNullOrEmpty(mapSkor.get("kelompokKerjaId"))
|
||||||
|
&& CommonUtil.isNotNullOrEmpty(mapLayanan.get("tglPelayanan"))
|
||||||
|
&& CommonUtil.isNotNullOrEmpty(mapSkor.get("tglMulaiBerlaku"))
|
||||||
|
&& refSkor.getPelayananId().equals(mapLayanan.get("noRec").toString())
|
||||||
|
&& refSkor.getAsaId().equals(Byte.valueOf(mapLayanan.get("asaId").toString()))
|
||||||
|
&& refSkor.getProdukId().equals(Integer.valueOf(mapLayanan.get("produkId").toString()))
|
||||||
|
&& refSkor.getProdukId().equals(Integer.valueOf(mapSkor.get("produkId").toString()))
|
||||||
|
&& Integer.valueOf(mapLayanan.get("produkId").toString())
|
||||||
|
.equals(Integer.valueOf(mapSkor.get("produkId").toString()))
|
||||||
|
&& idPegawai.equals(refSkor.getDokterAnestesiId())
|
||||||
|
&& refSkor.getDokterPemeriksaId()
|
||||||
|
.equals(Integer.valueOf(mapSkor.get("pegawaiId").toString()))
|
||||||
|
&& refSkor.getKelompokKerjaId()
|
||||||
|
.equals(Integer.valueOf(mapSkor.get("kelompokKerjaId").toString()))
|
||||||
|
&& (((Date) mapLayanan.get("tglPelayanan")).after((Date) mapSkor.get("tglMulaiBerlaku"))
|
||||||
|
|| ((Date) mapLayanan.get("tglPelayanan"))
|
||||||
|
.equals((Date) mapSkor.get("tglMulaiBerlaku")))) {
|
||||||
|
if (!mapLayanan.containsKey("skor")) {
|
||||||
|
if (refSkor.getAsaId() >= 3) {
|
||||||
|
double calcSkor = 0.8 * Double.valueOf(mapSkor.get("skor").toString());
|
||||||
|
mapLayanan.put("skor", calcSkor);
|
||||||
|
break;
|
||||||
|
} else if (refSkor.getAsaId() == 2) {
|
||||||
|
double calcSkor = 0.5 * Double.valueOf(mapSkor.get("skor").toString());
|
||||||
|
mapLayanan.put("skor", calcSkor);
|
||||||
|
break;
|
||||||
|
} else if (refSkor.getAsaId() == 1) {
|
||||||
|
double calcSkor = 0.4 * Double.valueOf(mapSkor.get("skor").toString());
|
||||||
|
mapLayanan.put("skor", calcSkor);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (CommonUtil.isNotNullOrEmpty(dataLayananAnestesi)) {
|
||||||
|
for (Map<String, Object> mapLayanan : dataLayanan) {
|
||||||
|
for (Map<String, Object> mapLayananAnestesi : dataLayananAnestesi) {
|
||||||
|
if (mapLayanan.get("noRec").toString().equals(mapLayananAnestesi.get("noRec"))) {
|
||||||
|
mapLayanan.putAll(mapLayananAnestesi);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
List<Map<String, Object>> dataSkor = skoringTindakanMedisDao.findSkoringLogbookDokter(bulan,
|
||||||
|
Arrays.asList(idPegawai), Arrays.asList(Master.UnitKerja.KSM));
|
||||||
|
|
||||||
|
// SCORE
|
||||||
for (Map<String, Object> mapLayanan : dataLayanan) {
|
for (Map<String, Object> mapLayanan : dataLayanan) {
|
||||||
|
for (Map<String, Object> mapSkor : dataSkor) {
|
||||||
|
if (!listIdPelayananAnestesi.contains(mapLayanan.get("noRec")) && !mapLayanan.containsKey("skor")
|
||||||
|
&& mapLayanan.get("produkId").equals(mapSkor.get("produkId"))
|
||||||
|
&& (((Date) mapLayanan.get("tglPelayanan")).after((Date) mapSkor.get("tglMulaiBerlaku"))
|
||||||
|
|| ((Date) mapLayanan.get("tglPelayanan"))
|
||||||
|
.equals((Date) mapSkor.get("tglMulaiBerlaku")))) {
|
||||||
|
mapLayanan.put("skor", mapSkor.get("skor"));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!mapLayanan.containsKey("skor")) {
|
||||||
|
mapLayanan.put("skor", 1.0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// FILTERING
|
||||||
|
List<Map<String, Object>> dataLayananFiltered = new ArrayList<>();
|
||||||
|
for (Map<String, Object> map : dataLayanan) {
|
||||||
|
if (skor.equals(map.get("skor"))) {
|
||||||
|
dataLayananFiltered.add(map);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// RULES
|
||||||
|
for (Map<String, Object> mapLayanan : dataLayananFiltered) {
|
||||||
if (idIndikator.equals(Master.IndikatorKinerjaJamKerja.VISITE)
|
if (idIndikator.equals(Master.IndikatorKinerjaJamKerja.VISITE)
|
||||||
&& (listKonsulTapiVisit.contains(mapLayanan.get("produkId"))
|
&& (listKonsulTapiVisit.contains(mapLayanan.get("produkId"))
|
||||||
|| mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT))) {
|
|| mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT))) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user