Update MigrasiPasienServiceImpl.java

Perbaikan validasi running scheduler awal belum ada data
This commit is contained in:
Salman Manoe 2024-07-30 15:10:03 +07:00
parent 9cd36a1043
commit 16fa8ecdc9

View File

@ -71,139 +71,148 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService {
@Override @Override
public List<PasienDto> extractAndTransform() { public List<PasienDto> extractAndTransform() {
List<PasienDto> dtoList = new ArrayList<>();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ");
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()); if (CommonUtil.isNotNullOrEmpty(listPasien)) {
List<String> listNoCmPasien = listPasien.stream().map(Pasien::getNoCm).collect(Collectors.toList()); List<Integer> listIdPasien = listPasien.stream().map(Pasien::getId).collect(Collectors.toList());
List<Map<String, Object>> listCaraMeninggal = pasienDaftarDao.findPenyebabKematianByPasienIdIn(listIdPasien); List<String> listNoCmPasien = listPasien.stream().map(Pasien::getNoCm).collect(Collectors.toList());
List<Alamat> listAlamat = alamatDao.findByPasienIdIn(listIdPasien); List<Map<String, Object>> listCaraMeninggal = pasienDaftarDao
List<DokumenVedika> listDokumenVedika = dokumenVedikaDao.findByPasienNoMrIn(listNoCmPasien); .findPenyebabKematianByPasienIdIn(listIdPasien);
List<Pasien> listPasienAnak = pasienDao.findAnakByNoCmOfIbu(listNoCmPasien); List<Alamat> listAlamat = alamatDao.findByPasienIdIn(listIdPasien);
List<AsuransiPasien> listAsuransi = asuransiPasienDao.findByPasienIdIn(listIdPasien); List<DokumenVedika> listDokumenVedika = dokumenVedikaDao.findByPasienNoMrIn(listNoCmPasien);
List<PasienDto> dtoList = new ArrayList<>(); List<Pasien> listPasienAnak = pasienDao.findAnakByNoCmOfIbu(listNoCmPasien);
listPasien.forEach(pasien -> { List<AsuransiPasien> listAsuransi = asuransiPasienDao.findByPasienIdIn(listIdPasien);
PasienDto.PasienDtoBuilder dtoBuilder = PasienDto.builder(); listPasien.forEach(pasien -> {
dtoBuilder.status("AKTIF"); PasienDto.PasienDtoBuilder dtoBuilder = PasienDto.builder();
dtoBuilder.noRekamMedis(pasien.getNoCm()); dtoBuilder.status("AKTIF");
dtoBuilder.namaLengkap(pasien.getNamaPasien()); dtoBuilder.noRekamMedis(pasien.getNoCm());
dtoBuilder.namaPanggilan(CommonUtil.isNotNullOrEmpty(pasien.getNamaDepan()) ? pasien.getNamaDepan() dtoBuilder.namaLengkap(pasien.getNamaPasien());
: pasien.getNamaPasien().split(" ")[0]); dtoBuilder.namaPanggilan(CommonUtil.isNotNullOrEmpty(pasien.getNamaDepan()) ? pasien.getNamaDepan()
dtoBuilder.tempatLahir(pasien.getTempatLahir()); : pasien.getNamaPasien().split(" ")[0]);
dtoBuilder.caraRegistrasi("INTERNAL"); dtoBuilder.tempatLahir(pasien.getTempatLahir());
if (CommonUtil.isNotNullOrEmpty(pasien.getTglLahir())) dtoBuilder.caraRegistrasi("INTERNAL");
dtoBuilder.tanggalLahir(dateFormat.format(pasien.getTglLahir())); if (CommonUtil.isNotNullOrEmpty(pasien.getTglLahir()))
dtoBuilder.surel(pasien.getEmail()); dtoBuilder.tanggalLahir(dateFormat.format(pasien.getTglLahir()));
if (CommonUtil.isNotNullOrEmpty(pasien.getTitlePasienId())) dtoBuilder.surel(pasien.getEmail());
dtoBuilder.sapaan(SapaanDto.builder().id(pasien.getTitlePasienId().longValue()).build()); if (CommonUtil.isNotNullOrEmpty(pasien.getTitlePasienId()))
dtoBuilder.identitas(new HashSet<>(Collections.singletonList( dtoBuilder.sapaan(SapaanDto.builder().id(pasien.getTitlePasienId().longValue()).build());
IdentitasDto.builder().jenisIdentitas(JenisIdentitasDto.builder().id(KTP.id()).build()) dtoBuilder.identitas(new HashSet<>(Collections.singletonList(
.noIdentitas(pasien.getNoIdentitas()).build()))); IdentitasDto.builder().jenisIdentitas(JenisIdentitasDto.builder().id(KTP.id()).build())
if (CommonUtil.isNotNullOrEmpty(pasien.getJenisKelaminId())) .noIdentitas(pasien.getNoIdentitas()).build())));
dtoBuilder.jenisKelamin(JenisKelaminDto.builder().id(pasien.getJenisKelaminId().longValue()).build()); if (CommonUtil.isNotNullOrEmpty(pasien.getJenisKelaminId()))
if (CommonUtil.isNotNullOrEmpty(pasien.getGolonganDarahId()) && pasien.getGolonganDarahId() != 0) dtoBuilder
dtoBuilder .jenisKelamin(JenisKelaminDto.builder().id(pasien.getJenisKelaminId().longValue()).build());
.golonganDarah(GolonganDarahDto.builder().id(pasien.getGolonganDarahId().longValue()).build()); if (CommonUtil.isNotNullOrEmpty(pasien.getGolonganDarahId()) && pasien.getGolonganDarahId() != 0)
listCaraMeninggal.stream().filter(c -> pasien.getId().equals(c.get("idPasien"))).findFirst() dtoBuilder.golonganDarah(
.ifPresent(c -> { GolonganDarahDto.builder().id(pasien.getGolonganDarahId().longValue()).build());
if (CommonUtil.isNotNullOrEmpty(c.get("idPenyebabKematian"))) { listCaraMeninggal.stream().filter(c -> pasien.getId().equals(c.get("idPasien"))).findFirst()
if (Master.CaraMeninggal.BAWAH_DAN_48_JAM.equals(c.get("idPenyebabKematian"))) .ifPresent(c -> {
dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(BAWAH_DAN_48_JAM.id()).build()); if (CommonUtil.isNotNullOrEmpty(c.get("idPenyebabKematian"))) {
if (Master.CaraMeninggal.ATAS_48_JAM.equals(c.get("idPenyebabKematian"))) if (Master.CaraMeninggal.BAWAH_DAN_48_JAM.equals(c.get("idPenyebabKematian")))
dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(ATAS_48_JAM.id()).build()); dtoBuilder.caraMeninggal(
if (Master.CaraMeninggal.BAWAH_DAN_8_JAM.equals(c.get("idPenyebabKematian"))) CaraMeninggalDto.builder().id(BAWAH_DAN_48_JAM.id()).build());
dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(BAWAH_DAN_8_JAM.id()).build()); if (Master.CaraMeninggal.ATAS_48_JAM.equals(c.get("idPenyebabKematian")))
if (Master.CaraMeninggal.ATAS_8_JAM.equals(c.get("idPenyebabKematian"))) dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(ATAS_48_JAM.id()).build());
dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(ATAS_8_JAM.id()).build()); if (Master.CaraMeninggal.BAWAH_DAN_8_JAM.equals(c.get("idPenyebabKematian")))
if (Master.CaraMeninggal.DOA.equals(c.get("idPenyebabKematian"))) dtoBuilder
dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(DOA.id()).build()); .caraMeninggal(CaraMeninggalDto.builder().id(BAWAH_DAN_8_JAM.id()).build());
if (Master.CaraMeninggal.BLUECODE.equals(c.get("idPenyebabKematian"))) if (Master.CaraMeninggal.ATAS_8_JAM.equals(c.get("idPenyebabKematian")))
dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(BLUECODE.id()).build()); dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(ATAS_8_JAM.id()).build());
if (Arrays.asList(Master.CaraMeninggal.LAHIR) if (Master.CaraMeninggal.DOA.equals(c.get("idPenyebabKematian")))
.contains(Integer.parseInt(c.get("idPenyebabKematian").toString()))) dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(DOA.id()).build());
dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(LAHIR.id()).build()); if (Master.CaraMeninggal.BLUECODE.equals(c.get("idPenyebabKematian")))
} dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(BLUECODE.id()).build());
}); if (Arrays.asList(Master.CaraMeninggal.LAHIR)
if (CommonUtil.isNotNullOrEmpty(pasien.getKebangsaanId())) .contains(Integer.parseInt(c.get("idPenyebabKematian").toString())))
dtoBuilder dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(LAHIR.id()).build());
.kewarganegaraan(KewarganegaraanDto.builder().id(pasien.getKebangsaanId().longValue()).build()); }
if (CommonUtil.isNotNullOrEmpty(pasien.getNegaraId())) });
dtoBuilder.negara(NegaraDto.builder().id(pasien.getNegaraId().longValue()).build()); if (CommonUtil.isNotNullOrEmpty(pasien.getKebangsaanId()))
if (CommonUtil.isNotNullOrEmpty(pasien.getAgamaId())) dtoBuilder.kewarganegaraan(
dtoBuilder.agama(AgamaDto.builder().id(pasien.getAgamaId().longValue()).build()); KewarganegaraanDto.builder().id(pasien.getKebangsaanId().longValue()).build());
{ if (CommonUtil.isNotNullOrEmpty(pasien.getNegaraId()))
if (Master.Pendidikan.TIDAK_SEKOLAH.equals(pasien.getPendidikanId())) dtoBuilder.negara(NegaraDto.builder().id(pasien.getNegaraId().longValue()).build());
dtoBuilder.pendidikan(PendidikanDto.builder().id(TIDAK_SEKOLAH.id()).build()); if (CommonUtil.isNotNullOrEmpty(pasien.getAgamaId()))
if (Master.Pendidikan.SD.equals(pasien.getPendidikanId())) dtoBuilder.agama(AgamaDto.builder().id(pasien.getAgamaId().longValue()).build());
dtoBuilder.pendidikan(PendidikanDto.builder().id(SD.id()).build()); {
if (Master.Pendidikan.SLTP_SEDERAJAT.equals(pasien.getPendidikanId())) if (Master.Pendidikan.TIDAK_SEKOLAH.equals(pasien.getPendidikanId()))
dtoBuilder.pendidikan(PendidikanDto.builder().id(SLTP_SEDERAJAT.id()).build()); dtoBuilder.pendidikan(PendidikanDto.builder().id(TIDAK_SEKOLAH.id()).build());
if (Master.Pendidikan.SLTA_SEDERAJAT.equals(pasien.getPendidikanId())) if (Master.Pendidikan.SD.equals(pasien.getPendidikanId()))
dtoBuilder.pendidikan(PendidikanDto.builder().id(SLTA_SEDERAJAT.id()).build()); dtoBuilder.pendidikan(PendidikanDto.builder().id(SD.id()).build());
if (Arrays.asList(Master.Pendidikan.D1_SAMPAI_D3_SEDERAJAT).contains(pasien.getPendidikanId())) if (Master.Pendidikan.SLTP_SEDERAJAT.equals(pasien.getPendidikanId()))
dtoBuilder.pendidikan(PendidikanDto.builder().id(D1_SAMPAI_D3_SEDERAJAT.id()).build()); dtoBuilder.pendidikan(PendidikanDto.builder().id(SLTP_SEDERAJAT.id()).build());
if (Master.Pendidikan.D4.equals(pasien.getPendidikanId())) if (Master.Pendidikan.SLTA_SEDERAJAT.equals(pasien.getPendidikanId()))
dtoBuilder.pendidikan(PendidikanDto.builder().id(D4.id()).build()); dtoBuilder.pendidikan(PendidikanDto.builder().id(SLTA_SEDERAJAT.id()).build());
if (Master.Pendidikan.S1.equals(pasien.getPendidikanId())) if (Arrays.asList(Master.Pendidikan.D1_SAMPAI_D3_SEDERAJAT).contains(pasien.getPendidikanId()))
dtoBuilder.pendidikan(PendidikanDto.builder().id(S1.id()).build()); dtoBuilder.pendidikan(PendidikanDto.builder().id(D1_SAMPAI_D3_SEDERAJAT.id()).build());
if (Master.Pendidikan.S2.equals(pasien.getPendidikanId())) if (Master.Pendidikan.D4.equals(pasien.getPendidikanId()))
dtoBuilder.pendidikan(PendidikanDto.builder().id(S2.id()).build()); dtoBuilder.pendidikan(PendidikanDto.builder().id(D4.id()).build());
if (Master.Pendidikan.S3.equals(pasien.getPendidikanId())) if (Master.Pendidikan.S1.equals(pasien.getPendidikanId()))
dtoBuilder.pendidikan(PendidikanDto.builder().id(S3.id()).build()); dtoBuilder.pendidikan(PendidikanDto.builder().id(S1.id()).build());
} if (Master.Pendidikan.S2.equals(pasien.getPendidikanId()))
{ dtoBuilder.pendidikan(PendidikanDto.builder().id(S2.id()).build());
List<Alamat> alamatPasien = listAlamat.stream() if (Master.Pendidikan.S3.equals(pasien.getPendidikanId()))
.filter(alamat -> pasien.getId().equals(alamat.getPasienId())).collect(Collectors.toList()); dtoBuilder.pendidikan(PendidikanDto.builder().id(S3.id()).build());
dtoBuilder.alamat(setAlamat(alamatPasien));
}
{
Set<GawaiDto> gawaiDto = new HashSet<>();
if (NumberUtils.isNumber(pasien.getNoTelepon()) && pasien.getNoTelepon().charAt(0) == '0')
gawaiDto.add(GawaiDto.builder().noGawai(Long.parseLong("62" + numbersOnly(pasien.getNoTelepon())))
.jenisGawai(JenisGawaiDto.builder().id(1L).build()).build());
if (NumberUtils.isNumber(pasien.getNoHp()) && pasien.getNoHp().charAt(0) == '0')
gawaiDto.add(GawaiDto.builder().noGawai(Long.parseLong("62" + numbersOnly(pasien.getNoHp())))
.jenisGawai(JenisGawaiDto.builder().id(2L).build()).build());
dtoBuilder.gawai(gawaiDto);
}
{
if (Master.Pekerjaan.TIDAK_BEKERJA.equals(pasien.getPekerjaanId()))
dtoBuilder.pekerjaan(PekerjaanDto.builder().id(TIDAK_BEKERJA.id()).build());
if (Master.Pekerjaan.PNS.equals(pasien.getPekerjaanId()))
dtoBuilder.pekerjaan(PekerjaanDto.builder().id(PNS.id()).build());
if (Master.Pekerjaan.TNI_ATAU_POLRI.equals(pasien.getPekerjaanId()))
dtoBuilder.pekerjaan(PekerjaanDto.builder().id(TNI_ATAU_POLRI.id()).build());
if (Master.Pekerjaan.BUMN.equals(pasien.getPekerjaanId()))
dtoBuilder.pekerjaan(PekerjaanDto.builder().id(BUMN.id()).build());
if (Arrays.asList(Master.Pekerjaan.PEGAWAI_SWASTA_ATAU_WIRAUSAHA).contains(pasien.getPekerjaanId()))
dtoBuilder.pekerjaan(PekerjaanDto.builder().id(PEGAWAI_SWASTA_ATAU_WIRAUSAHA.id()).build());
}
{
if (Master.StatusPerkawinan.KAWIN.equals(pasien.getStatusPerkawinanId())) {
dtoBuilder.statusPerkawinan(StatusPerkawinanDto.builder().id(KAWIN.id()).build());
} else if (Master.StatusPerkawinan.CERAI_HIDUP.equals(pasien.getStatusPerkawinanId())) {
dtoBuilder.statusPerkawinan(StatusPerkawinanDto.builder().id(CERAI_HIDUP.id()).build());
} else if (Master.StatusPerkawinan.CERAI_MATI.equals(pasien.getStatusPerkawinanId())) {
dtoBuilder.statusPerkawinan(StatusPerkawinanDto.builder().id(CERAI_MATI.id()).build());
} else {
dtoBuilder.statusPerkawinan(StatusPerkawinanDto.builder().id(BELUM_KAWIN.id()).build());
} }
} {
{ List<Alamat> alamatPasien = listAlamat.stream()
dtoBuilder.berkas(setBerkas(listDokumenVedika)); .filter(alamat -> pasien.getId().equals(alamat.getPasienId())).collect(Collectors.toList());
} dtoBuilder.alamat(setAlamat(alamatPasien));
{ }
List<Pasien> pasienAnak = listPasienAnak.stream() {
.filter(anak -> pasien.getNoCm().equals(anak.getReportDisplay())).collect(Collectors.toList()); Set<GawaiDto> gawaiDto = new HashSet<>();
dtoBuilder.keluarga(setAnak(pasienAnak)); if (NumberUtils.isNumber(pasien.getNoTelepon()) && pasien.getNoTelepon().charAt(0) == '0')
} gawaiDto.add(
{ GawaiDto.builder().noGawai(Long.parseLong("62" + numbersOnly(pasien.getNoTelepon())))
List<AsuransiPasien> asuransiPasien = listAsuransi.stream() .jenisGawai(JenisGawaiDto.builder().id(1L).build()).build());
.filter(asuransi -> pasien.getId().equals(asuransi.getNoCmId())).collect(Collectors.toList()); if (NumberUtils.isNumber(pasien.getNoHp()) && pasien.getNoHp().charAt(0) == '0')
dtoBuilder.jaminan(setJaminan(asuransiPasien)); gawaiDto.add(GawaiDto.builder().noGawai(Long.parseLong("62" + numbersOnly(pasien.getNoHp())))
} .jenisGawai(JenisGawaiDto.builder().id(2L).build()).build());
dtoList.add(dtoBuilder.build()); dtoBuilder.gawai(gawaiDto);
}); }
{
if (Master.Pekerjaan.TIDAK_BEKERJA.equals(pasien.getPekerjaanId()))
dtoBuilder.pekerjaan(PekerjaanDto.builder().id(TIDAK_BEKERJA.id()).build());
if (Master.Pekerjaan.PNS.equals(pasien.getPekerjaanId()))
dtoBuilder.pekerjaan(PekerjaanDto.builder().id(PNS.id()).build());
if (Master.Pekerjaan.TNI_ATAU_POLRI.equals(pasien.getPekerjaanId()))
dtoBuilder.pekerjaan(PekerjaanDto.builder().id(TNI_ATAU_POLRI.id()).build());
if (Master.Pekerjaan.BUMN.equals(pasien.getPekerjaanId()))
dtoBuilder.pekerjaan(PekerjaanDto.builder().id(BUMN.id()).build());
if (Arrays.asList(Master.Pekerjaan.PEGAWAI_SWASTA_ATAU_WIRAUSAHA).contains(pasien.getPekerjaanId()))
dtoBuilder.pekerjaan(PekerjaanDto.builder().id(PEGAWAI_SWASTA_ATAU_WIRAUSAHA.id()).build());
}
{
if (Master.StatusPerkawinan.KAWIN.equals(pasien.getStatusPerkawinanId())) {
dtoBuilder.statusPerkawinan(StatusPerkawinanDto.builder().id(KAWIN.id()).build());
} else if (Master.StatusPerkawinan.CERAI_HIDUP.equals(pasien.getStatusPerkawinanId())) {
dtoBuilder.statusPerkawinan(StatusPerkawinanDto.builder().id(CERAI_HIDUP.id()).build());
} else if (Master.StatusPerkawinan.CERAI_MATI.equals(pasien.getStatusPerkawinanId())) {
dtoBuilder.statusPerkawinan(StatusPerkawinanDto.builder().id(CERAI_MATI.id()).build());
} else {
dtoBuilder.statusPerkawinan(StatusPerkawinanDto.builder().id(BELUM_KAWIN.id()).build());
}
}
{
dtoBuilder.berkas(setBerkas(listDokumenVedika));
}
{
List<Pasien> pasienAnak = listPasienAnak.stream()
.filter(anak -> pasien.getNoCm().equals(anak.getReportDisplay()))
.collect(Collectors.toList());
dtoBuilder.keluarga(setAnak(pasienAnak));
}
{
List<AsuransiPasien> asuransiPasien = listAsuransi.stream()
.filter(asuransi -> pasien.getId().equals(asuransi.getNoCmId()))
.collect(Collectors.toList());
dtoBuilder.jaminan(setJaminan(asuransiPasien));
}
dtoList.add(dtoBuilder.build());
});
}
return dtoList; return dtoList;
} }