- pembuatan query validasi mapping harga layanan medis ke kelas pelayanan pasien
- penerapan detail jenis produk terhadap filter data tampil saat hitung target layanan otomatis - penerapan detail jenis produk terhadap filter data tampil saat otomatis verifikasi hasil kinerja layanan medis dokter - penerapan detail jenis produk terhadap filter data tampil logbook skor kinerja dokter dan dashboard logbook skor - perbaikan query jika tidak ada harga satuan transaksi pelayanan pasien - penerapan pembulatan 3 desimal pada tampilan skor di logbook kinerja dokter dan logbook skor
This commit is contained in:
parent
a543a0f894
commit
1544a00330
@ -12,7 +12,7 @@ import com.jasamedika.medifirst2000.entities.HargaNettoProdukByKelas;
|
||||
|
||||
@Repository("HargaNettoProdukByKelasDao")
|
||||
public interface HargaNettoProdukByKelasDao extends PagingAndSortingRepository<HargaNettoProdukByKelas, Integer> {
|
||||
|
||||
|
||||
@Query("select model from HargaNettoProdukByKelas model where model.produk.id=:produkId and model.kelas.id=:kelasId "
|
||||
+ "and model.asalProduk.id=:asalProdukId and model.jenisTarif.id=:jenisTarifId")
|
||||
public List<HargaNettoProdukByKelas> findProdByKelas(@Param("produkId") Integer produkId,
|
||||
@ -30,4 +30,9 @@ public interface HargaNettoProdukByKelasDao extends PagingAndSortingRepository<H
|
||||
+ " join hargaNetto.produk produk " + " left join hargaNetto.kelas kelas " + " order by produk.id")
|
||||
public List<Map<String, Object>> getListprodukInMapping();
|
||||
|
||||
@Query("select new Map(hnk.produkId as produkId,hnk.kelasId as kelasId) " + "from HargaNettoProdukByKelas hnk "
|
||||
+ "where hnk.produkId = :produkId " + "and hnk.kelasId = :kelasId " + "and hnk.statusEnabled is true")
|
||||
public List<Map<String, Object>> checkExisting(@Param("kelasId") Integer kelasId,
|
||||
@Param("produkId") Integer produkId);
|
||||
|
||||
}
|
||||
|
||||
@ -117,18 +117,27 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
|
||||
+ "and sk.statusEnabled is true " + "and pp.tglPelayanan between :tglAwal and :tglAkhir "
|
||||
+ "and cast(pp.tglPelayanan as date) = cast(kl.tanggal as date) "
|
||||
+ "and (((((to_char(pp.tglPelayanan,'dy') in ('mon','tue','wed','thu') "
|
||||
+ "and to_char(pp.tglPelayanan,'HH24:MM:ss') between '07:00:00' and (case when pp.tglPelayanan between cast(:psbbAwal as timestamp) and cast(:psbbAkhir as timestamp) and ru.departemenId = 18 then '14:00:00' else '15:30:00' end)) "
|
||||
+ "and to_char(pp.tglPelayanan,'HH24:MI:ss') between '07:00:00' and (case when pp.tglPelayanan between cast(:psbbAwal as timestamp) and cast(:psbbAkhir as timestamp) and ru.departemenId = 18 then '14:00:00' else '15:30:00' end)) "
|
||||
+ "or (to_char(pp.tglPelayanan,'dy') in ('fri') "
|
||||
+ "and to_char(pp.tglPelayanan,'HH24:MM:ss') between '07:00:00' and (case when pp.tglPelayanan between cast(:psbbAwal as timestamp) and cast(:psbbAkhir as timestamp) and ru.departemenId = 18 then '15:30:00' else '16:00:00' end))) "
|
||||
+ "and to_char(pp.tglPelayanan,'HH24:MI:ss') between '07:00:00' and (case when pp.tglPelayanan between cast(:psbbAwal as timestamp) and cast(:psbbAkhir as timestamp) and ru.departemenId = 18 then '15:30:00' else '16:00:00' end))) "
|
||||
+ "and sk.id not in (:listNonjadwalId)) and pd.kelompokPasienId not in (:listBpjsId)) "
|
||||
+ "or pd.kelompokPasienId in (:listBpjsId)) " + "and pg.jenisPegawaiId = :jenisPegawaiId "
|
||||
+ "and (djp.id in (case when pg.id in (cast(:listDokterLabPAId as integer)) then (cast(:listDJPLabPAId as integer[])) "
|
||||
+ "when pg.id in (cast(:listDokterLabPKId as integer[])) then (cast(:listDJPLabPKId as integer[])) "
|
||||
+ "when pg.id in (cast(:listDokterRadId as integer[])) then (cast(:listDJPRadId as integer[])) else (cast(:listDJPUtamaId as integer[])) end) "
|
||||
+ "or djp.id in (case when pg.id in (cast(:listLabRadId as integer[])) then (cast(:listDJPAdmPKId as integer[])) else (-1) end)) "
|
||||
+ "and djp.jenisProdukId not in (:listNontindakanId) " + "and pr.id <> :karcisId "
|
||||
+ "order by su.name, pr.id")
|
||||
public List<Map<String, Object>> getDataLayananJamKerja(@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,
|
||||
@Param("listKsmId") List<Integer> listIdKsm, @Param("listNontindakanId") List<Integer> listIdNontindakan,
|
||||
@Param("listBpjsId") List<Integer> listIdBpjs, @Param("karcisId") Integer idKarcis);
|
||||
@Param("listKsmId") List<Integer> listIdKsm, @Param("listDokterLabPAId") Integer[] listIdDokterLabPA,
|
||||
@Param("listDJPLabPAId") Integer[] listIdDJPLabPA, @Param("listDokterLabPKId") Integer[] listIdDokterLabPK,
|
||||
@Param("listDJPLabPKId") Integer[] listIdDJPLabPK, @Param("listDokterRadId") Integer[] listIdDokterRad,
|
||||
@Param("listDJPRadId") Integer[] listIdDJPRad, @Param("listDJPUtamaId") Integer[] listIdDJPUtama,
|
||||
@Param("listLabRadId") Integer[] listIdLabRad, @Param("listDJPAdmPKId") Integer[] listIdDJPAdmPK,
|
||||
@Param("listNontindakanId") List<Integer> listIdNontindakan, @Param("listBpjsId") List<Integer> listIdBpjs,
|
||||
@Param("karcisId") Integer idKarcis);
|
||||
|
||||
// Target_pelayanan_luar_jam_kerja
|
||||
@Query("select distinct new Map(ppp.ObjectJenisPetugasPeId as jenisPetugasId,"
|
||||
@ -155,17 +164,27 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
|
||||
+ "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 pd.kelompokPasienId not in (:listBpjsId)) " + "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")
|
||||
+ "and jb.kelompokJabatanId in (3,4) "
|
||||
+ "and (djp.id in (case when pg.id in (cast(:listDokterLabPAId as integer[])) then (cast(:listDJPLabPAId as integer[])) "
|
||||
+ "when pg.id in (cast(:listDokterLabPKId as integer[])) then (cast(:listDJPLabPKId as integer[])) "
|
||||
+ "when pg.id in (cast(:listDokterRadId as integer[])) then (cast(:listDJPRadId as integer[])) else cast(:listDJPUtamaId as integer[]) end) "
|
||||
+ "or djp.id in (case when pg.id in (cast(:listLabRadId as integer[])) then (cast(:listDJPAdmPKId as integer[])) else (-1) end)) "
|
||||
+ "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,
|
||||
@Param("listKsmId") List<Integer> listIdKsm, @Param("listNontindakanId") List<Integer> listIdNontindakan,
|
||||
@Param("listBpjsId") List<Integer> listIdBpjs, @Param("karcisId") Integer idKarcis);
|
||||
@Param("listKsmId") List<Integer> listIdKsm, @Param("listDokterLabPAId") Integer[] listIdDokterLabPA,
|
||||
@Param("listDJPLabPAId") Integer[] listIdDJPLabPA, @Param("listDokterLabPKId") Integer[] listIdDokterLabPK,
|
||||
@Param("listDJPLabPKId") Integer[] listIdDJPLabPK, @Param("listDokterRadId") Integer[] listIdDokterRad,
|
||||
@Param("listDJPRadId") Integer[] listIdDJPRad, @Param("listDJPUtamaId") Integer[] listIdDJPUtama,
|
||||
@Param("listLabRadId") Integer[] listIdLabRad, @Param("listDJPAdmPKId") Integer[] listIdDJPAdmPK,
|
||||
@Param("listNontindakanId") List<Integer> listIdNontindakan, @Param("listBpjsId") List<Integer> listIdBpjs,
|
||||
@Param("karcisId") Integer idKarcis);
|
||||
|
||||
// Logbook_kinerja_jam_kerja_dokter
|
||||
@Query("select distinct new Map(ppp.ObjectJenisPetugasPeId as jenisPetugasId," + "pg.id as pegawaiId,"
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk,"
|
||||
// Kinerja_jam_kerja_dokter
|
||||
String KinerjaJamKerjaDokter = "select distinct new Map(ppp.ObjectJenisPetugasPeId as jenisPetugasId,"
|
||||
+ "pg.id as pegawaiId," + "pr.id as produkId,pr.namaProduk as namaProduk, djp.id as detailJenisProdukId,"
|
||||
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,pp.jumlah as jumlah,pp.hargaDiscount as hargaDiskon,"
|
||||
+ "ru.departemenId as departemenId,ru.id as ruanganId," + "pd.isDiskonPegawai as statusDiskon) "
|
||||
+ "from PelayananPasienPetugas ppp, MapRuanganToProduk mrtp, PegawaiJadwalKerja pjk "
|
||||
@ -178,13 +197,28 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
|
||||
+ "and to_char(pp.tglPelayanan,'yyyy-MM') = :bulan "
|
||||
+ "and cast(pp.tglPelayanan as date) = cast(kl.tanggal as date) "
|
||||
+ "and (((((to_char(pp.tglPelayanan,'dy') in ('mon','tue','wed','thu') "
|
||||
+ "and to_char(pp.tglPelayanan,'HH24:MM:ss') between '07:00:00' and (case when pp.tglPelayanan between cast(:psbbAwal as timestamp) and cast(:psbbAkhir as timestamp) and ru.departemenId = 18 then '14:00:00' else '15:30:00' end)) "
|
||||
+ "and to_char(pp.tglPelayanan,'HH24:MI:ss') between '07:00:00' and (case when pp.tglPelayanan between cast(:psbbAwal as timestamp) and cast(:psbbAkhir as timestamp) and ru.departemenId = 18 then '14:00:00' else '15:30:00' end)) "
|
||||
+ "or (to_char(pp.tglPelayanan,'dy') in ('fri') "
|
||||
+ "and to_char(pp.tglPelayanan,'HH24:MM:ss') between '07:00:00' and (case when pp.tglPelayanan between cast(:psbbAwal as timestamp) and cast(:psbbAkhir as timestamp) and ru.departemenId = 18 then '15:30:00' else '16:00:00' end))) "
|
||||
+ "and to_char(pp.tglPelayanan,'HH24:MI:ss') between '07:00:00' and (case when pp.tglPelayanan between cast(:psbbAwal as timestamp) and cast(:psbbAkhir as timestamp) and ru.departemenId = 18 then '15:30:00' else '16:00:00' end))) "
|
||||
+ "and sk.id not in (:listNonjadwalId)) and pd.kelompokPasienId not in (:listBpjsId)) "
|
||||
+ "or pd.kelompokPasienId in (:listBpjsId)) " + "and pg.jenisPegawaiId = :jenisPegawaiId "
|
||||
+ "and djp.jenisProdukId not in (:listNontindakanId) " + "and pr.id <> :karcisId "
|
||||
+ "and pg.id in (:listPegawaiId) " + "order by pr.namaProduk, pp.tglPelayanan")
|
||||
+ "and pg.id in (:listPegawaiId) ";
|
||||
|
||||
String paramListDetailJenisProdukId = "and djp.id in (:listDetailJenisProdukId) ";
|
||||
|
||||
String sortingKinerjaJamKerjaDokter = "order by pr.namaProduk, pp.tglPelayanan";
|
||||
|
||||
@Query(KinerjaJamKerjaDokter + paramListDetailJenisProdukId + sortingKinerjaJamKerjaDokter)
|
||||
public List<Map<String, Object>> getDataLogbookJamKerjaDokter(@Param("bulan") String bulan,
|
||||
@Param("psbbAwal") Date psbbAwal, @Param("psbbAkhir") Date psbbAkhir,
|
||||
@Param("listNonjadwalId") List<Integer> listIdNonjadwal, @Param("jenisPegawaiId") Integer idJenisPegawai,
|
||||
@Param("listPegawaiId") List<Integer> listIdPegawai,
|
||||
@Param("listDetailJenisProdukId") List<Integer> listIdDetailJenisProduk,
|
||||
@Param("listNontindakanId") List<Integer> listIdNontindakan, @Param("listBpjsId") List<Integer> listIdBpjs,
|
||||
@Param("karcisId") Integer idKarcis);
|
||||
|
||||
@Query(KinerjaJamKerjaDokter + sortingKinerjaJamKerjaDokter)
|
||||
public List<Map<String, Object>> getDataLogbookJamKerjaDokter(@Param("bulan") String bulan,
|
||||
@Param("psbbAwal") Date psbbAwal, @Param("psbbAkhir") Date psbbAkhir,
|
||||
@Param("listNonjadwalId") List<Integer> listIdNonjadwal, @Param("jenisPegawaiId") Integer idJenisPegawai,
|
||||
@ -214,59 +248,62 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
|
||||
+ "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 pd.kelompokPasienId not in (:listBpjsId)) " + "and pg.jenisPegawaiId = :jenisPegawaiId "
|
||||
+ "and djp.jenisProdukId not in (:listNontindakanId) " + "and pr.id <> :karcisId "
|
||||
+ "and pg.id = :pegawaiId " + "order by pr.namaProduk, pp.tglPelayanan")
|
||||
+ "and djp.id in (:listDetailJenisProdukId) " + "and djp.jenisProdukId not in (:listNontindakanId) "
|
||||
+ "and pr.id <> :karcisId " + "and pg.id = :pegawaiId " + "order by pr.namaProduk, pp.tglPelayanan")
|
||||
public List<Map<String, Object>> getDataLogbookLuarJamKerjaDokter(@Param("bulan") String bulan,
|
||||
@Param("psbbAwal") Date psbbAwal, @Param("psbbAkhir") Date psbbAkhir,
|
||||
@Param("listNonjadwalId") List<Integer> listIdNonjadwal, @Param("jenisPegawaiId") Integer idJenisPegawai,
|
||||
@Param("pegawaiId") Integer idPegawai, @Param("listNontindakanId") List<Integer> listIdNontindakan,
|
||||
@Param("listBpjsId") List<Integer> listIdBpjs, @Param("karcisId") Integer idKarcis);
|
||||
@Param("pegawaiId") Integer idPegawai,
|
||||
@Param("listDetailJenisProdukId") List<Integer> listIdDetailJenisProduk,
|
||||
@Param("listNontindakanId") List<Integer> listIdNontindakan, @Param("listBpjsId") List<Integer> listIdBpjs,
|
||||
@Param("karcisId") Integer idKarcis);
|
||||
|
||||
// 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,"
|
||||
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,to_char(pp.tglPelayanan,'dd-MM-yyyy HH:mi:ss') as tglPelayananFormatted,pp.jumlah as jumlah,pp.hargaDiscount as hargaDiskon,"
|
||||
+ "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.hargaDiscount as hargaDiskon,"
|
||||
+ "ru.departemenId as departemenId,ru.id as ruanganId,ru.namaRuangan as namaRuangan,"
|
||||
+ "pd.noRegistrasi as noRegistrasi,pd.isDiskonPegawai as statusDiskon,"
|
||||
+ "ps.namaPasien as namaPasien, ps.noCm as noCm) "
|
||||
+ "ps.namaPasien as namaPasien, ps.noCm as noCm, " + "kp.kelompokPasien as kelompokPasien) "
|
||||
+ "from PelayananPasienPetugas ppp, MapRuanganToProduk mrtp, PegawaiJadwalKerja pjk "
|
||||
+ "left join ppp.pelayananPasien pp " + "left join ppp.kdpegawai pg "
|
||||
+ "left join ppp.kdjenispetugaspe jpp " + "left join pp.produk pr " + "left join pp.pasienDaftar apd "
|
||||
+ "left join pr.detailJenisProduk djp " + "left join apd.pasienDaftar pd " + "left join apd.ruangan ru "
|
||||
+ "left join pd.pasien ps " + "left join pjk.shift sk " + "left join pjk.tanggal kl "
|
||||
+ "where mrtp.produkId = pr.id " + "and mrtp.ruanganId = apd.ruanganId "
|
||||
+ "left join pd.pasien ps " + "left join pd.kelompokPasien kp " + "left join pjk.shift sk "
|
||||
+ "left join pjk.tanggal kl " + "where mrtp.produkId = pr.id " + "and mrtp.ruanganId = apd.ruanganId "
|
||||
+ "and pjk.pegawaiId = ppp.ObjectPegawaiId " + "and pjk.pegawaiId = pg.id "
|
||||
+ "and pg.statusEnabled is true " + "and pd.statusEnabled is true " + "and pr.id = :produkId "
|
||||
+ "and to_char(pp.tglPelayanan,'yyyy-MM-dd') = :tglPelayanan "
|
||||
+ "and cast(pp.tglPelayanan as date) = cast(kl.tanggal as date) "
|
||||
+ "and (((((to_char(pp.tglPelayanan,'dy') in ('mon','tue','wed','thu') "
|
||||
+ "and to_char(pp.tglPelayanan,'HH24:MM:ss') between '07:00:00' and (case when pp.tglPelayanan between cast(:psbbAwal as timestamp) and cast(:psbbAkhir as timestamp) and ru.departemenId = 18 then '14:00:00' else '15:30:00' end)) "
|
||||
+ "and to_char(pp.tglPelayanan,'HH24:MI:ss') between '07:00:00' and (case when pp.tglPelayanan between cast(:psbbAwal as timestamp) and cast(:psbbAkhir as timestamp) and ru.departemenId = 18 then '14:00:00' else '15:30:00' end)) "
|
||||
+ "or (to_char(pp.tglPelayanan,'dy') in ('fri') "
|
||||
+ "and to_char(pp.tglPelayanan,'HH24:MM:ss') between '07:00:00' and (case when pp.tglPelayanan between cast(:psbbAwal as timestamp) and cast(:psbbAkhir as timestamp) and ru.departemenId = 18 then '15:30:00' else '16:00:00' end))) "
|
||||
+ "and to_char(pp.tglPelayanan,'HH24:MI:ss') between '07:00:00' and (case when pp.tglPelayanan between cast(:psbbAwal as timestamp) and cast(:psbbAkhir as timestamp) and ru.departemenId = 18 then '15:30:00' else '16:00:00' end))) "
|
||||
+ "and sk.id not in (:listNonjadwalId)) and pd.kelompokPasienId not in (:listBpjsId)) "
|
||||
+ "or pd.kelompokPasienId in (:listBpjsId)) " + "and pg.jenisPegawaiId = :jenisPegawaiId "
|
||||
+ "and djp.jenisProdukId not in (:listNontindakanId) " + "and pr.id <> :karcisId "
|
||||
+ "and pg.id = :pegawaiId" + " order by pr.namaProduk, pp.tglPelayanan")
|
||||
+ "and djp.id in (:listDetailJenisProdukId) " + "and djp.jenisProdukId not in (:listNontindakanId) "
|
||||
+ "and pr.id <> :karcisId " + "and pg.id = :pegawaiId" + " order by pr.namaProduk, pp.tglPelayanan")
|
||||
public List<Map<String, Object>> findDetailPasienLogbookJamKerjaDokter(@Param("produkId") Integer idProduk,
|
||||
@Param("tglPelayanan") String tglPelayanan, @Param("psbbAwal") Date psbbAwal,
|
||||
@Param("psbbAkhir") Date psbbAkhir, @Param("listNonjadwalId") List<Integer> listIdNonjadwal,
|
||||
@Param("jenisPegawaiId") Integer idJenisPegawai, @Param("pegawaiId") Integer idPegawai,
|
||||
@Param("listDetailJenisProdukId") List<Integer> listIdDetailJenisProduk,
|
||||
@Param("listNontindakanId") List<Integer> listIdNontindakan, @Param("listBpjsId") List<Integer> listIdBpjs,
|
||||
@Param("karcisId") Integer idKarcis);
|
||||
|
||||
// Detail_logbook_kinerja_luar_jam_kerja_dokter
|
||||
@Query("select distinct new Map(jpp.id as jenisPetugasId, jpp.jenisPetugasPe as jenisPetugas,"
|
||||
+ "pr.id as produkId,pr.namaProduk as namaProduk,"
|
||||
+ "pp.noRec as noRec,pp.tglPelayanan as tglPelayanan,to_char(pp.tglPelayanan,'dd-MM-yyyy HH:mi:ss') as tglPelayananFormatted,pp.jumlah as jumlah,pp.hargaDiscount as hargaDiskon,"
|
||||
+ "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.hargaDiscount as hargaDiskon,"
|
||||
+ "ru.departemenId as departemenId,ru.id as ruanganId,ru.namaRuangan as namaRuangan,"
|
||||
+ "pd.noRegistrasi as noRegistrasi,pd.isDiskonPegawai as statusDiskon,"
|
||||
+ "ps.namaPasien as namaPasien, ps.noCm as noCm) "
|
||||
+ "ps.namaPasien as namaPasien, ps.noCm as noCm, kp.kelompokPasien as kelompokPasien) "
|
||||
+ "from PelayananPasienPetugas ppp, MapRuanganToProduk mrtp, PegawaiJadwalKerja pjk "
|
||||
+ "left join ppp.pelayananPasien pp " + "left join ppp.kdpegawai pg "
|
||||
+ "left join ppp.kdjenispetugaspe jpp " + "left join pp.produk pr " + "left join pp.pasienDaftar apd "
|
||||
+ "left join pr.detailJenisProduk djp " + "left join apd.pasienDaftar pd " + "left join apd.ruangan ru "
|
||||
+ "left join pd.pasien ps " + "left join pjk.shift sk " + "left join pjk.tanggal kl "
|
||||
+ "where mrtp.produkId = pr.id " + "and mrtp.ruanganId = apd.ruanganId "
|
||||
+ "left join pd.pasien ps " + "left join pd.kelompokPasien kp " + "left join pjk.shift sk "
|
||||
+ "left join pjk.tanggal kl " + "where mrtp.produkId = pr.id " + "and mrtp.ruanganId = apd.ruanganId "
|
||||
+ "and pjk.pegawaiId = ppp.ObjectPegawaiId " + "and pjk.pegawaiId = pg.id "
|
||||
+ "and pg.statusEnabled is true " + "and pd.statusEnabled is true " + "and pr.id = :produkId "
|
||||
+ "and to_char(pp.tglPelayanan,'yyyy-MM-dd') = :tglPelayanan "
|
||||
@ -279,12 +316,13 @@ public interface IkiDanRemunerasiDao extends PagingAndSortingRepository<IkiDanRe
|
||||
+ "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 pd.kelompokPasienId not in (:listBpjsId)) " + "and pg.jenisPegawaiId = :jenisPegawaiId "
|
||||
+ "and djp.jenisProdukId not in (:listNontindakanId) " + "and pr.id <> :karcisId "
|
||||
+ "and pg.id = :pegawaiId " + "order by pr.namaProduk, pp.tglPelayanan")
|
||||
+ "and djp.id in (:listDetailJenisProdukId) " + "and djp.jenisProdukId not in (:listNontindakanId) "
|
||||
+ "and pr.id <> :karcisId " + "and pg.id = :pegawaiId " + "order by pr.namaProduk, pp.tglPelayanan")
|
||||
public List<Map<String, Object>> findDetailPasienLogbookLuarJamKerjaDokter(@Param("produkId") Integer idProduk,
|
||||
@Param("tglPelayanan") String tglPelayanan, @Param("psbbAwal") Date psbbAwal,
|
||||
@Param("psbbAkhir") Date psbbAkhir, @Param("listNonjadwalId") List<Integer> listIdNonjadwal,
|
||||
@Param("jenisPegawaiId") Integer idJenisPegawai, @Param("pegawaiId") Integer idPegawai,
|
||||
@Param("listDetailJenisProdukId") List<Integer> listIdDetailJenisProduk,
|
||||
@Param("listNontindakanId") List<Integer> listIdNontindakan, @Param("listBpjsId") List<Integer> listIdBpjs,
|
||||
@Param("karcisId") Integer idKarcis);
|
||||
}
|
||||
@ -126,7 +126,7 @@ public interface RevIndekKinerjaDao extends PagingAndSortingRepository<IndekKine
|
||||
+ "produk.namaProduk as namaProduk, " + "kelas.id as idKelas, " + "kelas.namaKelas as namaKelas, "
|
||||
+ "(select distinct harga.hargaNetto1 from HargaNettoProdukByKelas harga "
|
||||
+ "where harga.produkId = produk.id and harga.statusEnabled is true and harga.kelasId = :idKelasSatu) as hargaKelas1, "
|
||||
+ "pelayananPasien.hargaSatuan as harga, " + "pelayananPasien.hargaDiscount as diskon, "
|
||||
+ "coalesce(pelayananPasien.hargaSatuan, 0) as harga, " + "pelayananPasien.hargaDiscount as diskon, "
|
||||
+ "pelayananPasien.jumlah as count, " + "to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') as tanggal, "
|
||||
+ "cast(pelayananPasien.tglPelayanan as timestamp) as tanggalPelayanan, "
|
||||
+ "pasienDaftar.kelompokPasienId as kelompokPasienId, " + "pasienDaftar.isDiskonPegawai as statusDiskon, "
|
||||
|
||||
@ -28,6 +28,7 @@ import com.jasamedika.medifirst2000.dao.IndikatorKinerjaDetailDao;
|
||||
import com.jasamedika.medifirst2000.dao.JabatanDao;
|
||||
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDokterDao;
|
||||
import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao;
|
||||
import com.jasamedika.medifirst2000.dao.MapPegawaiLaboratRadiologiDao;
|
||||
import com.jasamedika.medifirst2000.dao.MonitoringAbsenDao;
|
||||
import com.jasamedika.medifirst2000.dao.PegawaiDao;
|
||||
import com.jasamedika.medifirst2000.dao.RunningNumberDao;
|
||||
@ -151,6 +152,9 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
@Autowired
|
||||
private JabatanDao jabatanDao;
|
||||
|
||||
@Autowired
|
||||
private MapPegawaiLaboratRadiologiDao mapPegawaiLaboratRadiologiDao;
|
||||
|
||||
@Override
|
||||
public Map<String, Object> loadData() {
|
||||
Map<String, Object> result = new HashMap<>();
|
||||
@ -520,10 +524,28 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
|
||||
List<Integer> listIdNonjadwal = shiftKerjaDao.findListNonjadwal();
|
||||
|
||||
List<Integer> listIdDokterLabPA = pegawaiDao.getDokterLabPatologiAnatomi();
|
||||
Integer[] listIdDJPLabPA = Master.DetailJenisProduk.PENUNJANG_PATOLOGI_ANATOMI;
|
||||
|
||||
List<Integer> listIdDokterLabPK = pegawaiDao.getDokterLabKlinik();
|
||||
Integer[] listIdDJPLabPK = Master.DetailJenisProduk.PENUNJANG_PATOLOGI_KLINIK;
|
||||
|
||||
List<Integer> listIdDokterRad = pegawaiDao.getDokterRadiologi();
|
||||
Integer[] listIdDJPRad = Master.DetailJenisProduk.PENUNJANG_RADIOLOGI;
|
||||
|
||||
Integer[] listIdDJPUtama = Master.DetailJenisProduk.MEDIS_UTAMA;
|
||||
|
||||
List<Integer> listIdLaboranRadiolog = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog();
|
||||
Integer[] listIdDJPAdmPK = Master.DetailJenisProduk.ADMINISTRASI_PATOLOGI_KLINIK_EXCEPTION;
|
||||
|
||||
List<Map<String, Object>> dataLayananRaw = ikiDanRemunerasiDao.getDataLayananJamKerja(calTglAwal.getTime(),
|
||||
bulan.getTime(), pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER,
|
||||
Arrays.asList(Master.UnitKerja.KSM), Arrays.asList(Master.JenisProduk.NONTINDAKAN),
|
||||
Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), Master.Produk.KARCIS);
|
||||
Arrays.asList(Master.UnitKerja.KSM), listIdDokterLabPA.stream().toArray(Integer[]::new), listIdDJPLabPA,
|
||||
listIdDokterLabPK.stream().toArray(Integer[]::new), listIdDJPLabPK,
|
||||
listIdDokterRad.stream().toArray(Integer[]::new), listIdDJPRad, listIdDJPUtama,
|
||||
listIdLaboranRadiolog.stream().toArray(Integer[]::new), listIdDJPAdmPK,
|
||||
Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS),
|
||||
Master.Produk.KARCIS);
|
||||
|
||||
// get_kategori_bulan
|
||||
List<String> listBulanPelayanan = new ArrayList<>();
|
||||
@ -946,10 +968,28 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik
|
||||
|
||||
List<Integer> listIdNonjadwal = shiftKerjaDao.findListNonjadwal();
|
||||
|
||||
List<Integer> listIdDokterLabPA = pegawaiDao.getDokterLabPatologiAnatomi();
|
||||
Integer[] listIdDJPLabPA = Master.DetailJenisProduk.PENUNJANG_PATOLOGI_ANATOMI;
|
||||
|
||||
List<Integer> listIdDokterLabPK = pegawaiDao.getDokterLabKlinik();
|
||||
Integer[] listIdDJPLabPK = Master.DetailJenisProduk.PENUNJANG_PATOLOGI_KLINIK;
|
||||
|
||||
List<Integer> listIdDokterRad = pegawaiDao.getDokterRadiologi();
|
||||
Integer[] listIdDJPRad = Master.DetailJenisProduk.PENUNJANG_RADIOLOGI;
|
||||
|
||||
Integer[] listIdDJPUtama = Master.DetailJenisProduk.MEDIS_UTAMA;
|
||||
|
||||
List<Integer> listIdLaboranRadiolog = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog();
|
||||
Integer[] listIdDJPAdmPK = Master.DetailJenisProduk.ADMINISTRASI_PATOLOGI_KLINIK_EXCEPTION;
|
||||
|
||||
List<Map<String, Object>> dataLayananRaw = ikiDanRemunerasiDao.getDataLayananLuarJamKerja(calTglAwal.getTime(),
|
||||
bulan.getTime(), pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER,
|
||||
Arrays.asList(Master.UnitKerja.KSM), Arrays.asList(Master.JenisProduk.NONTINDAKAN),
|
||||
Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), Master.Produk.KARCIS);
|
||||
Arrays.asList(Master.UnitKerja.KSM), listIdDokterLabPA.stream().toArray(Integer[]::new), listIdDJPLabPA,
|
||||
listIdDokterLabPK.stream().toArray(Integer[]::new), listIdDJPLabPK,
|
||||
listIdDokterRad.stream().toArray(Integer[]::new), listIdDJPRad, listIdDJPUtama,
|
||||
listIdLaboranRadiolog.stream().toArray(Integer[]::new), listIdDJPAdmPK,
|
||||
Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS),
|
||||
Master.Produk.KARCIS);
|
||||
|
||||
// get_kategori_bulan
|
||||
List<String> listBulanPelayanan = new ArrayList<>();
|
||||
|
||||
@ -32,6 +32,7 @@ import com.jasamedika.medifirst2000.dao.IndikatorKinerjaDetailDao;
|
||||
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDao;
|
||||
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDetailDao;
|
||||
import com.jasamedika.medifirst2000.dao.LogbookKinerjaDokterDao;
|
||||
import com.jasamedika.medifirst2000.dao.MapPegawaiLaboratRadiologiDao;
|
||||
import com.jasamedika.medifirst2000.dao.PegawaiDao;
|
||||
import com.jasamedika.medifirst2000.dao.ShiftKerjaDao;
|
||||
import com.jasamedika.medifirst2000.dao.SkoringTindakanMedisDao;
|
||||
@ -101,6 +102,9 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
@Autowired
|
||||
private ShiftKerjaDao shiftKerjaDao;
|
||||
|
||||
@Autowired
|
||||
private MapPegawaiLaboratRadiologiDao mapPegawaiLaboratRadiologiDao;
|
||||
|
||||
@Override
|
||||
public LogbookKinerjaVO add(LogbookKinerjaVO vo) throws JpaSystemException, ServiceVOException {
|
||||
Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai());
|
||||
@ -637,13 +641,15 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
List<Integer> listIdIndikator = new ArrayList<>();
|
||||
List<Integer> listIdProduk = new ArrayList<>();
|
||||
List<Double> listSkor = new ArrayList<>();
|
||||
List<Integer> listDetailJenisProduk = new ArrayList<>();
|
||||
List<Integer> listDetailJenisProdukException = 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");
|
||||
DecimalFormat decf = new DecimalFormat("###.###");
|
||||
decf.setRoundingMode(RoundingMode.HALF_UP);
|
||||
|
||||
LocalDateTime PSBBDate = LocalDateTime.of(2020, 9, 14, 0, 0, 0);
|
||||
@ -656,10 +662,28 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
List<Integer> listKonsulTapiVisit = splitDataSettingDatafixed("konsulTapiVisit");
|
||||
|
||||
List<Integer> listIdNonjadwal = shiftKerjaDao.findListNonjadwal();
|
||||
List<Integer> laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog();
|
||||
if (pegawaiDao.getDokterLabPatologiAnatomi().contains(idPegawai)) {
|
||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_ANATOMI));
|
||||
} else if (pegawaiDao.getDokterLabKlinik().contains(idPegawai)) {
|
||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_KLINIK));
|
||||
} else if (pegawaiDao.getDokterRadiologi().contains(idPegawai)) {
|
||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_RADIOLOGI));
|
||||
} else {
|
||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.MEDIS_UTAMA));
|
||||
}
|
||||
|
||||
if (laboranRadiologList.contains(idPegawai)) {
|
||||
listDetailJenisProdukException = new ArrayList<>(
|
||||
Arrays.asList(Master.DetailJenisProduk.ADMINISTRASI_PATOLOGI_KLINIK_EXCEPTION));
|
||||
listDetailJenisProdukException.removeAll(listDetailJenisProduk);
|
||||
|
||||
listDetailJenisProduk.addAll(listDetailJenisProdukException);
|
||||
}
|
||||
|
||||
List<Map<String, Object>> dataLayanan = ikiDanRemunerasiDao.getDataLogbookJamKerjaDokter(
|
||||
mf.format(new Date(bulan)), pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER,
|
||||
Arrays.asList(idPegawai), Arrays.asList(Master.JenisProduk.NONTINDAKAN),
|
||||
Arrays.asList(idPegawai), listDetailJenisProduk, Arrays.asList(Master.JenisProduk.NONTINDAKAN),
|
||||
Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), Master.Produk.KARCIS);
|
||||
|
||||
List<Map<String, Object>> dataSkor = skoringTindakanMedisDao.findSkoringLogbookDokter(
|
||||
@ -687,21 +711,23 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
&& (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);
|
||||
mapLayanan.put("skor", 0.000);
|
||||
mapLayanan.put("tSkor", 0.000);
|
||||
} 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_EKSEKUTIF);
|
||||
mapLayanan.put("skor", Double.parseDouble(decf.format(
|
||||
Double.valueOf(mapLayanan.get("skor").toString()) * Master.Remunerasi.PERSEN_SKOR_EKSEKUTIF)));
|
||||
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_ASISTEN_SPESIALIS);
|
||||
mapLayanan.put("skor", Double.parseDouble(decf.format(Double.valueOf(mapLayanan.get("skor").toString())
|
||||
* 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.parseDouble(decf.format(Double.valueOf(mapLayanan.get("skor").toString()))));
|
||||
mapLayanan.put("tSkor", Double.parseDouble(decf.format(Double.valueOf(mapLayanan.get("skor").toString())
|
||||
* Double.valueOf(mapLayanan.get("jumlah").toString()))));
|
||||
}
|
||||
@ -843,6 +869,8 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
List<String> listTglPelayanan = new ArrayList<>();
|
||||
List<Integer> listIdIndikator = new ArrayList<>();
|
||||
List<Integer> listIdProduk = new ArrayList<>();
|
||||
List<Integer> listDetailJenisProduk = new ArrayList<>();
|
||||
List<Integer> listDetailJenisProdukException = new ArrayList<>();
|
||||
List<Double> listSkor = new ArrayList<>();
|
||||
|
||||
DateFormat mf = new SimpleDateFormat("yyyy-MM");
|
||||
@ -850,7 +878,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
|
||||
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
DecimalFormat decf = new DecimalFormat("0.00");
|
||||
DecimalFormat decf = new DecimalFormat("###.###");
|
||||
decf.setRoundingMode(RoundingMode.HALF_UP);
|
||||
|
||||
LocalDateTime PSBBDate = LocalDateTime.of(2020, 9, 14, 0, 0, 0);
|
||||
@ -863,11 +891,29 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
List<Integer> listKonsulTapiVisit = splitDataSettingDatafixed("konsulTapiVisit");
|
||||
|
||||
List<Integer> listIdNonjadwal = shiftKerjaDao.findListNonjadwal();
|
||||
List<Integer> laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog();
|
||||
if (pegawaiDao.getDokterLabPatologiAnatomi().contains(idPegawai)) {
|
||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_ANATOMI));
|
||||
} else if (pegawaiDao.getDokterLabKlinik().contains(idPegawai)) {
|
||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_KLINIK));
|
||||
} else if (pegawaiDao.getDokterRadiologi().contains(idPegawai)) {
|
||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_RADIOLOGI));
|
||||
} else {
|
||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.MEDIS_UTAMA));
|
||||
}
|
||||
|
||||
if (laboranRadiologList.contains(idPegawai)) {
|
||||
listDetailJenisProdukException = new ArrayList<>(
|
||||
Arrays.asList(Master.DetailJenisProduk.ADMINISTRASI_PATOLOGI_KLINIK_EXCEPTION));
|
||||
listDetailJenisProdukException.removeAll(listDetailJenisProduk);
|
||||
|
||||
listDetailJenisProduk.addAll(listDetailJenisProdukException);
|
||||
}
|
||||
|
||||
List<Map<String, Object>> dataLayanan = ikiDanRemunerasiDao.getDataLogbookLuarJamKerjaDokter(
|
||||
mf.format(new Date(bulan)), pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, idPegawai,
|
||||
Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS),
|
||||
Master.Produk.KARCIS);
|
||||
listDetailJenisProduk, Arrays.asList(Master.JenisProduk.NONTINDAKAN),
|
||||
Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), Master.Produk.KARCIS);
|
||||
|
||||
List<Map<String, Object>> dataSkor = skoringTindakanMedisDao.findSkoringLogbookDokter(
|
||||
mf.format(new Date(bulan)), Arrays.asList(idPegawai), Arrays.asList(Master.UnitKerja.KSM));
|
||||
@ -894,24 +940,25 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
&& (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);
|
||||
mapLayanan.put("skor", 0.000);
|
||||
mapLayanan.put("tSkor", 0.000);
|
||||
} 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("skor", Double.parseDouble(decf.format(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);
|
||||
Double.parseDouble(decf.format(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("skor", Double.parseDouble(decf.format(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()))));
|
||||
}
|
||||
@ -1052,6 +1099,9 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
Integer idProduk, String tglPelayanan, Integer idJenisPetugas, Double skor) {
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
|
||||
List<Integer> listDetailJenisProduk = new ArrayList<>();
|
||||
List<Integer> listDetailJenisProdukException = new ArrayList<>();
|
||||
|
||||
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
LocalDateTime PSBBDate = LocalDateTime.of(2020, 9, 14, 0, 0, 0);
|
||||
@ -1064,11 +1114,29 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
List<Integer> listKonsulTapiVisit = splitDataSettingDatafixed("konsulTapiVisit");
|
||||
|
||||
List<Integer> listIdNonjadwal = shiftKerjaDao.findListNonjadwal();
|
||||
List<Integer> laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog();
|
||||
if (pegawaiDao.getDokterLabPatologiAnatomi().contains(idPegawai)) {
|
||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_ANATOMI));
|
||||
} else if (pegawaiDao.getDokterLabKlinik().contains(idPegawai)) {
|
||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_KLINIK));
|
||||
} else if (pegawaiDao.getDokterRadiologi().contains(idPegawai)) {
|
||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_RADIOLOGI));
|
||||
} else {
|
||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.MEDIS_UTAMA));
|
||||
}
|
||||
|
||||
if (laboranRadiologList.contains(idPegawai)) {
|
||||
listDetailJenisProdukException = new ArrayList<>(
|
||||
Arrays.asList(Master.DetailJenisProduk.ADMINISTRASI_PATOLOGI_KLINIK_EXCEPTION));
|
||||
listDetailJenisProdukException.removeAll(listDetailJenisProduk);
|
||||
|
||||
listDetailJenisProduk.addAll(listDetailJenisProdukException);
|
||||
}
|
||||
|
||||
List<Map<String, Object>> dataLayanan = ikiDanRemunerasiDao.findDetailPasienLogbookJamKerjaDokter(idProduk,
|
||||
tglPelayanan, pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, idPegawai,
|
||||
Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS),
|
||||
Master.Produk.KARCIS);
|
||||
listDetailJenisProduk, Arrays.asList(Master.JenisProduk.NONTINDAKAN),
|
||||
Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), Master.Produk.KARCIS);
|
||||
|
||||
for (Map<String, Object> mapLayanan : dataLayanan) {
|
||||
if (idIndikator.equals(Master.IndikatorKinerjaJamKerja.VISITE)
|
||||
@ -1418,6 +1486,9 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
Integer idProduk, String tglPelayanan, Integer idJenisPetugas, Double skor) {
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
|
||||
List<Integer> listDetailJenisProduk = new ArrayList<>();
|
||||
List<Integer> listDetailJenisProdukException = new ArrayList<>();
|
||||
|
||||
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
LocalDateTime PSBBDate = LocalDateTime.of(2020, 9, 14, 0, 0, 0);
|
||||
@ -1430,11 +1501,29 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
List<Integer> listKonsulTapiVisit = splitDataSettingDatafixed("konsulTapiVisit");
|
||||
|
||||
List<Integer> listIdNonjadwal = shiftKerjaDao.findListNonjadwal();
|
||||
List<Integer> laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog();
|
||||
if (pegawaiDao.getDokterLabPatologiAnatomi().contains(idPegawai)) {
|
||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_ANATOMI));
|
||||
} else if (pegawaiDao.getDokterLabKlinik().contains(idPegawai)) {
|
||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_KLINIK));
|
||||
} else if (pegawaiDao.getDokterRadiologi().contains(idPegawai)) {
|
||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_RADIOLOGI));
|
||||
} else {
|
||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.MEDIS_UTAMA));
|
||||
}
|
||||
|
||||
if (laboranRadiologList.contains(idPegawai)) {
|
||||
listDetailJenisProdukException = new ArrayList<>(
|
||||
Arrays.asList(Master.DetailJenisProduk.ADMINISTRASI_PATOLOGI_KLINIK_EXCEPTION));
|
||||
listDetailJenisProdukException.removeAll(listDetailJenisProduk);
|
||||
|
||||
listDetailJenisProduk.addAll(listDetailJenisProdukException);
|
||||
}
|
||||
|
||||
List<Map<String, Object>> dataLayanan = ikiDanRemunerasiDao.findDetailPasienLogbookLuarJamKerjaDokter(idProduk,
|
||||
tglPelayanan, pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, idPegawai,
|
||||
Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS),
|
||||
Master.Produk.KARCIS);
|
||||
listDetailJenisProduk, Arrays.asList(Master.JenisProduk.NONTINDAKAN),
|
||||
Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), Master.Produk.KARCIS);
|
||||
|
||||
for (Map<String, Object> mapLayanan : dataLayanan) {
|
||||
if (idIndikator.equals(Master.IndikatorKinerjaLuarJamKerja.VISITE)
|
||||
@ -2010,11 +2099,14 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
|
||||
@Override
|
||||
public void autoVerifLogbookJamKerjaDokter(Date bulan) {
|
||||
List<Integer> listDetailJenisProduk = new ArrayList<>();
|
||||
List<Integer> listDetailJenisProdukException = new ArrayList<>();
|
||||
|
||||
DateFormat mf = new SimpleDateFormat("yyyy-MM");
|
||||
|
||||
DateTimeFormatter dtf = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
||||
|
||||
DecimalFormat decf = new DecimalFormat("0.00");
|
||||
DecimalFormat decf = new DecimalFormat("###.###");
|
||||
decf.setRoundingMode(RoundingMode.HALF_UP);
|
||||
|
||||
LocalDateTime PSBBDate = LocalDateTime.of(2020, 9, 14, 0, 0, 0);
|
||||
@ -2066,25 +2158,50 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb
|
||||
} 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_EKSEKUTIF);
|
||||
mapLayanan.put("skor", Double.parseDouble(decf.format(
|
||||
Double.valueOf(mapLayanan.get("skor").toString()) * Master.Remunerasi.PERSEN_SKOR_EKSEKUTIF)));
|
||||
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_ASISTEN_SPESIALIS);
|
||||
mapLayanan.put("skor", Double.parseDouble(decf.format(Double.valueOf(mapLayanan.get("skor").toString())
|
||||
* 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.parseDouble(decf.format(Double.valueOf(mapLayanan.get("skor").toString()))));
|
||||
mapLayanan.put("tSkor", Double.parseDouble(decf.format(Double.valueOf(mapLayanan.get("skor").toString())
|
||||
* Double.valueOf(mapLayanan.get("jumlah").toString()))));
|
||||
}
|
||||
}
|
||||
|
||||
List<Integer> laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog();
|
||||
|
||||
for (Integer idPegawai : listIdPegawai) {
|
||||
if (pegawaiDao.getDokterLabPatologiAnatomi().contains(idPegawai)) {
|
||||
listDetailJenisProduk = new ArrayList<>(
|
||||
Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_ANATOMI));
|
||||
} else if (pegawaiDao.getDokterLabKlinik().contains(idPegawai)) {
|
||||
listDetailJenisProduk = new ArrayList<>(
|
||||
Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_KLINIK));
|
||||
} else if (pegawaiDao.getDokterRadiologi().contains(idPegawai)) {
|
||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_RADIOLOGI));
|
||||
} else {
|
||||
listDetailJenisProduk = new ArrayList<>(Arrays.asList(Master.DetailJenisProduk.MEDIS_UTAMA));
|
||||
}
|
||||
|
||||
if (laboranRadiologList.contains(idPegawai)) {
|
||||
listDetailJenisProdukException = new ArrayList<>(
|
||||
Arrays.asList(Master.DetailJenisProduk.ADMINISTRASI_PATOLOGI_KLINIK_EXCEPTION));
|
||||
listDetailJenisProdukException.removeAll(listDetailJenisProduk);
|
||||
|
||||
listDetailJenisProduk.addAll(listDetailJenisProdukException);
|
||||
}
|
||||
|
||||
double capaian = 0.0;
|
||||
for (Map<String, Object> mapLayanan : dataLayanan) {
|
||||
if (mapLayanan.get("pegawaiId").equals(idPegawai)) {
|
||||
if (mapLayanan.get("pegawaiId").equals(idPegawai)
|
||||
&& listDetailJenisProduk.contains(mapLayanan.get("detailJenisProdukId"))) {
|
||||
capaian += Double.valueOf(mapLayanan.get("tSkor").toString());
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user