Update IndekKinerjaService
Penyesuaian logbook poin dokter menampilkan informasi dan filter kelompok pasien
This commit is contained in:
parent
5edaa9d4a4
commit
8a88e8fa05
@ -125,7 +125,8 @@ public interface RevIndekKinerjaDao extends PagingAndSortingRepository<IndekKine
|
||||
|
||||
String tindakanDokterQuery = "select new Map(dokter.id as idPegawai, " + "jenisPetugas.id as idJenisPelaksana, "
|
||||
+ "detail.id as detailId, " + "detail.detailJenisProduk as detailJenisProduk, " + "produk.id as idProduk, "
|
||||
+ "produk.namaProduk as namaProduk, " + "kelas.id as idKelas, " + "kelas.namaKelas as namaKelas, "
|
||||
+ "produk.namaProduk as namaProduk, " + "kp.id as kelompokPasienId, kp.kelompokPasien as kelompokPasien, "
|
||||
+ "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.reportDisplay = 'tarif_2022_Nov') "
|
||||
@ -148,9 +149,9 @@ public interface RevIndekKinerjaDao extends PagingAndSortingRepository<IndekKine
|
||||
+ "left join pelayananPasien.kelas kelas " + "left join pelayananPasien.pasienDaftar antrian "
|
||||
+ "left join dokter.kategoryPegawai kategoryPegawai " + "left join produk.detailJenisProduk detail "
|
||||
+ "left join antrian.ruangan ruangan " + "left join antrian.pasienDaftar pasienDaftar "
|
||||
+ "left join detail.jenisProduk jenisProduk " + "left join ruangan.departemen departemen "
|
||||
+ "where dokter.id = jadwalKerja.pegawaiId " + "and kalender.id = jadwalKerja.tanggalId "
|
||||
+ "and shift.id = jadwalKerja.shiftId "
|
||||
+ "left join pasienDaftar.kelompokPasien kp " + "left join detail.jenisProduk jenisProduk "
|
||||
+ "left join ruangan.departemen departemen " + "where dokter.id = jadwalKerja.pegawaiId "
|
||||
+ "and kalender.id = jadwalKerja.tanggalId " + "and shift.id = jadwalKerja.shiftId "
|
||||
+ "and to_char(kalender.tanggal, 'yyyy-MM-dd') = to_char(pelayananPasien.tglPelayanan,'yyyy-MM-dd') "
|
||||
+ "and (pelayananPasienPetugas.statusEnabled is null or pelayananPasienPetugas.statusEnabled is true) "
|
||||
+ "and (pelayananPasien.statusEnabled is null or pelayananPasien.statusEnabled is true) "
|
||||
@ -220,7 +221,7 @@ public interface RevIndekKinerjaDao extends PagingAndSortingRepository<IndekKine
|
||||
+ "and ruangan.statusEnabled is true " + "and departemen.statusEnabled is true "
|
||||
+ "and jenisProduk.statusEnabled is true " + "and antrian.kelasId = :idKelas "
|
||||
+ "and pelayananPasienPetugas.ObjectPegawaiId = :idPegawai " + "and produk.id = :idProduk "
|
||||
+ "and jenisPetugas.id <> :idPetugasPelaksana ";
|
||||
+ "and pasienDaftar.kelompokPasienId = :idKelompokPasien " + "and jenisPetugas.id <> :idPetugasPelaksana ";
|
||||
|
||||
String detailPasienQueryBundled = "select new Map(pelayananPasienPetugas.noRec as norecPetugas,"
|
||||
+ "ruangan.namaRuangan as ruangan," + "pelayananPasien.noRec as noRecPelayananPasien,"
|
||||
@ -273,14 +274,14 @@ public interface RevIndekKinerjaDao extends PagingAndSortingRepository<IndekKine
|
||||
@Query(detailPasienQuery + tanggal + orderTanggal)
|
||||
public List<Map<String, Object>> getDetailPasienTindakanDokter(@Param("idKelasSatu") Integer idKelasSatu,
|
||||
@Param("idKelas") Integer idKelas, @Param("idPegawai") Integer idPegawai,
|
||||
@Param("idProduk") Integer idProduk, @Param("idPetugasPelaksana") int idPetugasPelaksana,
|
||||
@Param("tgl") String tgl);
|
||||
@Param("idProduk") Integer idProduk, @Param("idKelompokPasien") Integer idKelompokPasien,
|
||||
@Param("idPetugasPelaksana") int idPetugasPelaksana, @Param("tgl") String tgl);
|
||||
|
||||
@Query(detailPasienQuery + bulan + orderTanggal)
|
||||
public List<Map<String, Object>> getDetailPasienTindakanDokterPerPeriode(@Param("idKelasSatu") Integer idKelasSatu,
|
||||
@Param("idKelas") Integer idKelas, @Param("idPegawai") Integer idPegawai,
|
||||
@Param("idProduk") Integer idProduk, @Param("idPetugasPelaksana") int idPetugasPelaksana,
|
||||
@Param("periode") String periode);
|
||||
@Param("idProduk") Integer idProduk, @Param("idKelompokPasien") Integer idKelompokPasien,
|
||||
@Param("idPetugasPelaksana") int idPetugasPelaksana, @Param("periode") String periode);
|
||||
|
||||
@Query(detailPasienQueryBundled + tanggal + orderTanggal)
|
||||
public List<Map<String, Object>> getDetailPasienTindakanDokter(@Param("idKelasSatu") Integer idKelasSatu,
|
||||
|
||||
@ -93,7 +93,7 @@ public interface IndekKinerjaService {
|
||||
List<Map<String, Object>> findPatientDetailForEveryTindakan(Integer idProduk, Integer idKelas, Integer idPegawai,
|
||||
String tgl, Boolean ffs);
|
||||
|
||||
List<Map<String, Object>> findPatientDetailForEveryTindakanReview(Integer idProduk, Integer idKelas,
|
||||
List<Map<String, Object>> findPatientDetailForEveryTindakanReview(Integer idProduk, Integer idKelompokPasien, Integer idKelas,
|
||||
Integer idPegawai, String tgl, Boolean ffs, Double diskon, Integer statusDiskon);
|
||||
|
||||
List<Map<String, Object>> findPatientDetailForEveryTindakanReview(Integer idPegawai, String tgl, Boolean ffs);
|
||||
|
||||
@ -2679,6 +2679,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
List<Map<String, Object>> countResult = new ArrayList<>();
|
||||
|
||||
List<Integer> listProdukId = new ArrayList<>();
|
||||
List<Integer> listKelompokPasienId = new ArrayList<>();
|
||||
List<Integer> listKelasId = new ArrayList<>();
|
||||
List<Integer> listPelaksanaId = new ArrayList<>();
|
||||
List<Integer> listDetailJenisProduk = new ArrayList<>();
|
||||
@ -3201,6 +3202,9 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
if (!listProdukId.contains(Integer.parseInt(map.get("idProduk").toString()))) {
|
||||
listProdukId.add(Integer.parseInt(map.get("idProduk").toString()));
|
||||
}
|
||||
if (!listKelompokPasienId.contains(Integer.parseInt(map.get("kelompokPasienId").toString()))) {
|
||||
listKelompokPasienId.add(Integer.parseInt(map.get("kelompokPasienId").toString()));
|
||||
}
|
||||
if (!listKelasId.contains(Integer.parseInt(map.get("idKelas").toString()))) {
|
||||
listKelasId.add(Integer.parseInt(map.get("idKelas").toString()));
|
||||
}
|
||||
@ -3212,8 +3216,10 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
}
|
||||
}
|
||||
|
||||
Collections.sort(listKelompokPasienId, Collections.reverseOrder());
|
||||
Collections.sort(listKelasId, Collections.reverseOrder());
|
||||
for (Integer idProduk : listProdukId) {
|
||||
for (Integer idKelompokPasien : listKelompokPasienId) {
|
||||
for (Integer idKelas : listKelasId) {
|
||||
for (Integer idPelaksana : listPelaksanaId) {
|
||||
for (String tanggal : listTanggalPelayanan) {
|
||||
@ -3225,6 +3231,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
int dataCount2 = 0;
|
||||
for (Map<String, Object> map : rawResult) {
|
||||
if (Integer.parseInt(map.get("idProduk").toString()) == idProduk
|
||||
&& Integer.parseInt(
|
||||
map.get("kelompokPasienId").toString()) == idKelompokPasien
|
||||
&& Integer.parseInt(map.get("idKelas").toString()) == idKelas
|
||||
&& Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana
|
||||
&& map.get("tanggal").toString().equals(tanggal)
|
||||
@ -3237,6 +3245,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
mapResult1.putAll(map);
|
||||
}
|
||||
} else if (Integer.parseInt(map.get("idProduk").toString()) == idProduk
|
||||
&& Integer.parseInt(
|
||||
map.get("kelompokPasienId").toString()) == idKelompokPasien
|
||||
&& Integer.parseInt(map.get("idKelas").toString()) == idKelas
|
||||
&& Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana
|
||||
&& map.get("tanggal").toString().equals(tanggal)) {
|
||||
@ -3259,8 +3269,10 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
for (Integer idProduk : listProdukId) {
|
||||
for (Integer idKelompokPasien : listKelompokPasienId) {
|
||||
for (Integer idKelas : listKelasId) {
|
||||
for (Integer idPelaksana : listPelaksanaId) {
|
||||
Map<String, Object> mapResult1 = new HashMap<>();
|
||||
@ -3282,6 +3294,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
for (Map<String, Object> map : countResult) {
|
||||
Map<String, Object> countMap = new HashMap<>();
|
||||
if (Integer.parseInt(map.get("idProduk").toString()) == idProduk
|
||||
&& Integer.parseInt(map.get("kelompokPasienId").toString()) == idKelompokPasien
|
||||
&& Integer.parseInt(map.get("idKelas").toString()) == idKelas
|
||||
&& Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana
|
||||
&& (Double.parseDouble(map.get("diskon").toString()) > 0
|
||||
@ -3300,7 +3313,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
} else if (map.get("namaProduk").toString().toLowerCase().contains("visit")) {
|
||||
totalVisit1 = totalVisit1 + Double.parseDouble(map.get("count").toString());
|
||||
} else {
|
||||
totalTindakan1 = totalTindakan1 + Double.parseDouble(map.get("count").toString());
|
||||
totalTindakan1 = totalTindakan1
|
||||
+ Double.parseDouble(map.get("count").toString());
|
||||
}
|
||||
totalProduk1 = totalProduk1 + Double.parseDouble(map.get("count").toString());
|
||||
counter1 = counter1 + 1;
|
||||
@ -3308,6 +3322,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
mapResult1.putAll(map);
|
||||
}
|
||||
} else if (Integer.parseInt(map.get("idProduk").toString()) == idProduk
|
||||
&& Integer.parseInt(map.get("kelompokPasienId").toString()) == idKelompokPasien
|
||||
&& Integer.parseInt(map.get("idKelas").toString()) == idKelas
|
||||
&& Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana) {
|
||||
countMap.put("count", map.get("count"));
|
||||
@ -3323,7 +3338,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
} else if (map.get("namaProduk").toString().toLowerCase().contains("visit")) {
|
||||
totalVisit2 = totalVisit2 + Double.parseDouble(map.get("count").toString());
|
||||
} else {
|
||||
totalTindakan2 = totalTindakan2 + Double.parseDouble(map.get("count").toString());
|
||||
totalTindakan2 = totalTindakan2
|
||||
+ Double.parseDouble(map.get("count").toString());
|
||||
}
|
||||
totalProduk2 = totalProduk2 + Double.parseDouble(map.get("count").toString());
|
||||
counter2 = counter2 + 1;
|
||||
@ -3350,8 +3366,9 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
.get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) {
|
||||
percentage = persenOperator;
|
||||
if (Double.parseDouble(mapResult1.get("diskon").toString()) > 0
|
||||
&& (CommonUtil.isNullOrEmpty(mapResult1.get("statusDiskon")) || Integer
|
||||
.valueOf(mapResult1.get("statusDiskon").toString()).equals(0))) {
|
||||
&& (CommonUtil.isNullOrEmpty(mapResult1.get("statusDiskon"))
|
||||
|| Integer.valueOf(mapResult1.get("statusDiskon").toString())
|
||||
.equals(0))) {
|
||||
Double totalDiskonJasamedis = pelayananPasienDetailDao
|
||||
.totalDiskonJasamedis(mapResult1.get("noRec").toString());
|
||||
if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis)
|
||||
@ -3363,14 +3380,15 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
percentage = persenCooperator;
|
||||
}
|
||||
} else {
|
||||
if ((Integer) mapResult1
|
||||
.get("idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) {
|
||||
if ((Integer) mapResult1.get(
|
||||
"idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) {
|
||||
percentage = persenCooperator;
|
||||
} else {
|
||||
percentage = persenOperator;
|
||||
if (Double.parseDouble(mapResult1.get("diskon").toString()) > 0
|
||||
&& (CommonUtil.isNullOrEmpty(mapResult1.get("statusDiskon")) || Integer
|
||||
.valueOf(mapResult1.get("statusDiskon").toString()).equals(0))) {
|
||||
&& (CommonUtil.isNullOrEmpty(mapResult1.get("statusDiskon"))
|
||||
|| Integer.valueOf(mapResult1.get("statusDiskon").toString())
|
||||
.equals(0))) {
|
||||
Double totalDiskonJasamedis = pelayananPasienDetailDao
|
||||
.totalDiskonJasamedis(mapResult1.get("noRec").toString());
|
||||
if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis)
|
||||
@ -3446,8 +3464,9 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
.get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) {
|
||||
percentage = persenOperator;
|
||||
if (Double.parseDouble(mapResult2.get("diskon").toString()) > 0
|
||||
&& (CommonUtil.isNullOrEmpty(mapResult2.get("statusDiskon")) || Integer
|
||||
.valueOf(mapResult2.get("statusDiskon").toString()).equals(0))) {
|
||||
&& (CommonUtil.isNullOrEmpty(mapResult2.get("statusDiskon"))
|
||||
|| Integer.valueOf(mapResult2.get("statusDiskon").toString())
|
||||
.equals(0))) {
|
||||
Double totalDiskonJasamedis = pelayananPasienDetailDao
|
||||
.totalDiskonJasamedis(mapResult2.get("noRec").toString());
|
||||
if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis)
|
||||
@ -3459,14 +3478,15 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
percentage = persenCooperator;
|
||||
}
|
||||
} else {
|
||||
if ((Integer) mapResult2
|
||||
.get("idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) {
|
||||
if ((Integer) mapResult2.get(
|
||||
"idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) {
|
||||
percentage = persenCooperator;
|
||||
} else {
|
||||
percentage = persenOperator;
|
||||
if (Double.parseDouble(mapResult2.get("diskon").toString()) > 0
|
||||
&& (CommonUtil.isNullOrEmpty(mapResult2.get("statusDiskon")) || Integer
|
||||
.valueOf(mapResult2.get("statusDiskon").toString()).equals(0))) {
|
||||
&& (CommonUtil.isNullOrEmpty(mapResult2.get("statusDiskon"))
|
||||
|| Integer.valueOf(mapResult2.get("statusDiskon").toString())
|
||||
.equals(0))) {
|
||||
Double totalDiskonJasamedis = pelayananPasienDetailDao
|
||||
.totalDiskonJasamedis(mapResult2.get("noRec").toString());
|
||||
if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis)
|
||||
@ -3528,6 +3548,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
@ -5275,8 +5296,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> findPatientDetailForEveryTindakanReview(Integer idProduk, Integer idKelas,
|
||||
Integer idPegawai, String tgl, Boolean ffs, Double diskon, Integer statusDiskon) {
|
||||
public List<Map<String, Object>> findPatientDetailForEveryTindakanReview(Integer idProduk, Integer idKelompokPasien,
|
||||
Integer idKelas, Integer idPegawai, String tgl, Boolean ffs, Double diskon, Integer statusDiskon) {
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
List<Map<String, Object>> listData = new ArrayList<>();
|
||||
|
||||
@ -5321,10 +5342,10 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
|
||||
|
||||
if (CommonUtil.isNotNullOrEmpty(tgl) && tgl.equals(month)) {
|
||||
listData = revIndekKinerjaDao.getDetailPasienTindakanDokterPerPeriode(Master.Kelas.KELAS_SATU, idKelas,
|
||||
idPegawai, idProduk, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, tgl);
|
||||
idPegawai, idProduk, idKelompokPasien, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, tgl);
|
||||
} else {
|
||||
listData = revIndekKinerjaDao.getDetailPasienTindakanDokter(Master.Kelas.KELAS_SATU, idKelas, idPegawai,
|
||||
idProduk, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, tgl);
|
||||
idProduk, idKelompokPasien, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, tgl);
|
||||
}
|
||||
|
||||
List<Integer> idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd");
|
||||
|
||||
@ -4889,16 +4889,16 @@ public class SdmController extends LocaleController<AkunVO> {
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/get-detail-pasien/{idProduk}/{idKelas}/{idPegawai}/{tgl}/{ffs}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
@RequestMapping(value = "/get-detail-pasien/{idProduk}/{idKelompokPasien}/{idKelas}/{idPegawai}/{tgl}/{ffs}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<List<Map<String, Object>>> getDetailPasien(HttpServletRequest request,
|
||||
@PathVariable("idProduk") Integer idProduk, @PathVariable("idKelas") Integer idKelas,
|
||||
@PathVariable("tgl") String tgl, @PathVariable("ffs") Boolean ffs,
|
||||
@PathVariable("idProduk") Integer idProduk, @PathVariable("idKelompokPasien") Integer idKelompokPasien,
|
||||
@PathVariable("idKelas") Integer idKelas, @PathVariable("tgl") String tgl, @PathVariable("ffs") Boolean ffs,
|
||||
@PathVariable("idPegawai") Integer idPegawai,
|
||||
@RequestParam(value = "diskon", required = true) Double diskon,
|
||||
@RequestParam(value = "statusDiskon", required = true) Integer statusDiskon) {
|
||||
List<Map<String, Object>> result = null;
|
||||
try {
|
||||
result = indekKinerjaService.findPatientDetailForEveryTindakanReview(idProduk, idKelas, idPegawai, tgl, ffs,
|
||||
result = indekKinerjaService.findPatientDetailForEveryTindakanReview(idProduk, idKelompokPasien, idKelas, idPegawai, tgl, ffs,
|
||||
diskon, statusDiskon);
|
||||
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
|
||||
getMessage(MessageResource.LABEL_SUCCESS, request));
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user