diff --git a/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/controller/MigrasiPasienController.java b/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/controller/MigrasiPasienController.java index 03b0bc64..37295d05 100644 --- a/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/controller/MigrasiPasienController.java +++ b/jasamedika-bridging/src/main/java/com/jasamedika/medifirst2000/controller/MigrasiPasienController.java @@ -5,6 +5,7 @@ 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.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; @@ -12,6 +13,7 @@ import java.util.List; import static org.springframework.http.MediaType.APPLICATION_JSON_VALUE; import static org.springframework.web.bind.annotation.RequestMethod.GET; +import static org.springframework.web.bind.annotation.RequestMethod.POST; /** * @author Salman @@ -36,4 +38,14 @@ public class MigrasiPasienController { List result = migrasiPasienService.extractAndTransform(); return new ResponseEntity<>(result, HttpStatus.OK); } + + @RequestMapping(value = "/status", method = POST, consumes = APPLICATION_JSON_VALUE, produces = APPLICATION_JSON_VALUE) + public ResponseEntity setStatus(@RequestBody List noRekamMedisList) { + try { + migrasiPasienService.setStatus(noRekamMedisList); + return new ResponseEntity<>(null, HttpStatus.ACCEPTED); + } catch (Exception e) { + return new ResponseEntity<>(e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR); + } + } } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MigrasiPasienDao.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MigrasiPasienDao.java index 640cc6ff..95429468 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MigrasiPasienDao.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/dao/MigrasiPasienDao.java @@ -18,5 +18,10 @@ public interface MigrasiPasienDao extends JpaRepository { @Query("select mp.pasien from MigrasiPasien mp where mp.statusMigrasi in (:listStatusMigrasi)") List findPasienByStatusMigrasiIn(@Param("listStatusMigrasi") List statusMigrasiList); - List findByPasienNoCmIn(List noCmList); + @Query(value = "select mp.* from migrasipasien_t mp " + "inner join pasien_m ps on mp.pasienfk = ps.id " + + "where mp.statusmigrasi in (:listStatusMigrasi) " + + "and ps.nocm in (:listNoRekamMedis)", nativeQuery = true) + List findByStatusMigrasiInAndPasienNoCmIn( + @Param("listStatusMigrasi") List statusMigrasiList, + @Param("listNoRekamMedis") List noRekamMedisList); } 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 dfe4a8e3..4d0555ce 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 @@ -297,9 +297,10 @@ public class MigrasiPasienServiceImpl implements MigrasiPasienService { @Override public void setStatus(List noRekamMedisList) { - List byPasienNoCmIn = migrasiPasienDao.findByPasienNoCmIn(noRekamMedisList); - byPasienNoCmIn.stream().filter(migrasiPasien -> !TERKIRIM.equals(migrasiPasien.getStatusMigrasi())) - .forEach(migrasiPasien -> migrasiPasien.setStatusMigrasi(TERKIRIM)); - migrasiPasienDao.save(byPasienNoCmIn); + List statusMigrasiList = new ArrayList<>(Arrays.asList(BELUM_KIRIM, PEMBAHARUAN)); + List listMigrasiPasien = migrasiPasienDao.findByStatusMigrasiInAndPasienNoCmIn(statusMigrasiList, + noRekamMedisList); + listMigrasiPasien.forEach(migrasiPasien -> migrasiPasien.setStatusMigrasi(TERKIRIM)); + migrasiPasienDao.save(listMigrasiPasien); } }