Update service migrasi pasien

Pembuatan sub rutin ekstraksi dan transformasi data berkas dari dokumen vedika
This commit is contained in:
Salman Manoe 2023-11-17 07:03:01 +07:00
parent fbe9ebe95a
commit 8e775aef4e
3 changed files with 32 additions and 9 deletions

View File

@ -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<DokumenVedika, Integer> {
List<DokumenVedika> findByPasienNoMrIn(List<String> listPasienNoCm);
}

View File

@ -2,10 +2,7 @@ package com.jasamedika.medifirst2000.service.impl;
import com.jasamedika.medifirst2000.constants.Master; import com.jasamedika.medifirst2000.constants.Master;
import com.jasamedika.medifirst2000.dao.*; import com.jasamedika.medifirst2000.dao.*;
import com.jasamedika.medifirst2000.entities.Alamat; import com.jasamedika.medifirst2000.entities.*;
import com.jasamedika.medifirst2000.entities.AsuransiPasien;
import com.jasamedika.medifirst2000.entities.MigrasiPasien;
import com.jasamedika.medifirst2000.entities.Pasien;
import com.jasamedika.medifirst2000.etl.pasien.constant.StatusMigrasi; import com.jasamedika.medifirst2000.etl.pasien.constant.StatusMigrasi;
import com.jasamedika.medifirst2000.etl.pasien.dto.*; import com.jasamedika.medifirst2000.etl.pasien.dto.*;
import com.jasamedika.medifirst2000.service.MigrasiPasienService; import com.jasamedika.medifirst2000.service.MigrasiPasienService;
@ -48,6 +45,9 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService {
@Autowired @Autowired
private AlamatDao alamatDao; private AlamatDao alamatDao;
@Autowired
private DokumenVedikaDao dokumenVedikaDao;
@Autowired @Autowired
private AsuransiPasienDao asuransiPasienDao; private AsuransiPasienDao asuransiPasienDao;
@ -73,8 +73,10 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService {
List<StatusMigrasi> statusMigrasiList = new ArrayList<>(Arrays.asList(BELUM_KIRIM, PEMBAHARUAN)); List<StatusMigrasi> statusMigrasiList = new ArrayList<>(Arrays.asList(BELUM_KIRIM, PEMBAHARUAN));
List<Pasien> listPasien = migrasiPasienDao.findPasienByStatusMigrasiIn(statusMigrasiList); List<Pasien> listPasien = migrasiPasienDao.findPasienByStatusMigrasiIn(statusMigrasiList);
List<Integer> listIdPasien = listPasien.stream().map(Pasien::getId).collect(Collectors.toList()); List<Integer> listIdPasien = listPasien.stream().map(Pasien::getId).collect(Collectors.toList());
List<String> listNoCmPasien = listPasien.stream().map(Pasien::getNoCm).collect(Collectors.toList());
List<Map<String, Object>> listCaraMeninggal = pasienDaftarDao.findPenyebabKematianByPasienIdIn(listIdPasien); List<Map<String, Object>> listCaraMeninggal = pasienDaftarDao.findPenyebabKematianByPasienIdIn(listIdPasien);
List<Alamat> listAlamat = alamatDao.findByPasienIdIn(listIdPasien); List<Alamat> listAlamat = alamatDao.findByPasienIdIn(listIdPasien);
List<DokumenVedika> listDokumenVedika = dokumenVedikaDao.findByPasienNoMrIn(listNoCmPasien);
List<Map<String, Object>> listAnak = pasienDao.findIdByNoCmOfIbu(new HashSet<>(listIdPasien)); List<Map<String, Object>> listAnak = pasienDao.findIdByNoCmOfIbu(new HashSet<>(listIdPasien));
List<AsuransiPasien> listAsuransi = asuransiPasienDao.findByPasienIdIn(listIdPasien); List<AsuransiPasien> listAsuransi = asuransiPasienDao.findByPasienIdIn(listIdPasien);
List<PasienDto> dtoList = new ArrayList<>(); List<PasienDto> dtoList = new ArrayList<>();
@ -169,7 +171,7 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService {
dtoBuilder.statusPerkawinan(StatusPerkawinanDto.builder().id(CERAI_MATI.id()).build()); dtoBuilder.statusPerkawinan(StatusPerkawinanDto.builder().id(CERAI_MATI.id()).build());
} }
{ {
dtoBuilder.berkas(setBerkas()); dtoBuilder.berkas(setBerkas(listDokumenVedika));
} }
{ {
List<Map<String, Object>> anakPasien = listAnak.stream() List<Map<String, Object>> anakPasien = listAnak.stream()
@ -210,9 +212,15 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService {
return dtoList; return dtoList;
} }
private Set<BerkasDto> setBerkas() { private Set<BerkasDto> setBerkas(List<DokumenVedika> listDokumenVedika) {
// TODO: Set ekstraksi dan transformasi berkas pasien Set<BerkasDto> dtoList = new HashSet<>();
return 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<KeluargaDto> setAnak(List<Map<String, Object>> listAnakPasien) { private Set<KeluargaDto> setAnak(List<Map<String, Object>> listAnakPasien) {

View File

@ -30,7 +30,7 @@ public class DokumenVedika implements Serializable {
@Column(name = "statusenabled") @Column(name = "statusenabled")
@Caption(value = "Status Enabled") @Caption(value = "Status Enabled")
public Boolean statusEnabled; private Boolean statusEnabled;
@ManyToOne(fetch = LAZY) @ManyToOne(fetch = LAZY)
@JoinColumn(name = "pasiendaftar_t_norec") @JoinColumn(name = "pasiendaftar_t_norec")