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
|
||||
@Query("select distinct new Map(jpp.id as jenisPetugasId,jpp.jenisPetugasPe as jenisPetugas,"
|
||||
+ "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,"
|
||||
+ "coalesce(pp.hargaDiscount,0) as hargaDiskon,"
|
||||
+ "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) {
|
||||
for (Map<String, Object> mapLayananAnestesi : dataLayananAnestesi) {
|
||||
if (mapLayanan.get("noRec").toString().equals(mapLayananAnestesi.get("noRec"))) {
|
||||
mapLayanan.putAll(mapLayananAnestesi);
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1199,7 +1201,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
// SCORE
|
||||
for (Map<String, Object> mapLayanan : dataLayanan) {
|
||||
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"))
|
||||
&& (((Date) mapLayanan.get("tglPelayanan")).after((Date) mapSkor.get("tglMulaiBerlaku"))
|
||||
|| ((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 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> 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),
|
||||
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> 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)
|
||||
&& (listKonsulTapiVisit.contains(mapLayanan.get("produkId"))
|
||||
|| mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT))) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user