Update PelayananPasienServiceImpl.java
Penerapan aturan surat edaran remunerasi baru dan aturan remunerasi kk eria
This commit is contained in:
parent
16ab9227ca
commit
b45c45652c
@ -28,6 +28,7 @@ import com.jasamedika.medifirst2000.constants.Master;
|
|||||||
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
|
import com.jasamedika.medifirst2000.converter.BaseConverterImpl;
|
||||||
import com.jasamedika.medifirst2000.dao.AntrianPasienDiPeriksaDao;
|
import com.jasamedika.medifirst2000.dao.AntrianPasienDiPeriksaDao;
|
||||||
import com.jasamedika.medifirst2000.dao.LogAccDao;
|
import com.jasamedika.medifirst2000.dao.LogAccDao;
|
||||||
|
import com.jasamedika.medifirst2000.dao.MapPegawaiLaboratRadiologiDao;
|
||||||
import com.jasamedika.medifirst2000.dao.PasienDaftarDao;
|
import com.jasamedika.medifirst2000.dao.PasienDaftarDao;
|
||||||
import com.jasamedika.medifirst2000.dao.PegawaiDao;
|
import com.jasamedika.medifirst2000.dao.PegawaiDao;
|
||||||
import com.jasamedika.medifirst2000.dao.PegawaiJadwalKerjaDao;
|
import com.jasamedika.medifirst2000.dao.PegawaiJadwalKerjaDao;
|
||||||
@ -90,6 +91,9 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
@Autowired
|
@Autowired
|
||||||
private PegawaiDao pegawaiDao;
|
private PegawaiDao pegawaiDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private MapPegawaiLaboratRadiologiDao mapPegawaiLaboratRadiologiDao;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Object> savePelayananPasien(PelayananPasienVO vo) {
|
public Map<String, Object> savePelayananPasien(PelayananPasienVO vo) {
|
||||||
Map<String, Object> result = new HashMap<String, Object>();
|
Map<String, Object> result = new HashMap<String, Object>();
|
||||||
@ -458,6 +462,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
Double persenKonsultasi = Double.parseDouble(GetSettingDataFixed("persenRemunKonsultasiDokter").toString());
|
Double persenKonsultasi = Double.parseDouble(GetSettingDataFixed("persenRemunKonsultasiDokter").toString());
|
||||||
Double persenVisite = Double.parseDouble(GetSettingDataFixed("persenRemunVisiteDokter").toString());
|
Double persenVisite = Double.parseDouble(GetSettingDataFixed("persenRemunVisiteDokter").toString());
|
||||||
Double persenTindakan = Double.parseDouble(GetSettingDataFixed("persenRemunTindakanDokter").toString());
|
Double persenTindakan = Double.parseDouble(GetSettingDataFixed("persenRemunTindakanDokter").toString());
|
||||||
|
Double persenTarifJasaBedah = Double.parseDouble(GetSettingDataFixed("persenTarifJasaBedah").toString());
|
||||||
/*
|
/*
|
||||||
* Mendapatkan data mentah pelayanan pasien
|
* Mendapatkan data mentah pelayanan pasien
|
||||||
*/
|
*/
|
||||||
@ -473,14 +478,26 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
*/
|
*/
|
||||||
for (Map<String, Object> d : listData)
|
for (Map<String, Object> d : listData)
|
||||||
if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||||
&& Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
|
&& Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien"))) {
|
||||||
d.put("hargaJasa", persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
double persenTarif = persenTarifJasaBedah / 100;
|
||||||
} else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
|
||||||
&& Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
double persenJasa = persenOperatorIBS / 100;
|
||||||
d.put("hargaJasa", persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
d.put("hargaJasa", persenJasa * persenTarif * Double.parseDouble(d.get("hargaJual").toString()));
|
||||||
} else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
||||||
&& Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
double persenJasa = persenAsistenIBS / 100;
|
||||||
d.put("hargaJasa", persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
d.put("hargaJasa", persenJasa * persenTarif * Double.parseDouble(d.get("hargaJual").toString()));
|
||||||
|
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
||||||
|
double persenJasa = persenAnestesiIBS / 100;
|
||||||
|
d.put("hargaJasa", persenJasa * persenTarif * Double.parseDouble(d.get("hargaJual").toString()));
|
||||||
|
}
|
||||||
|
} else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))) {
|
||||||
|
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
|
||||||
|
d.put("hargaJasa", persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||||
|
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
||||||
|
d.put("hargaJasa", persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||||
|
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
||||||
|
d.put("hargaJasa", persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||||
|
}
|
||||||
} else if (Master.Departemen.RADIOLOGI.equals(d.get("idDepartemen"))) {
|
} else if (Master.Departemen.RADIOLOGI.equals(d.get("idDepartemen"))) {
|
||||||
d.put("hargaJasa", persenRadiologi / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
d.put("hargaJasa", persenRadiologi / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||||
} else if (Master.Departemen.LABORATORIUM.equals(d.get("idDepartemen"))) {
|
} else if (Master.Departemen.LABORATORIUM.equals(d.get("idDepartemen"))) {
|
||||||
@ -496,12 +513,37 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
* Alokasi data diambil terlebih dahulu untuk kelompok BPJS, Jaminan
|
* Alokasi data diambil terlebih dahulu untuk kelompok BPJS, Jaminan
|
||||||
* Kemenkes, dan Jaminan Kesda
|
* Kemenkes
|
||||||
*/
|
*/
|
||||||
List<Map<String, Object>> listDataBpjs = new ArrayList<>();
|
List<Map<String, Object>> listDataBpjs = new ArrayList<>();
|
||||||
for (Map<String, Object> d : listData)
|
for (Map<String, Object> d : listData)
|
||||||
if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien")))
|
if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien")))
|
||||||
listDataBpjs.add(d);
|
listDataBpjs.add(d);
|
||||||
|
/*
|
||||||
|
* Filter tindakan operasi untuk pasien BPJS hanya diambil tarif
|
||||||
|
* tertinggi saja dalam satu siklus pelayanan
|
||||||
|
*/
|
||||||
|
List<Map<String, Object>> listRawDataBpjs = listDataBpjs.stream()
|
||||||
|
.filter(d -> Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen")))
|
||||||
|
.sorted(Comparator.comparing(o -> Double.parseDouble(o.get("hargaJual").toString()),
|
||||||
|
Comparator.reverseOrder()))
|
||||||
|
.sorted(Comparator.comparing(o -> o.get("idPasienDaftar").toString())).collect(Collectors.toList());
|
||||||
|
List<String> listIdPelayananPasien = new ArrayList<>();
|
||||||
|
List<String> listIdPasienDaftar = new ArrayList<>();
|
||||||
|
for (Map<String, Object> b : listRawDataBpjs)
|
||||||
|
if (!listIdPasienDaftar.contains(b.get("idPasienDaftar"))) {
|
||||||
|
listIdPasienDaftar.add(b.get("idPasienDaftar").toString());
|
||||||
|
listIdPelayananPasien.add(b.get("idPelayananPasien").toString());
|
||||||
|
}
|
||||||
|
List<Map<String, Object>> listDataBpjsNew = new ArrayList<>();
|
||||||
|
for (Map<String, Object> d : listDataBpjs) {
|
||||||
|
if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||||
|
&& listIdPelayananPasien.contains(d.get("idPelayananPasien").toString())) {
|
||||||
|
listDataBpjsNew.add(d);
|
||||||
|
} else {
|
||||||
|
listDataBpjsNew.add(d);
|
||||||
|
}
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
* Alokasi data diurutkan dulu untuk jam kerja. Asumsi jam kerja dokter
|
* Alokasi data diurutkan dulu untuk jam kerja. Asumsi jam kerja dokter
|
||||||
* nonshift
|
* nonshift
|
||||||
@ -565,7 +607,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
* Offer data yang sudah diurutkan dalam queue
|
* Offer data yang sudah diurutkan dalam queue
|
||||||
*/
|
*/
|
||||||
Queue<Map<String, Object>> queuePelayanan = new ArrayDeque<>();
|
Queue<Map<String, Object>> queuePelayanan = new ArrayDeque<>();
|
||||||
listDataBpjs.forEach(pelayanan -> {
|
listDataBpjsNew.forEach(pelayanan -> {
|
||||||
queuePelayanan.offer(pelayanan);
|
queuePelayanan.offer(pelayanan);
|
||||||
});
|
});
|
||||||
listDataJamKerja.forEach(pelayanan -> {
|
listDataJamKerja.forEach(pelayanan -> {
|
||||||
@ -574,6 +616,37 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
listDataLuarJamKerja.forEach(pelayanan -> {
|
listDataLuarJamKerja.forEach(pelayanan -> {
|
||||||
queuePelayanan.offer(pelayanan);
|
queuePelayanan.offer(pelayanan);
|
||||||
});
|
});
|
||||||
|
/*
|
||||||
|
* Persiapan filter logic remunerasi
|
||||||
|
*/
|
||||||
|
List<Integer> listDetailJenisProduk = new ArrayList<>();
|
||||||
|
List<Integer> listDetailJenisProdukException = new ArrayList<>();
|
||||||
|
List<Integer> drKkPediatrikGDList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PEDIATRIK_GD);
|
||||||
|
List<Integer> drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM);
|
||||||
|
List<Integer> drKkPerinatologiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PERINATOLOGI);
|
||||||
|
List<Integer> laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog();
|
||||||
|
List<Integer> idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk");
|
||||||
|
List<Integer> idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama");
|
||||||
|
List<Integer> idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa");
|
||||||
|
List<Integer> idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk");
|
||||||
|
List<Integer> idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi");
|
||||||
|
List<Integer> idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd");
|
||||||
|
List<Integer> idsDokterPerinatologi = splitDataSettingDatafixed("pr_dokter_perinatologi");
|
||||||
|
List<Integer> idsDokterBPJSffs = splitDataSettingDatafixed("dokterBPJSffs");
|
||||||
|
List<Integer> idsDokterPediatrikGD = splitDataSettingDatafixed("pr_dokter_pediatrik_gd");
|
||||||
|
if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_ANATOMI).contains(idPegawai)) {
|
||||||
|
listDetailJenisProduk = idsRegDJPPenunjangPA;
|
||||||
|
} else if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PATOLOGI_KLINIK).contains(idPegawai)) {
|
||||||
|
listDetailJenisProduk = idsRegDJPPenunjangPK;
|
||||||
|
} else if (pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_RADIOLOGI).contains(idPegawai)) {
|
||||||
|
listDetailJenisProduk = idsRegDJPPenunjangRad;
|
||||||
|
} else {
|
||||||
|
listDetailJenisProduk = idsRegDJPMedisUtama;
|
||||||
|
}
|
||||||
|
if (laboranRadiologList.contains(idPegawai)) {
|
||||||
|
listDetailJenisProdukException = idsRegDJPAdminNonPK;
|
||||||
|
listDetailJenisProdukException.removeAll(listDetailJenisProduk);
|
||||||
|
}
|
||||||
/*
|
/*
|
||||||
* Memisahkan data diurutkan menjadi logbook remun dan logbook ffs
|
* Memisahkan data diurutkan menjadi logbook remun dan logbook ffs
|
||||||
*/
|
*/
|
||||||
@ -582,16 +655,122 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
Double capaianRemun = 0.0;
|
Double capaianRemun = 0.0;
|
||||||
if (pegawaiDao.getPegawaiByKategoryPegawai(Arrays.asList(Master.KategoryPegawai.DOKTER_LUAR))
|
if (pegawaiDao.getPegawaiByKategoryPegawai(Arrays.asList(Master.KategoryPegawai.DOKTER_LUAR))
|
||||||
.contains(idPegawai)) {
|
.contains(idPegawai)) {
|
||||||
for (Map<String, Object> next = queuePelayanan.poll(); next != null; next = queuePelayanan.poll())
|
for (Map<String, Object> next = queuePelayanan.poll(); next != null; next = queuePelayanan.poll()) {
|
||||||
listPelayananFfs.add(next);
|
if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(next.get("idKelompokPasien"))
|
||||||
|
&& idsDokterBPJSffs.contains(idPegawai)) {
|
||||||
|
listPelayananFfs.add(next);
|
||||||
|
} else {
|
||||||
|
listPelayananFfs.add(next);
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
for (Map<String, Object> next = queuePelayanan.poll(); next != null; next = queuePelayanan.poll())
|
for (Map<String, Object> next = queuePelayanan.poll(); next != null; next = queuePelayanan.poll())
|
||||||
if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(next.get("idKelompokPasien"))) {
|
if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(next.get("idKelompokPasien"))) {
|
||||||
listPelayananRemun.add(next);
|
if (drKkPediatrikGDList.contains(idPegawai)) {
|
||||||
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
if (idsDokterPediatrikGD.contains(next.get("idProduk"))) {
|
||||||
|
listPelayananRemun.add(next);
|
||||||
|
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
||||||
|
} else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP)
|
||||||
|
.contains(Integer.parseInt(next.get("idDepartemen").toString()))
|
||||||
|
&& Master.GolonganProduk.VISIT.equals(next.get("idGolonganProduk"))
|
||||||
|
&& idPegawai.equals(next.get("idDPJP"))) {
|
||||||
|
listPelayananRemun.add(next);
|
||||||
|
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
||||||
|
} else {
|
||||||
|
listPelayananRemun.add(next);
|
||||||
|
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
||||||
|
}
|
||||||
|
} else if (!drKkPediatrikGDList.contains(idPegawai)) {
|
||||||
|
if (listDetailJenisProduk.contains(next.get("idDetailJenisProduk"))) {
|
||||||
|
if (idsRegDJPPenunjangPA.contains(next.get("idDetailJenisProduk"))
|
||||||
|
|| idsRegDJPPenunjangPK.contains(next.get("idDetailJenisProduk"))) {
|
||||||
|
listPelayananRemun.add(next);
|
||||||
|
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
||||||
|
} else {
|
||||||
|
listPelayananRemun.add(next);
|
||||||
|
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
||||||
|
}
|
||||||
|
} else if (!listDetailJenisProduk
|
||||||
|
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))
|
||||||
|
&& next.get("idDepartemen").equals(Master.Departemen.IGD)
|
||||||
|
&& drKsmUmumList.contains(idPegawai)
|
||||||
|
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))) {
|
||||||
|
listPelayananRemun.add(next);
|
||||||
|
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
||||||
|
} else if (!listDetailJenisProduk
|
||||||
|
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))
|
||||||
|
&& drKkPerinatologiList.contains(idPegawai)
|
||||||
|
&& idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))) {
|
||||||
|
listPelayananRemun.add(next);
|
||||||
|
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
||||||
|
} else if (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException)
|
||||||
|
&& listDetailJenisProdukException
|
||||||
|
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) {
|
||||||
|
if (idsRegDJPPenunjangPA
|
||||||
|
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))
|
||||||
|
|| idsRegDJPPenunjangPK
|
||||||
|
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) {
|
||||||
|
listPelayananRemun.add(next);
|
||||||
|
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
||||||
|
} else {
|
||||||
|
listPelayananRemun.add(next);
|
||||||
|
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
} else if (capaianRemun < targetRemun && (date.equals(dateLine) || date.after(dateLine))) {
|
} else if (capaianRemun < targetRemun && (date.equals(dateLine) || date.after(dateLine))) {
|
||||||
listPelayananRemun.add(next);
|
if (drKkPediatrikGDList.contains(idPegawai)) {
|
||||||
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
if (idsDokterPediatrikGD.contains(next.get("idProduk"))) {
|
||||||
|
listPelayananRemun.add(next);
|
||||||
|
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
||||||
|
} else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP)
|
||||||
|
.contains(Integer.parseInt(next.get("idDepartemen").toString()))
|
||||||
|
&& Master.GolonganProduk.VISIT.equals(next.get("idGolonganProduk"))
|
||||||
|
&& idPegawai.equals(next.get("idDPJP"))) {
|
||||||
|
listPelayananRemun.add(next);
|
||||||
|
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
||||||
|
} else {
|
||||||
|
listPelayananRemun.add(next);
|
||||||
|
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
||||||
|
}
|
||||||
|
} else if (!drKkPediatrikGDList.contains(idPegawai)) {
|
||||||
|
if (listDetailJenisProduk.contains(next.get("idDetailJenisProduk"))) {
|
||||||
|
if (idsRegDJPPenunjangPA.contains(next.get("idDetailJenisProduk"))
|
||||||
|
|| idsRegDJPPenunjangPK.contains(next.get("idDetailJenisProduk"))) {
|
||||||
|
listPelayananRemun.add(next);
|
||||||
|
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
||||||
|
} else {
|
||||||
|
listPelayananRemun.add(next);
|
||||||
|
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
||||||
|
}
|
||||||
|
} else if (!listDetailJenisProduk
|
||||||
|
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))
|
||||||
|
&& next.get("idDepartemen").equals(Master.Departemen.IGD)
|
||||||
|
&& drKsmUmumList.contains(idPegawai)
|
||||||
|
&& idsDokterUmumIGD.contains(Integer.parseInt(next.get("idProduk").toString()))) {
|
||||||
|
listPelayananRemun.add(next);
|
||||||
|
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
||||||
|
} else if (!listDetailJenisProduk
|
||||||
|
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))
|
||||||
|
&& drKkPerinatologiList.contains(idPegawai)
|
||||||
|
&& idsDokterPerinatologi.contains(Integer.parseInt(next.get("idProduk").toString()))) {
|
||||||
|
listPelayananRemun.add(next);
|
||||||
|
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
||||||
|
} else if (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException)
|
||||||
|
&& listDetailJenisProdukException
|
||||||
|
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) {
|
||||||
|
if (idsRegDJPPenunjangPA
|
||||||
|
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))
|
||||||
|
|| idsRegDJPPenunjangPK
|
||||||
|
.contains(Integer.parseInt(next.get("idDetailJenisProduk").toString()))) {
|
||||||
|
listPelayananRemun.add(next);
|
||||||
|
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
||||||
|
} else {
|
||||||
|
listPelayananRemun.add(next);
|
||||||
|
capaianRemun += Double.valueOf(next.get("hargaJasa").toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
listPelayananFfs.add(next);
|
listPelayananFfs.add(next);
|
||||||
}
|
}
|
||||||
@ -648,22 +827,38 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
Double persenKonsultasi = Double.parseDouble(GetSettingDataFixed("persenRemunKonsultasiDokter").toString());
|
Double persenKonsultasi = Double.parseDouble(GetSettingDataFixed("persenRemunKonsultasiDokter").toString());
|
||||||
Double persenVisite = Double.parseDouble(GetSettingDataFixed("persenRemunVisiteDokter").toString());
|
Double persenVisite = Double.parseDouble(GetSettingDataFixed("persenRemunVisiteDokter").toString());
|
||||||
Double persenTindakan = Double.parseDouble(GetSettingDataFixed("persenRemunTindakanDokter").toString());
|
Double persenTindakan = Double.parseDouble(GetSettingDataFixed("persenRemunTindakanDokter").toString());
|
||||||
|
Double persenTarifJasaBedah = Double.parseDouble(GetSettingDataFixed("persenTarifJasaBedah").toString());
|
||||||
/*
|
/*
|
||||||
* Mapping persentase jasa remunerasi
|
* Mapping persentase jasa remunerasi
|
||||||
*/
|
*/
|
||||||
for (Map<String, Object> d : listData) {
|
for (Map<String, Object> d : listData) {
|
||||||
if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
||||||
&& Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
|
&& Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(d.get("idKelompokPasien"))) {
|
||||||
d.put("persenJasa", persenOperatorIBS.toString() + "%");
|
double persenTarif = persenTarifJasaBedah / 100;
|
||||||
d.put("hargaJasa", persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
|
||||||
} else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
double persenJasa = persenOperatorIBS / 100;
|
||||||
&& Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
d.put("persenJasa", persenOperatorIBS.toString() + "%");
|
||||||
d.put("persenJasa", persenAsistenIBS.toString() + "%");
|
d.put("hargaJasa", persenJasa * persenTarif * Double.parseDouble(d.get("hargaJual").toString()));
|
||||||
d.put("hargaJasa", persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
||||||
} else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
|
double persenJasa = persenAsistenIBS / 100;
|
||||||
&& Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
d.put("persenJasa", persenAsistenIBS.toString() + "%");
|
||||||
d.put("persenJasa", persenAnestesiIBS.toString() + "%");
|
d.put("hargaJasa", persenJasa * persenTarif * Double.parseDouble(d.get("hargaJual").toString()));
|
||||||
d.put("hargaJasa", persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
||||||
|
double persenJasa = persenAnestesiIBS / 100;
|
||||||
|
d.put("persenJasa", persenAnestesiIBS.toString() + "%");
|
||||||
|
d.put("hargaJasa", persenJasa * persenTarif * Double.parseDouble(d.get("hargaJual").toString()));
|
||||||
|
}
|
||||||
|
} else if (Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))) {
|
||||||
|
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
|
||||||
|
d.put("persenJasa", persenOperatorIBS.toString() + "%");
|
||||||
|
d.put("hargaJasa", persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||||
|
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
||||||
|
d.put("persenJasa", persenAsistenIBS.toString() + "%");
|
||||||
|
d.put("hargaJasa", persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||||
|
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
||||||
|
d.put("persenJasa", persenAnestesiIBS.toString() + "%");
|
||||||
|
d.put("hargaJasa", persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||||
|
}
|
||||||
} else if (Master.Departemen.RADIOLOGI.equals(d.get("idDepartemen"))) {
|
} else if (Master.Departemen.RADIOLOGI.equals(d.get("idDepartemen"))) {
|
||||||
d.put("persenJasa", persenRadiologi.toString() + "%");
|
d.put("persenJasa", persenRadiologi.toString() + "%");
|
||||||
d.put("hargaJasa", persenRadiologi / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
d.put("hargaJasa", persenRadiologi / 100 * Double.parseDouble(d.get("hargaJual").toString()));
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user