Update service pelayanan pasien
Pemasangan filter pengelompokkan tanggal pelayanan
This commit is contained in:
parent
e19c4f9f2f
commit
572faafc5a
@ -201,7 +201,8 @@ public interface PelayananPasienDao extends PagingAndSortingRepository<Pelayanan
|
|||||||
+ "kp.id as idKelompokPasien,kp.kelompokPasien as kelompokPasien,"
|
+ "kp.id as idKelompokPasien,kp.kelompokPasien as kelompokPasien,"
|
||||||
+ "kls.id as idKelas,kls.namaKelas as namaKelas,"
|
+ "kls.id as idKelas,kls.namaKelas as namaKelas,"
|
||||||
+ "ppp.noRec as idPelayananPasienPetugas,ppp.ObjectPegawaiId as idPegawai,"
|
+ "ppp.noRec as idPelayananPasienPetugas,ppp.ObjectPegawaiId as idPegawai,"
|
||||||
+ "pp.noRec as idPelayananPasien,pp.hargaJual as hargaJual,pp.tglPelayanan as tglPelayanan,"
|
+ "pp.noRec as idPelayananPasien,pp.hargaJual as hargaJual,pp.jumlah as jumlah,"
|
||||||
|
+ "pp.tglPelayanan as tglPelayanan,to_char(pp.tglPelayanan,'yyyy-MM-dd') as tanggal,"
|
||||||
+ "apd.noRec as idAntrianPasienDiperiksa,apd.pegawaiId as idDPJP," + "ru.departemenId as idDepartemen,"
|
+ "apd.noRec as idAntrianPasienDiperiksa,apd.pegawaiId as idDPJP," + "ru.departemenId as idDepartemen,"
|
||||||
+ "pd.noRec as idPasienDaftar) " + "from PelayananPasienPetugas ppp " + "inner join ppp.pelayananPasien pp "
|
+ "pd.noRec as idPasienDaftar) " + "from PelayananPasienPetugas ppp " + "inner join ppp.pelayananPasien pp "
|
||||||
+ "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd " + "left join pp.produk pr "
|
+ "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd " + "left join pp.produk pr "
|
||||||
|
|||||||
@ -28,9 +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.PegawaiJadwalKerjaDao;
|
import com.jasamedika.medifirst2000.dao.PegawaiJadwalKerjaDao;
|
||||||
import com.jasamedika.medifirst2000.dao.PelayananPasienDao;
|
import com.jasamedika.medifirst2000.dao.PelayananPasienDao;
|
||||||
import com.jasamedika.medifirst2000.dao.StrukPelayananDao;
|
import com.jasamedika.medifirst2000.dao.StrukPelayananDao;
|
||||||
@ -65,12 +63,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
@Autowired
|
@Autowired
|
||||||
private BaseConverterImpl<ProdukVO, Produk> produkConverter;
|
private BaseConverterImpl<ProdukVO, Produk> produkConverter;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private PegawaiDao pegawaiDao;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private MapPegawaiLaboratRadiologiDao mapPegawaiLaboratRadiologiDao;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private PasienDaftarDao pasienDaftarDao;
|
private PasienDaftarDao pasienDaftarDao;
|
||||||
|
|
||||||
@ -544,180 +536,134 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, Object>> logbookRemunTarifDokter(Integer idPegawai, String bulan) {
|
public List<Map<String, Object>> logbookRemunTarifDokter(Integer idPegawai, String bulan) {
|
||||||
|
List<Map<String, Object>> result = new ArrayList<>();
|
||||||
|
List<Map<String, Object>> dataTanggal = new ArrayList<>();
|
||||||
|
List<Integer> listIdProduk = new ArrayList<>();
|
||||||
|
List<Integer> listIdKelompokPasien = new ArrayList<>();
|
||||||
|
List<String> listTanggal = new ArrayList<>();
|
||||||
Map<String, List<Map<String, Object>>> remunFfs = this.splitRemunFfs(idPegawai, bulan);
|
Map<String, List<Map<String, Object>>> remunFfs = this.splitRemunFfs(idPegawai, bulan);
|
||||||
List<Map<String, Object>> listData = remunFfs.get("remun");
|
List<Map<String, Object>> listData = remunFfs.get("remun");
|
||||||
/*
|
listData.forEach(d -> {
|
||||||
* Dokter luar tidak mendapatkan hak remunerasi
|
if (!listIdProduk.contains(Integer.valueOf(d.get("idProduk").toString())))
|
||||||
*/
|
listIdProduk.add(Integer.valueOf(d.get("idProduk").toString()));
|
||||||
if (pegawaiDao.getPegawaiByKategoryPegawai(Arrays.asList(Master.KategoryPegawai.DOKTER_LUAR))
|
if (!listIdKelompokPasien.contains(Integer.valueOf(d.get("idKelompokPasien").toString())))
|
||||||
.contains(idPegawai)) {
|
listIdKelompokPasien.add(Integer.valueOf(d.get("idKelompokPasien").toString()));
|
||||||
return new ArrayList<>();
|
if (!listTanggal.contains(d.get("tanggal").toString()))
|
||||||
}
|
listTanggal.add(d.get("tanggal").toString());
|
||||||
List<Map<String, Object>> rawResult = new ArrayList<>();
|
});
|
||||||
|
for (Integer idProduk : listIdProduk) {
|
||||||
List<Integer> drKsmUmumList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_UMUM);
|
for (Integer idKelompokPasien : listIdKelompokPasien) {
|
||||||
List<Integer> drKkPediatrikGDList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PEDIATRIK_GD);
|
for (String tanggal : listTanggal) {
|
||||||
List<Integer> drKkPerinatologiList = pegawaiDao.getDokterByKelompokKerja(Master.SubUnitKerja.KK_PERINATOLOGI);
|
Map<String, Object> mapData = new HashMap<>();
|
||||||
List<Integer> laboranRadiologList = mapPegawaiLaboratRadiologiDao.findPegawaiLaboranRadiolog();
|
double jumlah = 0.0;
|
||||||
|
int dataHitungKe = 0;
|
||||||
List<Integer> idsDokterUmumIGD = splitDataSettingDatafixed("pr_dokter_umum_igd");
|
for (Map<String, Object> map : listData) {
|
||||||
List<Integer> idsDokterPediatrikGD = splitDataSettingDatafixed("pr_dokter_pediatrik_gd");
|
if (Integer.parseInt(map.get("idProduk").toString()) == idProduk
|
||||||
List<Integer> idsDokterPerinatologi = splitDataSettingDatafixed("pr_dokter_perinatologi");
|
&& Integer.parseInt(map.get("idKelompokPasien").toString()) == idKelompokPasien
|
||||||
|
&& map.get("tanggal").toString().equals(tanggal)) {
|
||||||
List<Integer> listDetailJenisProduk = new ArrayList<>();
|
jumlah += Double.parseDouble(map.get("jumlah").toString());
|
||||||
List<Integer> idsRegDJPMedisUtama = splitDataSettingDatafixed("medis_utama");
|
dataHitungKe++;
|
||||||
List<Integer> idsRegDJPPenunjangPA = splitDataSettingDatafixed("penunjang_pa");
|
if (dataHitungKe == 1)
|
||||||
List<Integer> idsRegDJPPenunjangPK = splitDataSettingDatafixed("penunjang_pk");
|
mapData.putAll(map);
|
||||||
List<Integer> idsRegDJPPenunjangRad = splitDataSettingDatafixed("penunjang_radiologi");
|
|
||||||
List<Integer> idsRegDJPAdminNonPK = splitDataSettingDatafixed("admin_nonpk");
|
|
||||||
{
|
|
||||||
/*
|
|
||||||
* Daftar detail jenis produk yang boleh masuk remunerasi
|
|
||||||
*/
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
List<Integer> listDetailJenisProdukException = new ArrayList<>();
|
|
||||||
if (laboranRadiologList.contains(idPegawai)) {
|
|
||||||
listDetailJenisProdukException = idsRegDJPAdminNonPK;
|
|
||||||
listDetailJenisProdukException.removeAll(listDetailJenisProduk);
|
|
||||||
}
|
|
||||||
if (CommonUtil.isNotNullOrEmpty(listData)) {
|
|
||||||
for (Map<String, Object> map : listData) {
|
|
||||||
if (drKkPediatrikGDList.contains(map.get("idPegawai"))) {
|
|
||||||
if (idsDokterPediatrikGD.contains(map.get("idProduk"))) {
|
|
||||||
/*
|
|
||||||
* Layanan dokter pediatrik gawat darurat tertentu
|
|
||||||
*/
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN)
|
|
||||||
.contains(Integer.parseInt(map.get("idDepartemen").toString()))) {
|
|
||||||
/*
|
|
||||||
* Layanan rawat jalan pediatrik gawat darurat
|
|
||||||
*/
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP)
|
|
||||||
.contains(Integer.parseInt(map.get("idDepartemen").toString()))) {
|
|
||||||
if (map.get("namaProduk").toString().toLowerCase().contains(Master.VISIT)
|
|
||||||
&& map.get("idPegawai").toString().equals(map.get("idDPJP"))) {
|
|
||||||
/*
|
|
||||||
* Layanan rawat inap pediatrik gawat darurat hanya
|
|
||||||
* untuk visit
|
|
||||||
*/
|
|
||||||
rawResult.add(map);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else if (!drKkPediatrikGDList.contains(map.get("idPegawai"))) {
|
if (CommonUtil.isNotNullOrEmpty(mapData.get("jumlah"))) {
|
||||||
if (listDetailJenisProduk.contains(Integer.parseInt(map.get("idDetailJenisProduk").toString()))) {
|
mapData.put("jumlah", jumlah);
|
||||||
if (idsRegDJPPenunjangPA.contains(Integer.parseInt(map.get("idDetailJenisProduk").toString()))
|
dataTanggal.add(mapData);
|
||||||
|| idsRegDJPPenunjangPK
|
|
||||||
.contains(Integer.parseInt(map.get("idDetailJenisProduk").toString()))) {
|
|
||||||
/*
|
|
||||||
* Layanan detail jenis tertentu untuk di patologi
|
|
||||||
* anatomi dan patologi klinik
|
|
||||||
*/
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP)
|
|
||||||
.contains(Integer.parseInt(map.get("idDepartemen").toString()))) {
|
|
||||||
/*
|
|
||||||
* Layanan detail jenis produk tertentu di rawat
|
|
||||||
* inap
|
|
||||||
*/
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN)
|
|
||||||
.contains(Integer.parseInt(map.get("idDepartemen").toString()))) {
|
|
||||||
/*
|
|
||||||
* Layanan detail jenis produk tertentu di rawat
|
|
||||||
* jalan
|
|
||||||
*/
|
|
||||||
rawResult.add(map);
|
|
||||||
}
|
|
||||||
} else if (!listDetailJenisProduk
|
|
||||||
.contains(Integer.parseInt(map.get("idDetailJenisProduk").toString()))
|
|
||||||
&& map.get("idDepartemen").equals(Master.Departemen.IGD)
|
|
||||||
&& drKsmUmumList.contains(idPegawai)
|
|
||||||
&& idsDokterUmumIGD.contains(Integer.parseInt(map.get("idProduk").toString()))) {
|
|
||||||
if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP)
|
|
||||||
.contains(Integer.parseInt(map.get("idDepartemen").toString()))) {
|
|
||||||
/*
|
|
||||||
* Layanan detail jenis produk tertentu dokter umum
|
|
||||||
* di rawat inap
|
|
||||||
*/
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN)
|
|
||||||
.contains(Integer.parseInt(map.get("idDepartemen").toString()))) {
|
|
||||||
/*
|
|
||||||
* Layanan detail jenis produk tertentu dokter umum
|
|
||||||
* di rawat jalan
|
|
||||||
*/
|
|
||||||
rawResult.add(map);
|
|
||||||
}
|
|
||||||
} else if (!listDetailJenisProduk
|
|
||||||
.contains(Integer.parseInt(map.get("idDetailJenisProduk").toString()))
|
|
||||||
&& drKkPerinatologiList.contains(idPegawai)
|
|
||||||
&& idsDokterPerinatologi.contains(Integer.parseInt(map.get("idProduk").toString()))) {
|
|
||||||
if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP)
|
|
||||||
.contains(Integer.parseInt(map.get("idDepartemen").toString()))) {
|
|
||||||
/*
|
|
||||||
* Layanan detail jenis produk tertentu dokter
|
|
||||||
* perinatologi di rawat inap
|
|
||||||
*/
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN)
|
|
||||||
.contains(Integer.parseInt(map.get("idDepartemen").toString()))) {
|
|
||||||
/*
|
|
||||||
* Layanan detail jenis produk tertentu dokter
|
|
||||||
* perinatologi di rawat jalan
|
|
||||||
*/
|
|
||||||
rawResult.add(map);
|
|
||||||
}
|
|
||||||
} else if (CommonUtil.isNotNullOrEmpty(listDetailJenisProdukException)
|
|
||||||
&& listDetailJenisProdukException
|
|
||||||
.contains(Integer.parseInt(map.get("idDetailJenisProduk").toString()))) {
|
|
||||||
if (idsRegDJPPenunjangPA.contains(Integer.parseInt(map.get("idDetailJenisProduk").toString()))
|
|
||||||
|| idsRegDJPPenunjangPK
|
|
||||||
.contains(Integer.parseInt(map.get("idDetailJenisProduk").toString()))) {
|
|
||||||
/*
|
|
||||||
* Layanan detail jenis tertentu untuk laboran
|
|
||||||
* radiolog di patologi anatomi dan patologi klinik
|
|
||||||
*/
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_INAP)
|
|
||||||
.contains(Integer.parseInt(map.get("idDepartemen").toString()))) {
|
|
||||||
/*
|
|
||||||
* Layanan detail jenis produk tertentu laboran
|
|
||||||
* radiolog di rawat inap
|
|
||||||
*/
|
|
||||||
rawResult.add(map);
|
|
||||||
} else if (Arrays.asList(Master.Departemen.GRUP_RAWAT_JALAN)
|
|
||||||
.contains(Integer.parseInt(map.get("idDepartemen").toString()))) {
|
|
||||||
/*
|
|
||||||
* Layanan detail jenis produk tertentu laboran
|
|
||||||
* radiolog di rawat jalan
|
|
||||||
*/
|
|
||||||
rawResult.add(map);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return listData;
|
for (Integer idProduk : listIdProduk) {
|
||||||
|
for (Integer idKelompokPasien : listIdKelompokPasien) {
|
||||||
|
Map<String, Object> mapResult = new HashMap<>();
|
||||||
|
List<Map<String, Object>> detail = new ArrayList<>();
|
||||||
|
int counter = 0;
|
||||||
|
for (Map<String, Object> map : dataTanggal) {
|
||||||
|
Map<String, Object> mapCount = new HashMap<>();
|
||||||
|
if (Integer.parseInt(map.get("idProduk").toString()) == idProduk
|
||||||
|
&& Integer.parseInt(map.get("idKelompokPasien").toString()) == idKelompokPasien) {
|
||||||
|
mapCount.put("jumlah", map.get("jumlah"));
|
||||||
|
mapCount.put("tanggal", map.get("tanggal"));
|
||||||
|
detail.add(mapCount);
|
||||||
|
counter++;
|
||||||
|
if (counter == 1)
|
||||||
|
mapResult.putAll(map);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (CommonUtil.isNotNullOrEmpty(mapResult.get("jumlah"))) {
|
||||||
|
mapResult.put("detail", detail);
|
||||||
|
result.add(mapResult);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Map<String, Object>> logbookFfsTarifDokter(Integer idPegawai, String bulan) {
|
public List<Map<String, Object>> logbookFfsTarifDokter(Integer idPegawai, String bulan) {
|
||||||
|
List<Map<String, Object>> result = new ArrayList<>();
|
||||||
|
List<Map<String, Object>> dataTanggal = new ArrayList<>();
|
||||||
|
List<Integer> listIdProduk = new ArrayList<>();
|
||||||
|
List<Integer> listIdKelompokPasien = new ArrayList<>();
|
||||||
|
List<String> listTanggal = new ArrayList<>();
|
||||||
Map<String, List<Map<String, Object>>> remunFfs = this.splitRemunFfs(idPegawai, bulan);
|
Map<String, List<Map<String, Object>>> remunFfs = this.splitRemunFfs(idPegawai, bulan);
|
||||||
List<Map<String, Object>> listData = remunFfs.get("ffs");
|
List<Map<String, Object>> listData = remunFfs.get("ffs");
|
||||||
return listData;
|
listData.forEach(d -> {
|
||||||
|
if (!listIdProduk.contains(Integer.valueOf(d.get("idProduk").toString())))
|
||||||
|
listIdProduk.add(Integer.valueOf(d.get("idProduk").toString()));
|
||||||
|
if (!listIdKelompokPasien.contains(Integer.valueOf(d.get("idKelompokPasien").toString())))
|
||||||
|
listIdKelompokPasien.add(Integer.valueOf(d.get("idKelompokPasien").toString()));
|
||||||
|
if (!listTanggal.contains(d.get("tanggal").toString()))
|
||||||
|
listTanggal.add(d.get("tanggal").toString());
|
||||||
|
});
|
||||||
|
for (Integer idProduk : listIdProduk) {
|
||||||
|
for (Integer idKelompokPasien : listIdKelompokPasien) {
|
||||||
|
for (String tanggal : listTanggal) {
|
||||||
|
Map<String, Object> mapData = new HashMap<>();
|
||||||
|
double jumlah = 0.0;
|
||||||
|
int dataHitungKe = 0;
|
||||||
|
for (Map<String, Object> map : listData) {
|
||||||
|
if (Integer.parseInt(map.get("idProduk").toString()) == idProduk
|
||||||
|
&& Integer.parseInt(map.get("idKelompokPasien").toString()) == idKelompokPasien
|
||||||
|
&& map.get("tanggal").toString().equals(tanggal)) {
|
||||||
|
jumlah += Double.parseDouble(map.get("jumlah").toString());
|
||||||
|
dataHitungKe++;
|
||||||
|
if (dataHitungKe == 1)
|
||||||
|
mapData.putAll(map);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (CommonUtil.isNotNullOrEmpty(mapData.get("jumlah"))) {
|
||||||
|
mapData.put("jumlah", jumlah);
|
||||||
|
dataTanggal.add(mapData);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (Integer idProduk : listIdProduk) {
|
||||||
|
for (Integer idKelompokPasien : listIdKelompokPasien) {
|
||||||
|
Map<String, Object> mapResult = new HashMap<>();
|
||||||
|
List<Map<String, Object>> detail = new ArrayList<>();
|
||||||
|
int counter = 0;
|
||||||
|
for (Map<String, Object> map : dataTanggal) {
|
||||||
|
Map<String, Object> mapCount = new HashMap<>();
|
||||||
|
if (Integer.parseInt(map.get("idProduk").toString()) == idProduk
|
||||||
|
&& Integer.parseInt(map.get("idKelompokPasien").toString()) == idKelompokPasien) {
|
||||||
|
mapCount.put("jumlah", map.get("jumlah"));
|
||||||
|
mapCount.put("tanggal", map.get("tanggal"));
|
||||||
|
detail.add(mapCount);
|
||||||
|
counter++;
|
||||||
|
if (counter == 1)
|
||||||
|
mapResult.putAll(map);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (CommonUtil.isNotNullOrEmpty(mapResult.get("jumlah"))) {
|
||||||
|
mapResult.put("detail", detail);
|
||||||
|
result.add(mapResult);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user