diff --git a/htdocs/app/Http/Controllers/DokterController.php b/htdocs/app/Http/Controllers/DokterController.php index 14089bdc..d11d82a0 100644 --- a/htdocs/app/Http/Controllers/DokterController.php +++ b/htdocs/app/Http/Controllers/DokterController.php @@ -470,6 +470,35 @@ class DokterController extends Controller 'created_by' => Session('nama') ] ); + $data = $request->except(['_token', 'periksa_id', 'val01', 'val10', 'acc_number']); + foreach ($data as $key => $value) { + if (empty($value)) continue; + if (is_array($value)) { + KomponenJawaban::updateOrCreate( + [ + 'accnumber' => $nofoto, + 'komponen' => $key, + ], + [ + 'isidata' => json_encode($value), + 'template' => $dlp, + 'created_by' => session('nama'), + ] + ); + } else { + KomponenJawaban::updateOrCreate( + [ + 'accnumber' => $nofoto, + 'komponen' => $key, + ], + [ + 'isidata' => $value, + 'template' => $dlp, + 'created_by' => session('nama'), + ] + ); + } + } $analis = $request->input('analis'); $ppds3 = $request->input('ppds3'); $today = date('Y-m-d H:i:s'); @@ -536,7 +565,6 @@ class DokterController extends Controller 'keterangan' => 'Kirim ke SPV', ]); return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Sukses', 'message' => 'Permohonan Verifikasi Terkirim']); - case 'tolakadendum': Riwayat::where('nofoto', $nofoto)->whereNull('verifikasi')->update([ 'verifikasi' => 'Declined', @@ -554,38 +582,6 @@ class DokterController extends Controller 'excutor' => Session('id'), 'status' => 'Proses Analisis Sampel' ]); - $data = $request->except(['_token', 'periksa_id', 'val01', 'val10', 'acc_number']); - foreach ($data as $key => $value) { - if (empty($value)) continue; - - if (is_array($value)) { - // Misal: simpan sebagai JSON agar tidak hilang struktur - KomponenJawaban::updateOrCreate( - [ - 'accnumber' => $nofoto, - 'komponen' => $key, - ], - [ - 'isidata' => json_encode($value), // simpan dalam bentuk JSON - 'template' => $dlp, - 'created_by' => session('nama'), - ] - ); - } else { - // Value tunggal - KomponenJawaban::updateOrCreate( - [ - 'accnumber' => $nofoto, - 'komponen' => $key, - ], - [ - 'isidata' => $value, - 'template' => $dlp, - 'created_by' => session('nama'), - ] - ); - } - } $surat = self::genSurat($periksa->id, 'dengan kop'); Riwayat::create([ 'nofoto' => $nofoto, @@ -1783,252 +1779,6 @@ class DokterController extends Controller } return $pesan; } - } - public function exExpertise(Request $request) { - $idperiksa = $request->input('periksa_id'); - $nofoto = $request->input('nofoto'); - $ruangan = $request->input('ruangan'); - $iddokter = $request->input('dokter'); - $keterangan = $request->input('keterangan'); - $kesimpulan = $request->input('kesimpulan'); - //$dlp = $request->input('val01'); - $val02 = $request->input('val02'); - $jenisfont = $request->input('val07'); - $modality = $request->input('val09'); - $dlp = $request->input('val10'); - $ppds1 = $request->input('val11'); - $ppds2 = $request->input('val12'); - $ppds3 = $request->input('val13'); - $diagnosa2 = $request->input('val16'); - $klinis = $request->input('val17'); - $klinisi = $request->input('val18'); - $berat = $request->input('val19'); - $otheras = $request->input('val20'); - $otherppds = $request->input('val21'); - $analis = $request->input('analis'); - if ($keterangan != ''){ - KomponenJawaban::updateOrCreate( - [ - 'accnumber' => $nofoto, - 'template' => $dlp, - 'komponen' => 'keterangan', - ], - [ - 'isidata' => $keterangan, - 'created_by' => Session('nama') - ] - ); - } - $junior2 = 0; - $middle2 = 0; - if ($otherppds != ''){ - $cekdokter = User::where('nama', $otherppds)->first(); - if (isset($cekdokter->id)){ - $otherppds = $cekdokter->id; - if ($otheras == 'Junior'){ - $junior2 = $otherppds; - Periksa::where('id', $idperiksa)->update([ - 'nmppdsjunior2' => $cekdokter->nama - ]); - } else { - $middle2 = $otherppds; - Periksa::where('id', $idperiksa)->update([ - 'nmppdsmiddle2' => $cekdokter->nama - ]); - } - } - } - $jumlah = $kesimpulan; - $kesimpulan = ''; - $getdataawal = Periksa::where('id', $idperiksa)->first(); - $cekstatus = $getdataawal->status; - $noregister = $getdataawal->noregister; - $daftar = $getdataawal->daftar; - $surat = self::genSurat($getdataawal->id, 'dengan kop'); - if ($cekstatus == 'Selesai' OR $cekstatus == 'Arsip'){ - $update = Riwayat::create([ - 'nofoto' => $nofoto, - 'jawaban' => $surat, - 'inputor' => Session('nama'), - 'keterangan'=> 'Adendum', - ]); - Periksa::where('id', $idperiksa)->update([ - 'nmexcutor' => Session('nama'), - 'excutor' => Session('id'), - 'tgladendum' => date('Y-m-d H:i:s'), - ]); - if ($getdataawal->dokter_id != 0){ - $tuliskirim = Session('nama').' Mengisi Adendum Untuk Pasien an. '.$getdataawal->nmpasien.' Dengan Order Awal '.$getdataawal->reques; - $getppds = User::where('id', $getdataawal->dokter_id)->first(); - if (isset($getppds->firebase)){ - $firebaseid = $getppds->firebase; - $pesan = SendMail::mobilenotif($getppds->nama, $firebaseid, 'Adendum', $tuliskirim); - } - } - } else { - if ($val02 == 'Send'){ - $tlsstatus = 'Expertise Saved (Un Verified)'; - Riwayat::create([ - 'nofoto' => $nofoto, - 'jawaban' => $surat, - 'inputor' => Session('nama'), - 'keterangan'=> 'Expertise', - ]); - Periksa::where('id', $idperiksa)->update([ - 'baca' => date('Y-m-d H:i:s'), - 'nmpembaca' => Session('nama'), - 'nmexcutor' => Session('nama'), - 'excutor' => Session('id'), - ]); - if ($getdataawal->dokter_id != 0){ - $getppds = User::where('id', $getdataawal->dokter_id)->first(); - if (isset($getppds->firebase)){ - $tuliskirim = Session('nama').' Mengisi Ekspertise Untuk Pasien an. '.$getdataawal->nmpasien.' Dengan Order Awal '.$getdataawal->reques; - $firebaseid = $getppds->firebase; - $pesan = SendMail::mobilenotif($getppds->nama, $firebaseid, 'Ekspertise', $tuliskirim); - } - } - } else { - $tlsstatus = 'Proses Analisis Sampel'; - Riwayat::create([ - 'nofoto' => $nofoto, - 'jawaban' => $surat, - 'inputor' => Session('nama'), - 'keterangan'=> $tlsstatus, - ]); - Periksa::where('id', $idperiksa)->update([ - 'nmexcutor' => Session('nama'), - 'excutor' => Session('id'), - 'tgldraft' => date('Y-m-d H:i:s'), - 'nmdrafter' => Session('nama'), - ]); - } - if ($ppds3 != 0){ - $cekdokter = User::where('id', $ppds3)->first(); - if (isset($cekdokter->nama)){ - Periksa::where('id', $idperiksa)->update([ - 'nmppdssenior' => $cekdokter->nama - ]); - } - } - if ($ppds2 != 0){ - $cekdokter = User::where('id', $ppds2)->first(); - if (isset($cekdokter->nama)){ - Periksa::where('id', $idperiksa)->update([ - 'nmmiddleppds' => $cekdokter->nama - ]); - } - } - if ($ppds1 != 0){ - $cekdokter = User::where('id', $ppds1)->first(); - if (isset($cekdokter->nama)){ - Periksa::where('id', $idperiksa)->update([ - 'nmppdsjunior' => $cekdokter->nama - ]); - } - } - if ($iddokter != 0){ - $cekdokter = User::where('id', $iddokter)->first(); - if (isset($cekdokter->nama)){ - Periksa::where('id', $idperiksa)->update([ - 'nmdokter' => $cekdokter->nama - ]); - } - } - if ($analis != 0){ - $cekdokter = User::where('id', $analis)->first(); - if (isset($cekdokter->nama)){ - Periksa::where('id', $idperiksa)->update([ - 'nmanalis' => $cekdokter->nama - ]); - } - } - if ($ruangan == 'Pilih' OR $ruangan == ''){ - $update = Periksa::where('id', $idperiksa)->update([ - 'dokter_id' => $iddokter, - 'analis' => $analis, - 'ppdsjunior' => $ppds1, - 'middleppds' => $ppds2, - 'ppdssenior' => $ppds3, - 'ppdsmiddle2' => $middle2, - 'ppdsjunior2' => $junior2, - 'keterangan' => $keterangan, - 'kesimpulan' => '', - 'berat' => $berat, - 'dlp' => $dlp, - 'modality' => $modality, - 'klinis' => $klinis, - 'klinisi' => $klinisi, - 'diagnosa2' => $diagnosa2, - 'baca' => date('Y-m-d H:i:s'), - 'status' => $tlsstatus, - 'nmexcutor' => Session('nama'), - 'excutor' => Session('id'), - ]); - } else { - $jruang = Ruangan::where('id', $ruangan)->first(); - if (isset($jruang->ruangan)){ - $kamar = $jruang->ruangan; - $update = Periksa::where('id', $idperiksa)->update([ - 'ruangan_id' => $ruangan, - 'ruangan' => $kamar, - 'dokter_id' => $iddokter, - 'analis' => $analis, - 'ppdsjunior' => $ppds1, - 'middleppds' => $ppds2, - 'ppdssenior' => $ppds3, - 'ppdsmiddle2' => $middle2, - 'ppdsjunior2' => $junior2, - 'keterangan' => $keterangan, - 'kesimpulan' => '', - 'berat' => $berat, - 'dlp' => $dlp, - 'modality' => $modality, - 'klinis' => $klinis, - 'klinisi' => $klinisi, - 'diagnosa2' => $diagnosa2, - 'baca' => date('Y-m-d H:i:s'), - 'status' => $tlsstatus, - 'nmexcutor' => Session('nama'), - 'excutor' => Session('id'), - ]); - } else { - $update = Periksa::where('id', $idperiksa)->update([ - 'dokter_id' => $iddokter, - 'analis' => $analis, - 'ppdsjunior' => $ppds1, - 'middleppds' => $ppds2, - 'ppdssenior' => $ppds3, - 'ppdsmiddle2' => $middle2, - 'ppdsjunior2' => $junior2, - 'keterangan' => $keterangan, - 'kesimpulan' => '', - 'berat' => $berat, - 'modality' => $modality, - 'klinis' => $klinis, - 'klinisi' => $klinisi, - 'diagnosa2' => $diagnosa2, - 'dlp' => $dlp, - 'baca' => date('Y-m-d H:i:s'), - 'status' => $tlsstatus, - 'nmexcutor' => Session('nama'), - 'excutor' => Session('id'), - ]); - } - } - } - if ($update) { - if (Session('previlage') == 'supervisor'){ - return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Success', 'message' => 'Patient Expertise Saved']); - return back(); - } else { - return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Success', 'message' => 'Patient Expertise Saved, please show it to your SPV for verification']); - return back(); - } - } else { - return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Recieved NACK from remote', 'message' => 'System Down, please try again in a few years....']); - return back(); - } } public function savePdf(Request $request) { $id = $request->input('id'); diff --git a/htdocs/database/migrations/2025_09_03_072125_create_db_komponenjawaban.php b/htdocs/database/migrations/2025_09_03_072125_create_db_komponenjawaban.php index bcdbee67..f50ef64e 100644 --- a/htdocs/database/migrations/2025_09_03_072125_create_db_komponenjawaban.php +++ b/htdocs/database/migrations/2025_09_03_072125_create_db_komponenjawaban.php @@ -15,7 +15,7 @@ return new class extends Migration $table->id(); $table->string('accnumber', 100)->nullable(); $table->string('template', 100)->nullable(); - $table->string('komponen', 100)->nullable(); + $table->string('komponen', 255)->nullable(); $table->text('isidata')->nullable(); $table->string('nobiorepository', 100)->nullable(); $table->string('strain', 255)->nullable();