diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/HargaNettoProdukByKelasDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/HargaNettoProdukByKelasDao.java index a70d91e8..82736b7f 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/HargaNettoProdukByKelasDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/HargaNettoProdukByKelasDao.java @@ -41,4 +41,10 @@ public interface HargaNettoProdukByKelasDao extends PagingAndSortingRepository> checkExisting(@Param("kelasId") Integer idKelas, @Param("produkId") Integer idProduk, @Param("mappingId") Integer idMapping); + @Query("select new Map(hnk.hargaNetto1 as tarif,kls.namaKelas as kelas) " + "from HargaNettoProdukByKelas hnk " + + "inner join hnk.kelas kls " + "where hnk.statusEnabled is true " + "and hnk.produkId = :produkId " + + "and hnk.kelasId in (:listKelasId) " + "order by hnk.hargaNetto1") + public List> findTarifTindakan(@Param("produkId") Integer idProduk, + @Param("listKelasId") List listIdKelas); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapRuanganToProdukDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapRuanganToProdukDao.java index cf09f023..594d5d53 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapRuanganToProdukDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MapRuanganToProdukDao.java @@ -21,29 +21,26 @@ public interface MapRuanganToProdukDao extends PagingAndSortingRepository findProdukByRuangan(@Param("ruanganId") Integer ruanganId); - - @Query("select NEW Map (" - + "c.id as produkId) " - + "from MapRuanganToProduk a " - + "left join a.ruangan b " - + "left join a.produk c " - + "where b.id=:ruanganId and c.id=:produkId") - Map getByRuanganProduk( - @Param("ruanganId") Integer ruanganId, - @Param("produkId") Integer produkId); - - @Query("select distinct produk.detailJenisProdukId from MapRuanganToProduk model " + - "left join model.produk produk " + - "left join produk.detailJenisProduk detailJenisProduk " + - "where model.ruanganId=:ruanganId") + @Query("select NEW Map (" + "c.id as produkId) " + "from MapRuanganToProduk a " + "left join a.ruangan b " + + "left join a.produk c " + "where b.id=:ruanganId and c.id=:produkId") + Map getByRuanganProduk(@Param("ruanganId") Integer ruanganId, @Param("produkId") Integer produkId); + + @Query("select distinct produk.detailJenisProdukId from MapRuanganToProduk model " + + "left join model.produk produk " + "left join produk.detailJenisProduk detailJenisProduk " + + "where model.ruanganId=:ruanganId") List findJenisProdukExepetion(@Param("ruanganId") Integer ruanganId); - - @Query("select distinct new Map(pr.id as id, pr.namaProduk as namaProduk) " - + "from MapRuanganToProduk mapr " - + "left join mapr.produk pr " - + "where mapr.statusEnabled is true and pr.statusEnabled is true " + + @Query("select distinct new Map(pr.id as id, pr.namaProduk as namaProduk) " + "from MapRuanganToProduk mapr " + + "left join mapr.produk pr " + "where mapr.statusEnabled is true and pr.statusEnabled is true " + "and mapr.ruanganId = :ruanganId and pr.namaProduk like %:namaProduk%") - List> findProdukRuanganByMapProduk(@Param("ruanganId") Integer ruanganId, @Param("namaProduk") String namaProduk); - + List> findProdukRuanganByMapProduk(@Param("ruanganId") Integer ruanganId, + @Param("namaProduk") String namaProduk); + + @Query("select distinct rng.namaRuangan || ' - ' || dpt.reportDisplay " + "from MapRuanganToProduk mrp " + + "inner join mrp.ruangan rng " + "inner join rng.departemen dpt " + "where mrp.kodeExternal = '2017' " + + "and mrp.produkId = :produkId " + "and rng.statusEnabled is true " + "and dpt.statusEnabled is true " + + "order by rng.namaRuangan || ' - ' || dpt.reportDisplay") + List findRuanganByTindakan(@Param("produkId") Integer idProduk); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienPetugasDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienPetugasDao.java index 967f9775..b1b1ba77 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienPetugasDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananPasienPetugasDao.java @@ -3,6 +3,7 @@ package com.jasamedika.medifirst2000.dao; import java.util.List; import java.util.Map; +import org.springframework.data.domain.Pageable; import org.springframework.data.jpa.repository.Query; import org.springframework.data.repository.PagingAndSortingRepository; import org.springframework.data.repository.query.Param; @@ -38,4 +39,10 @@ public interface PelayananPasienPetugasDao extends PagingAndSortingRepository> findReferensiSkorPelayananAnestesi(@Param("listPelayananId") List listPelayananId, @Param("listKsmId") List listKsmId); + @Query("select new Map(pgw.id as id,pgw.namaLengkap as namaLengkap) " + "from PelayananPasienPetugas ppp " + + "inner join ppp.pelayananPasien plp " + "inner join ppp.kdpegawai pgw " + + "where ppp.ObjectJenisPetugasPeId = 4 " + "and plp.statusEnabled is true " + + "and plp.produkId = :produkId " + "order by plp.tglPelayanan desc") + List> findDokterPemeriksaByTindakan(@Param("produkId") Integer idProduk, Pageable pageable); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProdukDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProdukDao.java index 0e3be1a6..57850c92 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProdukDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ProdukDao.java @@ -179,6 +179,55 @@ public interface ProdukDao extends PagingAndSortingRepository { List> findProdukByDetailJenisProdukAndNamaProduk( @Param("idDetailJenisProduk") Integer idDetailJenisProduk, Pageable pageable); + String strTindakanBelumAdaSkor = "select distinct new Map(prd.id as id,prd.namaProduk as namaProduk) " + + "from HargaNettoProdukByKelas hnk, MapRuanganToProduk mrp " + "inner join hnk.produk prd " + + "where hnk.produkId = mrp.produkId " + "and mrp.produkId = prd.id " + "and hnk.statusEnabled is true " + + "and prd.statusEnabled is true " + "and hnk.kodeExternal = '2017' " + "and mrp.kodeExternal = '2017' " + + "and prd.detailJenisProdukId in (:listDetailJenisProdukId)"; + + String whrDaftarTindakan = " and prd.id not in (:listProdukId)"; + + String whrNamaTindakan = " and lower(prd.namaProduk) like %:namaProduk%"; + + String srtTindakan = " order by prd.namaProduk"; + + /** + * @param listIdDetailJenisProduk + * Kategori tindakan yang boleh masuk logbook skor kinerja dokter + * @param listIdProduk + * Daftar tindakan yang sudah dilakukan skor remunerasi + * @return Daftar tindakan belum ada skor remunerasi + */ + @Query(strTindakanBelumAdaSkor + whrDaftarTindakan + srtTindakan) + List> findTindakanBelumAdaSkor( + @Param("listDetailJenisProdukId") List listIdDetailJenisProduk, + @Param("listProdukId") List listIdProduk); + + /** + * @param listIdDetailJenisProduk + * Kategori tindakan yang boleh masuk logbook skor kinerja dokter + * @param pageable + * Pengaturan limit dan offset + * @return Daftar tindakan logbook skor kinerja dokter + */ + @Query(strTindakanBelumAdaSkor + srtTindakan) + List> findTindakanLogbookSkor( + @Param("listDetailJenisProdukId") List listIdDetailJenisProduk, Pageable pageable); + + /** + * @param listIdDetailJenisProduk + * Kategori tindakan yang boleh masuk logbook skor kinerja dokter + * @param namaProduk + * Nama tindakan + * @param pageable + * Pengaturan limit dan offset + * @return Daftar tindakan logbook skor kinerja dokter + */ + @Query(strTindakanBelumAdaSkor + whrNamaTindakan + srtTindakan) + List> findTindakanLogbookSkor( + @Param("listDetailJenisProdukId") List listIdDetailJenisProduk, + @Param("namaProduk") String namaProduk, Pageable pageable); + @Query("select new Map (p.namaExternal as jenisProduk,p.id as id ) from DetailJenisProduk p where p.jenisProdukId in " + "(select jenisPro.id from JenisProduk jenisPro where jenisPro.kelompokProduk.id in " + "(select t from KelompokProduk t where t.id in (20,24))))") @@ -251,7 +300,7 @@ public interface ProdukDao extends PagingAndSortingRepository { Map findProdukAndSatuanStandar(@Param("produkId") Integer produkId); @Query("select NEW map(p.kdProduk as kdProduk,p.namaProduk as namaProduk,p.id as id) from Produk p where p.id=:produkId") - Map findProdukBmhpById(@Param("produkId") Integer produkId); + Map findProdukById(@Param("produkId") Integer produkId); @Query("select NEW map(produkAsal.namaProduk as namaProduk,produkAsal.id as idProduk,pfp.qtyProdukAsal as qtyProdukAsal) from ProdukFormulaProduksi pfp left join pfp.produkAsal produkAsal left join pfp.produkHasil produkHasil where produkHasil.id=:produkId") List> findBahanMentah(@Param("produkId") Integer produkId); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanMedisDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanMedisDao.java index 48050487..ff3fea1b 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanMedisDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/SkoringTindakanMedisDao.java @@ -169,4 +169,10 @@ public interface SkoringTindakanMedisDao extends PagingAndSortingRepository> findSkoringLogbookDokter(@Param("bulan") String bulan, @Param("listPegawaiId") List listIdPegawai, @Param("listKsmId") List listIdKsm); + /** + * @return Daftar id produk sudah dilakukan skor remunerasi + */ + @Query("select distinct stm.produkId from SkoringTindakanMedis stm where stm.statusEnabled is true order by stm.produkId") + List findProdukScored(); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SkoringTindakanMedisService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SkoringTindakanMedisService.java index 3e3738db..284e276f 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SkoringTindakanMedisService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/SkoringTindakanMedisService.java @@ -21,4 +21,22 @@ public interface SkoringTindakanMedisService Map findAkses(Integer idPegawai) throws JpaSystemException; + /** + * @return Daftar tindakan belum ada skor + */ + public List> findTindakanBelumAdaSkor(); + + /** + * @param idProduk + * ID tindakan medis + * @return Deskripsi Tindakan medis : tarif, ruangan pemeriksaan, dan dokter + * pemeriksa terakhir + */ + public Map findDeskripsiSkoringTindakanMedis(Integer idProduk); + + /** + * @return Daftar tindakan logbook skor dokter + */ + List> findTindakanLogbookSkor(String namaProduk); + } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SkoringTindakanMedisServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SkoringTindakanMedisServiceImpl.java index 31e2345c..fd6cb1e0 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SkoringTindakanMedisServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/SkoringTindakanMedisServiceImpl.java @@ -1,22 +1,34 @@ package com.jasamedika.medifirst2000.service.impl; import java.text.DateFormat; +import java.text.NumberFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; import java.util.Date; import java.util.HashMap; import java.util.List; +import java.util.Locale; import java.util.Map; +import java.util.Set; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Function; +import java.util.function.Predicate; +import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.data.domain.PageRequest; +import org.springframework.data.domain.Pageable; 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.HargaNettoProdukByKelasDao; import com.jasamedika.medifirst2000.dao.LoggingUserDao; import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao; +import com.jasamedika.medifirst2000.dao.MapRuanganToProdukDao; +import com.jasamedika.medifirst2000.dao.PelayananPasienPetugasDao; import com.jasamedika.medifirst2000.dao.ProdukDao; import com.jasamedika.medifirst2000.dao.SettingDataFixedDao; import com.jasamedika.medifirst2000.dao.SkoringTindakanMedisDao; @@ -63,6 +75,20 @@ public class SkoringTindakanMedisServiceImpl extends BaseVoServiceImpl implement @Autowired private SubUnitKerjaDao subUnitKerjaDao; + @Autowired + private HargaNettoProdukByKelasDao hargaNettoProdukByKelasDao; + + @Autowired + private MapRuanganToProdukDao mapRuanganToProdukDao; + + @Autowired + private PelayananPasienPetugasDao pelayananPasienPetugasDao; + + public static Predicate distinctByKey(Function keyExtractor) { + Set seen = ConcurrentHashMap.newKeySet(); + return t -> seen.add(keyExtractor.apply(t)); + } + public void addLoggingUser(Integer idLoginUser, String idReferensi, String keterangan) { LoggingUser loggingUser = new LoggingUser(); LoginUser loginUser = new LoginUser(); @@ -405,4 +431,149 @@ public class SkoringTindakanMedisServiceImpl extends BaseVoServiceImpl implement return result; } + @Override + public List> findTindakanBelumAdaSkor() { + List tempList = new ArrayList<>(); + tempList.addAll(Arrays.asList(Master.DetailJenisProduk.ADMINISTRASI_PATOLOGI_KLINIK_EXCEPTION)); + tempList.addAll(Arrays.asList(Master.DetailJenisProduk.MEDIS_UTAMA)); + tempList.addAll(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_ANATOMI)); + tempList.addAll(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_KLINIK)); + tempList.addAll(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_RADIOLOGI)); + tempList.addAll(Arrays.asList(Master.DetailJenisProduk.LABORATORIUM)); + + List listIdDetailJenisProdukLogbookSkor = tempList.stream().sorted().distinct() + .collect(Collectors.toList()); + + List listIdProdukScored = skoringTindakanMedisDao.findProdukScored(); + + List> result = produkDao.findTindakanBelumAdaSkor(listIdDetailJenisProdukLogbookSkor, + listIdProdukScored); + + return result; + } + + @Override + public Map findDeskripsiSkoringTindakanMedis(Integer idProduk) { + Map result = new HashMap<>(); + + { + String deskripsiDiri = ""; + Map produk = produkDao.findProdukById(idProduk); + if (CommonUtil.isNotNullOrEmpty(produk)) { + deskripsiDiri += produk.get("id").toString() + " - " + produk.get("namaProduk").toString(); + } + + if (CommonUtil.isNotNullOrEmpty(deskripsiDiri)) { + result.put("produk", deskripsiDiri); + } else { + result.put("produk", "-"); + } + } + + { + String deskripsiTarif = ""; + List listBesarTarif = new ArrayList<>(); + + NumberFormat rupiah = NumberFormat.getCurrencyInstance(new Locale("in", "ID")); + + List> daftarTarif = hargaNettoProdukByKelasDao.findTarifTindakan(idProduk, + Arrays.asList(Master.Kelas.REF_KELAS_KAMAR)); + + for (Map tarif : daftarTarif) { + if (!listBesarTarif.contains(tarif.get("tarif"))) { + listBesarTarif.add(Double.parseDouble(tarif.get("tarif").toString())); + } + } + + if (listBesarTarif.size() == 1) { + deskripsiTarif += rupiah.format(listBesarTarif.get(0)); + } else { + for (Map tarif : daftarTarif) { + if (deskripsiTarif == "") { + deskripsiTarif += rupiah.format(Double.parseDouble(tarif.get("tarif").toString())) + " (" + + tarif.get("kelas").toString() + ")"; + } else { + deskripsiTarif += ", " + rupiah.format(Double.parseDouble(tarif.get("tarif").toString())) + " (" + + tarif.get("kelas").toString() + ")"; + } + } + } + + if (CommonUtil.isNotNullOrEmpty(deskripsiTarif)) { + result.put("tarif", deskripsiTarif); + } else { + result.put("tarif", "-"); + } + } + + { + String deskripsiRuanganPemeriksaan = ""; + List daftarRuangan = mapRuanganToProdukDao.findRuanganByTindakan(idProduk); + for (String ruangan : daftarRuangan) { + if (deskripsiRuanganPemeriksaan == "") { + deskripsiRuanganPemeriksaan += ruangan; + } else { + deskripsiRuanganPemeriksaan += ", " + ruangan; + } + } + + if (CommonUtil.isNotNullOrEmpty(deskripsiRuanganPemeriksaan)) { + result.put("ruanganPemeriksaan", deskripsiRuanganPemeriksaan); + } else { + result.put("ruanganPemeriksaan", "-"); + } + } + + { + String deskripsiDokterPemeriksaTerakhir = ""; + Pageable pageable = new PageRequest(0, 3); + List> tempList = pelayananPasienPetugasDao.findDokterPemeriksaByTindakan(idProduk, + pageable); + + List> daftarDokter = tempList.stream() + .filter(distinctByKey(p -> Integer.parseInt(p.get("id").toString()))).collect(Collectors.toList()); + for (Map dokter : daftarDokter) { + if (deskripsiDokterPemeriksaTerakhir == "") { + deskripsiDokterPemeriksaTerakhir += dokter.get("namaLengkap").toString(); + } else { + deskripsiDokterPemeriksaTerakhir += ", " + dokter.get("namaLengkap").toString(); + } + } + + if (CommonUtil.isNotNullOrEmpty(deskripsiDokterPemeriksaTerakhir)) { + result.put("dokterPemeriksaTerakhir", deskripsiDokterPemeriksaTerakhir); + } else { + result.put("dokterPemeriksaTerakhir", "-"); + } + } + + return result; + } + + @Override + public List> findTindakanLogbookSkor(String namaProduk) { + List> result = new ArrayList<>(); + + List tempList = new ArrayList<>(); + tempList.addAll(Arrays.asList(Master.DetailJenisProduk.ADMINISTRASI_PATOLOGI_KLINIK_EXCEPTION)); + tempList.addAll(Arrays.asList(Master.DetailJenisProduk.MEDIS_UTAMA)); + tempList.addAll(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_ANATOMI)); + tempList.addAll(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_PATOLOGI_KLINIK)); + tempList.addAll(Arrays.asList(Master.DetailJenisProduk.PENUNJANG_RADIOLOGI)); + tempList.addAll(Arrays.asList(Master.DetailJenisProduk.LABORATORIUM)); + + List listIdDetailJenisProdukLogbookSkor = tempList.stream().sorted().distinct() + .collect(Collectors.toList()); + + Pageable pageable = new PageRequest(0, 50); + if (CommonUtil.isNotNullOrEmpty(namaProduk)) { + result = produkDao.findTindakanLogbookSkor(listIdDetailJenisProdukLogbookSkor, namaProduk.toLowerCase(), + pageable); + } else { + result = produkDao.findTindakanLogbookSkor(listIdDetailJenisProdukLogbookSkor, pageable); + } + + return result; + } + } 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 9acd5a16..10c88e51 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 @@ -2184,4 +2184,60 @@ public class IkiDanRemunerasiController extends LocaleController>> getTindakanBelumAdaSkor(HttpServletRequest request) { + try { + List> result = skoringTindakanMedisService.findTindakanBelumAdaSkor(); + 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 tindakan belum ada skor", sve.getMessage()); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, sve.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when get tindakan belum ada skor", jse.getMessage()); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + + @RequestMapping(value = "/get-deskripsi-tindakan-skor-medis", method = RequestMethod.GET) + public ResponseEntity> getDeskripsiTindakanSkorMedis(HttpServletRequest request, + @RequestParam(value = "produkId", required = true) Integer idProduk) { + try { + Map result = skoringTindakanMedisService.findDeskripsiSkoringTindakanMedis(idProduk); + 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 deskripsi tindakan skor medis", sve.getMessage()); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, sve.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when get deskripsi tindakan skor medis", jse.getMessage()); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + + @RequestMapping(value = "/get-daftar-tindakan-logbook-skor", method = RequestMethod.GET) + public ResponseEntity>> getDaftarTindakanLogbookSkor(HttpServletRequest request, + @RequestParam(value = "namaProduk", required = false) String namaProduk) { + try { + List> result = skoringTindakanMedisService.findTindakanLogbookSkor(namaProduk); + 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 tindakan logbook skor", sve.getMessage()); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, sve.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when get tindakan logbook skor", jse.getMessage()); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + }