package com.jasamedika.medifirst2000.dao; 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, JpaSpecificationExecutor { @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); // custom query WITH pagination @Query("select model from Ruangan model where model.namaRuangan=:nama and model.statusEnabled=true") public Page 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 and r.headRuangan is null order by r.namaRuangan ") public List 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='KdDepartemenInstalasiRawatJalan' or s.namaField='KdDepartemenInstalasiRadiologi' or s.namaField='KdDepartemenInstalasiLaboratorium' or s.namaField='KdDepartemenInstalasiRehabilitasiMedik' ) and r.statusEnabled=true order by r.namaRuangan ") public List 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=:nama ) and r.statusEnabled=true order by r.namaRuangan ") public List 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='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 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 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 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 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 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") List 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 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 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 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 findRuanganByParent(@Param("idRuangan") Integer idRuangan); @Query("select count(*) from Ruangan r where r.headRuangan.id=:idRuangan") public 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.departemen.id in (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdDepartemenInstalasiRehabMedik' ) and r.statusEnabled=true ") public List 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 findRuanganPelayanan(); @Query("select NEW Map(r.id as ruanganId,r.namaRuangan as namaRuangan) from Ruangan r ") public List> 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> 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> 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> 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") 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 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 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> 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 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> getRuanganPelayanan(@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=(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 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') " + "and r.statusEnabled=true and r.headRuangan is not null order by r.namaRuangan ") public List 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') " + "and r.statusEnabled=true and r.headRuangan is not null order by r.namaRuangan ") public List 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' ) " + "order by r.namaRuangan ") public List 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 findRuanganRehabMedik(); @Query("select new map (unitKerja.id as id,unitKerja.namaRuangan as namaRuangan) from Pegawai pegawai join pegawai.ruangan unitKerja") public List> 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") public Map 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> 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> findRajalBPJS(@Param("listIdDept") List listIdDept); }