Update service pelayanan pasien
Pembuatan awal logbook dokter berbasis tarif
This commit is contained in:
parent
853647139d
commit
167f95dfcb
@ -197,4 +197,21 @@ public interface PelayananPasienDao extends PagingAndSortingRepository<Pelayanan
|
||||
+ "and pd.noRegistrasi = :noRegistrasi")
|
||||
List<PelayananPasien> findAll(@Param("noRegistrasi") String noRegistrasi);
|
||||
|
||||
@Query("select new Map(pr.id as idProduk,pr.namaProduk as namaProduk,pr.detailJenisProdukId as idDetailJenisProduk,"
|
||||
+ "kp.id as idKelompokPasien,kp.kelompokPasien as kelompokPasien,"
|
||||
+ "kls.id as idKelas,kls.namaKelas as namaKelas," + "ppp.noRec as idPelayananPasienPetugas,"
|
||||
+ "pp.noRec as idPelayananPasien,pp.hargaJual as hargaJual,pp.tglPelayanan as tglPelayanan,"
|
||||
+ "apd.noRec as idAntrianPasienDiperiksa," + "pd.noRec as idPasienDaftar) "
|
||||
+ "from PelayananPasienPetugas ppp " + "inner join ppp.pelayananPasien pp "
|
||||
+ "inner join pp.pasienDaftar apd " + "inner join apd.pasienDaftar pd " + "left join pp.produk pr "
|
||||
+ "left join pp.kelas kls " + "left join pd.kelompokPasien kp "
|
||||
+ "where (ppp.statusEnabled is true or ppp.statusEnabled is null) "
|
||||
+ "and (pp.statusEnabled is true or pp.statusEnabled is null) "
|
||||
+ "and (pd.statusEnabled is true or pd.statusEnabled is null) " + "and ppp.ObjectPegawaiId = :pegawaiId "
|
||||
+ "and pp.tglPelayanan between :tglAwal and :tglAkhir "
|
||||
+ "order by case when kp.id = 2 then 1 when kp.id = 4 then 2 when kp.id = 8 then 3 when kp.id = 9 then 4 "
|
||||
+ "when kp.id = 1 then 5 when kp.id = 5 then 6 when kp.id = 6 then 7 when kp.id = 3 then 8 when kp.id = 7 then 9 else 10 end asc, "
|
||||
+ "pp.tglPelayanan")
|
||||
List<Map<String, Object>> findPelayananPasienByPetugasAndTanggal(@Param("pegawaiId") Integer idPegawai,
|
||||
@Param("tglAwal") Date tglAwal, @Param("tglAkhir") Date tglAkhir);
|
||||
}
|
||||
|
||||
@ -16,7 +16,8 @@ public interface PelayananPasienService {
|
||||
List<Map<String, Object>> hitungRemunerasiDokterDenganFfs(String tglAwal, String tglAkhir);
|
||||
|
||||
List<String> updateKlaimDiskon(String noRegistrasi, Double totalKlaim, Integer jenisDiskon);
|
||||
|
||||
|
||||
String resetKlaimDiskon(String noRegistrasi);
|
||||
|
||||
List<Map<String, Object>> logbookTarifDokter(Integer idPegawai, String bulan);
|
||||
}
|
||||
|
||||
@ -5,12 +5,14 @@ import java.text.DecimalFormat;
|
||||
import java.text.DecimalFormatSymbols;
|
||||
import java.text.ParseException;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.util.ArrayDeque;
|
||||
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 java.util.Queue;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
@ -30,6 +32,7 @@ import com.jasamedika.medifirst2000.entities.PelayananPasienDetail;
|
||||
import com.jasamedika.medifirst2000.entities.Produk;
|
||||
import com.jasamedika.medifirst2000.service.PelayananPasienService;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import com.jasamedika.medifirst2000.util.DateUtil;
|
||||
import com.jasamedika.medifirst2000.vo.JenisObatVO;
|
||||
import com.jasamedika.medifirst2000.vo.PelayananPasienVO;
|
||||
import com.jasamedika.medifirst2000.vo.ProdukVO;
|
||||
@ -146,7 +149,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
public Double calculateRemunWithFfs(Integer idKelPasien, Integer idDepartemen, Integer idLayanan,
|
||||
String namaLayanan, Integer tipePegawai, Double hargaJual, Double hargaDiskon, Double jumlahLayanan) {
|
||||
Double result = 0.0;
|
||||
|
||||
|
||||
List<Integer> idsKonsultasiDokterJaga = splitDataSettingDatafixed("pr_konsultasi_dokter_jaga");
|
||||
|
||||
if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(idKelPasien)) {
|
||||
@ -389,4 +392,45 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Map<String, Object>> logbookTarifDokter(Integer idPegawai, String bulan) {
|
||||
List<Map<String, Object>> result = new ArrayList<>();
|
||||
Map<String, Object> remun = new HashMap<>();
|
||||
Map<String, Object> ffs = new HashMap<>();
|
||||
DateFormat df = new SimpleDateFormat("yyyy-MM");
|
||||
Date date = new Date();
|
||||
try {
|
||||
date = df.parse(bulan);
|
||||
} catch (ParseException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
Date tglAwal = DateUtil.startMonth(date);
|
||||
Date tglAkhir = DateUtil.endMonth(date);
|
||||
Double targetRemun = 5_000_000.00;
|
||||
List<Map<String, Object>> listPelayanan = pelayananPasienDao.findPelayananPasienByPetugasAndTanggal(idPegawai,
|
||||
tglAwal, tglAkhir);
|
||||
Queue<Map<String, Object>> queuePelayanan = new ArrayDeque<>();
|
||||
listPelayanan.forEach(pelayanan -> {
|
||||
queuePelayanan.offer(pelayanan);
|
||||
});
|
||||
List<Map<String, Object>> listPelayananRemun = new ArrayList<>();
|
||||
List<Map<String, Object>> listPelayananFfs = new ArrayList<>();
|
||||
Double capaianRemun = 0.0;
|
||||
for (Map<String, Object> next = queuePelayanan.poll(); next != null; next = queuePelayanan.poll())
|
||||
if (Arrays.asList(Master.KelompokPasien.KELOMPOK_BPJS).contains(next.get("idKelompokPasien"))) {
|
||||
listPelayananRemun.add(next);
|
||||
capaianRemun += Double.valueOf(next.get("hargaJual").toString());
|
||||
} else if (capaianRemun <= targetRemun) {
|
||||
listPelayananRemun.add(next);
|
||||
capaianRemun += Double.valueOf(next.get("hargaJual").toString());
|
||||
} else {
|
||||
listPelayananFfs.add(next);
|
||||
}
|
||||
remun.put("remun", listPelayananRemun);
|
||||
ffs.put("ffs", listPelayananFfs);
|
||||
result.add(remun);
|
||||
result.add(ffs);
|
||||
return result;
|
||||
}
|
||||
|
||||
}
|
||||
@ -43,6 +43,7 @@ import com.jasamedika.medifirst2000.service.PelayananFarmakologiService;
|
||||
import com.jasamedika.medifirst2000.service.PelayananNakesService;
|
||||
import com.jasamedika.medifirst2000.service.PelayananPasienNakesService;
|
||||
import com.jasamedika.medifirst2000.service.PelayananPasienPerawatService;
|
||||
import com.jasamedika.medifirst2000.service.PelayananPasienService;
|
||||
import com.jasamedika.medifirst2000.service.PenilaianKinerjaService;
|
||||
import com.jasamedika.medifirst2000.service.ProdukFarmakologiService;
|
||||
import com.jasamedika.medifirst2000.service.ProdukNakesService;
|
||||
@ -112,6 +113,9 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
|
||||
@Autowired
|
||||
private IndikatorKinerjaJabatanService indikatorKinerjaJabatanService;
|
||||
|
||||
@Autowired
|
||||
private PelayananPasienService pelayananPasienService;
|
||||
|
||||
@Autowired
|
||||
private SkoringTindakanMedisService skoringTindakanMedisService;
|
||||
|
||||
@ -2725,4 +2729,22 @@ public class IkiDanRemunerasiController extends LocaleController<IkiDanRemuneras
|
||||
}
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/dokter/logbook-tarif/{idPegawai}/{bulan}", method = RequestMethod.GET)
|
||||
public ResponseEntity<List<Map<String, Object>>> getDetailLogbookSkoringFarmakologi(HttpServletRequest request,
|
||||
@PathVariable("idPegawai") Integer idPegawai, @PathVariable("bulan") String bulan) {
|
||||
try {
|
||||
List<Map<String, Object>> result = pelayananPasienService.logbookTarifDokter(idPegawai, bulan);
|
||||
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 logbook tarif 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 logbook tarif 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