Update IndekKinerjaService

Penyesuaian logbook poin dokter menampilkan informasi dan filter kelompok pasien
This commit is contained in:
salmanoe 2023-03-06 21:23:51 +07:00
parent 5edaa9d4a4
commit 8a88e8fa05
4 changed files with 316 additions and 294 deletions

View File

@ -125,7 +125,8 @@ public interface RevIndekKinerjaDao extends PagingAndSortingRepository<IndekKine
String tindakanDokterQuery = "select new Map(dokter.id as idPegawai, " + "jenisPetugas.id as idJenisPelaksana, " 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, " + "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 " + "(select distinct harga.hargaNetto1 from HargaNettoProdukByKelas harga "
+ "where harga.produkId = produk.id " + "where harga.produkId = produk.id "
+ "and ((harga.statusEnabled is true and harga.reportDisplay = 'tarif_2022_Nov') " + "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 pelayananPasien.kelas kelas " + "left join pelayananPasien.pasienDaftar antrian "
+ "left join dokter.kategoryPegawai kategoryPegawai " + "left join produk.detailJenisProduk detail " + "left join dokter.kategoryPegawai kategoryPegawai " + "left join produk.detailJenisProduk detail "
+ "left join antrian.ruangan ruangan " + "left join antrian.pasienDaftar pasienDaftar " + "left join antrian.ruangan ruangan " + "left join antrian.pasienDaftar pasienDaftar "
+ "left join detail.jenisProduk jenisProduk " + "left join ruangan.departemen departemen " + "left join pasienDaftar.kelompokPasien kp " + "left join detail.jenisProduk jenisProduk "
+ "where dokter.id = jadwalKerja.pegawaiId " + "and kalender.id = jadwalKerja.tanggalId " + "left join ruangan.departemen departemen " + "where dokter.id = jadwalKerja.pegawaiId "
+ "and shift.id = jadwalKerja.shiftId " + "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 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 (pelayananPasienPetugas.statusEnabled is null or pelayananPasienPetugas.statusEnabled is true) "
+ "and (pelayananPasien.statusEnabled is null or pelayananPasien.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 ruangan.statusEnabled is true " + "and departemen.statusEnabled is true "
+ "and jenisProduk.statusEnabled is true " + "and antrian.kelasId = :idKelas " + "and jenisProduk.statusEnabled is true " + "and antrian.kelasId = :idKelas "
+ "and pelayananPasienPetugas.ObjectPegawaiId = :idPegawai " + "and produk.id = :idProduk " + "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," String detailPasienQueryBundled = "select new Map(pelayananPasienPetugas.noRec as norecPetugas,"
+ "ruangan.namaRuangan as ruangan," + "pelayananPasien.noRec as noRecPelayananPasien," + "ruangan.namaRuangan as ruangan," + "pelayananPasien.noRec as noRecPelayananPasien,"
@ -273,14 +274,14 @@ public interface RevIndekKinerjaDao extends PagingAndSortingRepository<IndekKine
@Query(detailPasienQuery + tanggal + orderTanggal) @Query(detailPasienQuery + tanggal + orderTanggal)
public List<Map<String, Object>> getDetailPasienTindakanDokter(@Param("idKelasSatu") Integer idKelasSatu, public List<Map<String, Object>> getDetailPasienTindakanDokter(@Param("idKelasSatu") Integer idKelasSatu,
@Param("idKelas") Integer idKelas, @Param("idPegawai") Integer idPegawai, @Param("idKelas") Integer idKelas, @Param("idPegawai") Integer idPegawai,
@Param("idProduk") Integer idProduk, @Param("idPetugasPelaksana") int idPetugasPelaksana, @Param("idProduk") Integer idProduk, @Param("idKelompokPasien") Integer idKelompokPasien,
@Param("tgl") String tgl); @Param("idPetugasPelaksana") int idPetugasPelaksana, @Param("tgl") String tgl);
@Query(detailPasienQuery + bulan + orderTanggal) @Query(detailPasienQuery + bulan + orderTanggal)
public List<Map<String, Object>> getDetailPasienTindakanDokterPerPeriode(@Param("idKelasSatu") Integer idKelasSatu, public List<Map<String, Object>> getDetailPasienTindakanDokterPerPeriode(@Param("idKelasSatu") Integer idKelasSatu,
@Param("idKelas") Integer idKelas, @Param("idPegawai") Integer idPegawai, @Param("idKelas") Integer idKelas, @Param("idPegawai") Integer idPegawai,
@Param("idProduk") Integer idProduk, @Param("idPetugasPelaksana") int idPetugasPelaksana, @Param("idProduk") Integer idProduk, @Param("idKelompokPasien") Integer idKelompokPasien,
@Param("periode") String periode); @Param("idPetugasPelaksana") int idPetugasPelaksana, @Param("periode") String periode);
@Query(detailPasienQueryBundled + tanggal + orderTanggal) @Query(detailPasienQueryBundled + tanggal + orderTanggal)
public List<Map<String, Object>> getDetailPasienTindakanDokter(@Param("idKelasSatu") Integer idKelasSatu, public List<Map<String, Object>> getDetailPasienTindakanDokter(@Param("idKelasSatu") Integer idKelasSatu,

View File

@ -93,7 +93,7 @@ public interface IndekKinerjaService {
List<Map<String, Object>> findPatientDetailForEveryTindakan(Integer idProduk, Integer idKelas, Integer idPegawai, List<Map<String, Object>> findPatientDetailForEveryTindakan(Integer idProduk, Integer idKelas, Integer idPegawai,
String tgl, Boolean ffs); 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); Integer idPegawai, String tgl, Boolean ffs, Double diskon, Integer statusDiskon);
List<Map<String, Object>> findPatientDetailForEveryTindakanReview(Integer idPegawai, String tgl, Boolean ffs); List<Map<String, Object>> findPatientDetailForEveryTindakanReview(Integer idPegawai, String tgl, Boolean ffs);

View File

@ -2679,6 +2679,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
List<Map<String, Object>> countResult = new ArrayList<>(); List<Map<String, Object>> countResult = new ArrayList<>();
List<Integer> listProdukId = new ArrayList<>(); List<Integer> listProdukId = new ArrayList<>();
List<Integer> listKelompokPasienId = new ArrayList<>();
List<Integer> listKelasId = new ArrayList<>(); List<Integer> listKelasId = new ArrayList<>();
List<Integer> listPelaksanaId = new ArrayList<>(); List<Integer> listPelaksanaId = new ArrayList<>();
List<Integer> listDetailJenisProduk = 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()))) { if (!listProdukId.contains(Integer.parseInt(map.get("idProduk").toString()))) {
listProdukId.add(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()))) { if (!listKelasId.contains(Integer.parseInt(map.get("idKelas").toString()))) {
listKelasId.add(Integer.parseInt(map.get("idKelas").toString())); listKelasId.add(Integer.parseInt(map.get("idKelas").toString()));
} }
@ -3212,48 +3216,55 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
} }
} }
Collections.sort(listKelompokPasienId, Collections.reverseOrder());
Collections.sort(listKelasId, Collections.reverseOrder()); Collections.sort(listKelasId, Collections.reverseOrder());
for (Integer idProduk : listProdukId) { for (Integer idProduk : listProdukId) {
for (Integer idKelas : listKelasId) { for (Integer idKelompokPasien : listKelompokPasienId) {
for (Integer idPelaksana : listPelaksanaId) { for (Integer idKelas : listKelasId) {
for (String tanggal : listTanggalPelayanan) { for (Integer idPelaksana : listPelaksanaId) {
Map<String, Object> mapResult1 = new HashMap<>(); for (String tanggal : listTanggalPelayanan) {
Map<String, Object> mapResult2 = new HashMap<>(); Map<String, Object> mapResult1 = new HashMap<>();
double count1 = 0.0; Map<String, Object> mapResult2 = new HashMap<>();
double count2 = 0.0; double count1 = 0.0;
int dataCount1 = 0; double count2 = 0.0;
int dataCount2 = 0; int dataCount1 = 0;
for (Map<String, Object> map : rawResult) { int dataCount2 = 0;
if (Integer.parseInt(map.get("idProduk").toString()) == idProduk for (Map<String, Object> map : rawResult) {
&& Integer.parseInt(map.get("idKelas").toString()) == idKelas if (Integer.parseInt(map.get("idProduk").toString()) == idProduk
&& Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana && Integer.parseInt(
&& map.get("tanggal").toString().equals(tanggal) map.get("kelompokPasienId").toString()) == idKelompokPasien
&& (Double.parseDouble(map.get("diskon").toString()) > 0 && Integer.parseInt(map.get("idKelas").toString()) == idKelas
&& (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana
.valueOf(map.get("statusDiskon").toString()).equals(0)))) { && map.get("tanggal").toString().equals(tanggal)
count1 = count1 + Double.parseDouble(map.get("count").toString()); && (Double.parseDouble(map.get("diskon").toString()) > 0
dataCount1 = dataCount1 + 1; && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer
if (dataCount1 == 1) { .valueOf(map.get("statusDiskon").toString()).equals(0)))) {
mapResult1.putAll(map); count1 = count1 + Double.parseDouble(map.get("count").toString());
} dataCount1 = dataCount1 + 1;
} else if (Integer.parseInt(map.get("idProduk").toString()) == idProduk if (dataCount1 == 1) {
&& Integer.parseInt(map.get("idKelas").toString()) == idKelas mapResult1.putAll(map);
&& Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana }
&& map.get("tanggal").toString().equals(tanggal)) { } else if (Integer.parseInt(map.get("idProduk").toString()) == idProduk
count2 = count2 + Double.parseDouble(map.get("count").toString()); && Integer.parseInt(
dataCount2 = dataCount2 + 1; map.get("kelompokPasienId").toString()) == idKelompokPasien
if (dataCount2 == 1) { && Integer.parseInt(map.get("idKelas").toString()) == idKelas
mapResult2.putAll(map); && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana
&& map.get("tanggal").toString().equals(tanggal)) {
count2 = count2 + Double.parseDouble(map.get("count").toString());
dataCount2 = dataCount2 + 1;
if (dataCount2 == 1) {
mapResult2.putAll(map);
}
} }
} }
} if (CommonUtil.isNotNullOrEmpty(mapResult1.get("count"))) {
if (CommonUtil.isNotNullOrEmpty(mapResult1.get("count"))) { mapResult1.put("count", count1);
mapResult1.put("count", count1); countResult.add(mapResult1);
countResult.add(mapResult1); }
} if (CommonUtil.isNotNullOrEmpty(mapResult2.get("count"))) {
if (CommonUtil.isNotNullOrEmpty(mapResult2.get("count"))) { mapResult2.put("count", count2);
mapResult2.put("count", count2); countResult.add(mapResult2);
countResult.add(mapResult2); }
} }
} }
} }
@ -3261,268 +3272,278 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
} }
for (Integer idProduk : listProdukId) { for (Integer idProduk : listProdukId) {
for (Integer idKelas : listKelasId) { for (Integer idKelompokPasien : listKelompokPasienId) {
for (Integer idPelaksana : listPelaksanaId) { for (Integer idKelas : listKelasId) {
Map<String, Object> mapResult1 = new HashMap<>(); for (Integer idPelaksana : listPelaksanaId) {
Map<String, Object> mapResult2 = new HashMap<>(); Map<String, Object> mapResult1 = new HashMap<>();
List<Map<String, Object>> datas1 = new ArrayList<>(); Map<String, Object> mapResult2 = new HashMap<>();
List<Map<String, Object>> datas2 = new ArrayList<>(); List<Map<String, Object>> datas1 = new ArrayList<>();
Double totalKonsul1 = 0.0; List<Map<String, Object>> datas2 = new ArrayList<>();
Double totalKonsul2 = 0.0; Double totalKonsul1 = 0.0;
Double totalVisit1 = 0.0; Double totalKonsul2 = 0.0;
Double totalVisit2 = 0.0; Double totalVisit1 = 0.0;
Double totalTindakan1 = 0.0; Double totalVisit2 = 0.0;
Double totalTindakan2 = 0.0; Double totalTindakan1 = 0.0;
Double totalProduk1 = 0.0; Double totalTindakan2 = 0.0;
Double totalProduk2 = 0.0; Double totalProduk1 = 0.0;
int counter1 = 0; Double totalProduk2 = 0.0;
int counter2 = 0; int counter1 = 0;
boolean isDiskonJasamedis1 = false; int counter2 = 0;
boolean isDiskonJasamedis2 = false; boolean isDiskonJasamedis1 = false;
for (Map<String, Object> map : countResult) { boolean isDiskonJasamedis2 = false;
Map<String, Object> countMap = new HashMap<>(); for (Map<String, Object> map : countResult) {
if (Integer.parseInt(map.get("idProduk").toString()) == idProduk Map<String, Object> countMap = new HashMap<>();
&& Integer.parseInt(map.get("idKelas").toString()) == idKelas if (Integer.parseInt(map.get("idProduk").toString()) == idProduk
&& Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana && Integer.parseInt(map.get("kelompokPasienId").toString()) == idKelompokPasien
&& (Double.parseDouble(map.get("diskon").toString()) > 0 && Integer.parseInt(map.get("idKelas").toString()) == idKelas
&& (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana
.valueOf(map.get("statusDiskon").toString()).equals(0)))) { && (Double.parseDouble(map.get("diskon").toString()) > 0
countMap.put("count", map.get("count")); && (CommonUtil.isNullOrEmpty(map.get("statusDiskon")) || Integer
if (isSatuTarif && CommonUtil.isNotNullOrEmpty(map.get("hargaKelas1"))) { .valueOf(map.get("statusDiskon").toString()).equals(0)))) {
countMap.put("harga", map.get("hargaKelas1")); countMap.put("count", map.get("count"));
} else { if (isSatuTarif && CommonUtil.isNotNullOrEmpty(map.get("hargaKelas1"))) {
countMap.put("harga", map.get("harga")); countMap.put("harga", map.get("hargaKelas1"));
} } else {
countMap.put("tanggal", map.get("tanggal")); countMap.put("harga", map.get("harga"));
datas1.add(countMap); }
if (map.get("namaProduk").toString().toLowerCase().contains("konsul")) { countMap.put("tanggal", map.get("tanggal"));
totalKonsul1 = totalKonsul1 + Double.parseDouble(map.get("count").toString()); datas1.add(countMap);
} else if (map.get("namaProduk").toString().toLowerCase().contains("visit")) { if (map.get("namaProduk").toString().toLowerCase().contains("konsul")) {
totalVisit1 = totalVisit1 + Double.parseDouble(map.get("count").toString()); totalKonsul1 = totalKonsul1 + Double.parseDouble(map.get("count").toString());
} else { } else if (map.get("namaProduk").toString().toLowerCase().contains("visit")) {
totalTindakan1 = totalTindakan1 + Double.parseDouble(map.get("count").toString()); totalVisit1 = totalVisit1 + Double.parseDouble(map.get("count").toString());
} } else {
totalProduk1 = totalProduk1 + Double.parseDouble(map.get("count").toString()); totalTindakan1 = totalTindakan1
counter1 = counter1 + 1; + Double.parseDouble(map.get("count").toString());
if (counter1 == 1) { }
mapResult1.putAll(map); totalProduk1 = totalProduk1 + Double.parseDouble(map.get("count").toString());
} counter1 = counter1 + 1;
} else if (Integer.parseInt(map.get("idProduk").toString()) == idProduk if (counter1 == 1) {
&& Integer.parseInt(map.get("idKelas").toString()) == idKelas mapResult1.putAll(map);
&& Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana) { }
countMap.put("count", map.get("count")); } else if (Integer.parseInt(map.get("idProduk").toString()) == idProduk
if (isSatuTarif && CommonUtil.isNotNullOrEmpty(map.get("hargaKelas1"))) { && Integer.parseInt(map.get("kelompokPasienId").toString()) == idKelompokPasien
countMap.put("harga", map.get("hargaKelas1")); && Integer.parseInt(map.get("idKelas").toString()) == idKelas
} else { && Integer.parseInt(map.get("idJenisPelaksana").toString()) == idPelaksana) {
countMap.put("harga", map.get("harga")); countMap.put("count", map.get("count"));
} if (isSatuTarif && CommonUtil.isNotNullOrEmpty(map.get("hargaKelas1"))) {
countMap.put("tanggal", map.get("tanggal")); countMap.put("harga", map.get("hargaKelas1"));
datas2.add(countMap); } else {
if (map.get("namaProduk").toString().toLowerCase().contains("konsul")) { countMap.put("harga", map.get("harga"));
totalKonsul2 = totalKonsul2 + Double.parseDouble(map.get("count").toString()); }
} else if (map.get("namaProduk").toString().toLowerCase().contains("visit")) { countMap.put("tanggal", map.get("tanggal"));
totalVisit2 = totalVisit2 + Double.parseDouble(map.get("count").toString()); datas2.add(countMap);
} else { if (map.get("namaProduk").toString().toLowerCase().contains("konsul")) {
totalTindakan2 = totalTindakan2 + Double.parseDouble(map.get("count").toString()); totalKonsul2 = totalKonsul2 + Double.parseDouble(map.get("count").toString());
} } else if (map.get("namaProduk").toString().toLowerCase().contains("visit")) {
totalProduk2 = totalProduk2 + Double.parseDouble(map.get("count").toString()); totalVisit2 = totalVisit2 + Double.parseDouble(map.get("count").toString());
counter2 = counter2 + 1; } else {
if (counter2 == 1) { totalTindakan2 = totalTindakan2
mapResult2.putAll(map); + Double.parseDouble(map.get("count").toString());
}
totalProduk2 = totalProduk2 + Double.parseDouble(map.get("count").toString());
counter2 = counter2 + 1;
if (counter2 == 1) {
mapResult2.putAll(map);
}
} }
} }
} if (CommonUtil.isNotNullOrEmpty(mapResult1.get("count"))) {
if (CommonUtil.isNotNullOrEmpty(mapResult1.get("count"))) { if (isSatuTarif) {
if (isSatuTarif) { if (isSatuTarif && CommonUtil.isNotNullOrEmpty(mapResult1.get("hargaKelas1"))) {
if (isSatuTarif && CommonUtil.isNotNullOrEmpty(mapResult1.get("hargaKelas1"))) { harga = Double.parseDouble(mapResult1.get("hargaKelas1").toString());
harga = Double.parseDouble(mapResult1.get("hargaKelas1").toString()); } else {
harga = Double.parseDouble(mapResult1.get("harga").toString());
}
} else { } else {
harga = Double.parseDouble(mapResult1.get("harga").toString()); harga = Double.parseDouble(mapResult1.get("harga").toString());
} }
} else {
harga = Double.parseDouble(mapResult1.get("harga").toString());
}
if (drAnastesiList.contains(idPegawai)) { if (drAnastesiList.contains(idPegawai)) {
if (idsPenunjangBukanAnestesi.contains(mapResult1.get("idProduk"))) { if (idsPenunjangBukanAnestesi.contains(mapResult1.get("idProduk"))) {
percentage = persenOperator; percentage = persenOperator;
} else if ((Integer) mapResult1 } else if ((Integer) mapResult1
.get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) {
percentage = persenOperator; percentage = persenOperator;
if (Double.parseDouble(mapResult1.get("diskon").toString()) > 0 if (Double.parseDouble(mapResult1.get("diskon").toString()) > 0
&& (CommonUtil.isNullOrEmpty(mapResult1.get("statusDiskon")) || Integer && (CommonUtil.isNullOrEmpty(mapResult1.get("statusDiskon"))
.valueOf(mapResult1.get("statusDiskon").toString()).equals(0))) { || Integer.valueOf(mapResult1.get("statusDiskon").toString())
Double totalDiskonJasamedis = pelayananPasienDetailDao .equals(0))) {
.totalDiskonJasamedis(mapResult1.get("noRec").toString()); Double totalDiskonJasamedis = pelayananPasienDetailDao
if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) .totalDiskonJasamedis(mapResult1.get("noRec").toString());
&& totalDiskonJasamedis > 0.0) { if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis)
isDiskonJasamedis1 = true; && totalDiskonJasamedis > 0.0) {
isDiskonJasamedis1 = true;
}
} }
} else {
percentage = persenCooperator;
} }
} else { } else {
percentage = persenCooperator; if ((Integer) mapResult1.get(
} "idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) {
} else { percentage = persenCooperator;
if ((Integer) mapResult1 } else {
.get("idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) { percentage = persenOperator;
percentage = persenCooperator; if (Double.parseDouble(mapResult1.get("diskon").toString()) > 0
} else { && (CommonUtil.isNullOrEmpty(mapResult1.get("statusDiskon"))
percentage = persenOperator; || Integer.valueOf(mapResult1.get("statusDiskon").toString())
if (Double.parseDouble(mapResult1.get("diskon").toString()) > 0 .equals(0))) {
&& (CommonUtil.isNullOrEmpty(mapResult1.get("statusDiskon")) || Integer Double totalDiskonJasamedis = pelayananPasienDetailDao
.valueOf(mapResult1.get("statusDiskon").toString()).equals(0))) { .totalDiskonJasamedis(mapResult1.get("noRec").toString());
Double totalDiskonJasamedis = pelayananPasienDetailDao if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis)
.totalDiskonJasamedis(mapResult1.get("noRec").toString()); && totalDiskonJasamedis > 0.0) {
if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) isDiskonJasamedis1 = true;
&& totalDiskonJasamedis > 0.0) { }
isDiskonJasamedis1 = true;
} }
} }
} }
percentage = percentage / 100;
point = getPoinLogbookDokter(harga, percentage, komponenDasar, isDiskonJasamedis1);
pointQty = point * totalProduk1.doubleValue();
formatPointQty = Double.parseDouble(df.format(pointQty));
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA
.equals(mapResult1.get("idJenisPelaksana"))) {
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
Master.KomponenHarga.JASA_DOKTER,
Integer.parseInt(mapResult1.get("idProduk").toString()),
Integer.parseInt(mapResult1.get("idKelas").toString()));
formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0;
formatRpKontribusi = totalProduk1
* (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0);
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI
.equals(mapResult1.get("idJenisPelaksana"))) {
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
Master.KomponenHarga.JASA_DOKTER_ANASTESI,
Integer.parseInt(mapResult1.get("idProduk").toString()),
Integer.parseInt(mapResult1.get("idKelas").toString()));
formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0;
formatRpKontribusi = totalProduk1
* (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0);
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS
.equals(mapResult1.get("idJenisPelaksana"))) {
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
Master.KomponenHarga.JASA_ASISTEN_SPESIALIS,
Integer.parseInt(mapResult1.get("idProduk").toString()),
Integer.parseInt(mapResult1.get("idKelas").toString()));
formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0;
formatRpKontribusi = totalProduk1
* (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0);
}
mapResult1.put("totalKonsul", totalKonsul1.longValue());
mapResult1.put("totalVisit", totalVisit1.longValue());
mapResult1.put("totalTindakan", totalTindakan1.longValue());
mapResult1.put("totalProduk", totalProduk1.longValue());
mapResult1.put("datas", datas1);
mapResult1.put("poin", point);
mapResult1.put("pointQty", formatPointQty);
mapResult1.put("jasamedis", formatRpJasamedis);
mapResult1.put("kontribusi", formatRpKontribusi);
mapResult1.put("isSatuTarif", isSatuTarif);
result.add(mapResult1);
} }
if (CommonUtil.isNotNullOrEmpty(mapResult2.get("count"))) {
percentage = percentage / 100; if (isSatuTarif) {
point = getPoinLogbookDokter(harga, percentage, komponenDasar, isDiskonJasamedis1); if (CommonUtil.isNotNullOrEmpty(mapResult2.get("hargaKelas1"))) {
pointQty = point * totalProduk1.doubleValue(); harga = Double.parseDouble(mapResult2.get("hargaKelas1").toString());
formatPointQty = Double.parseDouble(df.format(pointQty)); } else {
harga = Double.parseDouble(mapResult2.get("harga").toString());
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA }
.equals(mapResult1.get("idJenisPelaksana"))) {
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
Master.KomponenHarga.JASA_DOKTER,
Integer.parseInt(mapResult1.get("idProduk").toString()),
Integer.parseInt(mapResult1.get("idKelas").toString()));
formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0;
formatRpKontribusi = totalProduk1
* (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0);
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI
.equals(mapResult1.get("idJenisPelaksana"))) {
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
Master.KomponenHarga.JASA_DOKTER_ANASTESI,
Integer.parseInt(mapResult1.get("idProduk").toString()),
Integer.parseInt(mapResult1.get("idKelas").toString()));
formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0;
formatRpKontribusi = totalProduk1
* (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0);
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS
.equals(mapResult1.get("idJenisPelaksana"))) {
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
Master.KomponenHarga.JASA_ASISTEN_SPESIALIS,
Integer.parseInt(mapResult1.get("idProduk").toString()),
Integer.parseInt(mapResult1.get("idKelas").toString()));
formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0;
formatRpKontribusi = totalProduk1
* (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0);
}
mapResult1.put("totalKonsul", totalKonsul1.longValue());
mapResult1.put("totalVisit", totalVisit1.longValue());
mapResult1.put("totalTindakan", totalTindakan1.longValue());
mapResult1.put("totalProduk", totalProduk1.longValue());
mapResult1.put("datas", datas1);
mapResult1.put("poin", point);
mapResult1.put("pointQty", formatPointQty);
mapResult1.put("jasamedis", formatRpJasamedis);
mapResult1.put("kontribusi", formatRpKontribusi);
mapResult1.put("isSatuTarif", isSatuTarif);
result.add(mapResult1);
}
if (CommonUtil.isNotNullOrEmpty(mapResult2.get("count"))) {
if (isSatuTarif) {
if (CommonUtil.isNotNullOrEmpty(mapResult2.get("hargaKelas1"))) {
harga = Double.parseDouble(mapResult2.get("hargaKelas1").toString());
} else { } else {
harga = Double.parseDouble(mapResult2.get("harga").toString()); harga = Double.parseDouble(mapResult2.get("harga").toString());
} }
} else {
harga = Double.parseDouble(mapResult2.get("harga").toString());
}
if (drAnastesiList.contains(idPegawai)) { if (drAnastesiList.contains(idPegawai)) {
if (idsPenunjangBukanAnestesi.contains(mapResult2.get("idProduk"))) { if (idsPenunjangBukanAnestesi.contains(mapResult2.get("idProduk"))) {
percentage = persenOperator; percentage = persenOperator;
} else if ((Integer) mapResult2 } else if ((Integer) mapResult2
.get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) { .get("idJenisPelaksana") == Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) {
percentage = persenOperator; percentage = persenOperator;
if (Double.parseDouble(mapResult2.get("diskon").toString()) > 0 if (Double.parseDouble(mapResult2.get("diskon").toString()) > 0
&& (CommonUtil.isNullOrEmpty(mapResult2.get("statusDiskon")) || Integer && (CommonUtil.isNullOrEmpty(mapResult2.get("statusDiskon"))
.valueOf(mapResult2.get("statusDiskon").toString()).equals(0))) { || Integer.valueOf(mapResult2.get("statusDiskon").toString())
Double totalDiskonJasamedis = pelayananPasienDetailDao .equals(0))) {
.totalDiskonJasamedis(mapResult2.get("noRec").toString()); Double totalDiskonJasamedis = pelayananPasienDetailDao
if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) .totalDiskonJasamedis(mapResult2.get("noRec").toString());
&& totalDiskonJasamedis > 0.0) { if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis)
isDiskonJasamedis2 = true; && totalDiskonJasamedis > 0.0) {
isDiskonJasamedis2 = true;
}
} }
} else {
percentage = persenCooperator;
} }
} else { } else {
percentage = persenCooperator; if ((Integer) mapResult2.get(
} "idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) {
} else { percentage = persenCooperator;
if ((Integer) mapResult2 } else {
.get("idJenisPelaksana") == Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS) { percentage = persenOperator;
percentage = persenCooperator; if (Double.parseDouble(mapResult2.get("diskon").toString()) > 0
} else { && (CommonUtil.isNullOrEmpty(mapResult2.get("statusDiskon"))
percentage = persenOperator; || Integer.valueOf(mapResult2.get("statusDiskon").toString())
if (Double.parseDouble(mapResult2.get("diskon").toString()) > 0 .equals(0))) {
&& (CommonUtil.isNullOrEmpty(mapResult2.get("statusDiskon")) || Integer Double totalDiskonJasamedis = pelayananPasienDetailDao
.valueOf(mapResult2.get("statusDiskon").toString()).equals(0))) { .totalDiskonJasamedis(mapResult2.get("noRec").toString());
Double totalDiskonJasamedis = pelayananPasienDetailDao if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis)
.totalDiskonJasamedis(mapResult2.get("noRec").toString()); && totalDiskonJasamedis > 0.0) {
if (CommonUtil.isNotNullOrEmpty(totalDiskonJasamedis) isDiskonJasamedis2 = true;
&& totalDiskonJasamedis > 0.0) { }
isDiskonJasamedis2 = true;
} }
} }
} }
percentage = percentage / 100;
point = getPoinLogbookDokter(harga, percentage, komponenDasar, isDiskonJasamedis2);
pointQty = point * totalProduk2.doubleValue();
formatPointQty = Double.parseDouble(df.format(pointQty));
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA
.equals(mapResult2.get("idJenisPelaksana"))) {
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
Master.KomponenHarga.JASA_DOKTER,
Integer.parseInt(mapResult2.get("idProduk").toString()),
Integer.parseInt(mapResult2.get("idKelas").toString()));
formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0;
formatRpKontribusi = totalProduk2
* (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0);
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI
.equals(mapResult2.get("idJenisPelaksana"))) {
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
Master.KomponenHarga.JASA_DOKTER_ANASTESI,
Integer.parseInt(mapResult2.get("idProduk").toString()),
Integer.parseInt(mapResult2.get("idKelas").toString()));
formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0;
formatRpKontribusi = totalProduk2
* (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0);
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS
.equals(mapResult2.get("idJenisPelaksana"))) {
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
Master.KomponenHarga.JASA_ASISTEN_SPESIALIS,
Integer.parseInt(mapResult2.get("idProduk").toString()),
Integer.parseInt(mapResult2.get("idKelas").toString()));
formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0;
formatRpKontribusi = totalProduk2
* (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0);
}
mapResult2.put("totalKonsul", totalKonsul2.longValue());
mapResult2.put("totalVisit", totalVisit2.longValue());
mapResult2.put("totalTindakan", totalTindakan2.longValue());
mapResult2.put("totalProduk", totalProduk2.longValue());
mapResult2.put("datas", datas2);
mapResult2.put("poin", point);
mapResult2.put("pointQty", formatPointQty);
mapResult2.put("jasamedis", formatRpJasamedis);
mapResult2.put("konstribusi", formatRpKontribusi);
mapResult2.put("isSatuTarif", isSatuTarif);
result.add(mapResult2);
} }
percentage = percentage / 100;
point = getPoinLogbookDokter(harga, percentage, komponenDasar, isDiskonJasamedis2);
pointQty = point * totalProduk2.doubleValue();
formatPointQty = Double.parseDouble(df.format(pointQty));
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA
.equals(mapResult2.get("idJenisPelaksana"))) {
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
Master.KomponenHarga.JASA_DOKTER,
Integer.parseInt(mapResult2.get("idProduk").toString()),
Integer.parseInt(mapResult2.get("idKelas").toString()));
formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0;
formatRpKontribusi = totalProduk2
* (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0);
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI
.equals(mapResult2.get("idJenisPelaksana"))) {
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
Master.KomponenHarga.JASA_DOKTER_ANASTESI,
Integer.parseInt(mapResult2.get("idProduk").toString()),
Integer.parseInt(mapResult2.get("idKelas").toString()));
formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0;
formatRpKontribusi = totalProduk2
* (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0);
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS
.equals(mapResult2.get("idJenisPelaksana"))) {
Optional<Double> nettoKomponen = detailHargaNettoDao.findHargetNetto1Komponen(
Master.KomponenHarga.JASA_ASISTEN_SPESIALIS,
Integer.parseInt(mapResult2.get("idProduk").toString()),
Integer.parseInt(mapResult2.get("idKelas").toString()));
formatRpJasamedis = nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0;
formatRpKontribusi = totalProduk2
* (nettoKomponen != null ? nettoKomponen.orElse(0.0) : 0.0);
}
mapResult2.put("totalKonsul", totalKonsul2.longValue());
mapResult2.put("totalVisit", totalVisit2.longValue());
mapResult2.put("totalTindakan", totalTindakan2.longValue());
mapResult2.put("totalProduk", totalProduk2.longValue());
mapResult2.put("datas", datas2);
mapResult2.put("poin", point);
mapResult2.put("pointQty", formatPointQty);
mapResult2.put("jasamedis", formatRpJasamedis);
mapResult2.put("konstribusi", formatRpKontribusi);
mapResult2.put("isSatuTarif", isSatuTarif);
result.add(mapResult2);
} }
} }
} }
@ -5275,8 +5296,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK
} }
@Override @Override
public List<Map<String, Object>> findPatientDetailForEveryTindakanReview(Integer idProduk, Integer idKelas, public List<Map<String, Object>> findPatientDetailForEveryTindakanReview(Integer idProduk, Integer idKelompokPasien,
Integer idPegawai, String tgl, Boolean ffs, Double diskon, Integer statusDiskon) { Integer idKelas, Integer idPegawai, String tgl, Boolean ffs, Double diskon, Integer statusDiskon) {
List<Map<String, Object>> result = new ArrayList<>(); List<Map<String, Object>> result = new ArrayList<>();
List<Map<String, Object>> listData = 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)) { if (CommonUtil.isNotNullOrEmpty(tgl) && tgl.equals(month)) {
listData = revIndekKinerjaDao.getDetailPasienTindakanDokterPerPeriode(Master.Kelas.KELAS_SATU, idKelas, listData = revIndekKinerjaDao.getDetailPasienTindakanDokterPerPeriode(Master.Kelas.KELAS_SATU, idKelas,
idPegawai, idProduk, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, tgl); idPegawai, idProduk, idKelompokPasien, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, tgl);
} else { } else {
listData = revIndekKinerjaDao.getDetailPasienTindakanDokter(Master.Kelas.KELAS_SATU, idKelas, idPegawai, 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"); List<Integer> idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd");

View File

@ -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, public ResponseEntity<List<Map<String, Object>>> getDetailPasien(HttpServletRequest request,
@PathVariable("idProduk") Integer idProduk, @PathVariable("idKelas") Integer idKelas, @PathVariable("idProduk") Integer idProduk, @PathVariable("idKelompokPasien") Integer idKelompokPasien,
@PathVariable("tgl") String tgl, @PathVariable("ffs") Boolean ffs, @PathVariable("idKelas") Integer idKelas, @PathVariable("tgl") String tgl, @PathVariable("ffs") Boolean ffs,
@PathVariable("idPegawai") Integer idPegawai, @PathVariable("idPegawai") Integer idPegawai,
@RequestParam(value = "diskon", required = true) Double diskon, @RequestParam(value = "diskon", required = true) Double diskon,
@RequestParam(value = "statusDiskon", required = true) Integer statusDiskon) { @RequestParam(value = "statusDiskon", required = true) Integer statusDiskon) {
List<Map<String, Object>> result = null; List<Map<String, Object>> result = null;
try { try {
result = indekKinerjaService.findPatientDetailForEveryTindakanReview(idProduk, idKelas, idPegawai, tgl, ffs, result = indekKinerjaService.findPatientDetailForEveryTindakanReview(idProduk, idKelompokPasien, idKelas, idPegawai, tgl, ffs,
diskon, statusDiskon); diskon, statusDiskon);
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
getMessage(MessageResource.LABEL_SUCCESS, request)); getMessage(MessageResource.LABEL_SUCCESS, request));