Update service pelayanan pasien

Perbaikan pengecekan pasien ibu terdaftar sebagai paket yang sudah pulang ranap untuk anaknya
This commit is contained in:
Salman Manoe 2023-12-07 11:18:17 +07:00
parent e4c19cf666
commit 148b888126
2 changed files with 14 additions and 7 deletions

View File

@ -12,6 +12,7 @@ import org.springframework.stereotype.Repository;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
/** /**
* Repository class for PelayananPasien * Repository class for PelayananPasien
@ -279,9 +280,10 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
+ "coalesce(pp.hargaJual,0) as hargaJual," + "coalesce(pp.hargaDiscount,0) as hargaDiskon," + "coalesce(pp.hargaJual,0) as hargaJual," + "coalesce(pp.hargaDiscount,0) as hargaDiskon,"
+ "coalesce(pp.jasa,0) as hargaJasa," + "coalesce(pp.jasa,0) as hargaJasa,"
+ "((coalesce(pp.hargaJual,0)-coalesce(pp.hargaDiscount,0))*coalesce(pp.jumlah,0)+coalesce(pp.jasa,0)) as totalHargaJual," + "((coalesce(pp.hargaJual,0)-coalesce(pp.hargaDiscount,0))*coalesce(pp.jumlah,0)+coalesce(pp.jasa,0)) as totalHargaJual,"
+ "coalesce(pp.isPaket, false) as isPaket,coalesce(pp.isSelisihPaket, false) as isSelisihPaket) " + "from PelayananPasien pp " + "coalesce(pp.isPaket, false) as isPaket,coalesce(pp.isSelisihPaket, false) as isSelisihPaket) "
+ "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd " + "inner join apd.ruangan ru " + "from PelayananPasien pp " + "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd "
+ "inner join pp.produk pr " + "inner join pp.kelas kls " + "where pd.noRegistrasi = :noRegistrasi") + "inner join apd.ruangan ru " + "inner join pp.produk pr " + "inner join pp.kelas kls "
+ "where pd.noRegistrasi = :noRegistrasi")
List<Map<String, Object>> findPelayananPasienByTagihanPendaftaran(@Param("noRegistrasi") String noRegistrasi); List<Map<String, Object>> findPelayananPasienByTagihanPendaftaran(@Param("noRegistrasi") String noRegistrasi);
List<PelayananPasien> findByPasienDaftarPasienDaftarNoRecIn(List<String> idDaftarList); List<PelayananPasien> findByPasienDaftarPasienDaftarNoRecIn(List<String> idDaftarList);
@ -292,6 +294,6 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
+ "inner join apd.pasienDaftar pd " + "where apd.ruanganId = ru.id " + "and pd.pasienId = vp.pasienId " + "inner join apd.pasienDaftar pd " + "where apd.ruanganId = ru.id " + "and pd.pasienId = vp.pasienId "
+ "and ppp.ObjectPegawaiId in (:listIdSpog) " + "and pp.produkId in (:listProdukEntriId) " + "and ppp.ObjectPegawaiId in (:listIdSpog) " + "and pp.produkId in (:listProdukEntriId) "
+ "and ru.departemenId = 16 " + "order by vp.pasienId, " + "vp.paketId, " + "apd.tglKeluar desc") + "and ru.departemenId = 16 " + "order by vp.pasienId, " + "vp.paketId, " + "apd.tglKeluar desc")
List<Map<String, Object>> findPasienPaketDiRanapByDokter(@Param("listIdSpog") List<Integer> listIdSpog, Set<Map<String, Object>> findPasienPaketDiRanapByDokter(@Param("listIdSpog") List<Integer> listIdSpog,
@Param("listProdukEntriId") List<Integer> listProdukEntriId); @Param("listProdukEntriId") List<Integer> listProdukEntriId);
} }

View File

@ -1619,12 +1619,16 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
.map(d -> d.get("idProduk").toString() + NON_KELAS).collect(Collectors.toList())); .map(d -> d.get("idProduk").toString() + NON_KELAS).collect(Collectors.toList()));
List<HargaNettoProdukByKelasD> tarifDetailNonKelas = hargaNettoProdukByKelasDDao List<HargaNettoProdukByKelasD> tarifDetailNonKelas = hargaNettoProdukByKelasDDao
.findByConcateProdukKelas(allConcatProdukNonkelas); .findByConcateProdukKelas(allConcatProdukNonkelas);
List<Map<String, Object>> ibuPaketDiRanapByDokter = pelayananPasienDao Set<Map<String, Object>> ibuPaketDiRanapByDokter = pelayananPasienDao.findPasienPaketDiRanapByDokter(drKsmObgyn,
.findPasienPaketDiRanapByDokter(drKsmObgyn, allProdukEntriId); allProdukEntriId);
Set<Integer> setIdIbu = ibuPaketDiRanapByDokter.stream() Set<Integer> setIdIbu = ibuPaketDiRanapByDokter.stream()
.map(pasien -> Integer.parseInt(pasien.get("pasienId").toString())).collect(Collectors.toSet()); .map(pasien -> Integer.parseInt(pasien.get("pasienId").toString())).collect(Collectors.toSet());
List<Map<String, Object>> ibuAnak = pasienDao.findIdByIdOfIbu(setIdIbu); List<Map<String, Object>> ibuAnak = pasienDao.findIdByIdOfIbu(setIdIbu);
listData.forEach(d -> { listData.forEach(d -> {
List<Integer> listIdIbu = ibuAnak.stream().filter(bn -> Integer
.parseInt(d.get("pasienId").toString()) == Integer.parseInt(bn.get("idIbu").toString())
|| Integer.parseInt(d.get("pasienId").toString()) == Integer.parseInt(bn.get("idAnak").toString()))
.map(bn -> Integer.parseInt(bn.get("idIbu").toString())).collect(Collectors.toList());
List<Integer> listIdAnak = ibuAnak.stream().filter(bn -> Integer List<Integer> listIdAnak = ibuAnak.stream().filter(bn -> Integer
.parseInt(d.get("pasienId").toString()) == Integer.parseInt(bn.get("idIbu").toString()) .parseInt(d.get("pasienId").toString()) == Integer.parseInt(bn.get("idIbu").toString())
|| Integer.parseInt(d.get("pasienId").toString()) == Integer.parseInt(bn.get("idAnak").toString())) || Integer.parseInt(d.get("pasienId").toString()) == Integer.parseInt(bn.get("idAnak").toString()))
@ -1632,7 +1636,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
Optional<Map<String, Object>> first = ibuPaketDiRanapByDokter.stream() Optional<Map<String, Object>> first = ibuPaketDiRanapByDokter.stream()
.filter(paket -> Integer.parseInt(d.get("pasienId").toString()) == Integer .filter(paket -> Integer.parseInt(d.get("pasienId").toString()) == Integer
.parseInt(paket.get("pasienId").toString()) .parseInt(paket.get("pasienId").toString())
|| listIdAnak.contains(Integer.parseInt(d.get("pasienId").toString()))) || (listIdAnak.contains(Integer.parseInt(d.get("pasienId").toString()))
&& listIdIbu.contains(Integer.parseInt(paket.get("pasienId").toString()))))
.filter(paket -> CommonUtil.isNotNullOrEmpty(d.get("paketId")) && Integer .filter(paket -> CommonUtil.isNotNullOrEmpty(d.get("paketId")) && Integer
.parseInt(d.get("paketId").toString()) == Integer.parseInt(paket.get("paketId").toString())) .parseInt(d.get("paketId").toString()) == Integer.parseInt(paket.get("paketId").toString()))
.findFirst(); .findFirst();