diff --git a/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/controller/BridgingDaftarOnlineController.java b/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/controller/BridgingDaftarOnlineController.java index f8b1adf8..4262a30b 100644 --- a/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/controller/BridgingDaftarOnlineController.java +++ b/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/controller/BridgingDaftarOnlineController.java @@ -3,6 +3,7 @@ package com.jasamedika.medifirst2000.controller; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; +import java.time.LocalDate; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; @@ -16,6 +17,7 @@ import javax.validation.Valid; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.format.annotation.DateTimeFormat; import org.springframework.http.HttpStatus; import org.springframework.http.MediaType; import org.springframework.http.ResponseEntity; @@ -45,6 +47,7 @@ import com.jasamedika.medifirst2000.entities.Pendidikan; import com.jasamedika.medifirst2000.entities.Ruangan; import com.jasamedika.medifirst2000.enums.TipePasienEnum; import com.jasamedika.medifirst2000.exception.ServiceVOException; +import com.jasamedika.medifirst2000.service.AntrianPasienDiPeriksaService; import com.jasamedika.medifirst2000.service.JadwalDokterService; import com.jasamedika.medifirst2000.service.ModelService; import com.jasamedika.medifirst2000.service.PasienService; @@ -96,6 +99,9 @@ public class BridgingDaftarOnlineController { @Autowired private PegawaiService pegawaiService; + @Autowired + private AntrianPasienDiPeriksaService antrianService; + @Autowired private AntrianPasienRegistrasiDao antrianPasienRegistrasiDao; @@ -699,4 +705,11 @@ public class BridgingDaftarOnlineController { List> entity = pasienService.findByNoRM(noRM); return new ResponseEntity<>(entity, HttpStatus.OK); } + + @RequestMapping(value = "/bpjs/antrian/get/{tglMasuk}/{ruanganId}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE) + public ResponseEntity getCountAntrean( + @PathVariable @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate tglMasuk, @PathVariable Integer ruanganId) { + Map entity = antrianService.getAntreanByRuangan(tglMasuk, ruanganId); + return new ResponseEntity<>(entity, HttpStatus.OK); + } } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/AntrianPasienDiPeriksaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/AntrianPasienDiPeriksaDao.java index 8bfcd2e1..e553bb2b 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/AntrianPasienDiPeriksaDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/AntrianPasienDiPeriksaDao.java @@ -21,7 +21,6 @@ import com.jasamedika.medifirst2000.entities.DiagnosaPasien; */ @Repository("AntrianPasienDiPeriksaDao") public interface AntrianPasienDiPeriksaDao extends PagingAndSortingRepository { - @Query("select p from AntrianPasienDiPeriksa p where p.pasienDaftar.noRegistrasi=:noRegistrasi ") List findByNoRegister(@Param("noRegistrasi") String noRegistrasi); @@ -81,8 +80,7 @@ public interface AntrianPasienDiPeriksaDao extends PagingAndSortingRepository findDiagnosaPasien(@Param("noCm") String noCm, - @Param("tglRegistrasi") String tglRegistrasi); + List findDiagnosaPasien(@Param("noCm") String noCm, @Param("tglRegistrasi") String tglRegistrasi); @Query("select NEW Map (" + "a.noRec as noRec, " + "a.ruanganId as ruangan, " + "c.id as kelasId) " + "from AntrianPasienDiPeriksa a " + "left join a.pasienDaftar b " + "left join b.kelas c " @@ -188,4 +186,10 @@ public interface AntrianPasienDiPeriksaDao extends PagingAndSortingRepository findAntrianBefore(@Param("noRec") String noRec, @Param("idRuangan") Integer idRuangan); + @Query("select distinct new Map(pd.noRec as noRec,pd.kelompokPasienId as kpId) " + + "from AntrianPasienDiPeriksa apd " + "inner join apd.pasienDaftar pd " + + "where apd.statusEnabled is true " + "and pd.statusEnabled is true " + + "and apd.tglMasuk between :tglAwal and :tglAkhir " + "and apd.ruanganId = :ruanganId") + List> findAntreanByRuangan(@Param("tglAwal") Date tglAwal, + @Param("tglAkhir") Date tglAkhir, @Param("ruanganId") Integer ruanganId); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/KelompokPasienDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/KelompokPasienDao.java index 9e22e0e0..a808c7fd 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/KelompokPasienDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/KelompokPasienDao.java @@ -16,13 +16,15 @@ import com.jasamedika.medifirst2000.entities.KelompokPasien; */ @Repository("KelompokPasienDao") public interface KelompokPasienDao extends PagingAndSortingRepository { - + @Query("select p from KelompokPasien p where p.id= (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdKelompokPasienUmum')") public List getKelompokPasienUmum(); + @Query("select model from KelompokPasien model where model.id=:id") public KelompokPasien findById(@Param("id") Integer id); + @Query("select model from KelompokPasien model where model.id = (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdKelompokPasienUmum' ) ") - public KelompokPasien defaultKelompokPasien(); + public KelompokPasien defaultKelompokPasien(); @Query("select p from KelompokPasien p where statusEnabled=true") public List findKelompokPasien(); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PasienDaftarDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PasienDaftarDao.java index 96be36da..7bf2df0c 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PasienDaftarDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/PasienDaftarDao.java @@ -15,7 +15,6 @@ import com.jasamedika.medifirst2000.entities.PasienDaftar; @Repository("PasienDaftarDao") public interface PasienDaftarDao extends PagingAndSortingRepository { - @Query("select p from PasienDaftar p where date(p.tglPulang) between date(:start) and date(:until)") List findByPasienPulang(@Param("start") Date start, @Param("until") Date until); diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/AntrianPasienDiPeriksaService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/AntrianPasienDiPeriksaService.java index c1e3cd4c..349b500d 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/AntrianPasienDiPeriksaService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/AntrianPasienDiPeriksaService.java @@ -1,7 +1,6 @@ package com.jasamedika.medifirst2000.service; - - +import java.time.LocalDate; import java.util.Date; import java.util.List; import java.util.Map; @@ -12,18 +11,27 @@ import com.jasamedika.medifirst2000.entities.PasienDaftar; import com.jasamedika.medifirst2000.entities.StrukRetur; import com.jasamedika.medifirst2000.vo.AntrianPasienDiPeriksaVO; +public interface AntrianPasienDiPeriksaService + extends BaseVoService { - -public interface AntrianPasienDiPeriksaService extends BaseVoService { - Integer getFormatNumberByMonthYear(); - Integer getFormatNumberByMonthYearRuangan(Date date,Integer idRuangan); + + Integer getFormatNumberByMonthYearRuangan(Date date, Integer idRuangan); + Map updateAntrianPasienDiperiksaFromPembatalanPasien(StrukRetur strukRetur, String noRegistrasi); - Map saveAntrianPasienDiperiksaFromMasukKamar(PasienDaftar pasienDaftar,AntrianPasienDiPeriksa antrianPasienDiperiksa); + + Map saveAntrianPasienDiperiksaFromMasukKamar(PasienDaftar pasienDaftar, + AntrianPasienDiPeriksa antrianPasienDiperiksa); + Map saveAntrianPasienDiperiksaFromMasukKamar(PasienDaftar pasienDaftar); + Boolean checkStatusPasien(Integer pasienId, Integer ruanganId); - List findAntrian(String noRec); - List> findAntrianByPasienDaftar(String noRec,String key); + + List findAntrian(String noRec); + + List> findAntrianByPasienDaftar(String noRec, String key); + Integer getFormatNumberByMonthYearBilik(Integer idRuangan); - + + Map getAntreanByRuangan(LocalDate tglMasuk, Integer ruanganId); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PasienDaftarService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PasienDaftarService.java index 44330c9f..bec0197b 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PasienDaftarService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PasienDaftarService.java @@ -13,7 +13,6 @@ import com.jasamedika.medifirst2000.vo.PasienDaftarVO; import com.jasamedika.medifirst2000.vo.RegistrasiPasienGawatDaruratVO; public interface PasienDaftarService extends BaseVoService { - String getFormatNumberByMonthYear(); List findPelayananRawatJalan(Short kdProfile, String noCm); @@ -49,5 +48,4 @@ public interface PasienDaftarService extends BaseVoService> findRekapDiskon(Long periode); List> findLogRekapDiskon(String norecPd, String norecSp); - } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/AntrianPasienDiPeriksaServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/AntrianPasienDiPeriksaServiceImpl.java index f2c488bd..bf866d7b 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/AntrianPasienDiPeriksaServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/AntrianPasienDiPeriksaServiceImpl.java @@ -1,155 +1,118 @@ package com.jasamedika.medifirst2000.service.impl; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.ZoneId; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.orm.jpa.JpaSystemException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import com.jasamedika.medifirst2000.constants.Master; import com.jasamedika.medifirst2000.converter.AntrianPasienDiPeriksaConverter; import com.jasamedika.medifirst2000.dao.AlamatDao; import com.jasamedika.medifirst2000.dao.AntrianPasienDiPeriksaDao; import com.jasamedika.medifirst2000.dao.JadwalDokterDao; -import com.jasamedika.medifirst2000.dao.PersetujuanUmumDao; +import com.jasamedika.medifirst2000.dao.RunningNumberDao; import com.jasamedika.medifirst2000.dto.AntrianPasienDiperiksaDto; import com.jasamedika.medifirst2000.entities.Alamat; -import com.jasamedika.medifirst2000.dao.RunningNumberDao; import com.jasamedika.medifirst2000.entities.AntrianPasienDiPeriksa; import com.jasamedika.medifirst2000.entities.AsalRujukan; import com.jasamedika.medifirst2000.entities.JadwalDokter; import com.jasamedika.medifirst2000.entities.PasienDaftar; -import com.jasamedika.medifirst2000.entities.Pegawai; -import com.jasamedika.medifirst2000.entities.PersetujuanUmum; import com.jasamedika.medifirst2000.entities.RunningNumber; import com.jasamedika.medifirst2000.entities.StrukRetur; import com.jasamedika.medifirst2000.enums.StatusAntrianEnum; import com.jasamedika.medifirst2000.enums.StatusKunjunganEnum; import com.jasamedika.medifirst2000.exception.ServiceVOException; import com.jasamedika.medifirst2000.service.AntrianPasienDiPeriksaService; -import com.jasamedika.medifirst2000.util.Age; -import com.jasamedika.medifirst2000.util.AgeCalculator; import com.jasamedika.medifirst2000.util.CommonUtil; -import com.jasamedika.medifirst2000.util.DateUtil; import com.jasamedika.medifirst2000.util.JsonUtil; import com.jasamedika.medifirst2000.util.StringUtil; import com.jasamedika.medifirst2000.vo.AntrianPasienDiPeriksaVO; import com.jasamedika.medifirst2000.vo.PegawaiVO; - /** * Implement class for PasienService * * @author Adik * @param */ - - @Service("antrianPasienDiPeriksaService") public class AntrianPasienDiPeriksaServiceImpl extends BaseVoServiceImpl implements AntrianPasienDiPeriksaService { - @Autowired private AntrianPasienDiPeriksaDao antrianPasienDiPeriksaDao; - @Autowired private RunningNumberDao runningNumberDao; - + @Autowired private AntrianPasienDiPeriksaConverter antrianPasienDiPeriksaConverter; - + @Autowired - private PersetujuanUmumDao persetujuanUmumDao; - + private AlamatDao alamatDao; + @Autowired - private AlamatDao alamatDao; - - @Override - public Object add(Object vo) throws JpaSystemException, ServiceVOException { - return null; - } + private JadwalDokterDao jadwalDokterDao; @Override - public Object update(Object vo) throws JpaSystemException, ServiceVOException { - return null; - } - - @Override - public Boolean delete(Object key) throws JpaSystemException { - return null; - } - - @Override - public Object findById(Object key) throws JpaSystemException { - return null; - } - - @Override - public List findAll() throws JpaSystemException { - List vos=new ArrayList(); - List models=(List) antrianPasienDiPeriksaDao.findAll(); + public List findAll() throws JpaSystemException { + List vos = new ArrayList(); + List models = (List) antrianPasienDiPeriksaDao.findAll(); antrianPasienDiPeriksaConverter.transferListOfModelToListOfVO(models, vos); return vos; } @Override - public Map findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit, String sort, - String dir) { - return null; + public Integer getFormatNumberByMonthYear() { + Date dateNow = new Date(); + Integer countByMonthAndYear = antrianPasienDiPeriksaDao.getCountByMonthAndYear(dateNow); + if (countByMonthAndYear == null) { + countByMonthAndYear = 1; + } else { + countByMonthAndYear = countByMonthAndYear + 1; + } + return countByMonthAndYear; } @Override - public Integer getFormatNumberByMonthYear() { - Date dateNow=new Date(); - - Integer countByMonthAndYear=antrianPasienDiPeriksaDao.getCountByMonthAndYear(dateNow); - if(countByMonthAndYear==null){ - countByMonthAndYear=1; - }else{ - countByMonthAndYear=countByMonthAndYear+1; + public Integer getFormatNumberByMonthYearRuangan(Date date, Integer idRuangan) { + Date dateParam = date; + if (date == null) + dateParam = new Date(); + Integer countByMonthAndYear = antrianPasienDiPeriksaDao.getCountByMonthAndYearRuangan(dateParam, idRuangan); + if (countByMonthAndYear == null) { + countByMonthAndYear = 1; + } else { + countByMonthAndYear = countByMonthAndYear + 1; } - return countByMonthAndYear; - } - - + return countByMonthAndYear; + } @Override - public Integer getFormatNumberByMonthYearRuangan(Date date,Integer idRuangan) { - Date dateNow=new Date(); - if(date==null) - date= new Date(); - - Integer countByMonthAndYear=antrianPasienDiPeriksaDao.getCountByMonthAndYearRuangan(date,idRuangan); - if(countByMonthAndYear==null){ - countByMonthAndYear=1; - }else{ - countByMonthAndYear=countByMonthAndYear+1; - } - return countByMonthAndYear; - } - - @Override - public Map updateAntrianPasienDiperiksaFromPembatalanPasien(StrukRetur strukRetur, String noRec) { - AntrianPasienDiPeriksa antrianPasienDiPeriksa=antrianPasienDiPeriksaDao.findByNoRec(noRec); + public Map updateAntrianPasienDiperiksaFromPembatalanPasien(StrukRetur strukRetur, String noRec) { + AntrianPasienDiPeriksa antrianPasienDiPeriksa = antrianPasienDiPeriksaDao.findByNoRec(noRec); antrianPasienDiPeriksa.setStrukRetur(strukRetur); antrianPasienDiPeriksaDao.save(antrianPasienDiPeriksa); - Map result=new HashMap(); + Map result = new HashMap(); result.put("antrianPasienDiperiksa", antrianPasienDiPeriksa); return result; } -@Autowired -private JadwalDokterDao jadwalDokterDao; + @Override @Transactional - public Map saveAntrianPasienDiperiksaFromMasukKamar(PasienDaftar pasienDaftar) { - - AntrianPasienDiPeriksa antrianPasienDiPeriksa=new AntrianPasienDiPeriksa(); - antrianPasienDiPeriksa.setTglRegistrasi(new Date()); + public Map saveAntrianPasienDiperiksaFromMasukKamar(PasienDaftar pasienDaftar) { + AntrianPasienDiPeriksa antrianPasienDiPeriksa = new AntrianPasienDiPeriksa(); + antrianPasienDiPeriksa.setTglRegistrasi(new Date()); antrianPasienDiPeriksa.setStatusPasien((byte) 1); AsalRujukan asalRujukan = new AsalRujukan(); asalRujukan.setId(2); @@ -157,12 +120,10 @@ private JadwalDokterDao jadwalDokterDao; antrianPasienDiPeriksa.setRuangan(pasienDaftar.getRuangan()); antrianPasienDiPeriksa.setStatusAntrian(StatusAntrianEnum.MASUK_KAMAR.getVal()); antrianPasienDiPeriksa.setPegawai(pasienDaftar.getDokterPenanggungJawab()); - PegawaiVO pegawaiVo = new PegawaiVO(); - // pilih dokter yang otomatis dan per quota - List jadwalDokters = jadwalDokterDao - .findJadwalByTanggalRuangan(pasienDaftar.getRuangan().getId(), pasienDaftar.getTglRegistrasi()); + List jadwalDokters = jadwalDokterDao.findJadwalByTanggalRuangan(pasienDaftar.getRuangan().getId(), + pasienDaftar.getTglRegistrasi()); Integer maxQuota = 0; for (JadwalDokter jadwalDokter : jadwalDokters) { if (jadwalDokter.getQuota() != null && jadwalDokter.getQuota() > maxQuota) { @@ -176,9 +137,7 @@ private JadwalDokterDao jadwalDokterDao; jadwalDokter.setQuota(jadwalDokter.getQuota() + 1); jadwalDokterDao.save(jadwalDokter); pegawaiVo.setId(jadwalDokter.getDokter().getId()); - antrianPasienDiPeriksa.setPegawai(jadwalDokter.getDokter()); - break; } } @@ -195,123 +154,153 @@ private JadwalDokterDao jadwalDokterDao; break; } } - - - } + } antrianPasienDiPeriksa.setKelas(pasienDaftar.getKelas()); - if(CommonUtil.isNotNullOrEmpty(pasienDaftar)){ - if(CommonUtil.isNotNullOrEmpty(pasienDaftar.getRuanganId()) && (CommonUtil.isNotNullOrEmpty(pasienDaftar.getPasienId()))){ - if(checkStatusPasien(pasienDaftar.getRuanganId(), pasienDaftar.getPasienId())){ + if (CommonUtil.isNotNullOrEmpty(pasienDaftar)) { + if (CommonUtil.isNotNullOrEmpty(pasienDaftar.getRuanganId()) + && (CommonUtil.isNotNullOrEmpty(pasienDaftar.getPasienId()))) { + if (checkStatusPasien(pasienDaftar.getRuanganId(), pasienDaftar.getPasienId())) { antrianPasienDiPeriksa.setStatusKunjungan(StatusKunjunganEnum.LAMA.getVal()); - }else{ + } else { antrianPasienDiPeriksa.setStatusKunjungan(StatusKunjunganEnum.BARU.getVal()); } } } - - Map result=new HashMap(); - result =saveAntrianPasienDiperiksaFromMasukKamar(pasienDaftar,antrianPasienDiPeriksa); + Map result = new HashMap(); + result = saveAntrianPasienDiperiksaFromMasukKamar(pasienDaftar, antrianPasienDiPeriksa); result.put("antrianPasienDiPeriksa", antrianPasienDiPeriksa); - return result; } @Override - public List findAntrian(String noRec) { + public List findAntrian(String noRec) { AntrianPasienDiperiksaDto antrianPasienDiperiksaDto = new AntrianPasienDiperiksaDto(); AntrianPasienDiPeriksa antrianPasienDiPeriksa = antrianPasienDiPeriksaDao.findByNoRec(noRec); if (CommonUtil.isNotNullOrEmpty(antrianPasienDiPeriksa)) { antrianPasienDiperiksaDto.setAntrianPasienDiPeriksa(antrianPasienDiPeriksa); - Age age = AgeCalculator.calculateAge(antrianPasienDiPeriksa.getPasienDaftar().getPasien().getTglLahir()); - antrianPasienDiperiksaDto.setUmur(new SimpleDateFormat("dd-MM-yyyy").format(antrianPasienDiPeriksa.getPasienDaftar().getPasien().getTglLahir())); + antrianPasienDiperiksaDto.setUmur(new SimpleDateFormat("dd-MM-yyyy") + .format(antrianPasienDiPeriksa.getPasienDaftar().getPasien().getTglLahir())); List alamats = alamatDao .findAlamatByIdPasien(antrianPasienDiPeriksa.getPasienDaftar().getPasien().getId()); if (CommonUtil.isNotNullOrEmpty(alamats)) { for (Alamat alamat : alamats) { if (CommonUtil.isNotNullOrEmpty(alamat)) { - //edit by askur 271020162116 - //if (CommonUtil.isNotNullOrEmpty(alamat.getIsPrimaryAddress())) { - //if (alamat.getIsPrimaryAddress() == 1) { - antrianPasienDiperiksaDto.setAlamat(alamat); // setAlamat(alamat.getAlamatLengkap()); - //} - //} - //end - + antrianPasienDiperiksaDto.setAlamat(alamat); } } } } else { antrianPasienDiperiksaDto.setAntrianPasienDiPeriksa(null); } - - List list = new ArrayList(); + List list = new ArrayList(); list.add(antrianPasienDiperiksaDto); return list; } - + @Override @Transactional - public Boolean checkStatusPasien(Integer pasienId,Integer ruanganId){ - Boolean result=false; - List antrianPasienDiPeriksaList=antrianPasienDiPeriksaDao.findByPasien(pasienId, ruanganId); - if(CommonUtil.isNotNullOrEmpty(antrianPasienDiPeriksaList)){ - result=true; + public Boolean checkStatusPasien(Integer pasienId, Integer ruanganId) { + Boolean result = false; + List antrianPasienDiPeriksaList = antrianPasienDiPeriksaDao.findByPasien(pasienId, + ruanganId); + if (CommonUtil.isNotNullOrEmpty(antrianPasienDiPeriksaList)) { + result = true; } return result; } - - @Override - @Transactional - public Map saveAntrianPasienDiperiksaFromMasukKamar(PasienDaftar pasienDaftar, - AntrianPasienDiPeriksa antrianPasienDiperiksa) { - - // PersetujuanUmum persetujuanUmum=new PersetujuanUmum(); - List listPersetujuanUmum=persetujuanUmumDao.findByPasienDaftar(pasienDaftar.getNoRegistrasi(), (short) 0); - RunningNumber runningNumber = runningNumberDao.findByResetAndKegunaan("0", "AntrianPasienDiPeriksa"); - - Integer number=(runningNumber.getNomerTerbaru()+(Integer)1); - runningNumber.setNomerTerbaru(runningNumber.getNomerTerbaru()+(Integer)1); - antrianPasienDiperiksa.setPasienDaftar(pasienDaftar); - - antrianPasienDiperiksa.setNoAntrian(getFormatNumberByMonthYearRuangan(antrianPasienDiperiksa.getTglRegistrasi(),antrianPasienDiperiksa.getRuangan().getId())); - String missNoCm = StringUtil.formatNumber(number.toString(), 10); - antrianPasienDiperiksa.setNoMasuk(missNoCm); - if(antrianPasienDiperiksa.getStatusAntrian()==null) - antrianPasienDiperiksa.setStatusAntrian("4"); - antrianPasienDiPeriksaDao.save(antrianPasienDiperiksa); - if(CommonUtil.isNotNullOrEmpty(listPersetujuanUmum)){ - - } - runningNumberDao.save(runningNumber); - Map result=new HashMap(); - result.put("antrianPasienDiPeriksa", antrianPasienDiperiksa); - - return result; - } @Override - public List findAntrianByPasienDaftar(String noRec,String key) { - PasienDaftar pasienDaftar = antrianPasienDiPeriksaDao.findOne(noRec).getPasienDaftar(); - + @Transactional + public Map saveAntrianPasienDiperiksaFromMasukKamar(PasienDaftar pasienDaftar, + AntrianPasienDiPeriksa antrianPasienDiperiksa) { + RunningNumber runningNumber = runningNumberDao.findByResetAndKegunaan("0", "AntrianPasienDiPeriksa"); + Integer number = (runningNumber.getNomerTerbaru() + (Integer) 1); + runningNumber.setNomerTerbaru(runningNumber.getNomerTerbaru() + (Integer) 1); + antrianPasienDiperiksa.setPasienDaftar(pasienDaftar); + antrianPasienDiperiksa.setNoAntrian(getFormatNumberByMonthYearRuangan(antrianPasienDiperiksa.getTglRegistrasi(), + antrianPasienDiperiksa.getRuangan().getId())); + String missNoCm = StringUtil.formatNumber(number.toString(), 10); + antrianPasienDiperiksa.setNoMasuk(missNoCm); + if (antrianPasienDiperiksa.getStatusAntrian() == null) + antrianPasienDiperiksa.setStatusAntrian("4"); + antrianPasienDiPeriksaDao.save(antrianPasienDiperiksa); + runningNumberDao.save(runningNumber); + Map result = new HashMap(); + result.put("antrianPasienDiPeriksa", antrianPasienDiperiksa); + return result; + } + + @Override + public List> findAntrianByPasienDaftar(String noRec, String key) { + PasienDaftar pasienDaftar = antrianPasienDiPeriksaDao.findOne(noRec).getPasienDaftar(); try { - return JsonUtil.ToMaps( antrianPasienDiPeriksaDao.findByPasienDaftarNoRecAndStrukOrderNoOrderInternStartingWith(pasienDaftar.getNoRec(),key)); + return JsonUtil.ToMaps(antrianPasienDiPeriksaDao + .findByPasienDaftarNoRecAndStrukOrderNoOrderInternStartingWith(pasienDaftar.getNoRec(), key)); } catch (IllegalArgumentException | IllegalAccessException e) { e.printStackTrace(); } return null; } - + @Override public Integer getFormatNumberByMonthYearBilik(Integer idRuangan) { - Date dateNow=new Date(); - - Integer countByMonthAndYear=antrianPasienDiPeriksaDao.getCountByMonthAndYearBilik(dateNow,idRuangan); - if(countByMonthAndYear==null){ - countByMonthAndYear=1; - }else{ - countByMonthAndYear=countByMonthAndYear+1; + Date dateNow = new Date(); + Integer countByMonthAndYear = antrianPasienDiPeriksaDao.getCountByMonthAndYearBilik(dateNow, idRuangan); + if (countByMonthAndYear == null) { + countByMonthAndYear = 1; + } else { + countByMonthAndYear = countByMonthAndYear + 1; } - return countByMonthAndYear; - } + return countByMonthAndYear; + } + @Override + public AntrianPasienDiPeriksaVO add(AntrianPasienDiPeriksaVO vo) throws JpaSystemException, ServiceVOException { + return null; + } + + @Override + public AntrianPasienDiPeriksaVO update(AntrianPasienDiPeriksaVO vo) throws JpaSystemException, ServiceVOException { + return null; + } + + @Override + public Boolean delete(String key) throws JpaSystemException { + return null; + } + + @Override + public AntrianPasienDiPeriksaVO findById(String key) throws JpaSystemException { + return null; + } + + @Override + public Map findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit, + String sort, String dir) { + return null; + } + + @Override + public Map getAntreanByRuangan(LocalDate tglMasuk, Integer ruanganId) { + LocalDateTime start = LocalDateTime.of(tglMasuk, LocalTime.MIN); + Date tglAwal = Date.from(start.atZone(ZoneId.systemDefault()).toInstant()); + LocalDateTime end = LocalDateTime.of(tglMasuk, LocalTime.MAX); + Date tglAkhir = Date.from(end.atZone(ZoneId.systemDefault()).toInstant()); + List> listAntrean = antrianPasienDiPeriksaDao.findAntreanByRuangan(tglAwal, tglAkhir, + ruanganId); + Map result = new HashMap<>(); + if (listAntrean.size() > 0) { + List> listJkn = listAntrean.stream() + .filter(m -> Master.KelompokPasien.BPJS.equals(m.get("kpId"))).collect(Collectors.toList()); + List> listNonJkn = listAntrean.stream() + .filter(m -> !Master.KelompokPasien.BPJS.equals(m.get("kpId"))).collect(Collectors.toList()); + result.put("antreanJkn", listJkn.size()); + result.put("antreanNonJkn", listNonJkn.size()); + return result; + } else { + result.put("antreanJkn", listAntrean.size()); + result.put("antreanNonJkn", listAntrean.size()); + return result; + } + } } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/AntrianPasienDiPeriksa.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/AntrianPasienDiPeriksa.java index 0464393a..4a496ab0 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/AntrianPasienDiPeriksa.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/AntrianPasienDiPeriksa.java @@ -18,7 +18,8 @@ import com.jasamedika.medifirst2000.helper.Caption; @Table(name = "AntrianPasienDiPeriksa_T") @JsonIgnoreProperties({"hibernateLazyInitializer", "handler"}) public class AntrianPasienDiPeriksa extends BaseTransaction { - + private static final long serialVersionUID = 1243474652074108524L; + @ManyToOne(fetch=FetchType.LAZY) @JoinColumn(name = "ObjectKelasFk") @Caption(value="Object Kelas") diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PasienDaftar.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PasienDaftar.java index 3a48bbab..d3472a9a 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PasienDaftar.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/PasienDaftar.java @@ -22,6 +22,7 @@ import com.jasamedika.medifirst2000.helper.Caption; @Table(name = "PasienDaftar_T") @JsonIgnoreProperties({ "hibernateLazyInitializer", "handler" }) public class PasienDaftar extends BaseTransaction { + private static final long serialVersionUID = 123252008244779475L; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "ObjectRekananFk") @@ -695,5 +696,4 @@ public class PasienDaftar extends BaseTransaction { public void setDiskonPegawai(Integer diskonPegawai) { this.diskonPegawai = diskonPegawai; } - } diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/AntrianPasienDiPeriksaVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/AntrianPasienDiPeriksaVO.java index 0079bbba..aa6235fc 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/AntrianPasienDiPeriksaVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/AntrianPasienDiPeriksaVO.java @@ -1,14 +1,14 @@ package com.jasamedika.medifirst2000.vo; import java.util.Date; -import javax.persistence.*; -import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO; -import com.jasamedika.medifirst2000.entities.StrukOrder; + +import javax.persistence.Column; import javax.validation.constraints.NotNull; + +import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO; import com.jasamedika.medifirst2000.helper.Caption; public class AntrianPasienDiPeriksaVO extends BaseTransactionVO { - @Caption(value="Object Kelas") private KelasVO kelas; @@ -238,6 +238,4 @@ public class AntrianPasienDiPeriksaVO extends BaseTransactionVO { public void setRuanganAsal(RuanganVO ruanganAsal) { this.ruanganAsal = ruanganAsal; } - } - diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PasienDaftarVO.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PasienDaftarVO.java index 47f6aa4c..ac3c2576 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PasienDaftarVO.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/vo/PasienDaftarVO.java @@ -4,26 +4,18 @@ import java.util.Date; import java.util.HashSet; import java.util.Set; -import javax.persistence.CascadeType; -import javax.persistence.Column; -import javax.persistence.FetchType; -import javax.persistence.ManyToOne; -import javax.persistence.OneToMany; import javax.validation.constraints.NotNull; import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO; import com.jasamedika.medifirst2000.helper.Caption; public class PasienDaftarVO extends BaseTransactionVO { - - @ManyToOne(fetch = FetchType.LAZY) @Caption(value = "Object Rekanan") private RekananVO rekanan; @Caption(value = "Total Biaya") private Double totalBiaya; - @ManyToOne(fetch = FetchType.LAZY) @Caption(value = "Object Status Keluar") private StatusKeluarVO statusKeluar; @@ -45,36 +37,29 @@ public class PasienDaftarVO extends BaseTransactionVO { @Caption(value = "Is Registrasi Lengkap") private Byte isRegistrasiLengkap; - @ManyToOne(fetch = FetchType.LAZY) @Caption(value = "Object Kasus Penyakit Last") private KasusPenyakitVO kasusPenyakit; - @ManyToOne(fetch = FetchType.LAZY) @Caption(value = "Penanggung Jawab pasien") private PegawaiVO dokterPenanggungJawab; - @ManyToOne(fetch = FetchType.LAZY) @NotNull(message = "Kd Kelompok Pasien Last tidak boleh kosong") @Caption(value = "Object Kelompok Pasien Last") private KelompokPasienVO kelompokPasien; - @ManyToOne(fetch = FetchType.LAZY) @Caption(value = "Object Ruangan Last") private RuanganVO ruangan; - @ManyToOne(fetch = FetchType.LAZY) @Caption(value = "RuanganNextSchedule") private RuanganVO ruanganNextSchedule; @Caption(value = "StatusSchedule") private String statusSchedule; - @ManyToOne(fetch = FetchType.LAZY) @NotNull(message = "No C M Harus Diisi") @Caption(value = "No C M") private PasienVO pasien; - @ManyToOne(fetch = FetchType.LAZY) @Caption(value = "No Registrasi") private PenanggungJawabPasienVO penanggungJawabPasien; @@ -85,11 +70,9 @@ public class PasienDaftarVO extends BaseTransactionVO { @Caption(value = "Tanggal Registrasi") private Date tglRegistrasi; - @ManyToOne(fetch = FetchType.LAZY) @Caption(value = "Object Status Pulang") private StatusPulangVO statusPulang; - @ManyToOne(fetch = FetchType.LAZY) @Caption(value = "Object Kondisi Pasien") private KondisiPasienVO kondisiPasien; @@ -102,36 +85,27 @@ public class PasienDaftarVO extends BaseTransactionVO { @Caption(value = "Jenis Pelayanan") private String jenisPelayanan; - @Column(name = "NamaLengkapAmbilPasien", nullable = true, length = 40) @Caption(value = "Nama Lengkap Ambil Pasien") private String namaLengkapAmbilPasien; - @ManyToOne(fetch = FetchType.LAZY) @Caption(value = "Object Hubungan Keluarga Ambil Pasien") private HubunganKeluargaVO hubunganKeluarga; - @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "pasienDaftar") private Set antrianPasienDiPeriksaSet = new HashSet<>(); - @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "pasienDaftar") private Set diputuskanDetailSet = new HashSet<>(); - @ManyToOne(fetch = FetchType.LAZY) @Caption(value = "Object Kelas") private KelasVO kelas; - @ManyToOne(fetch = FetchType.LAZY) @Caption(value = "Penyebab Kematian") private PenyebabKematianVO penyebabKematian; - @ManyToOne(fetch = FetchType.LAZY) @Caption(value = "Dokter Pemeriksa") private PegawaiVO dokterPemeriksa; - @Column(name = "ObjectDokterPemeriksaFk", insertable = false, updatable = false) private Integer dokterPemeriksaId; - @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "pasienDaftar") private Set mapPasienDpjpToPasienDaftar = new HashSet(); @Caption(value = "emergensi") @@ -411,5 +385,4 @@ public class PasienDaftarVO extends BaseTransactionVO { public void setDiskonPegawai(Integer diskonPegawai) { this.diskonPegawai = diskonPegawai; } - }