Add PelayananFarmakologiService
Pembuatan service pencatatan pelayanan dokter farmakologi
This commit is contained in:
parent
0b9aaf29b8
commit
73aa290766
@ -0,0 +1,47 @@
|
||||
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.PelayananFarmakologi;
|
||||
|
||||
/**
|
||||
* @author salmanoe
|
||||
* @since Jun 20, 2022
|
||||
*
|
||||
*/
|
||||
@Repository("pelayananFarmakologiDao")
|
||||
public interface PelayananFarmakologiDao extends PagingAndSortingRepository<PelayananFarmakologi, String> {
|
||||
|
||||
@Query("select pf from PelayananFarmakologi pf " + "where pf.statusEnabled is true "
|
||||
+ "and to_char(pf.tglPelayanan,'yyyy-MM') = :bulan " + "and pf.pegawaiId = :pegawaiId")
|
||||
List<PelayananFarmakologi> findAllByKontrak(@Param("bulan") String bulan, @Param("pegawaiId") Integer idPegawai);
|
||||
|
||||
@Query("select new Map(pfk.noRec as noRec," + "pfk.tglPelayanan as tglPelayanan," + "pfk.skor as skor,"
|
||||
+ "pfk.jumlah as jumlah," + "pfk.skor*pfk.jumlah as tSkor," + "pfk.catatan as detail,"
|
||||
+ "pf.id as produkId," + "pf.namaProduk as namaProduk," + "pf.kdProduk as kdProduk,"
|
||||
+ "(case when pf.kdProduk = 1 then 'Pelayanan Pasien (Tarif)' "
|
||||
+ "when pf.kdProduk = 2 then 'pelayanan Pasien (Nontarif)' "
|
||||
+ "when pf.kdProduk = 3 then 'Pelayanan Nonpasien' end) as kodeProduk," + "pg.id as pegawaiId,"
|
||||
+ "pg.namaLengkap as namaLengkap) " + "from PelayananFarmakologi pfk " + "inner join pfk.produk pf "
|
||||
+ "inner join pfk.pegawai pg " + "where pfk.statusEnabled is true " + "and pf.statusEnabled is true "
|
||||
+ "and pg.statusEnabled is true " + "and to_char(pfk.tglPelayanan,'yyyy-MM') = :bulan "
|
||||
+ "and pfk.pegawaiId = :pegawaiId " + "order by pf.namaProduk, pfk.tglPelayanan")
|
||||
List<Map<String, Object>> findPelayananFarmakologi(@Param("bulan") String bulan,
|
||||
@Param("pegawaiId") Integer idPegawai);
|
||||
|
||||
@Query("select new Map(pfk.tglPelayanan as tglPelayanan,"
|
||||
+ "to_char(pfk.tglPelayanan,'yyyy-MM-dd HH24:MI:ss') as tglPelayananFormatted," + "pfk.jumlah as jumlah,"
|
||||
+ "pfk.catatan as catatan) " + "from PelayananFarmakologi pfk " + "inner join pfk.pegawai pg "
|
||||
+ "inner join pfk.produk pf " + "where pfk.statusEnabled is true " + "and pf.statusEnabled is true "
|
||||
+ "and pg.statusEnabled is true " + "and pg.id = :pegawaiId " + "and pf.id = :produkId "
|
||||
+ "and to_char(pfk.tglPelayanan,'yyyy-MM-dd') = :tglPelayanan")
|
||||
List<Map<String, Object>> findPelayananFarmakologiDetail(@Param("pegawaiId") Integer idPegawai,
|
||||
@Param("produkId") Integer idProduk, @Param("tglPelayanan") String tglPelayanan);
|
||||
|
||||
}
|
||||
@ -0,0 +1,14 @@
|
||||
package com.jasamedika.medifirst2000.service;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.PelayananFarmakologi;
|
||||
import com.jasamedika.medifirst2000.vo.PelayananFarmakologiVO;
|
||||
|
||||
/**
|
||||
* @author salmanoe
|
||||
* @since Jun 20, 2022
|
||||
*
|
||||
*/
|
||||
public interface PelayananFarmakologiService
|
||||
extends BaseVoService<PelayananFarmakologi, PelayananFarmakologiVO, String> {
|
||||
|
||||
}
|
||||
@ -0,0 +1,160 @@
|
||||
package com.jasamedika.medifirst2000.service.impl;
|
||||
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
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.PelayananFarmakologiDao;
|
||||
import com.jasamedika.medifirst2000.dao.SkoringTindakanFarmakologiDao;
|
||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
||||
import com.jasamedika.medifirst2000.entities.PelayananFarmakologi;
|
||||
import com.jasamedika.medifirst2000.entities.ProdukFarmakologi;
|
||||
import com.jasamedika.medifirst2000.entities.SkoringTindakanFarmakologi;
|
||||
import com.jasamedika.medifirst2000.exception.ServiceVOException;
|
||||
import com.jasamedika.medifirst2000.service.PelayananFarmakologiService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.vo.PegawaiVO;
|
||||
import com.jasamedika.medifirst2000.vo.PelayananFarmakologiVO;
|
||||
import com.jasamedika.medifirst2000.vo.ProdukFarmakologiVO;
|
||||
|
||||
/**
|
||||
* @author salmanoe
|
||||
* @since Jun 20, 2022
|
||||
*
|
||||
*/
|
||||
@Service("pelayananFarmakologiService")
|
||||
public class PelayananFarmakologiServiceImpl extends BaseVoServiceImpl implements PelayananFarmakologiService {
|
||||
|
||||
@Autowired
|
||||
private BaseConverterImpl<PelayananFarmakologiVO, PelayananFarmakologi> pelayananFarmakologiConverter;
|
||||
|
||||
@Autowired
|
||||
private BaseConverterImpl<ProdukFarmakologiVO, ProdukFarmakologi> produkFarmakologiConverter;
|
||||
|
||||
@Autowired
|
||||
private BaseConverterImpl<PegawaiVO, Pegawai> pegawaiConverter;
|
||||
|
||||
@Autowired
|
||||
private PelayananFarmakologiDao pelayananFarmakologiDao;
|
||||
|
||||
@Autowired
|
||||
private SkoringTindakanFarmakologiDao skoringTindakanFarmakologiDao;
|
||||
|
||||
@Override
|
||||
public PelayananFarmakologiVO add(PelayananFarmakologiVO vo) throws JpaSystemException, ServiceVOException {
|
||||
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
||||
DateFormat mf = new SimpleDateFormat("yyyy-MM");
|
||||
|
||||
if (mf.format(vo.getTglPelayanan()).equals(mf.format(new Date()))) {
|
||||
PelayananFarmakologi pelayananFarmakologi = pelayananFarmakologiConverter.transferVOToModel(vo,
|
||||
new PelayananFarmakologi());
|
||||
|
||||
ProdukFarmakologi produk = produkFarmakologiConverter.transferVOToModel(vo.getProduk(),
|
||||
new ProdukFarmakologi());
|
||||
pelayananFarmakologi.setProduk(produk);
|
||||
|
||||
Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai());
|
||||
pelayananFarmakologi.setPegawai(pegawai);
|
||||
|
||||
SkoringTindakanFarmakologi skoringFarmakologi = skoringTindakanFarmakologiDao
|
||||
.findLast(vo.getProduk().getId(), df.format(vo.getTglPelayanan()));
|
||||
if (CommonUtil.isNotNullOrEmpty(skoringFarmakologi)) {
|
||||
skoringFarmakologi.setSkor(skoringFarmakologi.getSkor());
|
||||
} else {
|
||||
skoringFarmakologi.setSkor(1.00);
|
||||
}
|
||||
|
||||
PelayananFarmakologi resultModel = pelayananFarmakologiDao.save(pelayananFarmakologi);
|
||||
|
||||
PelayananFarmakologiVO resultVO = new PelayananFarmakologiVO();
|
||||
resultVO = pelayananFarmakologiConverter.transferModelToVO(resultModel, resultVO);
|
||||
|
||||
return resultVO;
|
||||
} else {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public PelayananFarmakologiVO update(PelayananFarmakologiVO vo) throws JpaSystemException, ServiceVOException {
|
||||
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
||||
|
||||
PelayananFarmakologi pelayananFarmakologiLama = pelayananFarmakologiDao.findOne(vo.getNoRec());
|
||||
|
||||
PelayananFarmakologi pelayananFarmakologiBaru = pelayananFarmakologiConverter.transferVOToModel(vo,
|
||||
pelayananFarmakologiLama);
|
||||
|
||||
ProdukFarmakologi produk = produkFarmakologiConverter.transferVOToModel(vo.getProduk(),
|
||||
new ProdukFarmakologi());
|
||||
pelayananFarmakologiBaru.setProduk(produk);
|
||||
|
||||
Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai());
|
||||
pelayananFarmakologiBaru.setPegawai(pegawai);
|
||||
|
||||
SkoringTindakanFarmakologi skoringFarmakologi = skoringTindakanFarmakologiDao.findLast(vo.getProduk().getId(),
|
||||
df.format(vo.getTglPelayanan()));
|
||||
if (CommonUtil.isNotNullOrEmpty(skoringFarmakologi)) {
|
||||
pelayananFarmakologiBaru.setSkor(skoringFarmakologi.getSkor());
|
||||
} else {
|
||||
pelayananFarmakologiBaru.setSkor(1.00);
|
||||
}
|
||||
|
||||
PelayananFarmakologi resultModel = pelayananFarmakologiDao.save(pelayananFarmakologiBaru);
|
||||
|
||||
PelayananFarmakologiVO resultVO = new PelayananFarmakologiVO();
|
||||
resultVO = pelayananFarmakologiConverter.transferModelToVO(resultModel, resultVO);
|
||||
|
||||
return resultVO;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Boolean delete(String key) throws JpaSystemException {
|
||||
pelayananFarmakologiDao.delete(key);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public PelayananFarmakologiVO findById(String key) throws JpaSystemException {
|
||||
PelayananFarmakologiVO result = new PelayananFarmakologiVO();
|
||||
|
||||
PelayananFarmakologi pelayananFarmakologi = pelayananFarmakologiDao.findOne(key);
|
||||
if (CommonUtil.isNotNullOrEmpty(pelayananFarmakologi)) {
|
||||
result = pelayananFarmakologiConverter.transferModelToVO(pelayananFarmakologi, result);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PelayananFarmakologiVO> findAll() throws JpaSystemException {
|
||||
List<PelayananFarmakologiVO> result = new ArrayList<PelayananFarmakologiVO>();
|
||||
|
||||
Iterable<PelayananFarmakologi> models = pelayananFarmakologiDao.findAll();
|
||||
if (CommonUtil.isNotNullOrEmpty(models)) {
|
||||
for (PelayananFarmakologi model : models) {
|
||||
PelayananFarmakologiVO vo = new PelayananFarmakologiVO();
|
||||
vo = pelayananFarmakologiConverter.transferModelToVO(model, vo);
|
||||
result.add(vo);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Map<String, Object> findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit,
|
||||
String sort, String dir) {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,125 @@
|
||||
package com.jasamedika.medifirst2000.entities;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.FetchType;
|
||||
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;
|
||||
|
||||
/**
|
||||
* @author salmanoe
|
||||
* @since Jun 20, 2022
|
||||
*
|
||||
*/
|
||||
@Entity
|
||||
@Table(name = "pelayananfarmakologi_t")
|
||||
public class PelayananFarmakologi extends BaseTransaction {
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@NotNull(message = "Produk Farmakologi tidak boleh kosong")
|
||||
@JoinColumn(name = "objectprodukfarmakologifk")
|
||||
@Caption(value = "Produk Farmakologi")
|
||||
private ProdukFarmakologi produk;
|
||||
|
||||
@Column(name = "objectprodukfarmakologifk", 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 = "catatan", nullable = true)
|
||||
@Caption(value = "Catatan")
|
||||
private String catatan;
|
||||
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumn(name = "objectpegawaifk")
|
||||
@Caption(value = "Pegawai")
|
||||
private Pegawai pegawai;
|
||||
|
||||
@Column(name = "objectpegawaifk", insertable = false, updatable = false, nullable = true)
|
||||
private Integer pegawaiId;
|
||||
|
||||
public ProdukFarmakologi getProduk() {
|
||||
return produk;
|
||||
}
|
||||
|
||||
public void setProduk(ProdukFarmakologi 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 String getCatatan() {
|
||||
return catatan;
|
||||
}
|
||||
|
||||
public void setCatatan(String catatan) {
|
||||
this.catatan = catatan;
|
||||
}
|
||||
|
||||
public Pegawai getPegawai() {
|
||||
return pegawai;
|
||||
}
|
||||
|
||||
public void setPegawai(Pegawai pegawai) {
|
||||
this.pegawai = pegawai;
|
||||
}
|
||||
|
||||
public Integer getPegawaiId() {
|
||||
return pegawaiId;
|
||||
}
|
||||
|
||||
public void setPegawaiId(Integer pegawaiId) {
|
||||
this.pegawaiId = pegawaiId;
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,101 @@
|
||||
package com.jasamedika.medifirst2000.vo;
|
||||
|
||||
import java.util.Date;
|
||||
|
||||
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
|
||||
import com.jasamedika.medifirst2000.helper.Caption;
|
||||
|
||||
/**
|
||||
* @author salmanoe
|
||||
* @since Jun 20, 2022
|
||||
*
|
||||
*/
|
||||
public class PelayananFarmakologiVO extends BaseTransactionVO {
|
||||
|
||||
@Caption(value = "Produk Farmakologi")
|
||||
private ProdukFarmakologiVO 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 = "Catatan")
|
||||
private String catatan;
|
||||
|
||||
@Caption(value = "Pegawai")
|
||||
private PegawaiVO pegawai;
|
||||
|
||||
private Integer pegawaiId;
|
||||
|
||||
public ProdukFarmakologiVO getProduk() {
|
||||
return produk;
|
||||
}
|
||||
|
||||
public void setProduk(ProdukFarmakologiVO 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 String getCatatan() {
|
||||
return catatan;
|
||||
}
|
||||
|
||||
public void setCatatan(String catatan) {
|
||||
this.catatan = catatan;
|
||||
}
|
||||
|
||||
public PegawaiVO getPegawai() {
|
||||
return pegawai;
|
||||
}
|
||||
|
||||
public void setPegawai(PegawaiVO pegawai) {
|
||||
this.pegawai = pegawai;
|
||||
}
|
||||
|
||||
public Integer getPegawaiId() {
|
||||
return pegawaiId;
|
||||
}
|
||||
|
||||
public void setPegawaiId(Integer pegawaiId) {
|
||||
this.pegawaiId = pegawaiId;
|
||||
}
|
||||
|
||||
}
|
||||
@ -705,5 +705,6 @@
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.MapProdukKelompokKerja"/>
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.ProdukFarmakologi"/>
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.SkoringTindakanFarmakologi"/>
|
||||
<mapping class="com.jasamedika.medifirst2000.entities.PelayananFarmakologi"/>
|
||||
</session-factory>
|
||||
</hibernate-configuration>
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user