Update service migrasi pasien
Pembuatan subrutin asuransi pasien dan api ekstrasi dan transformasi
This commit is contained in:
parent
4613fe9cb1
commit
f58a1dcade
@ -1,15 +1,17 @@
|
||||
package com.jasamedika.medifirst2000.controller;
|
||||
|
||||
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
|
||||
import static org.springframework.web.bind.annotation.RequestMethod.GET;
|
||||
|
||||
import com.jasamedika.medifirst2000.etl.pasien.dto.PasienDto;
|
||||
import com.jasamedika.medifirst2000.service.MigrasiPasienService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import com.jasamedika.medifirst2000.service.MigrasiPasienService;
|
||||
import java.util.List;
|
||||
|
||||
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
|
||||
import static org.springframework.web.bind.annotation.RequestMethod.GET;
|
||||
|
||||
/**
|
||||
* @author Salman
|
||||
@ -19,6 +21,7 @@ import com.jasamedika.medifirst2000.service.MigrasiPasienService;
|
||||
@RestController
|
||||
@RequestMapping("/migrasi/pasien")
|
||||
public class MigrasiPasienController {
|
||||
|
||||
@Autowired
|
||||
private MigrasiPasienService migrasiPasienService;
|
||||
|
||||
@ -27,4 +30,10 @@ public class MigrasiPasienController {
|
||||
migrasiPasienService.init();
|
||||
return new ResponseEntity<>(null, HttpStatus.OK);
|
||||
}
|
||||
|
||||
@RequestMapping(value = "/extraction/transformation", method = GET, produces = APPLICATION_JSON_VALUE)
|
||||
public ResponseEntity<Object> extractAndTransform() {
|
||||
List<PasienDto> dto = migrasiPasienService.extractAndTransform();
|
||||
return new ResponseEntity<>(dto, HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@ -4,6 +4,8 @@ import com.jasamedika.medifirst2000.entities.MigrasiPasien;
|
||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||
import com.jasamedika.medifirst2000.etl.pasien.constant.StatusMigrasi;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.data.repository.query.Param;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@ -13,5 +15,6 @@ import java.util.List;
|
||||
* @since 06/11/2023
|
||||
*/
|
||||
public interface MigrasiPasienDao extends JpaRepository<MigrasiPasien, String> {
|
||||
List<Pasien> findPasienByStatusMigrasiIn(List<StatusMigrasi> statusMigrasiList);
|
||||
@Query("select mp.pasien from MigrasiPasien mp where mp.statusMigrasi in (:listStatusMigrasi)")
|
||||
List<Pasien> findPasienByStatusMigrasiIn(@Param("listStatusMigrasi") List<StatusMigrasi> statusMigrasiList);
|
||||
}
|
||||
|
||||
@ -12,5 +12,5 @@ import java.util.List;
|
||||
public interface MigrasiPasienService {
|
||||
void init();
|
||||
|
||||
List<PasienDto> sendToNewDb();
|
||||
List<PasienDto> extractAndTransform();
|
||||
}
|
||||
|
||||
@ -6,7 +6,8 @@ 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;
|
||||
import org.apache.commons.lang3.math.NumberUtils;
|
||||
import com.jasamedika.medifirst2000.util.CommonUtil;
|
||||
import org.apache.commons.lang.math.NumberUtils;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
@ -70,7 +71,7 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PasienDto> sendToNewDb() {
|
||||
public List<PasienDto> extractAndTransform() {
|
||||
List<StatusMigrasi> statusMigrasiList = new ArrayList<>(Arrays.asList(BELUM_KIRIM, PEMBAHARUAN));
|
||||
List<Pasien> listPasien = migrasiPasienDao.findPasienByStatusMigrasiIn(statusMigrasiList);
|
||||
List<Integer> listIdPasien = listPasien.stream().map(Pasien::getId).collect(Collectors.toList());
|
||||
@ -87,35 +88,47 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService {
|
||||
dtoBuilder.namaLengkap(pasien.getNamaPasien());
|
||||
dtoBuilder.namaPanggilan(pasien.getNamaDepan());
|
||||
dtoBuilder.tempatLahir(pasien.getTempatLahir());
|
||||
dtoBuilder.tanggalLahir(pasien.getTglLahir().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
|
||||
if (CommonUtil.isNotNullOrEmpty(pasien.getTglLahir()))
|
||||
dtoBuilder.tanggalLahir(
|
||||
pasien.getTglLahir().toInstant().atZone(ZoneId.systemDefault()).toLocalDateTime());
|
||||
dtoBuilder.surel(pasien.getEmail());
|
||||
dtoBuilder.sapaan(SapaanDto.builder().id(pasien.getTitlePasienId().longValue()).build());
|
||||
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())));
|
||||
dtoBuilder.jenisKelamin(JenisKelaminDto.builder().id(pasien.getJenisKelaminId().longValue()).build());
|
||||
dtoBuilder.golonganDarah(GolonganDarahDto.builder().id(pasien.getGolonganDarahId().longValue()).build());
|
||||
if (CommonUtil.isNotNullOrEmpty(pasien.getJenisKelaminId()))
|
||||
dtoBuilder.jenisKelamin(JenisKelaminDto.builder().id(pasien.getJenisKelaminId().longValue()).build());
|
||||
if (CommonUtil.isNotNullOrEmpty(pasien.getGolonganDarahId()))
|
||||
dtoBuilder
|
||||
.golonganDarah(GolonganDarahDto.builder().id(pasien.getGolonganDarahId().longValue()).build());
|
||||
listCaraMeninggal.stream().filter(c -> pasien.getId().equals(c.get("idPasien"))).findFirst()
|
||||
.ifPresent(c -> {
|
||||
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(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());
|
||||
}
|
||||
});
|
||||
dtoBuilder.kewarganegaraan(KewarganegaraanDto.builder().id(pasien.getKebangsaanId().longValue()).build());
|
||||
dtoBuilder.negara(NegaraDto.builder().id(pasien.getNegaraId().longValue()).build());
|
||||
dtoBuilder.agama(AgamaDto.builder().id(pasien.getAgamaId().longValue()).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());
|
||||
@ -143,10 +156,10 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService {
|
||||
}
|
||||
{
|
||||
Set<GawaiDto> gawaiDto = new HashSet<>();
|
||||
if (NumberUtils.isParsable(pasien.getNoTelepon()) && pasien.getNoTelepon().charAt(0) == '0')
|
||||
gawaiDto.add(GawaiDto.builder().noGawai(Integer.parseInt("62" + pasien.getNoTelepon())).build());
|
||||
if (NumberUtils.isParsable(pasien.getNoHp()) && pasien.getNoHp().charAt(0) == '0')
|
||||
gawaiDto.add(GawaiDto.builder().noGawai(Integer.parseInt("62" + pasien.getNoHp())).build());
|
||||
if (NumberUtils.isNumber(pasien.getNoTelepon()) && pasien.getNoTelepon().charAt(0) == '0')
|
||||
gawaiDto.add(GawaiDto.builder().noGawai(Long.parseLong("62" + pasien.getNoTelepon())).build());
|
||||
if (NumberUtils.isNumber(pasien.getNoHp()) && pasien.getNoHp().charAt(0) == '0')
|
||||
gawaiDto.add(GawaiDto.builder().noGawai(Long.parseLong("62" + pasien.getNoHp())).build());
|
||||
dtoBuilder.gawai(gawaiDto);
|
||||
}
|
||||
{
|
||||
@ -194,20 +207,26 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService {
|
||||
listAlamat.forEach(alamat -> {
|
||||
AlamatDto.AlamatDtoBuilder dtoBuilder = AlamatDto.builder();
|
||||
dtoBuilder.alamat(alamat.getAlamatLengkap());
|
||||
if (alamat.getRtrw().split(" ")[0].equals("RT"))
|
||||
dtoBuilder.rt(Integer.parseInt(alamat.getRtrw().split(" ")[1]));
|
||||
if (alamat.getRtrw().split(" ")[2].equals("RW"))
|
||||
dtoBuilder.rw(Integer.parseInt(alamat.getRtrw().split(" ")[3]));
|
||||
dtoBuilder.kodePos(Integer.valueOf(alamat.getKodePos()));
|
||||
if (CommonUtil.isNotNullOrEmpty(alamat.getRtrw())) {
|
||||
if (alamat.getRtrw().split(" ")[0].equals("RT"))
|
||||
dtoBuilder.rt(Integer.parseInt(alamat.getRtrw().split(" ")[1]));
|
||||
if (alamat.getRtrw().split(" ")[2].equals("RW"))
|
||||
dtoBuilder.rw(Integer.parseInt(alamat.getRtrw().split(" ")[3]));
|
||||
}
|
||||
if (NumberUtils.isNumber(alamat.getKodePos()))
|
||||
dtoBuilder.kodePos(Integer.valueOf(alamat.getKodePos()));
|
||||
{
|
||||
if (Master.JenisAlamat.IDENTITAS.equals(alamat.getJenisAlamatId()))
|
||||
dtoBuilder.jenisAlamat(JenisAlamatDto.builder().id(IDENTITAS.id()).build());
|
||||
if (Master.JenisAlamat.DOMISILI.equals(alamat.getJenisAlamatId()))
|
||||
dtoBuilder.jenisAlamat(JenisAlamatDto.builder().id(DOMISILI.id()).build());
|
||||
}
|
||||
dtoBuilder.kelurahanDesa(
|
||||
KelurahanDesaDto.builder().id(alamat.getDesaKelurahan().getMigrasiKelurahanDesaId()).build());
|
||||
dtoBuilder.negara(NegaraDto.builder().id(alamat.getNegaraId().longValue()).build());
|
||||
if (CommonUtil.isNotNullOrEmpty(alamat.getDesaKelurahan())
|
||||
&& CommonUtil.isNotNullOrEmpty(alamat.getDesaKelurahan().getMigrasiKelurahanDesaId()))
|
||||
dtoBuilder.kelurahanDesa(
|
||||
KelurahanDesaDto.builder().id(alamat.getDesaKelurahan().getMigrasiKelurahanDesaId()).build());
|
||||
if (CommonUtil.isNotNullOrEmpty(alamat.getNegaraId()))
|
||||
dtoBuilder.negara(NegaraDto.builder().id(alamat.getNegaraId().longValue()).build());
|
||||
dtoList.add(dtoBuilder.build());
|
||||
});
|
||||
return dtoList;
|
||||
@ -219,7 +238,9 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService {
|
||||
BerkasDto.BerkasDtoBuilder dtoBuilder = BerkasDto.builder();
|
||||
dtoBuilder.judulBerkas(dokumenVedika.getNamaFile());
|
||||
dtoBuilder.lokasiBerkas(dokumenVedika.getUrl());
|
||||
dtoBuilder.jenisBerkas(JenisBerkasDto.builder().id(dokumenVedika.getJenisBerkasId().longValue()).build());
|
||||
if (CommonUtil.isNotNullOrEmpty(dokumenVedika.getJenisBerkasId()))
|
||||
dtoBuilder
|
||||
.jenisBerkas(JenisBerkasDto.builder().id(dokumenVedika.getJenisBerkasId().longValue()).build());
|
||||
dtoList.add(dtoBuilder.build());
|
||||
});
|
||||
return dtoList;
|
||||
@ -232,8 +253,8 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService {
|
||||
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()));
|
||||
if (NumberUtils.isNumber(anak.getNoHp()) && anak.getNoHp().charAt(0) == '0')
|
||||
dtoBuilder.noGawai(Long.parseLong("62" + anak.getNoHp()));
|
||||
dtoBuilder.hubunganKeluarga(HubunganKeluargaDto.builder().id(ANAK.id()).build());
|
||||
dtoList.add(dtoBuilder.build());
|
||||
});
|
||||
@ -245,9 +266,10 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService {
|
||||
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());
|
||||
if (CommonUtil.isNotNullOrEmpty(asuransi.getRekanan()))
|
||||
dtoBuilder.asuransi(AsuransiDto.builder().asuransi(asuransi.getRekanan().getNamaRekanan()).build());
|
||||
dtoList.add(dtoBuilder.build());
|
||||
});
|
||||
return new HashSet<>();
|
||||
return dtoList;
|
||||
}
|
||||
}
|
||||
|
||||
@ -46,7 +46,7 @@ public class AsuransiPasien extends BaseMaster {
|
||||
|
||||
@Caption(value = "Kode Institusi Asal")
|
||||
@Column(name = "KdInstitusiAsal")
|
||||
private short kdInstitusiAsal;
|
||||
private Integer kdInstitusiAsal;
|
||||
|
||||
@ManyToOne(fetch = LAZY)
|
||||
@JoinColumn(name = "ObjectJenisKelaminFk")
|
||||
@ -66,7 +66,7 @@ public class AsuransiPasien extends BaseMaster {
|
||||
|
||||
@Caption(value = "Kode Last Unit Bagian")
|
||||
@Column(name = "KdLastUnitBagian")
|
||||
private short kdLastUnitBagian;
|
||||
private Integer kdLastUnitBagian;
|
||||
|
||||
@ManyToOne(fetch = LAZY)
|
||||
@JoinColumn(name = "ObjectPegawaiFk")
|
||||
|
||||
@ -17,6 +17,6 @@ import java.util.UUID;
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class GawaiDto {
|
||||
private UUID id;
|
||||
private Integer noGawai;
|
||||
private UUID id;
|
||||
private Long noGawai;
|
||||
}
|
||||
|
||||
@ -21,5 +21,5 @@ public class KeluargaDto {
|
||||
private String namaPanggilan;
|
||||
private String gelarBelakang;
|
||||
private String surel;
|
||||
private Integer noGawai;
|
||||
private Long noGawai;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user