From 28b5be840b5e689647fb4022115fd1d1cc83f18f Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Thu, 13 Feb 2025 08:39:08 +0700 Subject: [PATCH] Update service remunerasi Penyesuaian dampak pada endpoint lama untuk setting data fix dengan tanggal mulai berlaku --- .../medifirst2000/dao/KonsultasiDao.java | 5 +- .../service/impl/BaseVoServiceImpl.java | 27 ++- .../impl/IkiDanRemunerasiServiceImpl.java | 147 ++++---------- .../service/impl/IndekKinerjaServiceImpl.java | 153 +++++++------- .../service/impl/KonsultasiServiceImpl.java | 4 +- .../impl/LogbookKinerjaServiceImpl.java | 78 ++++---- .../impl/PelayananPasienServiceImpl.java | 64 +++--- .../service/impl/PendapatanServiceImpl.java | 186 +++++++++--------- .../service/impl/RemunerasiServiceImpl.java | 89 ++++----- .../impl/SkoringTindakanMedisServiceImpl.java | 68 +++---- 10 files changed, 378 insertions(+), 443 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/KonsultasiDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/KonsultasiDao.java index 7c0d06e1..52fff134 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/KonsultasiDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/KonsultasiDao.java @@ -46,12 +46,11 @@ public interface KonsultasiDao + "inner join apd.ruangan ru " + "left join pd.rekanan rk " + "where pp.tglPelayanan between :tglAwal and :tglAkhir " + "and ru.departemenId not in (:listIdDepartemen) " + "and (pg.id is null or pg.id in (:listIdPegawai)) " - + "and pr.id not in (:listKarcisIdProduk) " + "and djp.jenisProdukId not in (:listIdJenisProduk) " + + "and pr.id not in (:listIdProduk) " + "and djp.jenisProdukId not in (:listIdJenisProduk) " + "and djp.id not in (:listIdDetailJenisProduk) " + "order by dpj.namaLengkap, ru.namaRuangan") List> findAllKonsultasiTindakanKosong(@Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir, @Param("listIdDepartemen") List listIdDepartemen, - @Param("listIdPegawai") List listIdPegawai, - @Param("listKarcisIdProduk") List listKarcisIdProduk, + @Param("listIdPegawai") List listIdPegawai, @Param("listIdProduk") List idProdukList, @Param("listIdJenisProduk") List listIdJenisProduk, @Param("listIdDetailJenisProduk") List listIdDetailJenisProduk); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/BaseVoServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/BaseVoServiceImpl.java index d0f76cc9..82afa7cf 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/BaseVoServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/BaseVoServiceImpl.java @@ -1,8 +1,11 @@ package com.jasamedika.medifirst2000.service.impl; +import com.google.gson.Gson; +import com.google.gson.reflect.TypeToken; import com.jasamedika.medifirst2000.core.web.WebConstants; import com.jasamedika.medifirst2000.dao.custom.base.util.QueryOrder; import com.jasamedika.medifirst2000.dao.custom.base.util.QueryOrderDirection; +import com.jasamedika.medifirst2000.dto.EffectiveDateDataFixDTO; import org.apache.commons.lang.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -14,10 +17,8 @@ import org.springframework.data.domain.Sort; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import javax.persistence.Query; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.lang.reflect.Type; +import java.util.*; /** * Created by Roberto @@ -126,5 +127,23 @@ public abstract class BaseVoServiceImpl { public String getUrlServiceSarPras() { return urlServiceSarPras; } + + public List getNilaiDataFixByTMT(String namaField, Date date) { + List result = new ArrayList<>(); + Gson gson = new Gson(); + Type effectiveDateDataFixType = new TypeToken>() { + }.getType(); + String jsonProdukDokterUmum = getSettingDataFixed(namaField); + List dataFixDTOList = gson.fromJson(jsonProdukDokterUmum, effectiveDateDataFixType); + Optional first = dataFixDTOList.stream() + .sorted(Comparator.comparing(EffectiveDateDataFixDTO::getTmt, Comparator.reverseOrder())) + .filter(dto -> dto.getTmt() <= date.getTime()).findFirst(); + if (first.isPresent()) { + String[] split = first.get().getNilaiField().split(","); + for (String s : split) + result.add(Integer.valueOf(s)); + } + return result; + } } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java index b4818ae4..f5998f35 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IkiDanRemunerasiServiceImpl.java @@ -1,5 +1,25 @@ package com.jasamedika.medifirst2000.service.impl; +import com.jasamedika.medifirst2000.constants.Master; +import com.jasamedika.medifirst2000.converter.BaseConverterImpl; +import com.jasamedika.medifirst2000.dao.*; +import com.jasamedika.medifirst2000.entities.*; +import com.jasamedika.medifirst2000.service.IkiDanRemunerasiService; +import com.jasamedika.medifirst2000.service.LogbookKinerjaService; +import com.jasamedika.medifirst2000.service.TargetSkorDokterService; +import com.jasamedika.medifirst2000.util.CommonUtil; +import com.jasamedika.medifirst2000.util.CurrencyUtil; +import com.jasamedika.medifirst2000.util.DateUtil; +import com.jasamedika.medifirst2000.util.StringUtil; +import com.jasamedika.medifirst2000.vo.*; +import com.jasamedika.medifirst2000.vo.custom.TargetLayananJamKerjaDetailVO; +import com.jasamedika.medifirst2000.vo.custom.TargetLayananJamKerjaVO; +import com.jasamedika.medifirst2000.vo.custom.TargetLayananLuarJamKerjaDetailVO; +import com.jasamedika.medifirst2000.vo.custom.TargetLayananLuarJamKerjaVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.LocalDate; @@ -7,86 +27,9 @@ import java.time.LocalDateTime; import java.time.ZoneId; import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAdjusters; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Calendar; -import java.util.Comparator; -import java.util.Date; -import java.util.HashMap; -import java.util.HashSet; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; +import java.util.*; import java.util.stream.Collectors; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - -import com.jasamedika.medifirst2000.constants.Master; -import com.jasamedika.medifirst2000.converter.BaseConverterImpl; -import com.jasamedika.medifirst2000.dao.IkiDanRemunerasiDao; -import com.jasamedika.medifirst2000.dao.IndeksKinerjaDokterDao; -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; -import com.jasamedika.medifirst2000.dao.SettingPirSdmDao; -import com.jasamedika.medifirst2000.dao.ShiftKerjaDao; -import com.jasamedika.medifirst2000.dao.SkoringTindakanMedisDao; -import com.jasamedika.medifirst2000.dao.StrukHistoriDao; -import com.jasamedika.medifirst2000.dao.StrukPelayananDao; -import com.jasamedika.medifirst2000.dao.SubUnitKerjaDao; -import com.jasamedika.medifirst2000.dao.TargetLayananDao; -import com.jasamedika.medifirst2000.entities.EvaluasiJabatan; -import com.jasamedika.medifirst2000.entities.IkiDanRemunerasi; -import com.jasamedika.medifirst2000.entities.IndeksKinerjaDokter; -import com.jasamedika.medifirst2000.entities.IndikatorKinerjaDetail; -import com.jasamedika.medifirst2000.entities.Jabatan; -import com.jasamedika.medifirst2000.entities.KelompokTransaksi; -import com.jasamedika.medifirst2000.entities.LogbookKinerjaDokter; -import com.jasamedika.medifirst2000.entities.Pegawai; -import com.jasamedika.medifirst2000.entities.PegawaiHistoriRekap; -import com.jasamedika.medifirst2000.entities.Ruangan; -import com.jasamedika.medifirst2000.entities.RunningNumber; -import com.jasamedika.medifirst2000.entities.SettingPirSdm; -import com.jasamedika.medifirst2000.entities.StrukHistori; -import com.jasamedika.medifirst2000.entities.StrukPelayanan; -import com.jasamedika.medifirst2000.entities.SubUnitKerjaPegawai; -import com.jasamedika.medifirst2000.entities.SuratKeputusan; -import com.jasamedika.medifirst2000.entities.TargetLayanan; -import com.jasamedika.medifirst2000.entities.UnitKerjaPegawai; -import com.jasamedika.medifirst2000.service.IkiDanRemunerasiService; -import com.jasamedika.medifirst2000.service.LogbookKinerjaService; -import com.jasamedika.medifirst2000.service.TargetSkorDokterService; -import com.jasamedika.medifirst2000.util.CommonUtil; -import com.jasamedika.medifirst2000.util.CurrencyUtil; -import com.jasamedika.medifirst2000.util.DateUtil; -import com.jasamedika.medifirst2000.util.StringUtil; -import com.jasamedika.medifirst2000.vo.EvaluasiJabatanVO; -import com.jasamedika.medifirst2000.vo.IkiDanRemunerasiVO; -import com.jasamedika.medifirst2000.vo.IndikatorKinerjaDetailVO; -import com.jasamedika.medifirst2000.vo.JabatanVO; -import com.jasamedika.medifirst2000.vo.KelompokTransaksiVO; -import com.jasamedika.medifirst2000.vo.PegawaiVO; -import com.jasamedika.medifirst2000.vo.RuanganVO; -import com.jasamedika.medifirst2000.vo.SettingPirSdmVO; -import com.jasamedika.medifirst2000.vo.SkorDokterVO; -import com.jasamedika.medifirst2000.vo.StrukHistoriVO; -import com.jasamedika.medifirst2000.vo.SubUnitKerjaPegawaiVO; -import com.jasamedika.medifirst2000.vo.SuratKeputusanVO; -import com.jasamedika.medifirst2000.vo.TargetSkorDokterVO; -import com.jasamedika.medifirst2000.vo.UnitKerjaPegawaiVO; -import com.jasamedika.medifirst2000.vo.custom.TargetLayananJamKerjaDetailVO; -import com.jasamedika.medifirst2000.vo.custom.TargetLayananJamKerjaVO; -import com.jasamedika.medifirst2000.vo.custom.TargetLayananLuarJamKerjaDetailVO; -import com.jasamedika.medifirst2000.vo.custom.TargetLayananLuarJamKerjaVO; - @Service("IkiDanRemunerasiService") public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements IkiDanRemunerasiService { @@ -641,6 +584,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik calTglAwal.set(Calendar.SECOND, 0); calTglAwal.set(Calendar.DAY_OF_MONTH, 1); calTglAwal.add(Calendar.MONTH, -Integer.valueOf(getSettingDataFixed("jmlBlnHitungTargetMedis"))); + Date tglAwal = calTglAwal.getTime(); // get_this_period Calendar bulan = Calendar.getInstance(); @@ -666,29 +610,27 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik List listIdDokterKsmUmum = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); List listIdDokterLabPA = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI); - List listIdDJPLabPA = splitDataSettingDatafixed("penunjang_pa"); + List listIdDJPLabPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); List listIdDokterLabPK = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_KLINIK); - List listIdDJPLabPK = splitDataSettingDatafixed("penunjang_pk"); + List listIdDJPLabPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); List listIdDokterRad = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_RADIOLOGI); - List listIdDJPRad = splitDataSettingDatafixed("penunjang_radiologi"); + List listIdDJPRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); - List listIdDJPUtama = splitDataSettingDatafixed("medis_utama"); + List listIdDJPUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); List listIdLaboranRadiolog = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); - List listIdDJPAdmPK = splitDataSettingDatafixed("admin_nonpk"); + List listIdDJPAdmPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); - List> dataRaw = ikiDanRemunerasiDao.getDataLayananJamKerja(calTglAwal.getTime(), - bulan.getTime(), pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, + List> dataRaw = ikiDanRemunerasiDao.getDataLayananJamKerja(tglAwal, bulan.getTime(), + pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL), Arrays.asList(Master.KategoryPegawai.REMUN), Arrays.asList(Master.KedudukanPegawai.INACTIVE_LOGIN), Arrays.asList(Master.UnitKerja.KSM), Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), Master.Produk.KARCIS); - - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); - List idsKonsultasiDokterJaga = splitDataSettingDatafixed("pr_konsultasi_dokter_jaga"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); // filter detail jenis produk for (Map map : dataRaw) { @@ -749,8 +691,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik listIdTempUtama.addAll(listIdTempAdmPK); } } - if (!listIdTempUtama.contains(map.get("djpId")) - && idsDokterUmumIGD.contains(map.get("idTindakan")) + if (!listIdTempUtama.contains(map.get("djpId")) && idsDokterUmumIGD.contains(map.get("idTindakan")) && listIdDokterKsmUmum.contains(map.get("pegawaiId")) && Master.Departemen.IGD.equals(map.get("idDepartemen"))) { dataLayananRaw.add(map); @@ -1160,6 +1101,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik calTglAwal.set(Calendar.SECOND, 0); calTglAwal.set(Calendar.DAY_OF_MONTH, 1); calTglAwal.add(Calendar.MONTH, -Integer.valueOf(getSettingDataFixed("jmlBlnHitungTargetMedis"))); + Date tglAwal = calTglAwal.getTime(); // get_this_period Calendar bulan = Calendar.getInstance(); @@ -1186,29 +1128,27 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik List listIdDokterKsmUmum = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); List listIdDokterLabPA = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI); - List listIdDJPLabPA = splitDataSettingDatafixed("penunjang_pa"); + List listIdDJPLabPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); List listIdDokterLabPK = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_KLINIK); - List listIdDJPLabPK = splitDataSettingDatafixed("penunjang_pk"); + List listIdDJPLabPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); List listIdDokterRad = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_RADIOLOGI); - List listIdDJPRad = splitDataSettingDatafixed("penunjang_radiologi"); + List listIdDJPRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); - List listIdDJPUtama = splitDataSettingDatafixed("medis_utama"); + List listIdDJPUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); List listIdLaboranRadiolog = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); - List listIdDJPAdmPK = splitDataSettingDatafixed("admin_nonpk"); + List listIdDJPAdmPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); - List> dataRaw = ikiDanRemunerasiDao.getDataLayananLuarJamKerja(calTglAwal.getTime(), - bulan.getTime(), pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, + List> dataRaw = ikiDanRemunerasiDao.getDataLayananLuarJamKerja(tglAwal, bulan.getTime(), + pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, Arrays.asList(Master.KedudukanPegawai.INACTIVE_LOGIN), Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL), Arrays.asList(Master.UnitKerja.KSM), Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), Master.Produk.KARCIS); - - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); - List idsKonsultasiDokterJaga = splitDataSettingDatafixed("pr_konsultasi_dokter_jaga"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); // filter detail jenis produk for (Map map : dataRaw) { @@ -1269,8 +1209,7 @@ public class IkiDanRemunerasiServiceImpl extends BaseVoServiceImpl implements Ik listIdTempUtama.addAll(listIdTempAdmPK); } } - if (!listIdTempUtama.contains(map.get("djpId")) - && idsDokterUmumIGD.contains(map.get("idTindakan")) + if (!listIdTempUtama.contains(map.get("djpId")) && idsDokterUmumIGD.contains(map.get("idTindakan")) && listIdDokterKsmUmum.contains(map.get("pegawaiId")) && Master.Departemen.IGD.equals(map.get("idDepartemen"))) { dataLayananRaw.add(map); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndekKinerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndekKinerjaServiceImpl.java index cb127b68..9a5e0c6d 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndekKinerjaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/IndekKinerjaServiceImpl.java @@ -2367,11 +2367,12 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List drKkPerinatologiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PERINATOLOGI); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + Date tglAwal = DateUtil.startMonth(periode); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -2391,10 +2392,10 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List> listData = revIndekKinerjaDao.getAllTindakanDokter(Master.Kelas.KELAS_SATU, idPegawai, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); - List idsDokterPediatrikGD = splitDataSettingDatafixed("pr_dokter_pediatrik_gd"); - List idsDokterPerinatologi = splitDataSettingDatafixed("pr_dokter_perinatologi"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); + List idsDokterPediatrikGD = getNilaiDataFixByTMT("pr_dokter_pediatrik_gd", tglAwal); + List idsDokterPerinatologi = getNilaiDataFixByTMT("pr_dokter_perinatologi", tglAwal); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAwal); Double komponenDasar = Double.parseDouble(getSettingDataFixed("ld_komponen_dasar")); Double persenOperator = Double.parseDouble(getSettingDataFixed("ld_persen_operator")); Double persenCooperator = Double.parseDouble(getSettingDataFixed("ld_persen_cooperator")); @@ -3332,11 +3333,12 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List drKkPerinatologiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PERINATOLOGI); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + Date tglAwal = DateUtil.startMonth(periode); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -3356,10 +3358,10 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List> listData = revIndekKinerjaDao.getAllTindakanDokter(Master.Kelas.KELAS_SATU, idPegawai, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); - List idsDokterPediatrikGD = splitDataSettingDatafixed("pr_dokter_pediatrik_gd"); - List idsDokterPerinatologi = splitDataSettingDatafixed("pr_dokter_perinatologi"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); + List idsDokterPediatrikGD = getNilaiDataFixByTMT("pr_dokter_pediatrik_gd", tglAwal); + List idsDokterPerinatologi = getNilaiDataFixByTMT("pr_dokter_perinatologi", tglAwal); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAwal); Double komponenDasar = Double.parseDouble(getSettingDataFixed("ld_komponen_dasar")); double persenOperator = Double.parseDouble(getSettingDataFixed("ld_persen_operator")); double persenCooperator = Double.parseDouble(getSettingDataFixed("ld_persen_cooperator")); @@ -4044,11 +4046,12 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List drKkPerinatologiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PERINATOLOGI); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + Date tglAwal = DateUtil.startMonth(periode); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -4068,10 +4071,10 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List> listData = revIndekKinerjaDao.getAllTindakanDokter(Master.Kelas.KELAS_SATU, idPegawai, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); - List idsDokterPediatrikGD = splitDataSettingDatafixed("pr_dokter_pediatrik_gd"); - List idsDokterPerinatologi = splitDataSettingDatafixed("pr_dokter_perinatologi"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); + List idsDokterPediatrikGD = getNilaiDataFixByTMT("pr_dokter_pediatrik_gd", tglAwal); + List idsDokterPerinatologi = getNilaiDataFixByTMT("pr_dokter_perinatologi", tglAwal); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAwal); Double komponenDasar = Double.parseDouble(getSettingDataFixed("ld_komponen_dasar")); Double persenOperator = Double.parseDouble(getSettingDataFixed("ld_persen_operator")); Double persenCooperator = Double.parseDouble(getSettingDataFixed("ld_persen_cooperator")); @@ -4922,11 +4925,12 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + Date tglAwal = DateUtil.startMonth(periode); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -4946,8 +4950,8 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List> listData = revIndekKinerjaDao.getAllTindakanDokter(Master.Kelas.KELAS_SATU, idPegawai, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAwal); Double komponenDasar = Double.parseDouble(getSettingDataFixed("ld_komponen_dasar")); double persenOperator = Double.parseDouble(getSettingDataFixed("ld_persen_operator")); double persenCooperator = Double.parseDouble(getSettingDataFixed("ld_persen_cooperator")); @@ -5384,12 +5388,13 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List drKkPerinatologiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PERINATOLOGI); List drAnastesiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_ANESTESI); - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + Date tglAwal = DateUtil.startMonth(month); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAwal); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -5414,9 +5419,9 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK idProduk, idKelompokPasien, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, tgl); } - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); - List idsDokterPediatrikGD = splitDataSettingDatafixed("pr_dokter_pediatrik_gd"); - List idsDokterPerinatologi = splitDataSettingDatafixed("pr_dokter_perinatologi"); + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); + List idsDokterPediatrikGD = getNilaiDataFixByTMT("pr_dokter_pediatrik_gd", tglAwal); + List idsDokterPerinatologi = getNilaiDataFixByTMT("pr_dokter_perinatologi", tglAwal); if (!ffs) { if (CommonUtil.isNotNullOrEmpty(listData)) { @@ -7089,11 +7094,12 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List drKkPerinatologiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PERINATOLOGI); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + Date tglAwal = DateUtil.startMonth(periode); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -7113,10 +7119,10 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List> listData = revIndekKinerjaDao.getAllTindakanDokterCetak(Master.Kelas.KELAS_SATU, idPegawai, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); - List idsDokterPediatrikGD = splitDataSettingDatafixed("pr_dokter_pediatrik_gd"); - List idsDokterPerinatologi = splitDataSettingDatafixed("pr_dokter_perinatologi"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); + List idsDokterPediatrikGD = getNilaiDataFixByTMT("pr_dokter_pediatrik_gd", tglAwal); + List idsDokterPerinatologi = getNilaiDataFixByTMT("pr_dokter_perinatologi", tglAwal); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAwal); if (CommonUtil.isNotNullOrEmpty(listData)) { for (Map map : listData) { @@ -7695,11 +7701,12 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + Date tglAwal = DateUtil.startMonth(periode); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -8496,11 +8503,12 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List dokterLuar = pegawaiDao .getPegawaiByKategoryPegawai(Arrays.asList(Master.KategoryPegawai.DOKTER_LUAR)); - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + Date tglAwal = DateUtil.startMonth(periode); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -8520,7 +8528,7 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List> listData = revIndekKinerjaDao.getAllTindakanDokter(Master.Kelas.KELAS_SATU, idPegawai, Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); List idsKonsultasiDokterJaga = splitDataSettingDatafixed("pr_konsultasi_dokter_jaga"); if (CommonUtil.isNotNullOrEmpty(listData)) { @@ -9813,11 +9821,12 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK List drKkPerinatologiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PERINATOLOGI); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + Date tglAwal = DateUtil.startMonth(month); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -9842,10 +9851,10 @@ public class IndekKinerjaServiceImpl extends BaseVoServiceImpl implements IndekK Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, tgl); } - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); - List idsDokterPediatrikGD = splitDataSettingDatafixed("pr_dokter_pediatrik_gd"); - List idsDokterPerinatologi = splitDataSettingDatafixed("pr_dokter_perinatologi"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); + List idsDokterPediatrikGD = getNilaiDataFixByTMT("pr_dokter_pediatrik_gd", tglAwal); + List idsDokterPerinatologi = getNilaiDataFixByTMT("pr_dokter_perinatologi", tglAwal); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAwal); if (!ffs) { if (CommonUtil.isNotNullOrEmpty(listData)) { diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/KonsultasiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/KonsultasiServiceImpl.java index 8a77711c..af977a89 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/KonsultasiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/KonsultasiServiceImpl.java @@ -364,9 +364,9 @@ public class KonsultasiServiceImpl extends BaseVoServiceImpl implements Konsulta excJenisProduk.add(Master.JenisProduk.LAB_KLINIK); List idsRegDJPPenunjangLab = splitDataSettingDatafixed("penunjang_laboratorium"); - List listKarcisIdProduk = splitDataSettingDatafixed("listKarcisIdProduk"); + List idsKarcis = getNilaiDataFixByTMT("listKarcisIdProduk", tglAwal); return konsultasiDao.findAllKonsultasiTindakanKosong(tglAwal, tglAkhir, inapDanLab, - Arrays.asList(Master.Pegawai.ADMINISTRATOR), listKarcisIdProduk, excJenisProduk, idsRegDJPPenunjangLab); + Arrays.asList(Master.Pegawai.ADMINISTRATOR), idsKarcis, excJenisProduk, idsRegDJPPenunjangLab); } } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java index df1036b9..72dbaed8 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/LogbookKinerjaServiceImpl.java @@ -1007,31 +1007,32 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); + Date tglAwal = DateUtil.startMonth(new Date(bulan)); List listIdNonjadwal = shiftKerjaDao.findListNonjadwal(); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { - listDetailJenisProduk = splitDataSettingDatafixed("penunjang_pa"); + listDetailJenisProduk = getNilaiDataFixByTMT("penunjang_pa", tglAwal); } else if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_KLINIK).contains(idPegawai)) { - listDetailJenisProduk = splitDataSettingDatafixed("penunjang_pk"); + listDetailJenisProduk = getNilaiDataFixByTMT("penunjang_pk", tglAwal); } else if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_RADIOLOGI).contains(idPegawai)) { - listDetailJenisProduk = splitDataSettingDatafixed("penunjang_radiologi"); + listDetailJenisProduk = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); } else { - listDetailJenisProduk = splitDataSettingDatafixed("medis_utama"); + listDetailJenisProduk = getNilaiDataFixByTMT("medis_utama", tglAwal); } if (laboranRadiologList.contains(idPegawai)) { - listDetailJenisProdukException = splitDataSettingDatafixed("admin_nonpk"); + listDetailJenisProdukException = getNilaiDataFixByTMT("admin_nonpk", tglAwal); listDetailJenisProdukException.removeAll(listDetailJenisProduk); listDetailJenisProduk.addAll(listDetailJenisProdukException); } - List> dataLayanan = ikiDanRemunerasiDao.getDataLogbookJamKerjaDokter( - mf.format(new Date(bulan)), pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, - Collections.singletonList(idPegawai), Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL), - listDetailJenisProduk, splitDataSettingDatafixed("pr_dokter_umum_igd"), drKsmUmumList, - Master.Departemen.IGD, Arrays.asList(Master.JenisProduk.NONTINDAKAN), - Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), Master.Produk.KARCIS); + List> dataLayanan = ikiDanRemunerasiDao.getDataLogbookJamKerjaDokter(mf.format(tglAwal), + pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, Collections.singletonList(idPegawai), + Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL), listDetailJenisProduk, + getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal), drKsmUmumList, Master.Departemen.IGD, + Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), + Master.Produk.KARCIS); // Menghitung skor asa dokter anestesi List listIdPelayananAnestesi = new ArrayList<>(); @@ -1372,29 +1373,30 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); + Date tglAwal = DateUtil.startMonth(new Date(bulan)); List listIdNonjadwal = shiftKerjaDao.findListNonjadwal(); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { - listDetailJenisProduk = splitDataSettingDatafixed("penunjang_pa"); + listDetailJenisProduk = getNilaiDataFixByTMT("penunjang_pa", tglAwal); } else if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_KLINIK).contains(idPegawai)) { - listDetailJenisProduk = splitDataSettingDatafixed("penunjang_pk"); + listDetailJenisProduk = getNilaiDataFixByTMT("penunjang_pk", tglAwal); } else if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_RADIOLOGI).contains(idPegawai)) { - listDetailJenisProduk = splitDataSettingDatafixed("penunjang_radiologi"); + listDetailJenisProduk = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); } else { - listDetailJenisProduk = splitDataSettingDatafixed("medis_utama"); + listDetailJenisProduk = getNilaiDataFixByTMT("medis_utama", tglAwal); } if (laboranRadiologList.contains(idPegawai)) { - listDetailJenisProdukException = splitDataSettingDatafixed("admin_nonpk"); + listDetailJenisProdukException = getNilaiDataFixByTMT("admin_nonpk", tglAwal); listDetailJenisProdukException.removeAll(listDetailJenisProduk); listDetailJenisProduk.addAll(listDetailJenisProdukException); } - List> dataLayanan = ikiDanRemunerasiDao.getDataLogbookLuarJamKerjaDokter( - mf.format(new Date(bulan)), pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, idPegawai, + List> dataLayanan = ikiDanRemunerasiDao.getDataLogbookLuarJamKerjaDokter(mf.format(tglAwal), + pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, idPegawai, Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL), listDetailJenisProduk, - splitDataSettingDatafixed("pr_dokter_umum_igd"), drKsmUmumList, Master.Departemen.IGD, + getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal), drKsmUmumList, Master.Departemen.IGD, Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), Master.Produk.KARCIS); @@ -1704,20 +1706,21 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); + Date tglAwal = DateUtil.startMonth(bulan); List listIdNonjadwal = shiftKerjaDao.findListNonjadwal(); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { - listDetailJenisProduk = splitDataSettingDatafixed("penunjang_pa"); + listDetailJenisProduk = getNilaiDataFixByTMT("penunjang_pa", tglAwal); } else if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_KLINIK).contains(idPegawai)) { - listDetailJenisProduk = splitDataSettingDatafixed("penunjang_pk"); + listDetailJenisProduk = getNilaiDataFixByTMT("penunjang_pk", tglAwal); } else if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_RADIOLOGI).contains(idPegawai)) { - listDetailJenisProduk = splitDataSettingDatafixed("penunjang_radiologi"); + listDetailJenisProduk = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); } else { - listDetailJenisProduk = splitDataSettingDatafixed("medis_utama"); + listDetailJenisProduk = getNilaiDataFixByTMT("medis_utama", tglAwal); } if (laboranRadiologList.contains(idPegawai)) { - listDetailJenisProdukException = splitDataSettingDatafixed("admin_nonpk"); + listDetailJenisProdukException = getNilaiDataFixByTMT("admin_nonpk", tglAwal); listDetailJenisProdukException.removeAll(listDetailJenisProduk); listDetailJenisProduk.addAll(listDetailJenisProdukException); @@ -1726,7 +1729,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb List> dataLayanan = ikiDanRemunerasiDao.findDetailPasienLogbookJamKerjaDokter(idProduk, tglPelayanan, pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, idPegawai, Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL), listDetailJenisProduk, - splitDataSettingDatafixed("pr_dokter_umum_igd"), drKsmUmumList, Master.Departemen.IGD, + getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal), drKsmUmumList, Master.Departemen.IGD, Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), Master.Produk.KARCIS); @@ -2245,20 +2248,21 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); + Date tglAwal = DateUtil.startMonth(tglPelayanan.substring(0, 7)); List listIdNonjadwal = shiftKerjaDao.findListNonjadwal(); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { - listDetailJenisProduk = splitDataSettingDatafixed("penunjang_pa"); + listDetailJenisProduk = getNilaiDataFixByTMT("penunjang_pa", tglAwal); } else if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_KLINIK).contains(idPegawai)) { - listDetailJenisProduk = splitDataSettingDatafixed("penunjang_pk"); + listDetailJenisProduk = getNilaiDataFixByTMT("penunjang_pk", tglAwal); } else if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_RADIOLOGI).contains(idPegawai)) { - listDetailJenisProduk = splitDataSettingDatafixed("penunjang_radiologi"); + listDetailJenisProduk = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); } else { - listDetailJenisProduk = splitDataSettingDatafixed("medis_utama"); + listDetailJenisProduk = getNilaiDataFixByTMT("medis_utama", tglAwal); } if (laboranRadiologList.contains(idPegawai)) { - listDetailJenisProdukException = splitDataSettingDatafixed("admin_nonpk"); + listDetailJenisProdukException = getNilaiDataFixByTMT("admin_nonpk", tglAwal); listDetailJenisProdukException.removeAll(listDetailJenisProduk); listDetailJenisProduk.addAll(listDetailJenisProdukException); @@ -2267,7 +2271,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb List> dataLayanan = ikiDanRemunerasiDao.findDetailPasienLogbookLuarJamKerjaDokter(idProduk, tglPelayanan, pssbAwal, pssbAkhir, listIdNonjadwal, Master.JenisPegawai.DOKTER, idPegawai, Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN_ALL), listDetailJenisProduk, - splitDataSettingDatafixed("pr_dokter_umum_igd"), drKsmUmumList, Master.Departemen.IGD, + getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal), drKsmUmumList, Master.Departemen.IGD, Arrays.asList(Master.JenisProduk.NONTINDAKAN), Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS), Master.Produk.KARCIS); @@ -3015,11 +3019,11 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb } } - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", start); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", start); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", start); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", start); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", start); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); @@ -3027,7 +3031,7 @@ public class LogbookKinerjaServiceImpl extends BaseVoServiceImpl implements Logb List drLabPKList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_KLINIK); List drRadList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_RADIOLOGI); - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", start); for (Integer idPegawai : listIdPegawai) { SkorDokterVO skorDokterVO = new SkorDokterVO(); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java index 1f5e4b24..46c75cc6 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java @@ -706,23 +706,23 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel List drKkRadiologi = pegawaiDao.getDokterByKelompokKerja(KK_RADIOLOGI); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); List terapisRehabMedik = mapJabatanProfesiDao.findIdPegawaiByProfesiIn(Arrays.asList(TERAPI)); - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); - List idsDokterPerinatologi = splitDataSettingDatafixed("pr_dokter_perinatologi"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); + List idsDokterPerinatologi = getNilaiDataFixByTMT("pr_dokter_perinatologi", tglAwal); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAwal); List idsDokterBPJSffs = splitDataSettingDatafixed("dokterBPJSffs"); - List idsDokterPediatrikGD = splitDataSettingDatafixed("pr_dokter_pediatrik_gd"); - List idsMonitoringIntervensi = splitDataSettingDatafixed("idMonitoringIntervensi"); - List idsMonitoringHemodinamikGagalOrgan = splitDataSettingDatafixed( - "idMonitoringHemodinamikGagalOrgan"); - List idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan"); - List idProdukKepalaPaketFixedPay = splitDataSettingDatafixed("idProdukKepalaPaketFixedPay"); - List paketBukanFixedPay = splitDataSettingDatafixed("produkPaketBukanFixedPay"); - List idsKarcis = splitDataSettingDatafixed("listKarcisIdProduk"); + List idsDokterPediatrikGD = getNilaiDataFixByTMT("pr_dokter_pediatrik_gd", tglAwal); + List idsMonitoringIntervensi = getNilaiDataFixByTMT("idMonitoringIntervensi", tglAwal); + List idsMonitoringHemodinamikGagalOrgan = getNilaiDataFixByTMT("idMonitoringHemodinamikGagalOrgan", + tglAwal); + List idsLabGenetikaLuarRuangan = getNilaiDataFixByTMT("idProdukLabGenetikaLuarRuangan", tglAwal); + List idsKepalaPaketFixedPay = getNilaiDataFixByTMT("idProdukKepalaPaketFixedPay", tglAwal); + List paketBukanFixedPay = getNilaiDataFixByTMT("produkPaketBukanFixedPay", tglAwal); + List idsKarcis = getNilaiDataFixByTMT("listKarcisIdProduk", tglAwal); if (drKkPatologiAnatomiList.contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; } else if (pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_KLINIK).contains(idPegawai)) { @@ -745,10 +745,10 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel * Pemisahan produk kepala paket untuk fixed pay */ List> listKepalaPaketFixedPay = listRatedPay.stream() - .filter(d -> idProdukKepalaPaketFixedPay.contains(Integer.parseInt(d.get("idProduk").toString()))) + .filter(d -> idsKepalaPaketFixedPay.contains(Integer.parseInt(d.get("idProduk").toString()))) .collect(Collectors.toList()); listRatedPay = listRatedPay.stream() - .filter(d -> !idProdukKepalaPaketFixedPay.contains(Integer.parseInt(d.get("idProduk").toString()))) + .filter(d -> !idsKepalaPaketFixedPay.contains(Integer.parseInt(d.get("idProduk").toString()))) .collect(Collectors.toList()); List allPaketId = mapProdukPaketDao.findProdukEntriId(); List revisedPaketId = allPaketId.stream().filter(p -> !paketBukanFixedPay.contains(p)) @@ -876,7 +876,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d, false); d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKkGenetika.contains(idPegawai) - && idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) + && idsLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { /* * A rule for claimed <= Jul 31th 2023 @@ -2219,12 +2219,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel /* * Persiapan filter logic remunerasi */ + Date tglAwal = DateUtil.startMonth(bulan); List drKkPatologiAnatomiList = pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_ANATOMI); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(KK_UMUM); List drKkGenetika = pegawaiDao.getDokterByKelompokKerja(KK_GENETIKA); List drAnastesiList = pegawaiDao.getDokterByKelompokKerja(KK_ANESTESI); List terapisRehabMedik = mapJabatanProfesiDao.findIdPegawaiByProfesiIn(Arrays.asList(TERAPI)); - List idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan"); + List idsLabGenetikaLuarRuangan = getNilaiDataFixByTMT("idProdukLabGenetikaLuarRuangan", tglAwal); /* * Set persen jasa dan harga jasa pasien bpjs di ibs, icu */ @@ -2375,7 +2376,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel d.put("keterangan", hargaJasa.getKeterangan()); d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKkGenetika.contains(idPegawai) - && idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) + && idsLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { RemunHargaJasa hargaJasa = hargaJasa(persenRemunLabGenetika / 100, hargaJual, d, true); d.put("persenJasa", persenRemunLabGenetika + "%"); @@ -2612,12 +2613,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel /* * Persiapan filter logic remunerasi */ + Date tglAwal = DateUtil.startMonth(bulan); List drKkPatologiAnatomiList = pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_ANATOMI); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(KK_UMUM); List drKkGenetika = pegawaiDao.getDokterByKelompokKerja(KK_GENETIKA); List drAnastesiList = pegawaiDao.getDokterByKelompokKerja(KK_ANESTESI); List terapisRehabMedik = mapJabatanProfesiDao.findIdPegawaiByProfesiIn(Arrays.asList(TERAPI)); - List idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan"); + List idsLabGenetikaLuarRuangan = getNilaiDataFixByTMT("idProdukLabGenetikaLuarRuangan", tglAwal); /* * Mapping persentase jasa remunerasi */ @@ -2744,7 +2746,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel d.put("keterangan", hargaJasa.getKeterangan()); d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKkGenetika.contains(idPegawai) - && idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) + && idsLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { RemunHargaJasa hargaJasa = hargaJasa(persenJasaLabGenetika / 100, hargaJual, d, true); d.put("persenJasa", persenJasaLabGenetika + "%"); @@ -2881,12 +2883,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel /* * Persiapan filter logic remunerasi */ + Date tglAwal = DateUtil.startMonth(bulan); List drKkPatologiAnatomiList = pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_ANATOMI); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(KK_UMUM); List drKkGenetika = pegawaiDao.getDokterByKelompokKerja(KK_GENETIKA); List drAnastesiList = pegawaiDao.getDokterByKelompokKerja(KK_ANESTESI); List terapisRehabMedik = mapJabatanProfesiDao.findIdPegawaiByProfesiIn(Arrays.asList(TERAPI)); - List idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan"); + List idsLabGenetikaLuarRuangan = getNilaiDataFixByTMT("idProdukLabGenetikaLuarRuangan", tglAwal); /* * Mapping persentase jasa remunerasi */ @@ -3019,7 +3022,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel d.put("keterangan", hargaJasa.getKeterangan()); d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKkGenetika.contains(idPegawai) - && idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) + && idsLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { RemunHargaJasa hargaJasa = hargaJasa(persenJasaLabGenetika / 100, hargaJual, d, true); d.put("persenJasa", persenJasaLabGenetika + "%"); @@ -3248,12 +3251,13 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel /* * Persiapan filter logic remunerasi */ + Date tglAwal = DateUtil.startMonth(bulan); List drKkPatologiAnatomiList = pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_ANATOMI); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(KK_UMUM); List drKkGenetika = pegawaiDao.getDokterByKelompokKerja(KK_GENETIKA); List drAnastesiList = pegawaiDao.getDokterByKelompokKerja(KK_ANESTESI); List terapisRehabMedik = mapJabatanProfesiDao.findIdPegawaiByProfesiIn(Arrays.asList(TERAPI)); - List idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan"); + List idsLabGenetikaLuarRuangan = getNilaiDataFixByTMT("idProdukLabGenetikaLuarRuangan", tglAwal); if (terapisRehabMedik.contains(idPegawai)) return new ArrayList<>(); /* @@ -3383,7 +3387,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel d.put("keterangan", hargaJasa.getKeterangan()); d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKkGenetika.contains(idPegawai) - && idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) + && idsLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { RemunHargaJasa hargaJasa = hargaJasa(persenJasaLabGenetika / 100, hargaJual, d, true); d.put("persenJasa", persenJasaLabGenetika + "%"); @@ -3582,7 +3586,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel @Override public List> detailLogbookTarifDokter(Integer idPegawai, List norecs) { - List paketBukanFixedPay = splitDataSettingDatafixed("produkPaketBukanFixedPay"); + List paketBukanFixedPay = getNilaiDataFixByTMT("produkPaketBukanFixedPay", new Date()); List> result = pelayananPasienDao.findPelayananPasienByPetugasAndPelayananPasien(idPegawai, norecs); List listIdPelayananPaketBukanFixedPay = result.stream() @@ -3673,8 +3677,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel .collect(Collectors.toList()); List byNorecPelayanan = pelayananPasienDao.findAll(norecPelayanan); { - Optional pendaftaran = byNorecPelayanan.stream().map(p -> p.getPasienDaftar().getPasienDaftar()) - .findFirst(); + Optional pendaftaran = byNorecPelayanan.stream() + .map(p -> p.getPasienDaftar().getPasienDaftar()).findFirst(); pendaftaran.ifPresent(p -> { Integer pasienId = p.getPasien().getId(); String ibuNoCm = p.getPasien().getReportDisplay(); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PendapatanServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PendapatanServiceImpl.java index fc66168c..302a0271 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PendapatanServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PendapatanServiceImpl.java @@ -1,35 +1,25 @@ package com.jasamedika.medifirst2000.service.impl; -import java.text.DecimalFormat; -import java.text.DecimalFormatSymbols; -import java.text.SimpleDateFormat; -import java.time.DayOfWeek; -import java.time.LocalDate; -import java.time.LocalDateTime; -import java.time.LocalTime; -import java.time.ZoneId; -import java.time.format.DateTimeFormatter; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Collections; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.joda.time.Chronology; -import org.joda.time.chrono.ISOChronology; -import org.joda.time.chrono.IslamicChronology; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.stereotype.Service; -import org.springframework.transaction.annotation.Transactional; - import com.jasamedika.medifirst2000.constants.Master; import com.jasamedika.medifirst2000.dao.MapPegawaiLaboratRadiologiDao; import com.jasamedika.medifirst2000.dao.PegawaiDao; import com.jasamedika.medifirst2000.dao.PendapatanDao; import com.jasamedika.medifirst2000.service.PendapatanService; import com.jasamedika.medifirst2000.util.CommonUtil; +import com.jasamedika.medifirst2000.util.DateUtil; +import org.joda.time.Chronology; +import org.joda.time.chrono.ISOChronology; +import org.joda.time.chrono.IslamicChronology; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.text.DecimalFormat; +import java.text.DecimalFormatSymbols; +import java.text.SimpleDateFormat; +import java.time.*; +import java.time.format.DateTimeFormatter; +import java.util.*; /** * @author salmanoe @@ -67,7 +57,7 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat Double count) { Map result = new HashMap<>(); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", new Date()); if (listDrAnastesi.contains(idPegawai)) { if (idsPenunjangBukanAnestesi.contains(idProduk) && idJenisPetugasPelaksana.equals(Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA) @@ -111,7 +101,7 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat Map result = new HashMap<>(); List idsKonsultasiDokterJaga = splitDataSettingDatafixed("pr_konsultasi_dokter_jaga"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", new Date()); if (listDrAnastesi.contains(idPegawai)) { if (idsPenunjangBukanAnestesi.contains(idProduk)) { @@ -276,11 +266,12 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + Date tglAwal = DateUtil.startMonth(periode); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -301,9 +292,9 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat Arrays.asList(Master.KomponenHarga.JASA_MEDIS), Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); List idsKonsultasiDokterJaga = splitDataSettingDatafixed("pr_konsultasi_dokter_jaga"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAwal); Double komponenDasar = Double.parseDouble(getSettingDataFixed("ld_komponen_dasar")); Double persenOperator = Double.parseDouble(getSettingDataFixed("ld_persen_operator")); Double persenCooperator = Double.parseDouble(getSettingDataFixed("ld_persen_cooperator")); @@ -1386,11 +1377,12 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + Date tglAwal = DateUtil.startMonth(tgl.substring(0, 7)); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -1444,7 +1436,7 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat } List idsKonsultasiDokterJaga = splitDataSettingDatafixed("pr_konsultasi_dokter_jaga"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAwal); // RULES_SK_FFS_2015 if (CommonUtil.isNotNullOrEmpty(rawData)) { @@ -2908,11 +2900,12 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + Date tglAwal = DateUtil.startMonth(periode); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -2967,7 +2960,7 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat } List idsKonsultasiDokterJaga = splitDataSettingDatafixed("pr_konsultasi_dokter_jaga"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAwal); Double komponenDasar = Double.parseDouble(getSettingDataFixed("ld_komponen_dasar")); Double persenOperator = Double.parseDouble(getSettingDataFixed("ld_persen_operator")); Double persenCooperator = Double.parseDouble(getSettingDataFixed("ld_persen_cooperator")); @@ -3994,11 +3987,12 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + Date tglAwal = DateUtil.startMonth(bln); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -4051,9 +4045,9 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat } } - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); List idsKonsultasiDokterJaga = splitDataSettingDatafixed("pr_konsultasi_dokter_jaga"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAwal); // RULES_SK_FFS_2015 if (CommonUtil.isNotNullOrEmpty(rawData)) { @@ -5005,11 +4999,12 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); } - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + Date tglAwal = DateUtil.startMonth(periode); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); if (drLabPatologiAnatomi.contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -5026,8 +5021,8 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat listDetailJenisProdukException.removeAll(listDetailJenisProduk); } - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAwal); Double komponenDasar = Double.parseDouble(getSettingDataFixed("ld_komponen_dasar")); Double persenOperator = Double.parseDouble(getSettingDataFixed("ld_persen_operator")); Double persenCooperator = Double.parseDouble(getSettingDataFixed("ld_persen_cooperator")); @@ -5806,11 +5801,12 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat periode); } - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + Date tglAwal = DateUtil.startMonth(periode); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -5826,7 +5822,7 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat listDetailJenisProdukException = idsRegDJPAdminNonPK; } - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); if (CommonUtil.isNotNullOrEmpty(data)) { if (drParuhWaktu.contains(idPegawai)) { @@ -6726,11 +6722,12 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); } - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + Date tglAwal = DateUtil.startMonth(periode); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); if (drLabPatologiAnatomi.contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -6747,8 +6744,8 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat listDetailJenisProdukException.removeAll(listDetailJenisProduk); } - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAwal); Double komponenDasar = Double.parseDouble(getSettingDataFixed("ld_komponen_dasar")); Double persenOperator = Double.parseDouble(getSettingDataFixed("ld_persen_operator")); Double persenCooperator = Double.parseDouble(getSettingDataFixed("ld_persen_cooperator")); @@ -7249,11 +7246,12 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat bln); } - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + Date tglAwal = DateUtil.startMonth(bln); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -7270,8 +7268,8 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat listDetailJenisProdukException.removeAll(listDetailJenisProduk); } - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAwal); // GET_JASA_MEDIS if (CommonUtil.isNotNullOrEmpty(data)) { @@ -7682,11 +7680,12 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat Master.JenisPetugasPelaksana.PETUGAS_PELAKSANA, periode); } - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + Date tglAwal = DateUtil.startMonth(periode); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); if (drLabPatologiAnatomi.contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -7736,9 +7735,9 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat } } - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); List idsKonsultasiDokterJaga = splitDataSettingDatafixed("pr_konsultasi_dokter_jaga"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAwal); Double komponenDasar = Double.parseDouble(getSettingDataFixed("ld_komponen_dasar")); Double persenOperator = Double.parseDouble(getSettingDataFixed("ld_persen_operator")); Double persenCooperator = Double.parseDouble(getSettingDataFixed("ld_persen_cooperator")); @@ -8658,11 +8657,12 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat bln); } - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + Date tglAwal = DateUtil.startMonth(bln); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; @@ -8712,9 +8712,9 @@ public class PendapatanServiceImpl extends BaseVoServiceImpl implements Pendapat } } - List idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd"); + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); List idsKonsultasiDokterJaga = splitDataSettingDatafixed("pr_konsultasi_dokter_jaga"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAwal); // RULES_SK_FFS_2015 if (CommonUtil.isNotNullOrEmpty(rawData)) { diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java index 60151fb1..65c4bb27 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/RemunerasiServiceImpl.java @@ -1,11 +1,8 @@ package com.jasamedika.medifirst2000.service.impl; -import com.google.gson.Gson; -import com.google.gson.reflect.TypeToken; import com.jasamedika.medifirst2000.constants.Master; import com.jasamedika.medifirst2000.converter.BaseConverterImpl; import com.jasamedika.medifirst2000.dao.*; -import com.jasamedika.medifirst2000.dto.EffectiveDateDataFixDTO; import com.jasamedika.medifirst2000.dto.RemunHargaJasa; import com.jasamedika.medifirst2000.entities.*; import com.jasamedika.medifirst2000.exception.ServiceVOException; @@ -16,8 +13,10 @@ import com.jasamedika.medifirst2000.vo.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import java.lang.reflect.Type; -import java.text.*; +import java.text.DateFormat; +import java.text.DecimalFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; @@ -331,26 +330,26 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera List drKkRadiologi = pegawaiDao.getDokterByKelompokKerja(KK_RADIOLOGI); List laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog(); List terapisRehabMedik = mapJabatanProfesiDao.findIdPegawaiByProfesiIn(Arrays.asList(TERAPI)); - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); - List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd"); - List idsDokterUmumExclude = splitDataSettingDatafixed("pr_dokter_umum_exclude"); - List idsDokterPerinatologi = splitDataSettingDatafixed("pr_dokter_perinatologi"); - List idsPenunjangBukanAnestesi = splitDataSettingDatafixed("pr_penunjang_nonanestesi"); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", tglAwal); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", tglAwal); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", tglAwal); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", tglAwal); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", tglAwal); + List idsDokterUmumIGD = getNilaiDataFixByTMT("pr_dokter_umum_igd", tglAwal); + List idsDokterUmumExclude = getNilaiDataFixByTMT("pr_dokter_umum_exclude", tglAwal); + List idsDokterPerinatologi = getNilaiDataFixByTMT("pr_dokter_perinatologi", tglAwal); + List idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAwal); List idsDokterBPJSffs = splitDataSettingDatafixed("dokterBPJSffs"); - List idsDokterPediatrikGD = splitDataSettingDatafixed("pr_dokter_pediatrik_gd"); + List idsDokterPediatrikGD = getNilaiDataFixByTMT("pr_dokter_pediatrik_gd", tglAwal); List listIdPegawaiRemunKelompokBudiRahmat = splitDataSettingDatafixed( "listIdPegawaiRemunKelompokBudiRahmat"); - List idsMonitoringIntervensi = splitDataSettingDatafixed("idMonitoringIntervensi"); - List idsMonitoringHemodinamikGagalOrgan = splitDataSettingDatafixed( - "idMonitoringHemodinamikGagalOrgan"); - List idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan"); - List idProdukKepalaPaketFixedPay = splitDataSettingDatafixed("idProdukKepalaPaketFixedPay"); - List paketBukanFixedPay = splitDataSettingDatafixed("produkPaketBukanFixedPay"); - List idsKarcis = splitDataSettingDatafixed("listKarcisIdProduk"); + List idsMonitoringIntervensi = getNilaiDataFixByTMT("idMonitoringIntervensi", tglAwal); + List idsMonitoringHemodinamikGagalOrgan = getNilaiDataFixByTMT("idMonitoringHemodinamikGagalOrgan", + tglAwal); + List idsLabGenetikaLuarRuangan = getNilaiDataFixByTMT("idProdukLabGenetikaLuarRuangan", tglAwal); + List idsKepalaPaketFixedPay = getNilaiDataFixByTMT("idProdukKepalaPaketFixedPay", tglAwal); + List paketBukanFixedPay = getNilaiDataFixByTMT("produkPaketBukanFixedPay", tglAwal); + List idsKarcis = getNilaiDataFixByTMT("listKarcisIdProduk", tglAwal); if (drKkPatologiAnatomiList.contains(idPegawai)) { listDetailJenisProduk = idsRegDJPPenunjangPA; } else if (pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_KLINIK).contains(idPegawai)) { @@ -373,10 +372,10 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera * Pemisahan produk kepala paket untuk fixed pay */ List> listKepalaPaketFixedPay = listRatedPay.stream() - .filter(d -> idProdukKepalaPaketFixedPay.contains(Integer.parseInt(d.get("idProduk").toString()))) + .filter(d -> idsKepalaPaketFixedPay.contains(Integer.parseInt(d.get("idProduk").toString()))) .collect(Collectors.toList()); listRatedPay = listRatedPay.stream() - .filter(d -> !idProdukKepalaPaketFixedPay.contains(Integer.parseInt(d.get("idProduk").toString()))) + .filter(d -> !idsKepalaPaketFixedPay.contains(Integer.parseInt(d.get("idProduk").toString()))) .collect(Collectors.toList()); List allPaketId = mapProdukPaketDao.findProdukEntriId(); List revisedPaketId = allPaketId.stream().filter(p -> !paketBukanFixedPay.contains(p)) @@ -501,7 +500,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d); d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKkGenetika.contains(idPegawai) - && idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) + && idsLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { /* * A rule for claimed <= Jul 31th 2023 @@ -2013,12 +2012,13 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera /* * Persiapan filter logic remunerasi */ + Date tglAwal = DateUtil.startMonth(bulan); List drKkPatologiAnatomiList = pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_ANATOMI); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(KK_UMUM); List drKkGenetika = pegawaiDao.getDokterByKelompokKerja(KK_GENETIKA); List drAnastesiList = pegawaiDao.getDokterByKelompokKerja(KK_ANESTESI); List terapisRehabMedik = mapJabatanProfesiDao.findIdPegawaiByProfesiIn(Arrays.asList(TERAPI)); - List idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan"); + List idsLabGenetikaLuarRuangan = getNilaiDataFixByTMT("idProdukLabGenetikaLuarRuangan", tglAwal); List listIdPegawaiRemunKelompokBudiRahmat = splitDataSettingDatafixed( "listIdPegawaiRemunKelompokBudiRahmat"); /* @@ -2153,7 +2153,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera d.put("keterangan", hargaJasa.getKeterangan()); d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKkGenetika.contains(idPegawai) - && idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) + && idsLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { RemunHargaJasa hargaJasa = hargaJasa(persenRemunLabGenetika / 100, hargaJual, d); d.put("persenJasa", persenRemunLabGenetika + "%"); @@ -2390,12 +2390,13 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera /* * Persiapan filter logic remunerasi */ + Date tglAwal = DateUtil.startMonth(bulan); List drKkPatologiAnatomiList = pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_ANATOMI); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(KK_UMUM); List drKkGenetika = pegawaiDao.getDokterByKelompokKerja(KK_GENETIKA); List drAnastesiList = pegawaiDao.getDokterByKelompokKerja(KK_ANESTESI); List terapisRehabMedik = mapJabatanProfesiDao.findIdPegawaiByProfesiIn(Arrays.asList(TERAPI)); - List idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan"); + List idsLabGenetikaLuarRuangan = getNilaiDataFixByTMT("idProdukLabGenetikaLuarRuangan", tglAwal); /* * Mapping persentase jasa remunerasi */ @@ -2512,7 +2513,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera d.put("keterangan", hargaJasa.getKeterangan()); d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKkGenetika.contains(idPegawai) - && idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) + && idsLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { RemunHargaJasa hargaJasa = hargaJasa(persenJasaLabGenetika / 100, hargaJual, d); d.put("persenJasa", persenJasaLabGenetika + "%"); @@ -2749,12 +2750,13 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera /* * Persiapan filter logic remunerasi */ + Date tglAwal = DateUtil.startMonth(bulan); List drKkPatologiAnatomiList = pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_ANATOMI); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(KK_UMUM); List drKkGenetika = pegawaiDao.getDokterByKelompokKerja(KK_GENETIKA); List drAnastesiList = pegawaiDao.getDokterByKelompokKerja(KK_ANESTESI); List terapisRehabMedik = mapJabatanProfesiDao.findIdPegawaiByProfesiIn(Arrays.asList(TERAPI)); - List idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan"); + List idsLabGenetikaLuarRuangan = getNilaiDataFixByTMT("idProdukLabGenetikaLuarRuangan", tglAwal); /* * Mapping persentase jasa remunerasi */ @@ -2877,7 +2879,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera d.put("keterangan", hargaJasa.getKeterangan()); d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKkGenetika.contains(idPegawai) - && idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) + && idsLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { RemunHargaJasa hargaJasa = hargaJasa(persenJasaLabGenetika / 100, hargaJual, d); d.put("persenJasa", persenJasaLabGenetika + "%"); @@ -3008,12 +3010,13 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera /* * Persiapan filter logic remunerasi */ + Date tglAwal = DateUtil.startMonth(bulan); List drKkPatologiAnatomiList = pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_ANATOMI); List drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(KK_UMUM); List drKkGenetika = pegawaiDao.getDokterByKelompokKerja(KK_GENETIKA); List drAnastesiList = pegawaiDao.getDokterByKelompokKerja(KK_ANESTESI); List terapisRehabMedik = mapJabatanProfesiDao.findIdPegawaiByProfesiIn(Arrays.asList(TERAPI)); - List idProdukLabGenetikaLuarRuangan = splitDataSettingDatafixed("idProdukLabGenetikaLuarRuangan"); + List idsLabGenetikaLuarRuangan = getNilaiDataFixByTMT("idProdukLabGenetikaLuarRuangan", tglAwal); if (terapisRehabMedik.contains(idPegawai)) return new ArrayList<>(); /* @@ -3133,7 +3136,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera d.put("keterangan", hargaJasa.getKeterangan()); d.put("hargaJasa", hargaJasa.getNilai()); } else if (drKkGenetika.contains(idPegawai) - && idProdukLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) + && idsLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString())) && (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) { RemunHargaJasa hargaJasa = hargaJasa(persenJasaLabGenetika / 100, hargaJual, d); d.put("persenJasa", persenJasaLabGenetika + "%"); @@ -3236,7 +3239,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera @Override public List> detailLogbookTarifDokter(Integer idPegawai, List norecs) { - List paketBukanFixedPay = splitDataSettingDatafixed("produkPaketBukanFixedPay"); + List paketBukanFixedPay = getNilaiDataFixByTMT("produkPaketBukanFixedPay", new Date()); List> result = pelayananPasienDao.findPelayananPasienByPetugasAndPelayananPasien(idPegawai, norecs); List listIdPelayananPaketBukanFixedPay = result.stream() @@ -3433,22 +3436,4 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera return builder.build(); } - private List getNilaiDataFixByTMT(String namaField) { - List result = new ArrayList<>(); - Gson gson = new Gson(); - Type effectiveDateDataFixType = new TypeToken>() { - }.getType(); - String jsonProdukDokterUmum = getSettingDataFixed(namaField); - List dataFixDTOList = gson.fromJson(jsonProdukDokterUmum, effectiveDateDataFixType); - Optional first = dataFixDTOList.stream() - .sorted(Comparator.comparing(EffectiveDateDataFixDTO::getTmt, Comparator.reverseOrder())) - .filter(dto -> dto.getTmt() <= new Date().getTime()).findFirst(); - if (first.isPresent()) { - String[] split = first.get().getNilaiField().split(","); - for (String s : split) - result.add(Integer.valueOf(s)); - } - return result; - } - } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SkoringTindakanMedisServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SkoringTindakanMedisServiceImpl.java index d02d98d4..609643ba 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SkoringTindakanMedisServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SkoringTindakanMedisServiceImpl.java @@ -1,54 +1,29 @@ package com.jasamedika.medifirst2000.service.impl; -import java.text.DateFormat; -import java.text.NumberFormat; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Locale; -import java.util.Map; -import java.util.Set; -import java.util.concurrent.ConcurrentHashMap; -import java.util.concurrent.CountDownLatch; -import java.util.concurrent.ExecutorService; -import java.util.concurrent.Executors; -import java.util.concurrent.TimeUnit; -import java.util.function.Function; -import java.util.function.Predicate; -import java.util.stream.Collectors; - -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.data.domain.PageRequest; -import org.springframework.data.domain.Pageable; -import org.springframework.orm.jpa.JpaSystemException; -import org.springframework.stereotype.Service; - import com.jasamedika.medifirst2000.constants.Master; import com.jasamedika.medifirst2000.converter.BaseConverterImpl; -import com.jasamedika.medifirst2000.dao.HargaNettoProdukByKelasDao; -import com.jasamedika.medifirst2000.dao.LoggingUserDao; -import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao; -import com.jasamedika.medifirst2000.dao.MapProdukKelompokKerjaDao; -import com.jasamedika.medifirst2000.dao.MapRuanganToProdukDao; -import com.jasamedika.medifirst2000.dao.PelayananPasienPetugasDao; -import com.jasamedika.medifirst2000.dao.ProdukDao; -import com.jasamedika.medifirst2000.dao.SettingDataFixedDao; -import com.jasamedika.medifirst2000.dao.SkoringTindakanMedisDao; -import com.jasamedika.medifirst2000.dao.SubUnitKerjaDao; -import com.jasamedika.medifirst2000.entities.LoggingUser; -import com.jasamedika.medifirst2000.entities.LoginUser; -import com.jasamedika.medifirst2000.entities.Produk; -import com.jasamedika.medifirst2000.entities.SkoringTindakanMedis; -import com.jasamedika.medifirst2000.entities.SubUnitKerjaPegawai; +import com.jasamedika.medifirst2000.dao.*; +import com.jasamedika.medifirst2000.entities.*; import com.jasamedika.medifirst2000.exception.ServiceVOException; import com.jasamedika.medifirst2000.service.SkoringTindakanMedisService; import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.vo.ProdukVO; import com.jasamedika.medifirst2000.vo.SkoringTindakanMedisVO; import com.jasamedika.medifirst2000.vo.SubUnitKerjaPegawaiVO; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; +import org.springframework.orm.jpa.JpaSystemException; +import org.springframework.stereotype.Service; + +import java.text.DateFormat; +import java.text.NumberFormat; +import java.text.SimpleDateFormat; +import java.util.*; +import java.util.concurrent.*; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Collectors; @Service("skoringTindakanMedisService") public class SkoringTindakanMedisServiceImpl extends BaseVoServiceImpl implements SkoringTindakanMedisService { @@ -590,11 +565,12 @@ public class SkoringTindakanMedisServiceImpl extends BaseVoServiceImpl implement public List> findTindakanLogbookSkor(String namaProduk) { List> result = new ArrayList<>(); - List idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk"); - List idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama"); - List idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa"); - List idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk"); - List idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi"); + Date date = new Date(); + List idsRegDJPAdminNonPK = getNilaiDataFixByTMT("admin_nonpk", date); + List idsRegDJPMedisUtama = getNilaiDataFixByTMT("medis_utama", date); + List idsRegDJPPenunjangPA = getNilaiDataFixByTMT("penunjang_pa", date); + List idsRegDJPPenunjangPK = getNilaiDataFixByTMT("penunjang_pk", date); + List idsRegDJPPenunjangRad = getNilaiDataFixByTMT("penunjang_radiologi", date); List idsRegDJPPenunjangLab = splitDataSettingDatafixed("penunjang_laboratorium"); List tempList = new ArrayList<>();