58 lines
3.6 KiB
Java
58 lines
3.6 KiB
Java
package com.jasamedika.medifirst2000.dao;
|
|
|
|
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.PelayananPasienNakes;
|
|
|
|
@Repository("pelayananPasienNakesDao")
|
|
public interface PelayananPasienNakesDao extends PagingAndSortingRepository<PelayananPasienNakes, String> {
|
|
|
|
@Query("select new Map(pp.noRec as noRec,pp.antrianPasienDiperiksaId as noRecAPD,"
|
|
+ "pr.id as produkId,pr.namaProduk as namaProduk," + "pfs.id as profesiId,pfs.namaProfesi as namaProfesi,"
|
|
+ "pp.tglPelayanan as tglPelayanan,"
|
|
+ "to_char(pp.tglPelayanan,'dd-MM-yyyy HH24:MI:ss') as tglPelayananFormatted,"
|
|
+ "pp.jumlah as jumlah,pp.skor as skor,(pp.jumlah*pp.skor) as tSkor,"
|
|
+ "pg.id as pegawaiId,pg.namaLengkap as namaLengkap) " + "from PelayananPasienNakes pp "
|
|
+ "inner join pp.produk pr " + "inner join pr.profesi pfs " + "left join pp.pegawai pg "
|
|
+ "where pp.statusEnabled is true " + "and pp.antrianPasienDiperiksaId = :norecAPD "
|
|
+ "and pg.id = :pegawaiId " + "order by pp.tglPelayanan")
|
|
List<Map<String, Object>> findByAntrianPasienDiperiksa(@Param("norecAPD") String noRec,
|
|
@Param("pegawaiId") Integer idPegawai);
|
|
|
|
@Query("select ppn from PelayananPasienNakes ppn " + "where ppn.statusEnabled is true "
|
|
+ "and to_char(ppn.tglPelayanan,'yyyy-MM') = :bulan " + "and ppn.pegawaiId = :pegawaiId")
|
|
List<PelayananPasienNakes> findAllPelayananByKontrak(@Param("bulan") String bulan,
|
|
@Param("pegawaiId") Integer idPegawai);
|
|
|
|
@Query("select new Map(ppn.noRec as noRec," + "ppn.tglPelayanan as tglPelayanan,"
|
|
+ "ppn.skor as skor,ppn.jumlah as jumlah," + "ppn.skor*ppn.jumlah as tSkor,"
|
|
+ "ppn.antrianPasienDiperiksaId as detail," + "pn.id as produkId,pn.namaProduk as namaProduk,"
|
|
+ "pn.kdProduk as kdProduk," + "(case when pn.kdProduk = 1 then 'Pelayanan Pasien' "
|
|
+ "when pn.kdProduk = 2 then 'Pelayanan Non-Pasien' end) as kodeProduk,"
|
|
+ "pg.id as pegawaiId,pg.namaLengkap as namaLengkap) " + "from PelayananPasienNakes ppn "
|
|
+ "inner join ppn.produk pn " + "inner join ppn.pegawai pg " + "where ppn.statusEnabled is true "
|
|
+ "and pn.statusEnabled is true " + "and pg.statusEnabled is true "
|
|
+ "and to_char(ppn.tglPelayanan,'yyyy-MM') = :bulan " + "and ppn.pegawaiId = :pegawaiId "
|
|
+ "order by pn.namaProduk, ppn.tglPelayanan")
|
|
List<Map<String, Object>> findPelayananNakes(@Param("bulan") String bulan, @Param("pegawaiId") Integer idPegawai);
|
|
|
|
@Query("select new Map(ppn.tglPelayanan as tglPelayanan,"
|
|
+ "to_char(ppn.tglPelayanan,'yyyy-MM-dd HH24:MI:ss') as tglPelayananFormatted," + "ppn.jumlah as jumlah,"
|
|
+ "pd.noRegistrasi as noRegistrasi," + "ps.noCm as noCm," + "ps.namaPasien as namaPasien,"
|
|
+ "pn.id as produkId,pn.namaProduk as namaProduk," + "ru.namaRuangan as namaRuangan) "
|
|
+ "from PelayananPasienNakes ppn " + "inner join ppn.antrianPasienDiperiksa apd "
|
|
+ "inner join ppn.pegawai pg " + "inner join ppn.produk pn " + "inner join apd.pasienDaftar pd "
|
|
+ "inner join apd.ruangan ru " + "inner join pd.pasien ps " + "where ppn.statusEnabled is true "
|
|
+ "and pg.statusEnabled is true " + "and pd.statusEnabled is true " + "and pg.id = :pegawaiId "
|
|
+ "and pn.id = :produkId " + "and to_char(ppn.tglPelayanan,'yyyy-MM-dd') = :tglPelayanan")
|
|
List<Map<String, Object>> findPelayananNakesDetail(@Param("pegawaiId") Integer idPegawai,
|
|
@Param("produkId") Integer idProduk, @Param("tglPelayanan") String tglPelayanan);
|
|
|
|
}
|