From 3418991936218a34328f0368b157ae4c092b0c38 Mon Sep 17 00:00:00 2001 From: salmanoersabhk Date: Mon, 15 Aug 2022 19:41:46 +0700 Subject: [PATCH] Update ResepDokterService Penyesuaian cetakan resep baru --- .../medifirst2000/dao/ResepDokterDao.java | 18 ++++- .../service/ResepDokterService.java | 4 +- .../service/impl/ResepDokterServiceImpl.java | 70 ++++++++++++++----- .../controller/ReportingController.java | 54 ++++++-------- 4 files changed, 94 insertions(+), 52 deletions(-) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ResepDokterDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ResepDokterDao.java index d0fe383d..b5383961 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ResepDokterDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/ResepDokterDao.java @@ -17,12 +17,26 @@ import com.jasamedika.medifirst2000.entities.ResepDokter; */ @Repository("resepDokterDao") public interface ResepDokterDao extends PagingAndSortingRepository { - @Query("select new Map(so.noRec as noRec," + "so.tglOrder as tglOrder," + "so.masalah as alergi," + @Query("select distinct new Map(so.noRec as noRec," + "so.tglOrder as tglOrder," + "so.masalah as alergi," + "so.diagnosis as beratBadan," + "ru.namaRuangan as ruangan," + "pg.namaLengkap as dokter," + "pd.noRegistrasi as noRegistrasi," + "ps.namaPasien as namaPasien," + "ps.tglLahir as tglLahir," - + "ps.noCm as noCm," + "rd.racikanKe as rKe," + "rd.namaObat as obat," + "rd.qtyProduk as jumlah," + + "ps.noCm as noCm, " + "rd.racikanKe as rKe," + "rd.namaObat as obat," + "rd.qtyProduk as jumlah," + "rd.keteranganLainnya as instruksi," + "rd.keteranganPakai as aturanPakai) " + "from ResepDokter rd " + "left join rd.strukOrder so " + "left join rd.ruangan ru " + "left join so.noRegistrasi pd " + "left join so.noCm ps " + "inner join so.pegawaiOrder pg " + "where rd.strukOrderId = :strukOrderId") List> findByStrukOrderId(@Param("strukOrderId") String strukOrderId); + + @Query("select distinct new Map(so.noRec as noRec," + "so.tglOrder as tglOrder," + "so.masalah as alergi," + + "so.diagnosis as beratBadan," + "ru.namaRuangan as ruangan," + "pg.namaLengkap as dokter," + + "pd.noRegistrasi as noRegistrasi," + "ps.namaPasien as namaPasien," + "ps.tglLahir as tglLahir," + + "ps.noCm as noCm) " + "from ResepDokter rd " + "left join rd.strukOrder so " + "left join rd.ruangan ru " + + "left join so.noRegistrasi pd " + "left join so.noCm ps " + "inner join so.pegawaiOrder pg " + + "where rd.strukOrderId = :strukOrderId") + Map findResepHeaderByStrukOrderId(@Param("strukOrderId") String strukOrderId); + + @Query("select new Map(rd.racikanKe as rKe," + "rd.namaObat as obat," + "rd.qtyProduk as jumlah," + + "rd.keteranganLainnya as instruksi," + "rd.keteranganPakai as aturanPakai) " + "from ResepDokter rd " + + "left join rd.strukOrder so " + "left join rd.ruangan ru " + "left join so.noRegistrasi pd " + + "left join so.noCm ps " + "inner join so.pegawaiOrder pg " + "where rd.strukOrderId = :strukOrderId") + List> findResepBodyByStrukOrderId(@Param("strukOrderId") String strukOrderId); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/ResepDokterService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/ResepDokterService.java index 89a67103..ae49b453 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/ResepDokterService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/ResepDokterService.java @@ -15,7 +15,9 @@ public interface ResepDokterService extends BaseVoService> findByStrukOrderId(String strukOrderId); - public List> findHeaderResep(String strukOrderId); + public Map findHeaderResep(String strukOrderId); + + public List> findResepSatuan(String strukOrderId); public List> findResepRacikan(String strukOrderId); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ResepDokterServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ResepDokterServiceImpl.java index 042ce547..68d09ea9 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ResepDokterServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/ResepDokterServiceImpl.java @@ -1,6 +1,7 @@ package com.jasamedika.medifirst2000.service.impl; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; @@ -35,28 +36,28 @@ import com.jasamedika.medifirst2000.vo.StrukOrderVO; */ @Service("resepDokterService") public class ResepDokterServiceImpl extends BaseVoServiceImpl implements ResepDokterService { - + @Autowired private BaseConverterImpl resepDokterConverter; - + @Autowired private BaseConverterImpl produkConverter; - + @Autowired private BaseConverterImpl ruanganConverter; - + @Autowired private BaseConverterImpl satuanConverter; - + @Autowired private BaseConverterImpl strukOrderConverter; - + @Autowired private BaseConverterImpl jenisObatConverter; - + @Autowired private BaseConverterImpl jenisKemasanConverter; - + @Autowired private ResepDokterDao resepDokterDao; @@ -123,7 +124,7 @@ public class ResepDokterServiceImpl extends BaseVoServiceImpl implements ResepDo public List findAll() throws JpaSystemException { List result = new ArrayList(); Iterable models = resepDokterDao.findAll(); - if (CommonUtil.isNotNullOrEmpty(models)) { + if (CommonUtil.isNotNullOrEmpty(models)) { for (ResepDokter model : models) { ResepDokterVO vo = new ResepDokterVO(); vo = resepDokterConverter.transferModelToVO(model, vo); @@ -149,31 +150,68 @@ public class ResepDokterServiceImpl extends BaseVoServiceImpl implements ResepDo } @Override - public List> findHeaderResep(String strukOrderId) { + public Map findHeaderResep(String strukOrderId) { + Map result = resepDokterDao.findResepHeaderByStrukOrderId(strukOrderId); + return result; + } + + @Override + public List> findResepSatuan(String strukOrderId) { List> result = new ArrayList<>(); - List> data = resepDokterDao.findByStrukOrderId(strukOrderId); + List> data = resepDokterDao.findResepBodyByStrukOrderId(strukOrderId); List listResepKe = new ArrayList<>(); for (Map map : data) { if (!listResepKe.contains(map.get("rKe"))) { listResepKe.add(map.get("rKe").toString()); } } - int jumlahResep = 0; for (String resepKe : listResepKe) { + int jumlahResep = 0; + Map rsMap = new HashMap(); for (Map map : data) { if (resepKe.equals(map.get("rKe"))) { - + rsMap.putAll(map); + jumlahResep++; } } + if (jumlahResep == 1) { + result.add(rsMap); + } } - return null; + return result; } @Override public List> findResepRacikan(String strukOrderId) { List> result = new ArrayList<>(); - List> data = resepDokterDao.findByStrukOrderId(strukOrderId); - return null; + List> data = resepDokterDao.findResepBodyByStrukOrderId(strukOrderId); + List listResepKe = new ArrayList<>(); + for (Map map : data) { + if (!listResepKe.contains(map.get("rKe"))) { + listResepKe.add(map.get("rKe").toString()); + } + } + List listRacikan = new ArrayList<>(); + for (String resepKe : listResepKe) { + int jumlahResep = 0; + String racikanKe = resepKe; + for (Map map : data) { + if (resepKe.equals(map.get("rKe"))) { + jumlahResep++; + } + } + if (jumlahResep > 1) { + listRacikan.add(racikanKe); + } + } + for (String racikanKe : listRacikan) { + for (Map map : data) { + if (racikanKe.equals(map.get("rKe"))) { + result.add(map); + } + } + } + return result; } } diff --git a/jasamedika-reporting/src/main/java/com/jasamedika/medifirst2000/controller/ReportingController.java b/jasamedika-reporting/src/main/java/com/jasamedika/medifirst2000/controller/ReportingController.java index 8ecf4888..acf95ba2 100644 --- a/jasamedika-reporting/src/main/java/com/jasamedika/medifirst2000/controller/ReportingController.java +++ b/jasamedika-reporting/src/main/java/com/jasamedika/medifirst2000/controller/ReportingController.java @@ -130,6 +130,7 @@ import com.jasamedika.medifirst2000.service.RekrutmenService; import com.jasamedika.medifirst2000.service.ReportService; import com.jasamedika.medifirst2000.service.ReportingPegawaiService; import com.jasamedika.medifirst2000.service.ReportingPelayananRekamMedisService; +import com.jasamedika.medifirst2000.service.ResepDokterService; import com.jasamedika.medifirst2000.service.ReturRuanganService; import com.jasamedika.medifirst2000.service.RuanganService; import com.jasamedika.medifirst2000.service.StokProdukGlobalService; @@ -336,6 +337,9 @@ public class ReportingController extends LocaleController @Autowired private CatatanPerkembanganPasienTerintegrasiService cpptService; + + @Autowired + private ResepDokterService resepDokterService; @SuppressWarnings("unchecked") @RequestMapping("/instalasiRawatInap") @@ -7502,40 +7506,24 @@ public class ReportingController extends LocaleController @RequestMapping("/resep") public ModelAndView generateResep(ModelAndView m, @RequestParam(value = "format", required = false) String format, - @RequestParam(value = "startDate", required = true) String startDate, - @RequestParam(value = "endDate", required = true) String endDate) { - - DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); - - Map kepalaTtdRekap = pegawaiService - .findKepalaPegawai("Kepala Instalasi Loundry dan Sterilisasi Sentral"); - Map grandTarifQty = laundryService.findGrandTarifQtyCuciLinen(startDate, endDate); - List> dsRekapCuciLinen = laundryService.findDepartemenTarifQtyCuciLinen(startDate, endDate); - List> sdsRekapCuciLinen = laundryService.findRuanganTarifQtyCuciLinen(startDate, endDate); - - try { - Date sd = df.parse(startDate); - Date ed = df.parse(endDate); - - m.addObject("startDate", sd); - m.addObject("endDate", ed); - - } catch (ParseException e) { - e.printStackTrace(); - } - - m.addObject("dsRekapLayananLaundry", dsRekapCuciLinen); - m.addObject("sdsRekapLayananLaundry", sdsRekapCuciLinen); - m.addObject("grandSubTotal", grandTarifQty.get("grandSubTotal")); - m.addObject("grandTotal", grandTarifQty.get("grandTotal")); - m.addObject("grandBerat", grandTarifQty.get("grandBerat")); - m.addObject("rataanBeratCucian", grandTarifQty.get("rataanBeratCucian")); - m.addObject("rataanLembarCucian", grandTarifQty.get("rataanLembarCucian")); + @RequestParam(value = "struk_order_id", required = true) String strukOrderId) { + Map headerResep = resepDokterService.findHeaderResep(strukOrderId); + List> dsResep = resepDokterService.findResepSatuan(strukOrderId); + List> sdsResep = resepDokterService.findResepRacikan(strukOrderId); + + m.addObject("dsResep", dsResep); + m.addObject("sdsResep", sdsResep); + m.addObject("noRec", headerResep.get("noRec")); + m.addObject("tglOrder", headerResep.get("tglOrder")); + m.addObject("alergi", headerResep.get("alergi")); + m.addObject("beratBadan", headerResep.get("beratBadan")); + m.addObject("ruangan", headerResep.get("ruangan")); + m.addObject("dokter", headerResep.get("dokter")); + m.addObject("noRegistrasi", headerResep.get("noRegistrasi")); + m.addObject("namaPasien", headerResep.get("namaPasien")); + m.addObject("tglLahir", headerResep.get("tglLahir")); + m.addObject("noCm", headerResep.get("noCm")); m.addObject("format", "pdf"); - if (CommonUtil.isNotNullOrEmpty(kepalaTtdRekap)) { - m.addObject("nipPegawai", kepalaTtdRekap.get("nipPegawai")); - m.addObject("namaPegawai", kepalaTtdRekap.get("namaPegawai")); - } if (format != null && !format.isEmpty()) { m.addObject("format", format); }