Update AntrianPasienDiPeriksaService

Pembuatan service get count antrian jkn dan nonjkn
This commit is contained in:
salmanoe 2022-12-21 21:48:47 +07:00
parent 2181893ad5
commit b2ee25aa69
11 changed files with 196 additions and 211 deletions

View File

@ -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<Map<String, Object>> 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<Object> getCountAntrean(
@PathVariable @DateTimeFormat(pattern = "yyyy-MM-dd") LocalDate tglMasuk, @PathVariable Integer ruanganId) {
Map<String, Object> entity = antrianService.getAntreanByRuangan(tglMasuk, ruanganId);
return new ResponseEntity<>(entity, HttpStatus.OK);
}
}

View File

@ -21,7 +21,6 @@ import com.jasamedika.medifirst2000.entities.DiagnosaPasien;
*/
@Repository("AntrianPasienDiPeriksaDao")
public interface AntrianPasienDiPeriksaDao extends PagingAndSortingRepository<AntrianPasienDiPeriksa, String> {
@Query("select p from AntrianPasienDiPeriksa p where p.pasienDaftar.noRegistrasi=:noRegistrasi ")
List<AntrianPasienDiPeriksa> findByNoRegister(@Param("noRegistrasi") String noRegistrasi);
@ -81,8 +80,7 @@ public interface AntrianPasienDiPeriksaDao extends PagingAndSortingRepository<An
+ "left join antrian.pegawai dokter " + "left join antrian.pasienDaftar pasienDaftar "
+ "left join pasienDaftar.pasien pasien " + "where pasien.noCm=:noCm "
+ "and to_char(model.tanggalPendaftaran, 'dd-MM-yyyy')=:tglRegistrasi")
public List<DiagnosaPasien> findDiagnosaPasien(@Param("noCm") String noCm,
@Param("tglRegistrasi") String tglRegistrasi);
List<DiagnosaPasien> 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<An
+ "and antrian.tglKeluar is null order by antrian.tglRegistrasi desc")
List<AntrianPasienDiPeriksa> 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<Map<String, Object>> findAntreanByRuangan(@Param("tglAwal") Date tglAwal,
@Param("tglAkhir") Date tglAkhir, @Param("ruanganId") Integer ruanganId);
}

View File

@ -16,13 +16,15 @@ import com.jasamedika.medifirst2000.entities.KelompokPasien;
*/
@Repository("KelompokPasienDao")
public interface KelompokPasienDao extends PagingAndSortingRepository<KelompokPasien, Integer> {
@Query("select p from KelompokPasien p where p.id= (Select cast(s.nilaiField as int) from SettingDataFixed s where s.namaField='KdKelompokPasienUmum')")
public List<KelompokPasien> 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<KelompokPasien> findKelompokPasien();

View File

@ -15,7 +15,6 @@ import com.jasamedika.medifirst2000.entities.PasienDaftar;
@Repository("PasienDaftarDao")
public interface PasienDaftarDao extends PagingAndSortingRepository<PasienDaftar, String> {
@Query("select p from PasienDaftar p where date(p.tglPulang) between date(:start) and date(:until)")
List<PasienDaftar> findByPasienPulang(@Param("start") Date start, @Param("until") Date until);

View File

@ -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<AntrianPasienDiPeriksa, AntrianPasienDiPeriksaVO, String> {
public interface AntrianPasienDiPeriksaService <T> extends BaseVoService<AntrianPasienDiPeriksa, AntrianPasienDiPeriksaVO, String> {
Integer getFormatNumberByMonthYear();
Integer getFormatNumberByMonthYearRuangan(Date date,Integer idRuangan);
Integer getFormatNumberByMonthYearRuangan(Date date, Integer idRuangan);
Map<String, Object> updateAntrianPasienDiperiksaFromPembatalanPasien(StrukRetur strukRetur, String noRegistrasi);
Map<String, Object> saveAntrianPasienDiperiksaFromMasukKamar(PasienDaftar pasienDaftar,AntrianPasienDiPeriksa antrianPasienDiperiksa);
Map<String, Object> saveAntrianPasienDiperiksaFromMasukKamar(PasienDaftar pasienDaftar,
AntrianPasienDiPeriksa antrianPasienDiperiksa);
Map<String, Object> saveAntrianPasienDiperiksaFromMasukKamar(PasienDaftar pasienDaftar);
Boolean checkStatusPasien(Integer pasienId, Integer ruanganId);
List findAntrian(String noRec);
List<Map<String, Object>> findAntrianByPasienDaftar(String noRec,String key);
List<AntrianPasienDiperiksaDto> findAntrian(String noRec);
List<Map<String, Object>> findAntrianByPasienDaftar(String noRec, String key);
Integer getFormatNumberByMonthYearBilik(Integer idRuangan);
Map<String, Object> getAntreanByRuangan(LocalDate tglMasuk, Integer ruanganId);
}

View File

@ -13,7 +13,6 @@ import com.jasamedika.medifirst2000.vo.PasienDaftarVO;
import com.jasamedika.medifirst2000.vo.RegistrasiPasienGawatDaruratVO;
public interface PasienDaftarService extends BaseVoService<PasienDaftar, PasienDaftarVO, String> {
String getFormatNumberByMonthYear();
List<PasienDaftar> findPelayananRawatJalan(Short kdProfile, String noCm);
@ -49,5 +48,4 @@ public interface PasienDaftarService extends BaseVoService<PasienDaftar, PasienD
List<Map<String, Object>> findRekapDiskon(Long periode);
List<Map<String, Object>> findLogRekapDiskon(String norecPd, String norecSp);
}

View File

@ -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 <T>
*/
@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<AntrianPasienDiPeriksaVO> vos=new ArrayList<AntrianPasienDiPeriksaVO>();
List<AntrianPasienDiPeriksa> models=(List<AntrianPasienDiPeriksa>) antrianPasienDiPeriksaDao.findAll();
public List<AntrianPasienDiPeriksaVO> findAll() throws JpaSystemException {
List<AntrianPasienDiPeriksaVO> vos = new ArrayList<AntrianPasienDiPeriksaVO>();
List<AntrianPasienDiPeriksa> models = (List<AntrianPasienDiPeriksa>) 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<String,Object> updateAntrianPasienDiperiksaFromPembatalanPasien(StrukRetur strukRetur, String noRec) {
AntrianPasienDiPeriksa antrianPasienDiPeriksa=antrianPasienDiPeriksaDao.findByNoRec(noRec);
public Map<String, Object> updateAntrianPasienDiperiksaFromPembatalanPasien(StrukRetur strukRetur, String noRec) {
AntrianPasienDiPeriksa antrianPasienDiPeriksa = antrianPasienDiPeriksaDao.findByNoRec(noRec);
antrianPasienDiPeriksa.setStrukRetur(strukRetur);
antrianPasienDiPeriksaDao.save(antrianPasienDiPeriksa);
Map<String,Object> result=new HashMap<String,Object>();
Map<String, Object> result = new HashMap<String, Object>();
result.put("antrianPasienDiperiksa", antrianPasienDiPeriksa);
return result;
}
@Autowired
private JadwalDokterDao jadwalDokterDao;
@Override
@Transactional
public Map<String,Object> saveAntrianPasienDiperiksaFromMasukKamar(PasienDaftar pasienDaftar) {
AntrianPasienDiPeriksa antrianPasienDiPeriksa=new AntrianPasienDiPeriksa();
antrianPasienDiPeriksa.setTglRegistrasi(new Date());
public Map<String, Object> 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<JadwalDokter> jadwalDokters = jadwalDokterDao
.findJadwalByTanggalRuangan(pasienDaftar.getRuangan().getId(), pasienDaftar.getTglRegistrasi());
List<JadwalDokter> 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<String,Object> result=new HashMap<String,Object>();
result =saveAntrianPasienDiperiksaFromMasukKamar(pasienDaftar,antrianPasienDiPeriksa);
Map<String, Object> result = new HashMap<String, Object>();
result = saveAntrianPasienDiperiksaFromMasukKamar(pasienDaftar, antrianPasienDiPeriksa);
result.put("antrianPasienDiPeriksa", antrianPasienDiPeriksa);
return result;
}
@Override
public List findAntrian(String noRec) {
public List<AntrianPasienDiperiksaDto> 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<Alamat> 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<AntrianPasienDiperiksaDto> list = new ArrayList<AntrianPasienDiperiksaDto>();
list.add(antrianPasienDiperiksaDto);
return list;
}
@Override
@Transactional
public Boolean checkStatusPasien(Integer pasienId,Integer ruanganId){
Boolean result=false;
List<AntrianPasienDiPeriksa> antrianPasienDiPeriksaList=antrianPasienDiPeriksaDao.findByPasien(pasienId, ruanganId);
if(CommonUtil.isNotNullOrEmpty(antrianPasienDiPeriksaList)){
result=true;
public Boolean checkStatusPasien(Integer pasienId, Integer ruanganId) {
Boolean result = false;
List<AntrianPasienDiPeriksa> 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<PersetujuanUmum> 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<String,Object> result=new HashMap<String,Object>();
result.put("antrianPasienDiPeriksa", antrianPasienDiperiksa);
return result;
}
@Override
public List findAntrianByPasienDaftar(String noRec,String key) {
PasienDaftar pasienDaftar = antrianPasienDiPeriksaDao.findOne(noRec).getPasienDaftar();
@Transactional
public Map<String, Object> 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<String, Object> result = new HashMap<String, Object>();
result.put("antrianPasienDiPeriksa", antrianPasienDiperiksa);
return result;
}
@Override
public List<Map<String, Object>> 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<String, Object> findAllWithPageAndLimitAndSortByAndDirectionParameter(Integer page, Integer limit,
String sort, String dir) {
return null;
}
@Override
public Map<String, Object> 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<Map<String, Object>> listAntrean = antrianPasienDiPeriksaDao.findAntreanByRuangan(tglAwal, tglAkhir,
ruanganId);
Map<String, Object> result = new HashMap<>();
if (listAntrean.size() > 0) {
List<Map<String, Object>> listJkn = listAntrean.stream()
.filter(m -> Master.KelompokPasien.BPJS.equals(m.get("kpId"))).collect(Collectors.toList());
List<Map<String, Object>> 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;
}
}
}

View File

@ -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")

View File

@ -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;
}
}

View File

@ -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;
}
}

View File

@ -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<AntrianPasienDiPeriksaVO> antrianPasienDiPeriksaSet = new HashSet<>();
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "pasienDaftar")
private Set<DiputuskanDetailVO> 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<MapPasienDpjpToPasienDaftarVO> mapPasienDpjpToPasienDaftar = new HashSet<MapPasienDpjpToPasienDaftarVO>();
@Caption(value = "emergensi")
@ -411,5 +385,4 @@ public class PasienDaftarVO extends BaseTransactionVO {
public void setDiskonPegawai(Integer diskonPegawai) {
this.diskonPegawai = diskonPegawai;
}
}