package com.jasamedika.medifirst2000.dao; import java.util.Date; import java.util.List; import java.util.Map; 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.DetailDiagnosaPasien; import com.jasamedika.medifirst2000.entities.Profile; //import com.jasamedika.medifirst2000.entities.AbsensiPegawai; @Repository("BridgingDao") public interface BridgingDao extends PagingAndSortingRepository { //@Query("select c.kdDiagnosa,c.namaDiagnosa,a.tglRegistrasi from DetailDiagnosaPasien a left join Diagnosa c on c.id=a.jenisDiagnosaId where date(a.tglRegistrasi) between :tglAwal and :tglAkhir order by a.tglRegistrasi, c.kdDiagnosa") //@Query("select c.kdDiagnosa,c.namaDiagnosa,a.tglRegistrasi from DetailDiagnosaPasien a left join Diagnosa c on c.id=a.jenisDiagnosaId order by a.tglRegistrasi, c.kdDiagnosa") @Query("from Diagnosa ddp") //@Query("select c.kdDiagnosa,c.namaDiagnosa from Diagnosa c") //@Query(value="select c.kddiagnosa,c.namadiagnosa,b.tglregistrasi from detaildiagnosapasien_t a left join antrianpasiendiperiksa_t b on a.noregistrasifk=b.norec left join diagnosa_m c on c.id=a.objectdiagnosafk where b.tglregistrasi between :tgl1 and :tgl2 order by b.tglregistrasi, c.kddiagnosa",nativeQuery=true) //public List findICDbyDate(@Param("tgl1")String tgl1, @Param("tgl2")String tgl2); public List findICDbyDate(); @Query("from Profile pf") public List biosProfile(); // @Query("select coalesce(max(p.noAntrianTujuan),0) from PasienDiRujukKeIntExt p " // + "where date(p.tglDirujuk)=:dateNow and p.ruanganTujuan.id=:idRuangan") @Query("select p.ruangan.id, p.qtyBed from Kamar p " + "where p.kelasId=1 or p.kelasId=2 or p.kelasId=3 or p.kelasId=4 or p.kelasId=5 or p.kelasId=7 or p.kelasId=8") public List getQtyBed(); @Query("select p.tglRegistrasi, p.pasienDaftar.tglPulang from AntrianPasienDiPeriksa p " + "where p.ruangan.departemenId=16 and date(p.tglRegistrasi) between :dateNow and :dateThen order by p.tglRegistrasi") public List getListPasienRanap(@Param("dateNow")Date dateNow, @Param("dateThen")Date dateThen); @Query("select p.pasienDaftarId, p.ruangan.kdRuangan, p.ruangan.namaRuangan, p.pasienDaftar.kelompokPasien.id from AntrianPasienDiPeriksa p where date(p.tglRegistrasi)=:dateNow and p.ruangan.departemenId=18 order by p.ruangan.kdRuangan") public List kunjunganIrj(@Param("dateNow")Date dateNow); @Query("select p.pasienDaftarId, p.ruangan.kdRuangan, p.ruangan.namaRuangan, p.pasienDaftar.kelompokPasien.id from AntrianPasienDiPeriksa p where date(p.tglRegistrasi)=:dateNow and p.ruangan.departemenId=16 order by p.ruangan.kdRuangan") public List kunjunganIri(@Param("dateNow")Date dateNow); @Query("select p.pasienDaftarId, p.ruangan.kdRuangan, p.ruangan.namaRuangan, p.pasienDaftar.kelompokPasien.id from AntrianPasienDiPeriksa p where date(p.tglRegistrasi)=:dateNow and p.ruangan.departemenId=24 order by p.ruangan.kdRuangan") public List kunjunganIgd(@Param("dateNow")Date dateNow); //@Query("from SuratKeputusan sk") //public List biosSK(); //@Query("select New MAP(jk.ruangan.id as id, jk.ruangan.namaRuangan as namaRuangan, jk.jamBuka as jamBuka, jk.jamTutup as jamTutup, jk.dataJadwal.name as hari) from JadwalKlinik jk") @Query("select new map(jadwalPraktek.jamPraktek as jamPraktek,jadwalPraktek.waktumulai as jamBuka, jadwalPraktek.waktuselesai as jamTutup" + ",hari.namaHari as hari, ruangan.namaRuangan as namaRuangan, ruangan.id as id)" + " from JadwalPraktikDokter model " + " left join model.hari hari " + " left join model.jadwalPraktek jadwalPraktek " + " left join model.ruangan ruangan " + " left join model.dokter dokter " + " where model.statusEnabled = true ") public List> getJadwalKlinik(); @Query("select p.name from DataJadwal p where p.id =:id") public String getDay(@Param("id")Integer id); //@Query("select NEW MAP(p.ruangan.id as idklinik,p.dokter.id as iddokter, p.jadwalPraktek.jamPraktek as jam) from JadwalDokter p where p.ruangan.id = :idKlinik and p.dokter.id = :idDokter and date(p.tanggalJadwal)=date(:tanggal)") @Query("select new map(jadwalPraktek.jamPraktek as jamPraktek,jadwalPraktek.waktumulai as jamBuka, jadwalPraktek.waktuselesai as jamTutup" + ",hari.namaHari as hari, ruangan.namaRuangan as namaRuangan, ruangan.id as id)" + " from JadwalPraktikDokter model " + " left join model.hari hari " + " left join model.jadwalPraktek jadwalPraktek " + " left join model.ruangan ruangan " + " left join model.dokter dokter " + " where model.statusEnabled = true " + " and ruangan.id = :idKlinik and dokter.id = :idDokter and hari.id=:tanggal") public List> getJadwalKlinikbyId(@Param("idDokter")Integer idDokter,@Param("idKlinik")Integer idKlinik,@Param("tanggal") Integer tanggal); @Query(" select setting.nilaiField as nilaiField "+ " from SettingDataFixed setting"+ " where setting.namaField = 'IdDepartemenRawatInap'") public String findIdDepartemenRawatInap(); @Query(" select ruangan.id "+ "from Ruangan ruangan "+ "left join ruangan.departemen departemen "+ "where departemen.id in (:id)") public List findIdRuanganDepartemenRawatInap(@Param("id") List id); @Query(" select new map (statusBed.statusBed as statusBed, "+ "kelas.kodeExternal as namaKelas, "+ "ruangPerawatan.kodeExternal as tipePasien, "+ "count (tempatTidur.id) as countBed) "+ "from TempatTidur tempatTidur "+ "left join tempatTidur.statusBed statusBed "+ "left join tempatTidur.kamar kamar "+ "left join tempatTidur.ruangPerawatanKemenkes ruangPerawatan "+ "left join kamar.kelas kelas "+ "left join kamar.ruangan ruangan "+ "where ruangPerawatan.id =:idRuangan and kelas.id = :idKelas "+ "group by statusBed.statusBed,kelas.kodeExternal,ruangPerawatan.kodeExternal") public List> findCountBed(@Param("idRuangan")Integer idRuangan,@Param("idKelas")Integer idKelas); @Query(" select distinct kelas.id "+ "from TempatTidur tempatTidur "+ "left join tempatTidur.kamar kamar "+ "left join tempatTidur.ruangPerawatanKemenkes ruangPerawatan "+ "left join kamar.kelas kelas "+ "where ruangPerawatan.id = :id "+ "order by kelas.id") public List findIdKelasRuangan(@Param("id")Integer id); @Query(" select asuransi.noAsuransi "+ "from AsuransiPasien asuransi "+ "left join asuransi.noCm pasien "+ "left join asuransi.rekanan rekanan "+ "where rekanan.id = :idRekanan and pasien.noCm = :noCm") public String findNoAsuransi(@Param("idRekanan")Integer idRekanan,@Param("noCm")String noCm); @Query(" select setting.nilaiField as nilaiField "+ " from SettingDataFixed setting"+ " where setting.namaField = 'IdRekananBPJS'") public String findIdBPJS(); @Query(" select distinct ruangPerawatan.id as idRuangan "+ "from TempatTidur tempatTidur "+ "left join tempatTidur.kamar kamar "+ "left join tempatTidur.ruangPerawatanKemenkes ruangPerawatan "+ "left join kamar.ruangan ruangan "+ "where ruangan.id in ( :id) "+ "order by ruangPerawatan.id asc") public List findIdRuanganPerawatan(@Param("id")List id); @Query(" select distinct to_char(kamar.tglUpdate, 'yyyy-MM-dd') "+ "from TempatTidur tempatTidur "+ "left join tempatTidur.kamar kamar "+ "left join tempatTidur.ruangPerawatanKemenkes ruangPerawatan "+ "left join kamar.kelas kelas "+ "where ruangPerawatan.id =:idRuangan and kelas.id = :idKelas and kamar.tglUpdate is not null "+ "order by to_char(kamar.tglUpdate, 'yyyy-MM-dd') desc") public List findTanggalUpdate(@Param("idRuangan")Integer idRuangan,@Param("idKelas")Integer idKelas); @Query(" select setting.nilaiField as nilaiField "+ " from SettingDataFixed setting"+ " where setting.namaField = 'KdKelompokPasienUmum'") public String findIdPasienUmum(); @Query(" select setting.nilaiField as nilaiField "+ " from SettingDataFixed setting"+ " where setting.namaField = 'KdDepartemenInstalasiGawatDarurat'") public String findIdUGD(); @Query(" select setting.nilaiField as nilaiField "+ " from SettingDataFixed setting"+ " where setting.namaField = 'IdRawatInap'") public String findIdRawatInap(); @Query(" select setting.nilaiField as nilaiField "+ " from SettingDataFixed setting"+ " where setting.namaField = 'IdRawatJalan'") public String findIdRawatjalan(); @Query(" select setting.nilaiField as nilaiField "+ " from SettingDataFixed setting"+ " where setting.namaField = 'IdProdukAkomodasi'") public String findIdProdukAkomodasi(); @Query(" select count(antrian.noRec) "+ "from PasienDaftar antrian "+ "where to_char(antrian.tglRegistrasi,'yyyy')=:tahun "+ "and to_char(antrian.tglRegistrasi,'MM')=:bulan") public Long findTotalKunjungan(@Param("tahun")String tahun,@Param("bulan")String bulan); @Query(" select count(pasien.id) "+ "from Pasien pasien "+ "where pasien.id is not null and "+ "to_char(pasien.tglDaftar,'yyyy') = :tahun "+ "and to_char(pasien.tglDaftar,'mm') = :bulan") public Long findTotalPasien(@Param("tahun")String tahun,@Param("bulan")String bulan); @Query(" select count(pasienDaftar.noRec) "+ "from PasienDaftar pasienDaftar "+ "left join pasienDaftar.kelompokPasien kelompokPasien "+ "where kelompokPasien.id = :idPasienUmum and "+ "to_char(pasienDaftar.tglRegistrasi,'yyyy') = :tahun "+ "and to_char(pasienDaftar.tglRegistrasi,'mm') = :bulan") public Long findTotalKunjunganPasienUmum(@Param("tahun")String tahun,@Param("bulan")String bulan,@Param("idPasienUmum")Integer idPasienUmum); @Query(" select count(distinct pasien.id) "+ "from PasienDaftar pasienDaftar "+ "left join pasienDaftar.kelompokPasien kelompokPasien "+ "left join pasienDaftar.pasien pasien "+ "where kelompokPasien.id = :idPasienUmum and "+ "to_char(pasienDaftar.tglRegistrasi,'yyyy') = :tahun "+ "and to_char(pasienDaftar.tglRegistrasi,'mm') = :bulan") public Long findTotalPasienUmum(@Param("tahun")String tahun,@Param("bulan")String bulan,@Param("idPasienUmum")Integer idPasienUmum); @Query(" select count(distinct pasien.id) "+ "from PasienDaftar pasienDaftar "+ "left join pasienDaftar.ruangan ruangan "+ "left join ruangan.departemen departemen "+ "left join pasienDaftar.pasien pasien "+ "where departemen.id = :idDepUGD and "+ "to_char(pasienDaftar.tglRegistrasi,'yyyy') = :tahun "+ "and to_char(pasienDaftar.tglRegistrasi,'mm') = :bulan") public Long findTotalPasienUGD(@Param("tahun")String tahun,@Param("bulan")String bulan,@Param("idDepUGD")Integer idDepUGD); @Query(" select count(pasienDaftar.noRec) "+ "from PasienDaftar pasienDaftar "+ "left join pasienDaftar.ruangan ruangan "+ "left join ruangan.departemen departemen "+ "left join pasienDaftar.pasien pasien "+ "where departemen.id = :idDepUGD and "+ "to_char(pasienDaftar.tglRegistrasi,'yyyy') = :tahun "+ "and to_char(pasienDaftar.tglRegistrasi,'mm') = :bulan") public Long findTotalKunjunganPasienUGD(@Param("tahun")String tahun,@Param("bulan")String bulan,@Param("idDepUGD")Integer idDepUGD); @Query(" select count(distinct pasien.id) "+ "from PasienDaftar pasienDaftar "+ "left join pasienDaftar.ruangan ruangan "+ "left join ruangan.departemen departemen "+ "left join pasienDaftar.pasien pasien "+ "where departemen.id in (:idDep) and "+ "to_char(pasienDaftar.tglRegistrasi,'yyyy') = :tahun "+ "and to_char(pasienDaftar.tglRegistrasi,'mm') = :bulan") public Long findTotalPasienRawatJalan(@Param("tahun")String tahun,@Param("bulan")String bulan,@Param("idDep")List idDep); @Query(" select count(pasienDaftar.noRec) "+ "from PasienDaftar pasienDaftar "+ "left join pasienDaftar.ruangan ruangan "+ "left join ruangan.departemen departemen "+ "left join pasienDaftar.pasien pasien "+ "where departemen.id in (:idDep) and "+ "to_char(pasienDaftar.tglRegistrasi,'yyyy') = :tahun "+ "and to_char(pasienDaftar.tglRegistrasi,'mm') = :bulan") public Long findTotalKunjunganPasienRawatJalan(@Param("tahun")String tahun,@Param("bulan")String bulan,@Param("idDep")List idDep); @Query(" select count(distinct pasien.id) "+ "from PasienDaftar pasienDaftar "+ "left join pasienDaftar.ruangan ruangan "+ "left join ruangan.departemen departemen "+ "left join pasienDaftar.pasien pasien "+ "where departemen.id in (:idDep) and "+ "to_char(pasienDaftar.tglRegistrasi,'yyyy') = :tahun "+ "and to_char(pasienDaftar.tglRegistrasi,'mm') = :bulan") public Long findTotalPasienRawatInap(@Param("tahun")String tahun,@Param("bulan")String bulan,@Param("idDep")List idDep); @Query(" select count(pasienDaftar.noRec) "+ "from PasienDaftar pasienDaftar "+ "left join pasienDaftar.ruangan ruangan "+ "left join ruangan.departemen departemen "+ "left join pasienDaftar.pasien pasien "+ "where departemen.id in (:idDep) and "+ "to_char(pasienDaftar.tglRegistrasi,'yyyy') = :tahun "+ "and to_char(pasienDaftar.tglRegistrasi,'mm') = :bulan") public Long findTotalKunjunganPasienRawatInap(@Param("tahun")String tahun,@Param("bulan")String bulan,@Param("idDep")List idDep); @Query(" select count(pasienDaftar.noRec) "+ "from PasienDaftar pasienDaftar "+ "left join pasienDaftar.kelompokPasien kelompokPasien "+ "where kelompokPasien.id != :idPasienUmum and "+ "to_char(pasienDaftar.tglRegistrasi,'yyyy') = :tahun "+ "and to_char(pasienDaftar.tglRegistrasi,'mm') = :bulan") public Long findTotalKunjunganPasienJaminan(@Param("tahun")String tahun,@Param("bulan")String bulan,@Param("idPasienUmum")Integer idPasienUmum); @Query(" select count(distinct pasien.id) "+ "from PasienDaftar pasienDaftar "+ "left join pasienDaftar.kelompokPasien kelompokPasien "+ "left join pasienDaftar.pasien pasien "+ "where kelompokPasien.id != :idPasienUmum and "+ "to_char(pasienDaftar.tglRegistrasi,'yyyy') = :tahun "+ "and to_char(pasienDaftar.tglRegistrasi,'mm') = :bulan") public Long findTotalPasienJaminan(@Param("tahun")String tahun,@Param("bulan")String bulan,@Param("idPasienUmum")Integer idPasienUmum); @Query(" select distinct new map(harga.hargaSatuan as hargaSatuan, "+ "kelas.namaKelas as namaKelas) "+ "from HargaNettoProdukByKelas harga "+ "left join harga.produk produk "+ "left join harga.kelas kelas "+ "where produk.id = :idproduk ") public List> findTarifAkomodasi(@Param("idproduk")Integer idproduk); @Query(" select count(pasienDaftar.noRec) "+ "from PasienDaftar pasienDaftar "+ "left join pasienDaftar.kelas kelas "+ "where to_char(pasienDaftar.tglRegistrasi,'yyyy')= :tahun "+ "and to_char(pasienDaftar.tglRegistrasi,'mm')= :bulan and kelas.id in (:kelas)") public Integer findTotalKunjunganPasienPerKelas(@Param("tahun")String tahun,@Param("bulan")String bulan,@Param("kelas")List kelas); }