245 lines
8.7 KiB
Java
245 lines
8.7 KiB
Java
package com.jasamedika.medifirst2000.controller;
|
|
|
|
import com.jasamedika.medifirst2000.dao.BridgingDao;
|
|
import com.jasamedika.medifirst2000.dao.LogSiranapDao;
|
|
import com.jasamedika.medifirst2000.entities.LogSiranap;
|
|
import com.jasamedika.medifirst2000.service.ModelService;
|
|
import com.jasamedika.medifirst2000.util.CommonUtil;
|
|
import com.jasamedika.medifirst2000.vo.custom.BridgeSiranapKamarVO;
|
|
import com.jasamedika.medifirst2000.vo.custom.BridgeSiranapListVO;
|
|
import com.jasamedika.medifirst2000.vo.custom.BridgeSiranapRuanganVO;
|
|
import com.jasamedika.medifirst2000.vo.custom.BridgeSiranapVO;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.http.MediaType;
|
|
import org.springframework.web.bind.annotation.RequestMapping;
|
|
import org.springframework.web.bind.annotation.RequestMethod;
|
|
import org.springframework.web.bind.annotation.RestController;
|
|
|
|
import java.text.DateFormat;
|
|
import java.text.SimpleDateFormat;
|
|
import java.util.*;
|
|
|
|
@RestController
|
|
@RequestMapping("/siranap")
|
|
|
|
public class BridgingSiranapController {
|
|
@Autowired
|
|
private ModelService modelServiceKelas;
|
|
@Autowired
|
|
private ModelService modelServiceRuangan;
|
|
|
|
@Autowired
|
|
private LogSiranapDao logSiranapDao;
|
|
|
|
@Autowired
|
|
private BridgingDao bridgingDao;
|
|
|
|
@RequestMapping(value = "/data-old", method = RequestMethod.GET, produces = { MediaType.APPLICATION_XML_VALUE })
|
|
public BridgeSiranapListVO siranap() {
|
|
// Map antara ruang/kamar ke jenis perawatan belum tersedia
|
|
BridgeSiranapListVO y = new BridgeSiranapListVO();
|
|
@SuppressWarnings("unchecked")
|
|
List<Map<String, Object>> kamarT = modelServiceKelas.getAllData("Kamar",
|
|
"id,qtyBed,jumlaKamarIsi,jumlaKamarKosong,kelasId,ruanganId", 250, null, null, null, null, null, null,
|
|
null, null, null, null);
|
|
List<Map<String, Object>> ruanganT = modelServiceRuangan.getAllData("Ruangan", "id", 250, null, null, null,
|
|
null, null, null, null, null, null, null);
|
|
ArrayList<BridgeSiranapRuanganVO> aRuangan = new ArrayList<BridgeSiranapRuanganVO>();
|
|
ArrayList<BridgeSiranapKamarVO> aKamar = new ArrayList<BridgeSiranapKamarVO>();
|
|
|
|
for (int i = 0; i < ruanganT.size(); i++) {
|
|
BridgeSiranapRuanganVO nRuangan = new BridgeSiranapRuanganVO();
|
|
nRuangan.setId((Integer) kamarT.get(i).get("id"));
|
|
aRuangan.add(nRuangan);
|
|
}
|
|
|
|
for (int i = 0; i < kamarT.size(); i++) {
|
|
BridgeSiranapKamarVO nKamar = new BridgeSiranapKamarVO();
|
|
nKamar.setId((Integer) kamarT.get(i).get("id"));
|
|
nKamar.setJumlaKamarIsi((Integer) kamarT.get(i).get("jumlaKamarIsi"));
|
|
nKamar.setJumlaKamarKosong((Integer) kamarT.get(i).get("jumlaKamarKosong"));
|
|
nKamar.setQtyBed((Byte) kamarT.get(i).get("qtyBed"));
|
|
nKamar.setRuanganId((Integer) kamarT.get(i).get("ruanganId"));
|
|
Integer kelasId = (Integer) kamarT.get(i).get("kelasId");
|
|
String kelasPerawatan = "";
|
|
if (kelasId == 1) {// Kelas III
|
|
kelasPerawatan = "0005";
|
|
} else if (kelasId == 2) {// Kelas II
|
|
kelasPerawatan = "0004";
|
|
} else if (kelasId == 3) {// Kelas I
|
|
kelasPerawatan = "0003";
|
|
} else if (kelasId == 4) {// Kelas Intensif -> Rawat Khusus
|
|
kelasPerawatan = "0008";
|
|
} else if (kelasId == 5) {// VIP A
|
|
kelasPerawatan = "0002";
|
|
} else if (kelasId == 6) {// non Kelas
|
|
kelasPerawatan = "";
|
|
} else if (kelasId == 7) {// Isolasi
|
|
kelasPerawatan = "0007";
|
|
} else if (kelasId == 8) {// VIP B
|
|
kelasPerawatan = "0002";
|
|
} else {
|
|
kelasPerawatan = "";
|
|
}
|
|
|
|
nKamar.setKelasPerawatan(kelasPerawatan);
|
|
|
|
nKamar.setKelasId((Integer) kamarT.get(i).get("kelasId"));
|
|
if (!nKamar.getKelasPerawatan().equals("")) {
|
|
aKamar.add(nKamar);
|
|
}
|
|
}
|
|
|
|
// merelasikan:
|
|
for (int i = 0; i < aKamar.size(); i++) {
|
|
for (int j = 0; j < aRuangan.size(); j++) {
|
|
if (aKamar.get(i).getRuanganId() == aRuangan.get(j).getId()) {
|
|
aRuangan.get(j).addKamar(aKamar.get(i));
|
|
}
|
|
}
|
|
}
|
|
|
|
for (int i = 0; i < aKamar.size(); i++) {
|
|
BridgeSiranapVO x = new BridgeSiranapVO();
|
|
x.setTipePasien(aKamar.get(i).getKelasPerawatan());
|
|
x.setKodeRuang("belum ada mappingan");
|
|
// x.setTotalTT(aKamar.get(i).getQtyBed());
|
|
x.setKosongFemale(0);
|
|
x.setKosongMale(0);
|
|
x.setTerpakaiFemale(0);
|
|
x.setTerpakaiMale(0);
|
|
x.setWaiting(0);
|
|
Calendar cal = Calendar.getInstance();
|
|
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
x.setTglUpdate(dateFormat.format(cal.getTime()));
|
|
y.addBridgeSiranapVO(x);
|
|
}
|
|
return y;
|
|
}
|
|
|
|
@RequestMapping(value = "/data", method = RequestMethod.GET, produces = { MediaType.APPLICATION_XML_VALUE })
|
|
public BridgeSiranapListVO siranapNew() {
|
|
|
|
BridgeSiranapListVO result = new BridgeSiranapListVO();
|
|
String id = bridgingDao.findIdDepartemenRawatInap();//departemenRawatInap id = 16 dan icu = 35
|
|
List<Integer> listId = new ArrayList<Integer>();
|
|
String idDep[] = id.split(",");
|
|
for(int i=0;i<idDep.length;i++)
|
|
{
|
|
listId.add(Integer.parseInt(idDep[i]));
|
|
}
|
|
List<Integer> listRuangan = bridgingDao.findIdRuanganDepartemenRawatInap(listId);//list ruangan yg termasuk departemen rawat inap
|
|
List<Integer> listRuanganPerawatan = bridgingDao.findIdRuanganPerawatan(listRuangan);
|
|
for(Integer idRuanganPerawatan : listRuanganPerawatan)//listRuangan
|
|
{
|
|
List<Integer> listKelas = bridgingDao.findIdKelasRuangan(idRuanganPerawatan);
|
|
for(Integer idKelas : listKelas)//kelas per Ruangan
|
|
{
|
|
List<Map<String,Object>> listData = bridgingDao.findCountBed(idRuanganPerawatan,idKelas);
|
|
BridgeSiranapVO voTempatTidur = new BridgeSiranapVO();
|
|
Map<String,Object> dataTempatTidur = new HashMap<String,Object>();
|
|
Long total = (long)0;
|
|
for(Map<String,Object> data : listData)
|
|
{
|
|
Long count = (long)0;
|
|
if(CommonUtil.isNotNullOrEmpty(data.get("countBed")))
|
|
{
|
|
count = (Long)data.get("countBed");
|
|
}
|
|
if(CommonUtil.isNotNullOrEmpty(data.get("statusBed")))
|
|
{
|
|
dataTempatTidur.put(""+(String)data.get("statusBed"), count);
|
|
}
|
|
if(CommonUtil.isNotNullOrEmpty(data.get("tipePasien")))
|
|
{
|
|
dataTempatTidur.put("kode_ruang",(String)data.get("tipePasien"));
|
|
voTempatTidur.setTipePasien((String)data.get("tipePasien"));
|
|
}
|
|
if(CommonUtil.isNotNullOrEmpty(data.get("namaKelas")))
|
|
{
|
|
dataTempatTidur.put("namaKelas",(String)data.get("namaKelas"));
|
|
voTempatTidur.setKodeRuang((String)data.get("namaKelas"));
|
|
}
|
|
total +=count;
|
|
dataTempatTidur.put("total_TT", total);
|
|
voTempatTidur.setTotalTT(total);
|
|
List<String> tglUpdate = bridgingDao.findTanggalUpdate(idRuanganPerawatan, idKelas);
|
|
if(CommonUtil.isNotNullOrEmpty(tglUpdate))
|
|
{
|
|
dataTempatTidur.put("tglUpdate", tglUpdate.get(0));
|
|
}
|
|
}
|
|
//set to vo
|
|
if(CommonUtil.isNotNullOrEmpty(dataTempatTidur))
|
|
{
|
|
if(CommonUtil.isNotNullOrEmpty(dataTempatTidur.get("ISI")))
|
|
{
|
|
Long isi = (Long)dataTempatTidur.get("ISI");
|
|
voTempatTidur.setTerpakaiFemale(isi.intValue());
|
|
}
|
|
else
|
|
{
|
|
voTempatTidur.setTerpakaiFemale(0);
|
|
}
|
|
if(CommonUtil.isNotNullOrEmpty(dataTempatTidur.get("KOSONG")))
|
|
{
|
|
Long kosong = (Long)dataTempatTidur.get("KOSONG");
|
|
voTempatTidur.setKosongFemale(kosong.intValue());
|
|
}
|
|
else
|
|
{
|
|
voTempatTidur.setKosongFemale(0);
|
|
}
|
|
if(CommonUtil.isNotNullOrEmpty(dataTempatTidur.get("Sedang Proses Administrasi")))
|
|
{
|
|
Long waiting = (Long)dataTempatTidur.get("Sedang Proses Administrasi");
|
|
voTempatTidur.setWaiting(waiting.intValue());
|
|
}
|
|
else
|
|
{
|
|
voTempatTidur.setWaiting(0);
|
|
}
|
|
if(CommonUtil.isNotNullOrEmpty(dataTempatTidur.get("tglUpdate")))
|
|
{
|
|
String tglUpdate = (String)dataTempatTidur.get("tglUpdate");
|
|
voTempatTidur.setTglUpdate(tglUpdate);
|
|
}
|
|
else
|
|
{
|
|
voTempatTidur.setTglUpdate(new SimpleDateFormat("yyyy-MM-dd").format(new java.util.Date()));
|
|
}
|
|
voTempatTidur.setKosongMale(0);
|
|
voTempatTidur.setTerpakaiMale(0);
|
|
saveLogSiranap(voTempatTidur);
|
|
}
|
|
result.addBridgeSiranapVO(voTempatTidur);
|
|
}
|
|
|
|
}
|
|
return result;
|
|
}
|
|
|
|
public void saveLogSiranap(BridgeSiranapVO voTempatTidur)
|
|
{
|
|
if(CommonUtil.isNotNullOrEmpty(voTempatTidur))
|
|
{
|
|
LogSiranap log = new LogSiranap();
|
|
log.setKodeRuang(voTempatTidur.getKodeRuang());
|
|
log.setKosongFemale(voTempatTidur.getKosongFemale()+"");
|
|
log.setKosongMale(voTempatTidur.getKosongMale()+"");
|
|
log.setTerpakaiFemale(voTempatTidur.getTerpakaiFemale()+"");
|
|
log.setTerpakaiMale(voTempatTidur.getTerpakaiMale()+"");
|
|
log.setTglUpdate(voTempatTidur.getTglUpdate());
|
|
log.setTipePasien(voTempatTidur.getTipePasien());
|
|
log.setTotalTempatTidur(voTempatTidur.getTotalTT()+"");
|
|
log.setWaiting(voTempatTidur.getWaiting()+"");
|
|
log.setTglAccess(new Date());
|
|
if(CommonUtil.isNotNullOrEmpty(log))
|
|
{
|
|
logSiranapDao.save(log);
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|