From 8503091f268a2244dd9ef220bb9589ec6cd141cd Mon Sep 17 00:00:00 2001 From: salmanoersabhk Date: Wed, 10 Aug 2022 19:03:52 +0700 Subject: [PATCH] Create ResepDokterService --- .../medifirst2000/dao/ResepDokterDao.java | 13 +++ .../service/ResepDokterService.java | 4 + .../service/impl/ResepDokterServiceImpl.java | 109 +++++++++++++++++- .../medifirst2000/entities/ResepDokter.java | 27 +---- .../medifirst2000/vo/ResepDokterVO.java | 16 +-- .../controller/PelayananController.java | 24 ++++ 6 files changed, 150 insertions(+), 43 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 f3ecbb6d..d0fe383d 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 @@ -1,6 +1,11 @@ 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.ResepDokter; @@ -12,4 +17,12 @@ 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," + + "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," + + "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); } 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 ab8e0539..4015e267 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 @@ -1,5 +1,8 @@ package com.jasamedika.medifirst2000.service; +import java.util.List; +import java.util.Map; + import com.jasamedika.medifirst2000.entities.ResepDokter; import com.jasamedika.medifirst2000.vo.ResepDokterVO; @@ -9,4 +12,5 @@ import com.jasamedika.medifirst2000.vo.ResepDokterVO; * */ public interface ResepDokterService extends BaseVoService { + public List> findByStrukOrderId(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 d57835b4..45f288ec 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,14 +1,32 @@ 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.ResepDokterDao; +import com.jasamedika.medifirst2000.entities.JenisKemasan; +import com.jasamedika.medifirst2000.entities.JenisObat; +import com.jasamedika.medifirst2000.entities.Produk; +import com.jasamedika.medifirst2000.entities.ResepDokter; +import com.jasamedika.medifirst2000.entities.Ruangan; +import com.jasamedika.medifirst2000.entities.SatuanStandar; +import com.jasamedika.medifirst2000.entities.StrukOrder; import com.jasamedika.medifirst2000.exception.ServiceVOException; import com.jasamedika.medifirst2000.service.ResepDokterService; +import com.jasamedika.medifirst2000.util.CommonUtil; +import com.jasamedika.medifirst2000.vo.JenisKemasanVO; +import com.jasamedika.medifirst2000.vo.JenisObatVO; +import com.jasamedika.medifirst2000.vo.ProdukVO; import com.jasamedika.medifirst2000.vo.ResepDokterVO; +import com.jasamedika.medifirst2000.vo.RuanganVO; +import com.jasamedika.medifirst2000.vo.SatuanStandarVO; +import com.jasamedika.medifirst2000.vo.StrukOrderVO; /** * @author salmanoe @@ -17,30 +35,102 @@ import com.jasamedika.medifirst2000.vo.ResepDokterVO; */ @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; @Override public ResepDokterVO add(ResepDokterVO vo) throws JpaSystemException, ServiceVOException { - return null; + Produk produk = produkConverter.transferVOToModel(vo.getProduk(), new Produk()); + Ruangan ruangan = ruanganConverter.transferVOToModel(vo.getRuangan(), new Ruangan()); + SatuanStandar satuan = satuanConverter.transferVOToModel(vo.getSatuanStandard(), new SatuanStandar()); + StrukOrder strukOrder = strukOrderConverter.transferVOToModel(vo.getStrukOrder(), new StrukOrder()); + JenisObat jenisObat = jenisObatConverter.transferVOToModel(vo.getJenisObat(), new JenisObat()); + JenisKemasan jenisKemasan = jenisKemasanConverter.transferVOToModel(vo.getJenisKemasan(), new JenisKemasan()); + ResepDokter resepDokter = resepDokterConverter.transferVOToModel(vo, new ResepDokter()); + resepDokter.setProduk(produk); + resepDokter.setRuangan(ruangan); + resepDokter.setSatuanStandard(satuan); + resepDokter.setStrukOrder(strukOrder); + resepDokter.setJenisObat(jenisObat); + resepDokter.setJenisKemasan(jenisKemasan); + ResepDokter resultModel = resepDokterDao.save(resepDokter); + ResepDokterVO resultVO = new ResepDokterVO(); + resultVO = resepDokterConverter.transferModelToVO(resultModel, resultVO); + return resultVO; } @Override public ResepDokterVO update(ResepDokterVO vo) throws JpaSystemException, ServiceVOException { - return null; + ResepDokter resepDokterLama = resepDokterDao.findOne(vo.getNoRec()); + Produk produk = produkConverter.transferVOToModel(vo.getProduk(), new Produk()); + Ruangan ruangan = ruanganConverter.transferVOToModel(vo.getRuangan(), new Ruangan()); + SatuanStandar satuan = satuanConverter.transferVOToModel(vo.getSatuanStandard(), new SatuanStandar()); + StrukOrder strukOrder = strukOrderConverter.transferVOToModel(vo.getStrukOrder(), new StrukOrder()); + JenisObat jenisObat = jenisObatConverter.transferVOToModel(vo.getJenisObat(), new JenisObat()); + JenisKemasan jenisKemasan = jenisKemasanConverter.transferVOToModel(vo.getJenisKemasan(), new JenisKemasan()); + ResepDokter resepDokterBaru = resepDokterConverter.transferVOToModel(vo, resepDokterLama); + resepDokterBaru.setProduk(produk); + resepDokterBaru.setRuangan(ruangan); + resepDokterBaru.setSatuanStandard(satuan); + resepDokterBaru.setStrukOrder(strukOrder); + resepDokterBaru.setJenisObat(jenisObat); + resepDokterBaru.setJenisKemasan(jenisKemasan); + ResepDokter resultModel = resepDokterDao.save(resepDokterBaru); + ResepDokterVO resultVO = new ResepDokterVO(); + resultVO = resepDokterConverter.transferModelToVO(resultModel, resultVO); + return resultVO; } @Override public Boolean delete(String key) throws JpaSystemException { - return null; + resepDokterDao.delete(key); + return true; } @Override public ResepDokterVO findById(String key) throws JpaSystemException { - return null; + ResepDokterVO result = new ResepDokterVO(); + ResepDokter resepDokter = resepDokterDao.findOne(key); + if (CommonUtil.isNotNullOrEmpty(resepDokter)) { + result = resepDokterConverter.transferModelToVO(resepDokter, result); + } + return result; } @Override public List findAll() throws JpaSystemException { - return null; + List result = new ArrayList(); + Iterable models = resepDokterDao.findAll(); + if (CommonUtil.isNotNullOrEmpty(models)) { + for (ResepDokter model : models) { + ResepDokterVO vo = new ResepDokterVO(); + vo = resepDokterConverter.transferModelToVO(model, vo); + result.add(vo); + } + } + return result; } @Override @@ -49,4 +139,13 @@ public class ResepDokterServiceImpl extends BaseVoServiceImpl implements ResepDo return null; } + @Override + public List> findByStrukOrderId(String strukOrderId) { + List> result = resepDokterDao.findByStrukOrderId(strukOrderId); + if (CommonUtil.isNotNullOrEmpty(result)) { + return result; + } + return null; + } + } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/ResepDokter.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/ResepDokter.java index 49d527b3..59ac6b87 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/ResepDokter.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/ResepDokter.java @@ -3,15 +3,11 @@ package com.jasamedika.medifirst2000.entities; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.FetchType; -import javax.persistence.GeneratedValue; -import javax.persistence.Id; import javax.persistence.JoinColumn; import javax.persistence.ManyToOne; import javax.persistence.Table; -import org.hibernate.annotations.GenericGenerator; - -import com.jasamedika.medifirst2000.base.BaseModel; +import com.jasamedika.medifirst2000.base.BaseTransaction; import com.jasamedika.medifirst2000.helper.Caption; /** @@ -21,19 +17,10 @@ import com.jasamedika.medifirst2000.helper.Caption; */ @Entity @Table(name = "t_resep_dokter") -public class ResepDokter extends BaseModel { +public class ResepDokter extends BaseTransaction { - private static final long serialVersionUID = 929596194001582840L; + private static final long serialVersionUID = 5479407357558365912L; - @GeneratedValue(generator = "uuid") - @GenericGenerator(name = "uuid", strategy = "uuid") - @Column(columnDefinition = "CHAR(32)", unique = true) - @Id - public String noRec; - - @Column(name = "statusEnabled") - public Boolean statusEnabled; - @Column(name = "keteranganlainnya", length = 150) @Caption(value = "Keterangan Lainnya") private String keteranganLainnya; @@ -122,14 +109,6 @@ public class ResepDokter extends BaseModel { this.noRec = noRec; } - public Boolean getStatusEnabled() { - return statusEnabled; - } - - public void setStatusEnabled(Boolean statusEnabled) { - this.statusEnabled = statusEnabled; - } - public String getKeteranganLainnya() { return keteranganLainnya; } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/ResepDokterVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/ResepDokterVO.java index 8834506a..b3d889e5 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/ResepDokterVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/ResepDokterVO.java @@ -1,6 +1,6 @@ package com.jasamedika.medifirst2000.vo; -import com.jasamedika.medifirst2000.base.vo.BaseModelVO; +import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO; import com.jasamedika.medifirst2000.helper.Caption; /** @@ -8,11 +8,7 @@ import com.jasamedika.medifirst2000.helper.Caption; * @since Aug 9, 2022 * */ -public class ResepDokterVO extends BaseModelVO { - - public String noRec; - - public Boolean statusEnabled; +public class ResepDokterVO extends BaseTransactionVO { @Caption(value = "Keterangan Lainnya") private String keteranganLainnya; @@ -76,14 +72,6 @@ public class ResepDokterVO extends BaseModelVO { this.noRec = noRec; } - public Boolean getStatusEnabled() { - return statusEnabled; - } - - public void setStatusEnabled(Boolean statusEnabled) { - this.statusEnabled = statusEnabled; - } - public String getKeteranganLainnya() { return keteranganLainnya; } diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java index e33950c7..564be927 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java @@ -27,6 +27,7 @@ import com.jasamedika.medifirst2000.exception.ServiceVOException; import com.jasamedika.medifirst2000.service.PasienDaftarService; import com.jasamedika.medifirst2000.service.PelayananPasienService; import com.jasamedika.medifirst2000.service.ProdukService; +import com.jasamedika.medifirst2000.service.ResepDokterService; import com.jasamedika.medifirst2000.service.SatuanStandarService; import com.jasamedika.medifirst2000.util.rest.RestUtil; import com.jasamedika.medifirst2000.vo.PelayananPasienVO; @@ -49,6 +50,9 @@ public class PelayananController extends LocaleController { @Autowired private SatuanStandarService satuanStandarService; + @Autowired + private ResepDokterService resepDokterService; + @RequestMapping(value = "/calculate-indikator-pelayanan", method = RequestMethod.GET) public ResponseEntity>> calculateIndikatorPelayanan(HttpServletRequest request, @RequestParam("tahun") String tahun) throws ParseException { @@ -204,4 +208,24 @@ public class PelayananController extends LocaleController { } } + @RequestMapping(value = "/get-resep-dokter", method = RequestMethod.GET) + public ResponseEntity>> getResepDokter(HttpServletRequest request, + @RequestParam(value = "struk_order_id") String strukOrderId) { + try { + List> result = resepDokterService.findByStrukOrderId(strukOrderId); + + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage); + } catch (ServiceVOException e) { + LOGGER.error("Got exception {} when get resep dokter", e.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, e.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when get resep dokter", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + }