- pembuatan service presensi visite dokter
- pembuatan daftar dokter untuk pencarian monitoring presensi visite dokter
This commit is contained in:
parent
5564538cee
commit
73d361468b
@ -5,23 +5,26 @@ import java.util.List;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.PagingAndSortingRepository;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.CatatanPerkembanganPasienTerintegrasi;
|
||||
import com.jasamedika.medifirst2000.vo.CpptHarianPertamaVO;
|
||||
|
||||
/**
|
||||
* @author ITI-14
|
||||
* @since Oct 21, 2021
|
||||
*/
|
||||
@Repository("cpptDao")
|
||||
public interface CatatanPerkembanganPasienTerintegrasiDao
|
||||
extends PagingAndSortingRepository<CatatanPerkembanganPasienTerintegrasi, String> {
|
||||
|
||||
@Query(nativeQuery = true, value = "select distinct on (cp.pegawaifk) cp.pegawaifk, cp.tglinput "
|
||||
+ "from cppt_t cp " + "inner join pegawai_m pg on cp.pegawaifk = pg.id " + "where cp.statusenabled is true "
|
||||
+ "and cp.isverifikasi is true " + "and pg.kategorypegawai in (:listKategoryId) "
|
||||
+ "and pg.objectjenispegawaifk = :jenisPegawaiId " + "and to_char(cp.tglinput, 'yyyy-MM-dd') = :tglInput "
|
||||
+ "order by cp.pegawaifk, cp.tglinput asc")
|
||||
List<CpptHarianPertamaVO> findCpptHarianPertama(@Param("listKategoryId") List<Integer> listIdKategoryPegawai,
|
||||
@Param("jenisPegawaiId") Integer idJenisPegawai, @Param("tglInput") String tglInput);
|
||||
@Query(nativeQuery = true, value = "select distinct on (cppt.pegawaifk,to_char(cppt.tglinput,'yyyy-MM-dd')) cppt.* "
|
||||
+ "from (select cp.* from cppt_t cp "
|
||||
+ "inner join antrianpasiendiperiksa_t apd on cp.noregistrasifk = apd.norec "
|
||||
+ "where cp.statusenabled is true " + "and cp.flag_ in (1,3) "
|
||||
+ "and to_char(cp.tglinput,'yyyy-MM-dd') between :startDate and :endDate "
|
||||
+ "and cp.pegawaifk in (:listPegawaiId) " + "order by cp.pegawaifk, cp.tglinput) as cppt "
|
||||
+ "order by cppt.pegawaifk, to_char(cppt.tglinput,'yyyy-MM-dd')")
|
||||
List<CatatanPerkembanganPasienTerintegrasi> findPresensiCPPT(@Param("listPegawaiId") List<Integer> listIdPegawai,
|
||||
@Param("startDate") String startDate, @Param("endDate") String endDate);
|
||||
|
||||
}
|
||||
|
||||
@ -14,8 +14,8 @@ import com.jasamedika.medifirst2000.entities.Kalender;
|
||||
@Repository("KalenderDao")
|
||||
public interface KalenderDao extends PagingAndSortingRepository<Kalender, Integer> {
|
||||
|
||||
@Query("select k.tanggal from Kalender k where to_char(k.tanggal,'yyyy-MM-dd') between :tglAwal and :tglAkhir")
|
||||
List<Date> getDateFromPeriodicParameter(@Param("tglAwal") String tglAwal, @Param("tglAkhir") String tglAkhir);
|
||||
@Query("select k.tanggal from Kalender k where to_char(k.tanggal,'yyyy-MM-dd') between :startDate and :endDate")
|
||||
List<Date> getDateFromPeriodicParameter(@Param("startDate") String tglAwal, @Param("endDate") String tglAkhir);
|
||||
|
||||
@Query("select new Map(k.id as kalendarId," + "k.tanggal as date," + "to_char(k.tanggal,'yyyy-MM-dd') as strDate,"
|
||||
+ "concat(k.hariKeDlmBulan,' ',k.namaBulan,' ',k.tahunKalender) as tanggal) "
|
||||
|
||||
@ -493,4 +493,33 @@ public interface MapPegawaiJabatanToUnitKerjaDao extends CrudRepository<MapPegaw
|
||||
+ "and pg.jenisPegawaiId = 1 " + "and jb.levelJabatan = 5")
|
||||
List<Integer> findAllDokterKelompokStafMedik(@Param("listKsmId") List<Integer> listIdKsm);
|
||||
|
||||
String strDokter = "select distinct new Map(pg.id as pegawaiId,pg.nama as nama,pg.namaLengkap as namaLengkap) "
|
||||
+ "from MapPegawaiJabatanToUnitKerja mj " + "inner join mj.pegawai pg " + "inner join mj.jabatan jb "
|
||||
+ "where mj.statusEnabled is true " + "and pg.statusEnabled is true " + "and pg.jenisPegawaiId = 1 "
|
||||
+ "and jb.levelJabatan = 5 ";
|
||||
|
||||
String ksm = "and mj.unitKerjaPegawaiId = :ksmId ";
|
||||
|
||||
String kk = "and mj.subUnitKerjaPegawaiId = :kkId ";
|
||||
|
||||
String dr = "and mj.pegawaiId = :drId ";
|
||||
|
||||
String sortDr = "order by pg.nama";
|
||||
|
||||
@Query(strDokter + sortDr)
|
||||
List<Map<String, Object>> findDokter();
|
||||
|
||||
@Query(strDokter + ksm + sortDr)
|
||||
List<Map<String, Object>> findDokterByKsm(@Param("ksmId") Integer idKsm);
|
||||
|
||||
@Query(strDokter + ksm + kk + sortDr)
|
||||
List<Map<String, Object>> findDokterByKk(@Param("ksmId") Integer idKsm, @Param("kkId") Integer idKk);
|
||||
|
||||
@Query(strDokter + ksm + kk + dr + sortDr)
|
||||
List<Map<String, Object>> findDokterById(@Param("ksmId") Integer idKsm, @Param("kkId") Integer idKk,
|
||||
@Param("drId") Integer idDr);
|
||||
|
||||
@Query(strDokter + dr + sortDr)
|
||||
List<Map<String, Object>> findDokterById(@Param("drId") Integer idDr);
|
||||
|
||||
}
|
||||
|
||||
@ -1,5 +1,8 @@
|
||||
package com.jasamedika.medifirst2000.service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
import org.springframework.orm.jpa.JpaSystemException;
|
||||
|
||||
import com.jasamedika.medifirst2000.entities.CatatanPerkembanganPasienTerintegrasi;
|
||||
@ -12,6 +15,9 @@ import com.jasamedika.medifirst2000.vo.CatatanPerkembanganPasienTerintegrasiVO;
|
||||
public interface CatatanPerkembanganPasienTerintegrasiService
|
||||
extends BaseVoService<CatatanPerkembanganPasienTerintegrasi, CatatanPerkembanganPasienTerintegrasiVO, String> {
|
||||
|
||||
void hitungKepatuhanCpptHarianPertama(Long tglInput) throws JpaSystemException;
|
||||
List<Map<String, Object>> findPresensiVisiteDokter(Integer idKsm, Integer idKk, Integer idDr, Long startDate,
|
||||
Long endDate) throws JpaSystemException;
|
||||
|
||||
List<Map<String, Object>> findDokter(Integer idKsm, Integer idKk, Integer idDr) throws JpaSystemException;
|
||||
|
||||
}
|
||||
|
||||
@ -3,19 +3,19 @@ package com.jasamedika.medifirst2000.service.impl;
|
||||
import java.text.DateFormat;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
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.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.BaseConverterImpl;
|
||||
import com.jasamedika.medifirst2000.dao.CatatanPerkembanganPasienTerintegrasiDao;
|
||||
import com.jasamedika.medifirst2000.dao.KalenderDao;
|
||||
import com.jasamedika.medifirst2000.dao.MapPegawaiJabatanToUnitKerjaDao;
|
||||
import com.jasamedika.medifirst2000.entities.AntrianPasienDiPeriksa;
|
||||
import com.jasamedika.medifirst2000.entities.CatatanPerkembanganPasienTerintegrasi;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
@ -26,7 +26,6 @@ import com.jasamedika.medifirst2000.service.CatatanPerkembanganPasienTerintegras
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.vo.AntrianPasienDiPeriksaVO;
|
||||
import com.jasamedika.medifirst2000.vo.CatatanPerkembanganPasienTerintegrasiVO;
|
||||
import com.jasamedika.medifirst2000.vo.CpptHarianPertamaVO;
|
||||
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||
import com.jasamedika.medifirst2000.vo.PegawaiVO;
|
||||
import com.jasamedika.medifirst2000.vo.RuanganVO;
|
||||
@ -57,6 +56,12 @@ public class CatatanPerkembanganPasienTerintegrasiServiceImpl extends BaseVoServ
|
||||
@Autowired
|
||||
private CatatanPerkembanganPasienTerintegrasiDao cpptDao;
|
||||
|
||||
@Autowired
|
||||
private KalenderDao kalenderDao;
|
||||
|
||||
@Autowired
|
||||
private MapPegawaiJabatanToUnitKerjaDao mapJabatanDao;
|
||||
|
||||
@Override
|
||||
public CatatanPerkembanganPasienTerintegrasiVO add(CatatanPerkembanganPasienTerintegrasiVO vo)
|
||||
throws JpaSystemException, ServiceVOException {
|
||||
@ -154,13 +159,124 @@ public class CatatanPerkembanganPasienTerintegrasiServiceImpl extends BaseVoServ
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* @author ITI-14
|
||||
* @since Nov 15, 2021
|
||||
* @param idKsm
|
||||
* id kelompok staf medik
|
||||
* @param idKk
|
||||
* id kelompok kerja
|
||||
* @param idDr
|
||||
* id pegawai dokter
|
||||
* @return daftar dokter
|
||||
*/
|
||||
@Override
|
||||
@Transactional
|
||||
public void hitungKepatuhanCpptHarianPertama(Long tglInput) throws JpaSystemException {
|
||||
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
||||
public List<Map<String, Object>> findDokter(Integer idKsm, Integer idKk, Integer idDr) throws JpaSystemException {
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
|
||||
List<CpptHarianPertamaVO> listCppt = cpptDao.findCpptHarianPertama(Arrays.asList(Master.KategoryPegawai.REMUN),
|
||||
Master.JenisPegawai.DOKTER, df.format(new Date(tglInput)));
|
||||
if (CommonUtil.isNotNullOrEmpty(idKsm) && CommonUtil.isNotNullOrEmpty(idKk)
|
||||
&& CommonUtil.isNotNullOrEmpty(idDr)) {
|
||||
result = mapJabatanDao.findDokterById(idKsm, idKk, idDr);
|
||||
} else if (CommonUtil.isNullOrEmpty(idKsm) && CommonUtil.isNullOrEmpty(idKk)
|
||||
&& CommonUtil.isNotNullOrEmpty(idDr)) {
|
||||
result = mapJabatanDao.findDokterById(idDr);
|
||||
} else if (CommonUtil.isNotNullOrEmpty(idKk) && CommonUtil.isNullOrEmpty(idDr)) {
|
||||
result = mapJabatanDao.findDokterByKk(idKsm, idKk);
|
||||
} else if (CommonUtil.isNotNullOrEmpty(idKsm) && CommonUtil.isNullOrEmpty(idKk)) {
|
||||
result = mapJabatanDao.findDokterByKsm(idKsm);
|
||||
} else {
|
||||
result = mapJabatanDao.findDokter();
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
* @author ITI-14
|
||||
* @since Nov 12, 2021
|
||||
* @param idKsm
|
||||
* id kelompok staf medik
|
||||
* @param idKk
|
||||
* id kelompok kerja
|
||||
* @param idDr
|
||||
* id pegawai dokter
|
||||
* @param startDate
|
||||
* tanggal awal pengambilan data
|
||||
* @param endDate
|
||||
* tanggal akhir pengambilan data
|
||||
* @return presensi visite dokter
|
||||
*/
|
||||
@Override
|
||||
public List<Map<String, Object>> findPresensiVisiteDokter(Integer idKsm, Integer idKk, Integer idDr, Long startDate,
|
||||
Long endDate) throws JpaSystemException {
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
List<Map<String, Object>> dataInit = new ArrayList<>();
|
||||
|
||||
List<Integer> listIdDokter = new ArrayList<>();
|
||||
|
||||
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
|
||||
DateFormat df_ina = new SimpleDateFormat("dd-MM-yyyy");
|
||||
DateFormat sf_ina = new SimpleDateFormat("HH:mm:ss");
|
||||
String strStartDate = df.format(new Date(startDate));
|
||||
String strEndDate = df.format(new Date(endDate));
|
||||
|
||||
List<Map<String, Object>> listDokter = this.findDokter(idKsm, idKk, idDr);
|
||||
for (Map<String, Object> map : listDokter) {
|
||||
listIdDokter.add(Integer.valueOf(map.get("pegawaiId").toString()));
|
||||
}
|
||||
|
||||
List<Date> listTgl = kalenderDao.getDateFromPeriodicParameter(strStartDate, strEndDate);
|
||||
for (Map<String, Object> dokter : listDokter) {
|
||||
for (Date tgl : listTgl) {
|
||||
Map<String, Object> mapDate = new HashMap<>();
|
||||
mapDate.putAll(dokter);
|
||||
mapDate.put("tgl", tgl);
|
||||
dataInit.add(mapDate);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (CommonUtil.isNotNullOrEmpty(listIdDokter)) {
|
||||
List<CatatanPerkembanganPasienTerintegrasi> rawData = cpptDao.findPresensiCPPT(listIdDokter, strStartDate,
|
||||
strEndDate);
|
||||
for (Map<String, Object> map : dataInit) {
|
||||
|
||||
Map<String, Object> mapRs = new HashMap<>();
|
||||
mapRs.put("cpptId", null);
|
||||
mapRs.put("tglInput", null);
|
||||
mapRs.put("strTgl", df_ina.format(map.get("tgl")));
|
||||
mapRs.put("strJamInput", null);
|
||||
mapRs.put("antrianId", null);
|
||||
mapRs.put("namaRuangan", null);
|
||||
mapRs.put("isDpjp", null);
|
||||
for (CatatanPerkembanganPasienTerintegrasi cppt : rawData) {
|
||||
if (df.format(map.get("tgl")).equals(df.format(cppt.getTglInput()))
|
||||
&& map.get("pegawaiId").equals(cppt.getPegawaiId())) {
|
||||
Boolean isDpjp = false;
|
||||
if (CommonUtil.isNotNullOrEmpty(cppt.getAntrianPasienDiperiksa())
|
||||
&& CommonUtil.isNotNullOrEmpty(cppt.getAntrianPasienDiperiksa().getPegawai())) {
|
||||
isDpjp = cppt.getAntrianPasienDiperiksa().getPegawai().getId().equals(map.get("pegawaiId"))
|
||||
? true : false;
|
||||
}
|
||||
|
||||
mapRs.put("cpptId", cppt.getNoRec());
|
||||
mapRs.put("tglInput", cppt.getTglInput());
|
||||
mapRs.put("strTgl", df_ina.format(map.get("tgl")));
|
||||
mapRs.put("strJamInput", sf_ina.format(cppt.getTglInput()));
|
||||
mapRs.put("antrianId", cppt.getAntrianPasienDiperiksaId());
|
||||
mapRs.put("namaRuangan", cppt.getRuangan().getNamaRuangan());
|
||||
mapRs.put("isDpjp", isDpjp);
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
mapRs.putAll(map);
|
||||
|
||||
result.add(mapRs);
|
||||
}
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -101,6 +101,7 @@ import com.jasamedika.medifirst2000.entities.LoginUser;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.entities.Pegawai;
|
||||
import com.jasamedika.medifirst2000.exception.ServiceVOException;
|
||||
import com.jasamedika.medifirst2000.service.CatatanPerkembanganPasienTerintegrasiService;
|
||||
import com.jasamedika.medifirst2000.service.CssdSterilisasiService;
|
||||
import com.jasamedika.medifirst2000.service.HasilPemeriksaanSwaPantauLimbahCairService;
|
||||
import com.jasamedika.medifirst2000.service.IndekKinerjaService;
|
||||
@ -328,6 +329,9 @@ public class ReportingController extends LocaleController<RegistrasiPelayananVO>
|
||||
@Autowired
|
||||
private PasienService pasienService;
|
||||
|
||||
@Autowired
|
||||
private CatatanPerkembanganPasienTerintegrasiService cpptService;
|
||||
|
||||
@RequestMapping("/instalasiRawatInap")
|
||||
public ModelAndView generateInstalasiRawatInap(ModelAndView m,
|
||||
@RequestParam(value = "format", required = false) String format,
|
||||
@ -7691,4 +7695,28 @@ public class ReportingController extends LocaleController<RegistrasiPelayananVO>
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/presensi-visite-dokter", method = RequestMethod.GET)
|
||||
public ResponseEntity<List<Map<String, Object>>> presensiVisiteDokter(HttpServletRequest request,
|
||||
@RequestParam(value = "startDate", required = true) Long startDate,
|
||||
@RequestParam(value = "endDate", required = true) Long endDate,
|
||||
@RequestParam(value = "ksmId", required = false) Integer idKsm,
|
||||
@RequestParam(value = "kkId", required = false) Integer idKk,
|
||||
@RequestParam(value = "drId", required = false) Integer idDr) {
|
||||
try {
|
||||
List<Map<String, Object>> result = cpptService.findPresensiVisiteDokter(idKsm, idKk, idDr, startDate,
|
||||
endDate);
|
||||
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
|
||||
getMessage(MessageResource.LABEL_SUCCESS, request));
|
||||
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
|
||||
} catch (ServiceVOException sve) {
|
||||
LOGGER.error("Got exception {} when get data presensi visite dokter", sve.getMessage());
|
||||
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage());
|
||||
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage);
|
||||
} catch (JpaSystemException jse) {
|
||||
LOGGER.error("Got exception {} when get data presensi visite dokter", jse.getMessage());
|
||||
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
|
||||
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -46,6 +46,7 @@ import com.jasamedika.medifirst2000.service.AsuransiNakerService;
|
||||
import com.jasamedika.medifirst2000.service.AturanPeminjamanService;
|
||||
import com.jasamedika.medifirst2000.service.BerkasLamaranService;
|
||||
import com.jasamedika.medifirst2000.service.BibliographyService;
|
||||
import com.jasamedika.medifirst2000.service.CatatanPerkembanganPasienTerintegrasiService;
|
||||
import com.jasamedika.medifirst2000.service.CustomIndexKerjaService;
|
||||
import com.jasamedika.medifirst2000.service.DaftarKeanggotaanService;
|
||||
import com.jasamedika.medifirst2000.service.DataKeluargaService;
|
||||
@ -415,6 +416,9 @@ public class SdmController extends LocaleController<AkunVO> {
|
||||
@Autowired
|
||||
private RemunerasiOperasionalService remunerasiOperasionalService;
|
||||
|
||||
@Autowired
|
||||
private CatatanPerkembanganPasienTerintegrasiService cpptService;
|
||||
|
||||
@RequestMapping(value = "/save-custom-uraian-kerja", method = RequestMethod.POST, produces = MediaType.APPLICATION_JSON_VALUE, consumes = MediaType.APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<Map<String, Object>> saveBerkasLamaran(@Valid @RequestBody CustomIndexKerjaVO vo,
|
||||
HttpServletRequest request) throws ParseException {
|
||||
@ -5907,4 +5911,25 @@ public class SdmController extends LocaleController<AkunVO> {
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/daftar-dokter", method = RequestMethod.GET)
|
||||
public ResponseEntity<List<Map<String, Object>>> getDaftarDokter(HttpServletRequest request,
|
||||
@RequestParam(value = "ksmId", required = false) Integer idKsm,
|
||||
@RequestParam(value = "kkId", required = false) Integer idKk,
|
||||
@RequestParam(value = "drId", required = false) Integer idDr) {
|
||||
try {
|
||||
List<Map<String, Object>> result = cpptService.findDokter(idKsm, idKk, idDr);
|
||||
mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS,
|
||||
getMessage(MessageResource.LABEL_SUCCESS, request));
|
||||
return RestUtil.getJsonResponse(result, HttpStatus.OK, mapHeaderMessage);
|
||||
} catch (ServiceVOException sve) {
|
||||
LOGGER.error("Got exception {} when get daftar dokter", sve.getMessage());
|
||||
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, sve.getMessage());
|
||||
return RestUtil.getJsonHttptatus(HttpStatus.INTERNAL_SERVER_ERROR, mapHeaderMessage);
|
||||
} catch (JpaSystemException jse) {
|
||||
LOGGER.error("Got exception {} when get daftar dokter", jse.getMessage());
|
||||
addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage());
|
||||
return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user