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; /** * Repository class for Ruangan * * @author Askur */ public interface RuanganDao extends JpaRepository, 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") 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 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") 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") 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") 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='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 r from Ruangan r where r.namaRuangan like %:namaRuangan%") List findRuangRapat(@Param("namaRuangan") String namaRuangan); @Query("select r from Ruangan r " + "where r.id in (Select cast(s.nilaiField as int) " + "from SettingDataFixed s " + "where s.namaField='KdRuanganLoundry')") 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") List findRuanganByDepartemenByName(@Param("namaRuangan") String namaRuangan); @Query("select r from Ruangan r " + "where r.id in (Select cast(s.nilaiField as int) " + "from SettingDataFixed s " + "where s.namaField='KdRuanganCssd')") 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") List findRuanganLaboratorium(); @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%'") 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") List findRuanganByParent(@Param("idRuangan") Integer idRuangan); @Query("select count(*) from Ruangan r where r.headRuangan.id=: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") 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") List findAllRuanganRehabilitasiMedik(); @Query("select NEW Map(r.id as ruanganId,r.namaRuangan as namaRuangan) from Ruangan r ") List> findAllRuangan(); @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> 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 ") List> findAllRuanganForTagihanByInstalasiId(@Param("instalasiId") Integer instalasiId); @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 map(r.id as id, r.namaRuangan as nmRuangan) from Ruangan r where r.departemenId in (16)") 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 ") 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") 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") Map 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')" + "and r.statusEnabled=true and r.headRuangan is not null order by r.namaRuangan ") 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 ") 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 ") 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 ") List findRuanganRanap(); @Query("select new map (unitKerja.id as id,unitKerja.namaRuangan as namaRuangan) " + "from Pegawai pegawai " + "join pegawai.ruangan unitKerja") 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") 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") 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") List> findRajalBPJS(@Param("listIdDept") List listIdDept); }