Create JadwalOperasiService

Pembuatan service get jadwal operasi periodik dan by pasien
This commit is contained in:
salmanoe 2023-02-21 17:29:44 +07:00
parent 217c87a856
commit d3e1f4e7df
7 changed files with 196 additions and 65 deletions

View File

@ -48,6 +48,7 @@ import com.jasamedika.medifirst2000.enums.TipePasienEnum;
import com.jasamedika.medifirst2000.service.AntrianPasienDiPeriksaService;
import com.jasamedika.medifirst2000.service.BatalRegistrasiService;
import com.jasamedika.medifirst2000.service.JadwalDokterService;
import com.jasamedika.medifirst2000.service.JadwalOperasiService;
import com.jasamedika.medifirst2000.service.ModelService;
import com.jasamedika.medifirst2000.service.PasienDaftarService;
import com.jasamedika.medifirst2000.service.PasienService;
@ -134,6 +135,9 @@ public class BridgingDaftarOnlineController {
@Autowired
private BatalRegistrasiService batalRegistrasiService;
@Autowired
private JadwalOperasiService jadwalOperasiService;
@RequestMapping(value = "/klinik_rs", method = RequestMethod.GET, produces = { MediaType.APPLICATION_XML_VALUE })
public BridgeDaftarKlinikListVO daftarKlinikRs() {
BridgeDaftarKlinikListVO y = new BridgeDaftarKlinikListVO();
@ -758,4 +762,18 @@ public class BridgingDaftarOnlineController {
return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
@RequestMapping(value = "/bpjs/operasi/jadwal/{start}/{end}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Object> getJadwalOperasiPeriodik(
@PathVariable @DateTimeFormat(pattern = "yyyy-MM-dd") Date start,
@PathVariable @DateTimeFormat(pattern = "yyyy-MM-dd") Date end) {
List<Map<String, Object>> entity = jadwalOperasiService.jadwalOperasiByPeriode(start, end);
return new ResponseEntity<>(entity, HttpStatus.OK);
}
@RequestMapping(value = "/bpjs/operasi/jadwal/{noBpjs}", method = RequestMethod.GET, produces = MediaType.APPLICATION_JSON_VALUE)
public ResponseEntity<Object> getJadwalOperasiPasien(@PathVariable String noBpjs) {
List<Map<String, Object>> entity = jadwalOperasiService.jadwalOperasiByPasien(noBpjs);
return new ResponseEntity<>(entity, HttpStatus.OK);
}
}

View File

@ -1,6 +1,11 @@
package com.jasamedika.medifirst2000.dao;
import java.util.Date;
import java.util.List;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository;
import com.jasamedika.medifirst2000.entities.JadwalOperasi;
@ -11,5 +16,14 @@ import com.jasamedika.medifirst2000.entities.JadwalOperasi;
*/
@Repository("jadwalOperasiDao")
public interface JadwalOperasiDao extends JpaRepository<JadwalOperasi, String> {
@Query("select jo from JadwalOperasi jo " + "inner join jo.antrean apd " + "inner join apd.pasienDaftar pd "
+ "left join jo.ruangan ru " + "where jo.statusEnabled is true " + "and apd.statusEnabled is true "
+ "and pd.statusEnabled is true " + "and jo.tglOperasi between :start and :end")
List<JadwalOperasi> findAllByPeriod(@Param("start") Date start, @Param("end") Date end);
@Query("select jo from JadwalOperasi jo " + "inner join jo.pasien ps " + "inner join jo.antrean apd "
+ "inner join apd.pasienDaftar pd " + "left join jo.ruangan ru " + "where jo.statusEnabled is true "
+ "and ps.statusEnabled is true " + "and apd.statusEnabled is true " + "and pd.statusEnabled is true "
+ "and ps.noBpjs = :noBpjs")
List<JadwalOperasi> findAllByPasien(@Param("noBpjs") String noBpjs);
}

View File

@ -0,0 +1,15 @@
package com.jasamedika.medifirst2000.service;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
* @author salmanoe
* @since Feb 21, 2023
*/
public interface JadwalOperasiService {
List<Map<String, Object>> jadwalOperasiByPeriode(Date start, Date end);
List<Map<String, Object>> jadwalOperasiByPasien(String noBpjs);
}

View File

@ -0,0 +1,60 @@
package com.jasamedika.medifirst2000.service.impl;
import java.util.ArrayList;
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.stereotype.Service;
import com.jasamedika.medifirst2000.dao.JadwalOperasiDao;
import com.jasamedika.medifirst2000.entities.JadwalOperasi;
import com.jasamedika.medifirst2000.service.JadwalOperasiService;
import com.jasamedika.medifirst2000.util.CommonUtil;
/**
* @author salmanoe
* @since Feb 21, 2023
*/
@Service("jadwalOperasiService")
public class JadwalOperasiServiceImpl implements JadwalOperasiService {
@Autowired
private JadwalOperasiDao jadwalOperasiDao;
@Override
public List<Map<String, Object>> jadwalOperasiByPeriode(Date start, Date end) {
List<JadwalOperasi> listOperasi = jadwalOperasiDao.findAllByPeriod(start, end);
return jadwalOperasi(listOperasi);
}
@Override
public List<Map<String, Object>> jadwalOperasiByPasien(String noBpjs) {
List<JadwalOperasi> listOperasi = jadwalOperasiDao.findAllByPasien(noBpjs);
return jadwalOperasi(listOperasi);
}
private List<Map<String, Object>> jadwalOperasi(List<JadwalOperasi> listOperasi) {
Date now = new Date();
List<Map<String, Object>> result = new ArrayList<Map<String, Object>>();
listOperasi.forEach(o -> {
Map<String, Object> operasi = new HashMap<>();
operasi.put("noRegistrasi", o.getAntrean().getPasienDaftar().getNoRegistrasi());
operasi.put("tglOperasi", o.getTglOperasi());
operasi.put("jenisTindakan", o.getTindakan());
operasi.put("ruanganId", CommonUtil.isNotNullOrEmpty(o.getRuangan()) ? o.getRuangan().getId() : null);
operasi.put("terlaksana", false);
if (CommonUtil.isNotNullOrEmpty(o.getTglOperasi())
&& (o.getTglOperasi().before(now) || o.getTglOperasi().equals(now)))
operasi.put("terlaksana", true);
operasi.put("noBpjs", CommonUtil.isNotNullOrEmpty(o.getPasien())
? (CommonUtil.isNotNullOrEmpty(o.getPasien().getNoBpjs()) ? o.getPasien().getNoBpjs() : '-') : '-');
operasi.put("lastUpdate", o.getLastUpdate());
result.add(operasi);
});
if (result.size() == 0)
return null;
return result;
}
}

View File

@ -36,7 +36,6 @@ import com.jasamedika.medifirst2000.converter.RekananConverter;
import com.jasamedika.medifirst2000.converter.StatusPerkawinanConverter;
import com.jasamedika.medifirst2000.converter.TitlePasienConverter;
import com.jasamedika.medifirst2000.dao.AlamatDao;
import com.jasamedika.medifirst2000.dao.PasienDaftarDao;
import com.jasamedika.medifirst2000.dao.PasienDao;
import com.jasamedika.medifirst2000.dao.RunningNumberDao;
import com.jasamedika.medifirst2000.dao.custom.PasienDaoCustom;
@ -142,9 +141,6 @@ public class PasienServiceImpl extends BaseVoServiceImpl implements PasienServic
@Autowired
private PasienDaoCustom pasienDaoCustom;
@Autowired
private PasienDaftarDao pasienDaftarDao;
@Override
@Transactional(readOnly = false)

View File

@ -21,7 +21,7 @@ import com.jasamedika.medifirst2000.helper.Caption;
@Entity
@Table(name = "jadwaloperasi_t")
public class JadwalOperasi extends BaseTransaction {
private static final long serialVersionUID = 8468276026157531646L;
private static final long serialVersionUID = 2979610420268392970L;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ruanganfk")
@ -83,41 +83,41 @@ public class JadwalOperasi extends BaseTransaction {
@Column(name = "tglinput")
@Temporal(TemporalType.TIMESTAMP)
private Date tglInput;
@Caption(value = "Tanggal Verifikasi")
@Column(name = "tglverifikasi")
@Temporal(TemporalType.TIMESTAMP)
private Date tglVerifikasi;
@Caption(value = "Tanggal Operasi")
@Column(name = "tgloperasi")
@Temporal(TemporalType.TIMESTAMP)
private Date tglOperasi;
@Column(name = "diagnosa", length = 3000)
@Caption(value="Diagnosa")
private String diagnosa;
@Caption(value = "Diagnosa")
private String diagnosa;
@Column(name = "tindakan", length = 3000)
@Caption(value="Tindakan")
private String tindakan;
@Caption(value = "Tindakan")
private String tindakan;
@Column(name = "posisikhusus", length = 3000)
@Caption(value="Posisi Khusus")
@Caption(value = "Posisi Khusus")
private String posisiKhusus;
@Column(name = "macamanestesi", length = 3000)
@Caption(value="Macam Anestesi")
@Caption(value = "Macam Anestesi")
private String macamAnestesi;
@Column(name = "lamaoperasi", length = 500)
@Caption(value="Lama Operasi")
@Caption(value = "Lama Operasi")
private String lamaOperasi;
@Column(name = "ruangoperasi", length = 500)
@Caption(value="Ruang Operasi")
@Caption(value = "Ruang Operasi")
private String ruangOperasi;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "dokteranestesifk")
@Caption(value = "Dokter Anestesi")
@ -125,28 +125,28 @@ public class JadwalOperasi extends BaseTransaction {
@Column(name = "dokteranestesifk", insertable = false, updatable = false)
private Integer dokterAnestesiId;
@Column(name = "iscito")
@Caption(value = "Status Cito")
private Boolean isCito;
@Column(name = "telp", length = 20)
@Caption(value="No Telepon")
@Caption(value = "No Telepon")
private String noTelepon;
@Column(name = "verif", length = 10)
@Caption(value="Kode Verifikasi")
@Caption(value = "Kode Verifikasi")
private String kodeVerif;
@Column(name = "selesai")
@Caption(value = "Status Selesai")
private Boolean selesai;
@Caption(value = "Tanggal Pegawai Verif")
@Column(name = "tglpegawaiverif")
@Temporal(TemporalType.TIMESTAMP)
private Date tglPegawaiVerif;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "objectperawatfk")
@Caption(value = "Perawat")
@ -154,11 +154,11 @@ public class JadwalOperasi extends BaseTransaction {
@Column(name = "objectperawatfk", insertable = false, updatable = false)
private Integer perawatId;
@Column(name = "batal_order")
@Caption(value = "Status Batal Order")
private Boolean batalOrder;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "objectpegawaibatal")
@Caption(value = "Pegawai Batal")
@ -166,17 +166,17 @@ public class JadwalOperasi extends BaseTransaction {
@Column(name = "objectpegawaibatal", insertable = false, updatable = false)
private Integer pegawaiBatalId;
@Caption(value = "Tanggal Batal")
@Column(name = "tglbatal")
@Temporal(TemporalType.TIMESTAMP)
private Date tglBatal;
@Caption(value = "Tanggal Selesai")
@Column(name = "tglselesai")
@Temporal(TemporalType.TIMESTAMP)
private Date tglSelesai;
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "objectpegawaiselesai")
@Caption(value = "Pegawai Selesai")
@ -185,9 +185,18 @@ public class JadwalOperasi extends BaseTransaction {
@Column(name = "objectpegawaiselesai", insertable = false, updatable = false)
private Integer pegawaiSelesaiId;
@Caption(value = "Last Update")
@Column(name = "lastupdate")
@Temporal(TemporalType.TIMESTAMP)
private Date lastUpdate;
public JadwalOperasi() {
}
public static long getSerialversionuid() {
return serialVersionUID;
}
public Ruangan getRuangan() {
return ruangan;
}
@ -499,4 +508,12 @@ public class JadwalOperasi extends BaseTransaction {
public void setPegawaiSelesaiId(Integer pegawaiSelesaiId) {
this.pegawaiSelesaiId = pegawaiSelesaiId;
}
public Date getLastUpdate() {
return lastUpdate;
}
public void setLastUpdate(Date lastUpdate) {
this.lastUpdate = lastUpdate;
}
}

View File

@ -51,75 +51,78 @@ public class JadwalOperasiVO extends BaseTransactionVO {
@Caption(value = "Tanggal Input")
private Date tglInput;
@Caption(value = "Tanggal Verifikasi")
private Date tglVerifikasi;
@Caption(value = "Tanggal Operasi")
private Date tglOperasi;
@Caption(value="Diagnosa")
private String diagnosa;
@Caption(value="Tindakan")
private String tindakan;
@Caption(value="Posisi Khusus")
@Caption(value = "Diagnosa")
private String diagnosa;
@Caption(value = "Tindakan")
private String tindakan;
@Caption(value = "Posisi Khusus")
private String posisiKhusus;
@Caption(value="Macam Anestesi")
@Caption(value = "Macam Anestesi")
private String macamAnestesi;
@Caption(value="Lama Operasi")
@Caption(value = "Lama Operasi")
private String lamaOperasi;
@Caption(value="Ruang Operasi")
@Caption(value = "Ruang Operasi")
private String ruangOperasi;
@Caption(value = "Dokter Anestesi")
private Pegawai dokterAnestesi;
private Integer dokterAnestesiId;
@Caption(value = "Status Cito")
private Boolean isCito;
@Caption(value="No Telepon")
@Caption(value = "No Telepon")
private String noTelepon;
@Caption(value="Kode Verifikasi")
@Caption(value = "Kode Verifikasi")
private String kodeVerif;
@Caption(value = "Status Selesai")
private Boolean selesai;
@Caption(value = "Tanggal Pegawai Verif")
private Date tglPegawaiVerif;
@Caption(value = "Perawat")
private Pegawai perawat;
private Integer perawatId;
@Caption(value = "Status Batal Order")
private Boolean batalOrder;
@Caption(value = "Pegawai Batal")
private Pegawai pegawaiBatal;
private Integer pegawaiBatalId;
@Caption(value = "Tanggal Batal")
private Date tglBatal;
@Caption(value = "Tanggal Selesai")
private Date tglSelesai;
@Caption(value = "Pegawai Selesai")
private Pegawai pegawaiSelesai;
private Integer pegawaiSelesaiId;
@Caption(value = "Last Update")
private Date lastUpdate;
public JadwalOperasiVO() {
}
@ -434,4 +437,12 @@ public class JadwalOperasiVO extends BaseTransactionVO {
public void setPegawaiSelesaiId(Integer pegawaiSelesaiId) {
this.pegawaiSelesaiId = pegawaiSelesaiId;
}
public Date getLastUpdate() {
return lastUpdate;
}
public void setLastUpdate(Date lastUpdate) {
this.lastUpdate = lastUpdate;
}
}