Update PelayananPasienServiceImpl.java

Pencabutan mekanisme proporsi persentase remunerasi dokter untuk operasi ke-2 dst untuk pasien non-jkn
This commit is contained in:
Salman Manoe 2023-07-20 10:43:21 +07:00
parent 00aa7ed6e7
commit 5f1c9b3558

View File

@ -846,187 +846,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
} else {
rawDataBpjs5.addAll(rawDataBpjs4);
}
/*
* Dapatkan semua pendaftaran non-jkn
*/
List<Map<String, Object>> listEpisode = new ArrayList<>();
for (Map<String, Object> d : listData) {
if ((CommonUtil.isNullOrEmpty(d.get("idKelompokPasien"))
|| (CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
&& !Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS)
.contains(Integer.parseInt(d.get("idKelompokPasien").toString()))))
&& Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))) {
boolean existEpisode = false;
for (Map<String, Object> e : listEpisode)
if (e.get("id").toString().equals(d.get("idPasienDaftar"))
&& Integer.valueOf(e.get("idProduk").toString()).equals(d.get("idProduk")))
existEpisode = true;
if (!existEpisode) {
Map<String, Object> episode = new HashMap<>();
episode.put("id", d.get("idPasienDaftar"));
episode.put("idProduk", d.get("idProduk"));
episode.put("count", 1);
listEpisode.add(episode);
}
}
}
/*
* Filter tindakan operasi non-jkn, persen jasa tereduksi seiring
* banyaknya operasi yang dilakukan di satu episode pasien yang sama
*/
for (Map<String, Object> d : listData) {
for (Map<String, Object> e : listEpisode) {
if ((CommonUtil.isNullOrEmpty(d.get("idKelompokPasien"))
|| (CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
&& !Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS)
.contains(Integer.parseInt(d.get("idKelompokPasien").toString()))))
&& Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
&& d.get("idPasienDaftar").toString().equals(e.get("id"))
&& Integer.valueOf(d.get("idProduk").toString()).equals(e.get("idProduk"))) {
if (e.get("count").equals(1)) {
/*
* Mendapatkan 100% dari tarif
*/
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 {
d.put("hargaJasa",
persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
}
int count = Integer.parseInt(e.get("count").toString());
e.put("count", ++count);
break;
} else if (e.get("count").equals(2)) {
/*
* Mendapatkan 50% dari tarif
*/
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.5 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.5 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.5 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else {
d.put("hargaJasa",
0.5 * persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
}
int count = Integer.parseInt(e.get("count").toString());
e.put("count", ++count);
break;
} else if (e.get("count").equals(3)) {
/*
* Mendapatkan 40% dari tarif
*/
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.4 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.4 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.4 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else {
d.put("hargaJasa",
0.4 * persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
}
int count = Integer.parseInt(e.get("count").toString());
e.put("count", ++count);
break;
} else if (e.get("count").equals(4)) {
/*
* Mendapatkan 30% dari tarif
*/
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.3 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.3 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.3 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else {
d.put("hargaJasa",
0.3 * persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
}
int count = Integer.parseInt(e.get("count").toString());
e.put("count", ++count);
break;
} else if (e.get("count").equals(5)) {
/*
* Mendapatkan 20% dari tarif
*/
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.2 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.2 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.2 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else {
d.put("hargaJasa",
0.2 * persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
}
int count = Integer.parseInt(e.get("count").toString());
e.put("count", ++count);
break;
} else if (e.get("count").equals(6)) {
/*
* Mendapatkan 10% dari tarif
*/
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.1 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.1 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.1 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else {
d.put("hargaJasa",
0.1 * persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
}
int count = Integer.parseInt(e.get("count").toString());
e.put("count", ++count);
break;
} else {
/*
* Mendapatkan 0% dari tarif
*/
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.0 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.0 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.0 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else {
d.put("hargaJasa",
0.0 * persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
}
int count = Integer.parseInt(e.get("count").toString());
e.put("count", ++count);
break;
}
}
}
}
/*
* Alokasi data diurutkan dulu untuk jam kerja. Asumsi jam kerja dokter
* nonshift
@ -1895,187 +1714,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
d.put("hargaJasa", persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
}
}
/*
* Dapatkan semua pendaftaran non-jkn
*/
List<Map<String, Object>> listEpisode = new ArrayList<>();
for (Map<String, Object> d : listData) {
if ((CommonUtil.isNullOrEmpty(d.get("idKelompokPasien"))
|| (CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
&& !Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS)
.contains(Integer.parseInt(d.get("idKelompokPasien").toString()))))
&& Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))) {
boolean existEpisode = false;
for (Map<String, Object> e : listEpisode)
if (e.get("id").toString().equals(d.get("idPasienDaftar"))
&& Integer.valueOf(e.get("idProduk").toString()).equals(d.get("idProduk")))
existEpisode = true;
if (!existEpisode) {
Map<String, Object> episode = new HashMap<>();
episode.put("id", d.get("idPasienDaftar"));
episode.put("idProduk", d.get("idProduk"));
episode.put("count", 1);
listEpisode.add(episode);
}
}
}
/*
* Filter tindakan operasi non-jkn, persen jasa tereduksi seiring
* banyaknya operasi yang dilakukan di satu episode pasien yang sama
*/
for (Map<String, Object> d : listData) {
for (Map<String, Object> e : listEpisode) {
if ((CommonUtil.isNullOrEmpty(d.get("idKelompokPasien"))
|| (CommonUtil.isNotNullOrEmpty(d.get("idKelompokPasien"))
&& !Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS)
.contains(Integer.parseInt(d.get("idKelompokPasien").toString()))))
&& Master.Departemen.BEDAH_SENTRAL.equals(d.get("idDepartemen"))
&& d.get("idPasienDaftar").toString().equals(e.get("id"))
&& Integer.valueOf(d.get("idProduk").toString()).equals(e.get("idProduk"))) {
if (e.get("count").equals(1)) {
/*
* Mendapatkan 100% dari tarif
*/
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 {
d.put("hargaJasa",
persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
}
int count = Integer.parseInt(e.get("count").toString());
e.put("count", ++count);
break;
} else if (e.get("count").equals(2)) {
/*
* Mendapatkan 50% dari tarif
*/
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.5 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.5 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.5 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else {
d.put("hargaJasa",
0.5 * persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
}
int count = Integer.parseInt(e.get("count").toString());
e.put("count", ++count);
break;
} else if (e.get("count").equals(3)) {
/*
* Mendapatkan 40% dari tarif
*/
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.4 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.4 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.4 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else {
d.put("hargaJasa",
0.4 * persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
}
int count = Integer.parseInt(e.get("count").toString());
e.put("count", ++count);
break;
} else if (e.get("count").equals(4)) {
/*
* Mendapatkan 30% dari tarif
*/
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.3 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.3 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.3 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else {
d.put("hargaJasa",
0.3 * persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
}
int count = Integer.parseInt(e.get("count").toString());
e.put("count", ++count);
break;
} else if (e.get("count").equals(5)) {
/*
* Mendapatkan 20% dari tarif
*/
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.2 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.2 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.2 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else {
d.put("hargaJasa",
0.2 * persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
}
int count = Integer.parseInt(e.get("count").toString());
e.put("count", ++count);
break;
} else if (e.get("count").equals(6)) {
/*
* Mendapatkan 10% dari tarif
*/
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.1 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.1 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.1 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else {
d.put("hargaJasa",
0.1 * persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
}
int count = Integer.parseInt(e.get("count").toString());
e.put("count", ++count);
break;
} else {
/*
* Mendapatkan 0% dari tarif
*/
if (Master.JenisPetugasPelaksana.DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.0 * persenOperatorIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.0 * persenAsistenIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else if (Master.JenisPetugasPelaksana.DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
d.put("hargaJasa",
0.0 * persenAnestesiIBS / 100 * Double.parseDouble(d.get("hargaJual").toString()));
} else {
d.put("hargaJasa",
0.0 * persenTindakan / 100 * Double.parseDouble(d.get("hargaJual").toString()));
}
int count = Integer.parseInt(e.get("count").toString());
e.put("count", ++count);
break;
}
}
}
}
/*
* Populate data filter
*/