Create service migrasi pasien
Pembuatan fitur pencatatan status migrasi data pasien
This commit is contained in:
parent
6c4aaf892e
commit
0d80bf59a9
@ -0,0 +1,30 @@
|
|||||||
|
package com.jasamedika.medifirst2000.controller;
|
||||||
|
|
||||||
|
import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE;
|
||||||
|
import static org.springframework.web.bind.annotation.RequestMethod.GET;
|
||||||
|
|
||||||
|
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;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Salman
|
||||||
|
* @version 1.0.0
|
||||||
|
* @since 06/11/2023
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequestMapping("/migrasi/pasien")
|
||||||
|
public class MigrasiPasienController {
|
||||||
|
@Autowired
|
||||||
|
private MigrasiPasienService migrasiPasienService;
|
||||||
|
|
||||||
|
@RequestMapping(value = "/init", method = GET, produces = APPLICATION_JSON_VALUE)
|
||||||
|
public ResponseEntity<Object> initiateMigrasiPasien() {
|
||||||
|
migrasiPasienService.init();
|
||||||
|
return new ResponseEntity<>(null, HttpStatus.OK);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -15,7 +15,7 @@
|
|||||||
</context-param>
|
</context-param>
|
||||||
<context-param>
|
<context-param>
|
||||||
<param-name>spring.profiles.default</param-name>
|
<param-name>spring.profiles.default</param-name>
|
||||||
<param-value>bridging</param-value>
|
<param-value>development</param-value>
|
||||||
</context-param>
|
</context-param>
|
||||||
|
|
||||||
<listener>
|
<listener>
|
||||||
|
|||||||
@ -0,0 +1,12 @@
|
|||||||
|
package com.jasamedika.medifirst2000.dao;
|
||||||
|
|
||||||
|
import com.jasamedika.medifirst2000.entities.MigrasiPasien;
|
||||||
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Salman
|
||||||
|
* @version 1.0.0
|
||||||
|
* @since 06/11/2023
|
||||||
|
*/
|
||||||
|
public interface MigrasiPasienDao extends JpaRepository<MigrasiPasien, String> {
|
||||||
|
}
|
||||||
@ -2,7 +2,6 @@ package com.jasamedika.medifirst2000.dao;
|
|||||||
|
|
||||||
import com.jasamedika.medifirst2000.entities.Alamat;
|
import com.jasamedika.medifirst2000.entities.Alamat;
|
||||||
import com.jasamedika.medifirst2000.entities.Pasien;
|
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.JpaRepository;
|
||||||
import org.springframework.data.jpa.repository.Lock;
|
import org.springframework.data.jpa.repository.Lock;
|
||||||
import org.springframework.data.jpa.repository.Query;
|
import org.springframework.data.jpa.repository.Query;
|
||||||
@ -122,5 +121,9 @@ public interface PasienDao extends JpaRepository<Pasien, Integer> {
|
|||||||
+ "and ibu.id in (:listIdIbu)")
|
+ "and ibu.id in (:listIdIbu)")
|
||||||
List<Map<String, Object>> findIdByNoCmOfIbu(@Param("listIdIbu") Set<Integer> listIdIbu);
|
List<Map<String, Object>> findIdByNoCmOfIbu(@Param("listIdIbu") Set<Integer> listIdIbu);
|
||||||
|
|
||||||
List<Pasien> findByStatusMigrasi(StatusMigrasi statusMigrasi);
|
@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 "
|
||||||
|
+ "and ps.id not in (select mp.pasienfk from migrasipasien_t mp) "
|
||||||
|
+ "order by cast(ps.nocm as integer) desc " + "limit 100", nativeQuery = true)
|
||||||
|
List<Pasien> find100LatestByNotMigrateYet();
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,10 @@
|
|||||||
|
package com.jasamedika.medifirst2000.service;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Salman
|
||||||
|
* @version 1.0.0
|
||||||
|
* @since 06/11/2023
|
||||||
|
*/
|
||||||
|
public interface MigrasiPasienService {
|
||||||
|
void init();
|
||||||
|
}
|
||||||
@ -0,0 +1,46 @@
|
|||||||
|
package com.jasamedika.medifirst2000.service.impl;
|
||||||
|
|
||||||
|
import com.jasamedika.medifirst2000.dao.MigrasiPasienDao;
|
||||||
|
import com.jasamedika.medifirst2000.dao.PasienDao;
|
||||||
|
import com.jasamedika.medifirst2000.entities.MigrasiPasien;
|
||||||
|
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||||
|
import com.jasamedika.medifirst2000.service.MigrasiPasienService;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Salman
|
||||||
|
* @version 1.0.0
|
||||||
|
* @since 06/11/2023
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
@Transactional
|
||||||
|
public class MigrasiPasienServiceImpl implements MigrasiPasienService {
|
||||||
|
@Autowired
|
||||||
|
private MigrasiPasienDao migrasiPasienDao;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private PasienDao pasienDao;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void init() {
|
||||||
|
List<MigrasiPasien> models = new ArrayList<>();
|
||||||
|
List<Pasien> oneHundredPasien = pasienDao.find100LatestByNotMigrateYet();
|
||||||
|
List<Integer> oneHundredIdPasien = oneHundredPasien.stream().map(Pasien::getId).collect(Collectors.toList());
|
||||||
|
oneHundredIdPasien.forEach(id -> {
|
||||||
|
MigrasiPasien migrasiPasien = new MigrasiPasien();
|
||||||
|
Pasien pasien = new Pasien();
|
||||||
|
pasien.setId(id);
|
||||||
|
migrasiPasien.setPasien(pasien);
|
||||||
|
migrasiPasien.setKdProfile((short) 0);
|
||||||
|
migrasiPasien.setStatusEnabled(true);
|
||||||
|
models.add(migrasiPasien);
|
||||||
|
});
|
||||||
|
migrasiPasienDao.save(models);
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -0,0 +1,45 @@
|
|||||||
|
package com.jasamedika.medifirst2000.entities;
|
||||||
|
|
||||||
|
import com.jasamedika.medifirst2000.base.BaseTransaction;
|
||||||
|
import com.jasamedika.medifirst2000.entities.Pasien;
|
||||||
|
import com.jasamedika.medifirst2000.etl.pasien.constant.StatusMigrasi;
|
||||||
|
import com.jasamedika.medifirst2000.helper.Caption;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import javax.persistence.*;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
import javax.validation.constraints.Size;
|
||||||
|
|
||||||
|
import static com.jasamedika.medifirst2000.etl.pasien.constant.StatusMigrasi.BELUM_KIRIM;
|
||||||
|
import static javax.persistence.EnumType.STRING;
|
||||||
|
import static javax.persistence.FetchType.LAZY;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Salman
|
||||||
|
* @version 1.0.0
|
||||||
|
* @since 06/11/2023
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
@Entity
|
||||||
|
@Table(name = "migrasipasien_t", uniqueConstraints = @UniqueConstraint(columnNames = "pasienfk"))
|
||||||
|
public class MigrasiPasien extends BaseTransaction {
|
||||||
|
private static final long serialVersionUID = 8936798143770665885L;
|
||||||
|
|
||||||
|
@ManyToOne(fetch = LAZY)
|
||||||
|
@JoinColumn(name = "pasienfk", nullable = false)
|
||||||
|
@NotNull(message = "Pasien tidak boleh kosong")
|
||||||
|
@Caption(value = "Pasien")
|
||||||
|
private Pasien pasien;
|
||||||
|
|
||||||
|
@Column(name = "pasienfk", insertable = false, updatable = false, nullable = false)
|
||||||
|
private Integer pasienId;
|
||||||
|
|
||||||
|
@Column(length = 30, nullable = false, columnDefinition = "varchar(30) default 'BELUM_KIRIM'")
|
||||||
|
@Enumerated(STRING)
|
||||||
|
@NotNull(message = "Status migrasi tidak boleh kosong")
|
||||||
|
@Size(max = 30, message = "Status migrasi maksimal {max} karakter")
|
||||||
|
@Caption(value = "Status Migrasi")
|
||||||
|
private StatusMigrasi statusMigrasi = BELUM_KIRIM;
|
||||||
|
}
|
||||||
@ -2,7 +2,6 @@ package com.jasamedika.medifirst2000.entities;
|
|||||||
|
|
||||||
import com.fasterxml.jackson.annotation.JsonBackReference;
|
import com.fasterxml.jackson.annotation.JsonBackReference;
|
||||||
import com.jasamedika.medifirst2000.base.BaseMaster;
|
import com.jasamedika.medifirst2000.base.BaseMaster;
|
||||||
import com.jasamedika.medifirst2000.etl.pasien.constant.StatusMigrasi;
|
|
||||||
import com.jasamedika.medifirst2000.helper.Caption;
|
import com.jasamedika.medifirst2000.helper.Caption;
|
||||||
import com.jasamedika.medifirst2000.listener.MyEventListener;
|
import com.jasamedika.medifirst2000.listener.MyEventListener;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
@ -10,13 +9,10 @@ import lombok.Setter;
|
|||||||
|
|
||||||
import javax.persistence.*;
|
import javax.persistence.*;
|
||||||
import javax.validation.constraints.NotNull;
|
import javax.validation.constraints.NotNull;
|
||||||
import javax.validation.constraints.Size;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import static com.jasamedika.medifirst2000.etl.pasien.constant.StatusMigrasi.BELUM_KIRIM;
|
|
||||||
import static javax.persistence.EnumType.STRING;
|
|
||||||
import static javax.persistence.FetchType.LAZY;
|
import static javax.persistence.FetchType.LAZY;
|
||||||
import static javax.persistence.GenerationType.SEQUENCE;
|
import static javax.persistence.GenerationType.SEQUENCE;
|
||||||
|
|
||||||
@ -211,10 +207,4 @@ public class Pasien extends BaseMaster {
|
|||||||
@Column(name = "JamLahir")
|
@Column(name = "JamLahir")
|
||||||
@Caption(value = "JamLahir")
|
@Caption(value = "JamLahir")
|
||||||
private Date jamLahir;
|
private Date jamLahir;
|
||||||
|
|
||||||
@Column(length = 30, nullable = false, columnDefinition = "varchar(30) default 'BELUM_KIRIM'")
|
|
||||||
@Enumerated(STRING)
|
|
||||||
@Size(max = 30)
|
|
||||||
@Caption(value = "Status Migrasi")
|
|
||||||
private StatusMigrasi statusMigrasi = BELUM_KIRIM;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,28 @@
|
|||||||
|
package com.jasamedika.medifirst2000.vo;
|
||||||
|
|
||||||
|
import com.jasamedika.medifirst2000.base.vo.BaseTransactionVO;
|
||||||
|
import com.jasamedika.medifirst2000.etl.pasien.constant.StatusMigrasi;
|
||||||
|
import com.jasamedika.medifirst2000.helper.Caption;
|
||||||
|
import com.jasamedika.medifirst2000.vo.PasienVO;
|
||||||
|
import lombok.Getter;
|
||||||
|
import lombok.Setter;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Salman
|
||||||
|
* @version 1.0.0
|
||||||
|
* @since 06/11/2023
|
||||||
|
*/
|
||||||
|
@Getter
|
||||||
|
@Setter
|
||||||
|
public class MigrasiPasienVO extends BaseTransactionVO {
|
||||||
|
@NotNull(message = "Pasien tidak boleh kosong")
|
||||||
|
@Caption(value = "Pasien")
|
||||||
|
private PasienVO pasien;
|
||||||
|
|
||||||
|
private Integer pasienId;
|
||||||
|
|
||||||
|
@Caption(value = "Status Migrasi")
|
||||||
|
private StatusMigrasi statusMigrasi;
|
||||||
|
}
|
||||||
@ -1,7 +1,6 @@
|
|||||||
package com.jasamedika.medifirst2000.vo;
|
package com.jasamedika.medifirst2000.vo;
|
||||||
|
|
||||||
import com.jasamedika.medifirst2000.base.vo.BaseMasterVO;
|
import com.jasamedika.medifirst2000.base.vo.BaseMasterVO;
|
||||||
import com.jasamedika.medifirst2000.etl.pasien.constant.StatusMigrasi;
|
|
||||||
import com.jasamedika.medifirst2000.helper.Caption;
|
import com.jasamedika.medifirst2000.helper.Caption;
|
||||||
import lombok.Getter;
|
import lombok.Getter;
|
||||||
import lombok.Setter;
|
import lombok.Setter;
|
||||||
@ -138,7 +137,4 @@ public class PasienVO extends BaseMasterVO {
|
|||||||
|
|
||||||
@Caption(value = "propinsi")
|
@Caption(value = "propinsi")
|
||||||
private PropinsiVO propinsi;
|
private PropinsiVO propinsi;
|
||||||
|
|
||||||
@Caption(value = "Status Migrasi")
|
|
||||||
private StatusMigrasi statusMigrasi;
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -884,5 +884,7 @@
|
|||||||
<mapping class="com.jasamedika.medifirst2000.entities.JumlahDosis" />
|
<mapping class="com.jasamedika.medifirst2000.entities.JumlahDosis" />
|
||||||
<mapping class="com.jasamedika.medifirst2000.entities.KeteranganPakaiObat" />
|
<mapping class="com.jasamedika.medifirst2000.entities.KeteranganPakaiObat" />
|
||||||
<mapping class="com.jasamedika.medifirst2000.entities.SatuanDosis" />
|
<mapping class="com.jasamedika.medifirst2000.entities.SatuanDosis" />
|
||||||
|
|
||||||
|
<mapping class="com.jasamedika.medifirst2000.entities.MigrasiPasien" />
|
||||||
</session-factory>
|
</session-factory>
|
||||||
</hibernate-configuration>
|
</hibernate-configuration>
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user