- perbaikan perhitungan target layanan medis di luar jam kerja melibatkan kelompok jabatan medis dan medis spesialis saja

- pembuatan service logbook kinerja dokter di luar jam kerja
- pembuatan service detail logbook kinerja dokter di luar jam kerja
This commit is contained in:
Salman Manoe 2021-07-19 20:39:54 +07:00
parent 5aa602dc5d
commit 0e887f93ee
6 changed files with 631 additions and 20 deletions

View File

@ -289,6 +289,8 @@ public class Master {
public static final Double PERSEN_P1 = 0.3;
public static final Double PERSEN_P2 = 0.7;
public static final Double PERSEN_SKOR_LUAR_JAM_KERJA = 1.15;
public static final Double PERSEN_SKOR_ASISTEN_SPESIALIS = 0.3;
public static final Double PERSEN_SKOR_EKSEKUTIF = 1.15;

View File

@ -155,8 +155,9 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
+ "and (to_char(pp.tglPelayanan,'HH24:MI:ss') between (case when pp.tglPelayanan between cast(:psbbAwal as timestamp) and cast(:psbbAkhir as timestamp) then '15:30:01' else '16:00:01'end) and '23:59:59' "
+ "or to_char(pp.tglPelayanan,'HH24:MI:ss') between '00:00:00' and '07:00:00') and sk.id not in (:listNonjadwalId)) "
+ "or to_char(pp.tglPelayanan,'dy') in ('sat','sun') " + "or sk.id in (:listNonjadwalId)) "
+ "and pg.jenisPegawaiId = :jenisPegawaiId " + "and djp.jenisProdukId not in (:listNontindakanId) "
+ "and pr.id <> :karcisId " + "order by pg.namaLengkap, pr.id")
+ "and pg.jenisPegawaiId = :jenisPegawaiId " + "and jb.kelompokJabatanId in (3,4) "
+ "and djp.jenisProdukId not in (:listNontindakanId) " + "and pr.id <> :karcisId "
+ "order by pg.namaLengkap, pr.id")
public List<Map<String, Object>> getDataLayananLuarJamKerja(@Param("tglAwal") Date tglAwal,
@Param("psbbAwal") Date psbbAwal, @Param("psbbAkhir") Date psbbAkhir, @Param("tglAkhir") Date tglAkhir,
@Param("listNonjadwalId") List<Integer> listIdNonjadwal, @Param("jenisPegawaiId") Integer idJenisPegawai,

View File

@ -141,7 +141,8 @@ public interface JabatanDao extends PagingAndSortingRepository<Jabatan, Integer>
List<Map<String, Object>> findPeringkatJabatan(@Param("listKelompokJabatanId") List<Integer> listIdKelompokJabatan);
@Query("select new Map(jb.id as jabatanId,jb.namaJabatan as namaJabatan) " + "from Jabatan jb "
+ "where id in (:listJabatanId) " + "and jb.statusEnabled is true " + "order by jb.namaJabatan")
+ "where id in (:listJabatanId) " + "and jb.kelompokJabatanId in (3,4) " + "and jb.statusEnabled is true "
+ "order by jb.namaJabatan")
List<Map<String, Object>> findJabatanByListId(@Param("listJabatanId") List<Integer> listIdJabatan);
}

View File

@ -1076,15 +1076,18 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
layanan.put("jumlahTindakan",
Double.valueOf(layanan.get("jumlahTindakan").toString())
* Double.valueOf(skoring.get("skor").toString())
* Master.Remunerasi.PERSEN_SKOR_EKSEKUTIF);
* Master.Remunerasi.PERSEN_SKOR_LUAR_JAM_KERJA);
} else if (layanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
layanan.put("jumlahTindakan",
Double.valueOf(layanan.get("jumlahTindakan").toString())
* Double.valueOf(skoring.get("skor").toString())
* Master.Remunerasi.PERSEN_SKOR_LUAR_JAM_KERJA
* Master.Remunerasi.PERSEN_SKOR_ASISTEN_SPESIALIS);
} else {
layanan.put("jumlahTindakan", Double.valueOf(layanan.get("jumlahTindakan").toString())
* Double.valueOf(skoring.get("skor").toString()));
layanan.put("jumlahTindakan",
Double.valueOf(layanan.get("jumlahTindakan").toString())
* Double.valueOf(skoring.get("skor").toString())
* Master.Remunerasi.PERSEN_SKOR_LUAR_JAM_KERJA);
}
break;

View File

@ -788,8 +788,211 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
@Override
public List<Map<String, Object>> findLogbookLuarJamKerjaDokter(Integer idPegawai, Long bulan) {
// TODO Auto-generated method stub
return null;
List<Map<String, Object>> result = new ArrayList<>();
List<String> listTglPelayanan = new ArrayList<>();
List<Integer> listIdIndikator = new ArrayList<>();
List<Integer> listIdProduk = new ArrayList<>();
List<Double> listSkor = new ArrayList<>();
DateFormat mf = new SimpleDateFormat("yyyy-MM");
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
DecimalFormat decf = new DecimalFormat("0.00");
decf.setRoundingMode(RoundingMode.HALF_UP);
LocalDateTime PSBBDate = LocalDateTime.of(2020, 9, 14, 0, 0, 0);
LocalDateTime PSBBEnd = LocalDateTime.parse(GetSettingDataFixed("psbbperiod"), dtf);
Date pssbAwal = Date.from(PSBBDate.atZone(ZoneId.systemDefault()).toInstant());
Date pssbAkhir = Date.from(PSBBEnd.atZone(ZoneId.systemDefault()).toInstant());
List<Integer> listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif");
List<Integer> listKonsulTapiVisit = splitDataSettingDatafixed("konsulTapiVisit");
List<Integer> listIdNonjadwal = shiftKerjaDao.findListNonjadwal();
List<Map<String, Object>> dataLayanan = ikiDanRemunerasiDao.getDataLogbookLuarJamKerjaDokter(
mf.format(new Date(bulan)), pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, idPegawai,
Arrays.asList(Master.JenisProduk.NONTINDAKAN), Master.Produk.KARCIS);
List<Map<String, Object>> dataSkor = skoringTindakanMedisDao
.findSkoringLogbookDokter(mf.format(new Date(bulan)), 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"))
&& (((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);
}
}
// RULES
for (Map<String, Object> mapLayanan : dataLayanan) {
if (Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon"))
|| !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) {
// tidak_dapat_skor_untuk_diskon_dpjp
mapLayanan.put("skor", 0.0);
mapLayanan.put("tSkor", 0.0);
} else if (!mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL)
&& !mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT)
&& listRuangEks.contains(mapLayanan.get("ruanganId"))) {
mapLayanan.put("skor", Double.valueOf(mapLayanan.get("skor").toString())
* Master.Remunerasi.PERSEN_SKOR_LUAR_JAM_KERJA);
mapLayanan.put("tSkor", Double.parseDouble(decf.format(Double.valueOf(mapLayanan.get("skor").toString())
* Double.valueOf(mapLayanan.get("jumlah").toString()))));
} else if (mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
mapLayanan.put("skor",
Double.valueOf(mapLayanan.get("skor").toString()) * Master.Remunerasi.PERSEN_SKOR_LUAR_JAM_KERJA
* Master.Remunerasi.PERSEN_SKOR_ASISTEN_SPESIALIS);
mapLayanan.put("tSkor", Double.parseDouble(decf.format(Double.valueOf(mapLayanan.get("skor").toString())
* Double.valueOf(mapLayanan.get("jumlah").toString()))));
} else {
mapLayanan.put("skor", Double.valueOf(mapLayanan.get("skor").toString())
* Master.Remunerasi.PERSEN_SKOR_LUAR_JAM_KERJA);
mapLayanan.put("tSkor", Double.parseDouble(decf.format(Double.valueOf(mapLayanan.get("skor").toString())
* Double.valueOf(mapLayanan.get("jumlah").toString()))));
}
}
// GROUPING_INDIKATOR
for (Map<String, Object> mapLayanan : dataLayanan) {
if (listKonsulTapiVisit.contains(mapLayanan.get("produkId"))
|| mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT)) {
mapLayanan.put("indikatorId", Master.IndikatorKinerjaJamKerja.VISITE);
mapLayanan.put("namaIndikator",
indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaJamKerja.VISITE));
} else if (mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL)
&& listRuangEks.contains(mapLayanan.get("ruanganId"))) {
mapLayanan.put("indikatorId", Master.IndikatorKinerjaJamKerja.KONSUL_EKS);
mapLayanan.put("namaIndikator",
indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaJamKerja.KONSUL_EKS));
} else if (mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL)
&& mapLayanan.get("departemenId").equals(Master.Departemen.IGD)) {
mapLayanan.put("indikatorId", Master.IndikatorKinerjaJamKerja.KONSUL_GADAR);
mapLayanan.put("namaIndikator",
indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaJamKerja.KONSUL_GADAR));
} else if (mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL)) {
mapLayanan.put("indikatorId", Master.IndikatorKinerjaJamKerja.KONSUL_REG);
mapLayanan.put("namaIndikator",
indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaJamKerja.KONSUL_REG));
} else if (listRuangEks.contains(mapLayanan.get("ruanganId"))) {
mapLayanan.put("indikatorId", Master.IndikatorKinerjaJamKerja.TINDAKAN_EKS);
mapLayanan.put("namaIndikator",
indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaJamKerja.TINDAKAN_EKS));
} else if (mapLayanan.get("departemenId").equals(Master.Departemen.IGD)) {
mapLayanan.put("indikatorId", Master.IndikatorKinerjaJamKerja.TINDAKAN_GADAR);
mapLayanan.put("namaIndikator",
indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaJamKerja.TINDAKAN_GADAR));
} else if (mapLayanan.get("ruanganId").equals(Master.Ruangan.OK)) {
mapLayanan.put("indikatorId", Master.IndikatorKinerjaJamKerja.TINDAKAN_OPS);
mapLayanan.put("namaIndikator",
indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaJamKerja.TINDAKAN_OPS));
} else {
mapLayanan.put("indikatorId", Master.IndikatorKinerjaJamKerja.TINDAKAN_REG);
mapLayanan.put("namaIndikator",
indikatorKinerjaDetailDao.findNamaIndikator(Master.IndikatorKinerjaJamKerja.TINDAKAN_REG));
}
}
for (Map<String, Object> mapLayanan : dataLayanan) {
if (!listIdIndikator.contains(mapLayanan.get("indikatorId"))) {
listIdIndikator.add(Integer.valueOf(mapLayanan.get("indikatorId").toString()));
}
if (!listIdProduk.contains(mapLayanan.get("produkId"))) {
listIdProduk.add(Integer.valueOf(mapLayanan.get("produkId").toString()));
}
if (!listSkor.contains(mapLayanan.get("skor"))) {
listSkor.add(Double.valueOf(mapLayanan.get("skor").toString()));
}
if (!listTglPelayanan.contains(df.format(((Date) mapLayanan.get("tglPelayanan"))))) {
listTglPelayanan.add(df.format(((Date) mapLayanan.get("tglPelayanan"))));
}
}
List<String> listTglPelayananSorted = listTglPelayanan.stream().sorted().collect(Collectors.toList());
// GROUPING_TANGGAL_PELAYANAN
List<Map<String, Object>> dataTglPelayanan = new ArrayList<>();
for (Integer idIndikator : listIdIndikator) {
for (Integer idProduk : listIdProduk) {
for (Double skor : listSkor) {
for (String tglPelayanan : listTglPelayananSorted) {
Map<String, Object> data = new HashMap<>();
double jumlahTindakan = 0.0;
double jumlahSkor = 0.0;
for (Map<String, Object> mapLayanan : dataLayanan) {
if (idIndikator.equals(mapLayanan.get("indikatorId"))
&& idProduk.equals(mapLayanan.get("produkId"))
&& skor.equals(mapLayanan.get("skor"))
&& tglPelayanan.equals(df.format(((Date) mapLayanan.get("tglPelayanan"))))) {
jumlahTindakan += Double.valueOf(mapLayanan.get("jumlah").toString());
jumlahSkor += Double.valueOf(mapLayanan.get("tSkor").toString());
data.putAll(mapLayanan);
data.put("tglPelayanan", df.format(((Date) mapLayanan.get("tglPelayanan"))));
}
}
if (CommonUtil.isNotNullOrEmpty(data)) {
data.put("jumlah", jumlahTindakan);
data.put("tSkor", jumlahSkor);
dataTglPelayanan.add(data);
}
}
}
}
}
// GROUPING_HEADER
for (Integer idIndikator : listIdIndikator) {
for (Integer idProduk : listIdProduk) {
for (Double skor : listSkor) {
Map<String, Object> data = new HashMap<>();
List<Map<String, Object>> detail = new ArrayList<>();
double jumlahTindakan = 0.0;
double jumlahSkor = 0.0;
for (Map<String, Object> mapLayanan : dataTglPelayanan) {
if (idIndikator.equals(mapLayanan.get("indikatorId"))
&& idProduk.equals(mapLayanan.get("produkId")) && skor.equals(mapLayanan.get("skor"))) {
jumlahTindakan += Double.valueOf(mapLayanan.get("jumlah").toString());
jumlahSkor += Double.valueOf(mapLayanan.get("tSkor").toString());
Map<String, Object> mapDetail = new HashMap<>();
mapDetail.put("jumlah", mapLayanan.get("jumlah"));
mapDetail.put("tglPelayanan", mapLayanan.get("tglPelayanan"));
detail.add(mapDetail);
mapLayanan.remove("noRec");
mapLayanan.remove("tglPelayanan");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("hargaDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
data.putAll(mapLayanan);
}
}
if (CommonUtil.isNotNullOrEmpty(data)) {
data.put("detail", detail);
data.put("jumlah", jumlahTindakan);
data.put("tSkor", Double.parseDouble(decf.format(jumlahSkor)));
result.add(data);
}
}
}
}
return result;
}
@Override
@ -1154,8 +1357,360 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
@Override
public List<Map<String, Object>> findDetailLogbookLuarJamKerjaDokter(Integer idPegawai, Integer idIndikator,
Integer idProduk, String tglPelayanan, Integer idJenisPetugas, Double skor) {
// TODO Auto-generated method stub
return null;
List<Map<String, Object>> result = new ArrayList<>();
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
LocalDateTime PSBBDate = LocalDateTime.of(2020, 9, 14, 0, 0, 0);
LocalDateTime PSBBEnd = LocalDateTime.parse(GetSettingDataFixed("psbbperiod"), dtf);
Date pssbAwal = Date.from(PSBBDate.atZone(ZoneId.systemDefault()).toInstant());
Date pssbAkhir = Date.from(PSBBEnd.atZone(ZoneId.systemDefault()).toInstant());
List<Integer> listRuangEks = splitDataSettingDatafixed("IdRuanganEksekutif");
List<Integer> listKonsulTapiVisit = splitDataSettingDatafixed("konsulTapiVisit");
List<Integer> listIdNonjadwal = shiftKerjaDao.findListNonjadwal();
List<Map<String, Object>> dataLayanan = ikiDanRemunerasiDao.findDetailPasienLogbookLuarJamKerjaDokter(idProduk,
tglPelayanan, pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, idPegawai,
Arrays.asList(Master.JenisProduk.NONTINDAKAN), Master.Produk.KARCIS);
for (Map<String, Object> mapLayanan : dataLayanan) {
if (idIndikator.equals(Master.IndikatorKinerjaJamKerja.VISITE)
&& (listKonsulTapiVisit.contains(mapLayanan.get("produkId"))
|| mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.VISIT))) {
if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)
&& mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon"))
|| !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
} else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
}
} else if (!idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)
&& !mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon"))
|| !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
} else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
}
}
} else if (idIndikator.equals(Master.IndikatorKinerjaJamKerja.KONSUL_EKS)
&& mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL)
&& listRuangEks.contains(mapLayanan.get("ruanganId"))) {
if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)
&& mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon"))
|| !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
} else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
}
} else if (!idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)
&& !mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon"))
|| !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
} else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
}
}
} else if (idIndikator.equals(Master.IndikatorKinerjaJamKerja.KONSUL_GADAR)
&& mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL)
&& mapLayanan.get("departemenId").equals(Master.Departemen.IGD)) {
if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)
&& mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon"))
|| !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
} else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
}
} else if (!idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)
&& !mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon"))
|| !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
} else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
}
}
} else if (idIndikator.equals(Master.IndikatorKinerjaJamKerja.KONSUL_REG)
&& mapLayanan.get("namaProduk").toString().toLowerCase().contains(Master.KONSUL)) {
if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)
&& mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon"))
|| !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
} else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
}
} else if (!idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)
&& !mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon"))
|| !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
} else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
}
}
} else if (idIndikator.equals(Master.IndikatorKinerjaJamKerja.TINDAKAN_EKS)
&& listRuangEks.contains(mapLayanan.get("ruanganId"))) {
if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)
&& mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon"))
|| !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
} else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
}
} else if (!idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)
&& !mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon"))
|| !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
} else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
}
}
} else if (idIndikator.equals(Master.IndikatorKinerjaJamKerja.TINDAKAN_GADAR)
&& mapLayanan.get("departemenId").equals(Master.Departemen.IGD)) {
if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)
&& mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon"))
|| !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
} else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
}
} else if (!idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)
&& !mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon"))
|| !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
} else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
}
}
} else if (idIndikator.equals(Master.IndikatorKinerjaJamKerja.TINDAKAN_OPS)
&& mapLayanan.get("ruanganId").equals(Master.Ruangan.OK)) {
if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)
&& mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon"))
|| !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
} else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
}
} else if (!idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)
&& !mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon"))
|| !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
} else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
}
}
} else if (idIndikator.equals(Master.IndikatorKinerjaJamKerja.TINDAKAN_REG)) {
if (idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)
&& mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon"))
|| !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
} else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
}
} else if (!idJenisPetugas.equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)
&& !mapLayanan.get("jenisPetugasId").equals(Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS)) {
if (skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) > 0.0
&& (CommonUtil.isNullOrEmpty(mapLayanan.get("statusDiskon"))
|| !Boolean.valueOf(mapLayanan.get("statusDiskon").toString()))) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
} else if (!skor.equals(0.0) && Double.valueOf(mapLayanan.get("hargaDiskon").toString()) == 0.0) {
mapLayanan.remove("noRec");
mapLayanan.remove("statusDiskon");
mapLayanan.remove("departemenId");
mapLayanan.remove("ruanganId");
mapLayanan.remove("hargaDiskon");
result.add(mapLayanan);
}
}
}
}
return result;
}
@Override

View File

@ -1167,8 +1167,8 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
}
}
@RequestMapping(value = "/get-logbook-skoring-dokter", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getLogbookSkoringDokter(HttpServletRequest request,
@RequestMapping(value = "/get-logbook-skoring-dokter-jam-kerja", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getLogbookSkoringDokterJamKerja(HttpServletRequest request,
@RequestParam(value = "bulan", required = true) Long bulan,
@RequestParam(value = "pegawaiId", required = true) Integer idPegawai) throws ParseException {
try {
@ -1177,18 +1177,18 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException sve) {
LOGGER.error("Got exception {} when get logbook skoring dokter", sve.getMessage());
LOGGER.error("Got exception {} when get logbook skoring dokter di jam kerja", sve.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get logbook skoring dokter", jse.getMessage());
LOGGER.error("Got exception {} when get logbook skoring dokter di jam kerja", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/get-detail-pasien-dokter", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getDetailPasienDetail(HttpServletRequest request,
@RequestMapping(value = "/get-detail-pasien-dokter-jam-kerja", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getDetailPasienDetailJamKerja(HttpServletRequest request,
@RequestParam(value = "pegawaiId", required = true) Integer idPegawai,
@RequestParam(value = "indikatorId", required = true) Integer idIndikator,
@RequestParam(value = "produkId", required = true) Integer idProduk,
@ -1196,17 +1196,66 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
@RequestParam(value = "jenisPetugasId", required = true) Integer idJenisPetugas,
@RequestParam(value = "skor", required = true) Double skor) throws ParseException {
try {
List<Map<String, Object>> result = logbookKinerjaService.findDetailLogbookJamKerjaDokter(idPegawai, idIndikator,
idProduk, tglPelayanan, idJenisPetugas, skor);
List<Map<String, Object>> result = logbookKinerjaService.findDetailLogbookJamKerjaDokter(idPegawai,
idIndikator, idProduk, tglPelayanan, idJenisPetugas, skor);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException sve) {
LOGGER.error("Got exception {} when get detail pasien logbook skoring dokter", sve.getMessage());
LOGGER.error("Got exception {} when get detail pasien logbook skoring dokter di jam kerja",
sve.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get detail pasien logbook skoring dokter", jse.getMessage());
LOGGER.error("Got exception {} when get detail pasien logbook skoring dokter di jam kerja",
jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/get-logbook-skoring-dokter-luar-jam-kerja", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getLogbookSkoringDokterLuarJamKerja(HttpServletRequest request,
@RequestParam(value = "bulan", required = true) Long bulan,
@RequestParam(value = "pegawaiId", required = true) Integer idPegawai) throws ParseException {
try {
List<Map<String, Object>> result = logbookKinerjaService.findLogbookLuarJamKerjaDokter(idPegawai, bulan);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException sve) {
LOGGER.error("Got exception {} when get logbook skoring dokter di luar jam kerja", sve.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get logbook skoring dokter di luar jam kerja", jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}
}
@RequestMapping(value = "/get-detail-pasien-dokter-luar-jam-kerja", method = RequestMethod.GET)
public ResponseEntity<List<Map<String, Object>>> getDetailPasienDetailLuarJamKerja(HttpServletRequest request,
@RequestParam(value = "pegawaiId", required = true) Integer idPegawai,
@RequestParam(value = "indikatorId", required = true) Integer idIndikator,
@RequestParam(value = "produkId", required = true) Integer idProduk,
@RequestParam(value = "tglPelayanan", required = true) String tglPelayanan,
@RequestParam(value = "jenisPetugasId", required = true) Integer idJenisPetugas,
@RequestParam(value = "skor", required = true) Double skor) throws ParseException {
try {
List<Map<String, Object>> result = logbookKinerjaService.findDetailLogbookLuarJamKerjaDokter(idPegawai,
idIndikator, idProduk, tglPelayanan, idJenisPetugas, skor);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request));
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
} catch (ServiceVOException sve) {
LOGGER.error("Got exception {} when get detail pasien logbook skoring dokter di luar jam kerja",
sve.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage);
} catch (JpaSystemException jse) {
LOGGER.error("Got exception {} when get detail pasien logbook skoring dokter di luar jam kerja",
jse.getMessage());
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
}