2023-10-27 09:37:18 +07:00

235 lines
15 KiB
Java

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<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.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();
@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=: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='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<Ruangan> 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<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")
List<Ruangan> 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<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")
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")
List<Ruangan> 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<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")
List<Ruangan> 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<Ruangan> findAllRuanganRehabilitasiMedik();
@Query("select NEW Map(r.id as ruanganId,r.namaRuangan as namaRuangan) from Ruangan r ")
List<Map<String, Object>> 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<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 ")
List<Map<String, Object>> 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<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 ")
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<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")
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')"
+ "and r.statusEnabled=true and r.headRuangan is not null order by r.namaRuangan ")
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') "
+ "and r.statusEnabled=true and r.headRuangan is not null order by r.namaRuangan ")
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') "
+ "and r.statusEnabled=true and r.headRuangan is not null order by r.namaRuangan ")
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' ) "
+ "order by r.namaRuangan ")
List<Ruangan> findRuanganRanap();
@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(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.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")
List<Map<String, Object>> findRajalBPJS(@Param("listIdDept") List<Integer> listIdDept);
}