diff --git a/htdocs/app/Http/Controllers/DokterController.php b/htdocs/app/Http/Controllers/DokterController.php index 221d7ce4..faf6cc7d 100644 --- a/htdocs/app/Http/Controllers/DokterController.php +++ b/htdocs/app/Http/Controllers/DokterController.php @@ -35,7 +35,7 @@ use App\RekapAntibiotik; use App\PendaftaranOnListiner; use App\CriticalValueSample; use App\Paslab; - +use App\SIMBHPReport; use Carbon\Carbon; use Aranyasen\HL7\Message; use Aranyasen\HL7\Connection; @@ -1941,6 +1941,40 @@ class DokterController extends Controller 'created_by' => Session('nama'), ]); } + $media = $request->input('komponen') ?? ''; + $status = $request->input('status') ?? ''; + if ($media == 'Media BAP'){ + $mediatanam = 'BAPPLATE'; + } else if ($media == 'Media CAP'){ + $mediatanam = 'CAPPLATE'; + } else if ($media == 'Media Mc Conkey'){ + $mediatanam = 'MCPLATE'; + } else if ($media == 'Media SDA R1' OR $media == 'Media SDA R2' OR $media == 'Media SDA I1' OR $media == 'Media SDA I2'){ + $mediatanam = 'SDAPLATE'; + } else { + $mediatanam = ''; + } + if ($mediatanam != '' AND $status == 'Sub Kultur'){ + $tanggal= date("d-m-Y"); + $ahrf = explode("-", $tanggal); + $tahun = $ahrf[0]; + if(isset($ahrf[1])){ $wulan = (int)$ahrf[1]; } else { $wulan = (int)date("m"); } + if(isset($ahrf[2])){ $dino = (int)$ahrf[2]; } else { $dino = (int)date("d"); } + $datapemeriksaan = Periksa::where('id', $nofoto)->first(); + SIMBHPReport::create([ + 'tanggal' => $dino, + 'bulan' => $wulan, + 'tahun' => $tahun, + 'deskripsi' => $status.' Nomor Lab.'.$datapemeriksaan->nofoto ?? ''.' petugas '.Session('nama'), + 'pemasukan' => null, + 'pengeluaran' => 1, + 'qty_base' => 1, + 'satuan_transaksi' => 'besar', + 'jenis' => $mediatanam, + 'keterangan' => '', + 'marking' => '', + ]); + } Periksa::where('id', $idperiksa)->update([ 'status' => $request->input('komponen') ?? ''.' '.$request->input('status') ?? '', ]); @@ -2664,6 +2698,7 @@ class DokterController extends Controller public function periksa(Request $request) { $nofoto = $request->input('nofoto'); $id = $request->input('id'); + $mediatanams = $request->input('mediatanam'); $nama = Session('nama'); $idpemeriksa = Session('id'); if ($id == 'ubahnomorlab'){ @@ -2714,38 +2749,64 @@ class DokterController extends Controller $statuse = $jpoli->status ?? ''; $noregister = $jpoli->noregister; $daftar = $jpoli->daftar; - $arrnofoto = explode('-', $nofoto); $nofoto = $arrnofoto[0]; if ($statuse == 'Pemeriksaan awal' OR $statuse == 'Penerimaan Sampel'){ - Periksa::where('id', $id)->update([ - 'status' => 'Pemeriksaan Sampel', - 'tgldraft' => date('Y-m-d H:i:s'), - 'excutor' => $idpemeriksa, - 'nmppdsmiddle2' => Session('nama') - ]); - return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Success', 'message' => 'Status Updated']); - return back(); - } else if ($statuse == 'Pemeriksaan Sampel'){ Periksa::where('id', $id)->update([ 'status' => 'Pemeriksaan awal', 'tgldraft' => date('Y-m-d H:i:s'), 'excutor' => $idpemeriksa, 'nmppdsmiddle2' => Session('nama') ]); - return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Success', 'message' => 'Status Updated']); - return back(); } else { Periksa::where('id', $id)->whereNull('status')->update([ - 'status' => 'Pemeriksaan awal', - 'tgldraft' => date('Y-m-d H:i:s'), + 'status' => 'Penerimaan Sampel', + 'daftar' => date('Y-m-d H:i:s'), 'mulai' => date('Y-m-d H:i:s'), 'excutor' => $idpemeriksa, 'nmppdsmiddle2' => Session('nama') ]); - return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Success', 'message' => 'Status Updated']); - return back(); } + if ($mediatanams == null OR $mediatanams == ''){ + + } else { + foreach($mediatanams as $media){ + if ($media == 'Media BAP'){ + $mediatanam = 'BAPPLATE'; + } else if ($media == 'Media CAP'){ + $mediatanam = 'CAPPLATE'; + } else if ($media == 'Media Mc Conkey'){ + $mediatanam = 'MCPLATE'; + } else if ($media == 'Media SDA R1' OR $media == 'Media SDA R2' OR $media == 'Media SDA I1' OR $media == 'Media SDA I2'){ + $mediatanam = 'SDAPLATE'; + } else { + $mediatanam = ''; + } + if ($mediatanam != ''){ + $tanggal= date("Y-m-d"); + $ahrf = explode("-", $tanggal); + $tahun = $ahrf[0]; + if(isset($ahrf[1])){ $wulan = (int)$ahrf[1]; } else { $wulan = (int)date("m"); } + if(isset($ahrf[2])){ $dino = (int)$ahrf[2]; } else { $dino = (int)date("d"); } + $datapemeriksaan = Periksa::where('id', $id)->first(); + SIMBHPReport::create([ + 'tanggal' => $dino, + 'bulan' => $wulan, + 'tahun' => $tahun, + 'deskripsi' => 'Pemeriksaan Awal '.' Nomor Lab.'.$datapemeriksaan->nofoto.' petugas '.Session('nama'), + 'pemasukan' => null, + 'pengeluaran' => 1, + 'qty_base' => 1, + 'satuan_transaksi' => 'besar', + 'jenis' => $mediatanam, + 'keterangan' => '', + 'marking' => '', + ]); + } + } + } + return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Success', 'message' => 'Status Updated']); + return back(); } } public function getFoto(Request $request) { @@ -3690,6 +3751,7 @@ class DokterController extends Controller 'status' => 'Penerimaan Sampel', 'nmppdsjunior2' => Session('nama'), 'mulai' => date('Y-m-d H:i:s'), + 'daftar' => date('Y-m-d H:i:s'), 'updated_at' => date('Y-m-d').' 00:00:00', ]); if ($kanan == ''){ diff --git a/htdocs/app/Http/Controllers/FrontpageController.php b/htdocs/app/Http/Controllers/FrontpageController.php index 766b3d75..3b2f5f4e 100644 --- a/htdocs/app/Http/Controllers/FrontpageController.php +++ b/htdocs/app/Http/Controllers/FrontpageController.php @@ -36,6 +36,16 @@ use Carbon\Carbon; class FrontpageController extends Controller { + protected function resolveTargetDays($modaliti2) + { + return (!empty($modaliti2) && is_numeric($modaliti2) && intval($modaliti2) > 0) + ? intval($modaliti2) + : 1; + } + protected function getTargetDeadline(Carbon $startAt, $targetDays) + { + return $startAt->copy()->addDays(intval($targetDays))->endOfDay(); + } protected function buildMikroViewData($master, array $extra = []) { $data = [ @@ -236,16 +246,15 @@ class FrontpageController extends Controller $earlyWarnings = []; foreach ($rawEarlyWarnings as $row) { - $targetDays = 1; - if (!empty($row->modaliti2) && is_numeric($row->modaliti2) && intval($row->modaliti2) > 0) { - $targetDays = intval($row->modaliti2); - } + $targetDays = $this->resolveTargetDays($row->modaliti2); $waktuDaftar = Carbon::parse($row->daftar); - $targetSelesai = $waktuDaftar->copy()->addDays($targetDays); + $targetSelesai = $this->getTargetDeadline($waktuDaftar, $targetDays); $sisaMenit = $now->diffInMinutes($targetSelesai, false); + $batasWarningMenit = $targetDays > 1 ? 1440 : 60; + $isMelewatiTarget = $now->gt($targetSelesai); - if ($sisaMenit <= 60) { + if ($isMelewatiTarget || $sisaMenit <= $batasWarningMenit) { $earlyWarnings[] = [ 'id' => $row->id, 'mikro_master' => $this->resolveMikroMasterFromPoliId($row->poli_id), @@ -260,7 +269,7 @@ class FrontpageController extends Controller 'target_hari' => $targetDays, 'target_selesai' => $targetSelesai->format('Y-m-d H:i:s'), 'sisa_menit' => $sisaMenit, - 'warning_label' => $sisaMenit <= 0 ? 'Melewati Target' : 'Kurang dari 1 Jam' + 'warning_label' => $isMelewatiTarget ? 'Melewati Target' : ($targetDays > 1 ? 'Kurang dari 1 Hari' : 'Kurang dari 1 Jam') ]; } } diff --git a/htdocs/app/Http/Controllers/ListController.php b/htdocs/app/Http/Controllers/ListController.php index 4e781d0c..39236e9e 100644 --- a/htdocs/app/Http/Controllers/ListController.php +++ b/htdocs/app/Http/Controllers/ListController.php @@ -733,9 +733,6 @@ class ListController extends Controller