From 8e775aef4ed2986b1e701e325450d9587a6c9de5 Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Fri, 17 Nov 2023 07:03:01 +0700 Subject: [PATCH] Update service migrasi pasien Pembuatan sub rutin ekstraksi dan transformasi data berkas dari dokumen vedika --- .../medifirst2000/dao/DokumenVedikaDao.java | 15 ++++++++++++ .../impl/MigrasiPasienServiceImpl.java | 24 ++++++++++++------- .../medifirst2000/entities/DokumenVedika.java | 2 +- 3 files changed, 32 insertions(+), 9 deletions(-) create mode 100644 jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/DokumenVedikaDao.java diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/DokumenVedikaDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/DokumenVedikaDao.java new file mode 100644 index 00000000..2d6eadd8 --- /dev/null +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/DokumenVedikaDao.java @@ -0,0 +1,15 @@ +package com.jasamedika.medifirst2000.dao; + +import com.jasamedika.medifirst2000.entities.DokumenVedika; +import org.springframework.data.jpa.repository.JpaRepository; + +import java.util.List; + +/** + * @author salmanoe + * @version 1.0.0 + * @since 16/11/2023 + */ +public interface DokumenVedikaDao extends JpaRepository { + List findByPasienNoMrIn(List listPasienNoCm); +} diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MigrasiPasienServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MigrasiPasienServiceImpl.java index 045954a1..60ebe063 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MigrasiPasienServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/MigrasiPasienServiceImpl.java @@ -2,10 +2,7 @@ package com.jasamedika.medifirst2000.service.impl; import com.jasamedika.medifirst2000.constants.Master; import com.jasamedika.medifirst2000.dao.*; -import com.jasamedika.medifirst2000.entities.Alamat; -import com.jasamedika.medifirst2000.entities.AsuransiPasien; -import com.jasamedika.medifirst2000.entities.MigrasiPasien; -import com.jasamedika.medifirst2000.entities.Pasien; +import com.jasamedika.medifirst2000.entities.*; import com.jasamedika.medifirst2000.etl.pasien.constant.StatusMigrasi; import com.jasamedika.medifirst2000.etl.pasien.dto.*; import com.jasamedika.medifirst2000.service.MigrasiPasienService; @@ -48,6 +45,9 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService { @Autowired private AlamatDao alamatDao; + @Autowired + private DokumenVedikaDao dokumenVedikaDao; + @Autowired private AsuransiPasienDao asuransiPasienDao; @@ -73,8 +73,10 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService { List statusMigrasiList = new ArrayList<>(Arrays.asList(BELUM_KIRIM, PEMBAHARUAN)); List listPasien = migrasiPasienDao.findPasienByStatusMigrasiIn(statusMigrasiList); List listIdPasien = listPasien.stream().map(Pasien::getId).collect(Collectors.toList()); + List listNoCmPasien = listPasien.stream().map(Pasien::getNoCm).collect(Collectors.toList()); List> listCaraMeninggal = pasienDaftarDao.findPenyebabKematianByPasienIdIn(listIdPasien); List listAlamat = alamatDao.findByPasienIdIn(listIdPasien); + List listDokumenVedika = dokumenVedikaDao.findByPasienNoMrIn(listNoCmPasien); List> listAnak = pasienDao.findIdByNoCmOfIbu(new HashSet<>(listIdPasien)); List listAsuransi = asuransiPasienDao.findByPasienIdIn(listIdPasien); List dtoList = new ArrayList<>(); @@ -169,7 +171,7 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService { dtoBuilder.statusPerkawinan(StatusPerkawinanDto.builder().id(CERAI_MATI.id()).build()); } { - dtoBuilder.berkas(setBerkas()); + dtoBuilder.berkas(setBerkas(listDokumenVedika)); } { List> anakPasien = listAnak.stream() @@ -210,9 +212,15 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService { return dtoList; } - private Set setBerkas() { - // TODO: Set ekstraksi dan transformasi berkas pasien - return new HashSet<>(); + private Set setBerkas(List listDokumenVedika) { + Set dtoList = new HashSet<>(); + listDokumenVedika.forEach(dokumenVedika -> { + BerkasDto.BerkasDtoBuilder dtoBuilder = BerkasDto.builder(); + dtoBuilder.judulBerkas(dokumenVedika.getNamaFile()); + dtoBuilder.lokasiBerkas(dokumenVedika.getUrl()); + dtoBuilder.jenisBerkas(JenisBerkasDto.builder().id(dokumenVedika.getJenisBerkasId().longValue()).build()); + }); + return dtoList; } private Set setAnak(List> listAnakPasien) { diff --git a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/DokumenVedika.java b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/DokumenVedika.java index fd1524e0..67cf5ca7 100644 --- a/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/DokumenVedika.java +++ b/jasamedika-domain/src/main/java/com/jasamedika/medifirst2000/entities/DokumenVedika.java @@ -30,7 +30,7 @@ public class DokumenVedika implements Serializable { @Column(name = "statusenabled") @Caption(value = "Status Enabled") - public Boolean statusEnabled; + private Boolean statusEnabled; @ManyToOne(fetch = LAZY) @JoinColumn(name = "pasiendaftar_t_norec")