From a2b7df8ccf9c0ad71b10e4945dada1dbe21373ae Mon Sep 17 00:00:00 2001 From: salmanoe Date: Tue, 19 Oct 2021 22:12:32 +0700 Subject: [PATCH] - pembuatan service simpan, edit, delete entri kegiatan tkl nonpelayanan pasien - pembuatan service detail kegiatan tkl nonpelayan pasien - pembuatan entity cppt - pendaftaran entity cppt dalam konfigurasi hibernate - pembuatan tabel pelayanan nakes lain nonppa - pendaftaran konstanta indikator pelayanan pasien dan indikator nonpelayanan pasien oleh tkl --- .../medifirst2000/constants/Master.java | 4 +- .../medifirst2000/dao/PelayananNakesDao.java | 31 ++ .../service/PelayananNakesService.java | 19 ++ .../service/impl/KonsultasiServiceImpl.java | 4 - .../impl/PelayananNakesServiceImpl.java | 164 ++++++++++ ...CatatanPerkembanganPasienTerintegrasi.java | 289 ++++++++++++++++++ .../entities/DetailJenisProduk.java | 30 +- .../medifirst2000/entities/JenisProduk.java | 29 +- .../entities/PelayananNakes.java | 123 ++++++++ .../medifirst2000/vo/PelayananNakesVO.java | 100 ++++++ .../src/main/resources/hibernate.cfg.xml | 2 + .../IkiDanRemunerasiController.java | 74 +++++ 12 files changed, 826 insertions(+), 43 deletions(-) create mode 100644 jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananNakesDao.java create mode 100644 jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananNakesService.java create mode 100644 jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananNakesServiceImpl.java create mode 100644 jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/CatatanPerkembanganPasienTerintegrasi.java create mode 100644 jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananNakes.java create mode 100644 jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PelayananNakesVO.java diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java index 9f7ff7f0..a7d8851b 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/constants/Master.java @@ -87,6 +87,8 @@ public class Master { public static final Integer PEMENUHAN_JAM_KERJA = 350; public static final Integer PELAYANAN_MEDIS_JAM_KERJA = 466; public static final Integer PELAYANAN_MEDIS_LUAR_JAM_KERJA = 522; + public static final Integer PELAYANAN_PASIEN_NAKES = 672; + public static final Integer PELAYANAN_NON_PASIEN_NAKES = 673; } public static final class IndikatorKinerjaJamKerja { @@ -122,8 +124,8 @@ public class Master { public static final int LEVEL_DIRUT = 1; public static final int LEVEL_DIREKTUR = 2; - public static final Integer[] LEVEL_KEPALA = { 3, 4 }; public static final Integer[] DIRUT = { 137, 896, 1172 }; + public static final Integer[] LEVEL_KEPALA = { 3, 4 }; } public static final class JenisPegawai { diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananNakesDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananNakesDao.java new file mode 100644 index 00000000..dac06531 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PelayananNakesDao.java @@ -0,0 +1,31 @@ +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.PelayananNakes; + +/** + * @author ITI-14 + * @since Oct 18, 2021 + */ +@Repository("pelayananNakesDao") +public interface PelayananNakesDao extends PagingAndSortingRepository { + + @Query("select new Map(pp.noRec as noRec," + "pr.id as produkId,pr.namaProduk as namaProduk," + + "pfs.id as profesiId,pfs.namaProfesi as namaProfesi," + + "pp.tglPelayanan as tglPelayanan,to_char(pp.tglPelayanan,'dd-MM-yyyy HH24:MI:ss') as tglPelayananFormatted," + + "pp.jumlah as jumlah,pp.skor as skor,(pp.jumlah*pp.skor) as tSkor,pp.catatan as catatan," + + "pg.id as pegawaiId,pg.namaLengkap as namaLengkap) " + "from PelayananNakes pp " + + "inner join pp.produk pr " + "inner join pr.profesi pfs " + "left join pp.pegawai pg " + + "where pp.statusEnabled is true " + "and pr.kdProduk = 2 " + + "and to_char(pp.tglPelayanan,'yyyy-MM') = :bulan " + "and pg.id = :pegawaiId " + + "order by pp.tglPelayanan") + List> findDetailLogbook(@Param("bulan") String bulan, @Param("pegawaiId") Integer idPegawai); + +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananNakesService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananNakesService.java new file mode 100644 index 00000000..905846c7 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananNakesService.java @@ -0,0 +1,19 @@ +package com.jasamedika.medifirst2000.service; + +import java.util.List; +import java.util.Map; + +import org.springframework.orm.jpa.JpaSystemException; + +import com.jasamedika.medifirst2000.entities.PelayananNakes; +import com.jasamedika.medifirst2000.vo.PelayananNakesVO; + +/** + * @author ITI-14 + * @since Oct 18, 2021 + */ +public interface PelayananNakesService extends BaseVoService { + + List> findDetailLogbook(Long bulan, Integer idPegawai) throws JpaSystemException; + +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/KonsultasiServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/KonsultasiServiceImpl.java index 56022c09..9d23e170 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/KonsultasiServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/KonsultasiServiceImpl.java @@ -41,7 +41,6 @@ import com.jasamedika.medifirst2000.exception.ServiceVOException; import com.jasamedika.medifirst2000.service.AntrianPasienDiPeriksaService; import com.jasamedika.medifirst2000.service.KonsultasiService; import com.jasamedika.medifirst2000.service.LoginUserService; -import com.jasamedika.medifirst2000.service.RegistrasiPelayananService; import com.jasamedika.medifirst2000.util.CommonUtil; import com.jasamedika.medifirst2000.util.DateUtil; import com.jasamedika.medifirst2000.util.JsonUtil; @@ -96,9 +95,6 @@ public class KonsultasiServiceImpl extends BaseVoServiceImpl implements Konsulta @Autowired private JadwalDokterDao jadwalDokterDao; - @Autowired - private RegistrasiPelayananService registrasiPelayananService; - @Override public Map addKonsultasi(KonsultasiVO vo) { Map result = new HashMap(); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananNakesServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananNakesServiceImpl.java new file mode 100644 index 00000000..11f62d9e --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananNakesServiceImpl.java @@ -0,0 +1,164 @@ +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.PelayananNakesDao; +import com.jasamedika.medifirst2000.dao.SkoringTindakanNakesDao; +import com.jasamedika.medifirst2000.entities.Pegawai; +import com.jasamedika.medifirst2000.entities.PelayananNakes; +import com.jasamedika.medifirst2000.entities.ProdukNakes; +import com.jasamedika.medifirst2000.entities.SkoringTindakanNakes; +import com.jasamedika.medifirst2000.exception.ServiceVOException; +import com.jasamedika.medifirst2000.service.PelayananNakesService; +import com.jasamedika.medifirst2000.util.CommonUtil; +import com.jasamedika.medifirst2000.vo.PegawaiVO; +import com.jasamedika.medifirst2000.vo.PelayananNakesVO; +import com.jasamedika.medifirst2000.vo.ProdukNakesVO; + +/** + * @author ITI-14 + * @since Oct 18, 2021 + */ +@Service("pelayananNakesService") +public class PelayananNakesServiceImpl extends BaseVoServiceImpl implements PelayananNakesService { + + @Autowired + private BaseConverterImpl pelayananNakesConverter; + + @Autowired + private BaseConverterImpl produkNakesConverter; + + @Autowired + private BaseConverterImpl pegawaiConverter; + + @Autowired + private PelayananNakesDao pelayananNakesDao; + + @Autowired + private SkoringTindakanNakesDao skoringTindakanNakesDao; + + @Override + public PelayananNakesVO add(PelayananNakesVO 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()))) { + PelayananNakes pelayananNakes = pelayananNakesConverter.transferVOToModel(vo, new PelayananNakes()); + + ProdukNakes produk = produkNakesConverter.transferVOToModel(vo.getProduk(), new ProdukNakes()); + pelayananNakes.setProduk(produk); + + Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai()); + pelayananNakes.setPegawai(pegawai); + + SkoringTindakanNakes skoringNakes = skoringTindakanNakesDao.findLast(vo.getProduk().getId(), + df.format(vo.getTglPelayanan())); + if (CommonUtil.isNotNullOrEmpty(skoringNakes)) { + pelayananNakes.setSkor(skoringNakes.getSkor()); + } else { + pelayananNakes.setSkor(1.00); + } + + PelayananNakes resultModel = pelayananNakesDao.save(pelayananNakes); + + PelayananNakesVO resultVO = new PelayananNakesVO(); + resultVO = pelayananNakesConverter.transferModelToVO(resultModel, resultVO); + + return resultVO; + } else { + return null; + } + } + + @Override + public PelayananNakesVO update(PelayananNakesVO vo) throws JpaSystemException, ServiceVOException { + DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); + + PelayananNakes pelayananNakesLama = pelayananNakesDao.findOne(vo.getNoRec()); + + PelayananNakes pelayananNakesBaru = pelayananNakesConverter.transferVOToModel(vo, pelayananNakesLama); + + ProdukNakes produk = produkNakesConverter.transferVOToModel(vo.getProduk(), new ProdukNakes()); + pelayananNakesBaru.setProduk(produk); + + Pegawai pegawai = pegawaiConverter.transferVOToModel(vo.getPegawai(), new Pegawai()); + pelayananNakesBaru.setPegawai(pegawai); + + SkoringTindakanNakes skoringNakes = skoringTindakanNakesDao.findLast(vo.getProduk().getId(), + df.format(vo.getTglPelayanan())); + if (CommonUtil.isNotNullOrEmpty(skoringNakes)) { + pelayananNakesBaru.setSkor(skoringNakes.getSkor()); + } else { + pelayananNakesBaru.setSkor(1.00); + } + + PelayananNakes resultModel = pelayananNakesDao.save(pelayananNakesBaru); + + PelayananNakesVO resultVO = new PelayananNakesVO(); + resultVO = pelayananNakesConverter.transferModelToVO(resultModel, resultVO); + + return resultVO; + } + + @Override + public Boolean delete(String key) throws JpaSystemException { + pelayananNakesDao.delete(key); + + return true; + } + + @Override + public PelayananNakesVO findById(String key) throws JpaSystemException { + PelayananNakesVO result = new PelayananNakesVO(); + + PelayananNakes pelayananNakes = pelayananNakesDao.findOne(key); + if (CommonUtil.isNotNullOrEmpty(pelayananNakes)) { + result = pelayananNakesConverter.transferModelToVO(pelayananNakes, result); + } + + return result; + } + + @Override + public List findAll() throws JpaSystemException { + List result = new ArrayList(); + + Iterable models = pelayananNakesDao.findAll(); + if (CommonUtil.isNotNullOrEmpty(models)) { + for (PelayananNakes model : models) { + PelayananNakesVO vo = new PelayananNakesVO(); + vo = pelayananNakesConverter.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> findDetailLogbook(Long bulan, Integer idPegawai) throws JpaSystemException { + DateFormat mf = new SimpleDateFormat("yyyy-MM"); + + List> result = pelayananNakesDao.findDetailLogbook(mf.format(new Date(bulan)), idPegawai); + + return result; + } + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/CatatanPerkembanganPasienTerintegrasi.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/CatatanPerkembanganPasienTerintegrasi.java new file mode 100644 index 00000000..6f350470 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/CatatanPerkembanganPasienTerintegrasi.java @@ -0,0 +1,289 @@ +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 com.jasamedika.medifirst2000.base.BaseTransaction; +import com.jasamedika.medifirst2000.helper.Caption; + +/** + * @author ITI-14 + * @since Oct 19, 2021 + */ +@Entity +@Table(name = "cppt_t") +public class CatatanPerkembanganPasienTerintegrasi extends BaseTransaction { + + @ManyToOne + @JoinColumn(name = "pegawaifk") + @Caption(value = "Pegawai") + private Pegawai pegawai; + + @Column(name = "pegawaifk", insertable = false, updatable = false, nullable = true) + private Integer pegawaiId; + + @ManyToOne + @JoinColumn(name = "noregistrasifk") + @Caption(value = "Antrian Pasien Diperiksa") + private AntrianPasienDiPeriksa antrianPasienDiperiksa; + + @Column(name = "noregistrasifk", columnDefinition = "char(32)", insertable = false, updatable = false, nullable = true) + private String antrianPasienDiperiksaId; + + @Column(name = "isverifikasi", nullable = true) + @Caption(value = "Status Verifikasi") + private Boolean isVerifikasi; + + @Column(name = "nocppt", columnDefinition = "varchar(32)", nullable = true) + @Caption(value = "Nomor CPPT") + private String noCPPT; + + @Column(name = "tglinput", nullable = true) + @Caption(value = "Tanggal Input") + @Temporal(TemporalType.TIMESTAMP) + private Date tglInput; + + @Column(name = "s", columnDefinition = "varchar(5000)", nullable = true) + @Caption(value = "Subjektif/ Assesmen") + private String subjektifOrAssesmen; + + @Column(name = "o", columnDefinition = "varchar(5000)", nullable = true) + @Caption(value = "Objektif/ Diagnosis") + private String objecktifOrDiagnosis; + + @Column(name = "a", columnDefinition = "varchar(5000)", nullable = true) + @Caption(value = "Analisis/ Intervensi") + private String analisisOrIntervensi; + + @Column(name = "p", columnDefinition = "varchar(5000)", nullable = true) + @Caption(value = "Perencanaan/ Monitoring") + private String perencanaanOrMonitoring; + + @Column(name = "e", columnDefinition = "varchar(5000)", nullable = true) + @Caption(value = "Evaluasi") + private String adimeEvaluasi; + + @Column(name = "cppt_e", columnDefinition = "varchar(5000)", nullable = true) + @Caption(value = "CPPT e") + private String cpptEvaluasi; + + @Column(name = "cppt_i", columnDefinition = "varchar(5000)", nullable = true) + @Caption(value = "CPPT i") + private String cpptImplementasi; + + @ManyToOne + @JoinColumn(name = "ruanganfk") + @Caption(value = "Ruangan") + private Ruangan ruangan; + + @Column(name = "ruanganfk", insertable = false, updatable = false, nullable = true) + private Integer ruanganId; + + @ManyToOne + @JoinColumn(name = "pasienfk") + @Caption(value = "Pasien") + private Pasien pasien; + + @Column(name = "pasienfk", insertable = false, updatable = false, nullable = true) + private Integer pasienId; + + @ManyToOne + @JoinColumn(name = "pegawaiasalfk") + @Caption(value = "Pegawai Asal") + private Pegawai pegawaiAsal; + + @Column(name = "pegawaiasalfk", insertable = false, updatable = false, nullable = true) + private Integer pegawaiAsalId; + + @Column(name = "flag_", nullable = true) + @Caption(value = "Flag") + private Integer flag; + + @Column(name = "tbak", columnDefinition = "varchar(2000)", nullable = true) + @Caption(value = "Tulis Baca dan Konfirmasi") + private String tuliBacaKonfirmasi; + + 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; + } + + 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 Boolean getIsVerifikasi() { + return isVerifikasi; + } + + public void setIsVerifikasi(Boolean isVerifikasi) { + this.isVerifikasi = isVerifikasi; + } + + public String getNoCPPT() { + return noCPPT; + } + + public void setNoCPPT(String noCPPT) { + this.noCPPT = noCPPT; + } + + public Date getTglInput() { + return tglInput; + } + + public void setTglInput(Date tglInput) { + this.tglInput = tglInput; + } + + public String getSubjektifOrAssesmen() { + return subjektifOrAssesmen; + } + + public void setSubjektifOrAssesmen(String subjektifOrAssesmen) { + this.subjektifOrAssesmen = subjektifOrAssesmen; + } + + public String getObjecktifOrDiagnosis() { + return objecktifOrDiagnosis; + } + + public void setObjecktifOrDiagnosis(String objecktifOrDiagnosis) { + this.objecktifOrDiagnosis = objecktifOrDiagnosis; + } + + public String getAnalisisOrIntervensi() { + return analisisOrIntervensi; + } + + public void setAnalisisOrIntervensi(String analisisOrIntervensi) { + this.analisisOrIntervensi = analisisOrIntervensi; + } + + public String getPerencanaanOrMonitoring() { + return perencanaanOrMonitoring; + } + + public void setPerencanaanOrMonitoring(String perencanaanOrMonitoring) { + this.perencanaanOrMonitoring = perencanaanOrMonitoring; + } + + public String getAdimeEvaluasi() { + return adimeEvaluasi; + } + + public void setAdimeEvaluasi(String adimeEvaluasi) { + this.adimeEvaluasi = adimeEvaluasi; + } + + public String getCpptEvaluasi() { + return cpptEvaluasi; + } + + public void setCpptEvaluasi(String cpptEvaluasi) { + this.cpptEvaluasi = cpptEvaluasi; + } + + public String getCpptImplementasi() { + return cpptImplementasi; + } + + public void setCpptImplementasi(String cpptImplementasi) { + this.cpptImplementasi = cpptImplementasi; + } + + public Ruangan getRuangan() { + return ruangan; + } + + public void setRuangan(Ruangan ruangan) { + this.ruangan = ruangan; + } + + public Integer getRuanganId() { + return ruanganId; + } + + public void setRuanganId(Integer ruanganId) { + this.ruanganId = ruanganId; + } + + public Pasien getPasien() { + return pasien; + } + + public void setPasien(Pasien pasien) { + this.pasien = pasien; + } + + public Integer getPasienId() { + return pasienId; + } + + public void setPasienId(Integer pasienId) { + this.pasienId = pasienId; + } + + public Pegawai getPegawaiAsal() { + return pegawaiAsal; + } + + public void setPegawaiAsal(Pegawai pegawaiAsal) { + this.pegawaiAsal = pegawaiAsal; + } + + public Integer getPegawaiAsalId() { + return pegawaiAsalId; + } + + public void setPegawaiAsalId(Integer pegawaiAsalId) { + this.pegawaiAsalId = pegawaiAsalId; + } + + public Integer getFlag() { + return flag; + } + + public void setFlag(Integer flag) { + this.flag = flag; + } + + public String getTuliBacaKonfirmasi() { + return tuliBacaKonfirmasi; + } + + public void setTuliBacaKonfirmasi(String tuliBacaKonfirmasi) { + this.tuliBacaKonfirmasi = tuliBacaKonfirmasi; + } + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/DetailJenisProduk.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/DetailJenisProduk.java index 3b9839b3..d44ce8dd 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/DetailJenisProduk.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/DetailJenisProduk.java @@ -1,27 +1,19 @@ package com.jasamedika.medifirst2000.entities; -import java.io.Serializable; -import org.hibernate.envers.Audited; -import java.util.HashSet; -import java.util.Set; - -import javax.persistence.*; - -import org.hibernate.validator.constraints.NotEmpty; - -import com.jasamedika.medifirst2000.base.BaseMaster; -import javax.validation.constraints.NotNull; -import org.hibernate.validator.constraints.Length; -import org.hibernate.validator.internal.util.logging.Messages; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonManagedReference; -import com.jasamedika.medifirst2000.base.BaseMaster; -import com.jasamedika.medifirst2000.helper.Caption; -import org.hibernate.envers.Audited; +import javax.persistence.Column; +import javax.persistence.Entity; +import javax.persistence.FetchType; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; +import javax.validation.constraints.NotNull; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.jasamedika.medifirst2000.base.BaseMaster; +import com.jasamedika.medifirst2000.helper.Caption; @Entity @Table(name = "DetailJenisProduk_M") diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/JenisProduk.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/JenisProduk.java index 8be60a1e..2b04b2c4 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/JenisProduk.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/JenisProduk.java @@ -1,27 +1,18 @@ package com.jasamedika.medifirst2000.entities; -import java.io.Serializable; -import org.hibernate.envers.Audited; -import java.util.HashSet; -import java.util.Set; - -import javax.persistence.*; - -import org.hibernate.validator.constraints.NotEmpty; - -import com.jasamedika.medifirst2000.base.BaseMaster; -import javax.validation.constraints.NotNull; -import org.hibernate.validator.constraints.Length; -import org.hibernate.validator.internal.util.logging.Messages; - -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonManagedReference; -import com.jasamedika.medifirst2000.base.BaseMaster; -import com.jasamedika.medifirst2000.helper.Caption; -import org.hibernate.envers.Audited; +import javax.persistence.Column; +import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; +import javax.persistence.JoinColumn; +import javax.persistence.ManyToOne; +import javax.persistence.Table; +import javax.validation.constraints.NotNull; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.jasamedika.medifirst2000.base.BaseMaster; +import com.jasamedika.medifirst2000.helper.Caption; @Entity @Table(name = "JenisProduk_M") diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananNakes.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananNakes.java new file mode 100644 index 00000000..c1c60321 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PelayananNakes.java @@ -0,0 +1,123 @@ +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; + +/** + * @author ITI-14 + * @since Oct 18, 2021 + */ +@Entity +@Table(name = "pelayanannakes_t") +public class PelayananNakes extends BaseTransaction { + + @ManyToOne + @NotNull(message = "Produk Nakes tidak boleh kosong") + @JoinColumn(name = "objectproduknakesfk") + @Caption(value = "Produk Nakes") + private ProdukNakes produk; + + @Column(name = "objectproduknakesfk", 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 + @JoinColumn(name = "objectpegawaifk") + @Caption(value = "Pegawai") + private Pegawai pegawai; + + @Column(name = "objectpegawaifk", insertable = false, updatable = false, nullable = true) + private Integer pegawaiId; + + public ProdukNakes getProduk() { + return produk; + } + + public void setProduk(ProdukNakes 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; + } + +} diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PelayananNakesVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PelayananNakesVO.java new file mode 100644 index 00000000..2e2d0568 --- /dev/null +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PelayananNakesVO.java @@ -0,0 +1,100 @@ +package com.jasamedika.medifirst2000.vo; + +import java.util.Date; + +import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO; +import com.jasamedika.medifirst2000.helper.Caption; + +/** + * @author ITI-14 + * @since Oct 18, 2021 + */ +public class PelayananNakesVO extends BaseTransactionVO { + + @Caption(value = "Produk Nakes") + private ProdukNakesVO 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 ProdukNakesVO getProduk() { + return produk; + } + + public void setProduk(ProdukNakesVO 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; + } + +} diff --git a/jasamedika-domain/src/main/resources/hibernate.cfg.xml b/jasamedika-domain/src/main/resources/hibernate.cfg.xml index 4ccc0b1c..db194ff7 100644 --- a/jasamedika-domain/src/main/resources/hibernate.cfg.xml +++ b/jasamedika-domain/src/main/resources/hibernate.cfg.xml @@ -699,5 +699,7 @@ + + 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 42fc4463..12511bb0 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 @@ -36,6 +36,7 @@ import com.jasamedika.medifirst2000.service.LogbookKinerjaDetailService; import com.jasamedika.medifirst2000.service.LogbookKinerjaDokterService; import com.jasamedika.medifirst2000.service.LogbookKinerjaService; import com.jasamedika.medifirst2000.service.MapPegawaiJabatanToUnitKerjaService; +import com.jasamedika.medifirst2000.service.PelayananNakesService; import com.jasamedika.medifirst2000.service.PelayananPasienNakesService; import com.jasamedika.medifirst2000.service.PelayananPasienPerawatService; import com.jasamedika.medifirst2000.service.ProdukNakesService; @@ -55,6 +56,7 @@ import com.jasamedika.medifirst2000.vo.IndikatorKinerjaJabatanVO; import com.jasamedika.medifirst2000.vo.IndikatorKinerjaVO; import com.jasamedika.medifirst2000.vo.LogbookKinerjaDetailVO; import com.jasamedika.medifirst2000.vo.LogbookKinerjaVO; +import com.jasamedika.medifirst2000.vo.PelayananNakesVO; import com.jasamedika.medifirst2000.vo.PelayananPasienNakesVO; import com.jasamedika.medifirst2000.vo.PelayananPasienPerawatVO; import com.jasamedika.medifirst2000.vo.ProdukNakesVO; @@ -132,6 +134,9 @@ public class IkiDanRemunerasiController extends LocaleController> getLoadData(HttpServletRequest request) { try { @@ -1958,4 +1963,73 @@ public class IkiDanRemunerasiController extends LocaleController savePelayananNakes(HttpServletRequest request, + @Valid @RequestBody PelayananNakesVO vo) { + try { + PelayananNakesVO result = new PelayananNakesVO(); + if (CommonUtil.isNotNullOrEmpty(vo.getNoRec())) { + result = pelayananNakesService.update(vo); + } else { + result = pelayananNakesService.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 { + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_ERROR, + getMessage(MessageResource.LABEL_ERROR, request)); + return RestUtil.getJsonHttptatus(HttpStatus.BAD_REQUEST, mapHeaderMessage); + } + } catch (ServiceVOException sve) { + LOGGER.error("Got exception {} when add/update pelayanan nonpasien oleh nakes lain", 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 pelayanan nonpasien oleh nakes lain", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + + @RequestMapping(value = "/delete-pelayanan-nakes", method = RequestMethod.POST) + public ResponseEntity deletePelayananNakes(HttpServletRequest request, + @RequestParam(value = "noRec", required = true) String norec) { + try { + Boolean result = pelayananNakesService.delete(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 delete pelayanan nonpasien oleh nakes lain", 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 delete pelayanan nonpasien oleh nakes lain", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + + @RequestMapping(value = "/get-pelayanan-nakes", method = RequestMethod.GET) + public ResponseEntity>> getPelayananNakes(HttpServletRequest request, + @RequestParam(value = "bulan", required = true) Long bulan, + @RequestParam(value = "pegawaiId", required = true) Integer idPegawai) { + try { + List> result = pelayananNakesService.findDetailLogbook(bulan, 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 pelayanan nonpasien oleh nakes lain", 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 pelayanan nonpasien oleh nakes lain", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } + }