diff --git a/htdocs/app/Http/Controllers/FrontpageController.php b/htdocs/app/Http/Controllers/FrontpageController.php
index 65ea215e..d1d4c218 100644
--- a/htdocs/app/Http/Controllers/FrontpageController.php
+++ b/htdocs/app/Http/Controllers/FrontpageController.php
@@ -700,6 +700,48 @@ class FrontpageController extends Controller
'openExpertiseOnLoad' => true,
]));
}
+ public function cancelEarlyWarning(Request $request, $id)
+ {
+ if (!Session::has('previlage')) {
+ return response()->json([
+ 'status' => 'Gagal',
+ 'message' => 'Session login tidak ditemukan.',
+ ], 401);
+ }
+
+ $periksa = Periksa::select('id', 'nofoto', 'nmpasien', 'reques', 'daftar', 'status')
+ ->find($id);
+
+ if (!$periksa) {
+ return response()->json([
+ 'status' => 'Gagal',
+ 'message' => 'Data pemeriksaan tidak ditemukan.',
+ ], 404);
+ }
+
+ $currentStatus = trim((string) ($periksa->status ?? ''));
+ if ($currentStatus !== '' && str_contains(strtolower($currentStatus), 'dibatalkan')) {
+ return response()->json([
+ 'status' => 'Gagal',
+ 'message' => 'Pemeriksaan ini sudah berstatus dibatalkan.',
+ ], 422);
+ }
+
+ if (strtolower($currentStatus) === 'selesai') {
+ return response()->json([
+ 'status' => 'Gagal',
+ 'message' => 'Pemeriksaan yang sudah selesai tidak dapat dibatalkan dari Early Warning.',
+ ], 422);
+ }
+
+ $periksa->status = 'Dibatalkan (Arsip)';
+ $periksa->save();
+
+ return response()->json([
+ 'status' => 'Sukses',
+ 'message' => 'Status pemeriksaan berhasil diubah menjadi Dibatalkan (Arsip).',
+ ]);
+ }
public function pengambilan() {
if (Session::get('previlage') == ''){
return redirect('/login');
diff --git a/htdocs/resources/views/dokter/dashborad.blade.php b/htdocs/resources/views/dokter/dashborad.blade.php
index 46b22d34..8932d537 100644
--- a/htdocs/resources/views/dokter/dashborad.blade.php
+++ b/htdocs/resources/views/dokter/dashborad.blade.php
@@ -180,6 +180,18 @@
Expertise
+
@endforeach
@@ -356,6 +368,46 @@ $(document).ready(function() {
$(".btnubahfoto").click(function() {
$('#modalupdatefoto').modal('show');
});
+ $(document).on('click', '.btn-ews-cancel', function () {
+ var button = $(this);
+ var id = button.data('id');
+ var reques = button.data('reques') || '-';
+ var nmpasien = button.data('nmpasien') || '-';
+ var daftar = button.data('daftar') || '-';
+ var nofoto = button.data('nofoto') || '-';
+ var statusAwal = button.data('status') || '-';
+
+ swal({
+ title: 'Konfirmasi Pembatalan',
+ text: 'Apakah anda yakin merubah status untuk pemeriksaan ' + reques + ' untuk nama ' + nmpasien + ' yang di order pada ' + daftar + ' dengan accession number ' + nofoto + ' dengan status awal ' + statusAwal + ' ?',
+ type: 'warning',
+ showCancelButton: true,
+ confirmButtonColor: '#d33',
+ confirmButtonText: 'Ya, batalkan',
+ cancelButtonText: 'Tidak'
+ }, function(isConfirm) {
+ if (!isConfirm) {
+ return;
+ }
+
+ $.post('{{ url("dashboard/early-warning") }}/' + id + '/cancel', { _token: '{{ csrf_token() }}' }, function (data) {
+ swal({
+ title: data.status || 'Sukses',
+ text: data.message || 'Status berhasil diperbarui.',
+ type: 'success',
+ }, function () {
+ window.location.reload();
+ });
+ }).fail(function (xhr) {
+ var response = xhr.responseJSON || {};
+ swal({
+ title: response.status || 'Gagal',
+ text: response.message || 'Tidak dapat memperbarui status pemeriksaan.',
+ type: 'error',
+ });
+ });
+ });
+ });
$("#btnsimpanfoto").click(function(){
var filegambar = document.getElementById('upload_file');
$('#modalupdatefoto').modal('hide');
diff --git a/htdocs/routes/web.php b/htdocs/routes/web.php
index 22f26d2a..4b657563 100644
--- a/htdocs/routes/web.php
+++ b/htdocs/routes/web.php
@@ -85,6 +85,7 @@ Route::group(['middleware' => 'project.ipg'], function() {
Route::get('dokter', [DokterController::class, 'index']);
Route::get('reportppds', [DokterController::class, 'reportppds']);
+ Route::post('dashboard/early-warning/{id}/cancel', [FrontpageController::class, 'cancelEarlyWarning'])->name('dashboard.earlyWarning.cancel');
Route::get('dokter/getlisttem', [DokterController::class, 'getListtem'])->name('getListTemplate');
Route::get('dokter/getlistppds', [DokterController::class, 'getListppds'])->name('getlistppds');
Route::post('dokter/getadendum', [DokterController::class, 'getAdendum'])->name('getadendum');