Update service pelayanan pasien

Perbaikan validasi harga jasa diskon dpjp dan penambahan formula kontribusi di logbook dokter
This commit is contained in:
Salman Manoe 2023-07-28 18:06:30 +07:00
parent eaee1e7c0f
commit 8845d071e5
3 changed files with 157 additions and 268 deletions

View File

@ -21,16 +21,6 @@ import java.util.Map;
@Repository("PelayananPasienDao")
public interface PelayananPasienDao extends PagingAndSortingRepository<PelayananPasien, String> {
@Query("select p from PelayananPasien p where p.pasienDaftar.pasienDaftar.pasien.noCm=:noCm and p.kdProfile=:kdProfile and date(p.pasienDaftar.pasienDaftar.tglRegistrasi)=:tglRegistrasi ")
PelayananPasien finByNoCmAndTglRegistrasi(@Param("noCm") String noCm, @Param("kdProfile") short kdProfile,
@Param("tglRegistrasi") Date tglRegistrasi);
@Query("select p from StrukResep s, PelayananPasien p where p.pasienDaftar.pasienDaftar.noRegistrasi=:noOrder")
List<PelayananPasienDetail> findByNoResep(@Param("noOrder") String noOrder);
@Query("select s from StrukResep s")
List<StrukResep> findByNoResep();
@Query("select p from PelayananPasien p where p.noRec=:noRec ")
PelayananPasien findByNoRec(@Param("noRec") String noRec);
@ -40,9 +30,6 @@ public interface PelayananPasienDao extends PagingAndSortingRepository<Pelayanan
@Query("select distinct p from StrukResep s , PelayananPasien p where p.strukOrder.noOrder=:noOrder")
List<PelayananPasien> findByNoOrder(@Param("noOrder") String noOrder);
@Query("select distinct p from PelayananPasien p where p.pasienDaftar.pasienDaftar.noRec=:noRec and p.statusEnabled is null")
List<PelayananPasien> findByPelayanan(@Param("noRec") String noRec);
@Query("select NEW Map(" + "a.noRec as noRec," + "d.namaProduk as namaProduk," + "d.id as produkId,"
+ "a.jumlah as jumlah," + "a.hargaSatuan as hargaSatuan," + "a.hargaNetto as hargaNetto,"
+ "e.detailJenisProduk as detailJenisProduk," + "f.namaRuangan as namaRuangan,"
@ -69,9 +56,6 @@ public interface PelayananPasienDao extends PagingAndSortingRepository<Pelayanan
@Query("select batch.volumen,batch.nokantongkemasan,ruangan.namaRuangan,strukPelayananDetail.noSelang, to_char(strukPelayanan.tglstruk,'yyyy-MM-dd'), pasien.namaPasien, pasien.noCm,to_char(pasien.tglLahir,'yyyy-MM-dd'),strukOrder.noOrder, produk.namaProduk from PelayananPasien pelayanan left join pelayanan.strukOrder strukOrder left join pelayanan.noBatch batch left join batch.kdruangan ruangan left join batch.nostruk strukPelayananDetail left join strukPelayananDetail.nostruk strukPelayanan left join pelayanan.produk produk left join pelayanan.pasienDaftar antrian left join antrian.pasienDaftar pasienDaftar left join pasienDaftar.pasien pasien where strukOrder.noOrder =:noOrder")
List<Object[]> getByStrukOrderNoOrder(@Param("noOrder") String noOrder);
@Query("select p from PelayananPasien p where p.pasienDaftar.noRec=:noRec and p.produk.id=:produkId")
List<PelayananPasien> findKarcis(@Param("noRec") String noRec, @Param("produkId") Integer produkId);
@Query("select NEW Map (" + "a.noRec as noRec, " + "a.tglPelayanan as tglPelayanan, "
+ "d.namaPasien as namaPasien, " + "d.noCm as noCm, " + "e.namaKelas as namaKelas, " + "e.id as kelasId, "
+ "f.namaProduk as namaProduk, " + "f.id as produkId) " + "from PelayananPasien a "

View File

@ -22,8 +22,8 @@ import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
import static com.jasamedika.medifirst2000.constants.Master.Departemen.*;
import static com.jasamedika.medifirst2000.constants.Master.Departemen.RADIOLOGI;
import static com.jasamedika.medifirst2000.constants.Master.Departemen.*;
import static com.jasamedika.medifirst2000.constants.Master.FeeForService.HK_02_04_III_558_2015_4_B_1;
import static com.jasamedika.medifirst2000.constants.Master.FeeForService.HK_02_04_III_558_2015_5_B_C_D;
import static com.jasamedika.medifirst2000.constants.Master.GolonganProduk.KONSULTASI;
@ -506,7 +506,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
* Mapping set awal persentase jasa remunerasi dan harga jasa remunerasi
*/
for (Map<String, Object> d : listData)
if (CommonUtil.isNotNullOrEmpty(d.get("totalDiskon"))
if (DOKTER_PEMERIKSA.equals(d.get("idJenisPelaksana")) && CommonUtil.isNotNullOrEmpty(d.get("totalDiskon"))
&& Double.parseDouble(d.get("totalDiskon").toString()) > 0.0) {
/*
* Untuk diskon jasa medis oleh dpjp
@ -1624,6 +1624,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
map.put("jumlah", jumlah);
double jumlahHargaJasa = jumlah * Double.parseDouble(map.get("hargaJasa").toString());
map.put("jumlahHargaJasa", jumlahHargaJasa);
double jumlahHargaJual = jumlah * Double.parseDouble(map.get("hargaJual").toString());
map.put("jumlahHargaJual", jumlahHargaJual);
Optional<Map<String, Object>> first = v5.stream().findFirst();
first.ifPresent(e -> {
map.put("namaProduk", e.get("namaProduk").toString());
@ -1904,6 +1906,8 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
map.put("jumlah", jumlah);
double jumlahHargaJasa = jumlah * Double.parseDouble(map.get("hargaJasa").toString());
map.put("jumlahHargaJasa", jumlahHargaJasa);
double jumlahHargaJual = jumlah * Double.parseDouble(map.get("hargaJual").toString());
map.put("jumlahHargaJual", jumlahHargaJual);
Optional<Map<String, Object>> first = v6.stream().findFirst();
first.ifPresent(e -> {
map.put("namaProduk", e.get("namaProduk").toString());