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.List;
import java.util.Map;
import java.util.Set;
/**
* 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.jasa,0) as hargaJasa,"
+ "((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 "
+ "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd " + "inner join apd.ruangan ru "
+ "inner join pp.produk pr " + "inner join pp.kelas kls " + "where pd.noRegistrasi = :noRegistrasi")
+ "coalesce(pp.isPaket, false) as isPaket,coalesce(pp.isSelisihPaket, false) as isSelisihPaket) "
+ "from PelayananPasien pp " + "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd "
+ "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<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 "
+ "and ppp.ObjectPegawaiId in (:listIdSpog) " + "and pp.produkId in (:listProdukEntriId) "
+ "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);
}

View File

@ -1619,12 +1619,16 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
.map(d -> d.get("idProduk").toString() + NON_KELAS).collect(Collectors.toList()));
List<HargaNettoProdukByKelasD> tarifDetailNonKelas = hargaNettoProdukByKelasDDao
.findByConcateProdukKelas(allConcatProdukNonkelas);
List<Map<String, Object>> ibuPaketDiRanapByDokter = pelayananPasienDao
.findPasienPaketDiRanapByDokter(drKsmObgyn, allProdukEntriId);
Set<Map<String, Object>> ibuPaketDiRanapByDokter = pelayananPasienDao.findPasienPaketDiRanapByDokter(drKsmObgyn,
allProdukEntriId);
Set<Integer> setIdIbu = ibuPaketDiRanapByDokter.stream()
.map(pasien -> Integer.parseInt(pasien.get("pasienId").toString())).collect(Collectors.toSet());
List<Map<String, Object>> ibuAnak = pasienDao.findIdByIdOfIbu(setIdIbu);
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
.parseInt(d.get("pasienId").toString()) == Integer.parseInt(bn.get("idIbu").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()
.filter(paket -> Integer.parseInt(d.get("pasienId").toString()) == Integer
.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
.parseInt(d.get("paketId").toString()) == Integer.parseInt(paket.get("paketId").toString()))
.findFirst();