Update service migrasi pasien
Pembuatan subrutin ekstraksi dan transformasi data anak dari pasien
This commit is contained in:
parent
0385cc885b
commit
974c482c71
@ -116,10 +116,14 @@ public interface PasienDao extends JpaRepository<Pasien, Integer> {
|
||||
+ "or length(ps.noidentitas) <> 16) " + "order by ps.statusenabled, ps.tgldaftar desc", nativeQuery = true)
|
||||
List<Pasien> findByValidBpjs();
|
||||
|
||||
@Query("select anak from Pasien ibu, Pasien anak " + "where ibu.noCm = anak.reportDisplay "
|
||||
+ "and ibu.statusEnabled is true and anak.statusEnabled is true " + "and ibu.noCm in (:listNoCmIbu)")
|
||||
List<Pasien> findAnakByNoCmOfIbu(@Param("listNoCmIbu") List<String> listNoCmIbu);
|
||||
|
||||
@Query("select new Map(ibu.id as idIbu,anak.id as idAnak) " + "from Pasien ibu, Pasien anak "
|
||||
+ "where ibu.noCm = anak.reportDisplay " + "and ibu.statusEnabled is true and anak.statusEnabled is true "
|
||||
+ "and ibu.id in (:listIdIbu)")
|
||||
List<Map<String, Object>> findIdByNoCmOfIbu(@Param("listIdIbu") Set<Integer> listIdIbu);
|
||||
List<Map<String, Object>> findIdByIdOfIbu(@Param("listIdIbu") Set<Integer> listIdIbu);
|
||||
|
||||
@Query(value = "select ps.* from pasien_m ps " + "where ps.statusenabled is true " + "and ps.nocm ~ '^[0-9\\.]+$' "
|
||||
+ "and length(ps.nocm) = 8 " + "and cast(ps.nocm as integer) < 10000000 "
|
||||
|
||||
@ -16,6 +16,7 @@ import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static com.jasamedika.medifirst2000.etl.pasien.constant.CaraMeninggal.*;
|
||||
import static com.jasamedika.medifirst2000.etl.pasien.constant.HubunganKeluarga.ANAK;
|
||||
import static com.jasamedika.medifirst2000.etl.pasien.constant.JenisAlamat.DOMISILI;
|
||||
import static com.jasamedika.medifirst2000.etl.pasien.constant.JenisAlamat.IDENTITAS;
|
||||
import static com.jasamedika.medifirst2000.etl.pasien.constant.JenisIdentitas.KTP;
|
||||
@ -77,7 +78,7 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService {
|
||||
List<Map<String, Object>> listCaraMeninggal = pasienDaftarDao.findPenyebabKematianByPasienIdIn(listIdPasien);
|
||||
List<Alamat> listAlamat = alamatDao.findByPasienIdIn(listIdPasien);
|
||||
List<DokumenVedika> listDokumenVedika = dokumenVedikaDao.findByPasienNoMrIn(listNoCmPasien);
|
||||
List<Map<String, Object>> listAnak = pasienDao.findIdByNoCmOfIbu(new HashSet<>(listIdPasien));
|
||||
List<Pasien> listPasienAnak = pasienDao.findAnakByNoCmOfIbu(listNoCmPasien);
|
||||
List<AsuransiPasien> listAsuransi = asuransiPasienDao.findByPasienIdIn(listIdPasien);
|
||||
List<PasienDto> dtoList = new ArrayList<>();
|
||||
listPasien.forEach(pasien -> {
|
||||
@ -174,9 +175,9 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService {
|
||||
dtoBuilder.berkas(setBerkas(listDokumenVedika));
|
||||
}
|
||||
{
|
||||
List<Map<String, Object>> anakPasien = listAnak.stream()
|
||||
.filter(anak -> pasien.getId().equals(anak.get("idIbu"))).collect(Collectors.toList());
|
||||
dtoBuilder.keluarga(setAnak(anakPasien));
|
||||
List<Pasien> pasienAnak = listPasienAnak.stream()
|
||||
.filter(anak -> pasien.getNoCm().equals(anak.getReportDisplay())).collect(Collectors.toList());
|
||||
dtoBuilder.keluarga(setAnak(pasienAnak));
|
||||
}
|
||||
{
|
||||
List<AsuransiPasien> asuransiPasien = listAsuransi.stream()
|
||||
@ -198,7 +199,6 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService {
|
||||
if (alamat.getRtrw().split(" ")[2].equals("RW"))
|
||||
dtoBuilder.rw(Integer.parseInt(alamat.getRtrw().split(" ")[3]));
|
||||
dtoBuilder.kodePos(Integer.valueOf(alamat.getKodePos()));
|
||||
dtoList.add(dtoBuilder.build());
|
||||
{
|
||||
if (Master.JenisAlamat.IDENTITAS.equals(alamat.getJenisAlamatId()))
|
||||
dtoBuilder.jenisAlamat(JenisAlamatDto.builder().id(IDENTITAS.id()).build());
|
||||
@ -208,6 +208,7 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService {
|
||||
dtoBuilder.kelurahanDesa(
|
||||
KelurahanDesaDto.builder().id(alamat.getDesaKelurahan().getMigrasiKelurahanDesaId()).build());
|
||||
dtoBuilder.negara(NegaraDto.builder().id(alamat.getNegaraId().longValue()).build());
|
||||
dtoList.add(dtoBuilder.build());
|
||||
});
|
||||
return dtoList;
|
||||
}
|
||||
@ -219,17 +220,34 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService {
|
||||
dtoBuilder.judulBerkas(dokumenVedika.getNamaFile());
|
||||
dtoBuilder.lokasiBerkas(dokumenVedika.getUrl());
|
||||
dtoBuilder.jenisBerkas(JenisBerkasDto.builder().id(dokumenVedika.getJenisBerkasId().longValue()).build());
|
||||
dtoList.add(dtoBuilder.build());
|
||||
});
|
||||
return dtoList;
|
||||
}
|
||||
|
||||
private Set<KeluargaDto> setAnak(List<Map<String, Object>> listAnakPasien) {
|
||||
// TODO: Set ekstraksi dan transformasi anak pasien
|
||||
return new HashSet<>();
|
||||
private Set<KeluargaDto> setAnak(List<Pasien> listPasienAnak) {
|
||||
Set<KeluargaDto> dtoList = new HashSet<>();
|
||||
listPasienAnak.forEach(anak -> {
|
||||
KeluargaDto.KeluargaDtoBuilder dtoBuilder = KeluargaDto.builder();
|
||||
dtoBuilder.namaLengkap(anak.getNamaPasien());
|
||||
dtoBuilder.namaPanggilan(anak.getNamaDepan());
|
||||
dtoBuilder.surel(anak.getEmail());
|
||||
if (NumberUtils.isParsable(anak.getNoHp()) && anak.getNoHp().charAt(0) == '0')
|
||||
dtoBuilder.noGawai(Integer.parseInt("62" + anak.getNoHp()));
|
||||
dtoBuilder.hubunganKeluarga(HubunganKeluargaDto.builder().id(ANAK.id()).build());
|
||||
dtoList.add(dtoBuilder.build());
|
||||
});
|
||||
return dtoList;
|
||||
}
|
||||
|
||||
private Set<JaminanDto> setJaminan(List<AsuransiPasien> listAsuransiPasien) {
|
||||
// TODO: Set ekstraksi dan transformasi asuransi pasien
|
||||
Set<JaminanDto> dtoList = new HashSet<>();
|
||||
listAsuransiPasien.forEach(asuransi -> {
|
||||
JaminanDto.JaminanDtoBuilder dtoBuilder = JaminanDto.builder();
|
||||
dtoBuilder.nomorKartu(asuransi.getNoAsuransi());
|
||||
dtoBuilder.asuransi(AsuransiDto.builder().asuransi(asuransi.getRekanan().getNamaRekanan())
|
||||
.surel(asuransi.getRekanan().getEmail()).build());
|
||||
});
|
||||
return new HashSet<>();
|
||||
}
|
||||
}
|
||||
|
||||
@ -1636,7 +1636,7 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel
|
||||
.findPasienPaketDiRanapByDokter(drKsmObgyn, allProdukEntriId);
|
||||
Set<Integer> setIdIbu = ibuPaketDiRanapByDokter.stream()
|
||||
.map(pasien -> Integer.parseInt(pasien.get("pasienId").toString())).collect(Collectors.toSet());
|
||||
List<Map<String, Object>> ibuAnak = pasienDao.findIdByNoCmOfIbu(setIdIbu);
|
||||
List<Map<String, Object>> ibuAnak = pasienDao.findIdByIdOfIbu(setIdIbu);
|
||||
listData.forEach(d -> {
|
||||
List<Integer> listIdAnak = ibuAnak.stream().filter(bn -> Integer
|
||||
.parseInt(d.get("pasienId").toString()) == Integer.parseInt(bn.get("idIbu").toString())
|
||||
|
||||
@ -14,14 +14,12 @@ import java.util.UUID;
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class KeluargaDto {
|
||||
private UUID id;
|
||||
private HubunganKeluargaDto hubunganKeluarga;
|
||||
private String gelarDepan;
|
||||
private String namaLengkap;
|
||||
private String namaPanggilan;
|
||||
private String gelarBelakang;
|
||||
private String surel;
|
||||
private String kodeNegaraGawai;
|
||||
private Integer noGawai;
|
||||
private PasienDto pasien;
|
||||
private UUID id;
|
||||
private HubunganKeluargaDto hubunganKeluarga;
|
||||
private String gelarDepan;
|
||||
private String namaLengkap;
|
||||
private String namaPanggilan;
|
||||
private String gelarBelakang;
|
||||
private String surel;
|
||||
private Integer noGawai;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user