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 20e826cc..a22e99a6 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 @@ -71,139 +71,148 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService { @Override public List extractAndTransform() { + List dtoList = new ArrayList<>(); SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ"); 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 listPasienAnak = pasienDao.findAnakByNoCmOfIbu(listNoCmPasien); - List listAsuransi = asuransiPasienDao.findByPasienIdIn(listIdPasien); - List dtoList = new ArrayList<>(); - listPasien.forEach(pasien -> { - PasienDto.PasienDtoBuilder dtoBuilder = PasienDto.builder(); - dtoBuilder.status("AKTIF"); - dtoBuilder.noRekamMedis(pasien.getNoCm()); - dtoBuilder.namaLengkap(pasien.getNamaPasien()); - dtoBuilder.namaPanggilan(CommonUtil.isNotNullOrEmpty(pasien.getNamaDepan()) ? pasien.getNamaDepan() - : pasien.getNamaPasien().split(" ")[0]); - dtoBuilder.tempatLahir(pasien.getTempatLahir()); - dtoBuilder.caraRegistrasi("INTERNAL"); - if (CommonUtil.isNotNullOrEmpty(pasien.getTglLahir())) - dtoBuilder.tanggalLahir(dateFormat.format(pasien.getTglLahir())); - dtoBuilder.surel(pasien.getEmail()); - if (CommonUtil.isNotNullOrEmpty(pasien.getTitlePasienId())) - dtoBuilder.sapaan(SapaanDto.builder().id(pasien.getTitlePasienId().longValue()).build()); - dtoBuilder.identitas(new HashSet<>(Collections.singletonList( - IdentitasDto.builder().jenisIdentitas(JenisIdentitasDto.builder().id(KTP.id()).build()) - .noIdentitas(pasien.getNoIdentitas()).build()))); - if (CommonUtil.isNotNullOrEmpty(pasien.getJenisKelaminId())) - dtoBuilder.jenisKelamin(JenisKelaminDto.builder().id(pasien.getJenisKelaminId().longValue()).build()); - if (CommonUtil.isNotNullOrEmpty(pasien.getGolonganDarahId()) && pasien.getGolonganDarahId() != 0) - dtoBuilder - .golonganDarah(GolonganDarahDto.builder().id(pasien.getGolonganDarahId().longValue()).build()); - listCaraMeninggal.stream().filter(c -> pasien.getId().equals(c.get("idPasien"))).findFirst() - .ifPresent(c -> { - if (CommonUtil.isNotNullOrEmpty(c.get("idPenyebabKematian"))) { - if (Master.CaraMeninggal.BAWAH_DAN_48_JAM.equals(c.get("idPenyebabKematian"))) - dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(BAWAH_DAN_48_JAM.id()).build()); - if (Master.CaraMeninggal.ATAS_48_JAM.equals(c.get("idPenyebabKematian"))) - dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(ATAS_48_JAM.id()).build()); - if (Master.CaraMeninggal.BAWAH_DAN_8_JAM.equals(c.get("idPenyebabKematian"))) - dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(BAWAH_DAN_8_JAM.id()).build()); - if (Master.CaraMeninggal.ATAS_8_JAM.equals(c.get("idPenyebabKematian"))) - dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(ATAS_8_JAM.id()).build()); - if (Master.CaraMeninggal.DOA.equals(c.get("idPenyebabKematian"))) - dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(DOA.id()).build()); - if (Master.CaraMeninggal.BLUECODE.equals(c.get("idPenyebabKematian"))) - dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(BLUECODE.id()).build()); - if (Arrays.asList(Master.CaraMeninggal.LAHIR) - .contains(Integer.parseInt(c.get("idPenyebabKematian").toString()))) - dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(LAHIR.id()).build()); - } - }); - if (CommonUtil.isNotNullOrEmpty(pasien.getKebangsaanId())) - dtoBuilder - .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.getAgamaId())) - dtoBuilder.agama(AgamaDto.builder().id(pasien.getAgamaId().longValue()).build()); - { - if (Master.Pendidikan.TIDAK_SEKOLAH.equals(pasien.getPendidikanId())) - dtoBuilder.pendidikan(PendidikanDto.builder().id(TIDAK_SEKOLAH.id()).build()); - if (Master.Pendidikan.SD.equals(pasien.getPendidikanId())) - dtoBuilder.pendidikan(PendidikanDto.builder().id(SD.id()).build()); - if (Master.Pendidikan.SLTP_SEDERAJAT.equals(pasien.getPendidikanId())) - dtoBuilder.pendidikan(PendidikanDto.builder().id(SLTP_SEDERAJAT.id()).build()); - if (Master.Pendidikan.SLTA_SEDERAJAT.equals(pasien.getPendidikanId())) - dtoBuilder.pendidikan(PendidikanDto.builder().id(SLTA_SEDERAJAT.id()).build()); - if (Arrays.asList(Master.Pendidikan.D1_SAMPAI_D3_SEDERAJAT).contains(pasien.getPendidikanId())) - dtoBuilder.pendidikan(PendidikanDto.builder().id(D1_SAMPAI_D3_SEDERAJAT.id()).build()); - if (Master.Pendidikan.D4.equals(pasien.getPendidikanId())) - dtoBuilder.pendidikan(PendidikanDto.builder().id(D4.id()).build()); - if (Master.Pendidikan.S1.equals(pasien.getPendidikanId())) - dtoBuilder.pendidikan(PendidikanDto.builder().id(S1.id()).build()); - if (Master.Pendidikan.S2.equals(pasien.getPendidikanId())) - dtoBuilder.pendidikan(PendidikanDto.builder().id(S2.id()).build()); - if (Master.Pendidikan.S3.equals(pasien.getPendidikanId())) - dtoBuilder.pendidikan(PendidikanDto.builder().id(S3.id()).build()); - } - { - List alamatPasien = listAlamat.stream() - .filter(alamat -> pasien.getId().equals(alamat.getPasienId())).collect(Collectors.toList()); - dtoBuilder.alamat(setAlamat(alamatPasien)); - } - { - Set 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()); + if (CommonUtil.isNotNullOrEmpty(listPasien)) { + 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 listPasienAnak = pasienDao.findAnakByNoCmOfIbu(listNoCmPasien); + List listAsuransi = asuransiPasienDao.findByPasienIdIn(listIdPasien); + listPasien.forEach(pasien -> { + PasienDto.PasienDtoBuilder dtoBuilder = PasienDto.builder(); + dtoBuilder.status("AKTIF"); + dtoBuilder.noRekamMedis(pasien.getNoCm()); + dtoBuilder.namaLengkap(pasien.getNamaPasien()); + dtoBuilder.namaPanggilan(CommonUtil.isNotNullOrEmpty(pasien.getNamaDepan()) ? pasien.getNamaDepan() + : pasien.getNamaPasien().split(" ")[0]); + dtoBuilder.tempatLahir(pasien.getTempatLahir()); + dtoBuilder.caraRegistrasi("INTERNAL"); + if (CommonUtil.isNotNullOrEmpty(pasien.getTglLahir())) + dtoBuilder.tanggalLahir(dateFormat.format(pasien.getTglLahir())); + dtoBuilder.surel(pasien.getEmail()); + if (CommonUtil.isNotNullOrEmpty(pasien.getTitlePasienId())) + dtoBuilder.sapaan(SapaanDto.builder().id(pasien.getTitlePasienId().longValue()).build()); + dtoBuilder.identitas(new HashSet<>(Collections.singletonList( + IdentitasDto.builder().jenisIdentitas(JenisIdentitasDto.builder().id(KTP.id()).build()) + .noIdentitas(pasien.getNoIdentitas()).build()))); + if (CommonUtil.isNotNullOrEmpty(pasien.getJenisKelaminId())) + dtoBuilder + .jenisKelamin(JenisKelaminDto.builder().id(pasien.getJenisKelaminId().longValue()).build()); + if (CommonUtil.isNotNullOrEmpty(pasien.getGolonganDarahId()) && pasien.getGolonganDarahId() != 0) + dtoBuilder.golonganDarah( + GolonganDarahDto.builder().id(pasien.getGolonganDarahId().longValue()).build()); + listCaraMeninggal.stream().filter(c -> pasien.getId().equals(c.get("idPasien"))).findFirst() + .ifPresent(c -> { + if (CommonUtil.isNotNullOrEmpty(c.get("idPenyebabKematian"))) { + if (Master.CaraMeninggal.BAWAH_DAN_48_JAM.equals(c.get("idPenyebabKematian"))) + dtoBuilder.caraMeninggal( + CaraMeninggalDto.builder().id(BAWAH_DAN_48_JAM.id()).build()); + if (Master.CaraMeninggal.ATAS_48_JAM.equals(c.get("idPenyebabKematian"))) + dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(ATAS_48_JAM.id()).build()); + if (Master.CaraMeninggal.BAWAH_DAN_8_JAM.equals(c.get("idPenyebabKematian"))) + dtoBuilder + .caraMeninggal(CaraMeninggalDto.builder().id(BAWAH_DAN_8_JAM.id()).build()); + if (Master.CaraMeninggal.ATAS_8_JAM.equals(c.get("idPenyebabKematian"))) + dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(ATAS_8_JAM.id()).build()); + if (Master.CaraMeninggal.DOA.equals(c.get("idPenyebabKematian"))) + dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(DOA.id()).build()); + if (Master.CaraMeninggal.BLUECODE.equals(c.get("idPenyebabKematian"))) + dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(BLUECODE.id()).build()); + if (Arrays.asList(Master.CaraMeninggal.LAHIR) + .contains(Integer.parseInt(c.get("idPenyebabKematian").toString()))) + dtoBuilder.caraMeninggal(CaraMeninggalDto.builder().id(LAHIR.id()).build()); + } + }); + if (CommonUtil.isNotNullOrEmpty(pasien.getKebangsaanId())) + dtoBuilder.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.getAgamaId())) + dtoBuilder.agama(AgamaDto.builder().id(pasien.getAgamaId().longValue()).build()); + { + if (Master.Pendidikan.TIDAK_SEKOLAH.equals(pasien.getPendidikanId())) + dtoBuilder.pendidikan(PendidikanDto.builder().id(TIDAK_SEKOLAH.id()).build()); + if (Master.Pendidikan.SD.equals(pasien.getPendidikanId())) + dtoBuilder.pendidikan(PendidikanDto.builder().id(SD.id()).build()); + if (Master.Pendidikan.SLTP_SEDERAJAT.equals(pasien.getPendidikanId())) + dtoBuilder.pendidikan(PendidikanDto.builder().id(SLTP_SEDERAJAT.id()).build()); + if (Master.Pendidikan.SLTA_SEDERAJAT.equals(pasien.getPendidikanId())) + dtoBuilder.pendidikan(PendidikanDto.builder().id(SLTA_SEDERAJAT.id()).build()); + if (Arrays.asList(Master.Pendidikan.D1_SAMPAI_D3_SEDERAJAT).contains(pasien.getPendidikanId())) + dtoBuilder.pendidikan(PendidikanDto.builder().id(D1_SAMPAI_D3_SEDERAJAT.id()).build()); + if (Master.Pendidikan.D4.equals(pasien.getPendidikanId())) + dtoBuilder.pendidikan(PendidikanDto.builder().id(D4.id()).build()); + if (Master.Pendidikan.S1.equals(pasien.getPendidikanId())) + dtoBuilder.pendidikan(PendidikanDto.builder().id(S1.id()).build()); + if (Master.Pendidikan.S2.equals(pasien.getPendidikanId())) + dtoBuilder.pendidikan(PendidikanDto.builder().id(S2.id()).build()); + if (Master.Pendidikan.S3.equals(pasien.getPendidikanId())) + dtoBuilder.pendidikan(PendidikanDto.builder().id(S3.id()).build()); } - } - { - dtoBuilder.berkas(setBerkas(listDokumenVedika)); - } - { - List pasienAnak = listPasienAnak.stream() - .filter(anak -> pasien.getNoCm().equals(anak.getReportDisplay())).collect(Collectors.toList()); - dtoBuilder.keluarga(setAnak(pasienAnak)); - } - { - List asuransiPasien = listAsuransi.stream() - .filter(asuransi -> pasien.getId().equals(asuransi.getNoCmId())).collect(Collectors.toList()); - dtoBuilder.jaminan(setJaminan(asuransiPasien)); - } - dtoList.add(dtoBuilder.build()); - }); + { + List alamatPasien = listAlamat.stream() + .filter(alamat -> pasien.getId().equals(alamat.getPasienId())).collect(Collectors.toList()); + dtoBuilder.alamat(setAlamat(alamatPasien)); + } + { + Set 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()); + } + } + { + dtoBuilder.berkas(setBerkas(listDokumenVedika)); + } + { + List pasienAnak = listPasienAnak.stream() + .filter(anak -> pasien.getNoCm().equals(anak.getReportDisplay())) + .collect(Collectors.toList()); + dtoBuilder.keluarga(setAnak(pasienAnak)); + } + { + List asuransiPasien = listAsuransi.stream() + .filter(asuransi -> pasien.getId().equals(asuransi.getNoCmId())) + .collect(Collectors.toList()); + dtoBuilder.jaminan(setJaminan(asuransiPasien)); + } + dtoList.add(dtoBuilder.build()); + }); + } return dtoList; }