Merge branch 'dev/remun/logbook-tarif' into prod/base

This commit is contained in:
Salman Manoe 2025-02-27 13:23:35 +07:00
commit 5bbefc913d
4 changed files with 210 additions and 70 deletions

View File

@ -415,8 +415,10 @@ public final class Master {
public static final class SubUnitKerja {
public static final Integer KK_ANESTESI = 223;
public static final Integer KK_EMERGIC = 218;
public static final Integer KK_FARMAKOLOGI = 205;
public static final Integer KK_GENETIKA = 198;
public static final Integer KK_HEMATO_ONKO = 216;
public static final Integer KK_PATOLOGI_ANATOMI = 197;
public static final Integer KK_PATOLOGI_KLINIK = 199;
public static final Integer KK_PEDIATRIK_GD = 244;

View File

@ -497,4 +497,8 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends JpaRepository<MapPegawa
+ "and mj.unitKerjaPegawaiId in (:listUnitKerjaId) " + "and pg.jenisPegawaiId = 1")
Set<Integer> findDokterByUnitKerja(@Param("listUnitKerjaId") List<Integer> listIdUnitKerja);
@Query("select skj.id from MapPegawaiJabatanToUnitKerja mj " + "inner join mj.subUnitKerjaPegawai skj "
+ "where mj.statusEnabled is true " + "and skj.statusEnabled is true " + "and lower(skj.name) like 'kk%' "
+ "and mj.pegawaiId = :pegawaiId")
List<Integer> findKelompokKerjaByDokter(@Param("pegawaiId") Integer idPegawai);
}

View File

@ -134,12 +134,14 @@ public abstract class BaseVoServiceImpl {
Type effectiveDateDataFixType = new TypeToken<List<EffectiveDateDataFixDTO>>() {
}.getType();
String jsonProdukDokterUmum = getSettingDataFixed(namaField);
if (jsonProdukDokterUmum.isEmpty())
return result;
List<EffectiveDateDataFixDTO> dataFixDTOList = gson.fromJson(jsonProdukDokterUmum, effectiveDateDataFixType);
Optional<EffectiveDateDataFixDTO> 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(",");
String[] split = first.get().getNilaiField().replace(" ","").split(",");
for (String s : split)
result.add(Integer.valueOf(s));
}

View File

@ -110,6 +110,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
@Autowired
private MapJabatanProfesiDao mapJabatanProfesiDao;
@Autowired
private MapPegawaiJabatanToUnitKerjaDao mapPegawaiJabatanToUnitKerjaDao;
@Override
public Map<String, Object> saveProgramKegiatan(ProgramKegiatanVO vo) {
Map<String, Object> result = new HashMap<>();
@ -275,6 +278,11 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
} catch (ParseException e) {
return null;
}
/*
* Mendapatkan kelompok kerja dokter
*/
List<Integer> kelompokKerjaByDokter = mapPegawaiJabatanToUnitKerjaDao.findKelompokKerjaByDokter(idPegawai);
Integer idKKDokter = kelompokKerjaByDokter.stream().findFirst().orElse(-1);
/*
* Mendapatkan daftar jadwal kerja, tanggal dan jam kerja
*/
@ -320,13 +328,6 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
*/
List<Integer> listDetailJenisProduk;
List<Integer> listDetailJenisProdukException = new ArrayList<>();
List<Integer> drKkPediatrikGDList = pegawaiDao.getDokterByKelompokKerja(KK_PEDIATRIK_GD);
List<Integer> drAnastesiList = pegawaiDao.getDokterByKelompokKerja(KK_ANESTESI);
List<Integer> drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(KK_UMUM);
List<Integer> drKkPerinatologiList = pegawaiDao.getDokterByKelompokKerja(KK_PERINATOLOGI);
List<Integer> drKkPatologiAnatomiList = pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_ANATOMI);
List<Integer> drKkGenetika = pegawaiDao.getDokterByKelompokKerja(KK_GENETIKA);
List<Integer> drKkRadiologi = pegawaiDao.getDokterByKelompokKerja(KK_RADIOLOGI);
List<Integer> laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog();
List<Integer> terapisRehabMedik = mapJabatanProfesiDao.findIdPegawaiByProfesiIn(Arrays.asList(TERAPI));
List<Integer> idsJenisProdukNonLogbook = getNilaiDataFixByTMT("listJenisProdukNonLogbook", tglAkhir);
@ -341,6 +342,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
List<Integer> idsPenunjangBukanAnestesi = getNilaiDataFixByTMT("pr_penunjang_nonanestesi", tglAkhir);
List<Integer> idsDokterBPJSffs = splitDataSettingDatafixed("dokterBPJSffs");
List<Integer> idsDokterPediatrikGD = getNilaiDataFixByTMT("pr_dokter_pediatrik_gd", tglAkhir);
List<Integer> idsDokterHematoOnko = getNilaiDataFixByTMT("pr_dokter_hematoonko_anak", tglAkhir);
List<Integer> idsDokterEmergic = getNilaiDataFixByTMT("pr_produk_emergic_anak", tglAkhir);
List<Integer> idsPerawat = getNilaiDataFixByTMT("pr_produk_perawat", tglAkhir);
List<Integer> listIdPegawaiRemunKelompokBudiRahmat = splitDataSettingDatafixed(
"listIdPegawaiRemunKelompokBudiRahmat");
List<Integer> idsMonitoringIntervensi = getNilaiDataFixByTMT("idMonitoringIntervensi", tglAkhir);
@ -350,11 +354,11 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
List<Integer> idsKepalaPaketFixedPay = getNilaiDataFixByTMT("idProdukKepalaPaketFixedPay", tglAkhir);
List<Integer> paketBukanFixedPay = getNilaiDataFixByTMT("produkPaketBukanFixedPay", tglAkhir);
List<Integer> idsKarcis = getNilaiDataFixByTMT("listKarcisIdProduk", tglAkhir);
if (drKkPatologiAnatomiList.contains(idPegawai)) {
if (KK_PATOLOGI_ANATOMI.equals(idKKDokter)) {
listDetailJenisProduk = idsRegDJPPenunjangPA;
} else if (pegawaiDao.getDokterByKelompokKerja(KK_PATOLOGI_KLINIK).contains(idPegawai)) {
} else if (KK_PATOLOGI_KLINIK.equals(idKKDokter)) {
listDetailJenisProduk = idsRegDJPPenunjangPK;
} else if (drKkRadiologi.contains(idPegawai)) {
} else if (KK_RADIOLOGI.equals(idKKDokter)) {
listDetailJenisProduk = idsRegDJPPenunjangRad;
} else {
listDetailJenisProduk = idsRegDJPMedisUtama;
@ -364,9 +368,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
listDetailJenisProdukException.removeAll(listDetailJenisProduk);
}
/*
* TMT KSM Umum mulai menggunakan pembatasan tindakan
* TMT Tarif baru tahun 2024
*/
Date tmtTindakanKSMUmum = new Date(1738342800000L);
Date tmtTarif2024 = new Date(1738342800000L);
/*
* Mendapatkan data mentah pelayanan pasien
*/
@ -409,7 +413,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
d.put("hargaJual", d.get("komponenTotalTarif"));
d.put("isTermasukProporsi", true);
double hargaJual = Double.parseDouble(d.get("hargaJual").toString());
if (drKsmUmumList.contains(idPegawai) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
if (KK_UMUM.equals(idKKDokter) && ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenRemunDokterUmumHD / 100, hargaJual, d);
d.put("hargaJasa", hargaJasa.getNilai());
} else if (terapisRehabMedik.contains(idPegawai)) {
@ -497,13 +501,13 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
d.put("hargaJasa", hargaJasa.getNilai());
if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")))
d.put("isTermasukProporsi", false);
} else if (drAnastesiList.contains(idPegawai) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
} else if (KK_ANESTESI.equals(idKKDokter) && DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenTindakan / 100, hargaJual, d);
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drAnastesiList.contains(idPegawai) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
} else if (KK_ANESTESI.equals(idKKDokter) && DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
RemunHargaJasa hargaJasa = hargaJasa(persenAnestesi / 100, hargaJual, d);
d.put("hargaJasa", hargaJasa.getNilai());
} else if (drKkGenetika.contains(idPegawai)
} else if (KK_GENETIKA.equals(idKKDokter)
&& idsLabGenetikaLuarRuangan.contains(Integer.parseInt(d.get("idProduk").toString()))
&& (date.before(new Date(1690822799000L)) || date.equals(new Date(1690822799000L)))) {
/*
@ -518,7 +522,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
d.put("hargaJasa", hargaJasa.getNilai());
if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")))
d.put("isTermasukProporsi", false);
} else if (drKkPatologiAnatomiList.contains(idPegawai)) {
} else if (KK_PATOLOGI_ANATOMI.equals(idKKDokter)) {
RemunHargaJasa hargaJasa = hargaJasa(persenRemunDokterPA / 100, hargaJual, d);
d.put("hargaJasa", hargaJasa.getNilai());
if (!DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")))
@ -590,7 +594,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
* pasien di luar dokter-dokter kk eria
*/
List<Map<String, Object>> rawDataBpjs2 = new ArrayList<>();
if (!drKkPediatrikGDList.contains(idPegawai)) {
if (!KK_PEDIATRIK_GD.equals(idKKDokter)) {
/*
* Dapatkan semua pendaftaran BPJS untuk visite di luar
* dokter-dokter kk eria
@ -651,7 +655,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
* hari per dokter per pasien kk eria
*/
List<Map<String, Object>> rawDataBpjs3 = new ArrayList<>();
if (drKkPediatrikGDList.contains(idPegawai)) {
if (KK_PEDIATRIK_GD.equals(idKKDokter)) {
/*
* Dapatkan semua pendaftaran BPJS untuk visite dokter-dokter kk
* eria
@ -718,7 +722,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
* diambil maksimal 2 kali per hari per pasien per dokter kk eria
*/
List<Map<String, Object>> rawDataBpjs4 = new ArrayList<>();
if (drKkPediatrikGDList.contains(idPegawai)) {
if (KK_PEDIATRIK_GD.equals(idKKDokter)) {
/*
* Dapatkan semua pendaftaran BPJS untuk monitoring hemodinamik
* gagal organ dokter-dokter kk eria
@ -795,7 +799,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
* 2 kali per hari per pasien per dokter kk perinatologi
*/
List<Map<String, Object>> rawDataBpjs5 = new ArrayList<>();
if (drKkPerinatologiList.contains(idPegawai)) {
if (KK_PERINATOLOGI.equals(idKKDokter)) {
/*
* Dapatkan semua pendaftaran BPJS untuk monitoring intervensi
* dokter-dokter kk perinatologi
@ -989,7 +993,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
/*
* Urutan alokasi bpjs sebagai urutan prioritas
*/
if (drKkPediatrikGDList.contains(idPegawai)) {
if (KK_PEDIATRIK_GD.equals(idKKDokter) && tglAwal.before(tmtTarif2024)) {
if (CommonUtil.isNotNullOrEmpty(next.get("kptl"))) {
if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk"))
|| (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk"))
@ -1028,15 +1032,49 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
}
}
} else if (drKkRadiologi.contains(idPegawai) && (BEDAH_SENTRAL.equals(next.get("idDepartemen"))
} else if (KK_PEDIATRIK_GD.equals(idKKDokter)
&& idsDokterPediatrikGD.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk eria tarif 2024
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (KK_RADIOLOGI.equals(idKKDokter) && (BEDAH_SENTRAL.equals(next.get("idDepartemen"))
|| CATHLAB.equals(next.get("idRuangan")))) {
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (drKsmUmumList.contains(idPegawai)
} else if (KK_UMUM.equals(idKKDokter)
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTindakanKSMUmum) || tglAwal.after(tmtTindakanKSMUmum))) {
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter ksm umum
* Aturan dokter ksm umum tarif 2024
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (KK_PERINATOLOGI.equals(idKKDokter)
&& idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk perinatologi tarif 2024
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (KK_HEMATO_ONKO.equals(idKKDokter)
&& idsDokterHematoOnko.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk hematologi dan onkologi anak tarif
* 2024
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (KK_EMERGIC.equals(idKKDokter)
&& idsDokterEmergic.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk emergensi rawat intensif anak tarif
* 2024
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
@ -1046,9 +1084,11 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
*/
if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) {
if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude
.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTindakanKSMUmum))) {
if (!idsPerawat.contains(Integer.parseInt(next.get("idProduk").toString()))
|| (KK_UMUM.equals(idKKDokter)
&& !idsDokterUmumExclude
.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTarif2024))) {
/*
* Dibatasi oleh daftar jenis tindakan tertentu
*/
@ -1075,9 +1115,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|| (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
&& !listDetailJenisProduk.contains(
Integer.parseInt(next.get("idDetailJenisProduk").toString()))))
&& IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai)
&& IGD.equals(next.get("idDepartemen")) && KK_UMUM.equals(idKKDokter)
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTindakanKSMUmum)) {
&& tglAwal.before(tmtTarif2024)) {
/*
* Aturan dokter ksm umum di igd
*/
@ -1087,15 +1127,16 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|| (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
&& !listDetailJenisProduk.contains(
Integer.parseInt(next.get("idDetailJenisProduk").toString()))))
&& drKkPerinatologiList.contains(idPegawai)
&& idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))) {
&& KK_PERINATOLOGI.equals(idKKDokter)
&& idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTarif2024)) {
/*
* Aturan dokter kk perinatologi dengan pembatasan
* tindakan tertentu
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (drAnastesiList.contains(idPegawai)) {
} else if (KK_ANESTESI.equals(idKKDokter)) {
if (idsPenunjangBukanAnestesi.contains(Integer.parseInt(next.get("idProduk").toString()))) {
/*
* Aturan dokter kk anestesi dengan pembatasan
@ -1116,9 +1157,11 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
/*
* Diluar pembatasan jenis produk
*/
if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude
.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTindakanKSMUmum))) {
if (!idsPerawat.contains(Integer.parseInt(next.get("idProduk").toString()))
|| (KK_UMUM.equals(idKKDokter)
&& !idsDokterUmumExclude
.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTarif2024))) {
if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
&& (idsRegDJPPenunjangPA
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))
@ -1145,7 +1188,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
* Alokasi bagian remunerasi berdasarkan target rupiah
* sesuai tanggal mulai berlaku
*/
if (drKkPediatrikGDList.contains(idPegawai)) {
if (KK_PEDIATRIK_GD.equals(idKKDokter) && tglAwal.before(tmtTarif2024)) {
if (CommonUtil.isNotNullOrEmpty(next.get("kptl"))) {
if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk"))
|| (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk"))
@ -1184,15 +1227,49 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
}
}
} else if (drKkRadiologi.contains(idPegawai) && (BEDAH_SENTRAL.equals(next.get("idDepartemen"))
} else if (KK_PEDIATRIK_GD.equals(idKKDokter)
&& idsDokterPediatrikGD.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk eria tarif 2024
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (KK_RADIOLOGI.equals(idKKDokter) && (BEDAH_SENTRAL.equals(next.get("idDepartemen"))
|| CATHLAB.equals(next.get("idRuangan")))) {
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (drKsmUmumList.contains(idPegawai)
} else if (KK_UMUM.equals(idKKDokter)
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTindakanKSMUmum) || tglAwal.after(tmtTindakanKSMUmum))) {
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter ksm umum
* Aturan dokter ksm umum tarif 2024
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (KK_PERINATOLOGI.equals(idKKDokter)
&& idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk perinatologi tarif 2024
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (KK_HEMATO_ONKO.equals(idKKDokter)
&& idsDokterHematoOnko.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk hematologi dan onkologi anak tarif
* 2024
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (KK_EMERGIC.equals(idKKDokter)
&& idsDokterEmergic.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk emergensi rawat intensif anak tarif
* 2024
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
@ -1202,9 +1279,11 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
*/
if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) {
if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude
.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTindakanKSMUmum))) {
if (!idsPerawat.contains(Integer.parseInt(next.get("idProduk").toString()))
|| (KK_UMUM.equals(idKKDokter)
&& !idsDokterUmumExclude
.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTarif2024))) {
/*
* Dibatasi oleh daftar jenis tindakan tertentu
*/
@ -1231,9 +1310,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|| (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
&& !listDetailJenisProduk.contains(
Integer.parseInt(next.get("idDetailJenisProduk").toString()))))
&& IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai)
&& IGD.equals(next.get("idDepartemen")) && KK_UMUM.equals(idKKDokter)
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTindakanKSMUmum)) {
&& tglAwal.before(tmtTarif2024)) {
/*
* Aturan dokter ksm umum di igd
*/
@ -1243,15 +1322,16 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|| (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
&& !listDetailJenisProduk.contains(
Integer.parseInt(next.get("idDetailJenisProduk").toString()))))
&& drKkPerinatologiList.contains(idPegawai)
&& idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))) {
&& KK_PERINATOLOGI.equals(idKKDokter)
&& idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTarif2024)) {
/*
* Aturan dokter kk perinatologi dengan pembatasan
* tindakan tertentu
*/
listPelayananRemun.add(next);
capaianRemun += Double.parseDouble(next.get("hargaJasa").toString());
} else if (drAnastesiList.contains(idPegawai)) {
} else if (KK_ANESTESI.equals(idKKDokter)) {
if (idsPenunjangBukanAnestesi.contains(Integer.parseInt(next.get("idProduk").toString()))) {
/*
* Aturan dokter kk anestesi dengan pembatasan
@ -1272,9 +1352,11 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
/*
* Diluar pembatasan jenis produk
*/
if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude
.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTindakanKSMUmum))) {
if (!idsPerawat.contains(Integer.parseInt(next.get("idProduk").toString()))
|| (KK_UMUM.equals(idKKDokter)
&& !idsDokterUmumExclude
.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTarif2024))) {
if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
&& (idsRegDJPPenunjangPA
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))
@ -1300,7 +1382,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
/*
* Alokasi untuk bagian ffs
*/
if (drKkPediatrikGDList.contains(idPegawai)) {
if (KK_PEDIATRIK_GD.equals(idKKDokter) && tglAwal.before(tmtTarif2024)) {
if (CommonUtil.isNotNullOrEmpty(next.get("kptl"))) {
if (CommonUtil.isNullOrEmpty(next.get("idJenisProduk"))
|| (CommonUtil.isNotNullOrEmpty(next.get("idJenisProduk"))
@ -1348,18 +1430,63 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
}
}
}
} else if (drKkRadiologi.contains(idPegawai) && (BEDAH_SENTRAL.equals(next.get("idDepartemen"))
} else if (KK_PEDIATRIK_GD.equals(idKKDokter)
&& idsDokterPediatrikGD.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk eria tarif 2024
*/
if (Boolean.parseBoolean(next.get("isJamKerja").toString())) {
listPelayananFfs.add(next);
} else {
listPelayananNonJknLuarJamKerja.add(next);
}
} else if (KK_RADIOLOGI.equals(idKKDokter) && (BEDAH_SENTRAL.equals(next.get("idDepartemen"))
|| CATHLAB.equals(next.get("idRuangan")))) {
if (Boolean.parseBoolean(next.get("isJamKerja").toString())) {
listPelayananFfs.add(next);
} else {
listPelayananNonJknLuarJamKerja.add(next);
}
} else if (drKsmUmumList.contains(idPegawai)
} else if (KK_UMUM.equals(idKKDokter)
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTindakanKSMUmum) || tglAwal.after(tmtTindakanKSMUmum))) {
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter ksm umum
* Aturan dokter ksm umum tarif 2024
*/
if (Boolean.parseBoolean(next.get("isJamKerja").toString())) {
listPelayananFfs.add(next);
} else {
listPelayananNonJknLuarJamKerja.add(next);
}
} else if (KK_PERINATOLOGI.equals(idKKDokter)
&& idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk perinatologi tarif 2024
*/
if (Boolean.parseBoolean(next.get("isJamKerja").toString())) {
listPelayananFfs.add(next);
} else {
listPelayananNonJknLuarJamKerja.add(next);
}
} else if (KK_HEMATO_ONKO.equals(idKKDokter)
&& idsDokterHematoOnko.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk hematologi dan onkologi tarif 2024
*/
if (Boolean.parseBoolean(next.get("isJamKerja").toString())) {
listPelayananFfs.add(next);
} else {
listPelayananNonJknLuarJamKerja.add(next);
}
} else if (KK_EMERGIC.equals(idKKDokter)
&& idsDokterEmergic.contains(Integer.parseInt(next.get("idProduk").toString()))
&& (tglAwal.equals(tmtTarif2024) || tglAwal.after(tmtTarif2024))) {
/*
* Aturan dokter kk emergensi rawat intensif anak tarif
* 2024
*/
if (Boolean.parseBoolean(next.get("isJamKerja").toString())) {
listPelayananFfs.add(next);
@ -1372,9 +1499,11 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
*/
if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk")) && listDetailJenisProduk
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) {
if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude
.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTindakanKSMUmum))) {
if (!idsPerawat.contains(Integer.parseInt(next.get("idProduk").toString()))
|| (KK_UMUM.equals(idKKDokter)
&& !idsDokterUmumExclude
.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTarif2024))) {
/*
* Dibatasi oleh daftar jenis tindakan tertentu
*/
@ -1407,9 +1536,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|| (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
&& !listDetailJenisProduk.contains(
Integer.parseInt(next.get("idDetailJenisProduk").toString()))))
&& IGD.equals(next.get("idDepartemen")) && drKsmUmumList.contains(idPegawai)
&& IGD.equals(next.get("idDepartemen")) && KK_UMUM.equals(idKKDokter)
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTindakanKSMUmum)) {
&& tglAwal.before(tmtTarif2024)) {
/*
* Aturan dokter ksm umum di igd
*/
@ -1422,8 +1551,9 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
|| (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
&& !listDetailJenisProduk.contains(
Integer.parseInt(next.get("idDetailJenisProduk").toString()))))
&& drKkPerinatologiList.contains(idPegawai)
&& idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))) {
&& KK_PERINATOLOGI.equals(idKKDokter)
&& idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTarif2024)) {
/*
* Aturan dokter kk perinatologi dengan pembatasan
* tindakan tertentu
@ -1433,7 +1563,7 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
} else {
listPelayananNonJknLuarJamKerja.add(next);
}
} else if (drAnastesiList.contains(idPegawai)) {
} else if (KK_ANESTESI.equals(idKKDokter)) {
if (idsPenunjangBukanAnestesi.contains(Integer.parseInt(next.get("idProduk").toString()))) {
/*
* Aturan dokter kk anestesi dengan pembatasan
@ -1460,9 +1590,11 @@ public class RemunerasiServiceImpl extends BaseVoServiceImpl implements Remunera
/*
* Diluar pembatasan jenis produk
*/
if (!drKsmUmumList.contains(idPegawai) || (!idsDokterUmumExclude
.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTindakanKSMUmum))) {
if (!idsPerawat.contains(Integer.parseInt(next.get("idProduk").toString()))
|| (KK_UMUM.equals(idKKDokter)
&& !idsDokterUmumExclude
.contains(Integer.parseInt(next.get("idProduk").toString()))
&& tglAwal.before(tmtTarif2024))) {
if (CommonUtil.isNotNullOrEmpty(next.get("idDetailJenisProduk"))
&& (idsRegDJPPenunjangPA
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))