package com.jasamedika.medifirst2000.controller; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; 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 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; @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> kamarT = modelServiceKelas.getAllData("Kamar", "id,qtyBed,jumlaKamarIsi,jumlaKamarKosong,kelasId,ruanganId", 250, null, null, null, null, null, null, null, null, null, null); List> ruanganT = modelServiceRuangan.getAllData("Ruangan", "id", 250, null, null, null, null, null, null, null, null, null, null); ArrayList aRuangan = new ArrayList(); ArrayList aKamar = new ArrayList(); 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 listId = new ArrayList(); String idDep[] = id.split(","); for(int i=0;i listRuangan = bridgingDao.findIdRuanganDepartemenRawatInap(listId);//list ruangan yg termasuk departemen rawat inap List listRuanganPerawatan = bridgingDao.findIdRuanganPerawatan(listRuangan); for(Integer idRuanganPerawatan : listRuanganPerawatan)//listRuangan { List listKelas = bridgingDao.findIdKelasRuangan(idRuanganPerawatan); for(Integer idKelas : listKelas)//kelas per Ruangan { List> listData = bridgingDao.findCountBed(idRuanganPerawatan,idKelas); BridgeSiranapVO voTempatTidur = new BridgeSiranapVO(); Map dataTempatTidur = new HashMap(); Long total = (long)0; for(Map 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 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.setTotal_TT(voTempatTidur.getTotalTT()+""); log.setWaiting(voTempatTidur.getWaiting()+""); log.setTglAccess(new Date()); if(CommonUtil.isNotNullOrEmpty(log)) { logSiranapDao.save(log); } } } }