Merge branch 'master' into dev-deploy
This commit is contained in:
commit
c1a51a8486
@ -205,10 +205,11 @@ public final class Master {
|
||||
public static final Integer JASA_ASISTEN_SPESIALIS = 22;
|
||||
public static final Integer JASA_DOKTER = 35;
|
||||
public static final Integer JASA_DOKTER_ANASTESI = 21;
|
||||
public static final Integer JASA_DOKTER_OBGYN = 201;
|
||||
public static final Integer[] JASA_MEDIS = { 21, 22, 35 };
|
||||
public static final Integer[] JASA_PARAMEDIS = { 25, 26, 27 };
|
||||
public static final Integer[] JASA_SARANA = { 6, 38 };
|
||||
public static final Integer SPOG_ASISTEN = 206;
|
||||
public static final Integer SPOG_OPERATOR = 201;
|
||||
}
|
||||
|
||||
public static final class KomponenIndex {
|
||||
@ -380,6 +381,7 @@ public final class Master {
|
||||
public static final Integer INS_REKAM_MEDIK = 57;
|
||||
public static final Integer IP3RS = 40;
|
||||
public static final Integer KSM_LAIN = 61;
|
||||
public static final Integer KSM_OBGYN = 59;
|
||||
}
|
||||
|
||||
public static final class User {
|
||||
|
||||
@ -41,8 +41,4 @@ public interface HargaNettoProdukByKelasDao extends JpaRepository<HargaNettoProd
|
||||
+ "and hnk.kelasId in (:listKelasId) " + "order by hnk.hargaNetto1")
|
||||
List<Map<String, Object>> findTarifTindakan(@Param("produkId") Integer idProduk,
|
||||
@Param("listKelasId") List<Integer> listIdKelas);
|
||||
|
||||
@Query("select hnk from HargaNettoProdukByKelas hnk " + "where hnk.reportDisplay = 'tarif_2022_Nov' "
|
||||
+ "and concat(hnk.produkId,'',hnk.kelasId) in (:concatProdukKelas)")
|
||||
List<HargaNettoProdukByKelas> findByConcateProdukKelas(@Param("concatProdukKelas") List<String> concatProdukKelas);
|
||||
}
|
||||
|
||||
@ -2,6 +2,7 @@ package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.MapProdukPaket;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
@ -12,7 +13,9 @@ import java.util.Set;
|
||||
* @since 21 Sep 2023
|
||||
*/
|
||||
public interface MapProdukPaketDao extends JpaRepository<MapProdukPaket, String> {
|
||||
List<MapProdukPaket> findByPaketIdIn(Set<Integer> setPaketId);
|
||||
@Query("select mpaket.paketId from MapProdukPaket mpaket")
|
||||
Set<Integer> findPaketId();
|
||||
|
||||
List<MapProdukPaket> findByProdukEntriIdIn(Set<Integer> setProdukPaketId);
|
||||
@Query("select mpaket.produkEntriId from MapProdukPaket mpaket")
|
||||
List<Integer> findProdukEntriId();
|
||||
}
|
||||
|
||||
@ -11,6 +11,7 @@ import org.springframework.stereotype.Repository;
|
||||
import javax.persistence.LockModeType;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* Repository class for Pasien
|
||||
@ -115,4 +116,9 @@ public interface PasienDao extends JpaRepository<Pasien, Integer> {
|
||||
+ "and ps.nobpjs ~ '[0-9]+' " + "and length(ps.nobpjs) = 13) " + "and (ps.noidentitas is null "
|
||||
+ "or length(ps.noidentitas) <> 16) " + "order by ps.statusenabled, ps.tgldaftar desc", nativeQuery = true)
|
||||
List<Pasien> findByValidBpjs();
|
||||
|
||||
@Query("select new Map(ibu.id as idIbu,anak.id as idAnak) " + "from Pasien ibu, Pasien anak "
|
||||
+ "where ibu.noCm = anak.reportDisplay " + "and ibu.statusEnabled is true and anak.statusEnabled is true "
|
||||
+ "and ibu.id in (:listIdIbu)")
|
||||
List<Map<String, Object>> findIdByNoCmOfIbu(@Param("listIdIbu") Set<Integer> listIdIbu);
|
||||
}
|
||||
|
||||
@ -823,6 +823,11 @@ public interface PegawaiDao extends JpaRepository<Pegawai, Integer>, JpaSpecific
|
||||
+ "and p.shiftKerjaId in (1,2) " + "order by p.id asc")
|
||||
List<Integer> getPegawaiNonshift();
|
||||
|
||||
@Query("select distinct pgw.id " + "from MapPegawaiJabatanToUnitKerja mpj " + "inner join mpj.pegawai pgw "
|
||||
+ "where mpj.statusEnabled is true " + "and pgw.statusEnabled is true " + "and pgw.jenisPegawaiId = 1 "
|
||||
+ "and mpj.unitKerjaPegawaiId = :ksmId")
|
||||
List<Integer> getDokterByKsm(@Param("ksmId") Integer ksmId);
|
||||
|
||||
@Query("select distinct pgw.id " + "from MapPegawaiJabatanToUnitKerja mpj " + "inner join mpj.pegawai pgw "
|
||||
+ "where mpj.statusEnabled is true " + "and pgw.statusEnabled is true " + "and pgw.jenisPegawaiId = 1 "
|
||||
+ "and mpj.subUnitKerjaPegawaiId = :subunitKerjaId")
|
||||
|
||||
@ -12,7 +12,6 @@ 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
|
||||
@ -205,7 +204,7 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
|
||||
+ "coalesce(sy.persen,0) as persenSayatan,coalesce(sy.nama,'') as keterangan,"
|
||||
+ "apd.noRec as idAntrianPasienDiperiksa,apd.pegawaiId as idDPJP," + "apd.ruanganId as idRuangan,"
|
||||
+ "case when lower(ru.namaRuangan) like '%eksekutif%' then 'Eksekutif' else 'Reguler' end as jenisRuangan,"
|
||||
+ "ru.departemenId as idDepartemen," + "pd.noRec as idPasienDaftar,"
|
||||
+ "ru.departemenId as idDepartemen," + "pd.noRec as idPasienDaftar,pd.pasienId as pasienId,"
|
||||
+ "sum(case when ppd.komponenHargaId = 35 then ppd.hargaDiscount else 0.0 end) as totalDiskon) "
|
||||
+ "from PelayananPasienDetail ppd, PelayananPasienPetugas ppp " + "inner join ppp.pelayananPasien pp "
|
||||
+ "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd " + "left join pp.produk pr "
|
||||
@ -251,13 +250,6 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
|
||||
List<Map<String, Object>> findPelayananPasienByPetugasAndTanggal(@Param("pegawaiId") Integer idPegawai,
|
||||
@Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir);
|
||||
|
||||
String PARAMETER_LOGBOOK_PAKET = "and pd.voucherPaketId in (:setIdVoucher) " + "and pp.produkId in (:listIdPaket) ";
|
||||
|
||||
@Query(LOGBOOK_DOKTER + WHERE_LOGBOOK_DOKTER + PARAMETER_LOGBOOK_PAKET + GROUP_LOGBOOK_DOKTER
|
||||
+ ORDER_LOGBOOK_DOKTER)
|
||||
List<Map<String, Object>> findPelayananPasienByPaket(@Param("setIdVoucher") Set<String> setIdVoucher,
|
||||
@Param("listIdPaket") List<Integer> listIdPaket);
|
||||
|
||||
@Query("select new Map(jp.jenisPetugasPe as jenisPelaksana," + "pr.namaProduk as namaProduk,"
|
||||
+ "coalesce(pp.hargaJual,0) as hargaJual," + "coalesce(pp.hargaDiscount,0) as diskon,"
|
||||
+ "coalesce(pp.jumlah,0) as jumlah," + "kp.kelompokPasien as kelompokPasien,"
|
||||
@ -294,17 +286,12 @@ public interface PelayananPasienDao extends JpaRepository<PelayananPasien, Strin
|
||||
|
||||
List<PelayananPasien> findByPasienDaftarPasienDaftarNoRecIn(List<String> idDaftarList);
|
||||
|
||||
@Query("select new Map(pd.voucherPaketId as norecVoucher," + "pp.produkId as idProduk," + "pp.jumlah as jumlah) "
|
||||
+ "from PelayananPasien pp " + "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd "
|
||||
+ "where (pp.statusEnabled is true or pp.statusEnabled is null) "
|
||||
+ "and (pd.statusEnabled is true or pd.statusEnabled is null) " + "and pp.strukResepId is null "
|
||||
+ "and pd.voucherPaketId in (:listIdVoucher)")
|
||||
List<Map<String, Object>> findJumlahLayananByVoucherIn(@Param("listIdVoucher") Set<String> listIdVoucher);
|
||||
|
||||
@Query("select new Map(pp.noRec as noRec," + "vp.paketId as paketId," + "mpaket.produkEntriId as produkPaketId,"
|
||||
+ "mproduk.produkRegulerId as produkId) " + "from PelayananPasien pp, " + "MapProdukPaketToProduk mproduk "
|
||||
+ "inner join pp.pasienDaftar apd " + "inner join pp.voucherPaket vp " + "inner join apd.pasienDaftar pd "
|
||||
+ "inner join mproduk.mapProdukPaket mpaket " + "where vp.paketId = mpaket.paketId "
|
||||
+ "and pp.produkId = mpaket.produkEntriId " + "and pp.noRec in (:listNorec)")
|
||||
List<Map<String, Object>> findByNorecs(@Param("listNorec") Set<String> listNorec);
|
||||
@Query("select distinct new Map(vp.pasienId as pasienId," + "vp.paketId as paketId," + "vp.isBatal as isBatal,"
|
||||
+ "apd.tglKeluar as tglKeluar) " + "from PelayananPasienPetugas ppp, " + "Ruangan ru, " + "VoucherPaket vp "
|
||||
+ "inner join ppp.pelayananPasien pp " + "inner join pp.pasienDaftar apd "
|
||||
+ "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,
|
||||
@Param("listProdukEntriId") List<Integer> listProdukEntriId);
|
||||
}
|
||||
|
||||
@ -1,210 +1,234 @@
|
||||
package com.jasamedika.medifirst2000.dao;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.data.domain.Page;
|
||||
import org.springframework.data.domain.Pageable;
|
||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.Ruangan;
|
||||
|
||||
/**
|
||||
* Repository class for Ruangan
|
||||
*
|
||||
* @author Askur
|
||||
*/
|
||||
@Repository("RuanganDao")
|
||||
public interface RuanganDao extends PagingAndSortingRepository<Ruangan, Integer>, JpaSpecificationExecutor<Ruangan> {
|
||||
public interface RuanganDao extends JpaRepository<Ruangan, Integer>, JpaSpecificationExecutor<Ruangan> {
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka," + "r.jamTutup," + "r.kdRuangan,"
|
||||
+ "r.namaRuangan," + "r.noRuangan," + "r.statusViewData," + "r.id," + "r.departemen.id) "
|
||||
+ "from Ruangan r " + "where r.id=:id " + "and r.statusEnabled=true")
|
||||
Ruangan findById(@Param("id") Integer id);
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka, r.jamTutup ,r.kdRuangan, r.namaRuangan, r.noRuangan, r.statusViewData,r.id, r.departemen.id) from Ruangan r where r.id=:id and r.statusEnabled=true")
|
||||
public Ruangan findById(@Param("id") Integer id);
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka," + "r.jamTutup," + "r.kdRuangan,"
|
||||
+ "r.namaRuangan," + "r.noRuangan," + "r.statusViewData," + "r.id," + "r.departemen.id) "
|
||||
+ "from Ruangan r " + "where r.departemen.id in (Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s " + "where s.namaField='KdDepartemenInstalasiRawatJalan' "
|
||||
+ "or s.namaField='KdDepartemenInstalasiRadiologi' " + "or s.namaField='KdDepartemenInstalasiLaboratorium' "
|
||||
+ "or s.namaField='KdDepartemenInstalasiRehabilitasiMedik') " + "and r.statusEnabled=true "
|
||||
+ "and r.headRuangan is null " + "order by r.namaRuangan")
|
||||
List<Ruangan> findRuanganByDepartemen();
|
||||
|
||||
// custom query WITH pagination
|
||||
@Query("select model from Ruangan model where model.namaRuangan=:nama and model.statusEnabled=true")
|
||||
public Page<Ruangan> findPageRuanganByNama(@Param("nama") String nama, Pageable Page);
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka," + "r.jamTutup," + "r.kdRuangan,"
|
||||
+ "r.namaRuangan," + "r.noRuangan," + "r.statusViewData," + "r.id," + "r.departemen.id) "
|
||||
+ "from Ruangan r " + "where r.departemen.id in (Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s " + "where s.namaField='KdDepartemenInstalasiRawatJalan' "
|
||||
+ "or s.namaField='KdDepartemenInstalasiRadiologi' " + "or s.namaField='KdDepartemenInstalasiLaboratorium' "
|
||||
+ "or s.namaField='KdDepartemenInstalasiRehabilitasiMedik') " + "and r.statusEnabled=true "
|
||||
+ "order by r.namaRuangan")
|
||||
List<Ruangan> findRuanganByDepartemenAll();
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka, r.jamTutup ,r.kdRuangan, r.namaRuangan, r.noRuangan, r.statusViewData,r.id, r.departemen.id ) from Ruangan r where r.departemen.id in (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRawatJalan' or s.namaField='KdDepartemenInstalasiRadiologi' or s.namaField='KdDepartemenInstalasiLaboratorium' or s.namaField='KdDepartemenInstalasiRehabilitasiMedik' ) and r.statusEnabled=true and r.headRuangan is null order by r.namaRuangan ")
|
||||
public List<Ruangan> findRuanganByDepartemen();
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka," + "r.jamTutup," + "r.kdRuangan,"
|
||||
+ "r.namaRuangan," + "r.noRuangan," + "r.statusViewData," + "r.id," + "r.departemen.id) "
|
||||
+ "from Ruangan r " + "where r.departemen.id in (Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s " + "where s.namaField=:nama) " + "and r.statusEnabled=true "
|
||||
+ "order by r.namaRuangan")
|
||||
List<Ruangan> findRuanganByDepartemen(@Param("nama") String name);
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka, r.jamTutup ,r.kdRuangan, r.namaRuangan, r.noRuangan, r.statusViewData,r.id, r.departemen.id ) from Ruangan r where r.departemen.id in (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRawatJalan' or s.namaField='KdDepartemenInstalasiRadiologi' or s.namaField='KdDepartemenInstalasiLaboratorium' or s.namaField='KdDepartemenInstalasiRehabilitasiMedik' ) and r.statusEnabled=true order by r.namaRuangan ")
|
||||
public List<Ruangan> findRuanganByDepartemenAll();
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka," + "r.jamTutup," + "r.kdRuangan,"
|
||||
+ "r.namaRuangan," + "r.noRuangan," + "r.statusViewData," + "r.id," + "r.departemen.id) "
|
||||
+ "from Ruangan r " + "where r.departemen.id in (Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s " + "where s.namaField='KdDepartemenInstalasiGawatDarurat' "
|
||||
+ "or s.namaField='KdDepartemenInstalasiGawatDarurat') " + "and r.statusEnabled=true")
|
||||
Ruangan findRuanganGawatDarurat();
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka, r.jamTutup ,r.kdRuangan, r.namaRuangan, r.noRuangan, r.statusViewData,r.id, r.departemen.id ) from Ruangan r where r.departemen.id in (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField=:nama ) and r.statusEnabled=true order by r.namaRuangan ")
|
||||
public List<Ruangan> findRuanganByDepartemen(@Param("nama") String name);
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka," + "r.jamTutup," + "r.kdRuangan,"
|
||||
+ "r.namaRuangan," + "r.noRuangan," + "r.statusViewData," + "r.id," + "r.departemen.id) "
|
||||
+ "from Ruangan r " + "where r.departemen.id in (Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s " + "where s.namaField='KdDepartemenInstalasiRawatJalan' "
|
||||
+ "or s.namaField='KdDepartemenInstalasiRadiologi' " + "or s.namaField='KdDepartemenInstalasiLaboratorium' "
|
||||
+ "or s.namaField='KdDepartemenInstalasiRehabilitasiMedik') " + "and r.kdRuangan=:kdRuangan "
|
||||
+ "and r.statusEnabled=true " + "order by r.namaRuangan")
|
||||
Ruangan findRuanganByDepartemenAndKdRuangan(@Param("kdRuangan") String kdRuangan);
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka, r.jamTutup ,r.kdRuangan, r.namaRuangan, r.noRuangan, r.statusViewData,r.id, r.departemen.id ) from Ruangan r where r.departemen.id in (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiGawatDarurat' or s.namaField='KdDepartemenInstalasiGawatDarurat') and r.statusEnabled=true ")
|
||||
public Ruangan findRuanganGawatDarurat();
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka, r.jamTutup ,r.kdRuangan, r.namaRuangan, r.noRuangan, r.statusViewData,r.id, r.departemen.id) from Ruangan r where r.kdRuangan=:kdRuangan and r.statusEnabled=true ")
|
||||
public Ruangan findByKdRuangan(@Param("kdRuangan") String kdRuangan);
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka, r.jamTutup ,r.kdRuangan, r.namaRuangan, r.noRuangan, r.statusViewData,r.id, r.departemen.id ) from Ruangan r where r.departemen.id in (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRawatJalan' or s.namaField='KdDepartemenInstalasiRadiologi' or s.namaField='KdDepartemenInstalasiLaboratorium' or s.namaField='KdDepartemenInstalasiRehabilitasiMedik' ) and r.statusEnabled=true and r.headRuangan is null order by r.namaRuangan ")
|
||||
public List<Ruangan> findRuangans();
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka, r.jamTutup ,r.kdRuangan, r.namaRuangan, r.noRuangan, r.statusViewData,r.id, r.departemen.id ) from Ruangan r where r.departemen.id in (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRawatJalan' or s.namaField='KdDepartemenInstalasiRadiologi' or s.namaField='KdDepartemenInstalasiLaboratorium' or s.namaField='KdDepartemenInstalasiRehabilitasiMedik' ) and r.kdRuangan=:kdRuangan and r.statusEnabled=true order by r.namaRuangan ")
|
||||
public Ruangan findRuanganByDepartemenAndKdRuangan(@Param("kdRuangan") String kdRuangan);
|
||||
|
||||
@Query("select r from Ruangan r where r.kdRuangan=:kdRuangan and r.id in (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdRuanganRapat') and r.statusViewData=true")
|
||||
public Ruangan findStatusTersedia(@Param("kdRuangan") String kdRuangan);
|
||||
|
||||
@Query("select r from Ruangan r where r.kdRuangan=:kdRuangan and r.id in (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdRuanganRapat') and r.statusViewData=false")
|
||||
public Ruangan findStatusDipakai(@Param("kdRuangan") String kdRuangan);
|
||||
|
||||
// Ruang Rapat - Sarpras
|
||||
@Query("select r from Ruangan r where r.namaRuangan like %:namaRuangan%")
|
||||
public List<Ruangan> findRuangRapat(@Param("namaRuangan") String namaRuangan);
|
||||
List<Ruangan> findRuangRapat(@Param("namaRuangan") String namaRuangan);
|
||||
|
||||
// Loundry - Sarpras
|
||||
@Query("select r from Ruangan r where r.id in (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdRuanganLoundry')")
|
||||
public List<Ruangan> findRuangLoundry();
|
||||
@Query("select r from Ruangan r " + "where r.id in (Select cast(s.nilaiField as int) " + "from SettingDataFixed s "
|
||||
+ "where s.namaField='KdRuanganLoundry')")
|
||||
List<Ruangan> findRuangLoundry();
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka, r.jamTutup ,r.kdRuangan, r.namaRuangan, r.noRuangan, r.statusViewData,r.id, r.departemen.id ) from Ruangan r where lower(r.namaRuangan) like %:namaRuangan% and "
|
||||
+ "r.departemen.id in (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRawatJalan' or s.namaField='KdDepartemenInstalasiRadiologi' or s.namaField='KdDepartemenInstalasiLaboratorium' "
|
||||
+ "or s.namaField='KdDepartemenInstalasiRehabilitasiMedik' ) and r.statusEnabled=true order by r.namaRuangan ")
|
||||
public List<Ruangan> findRuanganByDepartemenByName(@Param("namaRuangan") String namaRuangan);
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka," + "r.jamTutup," + "r.kdRuangan,"
|
||||
+ "r.namaRuangan," + "r.noRuangan," + "r.statusViewData," + "r.id," + "r.departemen.id) "
|
||||
+ "from Ruangan r " + "where lower(r.namaRuangan) like %:namaRuangan% "
|
||||
+ "and r.departemen.id in (Select cast(s.nilaiField as int) " + "from SettingDataFixed s "
|
||||
+ "where s.namaField='KdDepartemenInstalasiRawatJalan' "
|
||||
+ "or s.namaField='KdDepartemenInstalasiRadiologi' " + "or s.namaField='KdDepartemenInstalasiLaboratorium' "
|
||||
+ "or s.namaField='KdDepartemenInstalasiRehabilitasiMedik') " + "and r.statusEnabled=true "
|
||||
+ "order by r.namaRuangan")
|
||||
List<Ruangan> findRuanganByDepartemenByName(@Param("namaRuangan") String namaRuangan);
|
||||
|
||||
// Cssd - Sarpras
|
||||
@Query("select r from Ruangan r where r.id in (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdRuanganCssd')")
|
||||
public List<Ruangan> findRuangCssd();
|
||||
@Query("select r from Ruangan r " + "where r.id in (Select cast(s.nilaiField as int) " + "from SettingDataFixed s "
|
||||
+ "where s.namaField='KdRuanganCssd')")
|
||||
List<Ruangan> findRuangCssd();
|
||||
|
||||
@Query("select distinct NEW com.jasamedika.medifirst2000.entities.Ruangan (b.kdRuangan, b.namaRuangan, b.id) from RegistrasiAset a left join a.ruangan b where b.id is not null order by b.id")
|
||||
@Query("select distinct NEW com.jasamedika.medifirst2000.entities.Ruangan (b.kdRuangan,b.namaRuangan,b.id) "
|
||||
+ "from RegistrasiAset a " + "left join a.ruangan b " + "where b.id is not null " + "order by b.id")
|
||||
List<Ruangan> getRuanganOnAset();
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka, r.jamTutup ,r.kdRuangan, r.namaRuangan, r.noRuangan, r.statusViewData,r.id, r.departemen.id ) from Ruangan r where r.departemen.id in (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiLaboratorium' ) and r.statusEnabled=true order by r.namaRuangan ")
|
||||
public List<Ruangan> findRuanganLaboratorium();
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka," + "r.jamTutup," + "r.kdRuangan,"
|
||||
+ "r.namaRuangan," + "r.noRuangan," + "r.statusViewData," + "r.id," + "r.departemen.id) "
|
||||
+ "from Ruangan r " + "where r.departemen.id in (Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s " + "where s.namaField='KdDepartemenInstalasiLaboratorium') "
|
||||
+ "and r.statusEnabled=true " + "order by r.namaRuangan")
|
||||
List<Ruangan> findRuanganLaboratorium();
|
||||
|
||||
// Ruang Rapat - Sarpras
|
||||
@Query("select NEW Map(r.id as idRuangan,r.namaRuangan as namaRuangan,so.tglPelayananAwal as tglPelayananAwal,"
|
||||
+ "so.tglPelayananAkhir as tglPelayananAkhir,so.status as status) from Ruangan r, "
|
||||
+ "StrukOrder so where so.tglPelayananAwal between :periodeAwal and :periodeAkhir "
|
||||
+ "and so.status='ORDER' and r.id=:idRuangan and so.noOrderIntern like '%ORR%'")
|
||||
public List<Ruangan> findStatusRuangRapat(@Param("periodeAwal") Date periodeAwal,
|
||||
@Param("periodeAkhir") Date periodeAkhir, @Param("idRuangan") Integer idRuangan);
|
||||
List<Ruangan> findStatusRuangRapat(@Param("periodeAwal") Date periodeAwal, @Param("periodeAkhir") Date periodeAkhir,
|
||||
@Param("idRuangan") Integer idRuangan);
|
||||
|
||||
@Query("select map.ruanganId from MapLoginUserToRuangan map where map.loginUserId=:loginUserId")
|
||||
List<Integer> getRuanganByUserLogin(@Param("loginUserId") Integer loginUserId);
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka, r.jamTutup ,r.kdRuangan, r.namaRuangan, r.noRuangan, r.statusViewData,r.id, r.departemen.id) from Ruangan r where r.headRuangan.id=:idRuangan and r.statusEnabled=true order by r.namaRuangan")
|
||||
public List<Ruangan> findRuanganByParent(@Param("idRuangan") Integer idRuangan);
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka," + "r.jamTutup," + "r.kdRuangan,"
|
||||
+ "r.namaRuangan," + "r.noRuangan," + "r.statusViewData," + "r.id," + "r.departemen.id) "
|
||||
+ "from Ruangan r " + "where r.headRuangan.id=:idRuangan " + "and r.statusEnabled=true "
|
||||
+ "order by r.namaRuangan")
|
||||
List<Ruangan> findRuanganByParent(@Param("idRuangan") Integer idRuangan);
|
||||
|
||||
@Query("select count(*) from Ruangan r where r.headRuangan.id=:idRuangan")
|
||||
public Integer countRuanganBilik(@Param("idRuangan") Integer idRuangan);
|
||||
Integer countRuanganBilik(@Param("idRuangan") Integer idRuangan);
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka, r.jamTutup ,r.kdRuangan, r.namaRuangan, r.noRuangan, r.statusViewData,r.id, r.departemen.id ) from Ruangan r where r.id in (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdRuanganRehabilitasiMedik' ) and r.statusEnabled=true ")
|
||||
public Ruangan findRuanganRehabilitasiMedik();
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka," + "r.jamTutup," + "r.kdRuangan,"
|
||||
+ "r.namaRuangan," + "r.noRuangan," + "r.statusViewData," + "r.id," + "r.departemen.id) "
|
||||
+ "from Ruangan r " + "where r.id in (Select cast(s.nilaiField as int) " + "from SettingDataFixed s "
|
||||
+ "where s.namaField='KdRuanganRehabilitasiMedik') " + "and r.statusEnabled=true")
|
||||
Ruangan findRuanganRehabilitasiMedik();
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka, r.jamTutup ,r.kdRuangan, r.namaRuangan, r.noRuangan, r.statusViewData,r.id, r.departemen.id ) from Ruangan r where r.departemen.id in (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRehabMedik' ) and r.statusEnabled=true ")
|
||||
public List<Ruangan> findAllRuanganRehabilitasiMedik();
|
||||
|
||||
// get ruangan pelayanan (cssd) - sarpras Rumah Tangga
|
||||
@Query("select NEW Map(r.id as ruanganId,r.namaRuangan as namaRuangan) from Ruangan r where r.departemenId in (25,24)")
|
||||
public List<Ruangan> findRuanganPelayanan();
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka," + "r.jamTutup," + "r.kdRuangan,"
|
||||
+ "r.namaRuangan," + "r.noRuangan," + "r.statusViewData," + "r.id," + "r.departemen.id) "
|
||||
+ "from Ruangan r " + "where r.departemen.id in (Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s " + "where s.namaField='KdDepartemenInstalasiRehabMedik') "
|
||||
+ "and r.statusEnabled=true")
|
||||
List<Ruangan> findAllRuanganRehabilitasiMedik();
|
||||
|
||||
@Query("select NEW Map(r.id as ruanganId,r.namaRuangan as namaRuangan) from Ruangan r ")
|
||||
public List<Map<String, Object>> findAllRuangan();
|
||||
List<Map<String, Object>> findAllRuangan();
|
||||
|
||||
// Get Ruangan Tagihan pasien
|
||||
@Query("select NEW Map(r.id as id,r.namaRuangan as namaRuangan) from Ruangan r left join r.departemen d where d.id in (select departemen.id from Departemen departemen left join departemen.jenisPerawatan jp where jp.id in (5,6))")
|
||||
public List<Map<String, Object>> findAllRuanganForTagihan();
|
||||
@Query("select NEW Map(r.id as id,r.namaRuangan as namaRuangan) " + "from Ruangan r " + "left join r.departemen d "
|
||||
+ "where d.id in (select departemen.id " + "from Departemen departemen "
|
||||
+ "left join departemen.jenisPerawatan jp " + "where jp.id in (5,6))")
|
||||
List<Map<String, Object>> findAllRuanganForTagihan();
|
||||
|
||||
@Query("select NEW Map(r.id as id,r.namaRuangan as namaRuangan) from Ruangan r left join r.departemen d where d.id in (select departemen.id from Departemen departemen left join departemen.jenisPerawatan jp where jp.id in (5,6)) and r.departemenId=:instalasiId ")
|
||||
public List<Map<String, Object>> findAllRuanganForTagihanByInstalasiId(@Param("instalasiId") Integer instalasiId);
|
||||
@Query("select NEW Map(r.id as id,r.namaRuangan as namaRuangan) " + "from Ruangan r " + "left join r.departemen d "
|
||||
+ "where d.id in (select departemen.id " + "from Departemen departemen "
|
||||
+ "left join departemen.jenisPerawatan jp " + "where jp.id in (5,6)) " + "and r.departemenId=:instalasiId ")
|
||||
List<Map<String, Object>> findAllRuanganForTagihanByInstalasiId(@Param("instalasiId") Integer instalasiId);
|
||||
|
||||
@Query("select new Map(b.kdRuangan as kdRuangan, b.namaRuangan as namaRuangan, b.id as id) from RegistrasiAset a left join a.ruangan b where b.id is not null order by b.id")
|
||||
public List<Map<String, Object>> getRuanganOnAsetMap();
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka," + "r.jamTutup," + "r.kdRuangan,"
|
||||
+ "r.namaRuangan," + "r.noRuangan," + "r.statusViewData," + "r.id," + "r.departemen.id) "
|
||||
+ "from Ruangan r " + "where r.id=:id")
|
||||
Ruangan findAllById(@Param("id") Integer id);
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka, r.jamTutup ,r.kdRuangan, r.namaRuangan, r.noRuangan, r.statusViewData,r.id, r.departemen.id) from Ruangan r where r.id=:id")
|
||||
public Ruangan findAllById(@Param("id") Integer id);
|
||||
|
||||
/*
|
||||
* Author by iwankasan Show Data Ruangan all Id Dep
|
||||
*/
|
||||
@Query("select new map(r.id as id, r.namaRuangan as nmRuangan) from Ruangan r where r.departemenId in (16)")
|
||||
public List<Ruangan> getRuanganByIdDep();
|
||||
List<Ruangan> getRuanganByIdDep();
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka, r.jamTutup ,r.kdRuangan, r.namaRuangan, r.noRuangan, r.statusViewData,r.id, r.departemen.id) from Ruangan r where r.id=:id ")
|
||||
public Ruangan findByIdSAllStatus(@Param("id") Integer id);
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(r.jamBuka," + "r.jamTutup," + "r.kdRuangan,"
|
||||
+ "r.namaRuangan," + "r.noRuangan," + "r.statusViewData," + "r.id," + "r.departemen.id) "
|
||||
+ "from Ruangan r " + "where r.id=:id ")
|
||||
Ruangan findByIdSAllStatus(@Param("id") Integer id);
|
||||
|
||||
@Query("select NEW Map (" + " ruangan.id as idRuangan, " + " ruangan.namaRuangan as namaRuangan, "
|
||||
+ "departemen.id as departemenId) " + " from Ruangan ruangan " + " left join ruangan.departemen departemen "
|
||||
+ " where departemen.id=:id")
|
||||
public List<Map<String, Object>> getRuanganIGD(@Param("id") Integer id);
|
||||
List<Map<String, Object>> getRuanganIGD(@Param("id") Integer id);
|
||||
|
||||
@Query("select NEW Map(" + "b.id as ruanganId," + "c.id as kelasId) " + "from AntrianPasienDiPeriksa a "
|
||||
+ "left join a.ruangan b " + "left join a.kelas c " + "where a.noRec=:noRec")
|
||||
public Map<String, Object> getRuanganByRegistrasi(@Param("noRec") String noRec);
|
||||
|
||||
@Query("select NEW Map (" + "a.id as ruanganId," + "a.namaRuangan as namaRuangan,"
|
||||
+ "c.jenisPerawatan as jenisPerawatan) " + "from Ruangan a " + "left join a.departemen b "
|
||||
+ "left join b.jenisPerawatan c " + "where c.id=:id")
|
||||
public List<Map<String, Object>> getRuanganPelayanan(@Param("id") Integer id);
|
||||
Map<String, Object> getRuanganByRegistrasi(@Param("noRec") String noRec);
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(" + "r.jamBuka, " + "r.jamTutup ,"
|
||||
+ "r.kdRuangan, " + "r.namaRuangan, " + "r.noRuangan, " + "r.statusViewData," + "r.id, "
|
||||
+ "r.departemen.id ) " + "from Ruangan r where "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRawatJalan') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiGawatDarurat') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRehabilitasiMedik') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiLaboratorium') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRadiologi')"
|
||||
+ "r.departemen.id ) " + "from Ruangan r where " + "r.departemen.id=(Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRawatJalan') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int)"
|
||||
+ " from SettingDataFixed s where s.namaField='KdDepartemenInstalasiGawatDarurat') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRehabilitasiMedik') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s where s.namaField='KdDepartemenInstalasiLaboratorium') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRadiologi')"
|
||||
+ "and r.statusEnabled=true and r.headRuangan is not null order by r.namaRuangan ")
|
||||
public List<Ruangan> findRuanganJalan();
|
||||
List<Ruangan> findRuanganJalan();
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(" + "r.jamBuka, " + "r.jamTutup ,"
|
||||
+ "r.kdRuangan, " + "r.namaRuangan, " + "r.noRuangan, " + "r.statusViewData," + "r.id, "
|
||||
+ "r.departemen.id ) " + "from Ruangan r where "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRawatJalan') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiGawatDarurat') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRehabilitasiMedik') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiLaboratorium') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRadiologi') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRawatInap') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdInstalasiICU') "
|
||||
+ "r.departemen.id ) " + "from Ruangan r where " + "r.departemen.id=(Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRawatJalan') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s where s.namaField='KdDepartemenInstalasiGawatDarurat') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRehabilitasiMedik') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s where s.namaField='KdDepartemenInstalasiLaboratorium') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRadiologi') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRawatInap') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s where s.namaField='KdInstalasiICU') "
|
||||
+ "and r.statusEnabled=true and r.headRuangan is not null order by r.namaRuangan ")
|
||||
public List<Ruangan> findRuanganOperator();
|
||||
List<Ruangan> findRuanganOperator();
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(" + "r.jamBuka, " + "r.jamTutup ,"
|
||||
+ "r.kdRuangan, " + "r.namaRuangan, " + "r.noRuangan, " + "r.statusViewData," + "r.id, "
|
||||
+ "r.departemen.id ) " + "from Ruangan r where "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiLaboratorium') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRadiologi') "
|
||||
+ "r.departemen.id ) " + "from Ruangan r where " + "r.departemen.id=(Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s where s.namaField='KdDepartemenInstalasiLaboratorium') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRadiologi') "
|
||||
+ "and r.statusEnabled=true and r.headRuangan is not null order by r.namaRuangan ")
|
||||
public List<Ruangan> findRuanganPenunjang();
|
||||
List<Ruangan> findRuanganPenunjang();
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(" + "r.jamBuka, " + "r.jamTutup ,"
|
||||
+ "r.kdRuangan, " + "r.namaRuangan, " + "r.noRuangan, " + "r.statusViewData," + "r.id, "
|
||||
+ "r.departemen.id ) " + "from Ruangan r where "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRawatInap') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='IdInstalasiPerinatalResikoTinggi' ) "
|
||||
+ "r.departemen.id ) " + "from Ruangan r where " + "r.departemen.id=(Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRawatInap') or "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) "
|
||||
+ "from SettingDataFixed s where s.namaField='IdInstalasiPerinatalResikoTinggi' ) "
|
||||
+ "order by r.namaRuangan ")
|
||||
public List<Ruangan> findRuanganRanap();
|
||||
List<Ruangan> findRuanganRanap();
|
||||
|
||||
@Query("select NEW com.jasamedika.medifirst2000.entities.Ruangan(" + "r.jamBuka, " + "r.jamTutup ,"
|
||||
+ "r.kdRuangan, " + "r.namaRuangan, " + "r.noRuangan, " + "r.statusViewData," + "r.id, "
|
||||
+ "r.departemen.id ) " + "from Ruangan r where "
|
||||
+ "r.departemen.id=(Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRehabilitasiMedik') "
|
||||
+ "order by r.namaRuangan ")
|
||||
public List<Ruangan> findRuanganRehabMedik();
|
||||
@Query("select new map (unitKerja.id as id,unitKerja.namaRuangan as namaRuangan) " + "from Pegawai pegawai "
|
||||
+ "join pegawai.ruangan unitKerja")
|
||||
List<Map<String, Object>> findRuanganUnitKerja();
|
||||
|
||||
@Query("select new map (unitKerja.id as id,unitKerja.namaRuangan as namaRuangan) from Pegawai pegawai join pegawai.ruangan unitKerja")
|
||||
public List<Map<String, Object>> findRuanganUnitKerja();
|
||||
@Query("select new Map(model.id as id,model.namaRuangan as namaRuangan) " + "from Ruangan model "
|
||||
+ "where model.id = :ruanganId " + "and model.statusEnabled is true")
|
||||
Map<String, Object> getRuanganById(@Param("ruanganId") Integer ruanganId);
|
||||
|
||||
@Query("select new Map(model.id as id, model.namaRuangan as namaRuangan) from Ruangan model where model.id = :ruanganId and model.statusEnabled is true")
|
||||
public Map<String, Object> getRuanganById(@Param("ruanganId") Integer ruanganId);
|
||||
|
||||
@Query("select new Map(model.id as id, model.namaRuangan as namaRuangan) "
|
||||
+ "from Ruangan model where model.departemenId = :departemenId and model.statusEnabled is true order by model.namaRuangan")
|
||||
public List<Map<String, Object>> getRuanganByIdDepartemen(@Param("departemenId") Integer departemenId);
|
||||
@Query("select new Map(model.id as id, model.namaRuangan as namaRuangan) " + "from Ruangan model "
|
||||
+ "where model.departemenId = :departemenId " + "and model.statusEnabled is true "
|
||||
+ "order by model.namaRuangan")
|
||||
List<Map<String, Object>> getRuanganByIdDepartemen(@Param("departemenId") Integer departemenId);
|
||||
|
||||
@Query("select new Map(model.id as id, model.namaRuangan as namaRuangan) "
|
||||
+ "from Ruangan model where model.departemenId in (:listIdDept) " + "and model.statusEnabled is true "
|
||||
+ "order by model.namaRuangan")
|
||||
public List<Map<String, Object>> findRajalBPJS(@Param("listIdDept") List<Integer> listIdDept);
|
||||
List<Map<String, Object>> findRajalBPJS(@Param("listIdDept") List<Integer> listIdDept);
|
||||
|
||||
}
|
||||
|
||||
@ -3,9 +3,6 @@ package com.jasamedika.medifirst2000.dao;
|
||||
import com.jasamedika.medifirst2000.entities.VoucherPaket;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
/**
|
||||
* @author Salman
|
||||
* @version 1.0.0
|
||||
@ -20,14 +17,4 @@ public interface VoucherPaketDao extends JpaRepository<VoucherPaket, String> {
|
||||
* @return data entitas <code>VoucherPaket</code>
|
||||
*/
|
||||
VoucherPaket findByKode(String kode);
|
||||
|
||||
/**
|
||||
* Query untuk mendapatkan data voucher paket bedasarkan kumpulan no record
|
||||
* tertentu
|
||||
*
|
||||
* @param norecs
|
||||
* daftar no record data voucher
|
||||
* @return data entitas <code>VoucherPaket</code>
|
||||
*/
|
||||
List<VoucherPaket> findAllByNoRecIn(Set<String> norecs);
|
||||
}
|
||||
|
||||
@ -46,8 +46,9 @@ import static com.jasamedika.medifirst2000.constants.Master.KomponenHarga.*;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.Ruangan.*;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.SubUnitKerja.*;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.TipePegawai.PURNA_WAKTU;
|
||||
import static com.jasamedika.medifirst2000.constants.Master.UnitKerja.KSM_OBGYN;
|
||||
import static com.jasamedika.medifirst2000.enums.JenisMappingProdukPaket.PERAWAT;
|
||||
import static com.jasamedika.medifirst2000.enums.JenisMappingProdukPaket.TINDAKAN_UTAMA;
|
||||
import static com.jasamedika.medifirst2000.enums.JenisMappingProdukPaket.VISITE_UTAMA;
|
||||
|
||||
/**
|
||||
* Implement class for PelayananPasienService
|
||||
@ -562,32 +563,17 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
*/
|
||||
List<Map<String, Object>> listRatedPay = pelayananPasienDao.findPelayananPasienByPetugasAndTanggal(idPegawai,
|
||||
tglAwal, tglAkhir);
|
||||
Set<String> listIdVoucher = listRatedPay.stream()
|
||||
.filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idVoucherDaftar")))
|
||||
.map(d -> d.get("idVoucherDaftar").toString()).collect(Collectors.toSet());
|
||||
List<Map<String, Object>> listFixedPay = new ArrayList<>();
|
||||
if (CommonUtil.isNotNullOrEmpty(listIdVoucher)) {
|
||||
List<VoucherPaket> listVoucher = voucherPaketDao.findAllByNoRecIn(listIdVoucher);
|
||||
Set<Integer> listIdPaket = listVoucher.stream().map(VoucherPaket::getPaketId).collect(Collectors.toSet());
|
||||
/*
|
||||
* Set awal logbook fixed pay
|
||||
*/
|
||||
listFixedPay = listRatedPay.stream()
|
||||
.filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idVoucherDaftar"))
|
||||
&& (!Boolean.parseBoolean(d.get("isPaket").toString())
|
||||
&& listIdPaket.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
|| (CommonUtil.isNotNullOrEmpty(d.get("idVoucherLayanan"))
|
||||
&& Boolean.parseBoolean(d.get("isPaket").toString()) && !listIdPaket
|
||||
.contains(Integer.parseInt(d.get("idProduk").toString()))))
|
||||
.collect(Collectors.toList());
|
||||
/*
|
||||
* Filtering selain logbook fixed pay
|
||||
*/
|
||||
listRatedPay = listRatedPay.stream()
|
||||
.filter(d -> !Boolean.parseBoolean(d.get("isPaket").toString())
|
||||
&& !listIdPaket.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
List<Integer> allPaketId = mapProdukPaketDao.findProdukEntriId();
|
||||
List<Map<String, Object>> listFixedPay = listRatedPay.stream()
|
||||
.filter(d -> allPaketId.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
.collect(Collectors.toList());
|
||||
/*
|
||||
* Filtering selain logbook fixed pay
|
||||
*/
|
||||
allPaketId.addAll(mapProdukPaketDao.findPaketId());
|
||||
listRatedPay = listRatedPay.stream()
|
||||
.filter(d -> !allPaketId.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
.collect(Collectors.toList());
|
||||
/*
|
||||
* Set persen jasa dan harga jasa pasien bpjs di ibs, icu
|
||||
*/
|
||||
@ -1504,18 +1490,19 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
{
|
||||
List<Map<String, Object>> listPelayananFixedPay = new ArrayList<>();
|
||||
if (CommonUtil.isNotNullOrEmpty(listFixedPay))
|
||||
listPelayananFixedPay = setPelayananPaket(listFixedPay);
|
||||
listPelayananFixedPay = setPelayananPaket(idPegawai, bulan, listFixedPay);
|
||||
result.put("fixed-pay", listPelayananFixedPay);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<Map<String, Object>> setPelayananPaket(List<Map<String, Object>> listData) {
|
||||
private List<Map<String, Object>> setPelayananPaket(Integer idPegawai, String bulan,
|
||||
List<Map<String, Object>> listData) {
|
||||
/*
|
||||
* Transformasi data paket menggunakan mapprodukpaket dan
|
||||
* mapprodukpakettoproduk
|
||||
*/
|
||||
List<Map<String, Object>> listFixedPay = transformPelayananPaket(listData);
|
||||
List<Map<String, Object>> listFixedPay = transformPelayananPaket(idPegawai, bulan, listData);
|
||||
/*
|
||||
* Populate data filter
|
||||
*/
|
||||
@ -1536,7 +1523,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
Comparator.nullsLast(Comparator.naturalOrder())))
|
||||
.sorted(Comparator.comparing(o4 -> o4.get("namaProduk").toString()))
|
||||
.sorted(Comparator.comparing(o5 -> o5.get("jenisRuangan").toString(), Comparator.reverseOrder()))
|
||||
.collect(Collectors.toList());
|
||||
.sorted(Comparator.comparing(o4 -> o4.get("bulanPulangIbu").toString())).collect(Collectors.toList());
|
||||
result.forEach(r -> {
|
||||
/*
|
||||
* Hapus informasi tidak perlu
|
||||
@ -1564,6 +1551,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<Integer> listIdKelompokPasien = new ArrayList<>();
|
||||
List<String> listTanggal = new ArrayList<>();
|
||||
List<String> listJenisRuangan = new ArrayList<>();
|
||||
List<String> listBulanPulangIbu = new ArrayList<>();
|
||||
listFixedPay.forEach(d -> {
|
||||
if (!listIdProduk.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
listIdProduk.add(Integer.valueOf(d.get("idProduk").toString()));
|
||||
@ -1577,6 +1565,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
listTanggal.add(d.get("tanggal").toString());
|
||||
if (!listJenisRuangan.contains(d.get("jenisRuangan").toString()))
|
||||
listJenisRuangan.add(d.get("jenisRuangan").toString());
|
||||
if (!listBulanPulangIbu.contains(d.get("bulanPulangIbu").toString()))
|
||||
listBulanPulangIbu.add(d.get("bulanPulangIbu").toString());
|
||||
});
|
||||
/*
|
||||
* Pengelompokkan tanggal pelayanan
|
||||
@ -1584,223 +1574,195 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
return groupingTanggalFixedPay(listFixedPay);
|
||||
}
|
||||
|
||||
private List<Map<String, Object>> transformPelayananPaket(List<Map<String, Object>> listData) {
|
||||
Set<String> setIdVoucher = listData.stream().map(d -> d.get("idVoucherDaftar").toString())
|
||||
.collect(Collectors.toSet());
|
||||
List<VoucherPaket> listVoucher = voucherPaketDao.findAllByNoRecIn(setIdVoucher);
|
||||
List<MapProdukPaket> listMapPaket = mapProdukPaketDao
|
||||
.findByPaketIdIn(listVoucher.stream().map(VoucherPaket::getPaketId).collect(Collectors.toSet()));
|
||||
List<MapProdukPaket> listMapProduk = mapProdukPaketDao.findByProdukEntriIdIn(
|
||||
listData.stream().map(d -> Integer.parseInt(d.get("idProduk").toString())).collect(Collectors.toSet()));
|
||||
List<String> listUndonePaketUtama = new ArrayList<>();
|
||||
{
|
||||
/*
|
||||
* Mengecek seluruh data layanan lintas logbook untuk paket tindakan
|
||||
* utama yang belum selesai
|
||||
*/
|
||||
List<Map<String, Object>> listPelayanan = pelayananPasienDao.findJumlahLayananByVoucherIn(setIdVoucher);
|
||||
listVoucher.forEach(voucher -> {
|
||||
List<MapProdukPaket> listPaketUtama = listMapPaket.stream()
|
||||
.filter(mpaket -> mpaket.getPaketId().equals(voucher.getPaketId())
|
||||
&& (TINDAKAN_UTAMA.equals(mpaket.getJenisMapping())
|
||||
|| VISITE_UTAMA.equals(mpaket.getJenisMapping())))
|
||||
.collect(Collectors.toList());
|
||||
boolean paketUtamaSelesai = true;
|
||||
for (MapProdukPaket paket : listPaketUtama) {
|
||||
List<Integer> listIdEntri = listMapProduk.stream()
|
||||
.filter(mpaket -> paket.getNoRec().equals(mpaket.getNoRec()))
|
||||
.map(MapProdukPaket::getProdukEntriId).collect(Collectors.toList());
|
||||
Double jumlahLayanan = listPelayanan.stream()
|
||||
.filter(p -> listIdEntri.contains(Integer.parseInt(p.get("idProduk").toString())))
|
||||
.map(p -> Double.parseDouble(p.get("jumlah").toString())).reduce(Double::sum).orElse(0.0);
|
||||
if (paket.getJumlah().doubleValue() < jumlahLayanan) {
|
||||
paketUtamaSelesai = false;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!paketUtamaSelesai)
|
||||
listUndonePaketUtama.add(voucher.getNoRec());
|
||||
private List<Map<String, Object>> transformPelayananPaket(Integer idPegawai, String bulan,
|
||||
List<Map<String, Object>> listData) {
|
||||
List<Integer> drKsmObgyn = pegawaiDao.getDokterByKsm(KSM_OBGYN);
|
||||
DateFormat df = new SimpleDateFormat("yyyy-MM");
|
||||
SimpleDateFormat month = new SimpleDateFormat("MMM-yyyy", new Locale("in", "ID"));
|
||||
Date date;
|
||||
try {
|
||||
date = df.parse(bulan);
|
||||
} catch (ParseException e) {
|
||||
throw new ServiceVOException(e.getMessage());
|
||||
}
|
||||
Date tglAwal = DateUtil.startMonth(date);
|
||||
listData.forEach(d -> {
|
||||
if (CommonUtil.isNotNullOrEmpty(d.get("idSayatan")))
|
||||
d.put("keterangan", "Dari " + (100.0 - Double.parseDouble(d.get("persenSayatan").toString()))
|
||||
+ "% komponen tarif, sayatan ke-" + d.get("urutanSayatan").toString());
|
||||
});
|
||||
List<MapProdukPaket> paketList = mapProdukPaketDao.findAll();
|
||||
List<Integer> allProdukEntriId = paketList.stream().map(MapProdukPaket::getProdukEntriId)
|
||||
.collect(Collectors.toList());
|
||||
listData.forEach(d -> {
|
||||
Optional<MapProdukPaket> idProduk = paketList.stream()
|
||||
.filter(mpaket -> mpaket.getProdukEntriId().equals(d.get("idProduk"))).findFirst();
|
||||
d.put("mPaketId", null);
|
||||
d.put("paketId", null);
|
||||
d.put("paketType", null);
|
||||
idProduk.ifPresent(mapProdukPaket -> {
|
||||
d.put("mPaketId", mapProdukPaket.getNoRec());
|
||||
d.put("paketId", mapProdukPaket.getPaketId());
|
||||
if (CommonUtil.isNotNullOrEmpty(mapProdukPaket.getJenisMapping()))
|
||||
d.put("paketType", mapProdukPaket.getJenisMapping().name());
|
||||
});
|
||||
}
|
||||
List<Map<String, Object>> dataExcludeUndone;
|
||||
{
|
||||
/*
|
||||
* Penerapan hasil pengecekan lintas logbook untuk logbook yang
|
||||
* dievaluasi
|
||||
*/
|
||||
List<Integer> setIdPaket = listVoucher.stream().map(VoucherPaket::getPaketId).collect(Collectors.toList());
|
||||
List<MapProdukPaket> listPaketUtama = listMapPaket.stream()
|
||||
.filter(mpaket -> setIdPaket.contains(mpaket.getPaketId())
|
||||
&& (TINDAKAN_UTAMA.equals(mpaket.getJenisMapping())
|
||||
|| VISITE_UTAMA.equals(mpaket.getJenisMapping())))
|
||||
.collect(Collectors.toList());
|
||||
List<String> listIdMapPaket = listPaketUtama.stream().map(MapProdukPaket::getNoRec)
|
||||
.collect(Collectors.toList());
|
||||
List<Integer> listIdEntri = listMapProduk.stream()
|
||||
.filter(mpaket -> listIdMapPaket.contains(mpaket.getNoRec())).map(MapProdukPaket::getProdukEntriId)
|
||||
.collect(Collectors.toList());
|
||||
List<Map<String, Object>> listDataUndone = listData.stream()
|
||||
.filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idVoucherLayanan"))
|
||||
&& listUndonePaketUtama.contains(d.get("idVoucherLayanan").toString())
|
||||
&& listIdEntri.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
.collect(Collectors.toList());
|
||||
Set<String> setIdPelayanan = listDataUndone.stream().map(d -> d.get("idPelayananPasien").toString())
|
||||
.collect(Collectors.toSet());
|
||||
dataExcludeUndone = listData.stream()
|
||||
.filter(d -> !setIdPelayanan.contains(d.get("idPelayananPasien").toString()))
|
||||
.collect(Collectors.toList());
|
||||
}
|
||||
Set<String> setIdVoucherExcludeUndone = dataExcludeUndone.stream().map(d -> d.get("idVoucherDaftar").toString())
|
||||
.collect(Collectors.toSet());
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
if (CommonUtil.isNotNullOrEmpty(setIdVoucherExcludeUndone)) {
|
||||
List<VoucherPaket> listVoucherExcludeUndone = voucherPaketDao.findAllByNoRecIn(setIdVoucherExcludeUndone);
|
||||
List<Integer> listIdPaketExcludeUndone = listVoucherExcludeUndone.stream().map(VoucherPaket::getPaketId)
|
||||
.collect(Collectors.toList());
|
||||
if (CommonUtil.isNotNullOrEmpty(listIdPaketExcludeUndone)) {
|
||||
{
|
||||
/*
|
||||
* Transformasi data tindakan utama dan reduce visite utama
|
||||
*/
|
||||
List<Map<String, Object>> layananKepalaPaket = pelayananPasienDao
|
||||
.findPelayananPasienByPaket(setIdVoucherExcludeUndone, listIdPaketExcludeUndone);
|
||||
List<String> concatIdProdukKelas = layananKepalaPaket.stream()
|
||||
.map(l -> l.get("idProduk").toString() + l.get("idKelas").toString())
|
||||
.collect(Collectors.toList());
|
||||
if (CommonUtil.isNotNullOrEmpty(concatIdProdukKelas)) {
|
||||
List<HargaNettoProdukByKelas> listTarif = hargaNettoProdukByKelasDao
|
||||
.findByConcateProdukKelas(concatIdProdukKelas);
|
||||
layananKepalaPaket.forEach(l -> {
|
||||
Optional<HargaNettoProdukByKelas> first = listTarif.stream()
|
||||
.filter(t -> t.getProdukId().equals(l.get("idProduk"))
|
||||
&& t.getKelasId().equals(l.get("idKelas")))
|
||||
.findFirst();
|
||||
if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1())
|
||||
&& first.get().getHargaNetto1() > 0.0) {
|
||||
l.put("hargaJual", first.get().getHargaNetto1());
|
||||
} else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan())
|
||||
&& first.get().getHargaSatuan() > 0.0) {
|
||||
l.put("hargaJual", first.get().getHargaSatuan());
|
||||
}
|
||||
});
|
||||
List<HargaNettoProdukByKelasD> listDetailTarif = hargaNettoProdukByKelasDDao
|
||||
.findByConcateProdukKelas(concatIdProdukKelas);
|
||||
layananKepalaPaket.forEach(l -> {
|
||||
Optional<HargaNettoProdukByKelasD> first = listDetailTarif.stream()
|
||||
.filter(t -> t.getProdukId().equals(l.get("idProduk"))
|
||||
&& t.getKelasId().equals(l.get("idKelas"))
|
||||
&& JASA_DOKTER_OBGYN.equals(t.getKomponenHargaId()))
|
||||
.findFirst();
|
||||
if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1())
|
||||
&& first.get().getHargaNetto1() > 0.0) {
|
||||
l.put("hargaJasa", first.get().getHargaNetto1());
|
||||
} else if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan())
|
||||
&& first.get().getHargaSatuan() > 0.0) {
|
||||
l.put("hargaJasa", first.get().getHargaSatuan());
|
||||
} else {
|
||||
l.put("hargaJasa", 0.0);
|
||||
}
|
||||
});
|
||||
result.addAll(layananKepalaPaket);
|
||||
});
|
||||
List<MapProdukPaketToProduk> regulerList = mapProdukPaketToProdukDao.findAll();
|
||||
listData.forEach(d -> {
|
||||
Optional<MapProdukPaketToProduk> mRefId = regulerList.stream()
|
||||
.filter(ref -> ref.getMapProdukPaketId().equals(d.get("mPaketId"))).findFirst();
|
||||
d.put("regRefId", null);
|
||||
mRefId.ifPresent(mproduk -> d.put("regRefId", mproduk.getProdukRegulerId()));
|
||||
});
|
||||
List<String> allConcatProdukKelas = listData.stream()
|
||||
.filter(d -> CommonUtil.isNotNullOrEmpty(d.get("regRefId")))
|
||||
.map(d -> d.get("regRefId").toString() + d.get("idKelas").toString()).collect(Collectors.toList());
|
||||
allConcatProdukKelas.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("paketId")))
|
||||
.map(d -> d.get("paketId").toString() + d.get("idKelas").toString()).collect(Collectors.toList()));
|
||||
allConcatProdukKelas.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idProduk")))
|
||||
.map(d -> d.get("idProduk").toString() + d.get("idKelas").toString()).collect(Collectors.toList()));
|
||||
List<HargaNettoProdukByKelasD> tarifDetailReguler = hargaNettoProdukByKelasDDao
|
||||
.findByConcateProdukKelas(allConcatProdukKelas);
|
||||
List<String> allConcatProdukNonkelas = listData.stream()
|
||||
.filter(d -> CommonUtil.isNotNullOrEmpty(d.get("regRefId")))
|
||||
.map(d -> d.get("regRefId").toString() + NON_KELAS).collect(Collectors.toList());
|
||||
allConcatProdukNonkelas.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("paketId")))
|
||||
.map(d -> d.get("paketId").toString() + NON_KELAS).collect(Collectors.toList()));
|
||||
allConcatProdukNonkelas.addAll(listData.stream().filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idProduk")))
|
||||
.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<Integer> setIdIbu = ibuPaketDiRanapByDokter.stream()
|
||||
.map(pasien -> Integer.parseInt(pasien.get("pasienId").toString())).collect(Collectors.toSet());
|
||||
List<Map<String, Object>> ibuAnak = pasienDao.findIdByNoCmOfIbu(setIdIbu);
|
||||
listData.forEach(d -> {
|
||||
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()))
|
||||
.map(bn -> Integer.parseInt(bn.get("idAnak").toString())).collect(Collectors.toList());
|
||||
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())))
|
||||
.filter(paket -> CommonUtil.isNotNullOrEmpty(d.get("paketId")) && Integer
|
||||
.parseInt(d.get("paketId").toString()) == Integer.parseInt(paket.get("paketId").toString()))
|
||||
.findFirst();
|
||||
d.put("tglPulangIbu", null);
|
||||
d.put("bulanPulangIbu", "");
|
||||
d.put("hargaJasa", 0.0);
|
||||
d.put("isBatalPaket", false);
|
||||
first.ifPresent(f -> {
|
||||
d.put("bulanPulangIbu", month.format(f.get("tglKeluar")));
|
||||
d.put("isBatalPaket", f.get("isBatal"));
|
||||
});
|
||||
if (first.isPresent() && drKsmObgyn.contains(idPegawai) && !PERAWAT.name().equals(d.get("paketType"))
|
||||
&& !Boolean.parseBoolean(d.get("isBatalPaket").toString())) {
|
||||
d.put("tglPulangIbu", first.get().get("tglKeluar"));
|
||||
if ((tglAwal.equals(first.get().get("tglKeluar"))
|
||||
|| ((Date) first.get().get("tglKeluar")).after(tglAwal))
|
||||
&& DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))
|
||||
&& TINDAKAN_UTAMA.name().equals(d.get("paketType"))) {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarif = tarifDetailReguler.stream()
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("paketId")))
|
||||
.filter(dt -> dt.getKelasId().equals(d.get("idKelas")))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(SPOG_OPERATOR)).findFirst();
|
||||
if (byDetailTarif.isPresent()) {
|
||||
d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1())
|
||||
? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan());
|
||||
} else {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarifNonKelas = tarifDetailNonKelas.stream()
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("paketId")))
|
||||
.filter(dt -> dt.getKelasId().equals(NON_KELAS))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(SPOG_OPERATOR)).findFirst();
|
||||
byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa",
|
||||
CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1())
|
||||
? byDetailTarifNonKelas.get().getHargaNetto1()
|
||||
: byDetailTarifNonKelas.get().getHargaSatuan()));
|
||||
}
|
||||
} else if ((tglAwal.equals(first.get().get("tglKeluar"))
|
||||
|| ((Date) first.get().get("tglKeluar")).after(tglAwal))
|
||||
&& ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))
|
||||
&& TINDAKAN_UTAMA.name().equals(d.get("paketType"))) {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarif = tarifDetailReguler.stream()
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("paketId")))
|
||||
.filter(dt -> dt.getKelasId().equals(d.get("idKelas")))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(SPOG_ASISTEN)).findFirst();
|
||||
if (byDetailTarif.isPresent()) {
|
||||
d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1())
|
||||
? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan());
|
||||
} else {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarifNonKelas = tarifDetailNonKelas.stream()
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("paketId")))
|
||||
.filter(dt -> dt.getKelasId().equals(NON_KELAS))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(SPOG_ASISTEN)).findFirst();
|
||||
byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa",
|
||||
CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1())
|
||||
? byDetailTarifNonKelas.get().getHargaNetto1()
|
||||
: byDetailTarifNonKelas.get().getHargaSatuan()));
|
||||
}
|
||||
}
|
||||
{
|
||||
/*
|
||||
* Transformasi data tindakan lain-lain
|
||||
*/
|
||||
List<MapProdukPaket> listPaketUtama = listMapPaket.stream()
|
||||
.filter(mpaket -> listIdPaketExcludeUndone.contains(mpaket.getPaketId())
|
||||
&& (TINDAKAN_UTAMA.equals(mpaket.getJenisMapping())
|
||||
|| VISITE_UTAMA.equals(mpaket.getJenisMapping())))
|
||||
.collect(Collectors.toList());
|
||||
List<String> listIdMapPaket = listPaketUtama.stream().map(MapProdukPaket::getNoRec)
|
||||
.collect(Collectors.toList());
|
||||
List<Integer> listIdEntri = listMapProduk.stream()
|
||||
.filter(mpaket -> listIdMapPaket.contains(mpaket.getNoRec()))
|
||||
.map(MapProdukPaket::getProdukEntriId).collect(Collectors.toList());
|
||||
List<Map<String, Object>> listDataUtama = dataExcludeUndone.stream()
|
||||
.filter(d -> CommonUtil.isNotNullOrEmpty(d.get("idVoucherDaftar"))
|
||||
&& setIdVoucherExcludeUndone.contains(d.get("idVoucherDaftar").toString())
|
||||
&& listIdEntri.contains(Integer.parseInt(d.get("idProduk").toString())))
|
||||
.collect(Collectors.toList());
|
||||
Set<String> setIdPelayananUtama = listDataUtama.stream()
|
||||
.map(d -> d.get("idPelayananPasien").toString()).collect(Collectors.toSet());
|
||||
List<Map<String, Object>> layananBadanPaket = dataExcludeUndone.stream()
|
||||
.filter(d -> !setIdPelayananUtama.contains(d.get("idPelayananPasien").toString()))
|
||||
.collect(Collectors.toList());
|
||||
List<String> concatIdProdukKelas = layananBadanPaket.stream()
|
||||
.map(l -> l.get("idProduk").toString() + l.get("idKelas").toString())
|
||||
.collect(Collectors.toList());
|
||||
if (CommonUtil.isNotNullOrEmpty(concatIdProdukKelas)) {
|
||||
List<HargaNettoProdukByKelasD> listDetailTarif = hargaNettoProdukByKelasDDao
|
||||
.findByConcateProdukKelas(concatIdProdukKelas);
|
||||
Set<String> setNorecs = layananBadanPaket.stream()
|
||||
.map(l -> l.get("idPelayananPasien").toString()).collect(Collectors.toSet());
|
||||
List<Map<String, Object>> mappingBadanPaket = pelayananPasienDao.findByNorecs(setNorecs);
|
||||
layananBadanPaket.forEach(l -> {
|
||||
Optional<Map<String, Object>> firstMap = mappingBadanPaket.stream()
|
||||
.filter(m -> l.get("idPelayananPasien").toString().equals(m.get("norec")))
|
||||
.findFirst();
|
||||
if (firstMap.isPresent()) {
|
||||
if (DOKTER_PEMERIKSA.equals(l.get("idJenisPelaksana"))) {
|
||||
Optional<HargaNettoProdukByKelasD> first = listDetailTarif.stream()
|
||||
.filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId"))
|
||||
&& t.getKelasId().equals(l.get("idKelas"))
|
||||
&& JASA_DOKTER.equals(t.getKomponenHargaId()))
|
||||
.findFirst();
|
||||
if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1())
|
||||
&& first.get().getHargaNetto1() > 0.0) {
|
||||
l.put("hargaJasa", first.get().getHargaNetto1());
|
||||
} else if (first.isPresent()
|
||||
&& CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan())
|
||||
&& first.get().getHargaSatuan() > 0.0) {
|
||||
l.put("hargaJasa", first.get().getHargaSatuan());
|
||||
} else {
|
||||
l.put("hargaJasa", 0.0);
|
||||
}
|
||||
} else if (ASISTEN_SPESIALIS.equals(l.get("idJenisPelaksana"))) {
|
||||
Optional<HargaNettoProdukByKelasD> first = listDetailTarif.stream()
|
||||
.filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId"))
|
||||
&& t.getKelasId().equals(l.get("idKelas"))
|
||||
&& JASA_ASISTEN_SPESIALIS.equals(t.getKomponenHargaId()))
|
||||
.findFirst();
|
||||
if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1())
|
||||
&& first.get().getHargaNetto1() > 0.0) {
|
||||
l.put("hargaJasa", first.get().getHargaNetto1());
|
||||
} else if (first.isPresent()
|
||||
&& CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan())
|
||||
&& first.get().getHargaSatuan() > 0.0) {
|
||||
l.put("hargaJasa", first.get().getHargaSatuan());
|
||||
} else {
|
||||
l.put("hargaJasa", 0.0);
|
||||
}
|
||||
} else if (DOKTER_ANASTESI.equals(l.get("idJenisPelaksana"))) {
|
||||
Optional<HargaNettoProdukByKelasD> first = listDetailTarif.stream()
|
||||
.filter(t -> t.getProdukId().equals(firstMap.get().get("produkPaketId"))
|
||||
&& t.getKelasId().equals(l.get("idKelas"))
|
||||
&& JASA_DOKTER_ANASTESI.equals(t.getKomponenHargaId()))
|
||||
.findFirst();
|
||||
if (first.isPresent() && CommonUtil.isNotNullOrEmpty(first.get().getHargaNetto1())
|
||||
&& first.get().getHargaNetto1() > 0.0) {
|
||||
l.put("hargaJasa", first.get().getHargaNetto1());
|
||||
} else if (first.isPresent()
|
||||
&& CommonUtil.isNotNullOrEmpty(first.get().getHargaSatuan())
|
||||
&& first.get().getHargaSatuan() > 0.0) {
|
||||
l.put("hargaJasa", first.get().getHargaSatuan());
|
||||
} else {
|
||||
l.put("hargaJasa", 0.0);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
l.put("hargaJasa", 0.0);
|
||||
}
|
||||
});
|
||||
} else if (!drKsmObgyn.contains(idPegawai) && !PERAWAT.name().equals(d.get("paketType"))
|
||||
&& !Boolean.parseBoolean(d.get("isBatalPaket").toString())) {
|
||||
if (DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana"))) {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarif = tarifDetailReguler.stream()
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("idProduk")))
|
||||
.filter(dt -> dt.getKelasId().equals(d.get("idKelas")))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(JASA_DOKTER)).findFirst();
|
||||
if (byDetailTarif.isPresent()) {
|
||||
d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1())
|
||||
? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan());
|
||||
} else {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarifNonKelas = tarifDetailNonKelas.stream()
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("idProduk")))
|
||||
.filter(dt -> dt.getKelasId().equals(NON_KELAS))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(JASA_DOKTER)).findFirst();
|
||||
byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa",
|
||||
CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1())
|
||||
? byDetailTarifNonKelas.get().getHargaNetto1()
|
||||
: byDetailTarifNonKelas.get().getHargaSatuan()));
|
||||
}
|
||||
} else if (ASISTEN_SPESIALIS.equals(d.get("idJenisPelaksana"))) {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarif = tarifDetailReguler.stream()
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("idProduk")))
|
||||
.filter(dt -> dt.getKelasId().equals(d.get("idKelas")))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(JASA_ASISTEN_SPESIALIS)).findFirst();
|
||||
if (byDetailTarif.isPresent()) {
|
||||
d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1())
|
||||
? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan());
|
||||
} else {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarifNonKelas = tarifDetailNonKelas.stream()
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("idProduk")))
|
||||
.filter(dt -> dt.getKelasId().equals(NON_KELAS))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(JASA_ASISTEN_SPESIALIS)).findFirst();
|
||||
byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa",
|
||||
CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1())
|
||||
? byDetailTarifNonKelas.get().getHargaNetto1()
|
||||
: byDetailTarifNonKelas.get().getHargaSatuan()));
|
||||
}
|
||||
} else if (DOKTER_ANASTESI.equals(d.get("idJenisPelaksana"))) {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarif = tarifDetailReguler.stream()
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("idProduk")))
|
||||
.filter(dt -> dt.getKelasId().equals(d.get("idKelas")))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(JASA_DOKTER_ANASTESI)).findFirst();
|
||||
if (byDetailTarif.isPresent()) {
|
||||
d.put("hargaJasa", CommonUtil.isNotNullOrEmpty(byDetailTarif.get().getHargaNetto1())
|
||||
? byDetailTarif.get().getHargaNetto1() : byDetailTarif.get().getHargaSatuan());
|
||||
} else {
|
||||
Optional<HargaNettoProdukByKelasD> byDetailTarifNonKelas = tarifDetailNonKelas.stream()
|
||||
.filter(dt -> dt.getProdukId().equals(d.get("idProduk")))
|
||||
.filter(dt -> dt.getKelasId().equals(NON_KELAS))
|
||||
.filter(dt -> dt.getKomponenHargaId().equals(JASA_DOKTER_ANASTESI)).findFirst();
|
||||
byDetailTarifNonKelas.ifPresent(hargaNettoProdukByKelasD -> d.put("hargaJasa",
|
||||
CommonUtil.isNotNullOrEmpty(byDetailTarifNonKelas.get().getHargaNetto1())
|
||||
? byDetailTarifNonKelas.get().getHargaNetto1()
|
||||
: byDetailTarifNonKelas.get().getHargaSatuan()));
|
||||
}
|
||||
result.addAll(layananBadanPaket);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
});
|
||||
return listData;
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -2705,17 +2667,63 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
}
|
||||
|
||||
private List<Map<String, Object>> groupingTanggalFixedPay(List<Map<String, Object>> listData) {
|
||||
Map<Integer, Map<Double, Map<Double, Map<Integer, Map<String, Map<String, Map<String, List<Map<String, Object>>>>>>>>> collectTanggal = listData
|
||||
Map<Integer, Map<Double, Map<Double, Map<Integer, Map<String, Map<String, Map<String, Map<String, List<Map<String, Object>>>>>>>>>> collectTanggal = listData
|
||||
.stream()
|
||||
.collect(Collectors.groupingBy(o1 -> Integer.parseInt(o1.get("idProduk").toString()), Collectors
|
||||
.groupingBy(o2 -> Double.parseDouble(o2.get("hargaJasa").toString()), Collectors.groupingBy(
|
||||
o3 -> Double.parseDouble(o3.get("hargaJual").toString()),
|
||||
Collectors.groupingBy(o4 -> Integer.parseInt(o4.get("idKelompokPasien").toString()),
|
||||
Collectors.groupingBy(o5 -> o5.get("jenisRuangan").toString(),
|
||||
Collectors.groupingBy(o6 -> o6.get("keterangan").toString(), Collectors
|
||||
.groupingBy(o7 -> o7.get("tanggal").toString()))))))));
|
||||
Collectors.groupingBy(o6 -> o6.get("bulanPulangIbu").toString(),
|
||||
Collectors.groupingBy(o7 -> o7.get("keterangan").toString(),
|
||||
Collectors.groupingBy(
|
||||
o8 -> o8.get("tanggal").toString())))))))));
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
collectTanggal.forEach((k1, v1) -> v1.forEach((k2, v2) -> v2.forEach((k3, v3) -> v3
|
||||
collectTanggal.forEach((k1, v1) -> v1.forEach((k2, v2) -> v2.forEach((k3, v3) -> v3.forEach((k4, v4) -> v4
|
||||
.forEach((k5, v5) -> v5.forEach((k6, v6) -> v6.forEach((k7, v7) -> v7.forEach((k8, v8) -> {
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("idProduk", k1);
|
||||
map.put("hargaJasa", k2);
|
||||
map.put("hargaJual", k3);
|
||||
map.put("idKelompokPasien", k4);
|
||||
map.put("jenisRuangan", k5);
|
||||
map.put("bulanPulangIbu", k6);
|
||||
map.put("keterangan", k7);
|
||||
map.put("tanggal", k8);
|
||||
List<String> norecs = v8.stream().map(e -> e.get("idPelayananPasienPetugas").toString())
|
||||
.collect(Collectors.toList());
|
||||
map.put("norecs", norecs);
|
||||
double jumlah = v8.stream().mapToDouble(e -> Double.parseDouble(e.get("jumlah").toString())).sum();
|
||||
map.put("jumlah", jumlah);
|
||||
Optional<Map<String, Object>> first = v8.stream().findFirst();
|
||||
first.ifPresent(e -> {
|
||||
map.put("namaProduk", e.get("namaProduk").toString());
|
||||
map.put("kelompokPasien", e.get("kelompokPasien").toString());
|
||||
map.put("tglPelayanan", e.get("tglPelayanan"));
|
||||
map.put("sortIdKelompokPasien", Integer.parseInt(e.get("sortIdKelompokPasien").toString()));
|
||||
map.put("sortIdKelas", Integer.parseInt(e.get("sortIdKelas").toString()));
|
||||
map.put("jenisRuangan", e.get("jenisRuangan").toString());
|
||||
map.put("bulanPulangIbu", e.get("bulanPulangIbu").toString());
|
||||
map.put("keterangan", e.get("keterangan").toString());
|
||||
});
|
||||
result.add(map);
|
||||
}))))))));
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<Map<String, Object>> groupingKategoriFixedPay(List<Map<String, Object>> data) {
|
||||
Map<Integer, Map<Double, Map<Double, Map<Integer, Map<String, Map<String, Map<String, List<Map<String, Object>>>>>>>>> collected = data
|
||||
.stream()
|
||||
.collect(Collectors.groupingBy(o1 -> Integer.parseInt(o1.get("idProduk").toString()), Collectors
|
||||
.groupingBy(o2 -> Double.parseDouble(o2.get("hargaJasa").toString()), Collectors.groupingBy(
|
||||
o3 -> Double.parseDouble(o3.get("hargaJual").toString()),
|
||||
Collectors.groupingBy(o4 -> Integer.parseInt(o4.get("idKelompokPasien").toString()),
|
||||
Collectors.groupingBy(o5 -> o5.get("jenisRuangan").toString(),
|
||||
Collectors.groupingBy(o6 -> o6.get("bulanPulangIbu").toString(),
|
||||
Collectors.groupingBy(
|
||||
o7 -> o7.get("keterangan").toString()))))))));
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
collected.forEach((k1, v1) -> v1.forEach((k2, v2) -> v2.forEach((k3, v3) -> v3
|
||||
.forEach((k4, v4) -> v4.forEach((k5, v5) -> v5.forEach((k6, v6) -> v6.forEach((k7, v7) -> {
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("idProduk", k1);
|
||||
@ -2723,13 +2731,21 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
map.put("hargaJual", k3);
|
||||
map.put("idKelompokPasien", k4);
|
||||
map.put("jenisRuangan", k5);
|
||||
map.put("keterangan", k6);
|
||||
map.put("tanggal", k7);
|
||||
List<String> norecs = v7.stream().map(e -> e.get("idPelayananPasienPetugas").toString())
|
||||
.collect(Collectors.toList());
|
||||
map.put("norecs", norecs);
|
||||
map.put("bulanPulangIbu", k6);
|
||||
map.put("keterangan", k7);
|
||||
List<Map<String, Object>> detail = new ArrayList<>();
|
||||
v7.forEach(d -> {
|
||||
Map<String, Object> mapCount = new HashMap<>();
|
||||
mapCount.put("jumlah", d.get("jumlah"));
|
||||
mapCount.put("norecs", d.get("norecs"));
|
||||
mapCount.put("tanggal", d.get("tanggal"));
|
||||
detail.add(mapCount);
|
||||
});
|
||||
map.put("detail", detail);
|
||||
double jumlah = v7.stream().mapToDouble(e -> Double.parseDouble(e.get("jumlah").toString())).sum();
|
||||
map.put("jumlah", jumlah);
|
||||
double jumlahHargaJasa = jumlah * Double.parseDouble(map.get("hargaJasa").toString());
|
||||
map.put("jumlahHargaJasa", jumlahHargaJasa);
|
||||
Optional<Map<String, Object>> first = v7.stream().findFirst();
|
||||
first.ifPresent(e -> {
|
||||
map.put("namaProduk", e.get("namaProduk").toString());
|
||||
@ -2738,6 +2754,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
map.put("sortIdKelompokPasien", Integer.parseInt(e.get("sortIdKelompokPasien").toString()));
|
||||
map.put("sortIdKelas", Integer.parseInt(e.get("sortIdKelas").toString()));
|
||||
map.put("jenisRuangan", e.get("jenisRuangan").toString());
|
||||
map.put("bulanPulangIbu", e.get("bulanPulangIbu").toString());
|
||||
map.put("keterangan", e.get("keterangan").toString());
|
||||
});
|
||||
result.add(map);
|
||||
@ -2745,53 +2762,6 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<Map<String, Object>> groupingKategoriFixedPay(List<Map<String, Object>> data) {
|
||||
Map<Integer, Map<Double, Map<Double, Map<Integer, Map<String, Map<String, List<Map<String, Object>>>>>>>> collected = data
|
||||
.stream()
|
||||
.collect(Collectors.groupingBy(o1 -> Integer.parseInt(o1.get("idProduk").toString()), Collectors
|
||||
.groupingBy(o2 -> Double.parseDouble(o2.get("hargaJasa").toString()), Collectors.groupingBy(
|
||||
o3 -> Double.parseDouble(o3.get("hargaJual").toString()),
|
||||
Collectors.groupingBy(o4 -> Integer.parseInt(o4.get("idKelompokPasien").toString()),
|
||||
Collectors.groupingBy(o5 -> o5.get("jenisRuangan").toString(),
|
||||
Collectors.groupingBy(o6 -> o6.get("keterangan").toString())))))));
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
collected.forEach((k1, v1) -> v1.forEach((k2, v2) -> v2
|
||||
.forEach((k3, v3) -> v3.forEach((k4, v4) -> v4.forEach((k5, v5) -> v5.forEach((k6, v6) -> {
|
||||
HashMap<String, Object> map = new HashMap<>();
|
||||
map.put("idProduk", k1);
|
||||
map.put("hargaJasa", k2);
|
||||
map.put("hargaJual", k3);
|
||||
map.put("idKelompokPasien", k4);
|
||||
map.put("jenisRuangan", k5);
|
||||
map.put("keterangan", k6);
|
||||
List<Map<String, Object>> detail = new ArrayList<>();
|
||||
v6.forEach(d -> {
|
||||
Map<String, Object> mapCount = new HashMap<>();
|
||||
mapCount.put("jumlah", d.get("jumlah"));
|
||||
mapCount.put("norecs", d.get("norecs"));
|
||||
mapCount.put("tanggal", d.get("tanggal"));
|
||||
detail.add(mapCount);
|
||||
});
|
||||
map.put("detail", detail);
|
||||
double jumlah = v6.stream().mapToDouble(e -> Double.parseDouble(e.get("jumlah").toString())).sum();
|
||||
map.put("jumlah", jumlah);
|
||||
double jumlahHargaJasa = jumlah * Double.parseDouble(map.get("hargaJasa").toString());
|
||||
map.put("jumlahHargaJasa", jumlahHargaJasa);
|
||||
Optional<Map<String, Object>> first = v6.stream().findFirst();
|
||||
first.ifPresent(e -> {
|
||||
map.put("namaProduk", e.get("namaProduk").toString());
|
||||
map.put("kelompokPasien", e.get("kelompokPasien").toString());
|
||||
map.put("tglPelayanan", e.get("tglPelayanan"));
|
||||
map.put("sortIdKelompokPasien", Integer.parseInt(e.get("sortIdKelompokPasien").toString()));
|
||||
map.put("sortIdKelas", Integer.parseInt(e.get("sortIdKelas").toString()));
|
||||
map.put("jenisRuangan", e.get("jenisRuangan").toString());
|
||||
map.put("keterangan", e.get("keterangan").toString());
|
||||
});
|
||||
result.add(map);
|
||||
}))))));
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> detailLogbookTarifDokter(Integer idPegawai, List<String> norecs) {
|
||||
return pelayananPasienDao.findPelayananPasienByPetugasAndPelayananPasien(idPegawai, norecs);
|
||||
@ -2902,13 +2872,14 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
List<Map<String, Object>> tarifProdukReguler = hargaNettoProdukByKelasDao
|
||||
.checkExisting(voucher.getKelasId(), produkReguler.getId());
|
||||
if (CommonUtil.isNullOrEmpty(tarifProdukReguler) && tarifProdukReguler.isEmpty()) {
|
||||
tarifProdukReguler = hargaNettoProdukByKelasDao
|
||||
.checkExisting(NON_KELAS, produkReguler.getId());
|
||||
tarifProdukReguler = hargaNettoProdukByKelasDao.checkExisting(NON_KELAS,
|
||||
produkReguler.getId());
|
||||
if (CommonUtil.isNullOrEmpty(tarifProdukReguler) && tarifProdukReguler.isEmpty())
|
||||
throw new ServiceVOException("Referensi harga tarif reguler tidak ditemukan untuk produk "
|
||||
+ mproduk.getMapProdukPaket().getProdukEntri().getNamaProduk() + " -> "
|
||||
+ produkReguler.getNamaProduk() + " dan kelas "
|
||||
+ voucher.getKelas().getNamaKelas());
|
||||
throw new ServiceVOException(
|
||||
"Referensi harga tarif reguler tidak ditemukan untuk produk "
|
||||
+ mproduk.getMapProdukPaket().getProdukEntri().getNamaProduk() + " -> "
|
||||
+ produkReguler.getNamaProduk() + " dan kelas "
|
||||
+ voucher.getKelas().getNamaKelas());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@ -6,17 +6,19 @@ package com.jasamedika.medifirst2000.enums;
|
||||
* @since 18 Sep 2023
|
||||
*/
|
||||
public enum JenisMappingProdukPaket {
|
||||
|
||||
/**
|
||||
* Produk ditandai sebagai tindakan utama di dalam sebuah paket layanan.
|
||||
* Digunakan untuk mengelompokkan hak remunerasi dokter yang bersangkutan
|
||||
*/
|
||||
TINDAKAN_UTAMA,
|
||||
|
||||
/**
|
||||
* Produk ditandai sebagai visite utama dalam sebuah paket layanan.
|
||||
* Digunakan untuk mengelompokkan hak remunerasi dokter yang bersangkutan
|
||||
*/
|
||||
VISITE_UTAMA
|
||||
VISITE_UTAMA,
|
||||
/**
|
||||
* Produk ditandai bukan untuk dikerjakan oleh dokter
|
||||
*/
|
||||
PERAWAT
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,47 @@
|
||||
package com.jasamedika.medifirst2000.entities;
|
||||
|
||||
import com.jasamedika.medifirst2000.base.BaseTransaction;
|
||||
import com.jasamedika.medifirst2000.helper.Caption;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.persistence.*;
|
||||
import javax.validation.constraints.NotNull;
|
||||
|
||||
import static javax.persistence.FetchType.LAZY;
|
||||
|
||||
/**
|
||||
* @author Salman
|
||||
* @version 1.0.0
|
||||
* @since 6 Oct 2023
|
||||
*/
|
||||
@Getter
|
||||
@Setter
|
||||
@Entity
|
||||
@Table(name = "tarifregulerpaket_m", uniqueConstraints = @UniqueConstraint(columnNames = { "mappaketfk", "kelasfk" }))
|
||||
public class TarifRegulerPaket extends BaseTransaction {
|
||||
private static final long serialVersionUID = 1763466609980920417L;
|
||||
|
||||
@ManyToOne(fetch = LAZY)
|
||||
@JoinColumn(name = "mappaketfk")
|
||||
@NotNull(message = "Mapping produk paket tidak boleh kosong")
|
||||
@Caption(value = "Mapping produk paket")
|
||||
private MapProdukPaket mapProdukPaket;
|
||||
|
||||
@Column(name = "mappaketfk", columnDefinition = "CHAR(32)", insertable = false, updatable = false, nullable = false)
|
||||
private String mapProdukPaketId;
|
||||
|
||||
@ManyToOne(fetch = LAZY)
|
||||
@JoinColumn(name = "kelasfk")
|
||||
@NotNull(message = "Kelas tidak boleh kosong")
|
||||
@Caption(value = "Kelas")
|
||||
private Kelas kelas;
|
||||
|
||||
@Column(name = "kelasfk", insertable = false, updatable = false, nullable = false)
|
||||
private Integer kelasId;
|
||||
|
||||
@NotNull(message = "Tarif satuan tidak boleh kosong")
|
||||
@Column(name = "tarifsatuan", nullable = false)
|
||||
@Caption(value = "Tarif satuan")
|
||||
private Double tarifSatuan;
|
||||
}
|
||||
@ -877,7 +877,12 @@
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.VoucherPaket" />
|
||||
<mapping
|
||||
class="com.jasamedika.medifirst2000.entities.PelayananPasienTidakTerklaim" />
|
||||
<mapping
|
||||
class="com.jasamedika.medifirst2000.entities.Sayatan" />
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.Sayatan" />
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.AturanPakai" />
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.AturanPakaiSigna" />
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.FrekuensiPakaiObat" />
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.JumlahDosis" />
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.KeteranganPakaiObat" />
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.SatuanDosis" />
|
||||
</session-factory>
|
||||
</hibernate-configuration>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user