diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienPerawatDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienPerawatDao.java new file mode 100644 index 00000000..5fc11f78 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienPerawatDao.java @@ -0,0 +1,11 @@ +package com.jasamedika.medifirst2000.dao; + +import org.springframework.data.repository.PagingAndSortingRepository; +import org.springframework.stereotype.Repository; + +import com.jasamedika.medifirst2000.entities.PelayananPasienPerawat; + +@Repository("pelayananPasienPerawatDao") +public interface PelayananPasienPerawatDao extends PagingAndSortingRepository { + +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanPerawatDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanPerawatDao.java new file mode 100644 index 00000000..2c964c3c --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanPerawatDao.java @@ -0,0 +1,81 @@ +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.SkoringTindakanPerawat; + +@Repository("skoringTindakanPerawatDao") +public interface SkoringTindakanPerawatDao extends PagingAndSortingRepository { + + String strAllEnabled = "select new Map(stp.noRec as noRec," + "stp.statusEnabled as statusEnabled," + + "stp.skor as skor," + "stp.statusVerifikasi as kdVerif," + + "(case when stp.statusVerifikasi is false then 'Belum Verifikasi' " + + "when stp.statusVerifikasi is true then 'Terverifikasi' end) as stVerif," + + "stp.tanggalMulaiBerlaku as tglMulaiBerlaku," + "stp.tanggalPembaharuanData as tglPembaharuanData," + + "prp.id as produkId,prp.namaProduk as namaProduk," + "prp.klasifikasi as kdKlasif," + + "(case when prp.klasifikasi = 0 then 'Tidak Ada' " + "when prp.klasifikasi = 1 then 'Asuhan' " + + "when prp.klasifikasi = 2 then 'Tindakan' " + "when prp.klasifikasi = 3 then 'Laporan' end) as stKlasif) " + + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + "where stp.statusEnabled is true"; + + String produk = " and lower(prp.namaProduk) like %:namaProduk%"; + + String statusVerifikasi = " and stp.statusVerifikasi = :isVerif"; + + String statusKlasifikasi = " and prp.klasifikasi = :kdKlasif"; + + String sortSearch = " order by prp.namaProduk asc,stp.tanggalPembaharuanData desc"; + + @Query(strAllEnabled + sortSearch) + List> findAllEnabled(); + + @Query(strAllEnabled + produk + sortSearch) + List> findAllEnabledByProduk(@Param("namaProduk") String namaProduk); + + @Query(strAllEnabled + statusVerifikasi + sortSearch) + List> findAllEnabledByVerif(@Param("isVerif") Boolean isVerif); + + @Query(strAllEnabled + statusKlasifikasi + sortSearch) + List> findAllEnabledByKlasif(@Param("kdKlasif") Short kdKlasif); + + @Query(strAllEnabled + produk + statusVerifikasi + sortSearch) + List> findAllEnabledByProdukVerif(@Param("namaProduk") String namaProduk, + @Param("isVerif") Boolean isVerif); + + @Query(strAllEnabled + produk + statusKlasifikasi + sortSearch) + List> findAllEnabledByProdukKlasif(@Param("namaProduk") String namaProduk, + @Param("kdKlasif") Short kdKlasif); + + @Query(strAllEnabled + statusVerifikasi + statusKlasifikasi + sortSearch) + List> findAllEnabledByVerifKlasif(@Param("isVerif") Boolean isVerif, + @Param("kdKlasif") Short kdKlasif); + + @Query(strAllEnabled + produk + statusVerifikasi + statusKlasifikasi + sortSearch) + List> findAllEnabledByProdukVerifKlasif(@Param("namaProduk") String namaProduk, + @Param("isVerif") Boolean isVerif, @Param("kdKlasif") Short kdKlasif); + + String strCekDupSkoring = "select stp.noRec " + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + + "where stp.statusEnabled is true " + + "and lower(regexp_replace(prp.namaProduk,:patternText,'','g')) = :namaProduk " + "and stp.skor = :skor"; + + String idSkoring = " and stp.noRec <> :noRec"; + + @Query(strCekDupSkoring) + List findDupSkoring(@Param("namaProduk") String namaProduk, @Param("skor") Double skor, + @Param("patternText") String patternText); + + @Query(strCekDupSkoring + idSkoring) + List findDupSkoring(@Param("namaProduk") String namaProduk, @Param("skor") Double skor, + @Param("patternText") String patternText, @Param("noRec") String noRec); + + @Query("select new Map(stp.noRec as noRec,stp.skor as skor," + "prp.namaProduk as namaProduk) " + + "from SkoringTindakanPerawat stp " + "inner join stp.produk prp " + "where stp.statusEnabled is true " + + "and stp.noRec in (:listNorec)") + List> findAllDup(@Param("listNorec") List listNorec); + +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananPasienPerawatService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananPasienPerawatService.java new file mode 100644 index 00000000..dc9fa342 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananPasienPerawatService.java @@ -0,0 +1,8 @@ +package com.jasamedika.medifirst2000.service; + +import com.jasamedika.medifirst2000.entities.PelayananPasienPerawat; +import com.jasamedika.medifirst2000.vo.PelayananPasienPerawatVO; + +public interface PelayananPasienPerawatService extends BaseVoService { + +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SkoringTindakanPerawatService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SkoringTindakanPerawatService.java new file mode 100644 index 00000000..e46d7f41 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SkoringTindakanPerawatService.java @@ -0,0 +1,22 @@ +package com.jasamedika.medifirst2000.service; + +import java.util.List; +import java.util.Map; + +import org.springframework.orm.jpa.JpaSystemException; + +import com.jasamedika.medifirst2000.entities.SkoringTindakanPerawat; +import com.jasamedika.medifirst2000.vo.SkoringTindakanPerawatVO; + +public interface SkoringTindakanPerawatService + extends BaseVoService { + + List> findAllEnabled(String namaProduk, Boolean isVerif, Short kdKlasif) + throws JpaSystemException; + + List> findDuplicateSkoring(String namaProduk, Double skor, String noRec) + throws JpaSystemException; + + Map findAkses(Integer idPegawai) throws JpaSystemException; + +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienPerawatServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienPerawatServiceImpl.java new file mode 100644 index 00000000..92c4de19 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienPerawatServiceImpl.java @@ -0,0 +1,127 @@ +package com.jasamedika.medifirst2000.service.impl; + +import java.util.ArrayList; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.orm.jpa.JpaSystemException; +import org.springframework.stereotype.Service; + +import com.jasamedika.medifirst2000.converter.BaseConverterImpl; +import com.jasamedika.medifirst2000.dao.PelayananPasienPerawatDao; +import com.jasamedika.medifirst2000.entities.AntrianPasienDiPeriksa; +import com.jasamedika.medifirst2000.entities.Pegawai; +import com.jasamedika.medifirst2000.entities.PelayananPasienPerawat; +import com.jasamedika.medifirst2000.entities.ProdukPerawat; +import com.jasamedika.medifirst2000.exception.ServiceVOException; +import com.jasamedika.medifirst2000.service.PelayananPasienPerawatService; +import com.jasamedika.medifirst2000.util.CommonUtil; +import com.jasamedika.medifirst2000.vo.AntrianPasienDiPeriksaVO; +import com.jasamedika.medifirst2000.vo.PegawaiVO; +import com.jasamedika.medifirst2000.vo.PelayananPasienPerawatVO; +import com.jasamedika.medifirst2000.vo.ProdukPerawatVO; + +@Service("pelayananPasienPerawatService") +public class PelayananPasienPerawatServiceImpl extends BaseVoServiceImpl implements PelayananPasienPerawatService { + + @Autowired + private BaseConverterImpl pelayananPerawatConverter; + + @Autowired + private BaseConverterImpl antrianPasienConverter; + + @Autowired + private BaseConverterImpl produkPerawatConverter; + + @Autowired + private BaseConverterImpl pegawaiConverter; + + @Autowired + private PelayananPasienPerawatDao pelayananPerawatDao; + + @Override + public PelayananPasienPerawatVO add(PelayananPasienPerawatVO vo) throws JpaSystemException, ServiceVOException { + AntrianPasienDiPeriksa antrianPasien = antrianPasienConverter.transferVOToModel(vo.getAntrianPasienDiperiksa(), + new AntrianPasienDiPeriksa()); + ProdukPerawat produk = produkPerawatConverter.transferVOToModel(vo.getProduk(), new ProdukPerawat()); + Pegawai verifikator = pegawaiConverter.transferVOToModel(vo.getVerifikator(), new Pegawai()); + PelayananPasienPerawat pelayananPerawat = pelayananPerawatConverter.transferVOToModel(vo, + new PelayananPasienPerawat()); + + pelayananPerawat.setAntrianPasienDiperiksa(antrianPasien); + pelayananPerawat.setProduk(produk); + pelayananPerawat.setVerifikator(verifikator); + PelayananPasienPerawat resultModel = pelayananPerawatDao.save(pelayananPerawat); + + PelayananPasienPerawatVO resultVO = new PelayananPasienPerawatVO(); + resultVO = pelayananPerawatConverter.transferModelToVO(resultModel, resultVO); + + return resultVO; + } + + @Override + public PelayananPasienPerawatVO update(PelayananPasienPerawatVO vo) throws JpaSystemException, ServiceVOException { + PelayananPasienPerawat pelayananPerawatLama = pelayananPerawatDao.findOne(vo.getNoRec()); + + AntrianPasienDiPeriksa antrianPasien = antrianPasienConverter.transferVOToModel(vo.getAntrianPasienDiperiksa(), + new AntrianPasienDiPeriksa()); + ProdukPerawat produk = produkPerawatConverter.transferVOToModel(vo.getProduk(), new ProdukPerawat()); + Pegawai verifikator = pegawaiConverter.transferVOToModel(vo.getVerifikator(), new Pegawai()); + PelayananPasienPerawat pelayananPerawatBaru = pelayananPerawatConverter.transferVOToModel(vo, + pelayananPerawatLama); + + pelayananPerawatBaru.setAntrianPasienDiperiksa(antrianPasien); + pelayananPerawatBaru.setProduk(produk); + pelayananPerawatBaru.setVerifikator(verifikator); + PelayananPasienPerawat resultModel = pelayananPerawatDao.save(pelayananPerawatBaru); + + PelayananPasienPerawatVO resultVO = new PelayananPasienPerawatVO(); + resultVO = pelayananPerawatConverter.transferModelToVO(resultModel, resultVO); + + return resultVO; + } + + @Override + public Boolean delete(String key) throws JpaSystemException { + pelayananPerawatDao.delete(key); + + return true; + } + + @Override + public PelayananPasienPerawatVO findById(String key) throws JpaSystemException { + PelayananPasienPerawatVO result = new PelayananPasienPerawatVO(); + + PelayananPasienPerawat pelayananPerawat = pelayananPerawatDao.findOne(key); + if (CommonUtil.isNotNullOrEmpty(pelayananPerawat)) { + result = pelayananPerawatConverter.transferModelToVO(pelayananPerawat, result); + } + + return result; + } + + @Override + public List findAll() throws JpaSystemException { + List result = new ArrayList(); + + Iterable models = pelayananPerawatDao.findAll(); + if (CommonUtil.isNotNullOrEmpty(models)) { + for (PelayananPasienPerawat model : models) { + PelayananPasienPerawatVO vo = new PelayananPasienPerawatVO(); + vo = pelayananPerawatConverter.transferModelToVO(model, vo); + result.add(vo); + } + } + + return result; + } + + @Override + public Map findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit, + String sort, String dir) { + + return null; + } + +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SkoringTindakanPerawatServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SkoringTindakanPerawatServiceImpl.java new file mode 100644 index 00000000..f49f6409 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SkoringTindakanPerawatServiceImpl.java @@ -0,0 +1,340 @@ +package com.jasamedika.medifirst2000.service.impl; + +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.orm.jpa.JpaSystemException; +import org.springframework.stereotype.Service; + +import com.jasamedika.medifirst2000.constants.Master; +import com.jasamedika.medifirst2000.converter.BaseConverterImpl; +import com.jasamedika.medifirst2000.dao.LoggingUserDao; +import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao; +import com.jasamedika.medifirst2000.dao.SettingDataFixedDao; +import com.jasamedika.medifirst2000.dao.SkoringTindakanPerawatDao; +import com.jasamedika.medifirst2000.dao.SubUnitKerjaDao; +import com.jasamedika.medifirst2000.entities.LoggingUser; +import com.jasamedika.medifirst2000.entities.LoginUser; +import com.jasamedika.medifirst2000.entities.ProdukPerawat; +import com.jasamedika.medifirst2000.entities.SkoringTindakanPerawat; +import com.jasamedika.medifirst2000.exception.ServiceVOException; +import com.jasamedika.medifirst2000.service.SkoringTindakanPerawatService; +import com.jasamedika.medifirst2000.util.CommonUtil; +import com.jasamedika.medifirst2000.vo.ProdukPerawatVO; +import com.jasamedika.medifirst2000.vo.SkoringTindakanPerawatVO; + +@Service("skoringTindakanPerawatService") +public class SkoringTindakanPerawatServiceImpl extends BaseVoServiceImpl implements SkoringTindakanPerawatService { + + @Autowired + private BaseConverterImpl skoringTindakanConverter; + + @Autowired + private BaseConverterImpl produkPerawatConverter; + + @Autowired + private SkoringTindakanPerawatDao skoringTindakanDao; + + @Autowired + private LoggingUserDao loggingUserDao; + + @Autowired + private SettingDataFixedDao settingDataFixedDao; + + @Autowired + private MapPegawaiJabatanToUnitKerjaDao mappingJabatanDao; + + @Autowired + private SubUnitKerjaDao subUnitKerjaDao; + + public void addLoggingUser(Integer idLoginUser, String idReferensi, String keterangan) { + LoggingUser loggingUser = new LoggingUser(); + LoginUser loginUser = new LoginUser(); + + loggingUser.setKdProfile((short) 0); + loggingUser.setStatusEnabled(true); + loggingUser.setTanggal(new Date()); + loginUser.setId(idLoginUser); + loggingUser.setLoginUser(loginUser); + loggingUser.setJenisLog("Skoring Tindakan Perawat"); + loggingUser.setReferensiId(idReferensi); + loggingUser.setReferensi("sdm_skoringtindakanperawat_t"); + loggingUser.setKeterangan(keterangan); + + loggingUserDao.save(loggingUser); + } + + @Override + public SkoringTindakanPerawatVO add(SkoringTindakanPerawatVO vo) throws JpaSystemException, ServiceVOException { + ProdukPerawat produk = produkPerawatConverter.transferVOToModel(vo.getProduk(), new ProdukPerawat()); + SkoringTindakanPerawat skoringTindakan = skoringTindakanConverter.transferVOToModel(vo, + new SkoringTindakanPerawat()); + + skoringTindakan.setProduk(produk); + skoringTindakan.setTanggalPembaharuanData(new Date()); + SkoringTindakanPerawat resultModel = skoringTindakanDao.save(skoringTindakan); + + addLoggingUser(vo.getLoginUserId(), resultModel.getNoRec(), "Buat data"); + + SkoringTindakanPerawatVO resultVO = new SkoringTindakanPerawatVO(); + resultVO = skoringTindakanConverter.transferModelToVO(resultModel, resultVO); + + return resultVO; + } + + @Override + public SkoringTindakanPerawatVO update(SkoringTindakanPerawatVO vo) throws JpaSystemException, ServiceVOException { + SkoringTindakanPerawat skoringTindakanLama = skoringTindakanDao.findOne(vo.getNoRec()); + + ProdukPerawat produk = produkPerawatConverter.transferVOToModel(vo.getProduk(), new ProdukPerawat()); + SkoringTindakanPerawat skoringTindakanBaru = skoringTindakanConverter.transferVOToModel(vo, + skoringTindakanLama); + + skoringTindakanBaru.setProduk(produk); + skoringTindakanBaru.setTanggalPembaharuanData(new Date()); + SkoringTindakanPerawat resultModel = skoringTindakanDao.save(skoringTindakanBaru); + + if (vo.getStatusEnabled()) { + addLoggingUser(vo.getLoginUserId(), resultModel.getNoRec(), "Edit data"); + } else if (!vo.getStatusEnabled()) { + addLoggingUser(vo.getLoginUserId(), resultModel.getNoRec(), "Hapus data"); + } + + SkoringTindakanPerawatVO resultVO = new SkoringTindakanPerawatVO(); + resultVO = skoringTindakanConverter.transferModelToVO(resultModel, resultVO); + + return resultVO; + } + + @Override + public Boolean delete(String key) throws JpaSystemException { + skoringTindakanDao.delete(key); + + return true; + } + + @Override + public SkoringTindakanPerawatVO findById(String key) throws JpaSystemException { + SkoringTindakanPerawatVO result = new SkoringTindakanPerawatVO(); + + SkoringTindakanPerawat skoringTindakan = skoringTindakanDao.findOne(key); + if (CommonUtil.isNotNullOrEmpty(skoringTindakan)) { + result = skoringTindakanConverter.transferModelToVO(skoringTindakan, result); + } + + return result; + } + + @Override + public List findAll() throws JpaSystemException { + List result = new ArrayList(); + + Iterable models = skoringTindakanDao.findAll(); + if (CommonUtil.isNotNullOrEmpty(models)) { + for (SkoringTindakanPerawat model : models) { + SkoringTindakanPerawatVO vo = new SkoringTindakanPerawatVO(); + vo = skoringTindakanConverter.transferModelToVO(model, vo); + result.add(vo); + } + } + + return result; + } + + @Override + public Map findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit, + String sort, String dir) { + + return null; + } + + @Override + public List> findAllEnabled(String namaProduk, Boolean isVerif, Short kdKlasif) + throws JpaSystemException { + List> result = new ArrayList<>(); + List> data = new ArrayList<>(); + List> filter = new ArrayList<>(); + + if (CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(isVerif) + && CommonUtil.isNullOrEmpty(kdKlasif)) { + data = skoringTindakanDao.findAllEnabled(); + } else if (CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(isVerif) + && CommonUtil.isNullOrEmpty(kdKlasif)) { + data = skoringTindakanDao.findAllEnabledByProduk(namaProduk.toLowerCase()); + } else if (CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(isVerif) + && CommonUtil.isNullOrEmpty(kdKlasif)) { + data = skoringTindakanDao.findAllEnabledByVerif(isVerif); + } else if (CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(isVerif) + && CommonUtil.isNotNullOrEmpty(kdKlasif)) { + data = skoringTindakanDao.findAllEnabledByKlasif(kdKlasif); + } else if (CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(isVerif) + && CommonUtil.isNullOrEmpty(kdKlasif)) { + data = skoringTindakanDao.findAllEnabledByProdukVerif(namaProduk.toLowerCase(), isVerif); + } else if (CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNullOrEmpty(isVerif) + && CommonUtil.isNotNullOrEmpty(kdKlasif)) { + data = skoringTindakanDao.findAllEnabledByProdukKlasif(namaProduk.toLowerCase(), kdKlasif); + } else if (CommonUtil.isNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(isVerif) + && CommonUtil.isNotNullOrEmpty(kdKlasif)) { + data = skoringTindakanDao.findAllEnabledByVerifKlasif(isVerif, kdKlasif); + } else if (CommonUtil.isNotNullOrEmpty(namaProduk) && CommonUtil.isNotNullOrEmpty(isVerif) + && CommonUtil.isNotNullOrEmpty(kdKlasif)) { + data = skoringTindakanDao.findAllEnabledByProdukVerifKlasif(namaProduk.toLowerCase(), isVerif, kdKlasif); + } + + // filtering + for (Map mapData : data) { + boolean isContained = false; + for (Map mapFilter : filter) { + if (mapData.get("produkId").equals(mapFilter.get("produkId"))) { + isContained = true; + break; + } + } + if (!isContained) { + Map mapFilter = new HashMap<>(); + mapFilter.put("produkId", mapData.get("produkId")); + filter.add(mapFilter); + } + } + + for (Map mapFilter : filter) { + for (Map mapData : data) { + if (mapFilter.get("produkId").equals(mapData.get("produkId"))) { + result.add(mapData); + break; + } + } + } + + return result; + } + + @Override + public List> findDuplicateSkoring(String namaProduk, Double skor, String noRec) + throws JpaSystemException { + List> result = new ArrayList<>(); + List listNorec = new ArrayList<>(); + + String patternText = settingDataFixedDao.getSettingDataFixed("patternTextDuplicate"); + String replacedNamaProduk = namaProduk.replaceAll(patternText, "").toLowerCase(); + if (CommonUtil.isNotNullOrEmpty(noRec)) { + listNorec = skoringTindakanDao.findDupSkoring(replacedNamaProduk, skor, patternText, noRec); + } else { + listNorec = skoringTindakanDao.findDupSkoring(replacedNamaProduk, skor, patternText); + } + + if (CommonUtil.isNotNullOrEmpty(listNorec)) { + result = skoringTindakanDao.findAllDup(listNorec); + } + + return result; + } + + @Override + public Map findAkses(Integer idPegawai) throws JpaSystemException { + Map result = new HashMap<>(); + List listRs = new ArrayList<>(); + List listIdUnitKerja = new ArrayList<>(); + List listUnitKerjaSuperuser = new ArrayList<>(); + + listIdUnitKerja.addAll(Arrays.asList(Master.UnitKerja.MEDIS)); + listUnitKerjaSuperuser.add(Master.UnitKerja.BAG_SDM); + + List> listSuperuser = mappingJabatanDao.findAksesPegawaiPenilai(listIdUnitKerja, idPegawai); + listSuperuser.addAll(mappingJabatanDao.findAksesPegawaiStaf(listUnitKerjaSuperuser, idPegawai)); + listSuperuser.addAll(mappingJabatanDao.findAksesPegawaiAtasan(listUnitKerjaSuperuser, idPegawai)); + listSuperuser.addAll(mappingJabatanDao.findAksesPegawaiPenilai(listUnitKerjaSuperuser, idPegawai)); + if (CommonUtil.isNotNullOrEmpty(listSuperuser)) { + listRs.addAll(listIdUnitKerja); + + result.put("isSuperuser", true); + result.put("isAtasan", false); + result.put("isStaf", false); + result.put("listId", listRs); + result.put("listSk", subUnitKerjaDao.getSubunitKerjaByUnitKerja(listRs)); + } else { + List> listAtasan = mappingJabatanDao.findAksesPegawaiAtasan(listIdUnitKerja, idPegawai); + if (CommonUtil.isNotNullOrEmpty(listAtasan)) { + for (Map map : listAtasan) { + if (!listRs.contains(Integer.valueOf(map.get("unitKerjaId").toString()))) { + listRs.add(Integer.valueOf(map.get("unitKerjaId").toString())); + } + } + + result.put("isSuperuser", false); + result.put("isAtasan", true); + result.put("isStaf", false); + result.put("listId", listRs); + result.put("listSk", subUnitKerjaDao.getSubunitKerjaByUnitKerja(listRs)); + } else { + List> listStaf = mappingJabatanDao.findAksesPegawaiStaf(listIdUnitKerja, idPegawai); + if (CommonUtil.isNotNullOrEmpty(listStaf)) { + for (Map map : listStaf) { + if (!listRs.contains(Integer.valueOf(map.get("unitKerjaId").toString()))) { + listRs.add(Integer.valueOf(map.get("unitKerjaId").toString())); + } + } + + result.put("isSuperuser", false); + result.put("isAtasan", false); + result.put("isStaf", true); + result.put("listId", listRs); + result.put("listSk", subUnitKerjaDao.getSubunitKerjaByUnitKerja(listRs)); + } else { + List> listSuperElse = mappingJabatanDao.findAksesPegawaiPenilai(idPegawai); + if (CommonUtil.isNotNullOrEmpty(listSuperElse)) { + for (Map map : listSuperElse) { + if (!listRs.contains(Integer.valueOf(map.get("unitKerjaId").toString()))) { + listRs.add(Integer.valueOf(map.get("unitKerjaId").toString())); + } + } + + result.put("isSuperuser", false); + result.put("isAtasan", false); + result.put("isStaf", false); + result.put("listId", listRs); + result.put("listSk", subUnitKerjaDao.getSubunitKerjaByUnitKerja(listRs)); + } else { + List> listAtasanElse = mappingJabatanDao.findAksesPegawaiAtasan(idPegawai); + if (CommonUtil.isNotNullOrEmpty(listAtasanElse)) { + for (Map map : listAtasanElse) { + if (!listRs.contains(Integer.valueOf(map.get("unitKerjaId").toString()))) { + listRs.add(Integer.valueOf(map.get("unitKerjaId").toString())); + } + } + + result.put("isSuperuser", false); + result.put("isAtasan", false); + result.put("isStaf", false); + result.put("listId", listRs); + result.put("listSk", subUnitKerjaDao.getSubunitKerjaByUnitKerja(listRs)); + } else { + List> listStafElse = mappingJabatanDao.findAksesPegawaiStaf(idPegawai); + if (CommonUtil.isNotNullOrEmpty(listStafElse)) { + for (Map map : listStafElse) { + if (!listRs.contains(Integer.valueOf(map.get("unitKerjaId").toString()))) { + listRs.add(Integer.valueOf(map.get("unitKerjaId").toString())); + } + } + + result.put("isSuperuser", false); + result.put("isAtasan", false); + result.put("isStaf", false); + result.put("listId", listRs); + result.put("listSk", subUnitKerjaDao.getSubunitKerjaByUnitKerja(listRs)); + } + } + } + } + } + } + + return result; + } + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananPasienPerawat.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananPasienPerawat.java new file mode 100644 index 00000000..f869a2bf --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananPasienPerawat.java @@ -0,0 +1,144 @@ +package com.jasamedika.medifirst2000.entities; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; +import javax.validation.constraints.NotNull; + +import com.jasamedika.medifirst2000.base.BaseTransaction; +import com.jasamedika.medifirst2000.helper.Caption; + +@Entity +@Table(name = "pelayananpasienperawat_t") +public class PelayananPasienPerawat extends BaseTransaction { + + @ManyToOne + @NotNull(message = "Nomor Registrasi Harus Diisi") + @JoinColumn(name = "noregistrasifk") + @Caption(value = "Nomor Registrasi") + private AntrianPasienDiPeriksa antrianPasienDiperiksa; + + @Column(name = "noregistrasifk", columnDefinition = "CHAR(32)", insertable = false, updatable = false, nullable = false) + private String antrianPasienDiperiksaId; + + @ManyToOne + @NotNull(message = "Produk Perawat tidak boleh kosong") + @JoinColumn(name = "objectprodukperawatfk") + @Caption(value = "Produk Perawat") + private ProdukPerawat produk; + + @Column(name = "objectprodukperawatfk", insertable = false, updatable = false, nullable = false) + private Integer produkId; + + @Column(name = "tglpelayanan", nullable = false) + @Caption(value = "Tanggal Pelayanan") + @Temporal(TemporalType.TIMESTAMP) + private Date tglPelayanan; + + @Column(name = "skor", nullable = false) + @Caption(value = "Nilai Skor") + private Double skor; + + @Column(name = "jumlah", nullable = false) + @Caption(value = "Jumlah") + private Double jumlah; + + @Column(name = "verifikasi", nullable = true) + @Caption(value = "Verifikasi") + private Short verifikasi; + + @ManyToOne + @JoinColumn(name = "objectpegawaifk") + @Caption(value = "Pegawai") + private Pegawai verifikator; + + @Column(name = "objectpegawaifk", insertable = false, updatable = false, nullable = true) + private Integer verifikatorId; + + public AntrianPasienDiPeriksa getAntrianPasienDiperiksa() { + return antrianPasienDiperiksa; + } + + public void setAntrianPasienDiperiksa(AntrianPasienDiPeriksa antrianPasienDiperiksa) { + this.antrianPasienDiperiksa = antrianPasienDiperiksa; + } + + public String getAntrianPasienDiperiksaId() { + return antrianPasienDiperiksaId; + } + + public void setAntrianPasienDiperiksaId(String antrianPasienDiperiksaId) { + this.antrianPasienDiperiksaId = antrianPasienDiperiksaId; + } + + public ProdukPerawat getProduk() { + return produk; + } + + public void setProduk(ProdukPerawat produk) { + this.produk = produk; + } + + public Integer getProdukId() { + return produkId; + } + + public void setProdukId(Integer produkId) { + this.produkId = produkId; + } + + public Date getTglPelayanan() { + return tglPelayanan; + } + + public void setTglPelayanan(Date tglPelayanan) { + this.tglPelayanan = tglPelayanan; + } + + public Double getSkor() { + return skor; + } + + public void setSkor(Double skor) { + this.skor = skor; + } + + public Double getJumlah() { + return jumlah; + } + + public void setJumlah(Double jumlah) { + this.jumlah = jumlah; + } + + public Short getVerifikasi() { + return verifikasi; + } + + public void setVerifikasi(Short verifikasi) { + this.verifikasi = verifikasi; + } + + public Pegawai getVerifikator() { + return verifikator; + } + + public void setVerifikator(Pegawai verifikator) { + this.verifikator = verifikator; + } + + public Integer getVerifikatorId() { + return verifikatorId; + } + + public void setVerifikatorId(Integer verifikatorId) { + this.verifikatorId = verifikatorId; + } + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/ProdukPerawat.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/ProdukPerawat.java new file mode 100644 index 00000000..8d5fdff8 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/ProdukPerawat.java @@ -0,0 +1,58 @@ +package com.jasamedika.medifirst2000.entities; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.GenerationType; +import javax.persistence.Id; +import javax.persistence.SequenceGenerator; +import javax.persistence.Table; +import javax.validation.constraints.NotNull; + +import com.jasamedika.medifirst2000.base.BaseActive; +import com.jasamedika.medifirst2000.helper.Caption; + +@Entity +@Table(name = "produkperawat_m") +public class ProdukPerawat extends BaseActive { + + @NotNull(message = "Nama Produk tidak boleh kosong") + @Column(name = "namaproduk", nullable = false) + @Caption(value = "Nama Produk") + private String namaProduk; + + @Column(name = "klasifikasi", nullable = true) + @Caption(value = "klasifikasi") + private Short klasifikasi; + + @Id + @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "public.produkperawat_m_id_seq") + @SequenceGenerator(name = "public.produkperawat_m_id_seq", sequenceName = "public.produkperawat_m_id_seq", allocationSize = 1) + @Column(name = "id") + protected Integer id; + + public String getNamaProduk() { + return namaProduk; + } + + public void setNamaProduk(String namaProduk) { + this.namaProduk = namaProduk; + } + + public Short getKlasifikasi() { + return klasifikasi; + } + + public void setKlasifikasi(Short klasifikasi) { + this.klasifikasi = klasifikasi; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/SkoringTindakanPerawat.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/SkoringTindakanPerawat.java new file mode 100644 index 00000000..d9256139 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/SkoringTindakanPerawat.java @@ -0,0 +1,96 @@ +package com.jasamedika.medifirst2000.entities; + +import java.util.Date; + +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; +import javax.validation.constraints.NotNull; + +import com.jasamedika.medifirst2000.base.BaseTransaction; +import com.jasamedika.medifirst2000.helper.Caption; + +@Entity +@Table(name = "sdm_skoringtindakanperawat_t") +public class SkoringTindakanPerawat extends BaseTransaction { + + @Column(name = "skor", nullable = false) + @Caption(value = "Nilai Skor") + private Double skor; + + @Column(name = "statusverifikasi", nullable = false) + @Caption(value = "Status Verifikasi") + private Boolean statusVerifikasi; + + @Caption(value = "Tanggal Mulai Berlaku") + @Column(name = "tanggalmulaiberlaku", nullable = false) + @Temporal(TemporalType.DATE) + private Date tanggalMulaiBerlaku; + + @Caption(value = "Tanggal Pembaharuan Data") + @Column(name = "tanggalpembaharuandata", nullable = false) + @Temporal(TemporalType.TIMESTAMP) + private Date tanggalPembaharuanData; + + @ManyToOne + @NotNull(message = "Produk Perawat tidak boleh kosong") + @JoinColumn(name = "objectprodukperawatfk") + @Caption(value = "Produk Perawat") + private ProdukPerawat produk; + + @Column(name = "objectprodukperawatfk", insertable = false, updatable = false, nullable = false) + private Integer produkId; + + public Double getSkor() { + return skor; + } + + public void setSkor(Double skor) { + this.skor = skor; + } + + public Boolean getStatusVerifikasi() { + return statusVerifikasi; + } + + public void setStatusVerifikasi(Boolean statusVerifikasi) { + this.statusVerifikasi = statusVerifikasi; + } + + public Date getTanggalMulaiBerlaku() { + return tanggalMulaiBerlaku; + } + + public void setTanggalMulaiBerlaku(Date tanggalMulaiBerlaku) { + this.tanggalMulaiBerlaku = tanggalMulaiBerlaku; + } + + public Date getTanggalPembaharuanData() { + return tanggalPembaharuanData; + } + + public void setTanggalPembaharuanData(Date tanggalPembaharuanData) { + this.tanggalPembaharuanData = tanggalPembaharuanData; + } + + public ProdukPerawat getProduk() { + return produk; + } + + public void setProduk(ProdukPerawat produk) { + this.produk = produk; + } + + public Integer getProdukId() { + return produkId; + } + + public void setProdukId(Integer produkId) { + this.produkId = produkId; + } + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PelayananPasienPerawatVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PelayananPasienPerawatVO.java new file mode 100644 index 00000000..9f9ddcf6 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PelayananPasienPerawatVO.java @@ -0,0 +1,117 @@ +package com.jasamedika.medifirst2000.vo; + +import java.util.Date; + +import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO; +import com.jasamedika.medifirst2000.helper.Caption; + +public class PelayananPasienPerawatVO extends BaseTransactionVO { + + @Caption(value = "Nomor Registrasi") + private AntrianPasienDiPeriksaVO antrianPasienDiperiksa; + + private String antrianPasienDiperiksaId; + + @Caption(value = "Produk Perawat") + private ProdukPerawatVO produk; + + private Integer produkId; + + @Caption(value = "Tanggal Pelayanan") + private Date tglPelayanan; + + @Caption(value = "Nilai Skor") + private Double skor; + + @Caption(value = "Jumlah") + private Double jumlah; + + @Caption(value = "Verifikasi") + private Short verifikasi; + + @Caption(value = "Pegawai") + private PegawaiVO verifikator; + + private Integer verifikatorId; + + public AntrianPasienDiPeriksaVO getAntrianPasienDiperiksa() { + return antrianPasienDiperiksa; + } + + public void setAntrianPasienDiperiksa(AntrianPasienDiPeriksaVO antrianPasienDiperiksa) { + this.antrianPasienDiperiksa = antrianPasienDiperiksa; + } + + public String getAntrianPasienDiperiksaId() { + return antrianPasienDiperiksaId; + } + + public void setAntrianPasienDiperiksaId(String antrianPasienDiperiksaId) { + this.antrianPasienDiperiksaId = antrianPasienDiperiksaId; + } + + public ProdukPerawatVO getProduk() { + return produk; + } + + public void setProduk(ProdukPerawatVO produk) { + this.produk = produk; + } + + public Integer getProdukId() { + return produkId; + } + + public void setProdukId(Integer produkId) { + this.produkId = produkId; + } + + public Date getTglPelayanan() { + return tglPelayanan; + } + + public void setTglPelayanan(Date tglPelayanan) { + this.tglPelayanan = tglPelayanan; + } + + public Double getSkor() { + return skor; + } + + public void setSkor(Double skor) { + this.skor = skor; + } + + public Double getJumlah() { + return jumlah; + } + + public void setJumlah(Double jumlah) { + this.jumlah = jumlah; + } + + public Short getVerifikasi() { + return verifikasi; + } + + public void setVerifikasi(Short verifikasi) { + this.verifikasi = verifikasi; + } + + public PegawaiVO getVerifikator() { + return verifikator; + } + + public void setVerifikator(PegawaiVO verifikator) { + this.verifikator = verifikator; + } + + public Integer getVerifikatorId() { + return verifikatorId; + } + + public void setVerifikatorId(Integer verifikatorId) { + this.verifikatorId = verifikatorId; + } + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/ProdukPerawatVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/ProdukPerawatVO.java new file mode 100644 index 00000000..19a18d5e --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/ProdukPerawatVO.java @@ -0,0 +1,40 @@ +package com.jasamedika.medifirst2000.vo; + +import com.jasamedika.medifirst2000.base.vo.BaseActiveVO; +import com.jasamedika.medifirst2000.helper.Caption; + +public class ProdukPerawatVO extends BaseActiveVO { + + @Caption(value = "Nama Produk") + private String namaProduk; + + @Caption(value = "klasifikasi") + private Short klasifikasi; + + protected Integer id; + + public String getNamaProduk() { + return namaProduk; + } + + public void setNamaProduk(String namaProduk) { + this.namaProduk = namaProduk; + } + + public Short getKlasifikasi() { + return klasifikasi; + } + + public void setKlasifikasi(Short klasifikasi) { + this.klasifikasi = klasifikasi; + } + + public Integer getId() { + return id; + } + + public void setId(Integer id) { + this.id = id; + } + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/SkoringTindakanPerawatVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/SkoringTindakanPerawatVO.java new file mode 100644 index 00000000..a2f385ff --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/SkoringTindakanPerawatVO.java @@ -0,0 +1,85 @@ +package com.jasamedika.medifirst2000.vo; + +import java.util.Date; + +import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO; +import com.jasamedika.medifirst2000.helper.Caption; + +public class SkoringTindakanPerawatVO extends BaseTransactionVO { + + @Caption(value = "Nilai Skor") + private Double skor; + + @Caption(value = "Status Verifikasi") + private Boolean statusVerifikasi; + + @Caption(value = "Tanggal Mulai Berlaku") + private Date tanggalMulaiBerlaku; + + @Caption(value = "Tanggal Pembaharuan Data") + private Date tanggalPembaharuanData; + + @Caption(value = "Produk Perawat") + private ProdukPerawatVO produk; + + private Integer produkId; + + private Integer loginUserId; + + public Double getSkor() { + return skor; + } + + public void setSkor(Double skor) { + this.skor = skor; + } + + public Boolean getStatusVerifikasi() { + return statusVerifikasi; + } + + public void setStatusVerifikasi(Boolean statusVerifikasi) { + this.statusVerifikasi = statusVerifikasi; + } + + public Date getTanggalMulaiBerlaku() { + return tanggalMulaiBerlaku; + } + + public void setTanggalMulaiBerlaku(Date tanggalMulaiBerlaku) { + this.tanggalMulaiBerlaku = tanggalMulaiBerlaku; + } + + public Date getTanggalPembaharuanData() { + return tanggalPembaharuanData; + } + + public void setTanggalPembaharuanData(Date tanggalPembaharuanData) { + this.tanggalPembaharuanData = tanggalPembaharuanData; + } + + public ProdukPerawatVO getProduk() { + return produk; + } + + public void setProduk(ProdukPerawatVO produk) { + this.produk = produk; + } + + public Integer getProdukId() { + return produkId; + } + + public void setProdukId(Integer produkId) { + this.produkId = produkId; + } + + public Integer getLoginUserId() { + return loginUserId; + } + + public void setLoginUserId(Integer loginUserId) { + this.loginUserId = loginUserId; + } + +} diff --git a/jasamedika-domain/src/main/resources/hibernate.cfg.xml b/jasamedika-domain/src/main/resources/hibernate.cfg.xml index 2ab59542..4ec5050b 100644 --- a/jasamedika-domain/src/main/resources/hibernate.cfg.xml +++ b/jasamedika-domain/src/main/resources/hibernate.cfg.xml @@ -691,5 +691,8 @@ + + + diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java index 4f14f47f..acb40ff4 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/IkiDanRemunerasiController.java @@ -38,6 +38,7 @@ import com.jasamedika.medifirst2000.service.LogbookKinerjaService; import com.jasamedika.medifirst2000.service.MapPegawaiJabatanToUnitKerjaService; import com.jasamedika.medifirst2000.service.RemunerasiOperasionalService; import com.jasamedika.medifirst2000.service.SkoringTindakanMedisService; +import com.jasamedika.medifirst2000.service.SkoringTindakanPerawatService; import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.util.rest.RestUtil; import com.jasamedika.medifirst2000.vo.AnggaranRemunerasiVO; @@ -51,6 +52,7 @@ import com.jasamedika.medifirst2000.vo.LogbookKinerjaVO; import com.jasamedika.medifirst2000.vo.RemunerasiOperasionalVO; import com.jasamedika.medifirst2000.vo.SettingPirSdmVO; import com.jasamedika.medifirst2000.vo.SkoringTindakanMedisVO; +import com.jasamedika.medifirst2000.vo.SkoringTindakanPerawatVO; import com.jasamedika.medifirst2000.vo.StrukHistoriVO; import com.jasamedika.medifirst2000.vo.custom.TargetLayananJamKerjaVO; import com.jasamedika.medifirst2000.vo.custom.TargetLayananLuarJamKerjaVO; @@ -97,6 +99,9 @@ public class IkiDanRemunerasiController extends LocaleController> getLoadData(HttpServletRequest request) { try { @@ -1395,4 +1400,96 @@ public class IkiDanRemunerasiController extends LocaleController saveSkoringTindakanPerawat(HttpServletRequest request, + @Valid @RequestBody SkoringTindakanPerawatVO vo) { + try { + SkoringTindakanPerawatVO result = new SkoringTindakanPerawatVO(); + if (CommonUtil.isNotNullOrEmpty(vo.getNoRec())) { + result = skoringTindakanPerawatService.update(vo); + } else { + result = skoringTindakanPerawatService.add(vo); + } + if (CommonUtil.isNotNullOrEmpty(result)) { + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(result, HttpStatus.CREATED, mapHeaderMessage); + } else { + return RestUtil.getJsonHttptatus(HttpStatus.NOT_ACCEPTABLE); + } + } catch (ServiceVOException sve) { + LOGGER.error("Got exception {} when add/update skor tindakan perawat", sve.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when add/update skor tindakan perawat", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + + @RequestMapping(value = "/get-all-skoring-tindakan-perawat", method = RequestMethod.GET) + public ResponseEntity>> getAllSkoringTindakanPerawat(HttpServletRequest request, + @RequestParam(value = "namaProduk", required = false) String namaProduk, + @RequestParam(value = "isVerif", required = false) Boolean isVerif, + @RequestParam(value = "kdKlasif", required = false) Short kdKlasif) throws ParseException { + try { + List> result = skoringTindakanPerawatService.findAllEnabled(namaProduk, isVerif, + kdKlasif); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); + } catch (ServiceVOException sve) { + LOGGER.error("Got exception {} when get all skoring tindakan perawat", sve.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when get all skoring tindakan perawat", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + + @RequestMapping(value = "/get-duplicate-skoring-tindakan-perawat", method = RequestMethod.GET) + public ResponseEntity>> getDuplikatSkoringTindakanPerawat(HttpServletRequest request, + @RequestParam(value = "noRec", required = false) String noRec, + @RequestParam(value = "namaProduk", required = true) String namaProduk, + @RequestParam(value = "skor", required = true) Double skor) throws ParseException { + try { + List> result = skoringTindakanPerawatService.findDuplicateSkoring(namaProduk, skor, + noRec); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); + } catch (ServiceVOException sve) { + LOGGER.error("Got exception {} when get duplikat skoring tindakan perawat", sve.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when get duplikat skoring tindakan perawat", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + + @RequestMapping(value = "/get-akses-skoring-tindakan-perawat", method = RequestMethod.GET) + public ResponseEntity> getAksesSkoringTindakanPerawat(HttpServletRequest request, + @RequestParam(value = "pegawaiId", required = true) Integer idPegawai) throws ParseException { + try { + Map result = skoringTindakanPerawatService.findAkses(idPegawai); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); + } catch (ServiceVOException sve) { + LOGGER.error("Got exception {} when get akses skoring tindakan perawat", sve.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when get akses skoring tindakan perawat", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + }