This commit is contained in:
Duidev Software
2026-01-02 09:05:59 +07:00
parent e7c6d50141
commit 8be6231df6
10 changed files with 1285 additions and 1047 deletions
+33 -6
View File
@@ -33,32 +33,60 @@ class Controller extends BaseController
{
use AuthorizesRequests, ValidatesRequests;
private function cekBatasAtas($value, $rule) {
if (!$rule || !str_contains($rule, '>')) return false;
if (!$rule) return false;
// 1. Cek apakah rule mengandung tanda > atau ≥
// Kita gunakan array untuk mengecek berbagai kemungkinan simbol
$validSymbols = ['>', '≥', '>', '>='];
$found = false;
foreach ($validSymbols as $symbol) {
if (str_contains($rule, $symbol)) {
$found = true;
break;
}
}
if (!$found) return false;
// Ambil angkanya
$angka = (int) filter_var($rule, FILTER_SANITIZE_NUMBER_INT);
return $value > $angka;
// 2. Gunakan >= agar angka 17 tetap dianggap 'S' (Sensitive/Suspect)
return $value >= $angka;
}
private function cekMidRange($value, $rule) {
if (!$rule) return false;
$rule = trim($rule);
if ($rule === '-' || $rule === '') return false;
if (!str_contains($rule, '-')) return false;
[$min, $max] = array_map('trim', explode('-', $rule));
if (!is_numeric($min) || !is_numeric($max)) return false;
// Midrange biasanya sudah benar, tapi pastikan casting int/float sesuai kebutuhan
return $value >= (int)$min && $value <= (int)$max;
}
private function cekBatasBawah($value, $rule) {
if (!$rule || !str_contains($rule, '<')) return false;
if (!$rule) return false;
// 1. Cek apakah rule mengandung tanda < atau ≤
$validSymbols = ['<', '≤', '&lt;', '<='];
$found = false;
foreach ($validSymbols as $symbol) {
if (str_contains($rule, $symbol)) {
$found = true;
break;
}
}
if (!$found) return false;
$angka = (int) filter_var($rule, FILTER_SANITIZE_NUMBER_INT);
return $value < $angka;
// 2. Gunakan <= agar angka 13 tetap dianggap 'R' (Resistant)
return $value <= $angka;
}
protected function cekInterpretasi($value, $data) {
if ($this->cekBatasAtas($value, $data->batasatas)) {
@@ -72,7 +100,6 @@ class Controller extends BaseController
}
return null;
}
protected function getStyledValue($value, $color, $strong = false) {
return $strong ? "<strong><font color=\"$color\">$value</font></strong>" : "<font color=\"$color\">$value</font>";
}
@@ -454,7 +454,7 @@ class DokterController extends Controller
$dlp = $request->input('val10');
$idperiksa = $request->input('periksa_id');
$nofoto = $request->input('acc_number');
$addendumketerangan = $request->input('addendumketerangan');
if ($kerja == 'Draft'){
$iddokter = Session('id');
}
@@ -462,10 +462,12 @@ class DokterController extends Controller
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Error..!!', 'message' => 'Please Select Doctor Names']);
return back();
} else {
$today = date('Y-m-d H:i:s');
$periksa = Periksa::with(['getPasien', 'getPoli'])->find($idperiksa);
$nm_spesimen = $periksa->nm_spesimen ?? '';
$noregister = $periksa->noregister ?? '';
$nmadendum = $periksa->nmadendum ?? '';
$tglverifikasi = $periksa->verifikasi ?? $today;
$cekganda = Periksa::where('noregister', $noregister)->where('nmadendum', $nmadendum)->where('nm_spesimen', 'SPUTUM')->get();
$statusdraft = 'Proses Analisis Sampel';
KomponenJawaban::where('accnumber', $nofoto)->where('template', $dlp)->delete();
@@ -583,11 +585,11 @@ class DokterController extends Controller
}
$analis = $request->input('analis');
$ppds3 = $request->input('ppds3');
$today = date('Y-m-d H:i:s');
$cekdokter = optional(User::find($iddokter));
$cekanalis = optional(User::find($analis));
$cekppds3 = optional(User::find($ppds3));
switch ($kerja) {
case 'verifikasi':
$updateData = [
'keterangan' => $keterangan,
@@ -599,7 +601,7 @@ class DokterController extends Controller
'ppdssenior' => $ppds3,
'nmppdssenior' => $cekppds3->nama ?? null,
'tandatangan' => '',
'verifikasi' => $today,
'verifikasi' => $tglverifikasi,
'nmexcutor' => Session('nama'),
'excutor' => Session('id'),
'status' => 'Selesai',
@@ -613,6 +615,15 @@ class DokterController extends Controller
'verifikasi' => 'Accepted',
'keterangan' => 'Expertise',
]);
if (isset($addendumketerangan) AND $addendumketerangan != ''){
Riwayat::create([
'nofoto' => $nofoto,
'jawaban' => $addendumketerangan,
'inputor' => Session('nama'),
'verifikasi' => 'Accepted',
'keterangan' => 'Addendum',
]);
}
if (is_null($nofoto)){
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Sukses', 'message' => 'Expertise Verified']);
} else {
@@ -132,14 +132,10 @@ class JsonTransferController extends Controller
if (session('previlage') !== 'developer') {
abort(403, 'Akses ditolak. Anda tidak memiliki izin untuk menjalankan git pull.');
}
$gitPath = '/var/www/html/lis/';
// Jalankan git pull
$gitPath = base_path();
$output = shell_exec("cd {$gitPath} && git pull 2>&1");
// Simpan log siapa yang menjalankan (opsional)
if (auth()->check()) {
Log::info('Git pull executed by user: ' . auth()->user()->email);
Log::info('Git pull executed by user: ' . auth()->user()->email.' at '.now());
}
return back()->with('git_output', $output);
+1 -32
View File
@@ -25,38 +25,7 @@ class ListController extends Controller
if (Session::get('previlage') == ''){
return redirect('/login');
} else {
$polis = Poli::all();
$ruangans = Ruangan::all();
$dokters = Dokter::all();
$answers = Jawaban::all();
$details = Subjawaban::all();
$ruangpolis = Ruangan::groupBy('poli')->select('poli')->get();
$data = [];
$i = 0;
foreach ($ruangpolis as $ruangpoli) {
$j = 0;
$ruangpoli = $ruangpoli->poli;
$rooms = Ruangan::where('poli', $ruangpoli)->get();
foreach ($rooms as $room) {
$data['ruangans'][$i][$j]['id'] = $room->id;
$data['ruangans'][$i][$j]['ruangan'] = $room->ruangan;
$j++;
}
$i++;
}
$x = 0;
foreach ($ruangpolis as $ruangpoli) {
$data['ruangpolis'][$x] = $ruangpoli->poli;
$x++;
}
$data['polis'] = $polis;
$data['dokters'] = $dokters;
$data['answers'] = $answers;
$data['details'] = $details;
return view('admin.list', $data);
return redirect('/pendaftaran');
}
}