penerapan skoring anestesi menggunakan klasifikasi asa di logbook kinerja dokter di luar jam kerja
This commit is contained in:
parent
00c6773b9b
commit
f4d2503e9b
@ -221,7 +221,7 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
|
||||
@Param("karcisId") Integer idKarcis);
|
||||
|
||||
// Logbook_kinerja_luar_jam_kerja_dokter
|
||||
@Query("select distinct new Map(ppp.ObjectJenisPetugasPeId as jenisPetugasId,"
|
||||
@Query("select distinct new Map(ppp.ObjectJenisPetugasPeId as jenisPetugasId,,coalesce(ppp.asaId,1) as asaId,"
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk,"
|
||||
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,pp.jumlah as jumlah,coalesce(pp.hargaDiscount,0) as hargaDiskon,"
|
||||
+ "ru.departemenId as departemenId,ru.id as ruanganId," + "pd.diskonPegawai as statusDiskon) "
|
||||
|
||||
@ -1195,13 +1195,106 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS),
|
||||
Master.KelompokPasien.ASURANSI_LAIN, Master.Rekanan.JAMINAN_KEMENKES, 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)) {
|
||||
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(mf.format(new Date(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 (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()))
|
||||
&& refSkor.getDokterAnestesiId()
|
||||
.equals(Integer.valueOf(mapLayanan.get("pegawaiId").toString()))
|
||||
&& 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")))) {
|
||||
double skor = 0.0;
|
||||
if (refSkor.getAsaId() >= 3) {
|
||||
skor = 0.8 * Double.valueOf(mapSkor.get("skor").toString());
|
||||
} else if (refSkor.getAsaId() == 2) {
|
||||
skor = 0.5 * Double.valueOf(mapSkor.get("skor").toString());
|
||||
} else {
|
||||
skor = 0.4 * Double.valueOf(mapSkor.get("skor").toString());
|
||||
}
|
||||
mapLayanan.put("skor", skor);
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
List<Map<String, Object>> dataSkor = skoringTindakanMedisDao.findSkoringLogbookDokter(
|
||||
mf.format(new Date(bulan)), Arrays.asList(idPegawai), Arrays.asList(Master.UnitKerja.KSM));
|
||||
|
||||
// SCORE
|
||||
for (Map<String, Object> mapLayanan : dataLayanan) {
|
||||
for (Map<String, Object> mapSkor : dataSkor) {
|
||||
if (mapLayanan.get("produkId").equals(mapSkor.get("produkId"))
|
||||
if (!listIdPelayananAnestesi.contains(mapLayanan.get("noRec"))
|
||||
&& 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")))) {
|
||||
@ -1216,7 +1309,9 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
|
||||
// RULES
|
||||
for (Map<String, Object> mapLayanan : dataLayanan) {
|
||||
if (Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
|
||||
if (Integer.valueOf(mapLayanan.get("jenisPetugasId").toString())
|
||||
.equals(Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA)
|
||||
&& Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
|
||||
&& (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon"))
|
||||
|| Integer.valueOf(mapLayanan.get("statusDiskon").toString()).equals(0))) {
|
||||
// tidak_dapat_skor_untuk_diskon_dpjp
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user