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.AntrianPasienDiPeriksaService;
import com.jasamedika.medifirst2000.service.BatalRegistrasiService; import com.jasamedika.medifirst2000.service.BatalRegistrasiService;
import com.jasamedika.medifirst2000.service.JadwalDokterService; import com.jasamedika.medifirst2000.service.JadwalDokterService;
import com.jasamedika.medifirst2000.service.JadwalOperasiService;
import com.jasamedika.medifirst2000.service.ModelService; import com.jasamedika.medifirst2000.service.ModelService;
import com.jasamedika.medifirst2000.service.PasienDaftarService; import com.jasamedika.medifirst2000.service.PasienDaftarService;
import com.jasamedika.medifirst2000.service.PasienService; import com.jasamedika.medifirst2000.service.PasienService;
@ -134,6 +135,9 @@ public class BridgingDaftarOnlineController {
@Autowired @Autowired
private BatalRegistrasiService batalRegistrasiService; private BatalRegistrasiService batalRegistrasiService;
@Autowired
private JadwalOperasiService jadwalOperasiService;
@RequestMapping(value = "/klinik_rs", method = RequestMethod.GET, produces = { MediaType.APPLICATION_XML_VALUE }) @RequestMapping(value = "/klinik_rs", method = RequestMethod.GET, produces = { MediaType.APPLICATION_XML_VALUE })
public BridgeDaftarKlinikListVO daftarKlinikRs() { public BridgeDaftarKlinikListVO daftarKlinikRs() {
BridgeDaftarKlinikListVO y = new BridgeDaftarKlinikListVO(); BridgeDaftarKlinikListVO y = new BridgeDaftarKlinikListVO();
@ -758,4 +762,18 @@ public class BridgingDaftarOnlineController {
return new ResponseEntity<>(null, HttpStatus.INTERNAL_SERVER_ERROR); 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; 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.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.jasamedika.medifirst2000.entities.JadwalOperasi; import com.jasamedika.medifirst2000.entities.JadwalOperasi;
@ -11,5 +16,14 @@ import com.jasamedika.medifirst2000.entities.JadwalOperasi;
*/ */
@Repository("jadwalOperasiDao") @Repository("jadwalOperasiDao")
public interface JadwalOperasiDao extends JpaRepository<JadwalOperasi, String> { 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.StatusPerkawinanConverter;
import com.jasamedika.medifirst2000.converter.TitlePasienConverter; import com.jasamedika.medifirst2000.converter.TitlePasienConverter;
import com.jasamedika.medifirst2000.dao.AlamatDao; import com.jasamedika.medifirst2000.dao.AlamatDao;
import com.jasamedika.medifirst2000.dao.PasienDaftarDao;
import com.jasamedika.medifirst2000.dao.PasienDao; import com.jasamedika.medifirst2000.dao.PasienDao;
import com.jasamedika.medifirst2000.dao.RunningNumberDao; import com.jasamedika.medifirst2000.dao.RunningNumberDao;
import com.jasamedika.medifirst2000.dao.custom.PasienDaoCustom; import com.jasamedika.medifirst2000.dao.custom.PasienDaoCustom;
@ -143,9 +142,6 @@ public class PasienServiceImpl extends BaseVoServiceImpl implements PasienServic
@Autowired @Autowired
private PasienDaoCustom pasienDaoCustom; private PasienDaoCustom pasienDaoCustom;
@Autowired
private PasienDaftarDao pasienDaftarDao;
@Override @Override
@Transactional(readOnly = false) @Transactional(readOnly = false)
public PasienVO add(PasienVO vo) throws JpaSystemException, ServiceVOException { public PasienVO add(PasienVO vo) throws JpaSystemException, ServiceVOException {

View File

@ -21,7 +21,7 @@ import com.jasamedika.medifirst2000.helper.Caption;
@Entity @Entity
@Table(name = "jadwaloperasi_t") @Table(name = "jadwaloperasi_t")
public class JadwalOperasi extends BaseTransaction { public class JadwalOperasi extends BaseTransaction {
private static final long serialVersionUID = 8468276026157531646L; private static final long serialVersionUID = 2979610420268392970L;
@ManyToOne(fetch = FetchType.LAZY) @ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "ruanganfk") @JoinColumn(name = "ruanganfk")
@ -95,27 +95,27 @@ public class JadwalOperasi extends BaseTransaction {
private Date tglOperasi; private Date tglOperasi;
@Column(name = "diagnosa", length = 3000) @Column(name = "diagnosa", length = 3000)
@Caption(value="Diagnosa") @Caption(value = "Diagnosa")
private String diagnosa; private String diagnosa;
@Column(name = "tindakan", length = 3000) @Column(name = "tindakan", length = 3000)
@Caption(value="Tindakan") @Caption(value = "Tindakan")
private String tindakan; private String tindakan;
@Column(name = "posisikhusus", length = 3000) @Column(name = "posisikhusus", length = 3000)
@Caption(value="Posisi Khusus") @Caption(value = "Posisi Khusus")
private String posisiKhusus; private String posisiKhusus;
@Column(name = "macamanestesi", length = 3000) @Column(name = "macamanestesi", length = 3000)
@Caption(value="Macam Anestesi") @Caption(value = "Macam Anestesi")
private String macamAnestesi; private String macamAnestesi;
@Column(name = "lamaoperasi", length = 500) @Column(name = "lamaoperasi", length = 500)
@Caption(value="Lama Operasi") @Caption(value = "Lama Operasi")
private String lamaOperasi; private String lamaOperasi;
@Column(name = "ruangoperasi", length = 500) @Column(name = "ruangoperasi", length = 500)
@Caption(value="Ruang Operasi") @Caption(value = "Ruang Operasi")
private String ruangOperasi; private String ruangOperasi;
@ManyToOne(fetch = FetchType.LAZY) @ManyToOne(fetch = FetchType.LAZY)
@ -131,11 +131,11 @@ public class JadwalOperasi extends BaseTransaction {
private Boolean isCito; private Boolean isCito;
@Column(name = "telp", length = 20) @Column(name = "telp", length = 20)
@Caption(value="No Telepon") @Caption(value = "No Telepon")
private String noTelepon; private String noTelepon;
@Column(name = "verif", length = 10) @Column(name = "verif", length = 10)
@Caption(value="Kode Verifikasi") @Caption(value = "Kode Verifikasi")
private String kodeVerif; private String kodeVerif;
@Column(name = "selesai") @Column(name = "selesai")
@ -185,9 +185,18 @@ public class JadwalOperasi extends BaseTransaction {
@Column(name = "objectpegawaiselesai", insertable = false, updatable = false) @Column(name = "objectpegawaiselesai", insertable = false, updatable = false)
private Integer pegawaiSelesaiId; private Integer pegawaiSelesaiId;
@Caption(value = "Last Update")
@Column(name = "lastupdate")
@Temporal(TemporalType.TIMESTAMP)
private Date lastUpdate;
public JadwalOperasi() { public JadwalOperasi() {
} }
public static long getSerialversionuid() {
return serialVersionUID;
}
public Ruangan getRuangan() { public Ruangan getRuangan() {
return ruangan; return ruangan;
} }
@ -499,4 +508,12 @@ public class JadwalOperasi extends BaseTransaction {
public void setPegawaiSelesaiId(Integer pegawaiSelesaiId) { public void setPegawaiSelesaiId(Integer pegawaiSelesaiId) {
this.pegawaiSelesaiId = pegawaiSelesaiId; this.pegawaiSelesaiId = pegawaiSelesaiId;
} }
public Date getLastUpdate() {
return lastUpdate;
}
public void setLastUpdate(Date lastUpdate) {
this.lastUpdate = lastUpdate;
}
} }

View File

@ -58,22 +58,22 @@ public class JadwalOperasiVO extends BaseTransactionVO {
@Caption(value = "Tanggal Operasi") @Caption(value = "Tanggal Operasi")
private Date tglOperasi; private Date tglOperasi;
@Caption(value="Diagnosa") @Caption(value = "Diagnosa")
private String diagnosa; private String diagnosa;
@Caption(value="Tindakan") @Caption(value = "Tindakan")
private String tindakan; private String tindakan;
@Caption(value="Posisi Khusus") @Caption(value = "Posisi Khusus")
private String posisiKhusus; private String posisiKhusus;
@Caption(value="Macam Anestesi") @Caption(value = "Macam Anestesi")
private String macamAnestesi; private String macamAnestesi;
@Caption(value="Lama Operasi") @Caption(value = "Lama Operasi")
private String lamaOperasi; private String lamaOperasi;
@Caption(value="Ruang Operasi") @Caption(value = "Ruang Operasi")
private String ruangOperasi; private String ruangOperasi;
@Caption(value = "Dokter Anestesi") @Caption(value = "Dokter Anestesi")
@ -84,10 +84,10 @@ public class JadwalOperasiVO extends BaseTransactionVO {
@Caption(value = "Status Cito") @Caption(value = "Status Cito")
private Boolean isCito; private Boolean isCito;
@Caption(value="No Telepon") @Caption(value = "No Telepon")
private String noTelepon; private String noTelepon;
@Caption(value="Kode Verifikasi") @Caption(value = "Kode Verifikasi")
private String kodeVerif; private String kodeVerif;
@Caption(value = "Status Selesai") @Caption(value = "Status Selesai")
@ -120,6 +120,9 @@ public class JadwalOperasiVO extends BaseTransactionVO {
private Integer pegawaiSelesaiId; private Integer pegawaiSelesaiId;
@Caption(value = "Last Update")
private Date lastUpdate;
public JadwalOperasiVO() { public JadwalOperasiVO() {
} }
@ -434,4 +437,12 @@ public class JadwalOperasiVO extends BaseTransactionVO {
public void setPegawaiSelesaiId(Integer pegawaiSelesaiId) { public void setPegawaiSelesaiId(Integer pegawaiSelesaiId) {
this.pegawaiSelesaiId = pegawaiSelesaiId; this.pegawaiSelesaiId = pegawaiSelesaiId;
} }
public Date getLastUpdate() {
return lastUpdate;
}
public void setLastUpdate(Date lastUpdate) {
this.lastUpdate = lastUpdate;
}
} }