update
This commit is contained in:
@@ -5,6 +5,7 @@ namespace App\Http\Controllers;
|
|||||||
use App\BioCabinet;
|
use App\BioCabinet;
|
||||||
use App\BioRack;
|
use App\BioRack;
|
||||||
use App\BioSpecimen;
|
use App\BioSpecimen;
|
||||||
|
use App\Periksa;
|
||||||
use Carbon\Carbon;
|
use Carbon\Carbon;
|
||||||
use Illuminate\Http\Request;
|
use Illuminate\Http\Request;
|
||||||
use Session;
|
use Session;
|
||||||
@@ -28,15 +29,6 @@ class BiorepositoryController extends Controller
|
|||||||
->orderBy('id', 'DESC')
|
->orderBy('id', 'DESC')
|
||||||
->get();
|
->get();
|
||||||
|
|
||||||
$data['cabinets'] = BioCabinet::with([
|
|
||||||
'racks' => function ($query) {
|
|
||||||
$query->orderBy('rack_number', 'ASC')->orderBy('code', 'ASC');
|
|
||||||
},
|
|
||||||
'racks.specimens' => function ($query) {
|
|
||||||
$query->orderBy('stored_at', 'ASC');
|
|
||||||
},
|
|
||||||
])->orderBy('name', 'ASC')->get();
|
|
||||||
|
|
||||||
$data['oldestSpecimen'] = BioSpecimen::with(['cabinet', 'rack'])
|
$data['oldestSpecimen'] = BioSpecimen::with(['cabinet', 'rack'])
|
||||||
->whereNotNull('stored_at')
|
->whereNotNull('stored_at')
|
||||||
->orderBy('stored_at', 'ASC')
|
->orderBy('stored_at', 'ASC')
|
||||||
@@ -79,7 +71,9 @@ class BiorepositoryController extends Controller
|
|||||||
'cabinet_id' => 'required|exists:bio_cabinets,id',
|
'cabinet_id' => 'required|exists:bio_cabinets,id',
|
||||||
'code' => 'required|max:50',
|
'code' => 'required|max:50',
|
||||||
'name' => 'required|max:150',
|
'name' => 'required|max:150',
|
||||||
|
'slot_count' => 'required|integer|min:1|max:20',
|
||||||
'level' => 'required|integer|min:4|max:6',
|
'level' => 'required|integer|min:4|max:6',
|
||||||
|
'box_number' => 'required|integer|min:1|max:20',
|
||||||
'capacity' => 'required|integer|min:16|max:100',
|
'capacity' => 'required|integer|min:16|max:100',
|
||||||
'notes' => 'nullable',
|
'notes' => 'nullable',
|
||||||
]);
|
]);
|
||||||
@@ -102,9 +96,10 @@ class BiorepositoryController extends Controller
|
|||||||
'cabinet_id' => $request->input('cabinet_id'),
|
'cabinet_id' => $request->input('cabinet_id'),
|
||||||
'code' => $request->input('code'),
|
'code' => $request->input('code'),
|
||||||
'name' => $request->input('name'),
|
'name' => $request->input('name'),
|
||||||
|
'slot_count' => $request->input('slot_count'),
|
||||||
'level' => $request->input('level'),
|
'level' => $request->input('level'),
|
||||||
'rack_number' => $nextRackNumber,
|
'rack_number' => $nextRackNumber,
|
||||||
'box_number' => 1,
|
'box_number' => $request->input('box_number'),
|
||||||
'capacity' => $request->input('capacity'),
|
'capacity' => $request->input('capacity'),
|
||||||
'notes' => $request->input('notes'),
|
'notes' => $request->input('notes'),
|
||||||
]);
|
]);
|
||||||
@@ -136,15 +131,23 @@ class BiorepositoryController extends Controller
|
|||||||
|
|
||||||
$rack = BioRack::find($request->input('rack_id'));
|
$rack = BioRack::find($request->input('rack_id'));
|
||||||
$expectedRackNo = $rack->rack_number ?: $rack->id;
|
$expectedRackNo = $rack->rack_number ?: $rack->id;
|
||||||
$expectedBoxNo = $rack->box_number ?: 1;
|
$slotCount = (int) ($rack->slot_count ?: 1);
|
||||||
|
$boxCount = (int) ($rack->box_number ?: 1);
|
||||||
|
|
||||||
if ((int) $request->input('raknomor') !== (int) $expectedRackNo ||
|
if ((int) $request->input('raknomor') !== (int) $expectedRackNo) {
|
||||||
(int) $request->input('boxnomor') !== (int) $expectedBoxNo) {
|
|
||||||
return back()->withErrors(['slotnomor' => 'Posisi slot tidak sesuai dengan konfigurasi rack.'])->withInput();
|
return back()->withErrors(['slotnomor' => 'Posisi slot tidak sesuai dengan konfigurasi rack.'])->withInput();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ((int) $request->input('slotnomor') < 1 || (int) $request->input('slotnomor') > $slotCount) {
|
||||||
|
return back()->withErrors(['slotnomor' => 'Slot melebihi konfigurasi rack.'])->withInput();
|
||||||
|
}
|
||||||
|
|
||||||
if ((int) $request->input('shelfnomor') < 1 || (int) $request->input('shelfnomor') > (int) $rack->level) {
|
if ((int) $request->input('shelfnomor') < 1 || (int) $request->input('shelfnomor') > (int) $rack->level) {
|
||||||
return back()->withErrors(['shelfnomor' => 'Shelf melebihi konfigurasi rack.'])->withInput();
|
return back()->withErrors(['shelfnomor' => 'Shelf melebihi konfigurasi slot.'])->withInput();
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((int) $request->input('boxnomor') < 1 || (int) $request->input('boxnomor') > $boxCount) {
|
||||||
|
return back()->withErrors(['boxnomor' => 'Box melebihi konfigurasi shelf.'])->withInput();
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((int) $request->input('tubenomor') < 1 || (int) $request->input('tubenomor') > (int) $rack->capacity) {
|
if ((int) $request->input('tubenomor') < 1 || (int) $request->input('tubenomor') > (int) $rack->capacity) {
|
||||||
@@ -152,7 +155,9 @@ class BiorepositoryController extends Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
$slotTaken = BioSpecimen::where('rack_id', $rack->id)
|
$slotTaken = BioSpecimen::where('rack_id', $rack->id)
|
||||||
|
->where('slot_number', $request->input('slotnomor'))
|
||||||
->where('shelf_number', $request->input('shelfnomor'))
|
->where('shelf_number', $request->input('shelfnomor'))
|
||||||
|
->where('box_number', $request->input('boxnomor'))
|
||||||
->where('tube_number', $request->input('tubenomor'))
|
->where('tube_number', $request->input('tubenomor'))
|
||||||
->first();
|
->first();
|
||||||
|
|
||||||
@@ -209,7 +214,7 @@ class BiorepositoryController extends Controller
|
|||||||
$sampleid = $request->input('sampleid');
|
$sampleid = $request->input('sampleid');
|
||||||
if ($sampleid) {
|
if ($sampleid) {
|
||||||
$cekdata = Periksa::where('nofoto', $sampleid)->first();
|
$cekdata = Periksa::where('nofoto', $sampleid)->first();
|
||||||
if (!$cekdata) {
|
if ($cekdata) {
|
||||||
$sampleid = $cekdata->id;
|
$sampleid = $cekdata->id;
|
||||||
} else {
|
} else {
|
||||||
$sampleid = null;
|
$sampleid = null;
|
||||||
@@ -226,7 +231,7 @@ class BiorepositoryController extends Controller
|
|||||||
'category_storage' => $request->input('kategorisimpan'),
|
'category_storage' => $request->input('kategorisimpan'),
|
||||||
'shelf_number' => $request->input('shelfnomor'),
|
'shelf_number' => $request->input('shelfnomor'),
|
||||||
'rack_number' => $request->input('raknomor'),
|
'rack_number' => $request->input('raknomor'),
|
||||||
'slot_number' => $request->input('shelfnomor'),
|
'slot_number' => $request->input('slotnomor'),
|
||||||
'box_number' => $request->input('boxnomor'),
|
'box_number' => $request->input('boxnomor'),
|
||||||
'tube_number' => $request->input('tubenomor'),
|
'tube_number' => $request->input('tubenomor'),
|
||||||
'bacteria_name' => $request->input('nmbakteri'),
|
'bacteria_name' => $request->input('nmbakteri'),
|
||||||
|
|||||||
@@ -463,304 +463,298 @@ class DokterController extends Controller
|
|||||||
if ($kerja == 'Draft'){
|
if ($kerja == 'Draft'){
|
||||||
$iddokter = Session('id');
|
$iddokter = Session('id');
|
||||||
}
|
}
|
||||||
if ($iddokter == 'Pilih' OR $iddokter == '' OR $iddokter == '0'){
|
$today = date('Y-m-d H:i:s');
|
||||||
return response()->json(['icon' => 'error', 'warna' => '#bf441d', 'status' => 'Error..!!', 'message' => 'Please Select Doctor Names']);
|
$periksa = Periksa::with(['getPasien', 'getPoli'])->find($idperiksa);
|
||||||
return back();
|
$nm_spesimen = $periksa->nm_spesimen ?? '';
|
||||||
} else {
|
$noregister = $periksa->noregister ?? '';
|
||||||
$today = date('Y-m-d H:i:s');
|
$nmadendum = $periksa->nmadendum ?? '';
|
||||||
$periksa = Periksa::with(['getPasien', 'getPoli'])->find($idperiksa);
|
$tglverifikasi = $periksa->verifikasi ?? $today;
|
||||||
$nm_spesimen = $periksa->nm_spesimen ?? '';
|
|
||||||
$noregister = $periksa->noregister ?? '';
|
$cekganda = Periksa::where('noregister', $noregister)->where('nmadendum', $nmadendum)->where('nm_spesimen', 'SPUTUM')->where('id', '!=', $idperiksa)->get();
|
||||||
$nmadendum = $periksa->nmadendum ?? '';
|
$statusdraft = 'Proses Analisis Sampel';
|
||||||
$tglverifikasi = $periksa->verifikasi ?? $today;
|
KomponenJawaban::where('accnumber', $nofoto)->where('template', $dlp)->delete();
|
||||||
|
$data = $request->except(['_token', 'periksa_id', 'val01', 'val10', 'acc_number']);
|
||||||
$cekganda = Periksa::where('noregister', $noregister)->where('nmadendum', $nmadendum)->where('nm_spesimen', 'SPUTUM')->where('id', '!=', $idperiksa)->get();
|
foreach ($data as $key => $value) {
|
||||||
$statusdraft = 'Proses Analisis Sampel';
|
if ($value === "" || is_null($value) || $value === "Pilih Salah Satu") continue;
|
||||||
KomponenJawaban::where('accnumber', $nofoto)->where('template', $dlp)->delete();
|
if (is_array($value)) {
|
||||||
$data = $request->except(['_token', 'periksa_id', 'val01', 'val10', 'acc_number']);
|
KomponenJawaban::updateOrCreate(
|
||||||
foreach ($data as $key => $value) {
|
[
|
||||||
if ($value === "" || is_null($value) || $value === "Pilih Salah Satu") continue;
|
'accnumber' => $nofoto,
|
||||||
if (is_array($value)) {
|
'komponen' => $key,
|
||||||
KomponenJawaban::updateOrCreate(
|
],
|
||||||
[
|
[
|
||||||
'accnumber' => $nofoto,
|
'isidata' => json_encode($value),
|
||||||
'komponen' => $key,
|
'template' => $dlp,
|
||||||
],
|
'created_by' => session('nama'),
|
||||||
[
|
]
|
||||||
'isidata' => json_encode($value),
|
);
|
||||||
'template' => $dlp,
|
} else {
|
||||||
'created_by' => session('nama'),
|
if ($key == 'id_statusmediatamlainnya' AND $value != ''){
|
||||||
]
|
$statusdraft = $value;
|
||||||
);
|
} else if ($key == 'id_statusmediasellainnya' AND $value != ''){
|
||||||
|
$statusdraft = $value;
|
||||||
|
} else if ($key == 'id_statusmediasda' AND $value != ''){
|
||||||
|
$statusdraft = $value;
|
||||||
|
} else if ($key == 'id_statusmediamcconkey' AND $value != ''){
|
||||||
|
$statusdraft = $value;
|
||||||
|
} else if ($key == 'id_statusmediacap' AND $value != ''){
|
||||||
|
$statusdraft = $value;
|
||||||
|
} else if ($key == 'id_statusmediabap' AND $value != ''){
|
||||||
|
$statusdraft = $value;
|
||||||
} else {
|
} else {
|
||||||
if ($key == 'id_statusmediatamlainnya' AND $value != ''){
|
}
|
||||||
$statusdraft = $value;
|
KomponenJawaban::updateOrCreate(
|
||||||
} else if ($key == 'id_statusmediasellainnya' AND $value != ''){
|
[
|
||||||
$statusdraft = $value;
|
'accnumber' => $nofoto,
|
||||||
} else if ($key == 'id_statusmediasda' AND $value != ''){
|
'komponen' => $key,
|
||||||
$statusdraft = $value;
|
],
|
||||||
} else if ($key == 'id_statusmediamcconkey' AND $value != ''){
|
[
|
||||||
$statusdraft = $value;
|
'isidata' => $value,
|
||||||
} else if ($key == 'id_statusmediacap' AND $value != ''){
|
'template' => $dlp,
|
||||||
$statusdraft = $value;
|
'created_by' => session('nama'),
|
||||||
} else if ($key == 'id_statusmediabap' AND $value != ''){
|
]
|
||||||
$statusdraft = $value;
|
);
|
||||||
|
}
|
||||||
|
$yangperludicloning = '';
|
||||||
|
if ($dlp == 'Kultur'){
|
||||||
|
if ($key == 'id_selepitel'){ $yangperludicloning = 'lsg_selepitel'; }
|
||||||
|
if ($key == 'id_selradang'){ $yangperludicloning = 'lsg_selradang'; }
|
||||||
|
if ($key == 'id_mikroorganisme'){ $yangperludicloning = 'lsg_mikroorganisme'; }
|
||||||
|
if ($key == 'id_mikroorganismeoptional'){ $yangperludicloning = 'lsg_mikroorganismeoptional'; }
|
||||||
|
if ($key == 'id_pewarnaanziehlnielsen'){ $yangperludicloning = 'lsg_pewarnaanziehlnielsen'; }
|
||||||
|
if ($key == 'id_pewarnaanziehlnielsensewaktu'){ $yangperludicloning = 'lsg_pewarnaanziehlnielsensewaktu'; }
|
||||||
|
if ($key == 'id_pewarnaankoh'){ $yangperludicloning = 'lsg_pewarnaankoh'; }
|
||||||
|
if ($key == 'id_pewarnaankohoptional'){ $yangperludicloning = 'lsg_pewarnaankohoptional'; }
|
||||||
|
if ($key == 'id_pewarnaanneisser'){ $yangperludicloning = 'lsg_pewarnaanneisser'; }
|
||||||
|
if ($key == 'id_pewarnaannegatif'){ $yangperludicloning = 'lsg_pewarnaannegatif'; }
|
||||||
|
if ($key == 'id_pewarnaanspora'){ $yangperludicloning = 'lsg_pewarnaanspora'; }
|
||||||
|
if ($key == 'id_pewarnaangiesma'){ $yangperludicloning = 'lsg_pewarnaangiesma'; }
|
||||||
|
if ($key == 'id_pewarnaangiesmaoptional'){ $yangperludicloning = 'lsg_pewarnaangiesmaoptional'; }
|
||||||
|
} else {
|
||||||
|
if ($key == 'lsg_selepitel'){ $yangperludicloning = 'id_selepitel'; }
|
||||||
|
if ($key == 'lsg_selradang'){ $yangperludicloning = 'id_selradang'; }
|
||||||
|
if ($key == 'lsg_mikroorganisme'){ $yangperludicloning = 'id_mikroorganisme'; }
|
||||||
|
if ($key == 'lsg_mikroorganismeoptional'){ $yangperludicloning = 'id_mikroorganismeoptional'; }
|
||||||
|
if ($key == 'lsg_pewarnaanziehlnielsen'){ $yangperludicloning = 'id_pewarnaanziehlnielsen'; }
|
||||||
|
if ($key == 'lsg_pewarnaanziehlnielsensewaktu'){ $yangperludicloning = 'id_pewarnaanziehlnielsensewaktu'; }
|
||||||
|
if ($key == 'lsg_pewarnaankoh'){ $yangperludicloning = 'id_pewarnaankoh'; }
|
||||||
|
if ($key == 'lsg_pewarnaankohoptional'){ $yangperludicloning = 'id_pewarnaankohoptional'; }
|
||||||
|
if ($key == 'lsg_pewarnaanneisser'){ $yangperludicloning = 'id_pewarnaanneisser'; }
|
||||||
|
if ($key == 'lsg_pewarnaannegatif'){ $yangperludicloning = 'id_pewarnaannegatif'; }
|
||||||
|
if ($key == 'lsg_pewarnaanspora'){ $yangperludicloning = 'id_pewarnaanspora'; }
|
||||||
|
if ($key == 'lsg_pewarnaangiesma'){ $yangperludicloning = 'id_pewarnaangiesma'; }
|
||||||
|
if ($key == 'lsg_pewarnaangiesmaoptional'){ $yangperludicloning = 'id_pewarnaangiesmaoptional'; }
|
||||||
|
}
|
||||||
|
if ($nm_spesimen == 'SPUTUM' AND !empty($cekganda) AND $yangperludicloning != ''){
|
||||||
|
foreach($cekganda as $rcloning){
|
||||||
|
$nofotocloning = $rcloning->nofoto;
|
||||||
|
$dlpcloning = $rcloning->dlp ?? 'Kultur';
|
||||||
|
if (is_array($value)) {
|
||||||
|
KomponenJawaban::updateOrCreate(
|
||||||
|
[
|
||||||
|
'accnumber' => $nofotocloning,
|
||||||
|
'komponen' => $yangperludicloning,
|
||||||
|
],
|
||||||
|
[
|
||||||
|
'isidata' => json_encode($value),
|
||||||
|
'template' => $dlpcloning,
|
||||||
|
'created_by' => session('nama'),
|
||||||
|
]
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
}
|
KomponenJawaban::updateOrCreate(
|
||||||
KomponenJawaban::updateOrCreate(
|
[
|
||||||
[
|
'accnumber' => $nofotocloning,
|
||||||
'accnumber' => $nofoto,
|
'komponen' => $yangperludicloning,
|
||||||
'komponen' => $key,
|
],
|
||||||
],
|
[
|
||||||
[
|
'isidata' => $value,
|
||||||
'isidata' => $value,
|
'template' => $dlpcloning,
|
||||||
'template' => $dlp,
|
'created_by' => session('nama'),
|
||||||
'created_by' => session('nama'),
|
]
|
||||||
]
|
);
|
||||||
);
|
|
||||||
}
|
|
||||||
$yangperludicloning = '';
|
|
||||||
if ($dlp == 'Kultur'){
|
|
||||||
if ($key == 'id_selepitel'){ $yangperludicloning = 'lsg_selepitel'; }
|
|
||||||
if ($key == 'id_selradang'){ $yangperludicloning = 'lsg_selradang'; }
|
|
||||||
if ($key == 'id_mikroorganisme'){ $yangperludicloning = 'lsg_mikroorganisme'; }
|
|
||||||
if ($key == 'id_mikroorganismeoptional'){ $yangperludicloning = 'lsg_mikroorganismeoptional'; }
|
|
||||||
if ($key == 'id_pewarnaanziehlnielsen'){ $yangperludicloning = 'lsg_pewarnaanziehlnielsen'; }
|
|
||||||
if ($key == 'id_pewarnaanziehlnielsensewaktu'){ $yangperludicloning = 'lsg_pewarnaanziehlnielsensewaktu'; }
|
|
||||||
if ($key == 'id_pewarnaankoh'){ $yangperludicloning = 'lsg_pewarnaankoh'; }
|
|
||||||
if ($key == 'id_pewarnaankohoptional'){ $yangperludicloning = 'lsg_pewarnaankohoptional'; }
|
|
||||||
if ($key == 'id_pewarnaanneisser'){ $yangperludicloning = 'lsg_pewarnaanneisser'; }
|
|
||||||
if ($key == 'id_pewarnaannegatif'){ $yangperludicloning = 'lsg_pewarnaannegatif'; }
|
|
||||||
if ($key == 'id_pewarnaanspora'){ $yangperludicloning = 'lsg_pewarnaanspora'; }
|
|
||||||
if ($key == 'id_pewarnaangiesma'){ $yangperludicloning = 'lsg_pewarnaangiesma'; }
|
|
||||||
if ($key == 'id_pewarnaangiesmaoptional'){ $yangperludicloning = 'lsg_pewarnaangiesmaoptional'; }
|
|
||||||
} else {
|
|
||||||
if ($key == 'lsg_selepitel'){ $yangperludicloning = 'id_selepitel'; }
|
|
||||||
if ($key == 'lsg_selradang'){ $yangperludicloning = 'id_selradang'; }
|
|
||||||
if ($key == 'lsg_mikroorganisme'){ $yangperludicloning = 'id_mikroorganisme'; }
|
|
||||||
if ($key == 'lsg_mikroorganismeoptional'){ $yangperludicloning = 'id_mikroorganismeoptional'; }
|
|
||||||
if ($key == 'lsg_pewarnaanziehlnielsen'){ $yangperludicloning = 'id_pewarnaanziehlnielsen'; }
|
|
||||||
if ($key == 'lsg_pewarnaanziehlnielsensewaktu'){ $yangperludicloning = 'id_pewarnaanziehlnielsensewaktu'; }
|
|
||||||
if ($key == 'lsg_pewarnaankoh'){ $yangperludicloning = 'id_pewarnaankoh'; }
|
|
||||||
if ($key == 'lsg_pewarnaankohoptional'){ $yangperludicloning = 'id_pewarnaankohoptional'; }
|
|
||||||
if ($key == 'lsg_pewarnaanneisser'){ $yangperludicloning = 'id_pewarnaanneisser'; }
|
|
||||||
if ($key == 'lsg_pewarnaannegatif'){ $yangperludicloning = 'id_pewarnaannegatif'; }
|
|
||||||
if ($key == 'lsg_pewarnaanspora'){ $yangperludicloning = 'id_pewarnaanspora'; }
|
|
||||||
if ($key == 'lsg_pewarnaangiesma'){ $yangperludicloning = 'id_pewarnaangiesma'; }
|
|
||||||
if ($key == 'lsg_pewarnaangiesmaoptional'){ $yangperludicloning = 'id_pewarnaangiesmaoptional'; }
|
|
||||||
}
|
|
||||||
if ($nm_spesimen == 'SPUTUM' AND !empty($cekganda) AND $yangperludicloning != ''){
|
|
||||||
foreach($cekganda as $rcloning){
|
|
||||||
$nofotocloning = $rcloning->nofoto;
|
|
||||||
$dlpcloning = $rcloning->dlp ?? 'Kultur';
|
|
||||||
if (is_array($value)) {
|
|
||||||
KomponenJawaban::updateOrCreate(
|
|
||||||
[
|
|
||||||
'accnumber' => $nofotocloning,
|
|
||||||
'komponen' => $yangperludicloning,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'isidata' => json_encode($value),
|
|
||||||
'template' => $dlpcloning,
|
|
||||||
'created_by' => session('nama'),
|
|
||||||
]
|
|
||||||
);
|
|
||||||
} else {
|
|
||||||
KomponenJawaban::updateOrCreate(
|
|
||||||
[
|
|
||||||
'accnumber' => $nofotocloning,
|
|
||||||
'komponen' => $yangperludicloning,
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'isidata' => $value,
|
|
||||||
'template' => $dlpcloning,
|
|
||||||
'created_by' => session('nama'),
|
|
||||||
]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$analis = $request->input('analis');
|
}
|
||||||
$ppds3 = $request->input('ppds3');
|
$analis = $request->input('analis');
|
||||||
$cekdokter = optional(User::find($iddokter));
|
$ppds3 = $request->input('ppds3');
|
||||||
$cekanalis = optional(User::find($analis));
|
$cekdokter = optional(User::find($iddokter));
|
||||||
$cekppds3 = optional(User::find($ppds3));
|
$cekanalis = optional(User::find($analis));
|
||||||
switch ($kerja) {
|
$cekppds3 = optional(User::find($ppds3));
|
||||||
case 'verifikasi':
|
switch ($kerja) {
|
||||||
if ($periksa->status != 'Selesai'){
|
case 'verifikasi':
|
||||||
$tglverifikasi = date('Y-m-d H:i:s');
|
if ($periksa->status != 'Selesai'){
|
||||||
}
|
$tglverifikasi = date('Y-m-d H:i:s');
|
||||||
$updateData = [
|
}
|
||||||
'keterangan' => $keterangan,
|
$updateData = [
|
||||||
'dlp' => $dlp,
|
'keterangan' => $keterangan,
|
||||||
'analis' => $analis,
|
'dlp' => $dlp,
|
||||||
'nmanalis' => $cekanalis->nama ?? null,
|
'analis' => $analis,
|
||||||
'dokter_id' => Session('id'),
|
'nmanalis' => $cekanalis->nama ?? null,
|
||||||
'nmdokter' => Session('nama'),
|
'dokter_id' => Session('id'),
|
||||||
'ppdssenior' => $ppds3,
|
'nmdokter' => Session('nama'),
|
||||||
'nmppdssenior' => $cekppds3->nama ?? null,
|
'ppdssenior' => $ppds3,
|
||||||
'tandatangan' => '',
|
'nmppdssenior' => $cekppds3->nama ?? null,
|
||||||
'verifikasi' => $tglverifikasi,
|
'tandatangan' => '',
|
||||||
'akhir' => $tglverifikasi,
|
'verifikasi' => $tglverifikasi,
|
||||||
'nmexcutor' => Session('nama'),
|
'akhir' => $tglverifikasi,
|
||||||
'excutor' => Session('id'),
|
'nmexcutor' => Session('nama'),
|
||||||
'status' => 'Selesai',
|
'excutor' => Session('id'),
|
||||||
];
|
'status' => 'Selesai',
|
||||||
$periksa->update($updateData);
|
];
|
||||||
if ($this->shouldMarkAsCritical($request)) {
|
$periksa->update($updateData);
|
||||||
$this->upsertCriticalValueSample($periksa);
|
if ($this->shouldMarkAsCritical($request)) {
|
||||||
}
|
$this->upsertCriticalValueSample($periksa);
|
||||||
$surat = self::genSurat($periksa->id, 'dengan kop');
|
}
|
||||||
|
$surat = self::genSurat($periksa->id, 'dengan kop');
|
||||||
|
Riwayat::create([
|
||||||
|
'nofoto' => $nofoto,
|
||||||
|
'jawaban' => $surat,
|
||||||
|
'inputor' => Session('nama'),
|
||||||
|
'verifikasi' => 'Accepted',
|
||||||
|
'keterangan' => 'Expertise',
|
||||||
|
]);
|
||||||
|
if (isset($addendumketerangan) AND $addendumketerangan != ''){
|
||||||
Riwayat::create([
|
Riwayat::create([
|
||||||
'nofoto' => $nofoto,
|
'nofoto' => $nofoto,
|
||||||
'jawaban' => $surat,
|
'jawaban' => $addendumketerangan,
|
||||||
'inputor' => Session('nama'),
|
'inputor' => Session('nama'),
|
||||||
'verifikasi' => 'Accepted',
|
'verifikasi' => 'Accepted',
|
||||||
'keterangan' => 'Expertise',
|
'keterangan' => 'Addendum',
|
||||||
]);
|
]);
|
||||||
if (isset($addendumketerangan) AND $addendumketerangan != ''){
|
}
|
||||||
Riwayat::create([
|
if (is_null($nofoto)){
|
||||||
'nofoto' => $nofoto,
|
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Sukses', 'message' => 'Expertise Verified']);
|
||||||
'jawaban' => $addendumketerangan,
|
} else {
|
||||||
'inputor' => Session('nama'),
|
$pesan = 'Expertise Saved';
|
||||||
'verifikasi' => 'Accepted',
|
|
||||||
'keterangan' => 'Addendum',
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
if (is_null($nofoto)){
|
|
||||||
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Sukses', 'message' => 'Expertise Verified']);
|
|
||||||
} else {
|
|
||||||
$pesan = 'Expertise Saved';
|
|
||||||
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Sukses', 'message' => $pesan]);
|
|
||||||
}
|
|
||||||
case 'statuspewarnaanlsg':
|
|
||||||
$periksa->update([
|
|
||||||
'keterangan' => $keterangan,
|
|
||||||
'dlp' => $dlp,
|
|
||||||
'analis' => $analis,
|
|
||||||
'nmanalis' => $cekanalis->nama ?? null,
|
|
||||||
'nmdrafter' => Session('nama'),
|
|
||||||
'nmexcutor' => Session('nama'),
|
|
||||||
'excutor' => Session('id'),
|
|
||||||
'status' => 'Pewarnaan Langsung'
|
|
||||||
]);
|
|
||||||
return response()->json(['icon' => 'success', 'status' => 'Success', 'message' => 'Set Status Pewarnaan Langsung']);
|
|
||||||
case 'preliminary':
|
|
||||||
$updateData = [
|
|
||||||
'keterangan' => $keterangan,
|
|
||||||
'dlp' => $dlp,
|
|
||||||
'analis' => $analis,
|
|
||||||
'nmanalis' => $cekanalis->nama ?? null,
|
|
||||||
'dokter_id' => Session('id'),
|
|
||||||
'nmdokter' => Session('nama'),
|
|
||||||
'ppdssenior' => $ppds3,
|
|
||||||
'nmppdssenior' => $cekppds3->nama ?? null,
|
|
||||||
'tandatangan' => '',
|
|
||||||
'verifikasi' => $tglverifikasi,
|
|
||||||
'nmexcutor' => Session('nama'),
|
|
||||||
'excutor' => Session('id'),
|
|
||||||
'status' => 'Preliminary Results',
|
|
||||||
];
|
|
||||||
$periksa->update($updateData);
|
|
||||||
if ($this->shouldMarkAsCritical($request)) {
|
|
||||||
$this->upsertCriticalValueSample($periksa);
|
|
||||||
}
|
|
||||||
$surat = self::genSurat($periksa->id, 'dengan kop');
|
|
||||||
Riwayat::create([
|
|
||||||
'nofoto' => $nofoto,
|
|
||||||
'jawaban' => $surat,
|
|
||||||
'inputor' => Session('nama'),
|
|
||||||
'verifikasi' => 'Accepted',
|
|
||||||
'keterangan' => 'Preliminary Results',
|
|
||||||
]);
|
|
||||||
$pesan = 'Preliminary Results Saved';
|
|
||||||
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Sukses', 'message' => $pesan]);
|
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Sukses', 'message' => $pesan]);
|
||||||
case 'Permohonan Verifikasi':
|
}
|
||||||
$updateData = [
|
case 'statuspewarnaanlsg':
|
||||||
'keterangan' => $keterangan,
|
$periksa->update([
|
||||||
'dlp' => $dlp,
|
'keterangan' => $keterangan,
|
||||||
'analis' => $analis,
|
'dlp' => $dlp,
|
||||||
'nmanalis' => $cekanalis->nama ?? null,
|
'analis' => $analis,
|
||||||
'dokter_id' => $iddokter,
|
'nmanalis' => $cekanalis->nama ?? null,
|
||||||
'nmdokter' => $cekdokter->nama ?? null,
|
'nmdrafter' => Session('nama'),
|
||||||
'ppdssenior' => $ppds3,
|
'nmexcutor' => Session('nama'),
|
||||||
'nmppdssenior' => $cekppds3->nama ?? null,
|
'excutor' => Session('id'),
|
||||||
'tandatangan' => '',
|
]);
|
||||||
'baca' => $today,
|
return response()->json(['icon' => 'success', 'status' => 'Success', 'message' => 'Set Status Pewarnaan Langsung']);
|
||||||
'nmexcutor' => Session('nama'),
|
case 'preliminary':
|
||||||
'excutor' => Session('id'),
|
$updateData = [
|
||||||
'nmpembaca' => Session('nama'),
|
'keterangan' => $keterangan,
|
||||||
'status' => 'Expertise Saved (Un Verified)',
|
'dlp' => $dlp,
|
||||||
];
|
'analis' => $analis,
|
||||||
$periksa->update($updateData);
|
'nmanalis' => $cekanalis->nama ?? null,
|
||||||
$surat = self::genSurat($periksa->id, 'dengan kop');
|
'dokter_id' => Session('id'),
|
||||||
Riwayat::create([
|
'nmdokter' => Session('nama'),
|
||||||
'nofoto' => $nofoto,
|
'ppdssenior' => $ppds3,
|
||||||
'jawaban' => $surat,
|
'nmppdssenior' => $cekppds3->nama ?? null,
|
||||||
'inputor' => Session('nama'),
|
'tandatangan' => '',
|
||||||
|
'verifikasi' => $tglverifikasi,
|
||||||
|
'nmexcutor' => Session('nama'),
|
||||||
|
'excutor' => Session('id'),
|
||||||
|
'status' => 'Preliminary Results',
|
||||||
|
];
|
||||||
|
$periksa->update($updateData);
|
||||||
|
if ($this->shouldMarkAsCritical($request)) {
|
||||||
|
$this->upsertCriticalValueSample($periksa);
|
||||||
|
}
|
||||||
|
$surat = self::genSurat($periksa->id, 'dengan kop');
|
||||||
|
Riwayat::create([
|
||||||
|
'nofoto' => $nofoto,
|
||||||
|
'jawaban' => $surat,
|
||||||
|
'inputor' => Session('nama'),
|
||||||
|
'verifikasi' => 'Accepted',
|
||||||
|
'keterangan' => 'Preliminary Results',
|
||||||
|
]);
|
||||||
|
$pesan = 'Preliminary Results Saved';
|
||||||
|
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Sukses', 'message' => $pesan]);
|
||||||
|
case 'Permohonan Verifikasi':
|
||||||
|
$updateData = [
|
||||||
|
'keterangan' => $keterangan,
|
||||||
|
'dlp' => $dlp,
|
||||||
|
'analis' => $analis,
|
||||||
|
'nmanalis' => $cekanalis->nama ?? null,
|
||||||
|
'dokter_id' => $iddokter,
|
||||||
|
'nmdokter' => $cekdokter->nama ?? null,
|
||||||
|
'ppdssenior' => $ppds3,
|
||||||
|
'nmppdssenior' => $cekppds3->nama ?? null,
|
||||||
|
'tandatangan' => '',
|
||||||
|
'baca' => $today,
|
||||||
|
'nmexcutor' => Session('nama'),
|
||||||
|
'excutor' => Session('id'),
|
||||||
|
'nmpembaca' => Session('nama'),
|
||||||
|
'status' => 'Expertise Saved (Un Verified)',
|
||||||
|
];
|
||||||
|
$periksa->update($updateData);
|
||||||
|
$surat = self::genSurat($periksa->id, 'dengan kop');
|
||||||
|
Riwayat::create([
|
||||||
|
'nofoto' => $nofoto,
|
||||||
|
'jawaban' => $surat,
|
||||||
|
'inputor' => Session('nama'),
|
||||||
|
'verifikasi' => 'Accepted',
|
||||||
|
'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',
|
||||||
|
]);
|
||||||
|
return response()->json(['icon' => 'success', 'status' => 'Success', 'message' => 'Addendum Declined']);
|
||||||
|
case 'Draft':
|
||||||
|
$periksa->update([
|
||||||
|
'keterangan' => $keterangan,
|
||||||
|
'dlp' => $dlp,
|
||||||
|
'analis' => $analis,
|
||||||
|
'nmanalis' => $cekanalis->nama ?? null,
|
||||||
|
'nmdrafter' => Session('nama'),
|
||||||
|
'nmexcutor' => Session('nama'),
|
||||||
|
'excutor' => Session('id'),
|
||||||
|
'status' => $statusdraft
|
||||||
|
]);
|
||||||
|
$surat = self::genSurat($periksa->id, 'dengan kop');
|
||||||
|
Riwayat::create([
|
||||||
|
'nofoto' => $nofoto,
|
||||||
|
'jawaban' => $surat,
|
||||||
|
'inputor' => Session('nama'),
|
||||||
|
'verifikasi' => '',
|
||||||
|
'keterangan' => 'Draft',
|
||||||
|
]);
|
||||||
|
return response()->json(['icon' => 'success', 'status' => 'Success', 'message' => 'Draft Expertise Saved']);
|
||||||
|
case 'terimadendum':
|
||||||
|
$getid = Riwayat::where('keterangan', 'Adendum')->where('nofoto', $nofoto)->whereNull('verifikasi')->first();
|
||||||
|
if (isset($getid->id)){
|
||||||
|
Riwayat::where('id', $getid->id)->update([
|
||||||
'verifikasi' => 'Accepted',
|
'verifikasi' => 'Accepted',
|
||||||
'keterangan' => 'Kirim ke SPV',
|
|
||||||
]);
|
]);
|
||||||
return response()->json(['icon' => 'success', 'warna' => '#5ba035', 'status' => 'Sukses', 'message' => 'Permohonan Verifikasi Terkirim']);
|
Periksa::where('nofoto', $getid->nofoto)->update([
|
||||||
case 'tolakadendum':
|
|
||||||
Riwayat::where('nofoto', $nofoto)->whereNull('verifikasi')->update([
|
|
||||||
'verifikasi' => 'Declined',
|
|
||||||
]);
|
|
||||||
return response()->json(['icon' => 'success', 'status' => 'Success', 'message' => 'Addendum Declined']);
|
|
||||||
case 'Draft':
|
|
||||||
$periksa->update([
|
|
||||||
'keterangan' => $keterangan,
|
|
||||||
'dlp' => $dlp,
|
|
||||||
'analis' => $analis,
|
|
||||||
'nmanalis' => $cekanalis->nama ?? null,
|
|
||||||
'nmdrafter' => Session('nama'),
|
|
||||||
'nmexcutor' => Session('nama'),
|
'nmexcutor' => Session('nama'),
|
||||||
'excutor' => Session('id'),
|
'excutor' => Session('id'),
|
||||||
'status' => $statusdraft
|
'tgladendum' => now(),
|
||||||
|
'keterangan' => $getid->jawaban
|
||||||
]);
|
]);
|
||||||
$surat = self::genSurat($periksa->id, 'dengan kop');
|
return response()->json(['icon' => 'success', 'status' => 'Success', 'message' => 'Addendum Accepted']);
|
||||||
Riwayat::create([
|
} else {
|
||||||
'nofoto' => $nofoto,
|
return response()->json(['icon' => 'error', 'status' => 'Gagal', 'message' => 'Addendum Data Cannot Be Found']);
|
||||||
'jawaban' => $surat,
|
}
|
||||||
'inputor' => Session('nama'),
|
default:
|
||||||
'verifikasi' => '',
|
$periksa->update([
|
||||||
'keterangan' => 'Draft',
|
'keterangan' => $keterangan,
|
||||||
]);
|
'dlp' => $dlp,
|
||||||
return response()->json(['icon' => 'success', 'status' => 'Success', 'message' => 'Draft Expertise Saved']);
|
'analis' => $analis,
|
||||||
case 'terimadendum':
|
'nmanalis' => $cekanalis->nama ?? null,
|
||||||
$getid = Riwayat::where('keterangan', 'Adendum')->where('nofoto', $nofoto)->whereNull('verifikasi')->first();
|
'dokter_id' => $iddokter,
|
||||||
if (isset($getid->id)){
|
'nmdokter' => $cekdokter->nama ?? null,
|
||||||
Riwayat::where('id', $getid->id)->update([
|
'ppdssenior' => $ppds3,
|
||||||
'verifikasi' => 'Accepted',
|
'nmppdssenior' => $cekppds3->nama ?? null,
|
||||||
]);
|
'nmdrafter' => Session('nama'),
|
||||||
Periksa::where('nofoto', $getid->nofoto)->update([
|
'nmexcutor' => Session('nama'),
|
||||||
'nmexcutor' => Session('nama'),
|
'excutor' => Session('id'),
|
||||||
'excutor' => Session('id'),
|
'status' => $statusdraft
|
||||||
'tgladendum' => now(),
|
]);
|
||||||
'keterangan' => $getid->jawaban
|
return response()->json(['icon' => 'success', 'status' => 'Success', 'message' => 'Expertise Saved']);
|
||||||
]);
|
|
||||||
return response()->json(['icon' => 'success', 'status' => 'Success', 'message' => 'Addendum Accepted']);
|
|
||||||
} else {
|
|
||||||
return response()->json(['icon' => 'error', 'status' => 'Gagal', 'message' => 'Addendum Data Cannot Be Found']);
|
|
||||||
}
|
|
||||||
default:
|
|
||||||
$periksa->update([
|
|
||||||
'keterangan' => $keterangan,
|
|
||||||
'dlp' => $dlp,
|
|
||||||
'analis' => $analis,
|
|
||||||
'nmanalis' => $cekanalis->nama ?? null,
|
|
||||||
'dokter_id' => $iddokter,
|
|
||||||
'nmdokter' => $cekdokter->nama ?? null,
|
|
||||||
'ppdssenior' => $ppds3,
|
|
||||||
'nmppdssenior' => $cekppds3->nama ?? null,
|
|
||||||
'nmdrafter' => Session('nama'),
|
|
||||||
'nmexcutor' => Session('nama'),
|
|
||||||
'excutor' => Session('id'),
|
|
||||||
'status' => $statusdraft
|
|
||||||
]);
|
|
||||||
return response()->json(['icon' => 'success', 'status' => 'Success', 'message' => 'Expertise Saved']);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
protected function shouldMarkAsCritical(Request $request): bool
|
protected function shouldMarkAsCritical(Request $request): bool
|
||||||
@@ -1245,64 +1239,59 @@ class DokterController extends Controller
|
|||||||
$cekdatanmaddendum = Periksa::where('nofoto', $nofoto)->first();
|
$cekdatanmaddendum = Periksa::where('nofoto', $nofoto)->first();
|
||||||
$tgldaftarpasangan = $cekdatanmaddendum->daftar ?? '';
|
$tgldaftarpasangan = $cekdatanmaddendum->daftar ?? '';
|
||||||
$nmadendum = $cekdatanmaddendum->nmadendum ?? '';
|
$nmadendum = $cekdatanmaddendum->nmadendum ?? '';
|
||||||
/*
|
$getdatapasangannya = Periksa::where('nmadendum', $nmadendum)->where('nofoto', '!=', $nofoto)->get();
|
||||||
sudah OK tinggal di uncoment saja klo perlu cloning data dari pasangan
|
if (!empty($getdatapasangannya)){
|
||||||
if ($nmadendum != ''){
|
|
||||||
$getdatapasangannya = Periksa::where('nmadendum', $nmadendum)->where('nm_spesimen', 'SPUTUM')->where('nofoto', '!=', $nofoto)->get();
|
|
||||||
foreach ($getdatapasangannya as $item){
|
foreach ($getdatapasangannya as $item){
|
||||||
$datayangperludicloning = KomponenJawaban::where('accnumber', $item->nofoto)->get();
|
$datayangperludicloning = KomponenJawaban::where('accnumber', $item->nofoto)->get();
|
||||||
foreach ($datayangperludicloning as $rclone){
|
foreach ($datayangperludicloning as $rclone){
|
||||||
$ceksudahcloning = KomponenJawaban::where('accnumber', $nofoto)
|
$komponenterclone = '';
|
||||||
->where('komponen', $rclone->komponen)
|
if ($rclone->komponen == 'lsg_selepitel'){
|
||||||
->where('template', $ruangan)->count();
|
$komponenterclone = 'id_selepitel';
|
||||||
if ($ceksudahcloning == 0){
|
}
|
||||||
$komponen = '';
|
if ($rclone->komponen == 'id_selepitel'){
|
||||||
if ($rclone->komponen == 'lsg_selepitel'){
|
$komponenterclone = 'lsg_selepitel';
|
||||||
$komponen = 'id_selepitel';
|
}
|
||||||
}
|
if ($rclone->komponen == 'lsg_selradang'){
|
||||||
if ($rclone->komponen == 'id_selepitel'){
|
$komponenterclone = 'id_selradang';
|
||||||
$komponen = 'lsg_selepitel';
|
}
|
||||||
}
|
if ($rclone->komponen == 'id_selradang'){
|
||||||
if ($rclone->komponen == 'lsg_selradang'){
|
$komponenterclone = 'lsg_selradang';
|
||||||
$komponen = 'id_selradang';
|
}
|
||||||
}
|
if ($rclone->komponen == 'lsg_mikroorganisme'){
|
||||||
if ($rclone->komponen == 'id_selradang'){
|
$komponenterclone = 'id_mikroorganisme';
|
||||||
$komponen = 'lsg_selradang';
|
}
|
||||||
}
|
if ($rclone->komponen == 'id_mikroorganisme'){
|
||||||
if ($rclone->komponen == 'lsg_mikroorganisme'){
|
$komponenterclone = 'lsg_mikroorganisme';
|
||||||
$komponen = 'id_mikroorganisme';
|
}
|
||||||
}
|
if ($rclone->komponen == 'lsg_mikroorganismeoptional'){
|
||||||
if ($rclone->komponen == 'id_mikroorganisme'){
|
$komponenterclone = 'id_mikroorganismeoptional';
|
||||||
$komponen = 'lsg_mikroorganisme';
|
}
|
||||||
}
|
if ($rclone->komponen == 'id_mikroorganismeoptional'){
|
||||||
if ($rclone->komponen == 'lsg_mikroorganismeoptional'){
|
$komponenterclone = 'lsg_mikroorganismeoptional';
|
||||||
$komponen = 'id_mikroorganismeoptional';
|
}
|
||||||
}
|
if ($rclone->komponen == 'lsg_mikroorganismeoptional'){
|
||||||
if ($rclone->komponen == 'id_mikroorganismeoptional'){
|
$komponenterclone = 'id_mikroorganismeoptional';
|
||||||
$komponen = 'lsg_mikroorganismeoptional';
|
}
|
||||||
}
|
$ceksudahcloning = KomponenJawaban::where('accnumber', $rclone->accnumber)->where('komponen', $komponenterclone)->count();
|
||||||
if ($rclone->komponen == 'lsg_mikroorganismeoptional'){
|
if ($ceksudahcloning == 0 AND $komponenterclone != ''){
|
||||||
$komponen = 'id_mikroorganismeoptional';
|
KomponenJawaban::create([
|
||||||
}
|
'accnumber' => $rclone->accnumber,
|
||||||
if ($rclone->komponen == 'id_mikroorganismeoptional'){
|
'template' => $ruangan,
|
||||||
$komponen = 'lsg_mikroorganismeoptional';
|
'komponen' => $komponenterclone,
|
||||||
}
|
'isidata' => $rclone->isidata,
|
||||||
if ($komponen != ''){
|
'created_by' => Session('nama')
|
||||||
KomponenJawaban::create([
|
]);
|
||||||
'accnumber' => $nofoto,
|
Riwayat::create([
|
||||||
'template' => $ruangan,
|
'nofoto' => $rclone->accnumber,
|
||||||
'komponen' => $komponen,
|
'jawaban' => $rclone->isidata,
|
||||||
'isidata' => $rclone->isidata,
|
'inputor' => Session('nama'),
|
||||||
'created_by' => Session('nama')
|
'keterangan' => 'Clone Data '.$komponenterclone.' Dari ('.$nofoto.')',
|
||||||
]);
|
'verifikasi' => '',
|
||||||
}
|
]);
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
*/
|
|
||||||
KomponenJawaban::where('accnumber', $nofoto)->where('template', 'all')->update([
|
KomponenJawaban::where('accnumber', $nofoto)->where('template', 'all')->update([
|
||||||
'template' => $ruangan,
|
'template' => $ruangan,
|
||||||
]);
|
]);
|
||||||
@@ -2309,96 +2298,6 @@ class DokterController extends Controller
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
return $pesan;
|
return $pesan;
|
||||||
} else if ($worklist == 'getbbachtect' OR $worklist == 'getmgit' OR $worklist == 'getabbot'){
|
|
||||||
$isidata = $request->input('isi');
|
|
||||||
try {
|
|
||||||
$ketemu = '';
|
|
||||||
$nomor = 1;
|
|
||||||
$cekdatalangsung = DataListiner::where('no_id', $nofoto)->whereIn('alat', ['BD Mikro 1', 'BD Mikro 2'])->first();
|
|
||||||
$ketemu = $cekdatalangsung->organisme ?? '';
|
|
||||||
if ($ketemu == ''){
|
|
||||||
$cekada = ResultSample::where('accession_number', 'LIKE', $nofoto.'%')->get();
|
|
||||||
if (!empty($cekada)){
|
|
||||||
foreach($cekada as $rows){
|
|
||||||
$ketemu = $rows->test_status;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$cekdata = DB::table('lis_phoenix')->where('no_id', $nofoto)->first();
|
|
||||||
$ketemu = $cekdata->organisme ?? '';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($ketemu != ''){
|
|
||||||
if ($isidata == '' OR is_null($isidata)){
|
|
||||||
$isidata = $ketemu;
|
|
||||||
} else {
|
|
||||||
$isidata = $isidata.'<br />'.$ketemu;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
|
|
||||||
}
|
|
||||||
if ($isidata == '' OR is_null($isidata)){
|
|
||||||
|
|
||||||
} else {
|
|
||||||
KomponenJawaban::updateOrCreate(
|
|
||||||
[
|
|
||||||
'accnumber' => $nofoto,
|
|
||||||
'template' => $request->input('jenis'),
|
|
||||||
'komponen' => $request->input('komponen'),
|
|
||||||
],
|
|
||||||
[
|
|
||||||
'isidata' => $isidata,
|
|
||||||
'created_by' => Session('nama')
|
|
||||||
]
|
|
||||||
);
|
|
||||||
}
|
|
||||||
$pesan = $isidata;
|
|
||||||
}catch (Exception $e) {
|
|
||||||
$pesan = $isidata.'<br />'.$e->getMessage();
|
|
||||||
}
|
|
||||||
return $pesan;
|
|
||||||
} else if ($worklist == 'getgenexpert'){
|
|
||||||
$isidata = $request->input('isi');
|
|
||||||
try {
|
|
||||||
$cekdata = Periksa::where('nofoto', $nofoto)->first();
|
|
||||||
$noregister = $cekdata->noregister ?? '';
|
|
||||||
$url = 'http://10.10.120.14:6002/api/genexpert/query-result';
|
|
||||||
|
|
||||||
$response = Http::withHeaders([
|
|
||||||
'Content-Type' => 'application/json',
|
|
||||||
'Accept' => 'application/json',
|
|
||||||
])->timeout(30)
|
|
||||||
->post($url, [
|
|
||||||
'accnumber' => $nofoto,
|
|
||||||
'register_no' => $noregister,
|
|
||||||
]);
|
|
||||||
$body = $response->json();
|
|
||||||
$errorMessage = $body['message'] ?? 'Unknown Error';
|
|
||||||
$details = json_decode($errorMessage, true);
|
|
||||||
if (json_last_error() === JSON_ERROR_NONE && isset($details['message'])) {
|
|
||||||
$pesan = $details['message'];
|
|
||||||
} else {
|
|
||||||
$pesan = $errorMessage;
|
|
||||||
}
|
|
||||||
if ($response->successful()) {
|
|
||||||
Log::info('requestResult.', [
|
|
||||||
'status' => $response->status(),
|
|
||||||
'message' => $response->json()
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
|
|
||||||
Log::error('Exception dalam fungsi requestResult.', [
|
|
||||||
'status' => $response->status(),
|
|
||||||
'message' => 'Python Server Error: ' . $response->body()
|
|
||||||
]);
|
|
||||||
} catch (Exception $e) {
|
|
||||||
$pesan = (is_null($isidata) ? '' : $isidata . '<br />') . 'Error: ' . $e->getMessage();
|
|
||||||
Log::error('Exception dalam fungsi requestResult.', [
|
|
||||||
'sample_id' => $nofoto,
|
|
||||||
'exception' => $e->getMessage()
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
return response($pesan, 200);
|
|
||||||
} else if ($worklist == 'addviralload'){
|
} else if ($worklist == 'addviralload'){
|
||||||
$tabelawal = $request->input('tabelawal');
|
$tabelawal = $request->input('tabelawal');
|
||||||
$idtabel = $request->input('idtabel');
|
$idtabel = $request->input('idtabel');
|
||||||
@@ -2526,7 +2425,7 @@ class DokterController extends Controller
|
|||||||
} else if ($worklist == 'generatetblpertumbuhankoloni'){
|
} else if ($worklist == 'generatetblpertumbuhankoloni'){
|
||||||
$orderid = $request->input('nofoto');
|
$orderid = $request->input('nofoto');
|
||||||
$media = $request->input('komponen');
|
$media = $request->input('komponen');
|
||||||
$sql = DB::table('pertumkolomni')->where('orderid', $orderid)->where('media', $media)->get();
|
$sql = DB::table('pertumkolomni')->where('orderid', $orderid)->where('media', $media)->orderBy('id', 'asc')->get();
|
||||||
return $sql;
|
return $sql;
|
||||||
} else {
|
} else {
|
||||||
$periksa = Periksa::where('id', $idperiksa)->first();
|
$periksa = Periksa::where('id', $idperiksa)->first();
|
||||||
|
|||||||
@@ -1136,7 +1136,6 @@ class ReportController extends Controller
|
|||||||
|
|
||||||
}
|
}
|
||||||
public function genTATreport(Request $request) {
|
public function genTATreport(Request $request) {
|
||||||
$data = [];
|
|
||||||
$bulan = $request->input('bulan');
|
$bulan = $request->input('bulan');
|
||||||
$tahun = $request->input('tahun');
|
$tahun = $request->input('tahun');
|
||||||
if ($tahun == '' OR is_null($tahun)){
|
if ($tahun == '' OR is_null($tahun)){
|
||||||
@@ -1146,59 +1145,55 @@ class ReportController extends Controller
|
|||||||
$bulan = str_replace('bulan=', '', $bulan);
|
$bulan = str_replace('bulan=', '', $bulan);
|
||||||
$tahun = str_replace('tahun=', '', $tahun);
|
$tahun = str_replace('tahun=', '', $tahun);
|
||||||
}
|
}
|
||||||
$query = Periksa::select('*');
|
$startDate = $bulan === 'ALL'
|
||||||
if ($bulan !== 'ALL') {
|
? Carbon::createFromDate((int) $tahun, 1, 1)->startOfYear()
|
||||||
$query->whereMonth('mulai', $bulan);
|
: Carbon::createFromDate((int) $tahun, (int) $bulan, 1)->startOfMonth();
|
||||||
}
|
$endDate = $bulan === 'ALL'
|
||||||
$periksa = $query->whereYear('mulai', $tahun)->orderBy('mulai', 'ASC')->get();
|
? Carbon::createFromDate((int) $tahun, 1, 1)->endOfYear()
|
||||||
|
: Carbon::createFromDate((int) $tahun, (int) $bulan, 1)->endOfMonth();
|
||||||
|
|
||||||
if ($periksa->count() == 0) {
|
$query = DB::table('periksa')
|
||||||
|
->leftJoin('poli', 'poli.id', '=', 'periksa.poli_id')
|
||||||
|
->select('periksa.id', 'periksa.kd_spesimen', 'periksa.mulai', 'periksa.verifikasi', 'poli.modaliti2')
|
||||||
|
->whereBetween('periksa.mulai', [$startDate->toDateTimeString(), $endDate->toDateTimeString()]);
|
||||||
|
|
||||||
|
$rekapRows = [];
|
||||||
|
$query->chunkById(1000, function ($rows) use (&$rekapRows) {
|
||||||
|
foreach ($rows as $row) {
|
||||||
|
$key = $row->kd_spesimen ?: '-';
|
||||||
|
if (!isset($rekapRows[$key])) {
|
||||||
|
$rekapRows[$key] = [
|
||||||
|
'jenis_pemeriksaan' => $key,
|
||||||
|
'memenuhi' => 0,
|
||||||
|
'tidak_memenuhi' => 0,
|
||||||
|
'tidak_ada_hasil' => 0,
|
||||||
|
'total' => 0,
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
if (empty($row->verifikasi)) {
|
||||||
|
$rekapRows[$key]['tidak_ada_hasil']++;
|
||||||
|
} else {
|
||||||
|
$target = $this->resolveTatTargetDays($row->modaliti2 ?? '1');
|
||||||
|
$status = $this->resolveTatStatus($row->mulai, $row->verifikasi, $target);
|
||||||
|
if ($status === 'MEMENUHI TARGET') {
|
||||||
|
$rekapRows[$key]['memenuhi']++;
|
||||||
|
} else {
|
||||||
|
$rekapRows[$key]['tidak_memenuhi']++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$rekapRows[$key]['total']++;
|
||||||
|
}
|
||||||
|
}, 'periksa.id', 'id');
|
||||||
|
|
||||||
|
if (empty($rekapRows)) {
|
||||||
return response()->json([]);
|
return response()->json([]);
|
||||||
}
|
}
|
||||||
$accnumbers = $periksa->pluck('nofoto')->toArray();
|
|
||||||
$komponen = DB::table('db_komponenjawaban')->whereIn('accnumber', $accnumbers)->whereIn('komponen', ['id_bakteri01','id_bakteri02','id_mikroorganisme'])->get()->groupBy('accnumber');
|
|
||||||
$poli = DB::table('poli')->whereIn('id', $periksa->pluck('poli_id'))->get()->keyBy('id');
|
|
||||||
$hasil = $periksa->map(function($row) use ($komponen, $poli){
|
|
||||||
$k = $komponen[$row->nofoto] ?? collect([]);
|
|
||||||
$row->id_bakteri01 = optional($k->firstWhere('komponen', 'id_bakteri01'))->isidata;
|
|
||||||
$row->id_bakteri02 = optional($k->firstWhere('komponen', 'id_bakteri02'))->isidata;
|
|
||||||
$row->bakteri = optional($k->firstWhere('komponen', 'bakteri'))->isidata;
|
|
||||||
$row->filefoto = "<a href='".url('/hasil/'.$row->nofoto)."'>$row->nofoto</a>";
|
|
||||||
$p = $poli[$row->poli_id] ?? null;
|
|
||||||
$row->subpoli = $p->subpoli ?? null;
|
|
||||||
$target = $p->modaliti2 ?? '1';
|
|
||||||
$row->modaliti2 = $target;
|
|
||||||
if (!empty($row->verifikasi)) {
|
|
||||||
$selisih_hari = Carbon::parse($row->mulai)->diffInDays(Carbon::parse($row->verifikasi));
|
|
||||||
$target = intval($target);
|
|
||||||
$hari = intval($selisih_hari);
|
|
||||||
$row->selisih_hari = $selisih_hari;
|
|
||||||
if ($hari <= $target) {
|
|
||||||
$row->status_target = "MEMENUHI TARGET";
|
|
||||||
} else {
|
|
||||||
$row->status_target = "TIDAK MEMENUHI TARGET";
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
$row->selisih_hari = null;
|
|
||||||
$row->status_target = "TIDAK ADA HASIL";
|
|
||||||
}
|
|
||||||
return $row;
|
|
||||||
});
|
|
||||||
$rekap = $hasil->groupBy('kd_spesimen')->map(function($group){
|
|
||||||
|
|
||||||
return [
|
$rekap = collect(array_values($rekapRows));
|
||||||
'jenis_pemeriksaan' => $group->first()->kd_spesimen,
|
|
||||||
'memenuhi' => $group->where('status_target', 'MEMENUHI TARGET')->count(),
|
|
||||||
'tidak_memenuhi' => $group->where('status_target', 'TIDAK MEMENUHI TARGET')->count(),
|
|
||||||
'tidak_ada_hasil' => $group->where('status_target', 'TIDAK ADA HASIL')->count(),
|
|
||||||
'total' => $group->count()
|
|
||||||
];
|
|
||||||
|
|
||||||
})->values();
|
|
||||||
return view('cetak.tatreport', [
|
return view('cetak.tatreport', [
|
||||||
'bulan' => $bulan,
|
'bulan' => $bulan,
|
||||||
'tahun' => $tahun,
|
'tahun' => $tahun,
|
||||||
'detail' => $hasil,
|
|
||||||
'rekap' => $rekap
|
'rekap' => $rekap
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,101 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Livewire;
|
||||||
|
|
||||||
|
use App\BioCabinet;
|
||||||
|
use App\BioRack;
|
||||||
|
use Livewire\Component;
|
||||||
|
|
||||||
|
class BiorepositoryVisual extends Component
|
||||||
|
{
|
||||||
|
public ?int $selectedCabinetId = null;
|
||||||
|
public ?int $selectedRackId = null;
|
||||||
|
public ?int $selectedSlot = null;
|
||||||
|
public ?int $selectedShelf = null;
|
||||||
|
public ?int $selectedBox = null;
|
||||||
|
|
||||||
|
public function mount(): void
|
||||||
|
{
|
||||||
|
$this->selectedCabinetId = BioCabinet::orderBy('name', 'ASC')->value('id');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function selectCabinet(int $cabinetId): void
|
||||||
|
{
|
||||||
|
$this->selectedCabinetId = $cabinetId;
|
||||||
|
$this->selectedRackId = null;
|
||||||
|
$this->resetPosition();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function selectRack(int $rackId): void
|
||||||
|
{
|
||||||
|
$this->selectedRackId = $rackId;
|
||||||
|
$this->resetPosition();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function selectSlot(int $slot): void
|
||||||
|
{
|
||||||
|
$this->selectedSlot = $slot;
|
||||||
|
$this->selectedShelf = null;
|
||||||
|
$this->selectedBox = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function selectShelf(int $shelf): void
|
||||||
|
{
|
||||||
|
$this->selectedShelf = $shelf;
|
||||||
|
$this->selectedBox = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function selectBox(int $box): void
|
||||||
|
{
|
||||||
|
$this->selectedBox = $box;
|
||||||
|
}
|
||||||
|
|
||||||
|
public function render()
|
||||||
|
{
|
||||||
|
$cabinets = BioCabinet::withCount(['racks', 'specimens'])
|
||||||
|
->orderBy('name', 'ASC')
|
||||||
|
->get();
|
||||||
|
|
||||||
|
if (!$this->selectedCabinetId && $cabinets->isNotEmpty()) {
|
||||||
|
$this->selectedCabinetId = (int) $cabinets->first()->id;
|
||||||
|
}
|
||||||
|
|
||||||
|
$selectedCabinet = $this->selectedCabinetId
|
||||||
|
? BioCabinet::with([
|
||||||
|
'racks' => function ($query) {
|
||||||
|
$query->withCount('specimens')
|
||||||
|
->orderBy('rack_number', 'ASC')
|
||||||
|
->orderBy('code', 'ASC');
|
||||||
|
},
|
||||||
|
])->find($this->selectedCabinetId)
|
||||||
|
: null;
|
||||||
|
|
||||||
|
$selectedRack = $this->selectedRackId
|
||||||
|
? BioRack::with(['specimens' => function ($query) {
|
||||||
|
$query->orderBy('slot_number', 'ASC')
|
||||||
|
->orderBy('shelf_number', 'ASC')
|
||||||
|
->orderBy('box_number', 'ASC')
|
||||||
|
->orderBy('tube_number', 'ASC');
|
||||||
|
}])->find($this->selectedRackId)
|
||||||
|
: null;
|
||||||
|
|
||||||
|
if ($selectedRack && (int) $selectedRack->cabinet_id !== (int) $this->selectedCabinetId) {
|
||||||
|
$selectedRack = null;
|
||||||
|
$this->selectedRackId = null;
|
||||||
|
$this->resetPosition();
|
||||||
|
}
|
||||||
|
|
||||||
|
return view('livewire.biorepository-visual', [
|
||||||
|
'cabinets' => $cabinets,
|
||||||
|
'selectedCabinet' => $selectedCabinet,
|
||||||
|
'selectedRack' => $selectedRack,
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
private function resetPosition(): void
|
||||||
|
{
|
||||||
|
$this->selectedSlot = null;
|
||||||
|
$this->selectedShelf = null;
|
||||||
|
$this->selectedBox = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,40 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
use Illuminate\Database\Migrations\Migration;
|
||||||
|
use Illuminate\Database\Schema\Blueprint;
|
||||||
|
use Illuminate\Support\Facades\DB;
|
||||||
|
use Illuminate\Support\Facades\Schema;
|
||||||
|
|
||||||
|
return new class extends Migration
|
||||||
|
{
|
||||||
|
public function up(): void
|
||||||
|
{
|
||||||
|
Schema::table('bio_racks', function (Blueprint $table) {
|
||||||
|
if (!Schema::hasColumn('bio_racks', 'slot_count')) {
|
||||||
|
$table->integer('slot_count')->default(1)->after('name');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
DB::table('bio_racks')
|
||||||
|
->where(function ($query) {
|
||||||
|
$query->whereNull('slot_count')
|
||||||
|
->orWhere('slot_count', '<=', 1);
|
||||||
|
})
|
||||||
|
->orderBy('id')
|
||||||
|
->get(['id', 'level'])
|
||||||
|
->each(function ($rack) {
|
||||||
|
DB::table('bio_racks')
|
||||||
|
->where('id', $rack->id)
|
||||||
|
->update(['slot_count' => max((int) ($rack->level ?? 1), 1)]);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public function down(): void
|
||||||
|
{
|
||||||
|
Schema::table('bio_racks', function (Blueprint $table) {
|
||||||
|
if (Schema::hasColumn('bio_racks', 'slot_count')) {
|
||||||
|
$table->dropColumn('slot_count');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -17,6 +17,72 @@
|
|||||||
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
|
grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
|
||||||
gap: 12px;
|
gap: 12px;
|
||||||
}
|
}
|
||||||
|
.bio-step-panel {
|
||||||
|
border: 1px solid #d7e3ef;
|
||||||
|
border-radius: 8px;
|
||||||
|
background: #ffffff;
|
||||||
|
padding: 12px;
|
||||||
|
margin-bottom: 14px;
|
||||||
|
}
|
||||||
|
.bio-step-title {
|
||||||
|
font-weight: 700;
|
||||||
|
color: #1b3a57;
|
||||||
|
margin-bottom: 10px;
|
||||||
|
}
|
||||||
|
.bio-choice-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
|
||||||
|
gap: 10px;
|
||||||
|
}
|
||||||
|
.bio-choice-wrap {
|
||||||
|
position: relative;
|
||||||
|
}
|
||||||
|
.bio-choice {
|
||||||
|
display: block;
|
||||||
|
width: 100%;
|
||||||
|
min-height: 92px;
|
||||||
|
border: 1px solid #d7e3ef;
|
||||||
|
border-radius: 6px;
|
||||||
|
background: #f8fbff;
|
||||||
|
color: #1b3a57;
|
||||||
|
text-align: left;
|
||||||
|
padding: 10px;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
.bio-choice strong,
|
||||||
|
.bio-choice span,
|
||||||
|
.bio-choice small {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
.bio-choice small {
|
||||||
|
color: #6c757d;
|
||||||
|
margin-top: 3px;
|
||||||
|
}
|
||||||
|
.bio-choice.active,
|
||||||
|
.bio-number.active {
|
||||||
|
border-color: #188ae2;
|
||||||
|
background: #eaf5ff;
|
||||||
|
box-shadow: inset 0 0 0 1px #188ae2;
|
||||||
|
}
|
||||||
|
.bio-delete-form {
|
||||||
|
position: absolute;
|
||||||
|
top: 8px;
|
||||||
|
right: 8px;
|
||||||
|
}
|
||||||
|
.bio-number-grid {
|
||||||
|
display: grid;
|
||||||
|
grid-template-columns: repeat(auto-fill, minmax(96px, 1fr));
|
||||||
|
gap: 8px;
|
||||||
|
}
|
||||||
|
.bio-number {
|
||||||
|
border: 1px solid #d7e3ef;
|
||||||
|
border-radius: 6px;
|
||||||
|
background: #f8fbff;
|
||||||
|
color: #1b3a57;
|
||||||
|
padding: 9px 6px;
|
||||||
|
cursor: pointer;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
.rack-box {
|
.rack-box {
|
||||||
border: 1px solid #d7e3ef;
|
border: 1px solid #d7e3ef;
|
||||||
border-radius: 10px;
|
border-radius: 10px;
|
||||||
@@ -58,6 +124,7 @@
|
|||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
|
min-height: 34px;
|
||||||
}
|
}
|
||||||
.slot-btn.slot-filled {
|
.slot-btn.slot-filled {
|
||||||
background: #fce8e8;
|
background: #fce8e8;
|
||||||
@@ -65,6 +132,10 @@
|
|||||||
color: #8d1f1f;
|
color: #8d1f1f;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
|
.slot-btn span,
|
||||||
|
.slot-btn small {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
.oldest-highlight {
|
.oldest-highlight {
|
||||||
border: 1px solid #ffd58f;
|
border: 1px solid #ffd58f;
|
||||||
background: #fff8ea;
|
background: #fff8ea;
|
||||||
@@ -163,94 +234,10 @@
|
|||||||
<div class="alert alert-warning m-b-20">Belum ada data spesimen.</div>
|
<div class="alert alert-warning m-b-20">Belum ada data spesimen.</div>
|
||||||
@endif
|
@endif
|
||||||
|
|
||||||
<h4 class="m-b-20">Visualisasi Lemari, Rack, Shelf, Box, dan Tube</h4>
|
<h4 class="m-b-20">Visualisasi Lemari, Rack, Slot, Shelf, Box, dan Tube</h4>
|
||||||
<p class="text-muted">Klik nomor tube berwarna biru untuk mengisi spesimen. Tube merah artinya sudah terisi.</p>
|
<p class="text-muted">Pilih posisi dari lemari sampai box. Tube biru bisa diisi, tube merah sudah terisi.</p>
|
||||||
|
|
||||||
@forelse($cabinets as $cabinet)
|
@livewire('biorepository-visual')
|
||||||
<div class="cabinet-visual">
|
|
||||||
<div class="d-flex justify-content-between align-items-start m-b-15">
|
|
||||||
<h5 class="m-b-0">{{ $cabinet->code }} - {{ $cabinet->name }} <small class="text-muted">({{ $cabinet->location ?? 'Lokasi belum diisi' }})</small></h5>
|
|
||||||
<form method="POST" action="{{ route('biorepository.deleteCabinet', $cabinet->id) }}" class="js-delete-cabinet">
|
|
||||||
@csrf
|
|
||||||
<button type="submit" class="btn btn-sm btn-danger">Delete Lemari</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<div class="rack-grid">
|
|
||||||
@forelse($cabinet->racks as $rack)
|
|
||||||
@php
|
|
||||||
$tubeMap = [];
|
|
||||||
foreach ($rack->specimens as $item) {
|
|
||||||
if ($item->shelf_number && $item->tube_number) {
|
|
||||||
$tubeMap[$item->shelf_number.'-'.$item->tube_number] = $item;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
$shelfCount = (int) $rack->level;
|
|
||||||
$tubeCapacity = (int) $rack->capacity;
|
|
||||||
@endphp
|
|
||||||
<div class="rack-box">
|
|
||||||
<div class="d-flex justify-content-between align-items-start">
|
|
||||||
<div class="rack-header">{{ $rack->code }} - {{ $rack->name }}</div>
|
|
||||||
<form method="POST" action="{{ route('biorepository.deleteRack', $rack->id) }}" class="js-delete-rack">
|
|
||||||
@csrf
|
|
||||||
<button type="submit" class="btn btn-xs btn-danger">Delete Rack</button>
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<div style="font-size:12px;">Rack No {{ $rack->rack_number ?? $rack->id }} | Total Shelf {{ $shelfCount }} | 1 Box per Shelf | Tube per Box {{ $tubeCapacity }}</div>
|
|
||||||
<div style="font-size:12px;">Terisi: {{ $rack->specimens->count() }}</div>
|
|
||||||
|
|
||||||
@if($shelfCount > 0 && $tubeCapacity > 0)
|
|
||||||
@for($shelf = 1; $shelf <= $shelfCount; $shelf++)
|
|
||||||
<div class="shelf-section">
|
|
||||||
<div style="font-size:12px;"><b>Shelf {{ $shelf }}</b> - Box 1 (Tube 1-{{ $tubeCapacity }})</div>
|
|
||||||
<div class="tube-grid">
|
|
||||||
@for($tube = 1; $tube <= $tubeCapacity; $tube++)
|
|
||||||
@php $tubeKey = $shelf.'-'.$tube; @endphp
|
|
||||||
@if(isset($tubeMap[$tubeKey]))
|
|
||||||
<button type="button"
|
|
||||||
class="slot-btn slot-filled js-slot-filled"
|
|
||||||
style="font-size:7px; line-height:1.1; padding:4px 2px;"
|
|
||||||
data-specimen-id="{{ $tubeMap[$tubeKey]->id }}"
|
|
||||||
data-rack-id="{{ $rack->id }}"
|
|
||||||
data-shelf="{{ $shelf }}"
|
|
||||||
data-rackno="{{ $rack->rack_number ?? $rack->id }}"
|
|
||||||
data-slot="{{ $shelf }}"
|
|
||||||
data-box="1"
|
|
||||||
data-tube="{{ $tube }}"
|
|
||||||
data-bakteri="{{ $tubeMap[$tubeKey]->bacteria_name ?? $tubeMap[$tubeKey]->specimen_name }}"
|
|
||||||
data-strain="{{ $tubeMap[$tubeKey]->strain }}"
|
|
||||||
data-volume="{{ $tubeMap[$tubeKey]->volume ?? 0 }}"
|
|
||||||
title="{{ $tubeMap[$tubeKey]->specimen_code }} - {{ $tubeMap[$tubeKey]->bacteria_name ?? $tubeMap[$tubeKey]->specimen_name }} / {{ $tubeMap[$tubeKey]->strain }}">
|
|
||||||
{{ ($tubeMap[$tubeKey]->bacteria_name ?? $tubeMap[$tubeKey]->specimen_name) }} / {{ $tubeMap[$tubeKey]->strain ?? '-' }}<br />
|
|
||||||
{{ $tubeMap[$tubeKey]->volume ?? 0 }} ml
|
|
||||||
</button>
|
|
||||||
@else
|
|
||||||
<button type="button"
|
|
||||||
class="slot-btn js-slot"
|
|
||||||
data-rack-id="{{ $rack->id }}"
|
|
||||||
data-shelf="{{ $shelf }}"
|
|
||||||
data-rackno="{{ $rack->rack_number ?? $rack->id }}"
|
|
||||||
data-slot="{{ $shelf }}"
|
|
||||||
data-box="1"
|
|
||||||
data-tube="{{ $tube }}">
|
|
||||||
{{ $tube }}
|
|
||||||
</button>
|
|
||||||
@endif
|
|
||||||
@endfor
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@endfor
|
|
||||||
@else
|
|
||||||
<div class="alert alert-light m-b-0 m-t-10">Konfigurasi rack belum lengkap.</div>
|
|
||||||
@endif
|
|
||||||
</div>
|
|
||||||
@empty
|
|
||||||
<div class="alert alert-light m-b-0">Belum ada rack pada lemari ini.</div>
|
|
||||||
@endforelse
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
@empty
|
|
||||||
<div class="alert alert-warning">Belum ada data lemari biorepository.</div>
|
|
||||||
@endforelse
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="tab-pane" id="tabList">
|
<div class="tab-pane" id="tabList">
|
||||||
@@ -405,15 +392,25 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="form-row">
|
<div class="form-row">
|
||||||
<div class="form-group col-md-6">
|
<div class="form-group col-md-6">
|
||||||
<label>Jumlah Shelf per Rack (4-6)</label>
|
<label>Jumlah Slot per Rack</label>
|
||||||
|
<input type="number" name="slot_count" class="form-control" min="1" max="20" value="1" required>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-md-6">
|
||||||
|
<label>Jumlah Shelf per Slot (4-6)</label>
|
||||||
<input type="number" name="level" class="form-control" min="4" max="6" value="4" required>
|
<input type="number" name="level" class="form-control" min="4" max="6" value="4" required>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-row">
|
||||||
|
<div class="form-group col-md-6">
|
||||||
|
<label>Jumlah Box per Shelf</label>
|
||||||
|
<input type="number" name="box_number" class="form-control" min="1" max="20" value="1" required>
|
||||||
|
</div>
|
||||||
<div class="form-group col-md-6">
|
<div class="form-group col-md-6">
|
||||||
<label>Tube per Box (16-100)</label>
|
<label>Tube per Box (16-100)</label>
|
||||||
<input type="number" name="capacity" class="form-control" min="16" max="100" value="16" required>
|
<input type="number" name="capacity" class="form-control" min="16" max="100" value="16" required>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<small class="text-muted">Rack number dibuat otomatis oleh sistem. Struktur: 1 rack memiliki 4-6 shelf, setiap shelf memiliki 1 box, setiap box 16-100 tube.</small>
|
<small class="text-muted">Rack number dibuat otomatis oleh sistem. Struktur: lemari -> rack -> slot -> shelf -> box -> tube.</small>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-footer">
|
<div class="modal-footer">
|
||||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
|
<button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
|
||||||
@@ -459,11 +456,11 @@
|
|||||||
<input type="number" class="form-control" id="raknomor" name="raknomor" readonly>
|
<input type="number" class="form-control" id="raknomor" name="raknomor" readonly>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-4">
|
<div class="col-lg-4">
|
||||||
<label>Slot Number (Sama dengan Shelf)</label>
|
<label>Slot Number</label>
|
||||||
<input type="number" class="form-control" id="slotnomor" name="slotnomor" readonly>
|
<input type="number" class="form-control" id="slotnomor" name="slotnomor" readonly>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-4">
|
<div class="col-lg-4">
|
||||||
<label>Box Number (1 per Shelf)</label>
|
<label>Box Number</label>
|
||||||
<input type="number" class="form-control" id="boxnomor" name="boxnomor" readonly>
|
<input type="number" class="form-control" id="boxnomor" name="boxnomor" readonly>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-lg-4">
|
<div class="col-lg-4">
|
||||||
|
|||||||
@@ -666,7 +666,7 @@ $(document).ready(function () {
|
|||||||
type : 'error',
|
type : 'error',
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
var url = '{{url('/')}}/tatreport?bulan='+bulan+'?tahun='+tahun;
|
var url = '{{url('/')}}/tatreport?bulan='+bulan+'&tahun='+tahun;
|
||||||
window.location.href = url;
|
window.location.href = url;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -355,7 +355,7 @@
|
|||||||
@php
|
@php
|
||||||
foreach($mikroorganismes[$keys[$i]] as $key => $value) {
|
foreach($mikroorganismes[$keys[$i]] as $key => $value) {
|
||||||
@endphp
|
@endphp
|
||||||
<option value="{{ $value['name'] }}">{!! $value['name'] !!}</option>
|
<option value="{{ $value['name'] }}">{{ $mikroorganismestlist[$i] }} - {!! $value['name'] !!}</option>
|
||||||
@php
|
@php
|
||||||
}
|
}
|
||||||
@endphp
|
@endphp
|
||||||
@@ -575,142 +575,103 @@
|
|||||||
<label class="col-form-label">Pertumbuhan Koloni (Kultur Primer):</label>
|
<label class="col-form-label">Pertumbuhan Koloni (Kultur Primer):</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-lg-12">
|
<div class="form-group col-lg-12">
|
||||||
<label class="col-form-label">Kirby bauer :</label>
|
<table class="table table-striped table-bordered">
|
||||||
<div class="form-row">
|
<tr>
|
||||||
<div class="form-group col-lg-4">
|
<td colspan="8" style="text-align: center;">Kirby bauer</td>
|
||||||
<label for="id_kbamc" class="col-form-label">AMC</label>
|
</tr>
|
||||||
<div class="form-row">
|
<tr>
|
||||||
<div class="form-group col-lg-6">
|
<td colspan="2" style="text-align: center;"><strong>AMC</strong></td>
|
||||||
<select class="form-control pilihankirby" id="id_kbamc" name="id_kbamc">
|
<td colspan="2" style="text-align: center;"><strong>AK</strong></td>
|
||||||
<option value="">Pilih Salah Satu</option>
|
<td colspan="2" style="text-align: center;"><strong>FOS</strong></td>
|
||||||
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
<td colspan="2" style="text-align: center;"><strong>SCF</strong></td>
|
||||||
@php
|
</tr>
|
||||||
$mulai = 1;
|
<tr>
|
||||||
while ($mulai != 43){
|
<td>
|
||||||
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
<select class="form-control pilihankirby" id="id_kbamc" name="id_kbamc">
|
||||||
$mulai++;
|
<option value="">Pilih Salah Satu</option>
|
||||||
}
|
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
||||||
@endphp
|
@php
|
||||||
</select>
|
$mulai = 1;
|
||||||
</div>
|
while ($mulai != 43){
|
||||||
<div class="form-group col-lg-6">
|
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
||||||
<select class="form-control pilihankirby" id="id_sirkbamc" name="id_sirkbamc">
|
$mulai++;
|
||||||
<option value="">Pick</option>
|
}
|
||||||
<option value="S">S</option>
|
@endphp
|
||||||
<option value="I">I</option>
|
</select>
|
||||||
<option value="R">R</option>
|
</td>
|
||||||
</select>
|
<td>
|
||||||
</div>
|
<select class="form-control pilihankirby" id="id_sirkbamc" name="id_sirkbamc">
|
||||||
</div>
|
<option value="">Pick</option>
|
||||||
</div>
|
<option value="S">S</option>
|
||||||
<div style="overflow: hidden; display: none;">
|
<option value="I">I</option>
|
||||||
<label for="id_kblef" class="col-form-label">LEV</label>
|
<option value="R">R</option>
|
||||||
<div class="form-row">
|
</select>
|
||||||
<div class="form-group col-lg-6">
|
</td>
|
||||||
<select class="form-control pilihankirby" id="id_kblef" name="id_kblef">
|
<td>
|
||||||
<option value="">Pilih Salah Satu</option>
|
<select class="form-control pilihankirby" id="id_kbak" name="id_kbak">
|
||||||
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
<option value="">Pilih Salah Satu</option>
|
||||||
@php
|
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
||||||
$mulai = 1;
|
@php
|
||||||
while ($mulai != 43){
|
$mulai = 1;
|
||||||
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
while ($mulai != 43){
|
||||||
$mulai++;
|
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
||||||
}
|
$mulai++;
|
||||||
@endphp
|
}
|
||||||
</select>
|
@endphp
|
||||||
</div>
|
</select>
|
||||||
<div class="form-group col-lg-6">
|
</td>
|
||||||
<select class="form-control pilihankirby" id="id_sirkblef" name="id_sirkblef">
|
<td>
|
||||||
<option value="">Pick</option>
|
<select class="form-control pilihankirby" id="id_sirkbak" name="id_sirkbak">
|
||||||
<option value="S">S</option>
|
<option value="">Pick</option>
|
||||||
<option value="I">I</option>
|
<option value="S">S</option>
|
||||||
<option value="R">R</option>
|
<option value="I">I</option>
|
||||||
</select>
|
<option value="R">R</option>
|
||||||
</div>
|
</select>
|
||||||
</div>
|
</td>
|
||||||
</div>
|
<td>
|
||||||
<div class="form-group col-lg-4">
|
<select class="form-control pilihankirby" id="id_kbfos" name="id_kbfos">
|
||||||
<label for="id_kbak" class="col-form-label">AK</label>
|
<option value="">Pilih Salah Satu</option>
|
||||||
<div class="form-row">
|
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
||||||
<div class="form-group col-lg-6">
|
@php
|
||||||
<select class="form-control pilihankirby" id="id_kbak" name="id_kbak">
|
$mulai = 1;
|
||||||
<option value="">Pilih Salah Satu</option>
|
while ($mulai != 43){
|
||||||
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
||||||
@php
|
$mulai++;
|
||||||
$mulai = 1;
|
}
|
||||||
while ($mulai != 43){
|
@endphp
|
||||||
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
</select>
|
||||||
$mulai++;
|
</td>
|
||||||
}
|
<td>
|
||||||
@endphp
|
<select class="form-control pilihankirby" id="id_sirkbfos" name="id_sirkbfos">
|
||||||
</select>
|
<option value="">Pick</option>
|
||||||
</div>
|
<option value="S">S</option>
|
||||||
<div class="form-group col-lg-6">
|
<option value="I">I</option>
|
||||||
<select class="form-control pilihankirby" id="id_sirkbak" name="id_sirkbak">
|
<option value="R">R</option>
|
||||||
<option value="">Pick</option>
|
</select>
|
||||||
<option value="S">S</option>
|
</td>
|
||||||
<option value="I">I</option>
|
<td>
|
||||||
<option value="R">R</option>
|
<select class="form-control pilihankirby" id="id_kbscf" name="id_kbscf">
|
||||||
</select>
|
<option value="">Pilih Salah Satu</option>
|
||||||
</div>
|
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
||||||
</div>
|
@php
|
||||||
</div>
|
$mulai = 1;
|
||||||
<div class="form-group col-lg-4">
|
while ($mulai != 43){
|
||||||
<label for="id_kbfos" class="col-form-label">FOS</label>
|
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
||||||
<div class="form-row">
|
$mulai++;
|
||||||
<div class="form-group col-lg-6">
|
}
|
||||||
<select class="form-control pilihankirby" id="id_kbfos" name="id_kbfos">
|
@endphp
|
||||||
<option value="">Pilih Salah Satu</option>
|
</select>
|
||||||
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
</td>
|
||||||
@php
|
<td>
|
||||||
$mulai = 1;
|
<select class="form-control pilihankirby" id="id_sirkbscf" name="id_sirkbscf">
|
||||||
while ($mulai != 43){
|
<option value="">Pick</option>
|
||||||
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
<option value="S">S</option>
|
||||||
$mulai++;
|
<option value="I">I</option>
|
||||||
}
|
<option value="R">R</option>
|
||||||
@endphp
|
</select>
|
||||||
</select>
|
</td>
|
||||||
</div>
|
</tr>
|
||||||
<div class="form-group col-lg-6">
|
</table>
|
||||||
<select class="form-control pilihankirby" id="id_sirkbfos" name="id_sirkbfos">
|
|
||||||
<option value="">Pick</option>
|
|
||||||
<option value="S">S</option>
|
|
||||||
<option value="I">I</option>
|
|
||||||
<option value="R">R</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-row">
|
|
||||||
<div class="form-group col-lg-4">
|
|
||||||
<label for="id_kbscf" class="col-form-label">SCF</label>
|
|
||||||
<div class="form-row">
|
|
||||||
<div class="form-group col-lg-6">
|
|
||||||
<select class="form-control pilihankirby" id="id_kbscf" name="id_kbscf">
|
|
||||||
<option value="">Pilih Salah Satu</option>
|
|
||||||
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
|
||||||
@php
|
|
||||||
$mulai = 1;
|
|
||||||
while ($mulai != 43){
|
|
||||||
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
|
||||||
$mulai++;
|
|
||||||
}
|
|
||||||
@endphp
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="form-group col-lg-6">
|
|
||||||
<select class="form-control pilihankirby" id="id_sirkbscf" name="id_sirkbscf">
|
|
||||||
<option value="">Pick</option>
|
|
||||||
<option value="S">S</option>
|
|
||||||
<option value="I">I</option>
|
|
||||||
<option value="R">R</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-lg-12">
|
<div class="form-group col-lg-12">
|
||||||
<label for="id_biakankultur" class="col-form-label">Biakan Kultur (Aerob / Anaerob)</label>
|
<label for="id_biakankultur" class="col-form-label">Biakan Kultur (Aerob / Anaerob)</label>
|
||||||
@@ -727,38 +688,85 @@
|
|||||||
<span class="badge badge-primary">C. Tes Kepekaan Antibiotika: (S: Sensitif ; I : Intermediate ; R: Resisten)</span>
|
<span class="badge badge-primary">C. Tes Kepekaan Antibiotika: (S: Sensitif ; I : Intermediate ; R: Resisten)</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-lg-12">
|
<div class="form-group col-lg-12">
|
||||||
<ul class="nav nav-tabs tabs-bordered nav-justified">
|
<div class="form-row">
|
||||||
<li class="nav-item">
|
<div class="form-group col-lg-12">
|
||||||
<a href="#media_bap" data-toggle="tab" aria-expanded="false" class="nav-link active">
|
<div class="card">
|
||||||
<i class="fi-monitor mr-2"></i> Media BAP
|
<div class="card-body">
|
||||||
</a>
|
<h5 class="card-title">Ringkasan Hasil Terakhir</h5>
|
||||||
</li>
|
<h6 class="card-subtitle text-muted" id="last_updated">Diperbaharui :</h6>
|
||||||
<li class="nav-item">
|
</div>
|
||||||
<a href="#media_cap" data-toggle="tab" aria-expanded="true" class="nav-link">
|
<div class="card-body row">
|
||||||
<i class="fi-monitor mr-2"></i> Media CAP
|
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
|
||||||
</a>
|
<div class="card-box tilebox-one">
|
||||||
</li>
|
<i class="icon-layers float-right text-muted"></i>
|
||||||
<li class="nav-item">
|
<h6 class="text-muted text-uppercase mt-0">Media BAP</h6>
|
||||||
<a href="#media_mcconkey" data-toggle="tab" aria-expanded="true" class="nav-link">
|
<h2 class="m-b-20" id="status_bap_status">-</h2>
|
||||||
<i class="fi-monitor mr-2"></i> Media Mc Conkey
|
<span class="badge badge-primary" id="badge_bap_status"> - </span>
|
||||||
</a>
|
</div>
|
||||||
</li>
|
</div>
|
||||||
<li class="nav-item">
|
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
|
||||||
<a href="#media_sda" data-toggle="tab" aria-expanded="true" class="nav-link">
|
<div class="card-box tilebox-one">
|
||||||
<i class="fi-monitor mr-2"></i> Kultur Jamur
|
<i class="icon-layers float-right text-muted"></i>
|
||||||
</a>
|
<h6 class="text-muted text-uppercase mt-0">Media CAP</h6>
|
||||||
</li>
|
<h2 class="m-b-20" id="status_cap_status">-</h2>
|
||||||
<li class="nav-item">
|
<span class="badge badge-danger" id="badge_cap_status"> - </span>
|
||||||
<a href="#media_sellainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
|
</div>
|
||||||
<i class="fi-monitor mr-2"></i> Media Selektif lainnya
|
</div>
|
||||||
</a>
|
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
|
||||||
</li>
|
<div class="card-box tilebox-one">
|
||||||
<li class="nav-item">
|
<i class="icon-layers float-right text-muted"></i>
|
||||||
<a href="#media_tamlainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
|
<h6 class="text-muted text-uppercase mt-0">Mc Conkey</h6>
|
||||||
<i class="fi-monitor mr-2"></i> Pemeriksaan Tambahan Lainnya
|
<h2 class="m-b-20" id="status_mcconkey_status">-</h2>
|
||||||
</a>
|
<span class="badge badge-info" id="badge_mcconkey_status"> - </span>
|
||||||
</li>
|
</div>
|
||||||
</ul>
|
</div>
|
||||||
|
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
|
||||||
|
<div class="card-box tilebox-one">
|
||||||
|
<i class="icon-layers float-right text-muted"></i>
|
||||||
|
<h6 class="text-muted text-uppercase mt-0">Media Jamur</h6>
|
||||||
|
<h2 class="m-b-20" id="status_jamur_status">-</h2>
|
||||||
|
<span class="badge badge-warning" id="badge_jamur_status"> - </span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-lg-12">
|
||||||
|
<ul class="nav nav-tabs tabs-bordered nav-justified">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#media_bap" data-toggle="tab" aria-expanded="false" class="nav-link active">
|
||||||
|
<i class="fi-monitor mr-2"></i> Media BAP
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#media_cap" data-toggle="tab" aria-expanded="true" class="nav-link">
|
||||||
|
<i class="fi-monitor mr-2"></i> Media CAP
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#media_mcconkey" data-toggle="tab" aria-expanded="true" class="nav-link">
|
||||||
|
<i class="fi-monitor mr-2"></i> Media Mc Conkey
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#media_sda" data-toggle="tab" aria-expanded="true" class="nav-link">
|
||||||
|
<i class="fi-monitor mr-2"></i> Kultur Jamur
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#media_sellainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
|
||||||
|
<i class="fi-monitor mr-2"></i> Media Selektif lainnya
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#media_tamlainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
|
||||||
|
<i class="fi-monitor mr-2"></i> Pemeriksaan Tambahan Lainnya
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div class="tab-pane active" id="media_bap">
|
<div class="tab-pane active" id="media_bap">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
@@ -1070,7 +1078,7 @@
|
|||||||
@php
|
@php
|
||||||
foreach($mikroorganismes[$keys[$i]] as $key => $value) {
|
foreach($mikroorganismes[$keys[$i]] as $key => $value) {
|
||||||
@endphp
|
@endphp
|
||||||
<option value="{{ $value['name'] }}">{!! $value['name'] !!}</option>
|
<option value="{{ $value['name'] }}">{{ $mikroorganismestlist[$i] }} - {!! $value['name'] !!}</option>
|
||||||
@php
|
@php
|
||||||
}
|
}
|
||||||
@endphp
|
@endphp
|
||||||
@@ -2113,6 +2121,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group setelahdipilihtemplate">
|
<div class="form-group setelahdipilihtemplate">
|
||||||
|
<!---
|
||||||
<div class="form-group account-btn text-center m-t-10">
|
<div class="form-group account-btn text-center m-t-10">
|
||||||
<button type="button" class="btn btn-light waves-effect" id="btnabbot">
|
<button type="button" class="btn btn-light waves-effect" id="btnabbot">
|
||||||
<i class="mdi mdi-adobe mr-1"></i> Abbot
|
<i class="mdi mdi-adobe mr-1"></i> Abbot
|
||||||
@@ -2121,6 +2130,7 @@
|
|||||||
<i class="mdi mdi-alphabetical-variant mr-1"></i> SIR Ab
|
<i class="mdi mdi-alphabetical-variant mr-1"></i> SIR Ab
|
||||||
</button>
|
</button>
|
||||||
</div>
|
</div>
|
||||||
|
--->
|
||||||
<ul class="nav nav-tabs tabs-bordered nav-justified">
|
<ul class="nav nav-tabs tabs-bordered nav-justified">
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<a href="#tabel_vitek" data-toggle="tab" aria-expanded="false" class="nav-link active">
|
<a href="#tabel_vitek" data-toggle="tab" aria-expanded="false" class="nav-link active">
|
||||||
@@ -3970,6 +3980,115 @@
|
|||||||
data: { nofoto: idne, komponen: 'Media Tambahan Lainnya', keterangan:'generatetblpertumbuhankoloni', _token: '{{csrf_token()}}' },
|
data: { nofoto: idne, komponen: 'Media Tambahan Lainnya', keterangan:'generatetblpertumbuhankoloni', _token: '{{csrf_token()}}' },
|
||||||
url: '{{ route("getResult") }}',
|
url: '{{ route("getResult") }}',
|
||||||
};
|
};
|
||||||
|
var summaryKoloni = {
|
||||||
|
bap: [],
|
||||||
|
cap: [],
|
||||||
|
mcconkey: [],
|
||||||
|
sdar1: [],
|
||||||
|
sdar2: [],
|
||||||
|
sdai1: [],
|
||||||
|
sdai2: [],
|
||||||
|
};
|
||||||
|
var summaryJamurKeys = ['sdar1', 'sdar2', 'sdai1', 'sdai2'];
|
||||||
|
var summaryGridMap = {
|
||||||
|
bap: '#gridmediabap',
|
||||||
|
cap: '#gridmediacap',
|
||||||
|
mcconkey: '#gridmediamcconkey',
|
||||||
|
sdar1: '#gridmediasdar1',
|
||||||
|
sdar2: '#gridmediasdar2',
|
||||||
|
sdai1: '#gridmediasdai1',
|
||||||
|
sdai2: '#gridmediasdai2',
|
||||||
|
};
|
||||||
|
|
||||||
|
function resetSummaryPertumbuhanKoloni()
|
||||||
|
{
|
||||||
|
$('#status_bap_status, #status_cap_status, #status_mcconkey_status, #status_jamur_status').html('-');
|
||||||
|
$('#badge_bap_status, #badge_cap_status, #badge_mcconkey_status, #badge_jamur_status').html(' - ');
|
||||||
|
$('#last_updated').html('Diperbaharui :');
|
||||||
|
}
|
||||||
|
|
||||||
|
function valueSummaryPertumbuhanKoloni(value)
|
||||||
|
{
|
||||||
|
return value === null || value === undefined || value === '' ? '-' : value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function timestampSummaryPertumbuhanKoloni(row)
|
||||||
|
{
|
||||||
|
if (!row) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
var timestamp = row.updated_at || row.tglpenyimpanan || '';
|
||||||
|
if (timestamp === '') {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
var parsed = Date.parse(String(timestamp).replace(' ', 'T'));
|
||||||
|
return isNaN(parsed) ? 0 : parsed;
|
||||||
|
}
|
||||||
|
|
||||||
|
function newestSummaryPertumbuhanKoloni(rows)
|
||||||
|
{
|
||||||
|
var newest = null;
|
||||||
|
$.each(rows || [], function(index, row) {
|
||||||
|
if (!newest || timestampSummaryPertumbuhanKoloni(row) >= timestampSummaryPertumbuhanKoloni(newest)) {
|
||||||
|
newest = row;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return newest;
|
||||||
|
}
|
||||||
|
|
||||||
|
function lastSummaryPertumbuhanKoloni(rows)
|
||||||
|
{
|
||||||
|
rows = rows || [];
|
||||||
|
return rows.length > 0 ? rows[rows.length - 1] : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateSummaryPertumbuhanKoloni()
|
||||||
|
{
|
||||||
|
var bap = lastSummaryPertumbuhanKoloni(summaryKoloni.bap);
|
||||||
|
var cap = lastSummaryPertumbuhanKoloni(summaryKoloni.cap);
|
||||||
|
var mcconkey = lastSummaryPertumbuhanKoloni(summaryKoloni.mcconkey);
|
||||||
|
var jamurRows = [];
|
||||||
|
var lastUpdatedRow = null;
|
||||||
|
|
||||||
|
$.each(summaryKoloni, function(key, rows) {
|
||||||
|
$.each(rows || [], function(index, row) {
|
||||||
|
if (!lastUpdatedRow || timestampSummaryPertumbuhanKoloni(row) > timestampSummaryPertumbuhanKoloni(lastUpdatedRow)) {
|
||||||
|
lastUpdatedRow = row;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$.each(summaryJamurKeys, function(index, key) {
|
||||||
|
jamurRows = jamurRows.concat(summaryKoloni[key] || []);
|
||||||
|
});
|
||||||
|
|
||||||
|
var jamur = newestSummaryPertumbuhanKoloni(jamurRows);
|
||||||
|
|
||||||
|
$('#status_bap_status').html(valueSummaryPertumbuhanKoloni(bap ? bap.kuman : null));
|
||||||
|
$('#badge_bap_status').html(valueSummaryPertumbuhanKoloni(bap ? bap.status : null));
|
||||||
|
$('#status_cap_status').html(valueSummaryPertumbuhanKoloni(cap ? cap.kuman : null));
|
||||||
|
$('#badge_cap_status').html(valueSummaryPertumbuhanKoloni(cap ? cap.status : null));
|
||||||
|
$('#status_mcconkey_status').html(valueSummaryPertumbuhanKoloni(mcconkey ? mcconkey.kuman : null));
|
||||||
|
$('#badge_mcconkey_status').html(valueSummaryPertumbuhanKoloni(mcconkey ? mcconkey.status : null));
|
||||||
|
$('#status_jamur_status').html(valueSummaryPertumbuhanKoloni(jamur ? jamur.kuman : null));
|
||||||
|
$('#badge_jamur_status').html(valueSummaryPertumbuhanKoloni(jamur ? jamur.status : null));
|
||||||
|
$('#last_updated').html('Diperbaharui : ' + valueSummaryPertumbuhanKoloni(lastUpdatedRow ? (lastUpdatedRow.updated_at || lastUpdatedRow.tglpenyimpanan) : null));
|
||||||
|
}
|
||||||
|
|
||||||
|
function bindSummaryPertumbuhanKoloni()
|
||||||
|
{
|
||||||
|
$.each(summaryGridMap, function(key, selector) {
|
||||||
|
$(selector).off('bindingcomplete.summaryKoloni').on('bindingcomplete.summaryKoloni', function() {
|
||||||
|
summaryKoloni[key] = $(selector).jqxGrid('getrows') || [];
|
||||||
|
updateSummaryPertumbuhanKoloni();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
resetSummaryPertumbuhanKoloni();
|
||||||
|
bindSummaryPertumbuhanKoloni();
|
||||||
|
|
||||||
$("#gridmediabap").jqxGrid({
|
$("#gridmediabap").jqxGrid({
|
||||||
width : '100%',
|
width : '100%',
|
||||||
source : srcjsonbap,
|
source : srcjsonbap,
|
||||||
|
|||||||
@@ -424,7 +424,7 @@
|
|||||||
@php
|
@php
|
||||||
foreach($mikroorganismes[$keys[$i]] as $key => $value) {
|
foreach($mikroorganismes[$keys[$i]] as $key => $value) {
|
||||||
@endphp
|
@endphp
|
||||||
<option value="{{ $value['name'] }}">{!! $value['name'] !!}</option>
|
<option value="{{ $value['name'] }}">{{ $mikroorganismestlist[$i] }} - {!! $value['name'] !!}</option>
|
||||||
@php
|
@php
|
||||||
}
|
}
|
||||||
@endphp
|
@endphp
|
||||||
@@ -647,141 +647,103 @@
|
|||||||
<label class="col-form-label">Pertumbuhan Koloni (Kultur Primer):</label>
|
<label class="col-form-label">Pertumbuhan Koloni (Kultur Primer):</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-lg-12">
|
<div class="form-group col-lg-12">
|
||||||
<label class="col-form-label">Kirby bauer :</label>
|
<table class="table table-striped table-bordered">
|
||||||
<div class="form-row">
|
<tr>
|
||||||
<div class="form-group col-lg-4">
|
<td colspan="8" style="text-align: center;">Kirby bauer</td>
|
||||||
<label for="id_kbamc" class="col-form-label">AMC</label>
|
</tr>
|
||||||
<div class="form-row">
|
<tr>
|
||||||
<div class="form-group col-lg-6">
|
<td colspan="2" style="text-align: center;"><strong>AMC</strong></td>
|
||||||
<select class="form-control pilihankirby" id="id_kbamc" name="id_kbamc">
|
<td colspan="2" style="text-align: center;"><strong>AK</strong></td>
|
||||||
<option value="">Pilih Salah Satu</option>
|
<td colspan="2" style="text-align: center;"><strong>FOS</strong></td>
|
||||||
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
<td colspan="2" style="text-align: center;"><strong>SCF</strong></td>
|
||||||
@php
|
</tr>
|
||||||
$mulai = 1;
|
<tr>
|
||||||
while ($mulai != 43){
|
<td>
|
||||||
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
<select class="form-control pilihankirby" id="id_kbamc" name="id_kbamc">
|
||||||
$mulai++;
|
<option value="">Pilih Salah Satu</option>
|
||||||
}
|
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
||||||
@endphp
|
@php
|
||||||
</select>
|
$mulai = 1;
|
||||||
</div>
|
while ($mulai != 43){
|
||||||
<div class="form-group col-lg-6">
|
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
||||||
<select class="form-control pilihankirby" id="id_sirkbamc" name="id_sirkbamc">
|
$mulai++;
|
||||||
<option value="">Pick</option>
|
}
|
||||||
<option value="S">S</option>
|
@endphp
|
||||||
<option value="I">I</option>
|
</select>
|
||||||
<option value="R">R</option>
|
</td>
|
||||||
</select>
|
<td>
|
||||||
</div>
|
<select class="form-control pilihankirby" id="id_sirkbamc" name="id_sirkbamc">
|
||||||
</div>
|
<option value="">Pick</option>
|
||||||
</div>
|
<option value="S">S</option>
|
||||||
<div style="overflow: hidden; display: none;">
|
<option value="I">I</option>
|
||||||
<label for="id_kblef" class="col-form-label">LEV</label>
|
<option value="R">R</option>
|
||||||
<div class="form-row">
|
</select>
|
||||||
<div class="form-group col-lg-6">
|
</td>
|
||||||
<select class="form-control pilihankirby" id="id_kblef" name="id_kblef">
|
<td>
|
||||||
<option value="">Pilih Salah Satu</option>
|
<select class="form-control pilihankirby" id="id_kbak" name="id_kbak">
|
||||||
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
<option value="">Pilih Salah Satu</option>
|
||||||
@php
|
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
||||||
$mulai = 1;
|
@php
|
||||||
while ($mulai != 43){
|
$mulai = 1;
|
||||||
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
while ($mulai != 43){
|
||||||
$mulai++;
|
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
||||||
}
|
$mulai++;
|
||||||
@endphp
|
}
|
||||||
</select>
|
@endphp
|
||||||
</div>
|
</select>
|
||||||
<div class="form-group col-lg-6">
|
</td>
|
||||||
<select class="form-control pilihankirby" id="id_sirkblef" name="id_sirkblef">
|
<td>
|
||||||
<option value="">Pick</option>
|
<select class="form-control pilihankirby" id="id_sirkbak" name="id_sirkbak">
|
||||||
<option value="S">S</option>
|
<option value="">Pick</option>
|
||||||
<option value="I">I</option>
|
<option value="S">S</option>
|
||||||
<option value="R">R</option>
|
<option value="I">I</option>
|
||||||
</select>
|
<option value="R">R</option>
|
||||||
</div>
|
</select>
|
||||||
</div>
|
</td>
|
||||||
</div>
|
<td>
|
||||||
<div class="form-group col-lg-4">
|
<select class="form-control pilihankirby" id="id_kbfos" name="id_kbfos">
|
||||||
<label for="id_kbak" class="col-form-label">AK</label>
|
<option value="">Pilih Salah Satu</option>
|
||||||
<div class="form-row">
|
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
||||||
<div class="form-group col-lg-6">
|
@php
|
||||||
<select class="form-control pilihankirby" id="id_kbak" name="id_kbak">
|
$mulai = 1;
|
||||||
<option value="">Pilih Salah Satu</option>
|
while ($mulai != 43){
|
||||||
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
||||||
@php
|
$mulai++;
|
||||||
$mulai = 1;
|
}
|
||||||
while ($mulai != 43){
|
@endphp
|
||||||
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
</select>
|
||||||
$mulai++;
|
</td>
|
||||||
}
|
<td>
|
||||||
@endphp
|
<select class="form-control pilihankirby" id="id_sirkbfos" name="id_sirkbfos">
|
||||||
</select>
|
<option value="">Pick</option>
|
||||||
</div>
|
<option value="S">S</option>
|
||||||
<div class="form-group col-lg-6">
|
<option value="I">I</option>
|
||||||
<select class="form-control pilihankirby" id="id_sirkbak" name="id_sirkbak">
|
<option value="R">R</option>
|
||||||
<option value="">Pick</option>
|
</select>
|
||||||
<option value="S">S</option>
|
</td>
|
||||||
<option value="I">I</option>
|
<td>
|
||||||
<option value="R">R</option>
|
<select class="form-control pilihankirby" id="id_kbscf" name="id_kbscf">
|
||||||
</select>
|
<option value="">Pilih Salah Satu</option>
|
||||||
</div>
|
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
||||||
</div>
|
@php
|
||||||
</div>
|
$mulai = 1;
|
||||||
<div class="form-group col-lg-4">
|
while ($mulai != 43){
|
||||||
<label for="id_kbfos" class="col-form-label">FOS</label>
|
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
||||||
<div class="form-row">
|
$mulai++;
|
||||||
<div class="form-group col-lg-6">
|
}
|
||||||
<select class="form-control pilihankirby" id="id_kbfos" name="id_kbfos">
|
@endphp
|
||||||
<option value="">Pilih Salah Satu</option>
|
</select>
|
||||||
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
</td>
|
||||||
@php
|
<td>
|
||||||
$mulai = 1;
|
<select class="form-control pilihankirby" id="id_sirkbscf" name="id_sirkbscf">
|
||||||
while ($mulai != 43){
|
<option value="">Pick</option>
|
||||||
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
<option value="S">S</option>
|
||||||
$mulai++;
|
<option value="I">I</option>
|
||||||
}
|
<option value="R">R</option>
|
||||||
@endphp
|
</select>
|
||||||
</select>
|
</td>
|
||||||
</div>
|
</tr>
|
||||||
<div class="form-group col-lg-6">
|
</table>
|
||||||
<select class="form-control pilihankirby" id="id_sirkbfos" name="id_sirkbfos">
|
|
||||||
<option value="">Pick</option>
|
|
||||||
<option value="S">S</option>
|
|
||||||
<option value="I">I</option>
|
|
||||||
<option value="R">R</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-row">
|
|
||||||
<div class="form-group col-lg-4">
|
|
||||||
<label for="id_kbscf" class="col-form-label">SCF</label>
|
|
||||||
<div class="form-row">
|
|
||||||
<div class="form-group col-lg-6">
|
|
||||||
<select class="form-control pilihankirby" id="id_kbscf" name="id_kbscf">
|
|
||||||
<option value="">Pilih Salah Satu</option>
|
|
||||||
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
|
||||||
@php
|
|
||||||
$mulai = 1;
|
|
||||||
while ($mulai != 43){
|
|
||||||
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
|
||||||
$mulai++;
|
|
||||||
}
|
|
||||||
@endphp
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="form-group col-lg-6">
|
|
||||||
<select class="form-control pilihankirby" id="id_sirkbscf" name="id_sirkbscf">
|
|
||||||
<option value="">Pick</option>
|
|
||||||
<option value="S">S</option>
|
|
||||||
<option value="I">I</option>
|
|
||||||
<option value="R">R</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-lg-12">
|
<div class="form-group col-lg-12">
|
||||||
<label for="id_biakankultur" class="col-form-label">Biakan Kultur (Aerob / Anaerob)</label>
|
<label for="id_biakankultur" class="col-form-label">Biakan Kultur (Aerob / Anaerob)</label>
|
||||||
@@ -798,38 +760,84 @@
|
|||||||
<span class="badge badge-primary">C. Tes Kepekaan Antibiotika: (S: Sensitif ; I : Intermediate ; R: Resisten)</span>
|
<span class="badge badge-primary">C. Tes Kepekaan Antibiotika: (S: Sensitif ; I : Intermediate ; R: Resisten)</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-lg-12">
|
<div class="form-group col-lg-12">
|
||||||
<ul class="nav nav-tabs tabs-bordered nav-justified">
|
<div class="form-row">
|
||||||
<li class="nav-item">
|
<div class="form-group col-lg-12">
|
||||||
<a href="#media_bap" data-toggle="tab" aria-expanded="false" class="nav-link active">
|
<div class="card">
|
||||||
<i class="fi-monitor mr-2"></i> Media BAP
|
<div class="card-body">
|
||||||
</a>
|
<h5 class="card-title">Ringkasan Hasil Terakhir</h5>
|
||||||
</li>
|
<h6 class="card-subtitle text-muted" id="last_updated">Diperbaharui :</h6>
|
||||||
<li class="nav-item">
|
</div>
|
||||||
<a href="#media_cap" data-toggle="tab" aria-expanded="true" class="nav-link">
|
<div class="card-body row">
|
||||||
<i class="fi-monitor mr-2"></i> Media CAP
|
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
|
||||||
</a>
|
<div class="card-box tilebox-one">
|
||||||
</li>
|
<i class="icon-layers float-right text-muted"></i>
|
||||||
<li class="nav-item">
|
<h6 class="text-muted text-uppercase mt-0">Media BAP</h6>
|
||||||
<a href="#media_mcconkey" data-toggle="tab" aria-expanded="true" class="nav-link">
|
<h2 class="m-b-20" id="status_bap_status">-</h2>
|
||||||
<i class="fi-monitor mr-2"></i> Media Mc Conkey
|
<span class="badge badge-primary" id="badge_bap_status"> - </span>
|
||||||
</a>
|
</div>
|
||||||
</li>
|
</div>
|
||||||
<li class="nav-item">
|
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
|
||||||
<a href="#media_sda" data-toggle="tab" aria-expanded="true" class="nav-link">
|
<div class="card-box tilebox-one">
|
||||||
<i class="fi-monitor mr-2"></i> Kultur Jamur
|
<i class="icon-layers float-right text-muted"></i>
|
||||||
</a>
|
<h6 class="text-muted text-uppercase mt-0">Media CAP</h6>
|
||||||
</li>
|
<h2 class="m-b-20" id="status_cap_status">-</h2>
|
||||||
<li class="nav-item">
|
<span class="badge badge-danger" id="badge_cap_status"> - </span>
|
||||||
<a href="#media_sellainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
|
</div>
|
||||||
<i class="fi-monitor mr-2"></i> Media Selektif lainnya
|
</div>
|
||||||
</a>
|
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
|
||||||
</li>
|
<div class="card-box tilebox-one">
|
||||||
<li class="nav-item">
|
<i class="icon-layers float-right text-muted"></i>
|
||||||
<a href="#media_tamlainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
|
<h6 class="text-muted text-uppercase mt-0">Mc Conkey</h6>
|
||||||
<i class="fi-monitor mr-2"></i> Pemeriksaan Tambahan Lainnya
|
<h2 class="m-b-20" id="status_mcconkey_status">-</h2>
|
||||||
</a>
|
<span class="badge badge-info" id="badge_mcconkey_status"> - </span>
|
||||||
</li>
|
</div>
|
||||||
</ul>
|
</div>
|
||||||
|
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
|
||||||
|
<div class="card-box tilebox-one">
|
||||||
|
<i class="icon-layers float-right text-muted"></i>
|
||||||
|
<h6 class="text-muted text-uppercase mt-0">Media Jamur</h6>
|
||||||
|
<h2 class="m-b-20" id="status_jamur_status">-</h2>
|
||||||
|
<span class="badge badge-warning" id="badge_jamur_status"> - </span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-lg-12">
|
||||||
|
<ul class="nav nav-tabs tabs-bordered nav-justified">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#media_bap" data-toggle="tab" aria-expanded="false" class="nav-link active">
|
||||||
|
<i class="fi-monitor mr-2"></i> Media BAP
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#media_cap" data-toggle="tab" aria-expanded="true" class="nav-link">
|
||||||
|
<i class="fi-monitor mr-2"></i> Media CAP
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#media_mcconkey" data-toggle="tab" aria-expanded="true" class="nav-link">
|
||||||
|
<i class="fi-monitor mr-2"></i> Media Mc Conkey
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#media_sda" data-toggle="tab" aria-expanded="true" class="nav-link">
|
||||||
|
<i class="fi-monitor mr-2"></i> Kultur Jamur
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#media_sellainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
|
||||||
|
<i class="fi-monitor mr-2"></i> Media Selektif lainnya
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#media_tamlainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
|
||||||
|
<i class="fi-monitor mr-2"></i> Pemeriksaan Tambahan Lainnya
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div class="tab-pane active" id="media_bap">
|
<div class="tab-pane active" id="media_bap">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
@@ -1141,7 +1149,7 @@
|
|||||||
@php
|
@php
|
||||||
foreach($mikroorganismes[$keys[$i]] as $key => $value) {
|
foreach($mikroorganismes[$keys[$i]] as $key => $value) {
|
||||||
@endphp
|
@endphp
|
||||||
<option value="{{ $value['name'] }}">{!! $value['name'] !!}</option>
|
<option value="{{ $value['name'] }}">{{ $mikroorganismestlist[$i] }} - {!! $value['name'] !!}</option>
|
||||||
@php
|
@php
|
||||||
}
|
}
|
||||||
@endphp
|
@endphp
|
||||||
@@ -4047,6 +4055,115 @@
|
|||||||
data: { nofoto: idne, komponen: 'Media Tambahan Lainnya', keterangan:'generatetblpertumbuhankoloni', _token: '{{csrf_token()}}' },
|
data: { nofoto: idne, komponen: 'Media Tambahan Lainnya', keterangan:'generatetblpertumbuhankoloni', _token: '{{csrf_token()}}' },
|
||||||
url: '{{ route("getResult") }}',
|
url: '{{ route("getResult") }}',
|
||||||
};
|
};
|
||||||
|
var summaryKoloni = {
|
||||||
|
bap: [],
|
||||||
|
cap: [],
|
||||||
|
mcconkey: [],
|
||||||
|
sdar1: [],
|
||||||
|
sdar2: [],
|
||||||
|
sdai1: [],
|
||||||
|
sdai2: [],
|
||||||
|
};
|
||||||
|
var summaryJamurKeys = ['sdar1', 'sdar2', 'sdai1', 'sdai2'];
|
||||||
|
var summaryGridMap = {
|
||||||
|
bap: '#gridmediabap',
|
||||||
|
cap: '#gridmediacap',
|
||||||
|
mcconkey: '#gridmediamcconkey',
|
||||||
|
sdar1: '#gridmediasdar1',
|
||||||
|
sdar2: '#gridmediasdar2',
|
||||||
|
sdai1: '#gridmediasdai1',
|
||||||
|
sdai2: '#gridmediasdai2',
|
||||||
|
};
|
||||||
|
|
||||||
|
function resetSummaryPertumbuhanKoloni()
|
||||||
|
{
|
||||||
|
$('#status_bap_status, #status_cap_status, #status_mcconkey_status, #status_jamur_status').html('-');
|
||||||
|
$('#badge_bap_status, #badge_cap_status, #badge_mcconkey_status, #badge_jamur_status').html(' - ');
|
||||||
|
$('#last_updated').html('Diperbaharui :');
|
||||||
|
}
|
||||||
|
|
||||||
|
function valueSummaryPertumbuhanKoloni(value)
|
||||||
|
{
|
||||||
|
return value === null || value === undefined || value === '' ? '-' : value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function timestampSummaryPertumbuhanKoloni(row)
|
||||||
|
{
|
||||||
|
if (!row) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
var timestamp = row.updated_at || row.tglpenyimpanan || '';
|
||||||
|
if (timestamp === '') {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
var parsed = Date.parse(String(timestamp).replace(' ', 'T'));
|
||||||
|
return isNaN(parsed) ? 0 : parsed;
|
||||||
|
}
|
||||||
|
|
||||||
|
function newestSummaryPertumbuhanKoloni(rows)
|
||||||
|
{
|
||||||
|
var newest = null;
|
||||||
|
$.each(rows || [], function(index, row) {
|
||||||
|
if (!newest || timestampSummaryPertumbuhanKoloni(row) >= timestampSummaryPertumbuhanKoloni(newest)) {
|
||||||
|
newest = row;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return newest;
|
||||||
|
}
|
||||||
|
|
||||||
|
function lastSummaryPertumbuhanKoloni(rows)
|
||||||
|
{
|
||||||
|
rows = rows || [];
|
||||||
|
return rows.length > 0 ? rows[rows.length - 1] : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateSummaryPertumbuhanKoloni()
|
||||||
|
{
|
||||||
|
var bap = lastSummaryPertumbuhanKoloni(summaryKoloni.bap);
|
||||||
|
var cap = lastSummaryPertumbuhanKoloni(summaryKoloni.cap);
|
||||||
|
var mcconkey = lastSummaryPertumbuhanKoloni(summaryKoloni.mcconkey);
|
||||||
|
var jamurRows = [];
|
||||||
|
var lastUpdatedRow = null;
|
||||||
|
|
||||||
|
$.each(summaryKoloni, function(key, rows) {
|
||||||
|
$.each(rows || [], function(index, row) {
|
||||||
|
if (!lastUpdatedRow || timestampSummaryPertumbuhanKoloni(row) > timestampSummaryPertumbuhanKoloni(lastUpdatedRow)) {
|
||||||
|
lastUpdatedRow = row;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$.each(summaryJamurKeys, function(index, key) {
|
||||||
|
jamurRows = jamurRows.concat(summaryKoloni[key] || []);
|
||||||
|
});
|
||||||
|
|
||||||
|
var jamur = newestSummaryPertumbuhanKoloni(jamurRows);
|
||||||
|
|
||||||
|
$('#status_bap_status').html(valueSummaryPertumbuhanKoloni(bap ? bap.kuman : null));
|
||||||
|
$('#badge_bap_status').html(valueSummaryPertumbuhanKoloni(bap ? bap.status : null));
|
||||||
|
$('#status_cap_status').html(valueSummaryPertumbuhanKoloni(cap ? cap.kuman : null));
|
||||||
|
$('#badge_cap_status').html(valueSummaryPertumbuhanKoloni(cap ? cap.status : null));
|
||||||
|
$('#status_mcconkey_status').html(valueSummaryPertumbuhanKoloni(mcconkey ? mcconkey.kuman : null));
|
||||||
|
$('#badge_mcconkey_status').html(valueSummaryPertumbuhanKoloni(mcconkey ? mcconkey.status : null));
|
||||||
|
$('#status_jamur_status').html(valueSummaryPertumbuhanKoloni(jamur ? jamur.kuman : null));
|
||||||
|
$('#badge_jamur_status').html(valueSummaryPertumbuhanKoloni(jamur ? jamur.status : null));
|
||||||
|
$('#last_updated').html('Diperbaharui : ' + valueSummaryPertumbuhanKoloni(lastUpdatedRow ? (lastUpdatedRow.updated_at || lastUpdatedRow.tglpenyimpanan) : null));
|
||||||
|
}
|
||||||
|
|
||||||
|
function bindSummaryPertumbuhanKoloni()
|
||||||
|
{
|
||||||
|
$.each(summaryGridMap, function(key, selector) {
|
||||||
|
$(selector).off('bindingcomplete.summaryKoloni').on('bindingcomplete.summaryKoloni', function() {
|
||||||
|
summaryKoloni[key] = $(selector).jqxGrid('getrows') || [];
|
||||||
|
updateSummaryPertumbuhanKoloni();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
resetSummaryPertumbuhanKoloni();
|
||||||
|
bindSummaryPertumbuhanKoloni();
|
||||||
|
|
||||||
$("#gridmediabap").jqxGrid({
|
$("#gridmediabap").jqxGrid({
|
||||||
width : '100%',
|
width : '100%',
|
||||||
source : srcjsonbap,
|
source : srcjsonbap,
|
||||||
|
|||||||
@@ -108,50 +108,66 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row" id="divperiksa">
|
<div id="divpreview">
|
||||||
<div class="col-12">
|
<div class="row">
|
||||||
<form id="kt_form" enctype="multipart/form-data">
|
<div class="col-12">
|
||||||
<div class="card-box task-detail">
|
<div class="card-box ribbon-box">
|
||||||
<button type="button" class="btn btn-custom btn-rounded w-md waves-effect waves-light pull-right"><i class="mdi mdi-upload"></i> Template</button>
|
<div class="ribbon ribbon-danger">Preview Hasil</div>
|
||||||
<div class="media mt-0 m-b-30">
|
<p class="m-b-0">Untuk cetak silahkan gunakan tombol cetak di laman <a href="{{url('pengambilan')}}" id="linkpengambilan">Pengambilan Hasil</a></p>
|
||||||
<img class="d-flex mr-3 rounded-circle" alt="Logo MyLIS" src="{{ asset('logo.png') }}" style="width: 48px; height: 48px;">
|
<iframe id="previewhasil" src="" style="width: 100%; height: 500px; border: none;"></iframe>
|
||||||
<div class="media-body">
|
|
||||||
<h5 class="media-heading mb-0 mt-0" id="judultemplate">Template</h5>
|
|
||||||
<span class="badge badge-danger" id="badgespesimen">Spesimen</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<ul class="list-inline task-dates m-b-0 mt-5">
|
|
||||||
<li>
|
|
||||||
<h5 class="m-b-5">Nomor LAB</h5>
|
|
||||||
<p id="nofoto"></p>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li>
|
|
||||||
<h5 class="m-b-5">Tanggal Periksa</h5>
|
|
||||||
<p id="tanggalregis"></p>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
<div id="divperiksa">
|
||||||
|
<form id="kt_form" enctype="multipart/form-data">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
|
<div class="col-sm-12">
|
||||||
|
<div class="card-box">
|
||||||
|
<button type="button" class="btn btn-custom btn-rounded w-md waves-effect waves-light pull-right btnshowtemplate"><i class="mdi mdi-upload"></i> Template</button>
|
||||||
|
<div class="media mt-0 m-b-30">
|
||||||
|
<img class="d-flex mr-3 rounded-circle" alt="Logo MyLIS" src="{{ asset('logo.png') }}" style="width: 48px; height: 48px;">
|
||||||
|
<div class="media-body">
|
||||||
|
<h5 class="media-heading mb-0 mt-0" id="judultemplate">Template</h5>
|
||||||
|
<span class="badge badge-danger" id="kesimpulan">Spesimen</span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<table class="table table-striped">
|
||||||
|
<tr>
|
||||||
|
<td>Nomor LAB</td>
|
||||||
|
<td>Tanggal Periksa</td>
|
||||||
|
<td>Pasien</td>
|
||||||
|
<td>Dokter Pengirim</td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td><p id="nofoto"></p></td>
|
||||||
|
<td><p id="tanggalregis"></p></td>
|
||||||
|
<td><p id="nonama"></p></td>
|
||||||
|
<td><p id="klinisi"></p></td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<div class="card-box ribbon-box">
|
<div class="card-box ribbon-box">
|
||||||
<div class="ribbon ribbon-success">Patient ID</div>
|
<div class="ribbon ribbon-success">Patient ID</div>
|
||||||
<p class="m-b-0"></p>
|
<p class="m-b-0"></p>
|
||||||
<ul class="nav nav-tabs tabs-bordered nav-justified">
|
<div class="form-row">
|
||||||
<li class="nav-item">
|
<div class="form-group col-lg-12">
|
||||||
<a href="#home-b2" data-toggle="tab" aria-expanded="false" class="nav-link active">
|
<ul class="nav nav-tabs tabs-bordered nav-justified">
|
||||||
<i class="fi-monitor mr-2"></i> Patient ID
|
<li class="nav-item">
|
||||||
</a>
|
<a href="#home-b2" data-toggle="tab" aria-expanded="false" class="nav-link active">
|
||||||
</li>
|
<i class="fi-monitor mr-2"></i> Patient ID
|
||||||
<li class="nav-item">
|
</a>
|
||||||
<a href="#profile-b2" data-toggle="tab" aria-expanded="true" class="nav-link">
|
</li>
|
||||||
<i class="fi-head mr-2"></i> History
|
<li class="nav-item">
|
||||||
</a>
|
<a href="#profile-b2" data-toggle="tab" aria-expanded="true" class="nav-link">
|
||||||
</li>
|
<i class="fi-head mr-2"></i> History
|
||||||
</ul>
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div class="tab-pane active" id="home-b2">
|
<div class="tab-pane active" id="home-b2">
|
||||||
<table class="table table-striped">
|
<table class="table table-striped">
|
||||||
@@ -159,10 +175,6 @@
|
|||||||
<td>Register Number</td>
|
<td>Register Number</td>
|
||||||
<td><input type="text" id="norm" name="norm" class="form-control" readonly></td>
|
<td><input type="text" id="norm" name="norm" class="form-control" readonly></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td>Name</td>
|
|
||||||
<td><input type="text" id="nonama" name="nonama" class="form-control" readonly></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>Gender, Age</td>
|
<td>Gender, Age</td>
|
||||||
<td><span id="nokel"></span>, <span id="nousia"></span></td>
|
<td><span id="nokel"></span>, <span id="nousia"></span></td>
|
||||||
@@ -187,17 +199,12 @@
|
|||||||
<td>Asal Pengambilan</td>
|
<td>Asal Pengambilan</td>
|
||||||
<td id="asalpengirim"></td>
|
<td id="asalpengirim"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td>Spesimen</td>
|
|
||||||
<td id="kesimpulan"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>Status</td>
|
<td>Status</td>
|
||||||
<td id="nostatus"></td>
|
<td id="nostatus"></td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
<div class="tab-pane" id="profile-b2">
|
<div class="tab-pane" id="profile-b2">
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
@@ -218,10 +225,6 @@
|
|||||||
<td>Order</td>
|
<td>Order</td>
|
||||||
<td id="noservis"></td>
|
<td id="noservis"></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
|
||||||
<td>Dokter Pengirim</td>
|
|
||||||
<td id="klinisi"></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>Asal Pasien</td>
|
<td>Asal Pasien</td>
|
||||||
<td id="asalpasien"></td>
|
<td id="asalpasien"></td>
|
||||||
@@ -315,13 +318,13 @@
|
|||||||
<label for="bhp_cottonswab" class="col-form-label">Cotton Swab</label>
|
<label for="bhp_cottonswab" class="col-form-label">Cotton Swab</label>
|
||||||
<input type="text" id="bhp_cottonswab" name="bhp_cottonswab" class="form-control isiandasar">
|
<input type="text" id="bhp_cottonswab" name="bhp_cottonswab" class="form-control isiandasar">
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-lg-2">
|
<div class="form-group col-lg-3">
|
||||||
<label for="bhp_antibiotiktambahan" class="col-form-label">Antibiotik Tambahan</label>
|
<label for="bhp_antibiotiktambahan" class="col-form-label">Antibiotik Tambahan</label>
|
||||||
<input type="text" id="bhp_antibiotiktambahan" name="bhp_antibiotiktambahan" class="form-control isiandasar">
|
<input type="text" id="bhp_antibiotiktambahan" name="bhp_antibiotiktambahan" class="form-control isiandasar">
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<button type="button" class="btn btn-primary waves-effect waves-light" id="btnshowtemplate"><i class="fa fa-gears"></i> Template</button>
|
<button type="button" class="btn btn-primary waves-effect waves-light btnshowtemplate"><i class="fa fa-gears"></i> Template</button>
|
||||||
<div id="divtemplate">
|
<div id="divtemplate">
|
||||||
<div id="gridtemplate"></div>
|
<div id="gridtemplate"></div>
|
||||||
</div>
|
</div>
|
||||||
@@ -431,7 +434,7 @@
|
|||||||
@php
|
@php
|
||||||
foreach($mikroorganismes[$keys[$i]] as $key => $value) {
|
foreach($mikroorganismes[$keys[$i]] as $key => $value) {
|
||||||
@endphp
|
@endphp
|
||||||
<option value="{{ $value['name'] }}">{!! $value['name'] !!}</option>
|
<option value="{{ $value['name'] }}">{{ $mikroorganismestlist[$i] }} - {!! $value['name'] !!}</option>
|
||||||
@php
|
@php
|
||||||
}
|
}
|
||||||
@endphp
|
@endphp
|
||||||
@@ -654,141 +657,103 @@
|
|||||||
<label class="col-form-label">Pertumbuhan Koloni (Kultur Primer):</label>
|
<label class="col-form-label">Pertumbuhan Koloni (Kultur Primer):</label>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-lg-12">
|
<div class="form-group col-lg-12">
|
||||||
<label class="col-form-label">Kirby bauer :</label>
|
<table class="table table-striped table-bordered">
|
||||||
<div class="form-row">
|
<tr>
|
||||||
<div class="form-group col-lg-4">
|
<td colspan="8" style="text-align: center;">Kirby bauer</td>
|
||||||
<label for="id_kbamc" class="col-form-label">AMC</label>
|
</tr>
|
||||||
<div class="form-row">
|
<tr>
|
||||||
<div class="form-group col-lg-6">
|
<td colspan="2" style="text-align: center;"><strong>AMC</strong></td>
|
||||||
<select class="form-control pilihankirby" id="id_kbamc" name="id_kbamc">
|
<td colspan="2" style="text-align: center;"><strong>AK</strong></td>
|
||||||
<option value="">Pilih Salah Satu</option>
|
<td colspan="2" style="text-align: center;"><strong>FOS</strong></td>
|
||||||
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
<td colspan="2" style="text-align: center;"><strong>SCF</strong></td>
|
||||||
@php
|
</tr>
|
||||||
$mulai = 1;
|
<tr>
|
||||||
while ($mulai != 43){
|
<td>
|
||||||
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
<select class="form-control pilihankirby" id="id_kbamc" name="id_kbamc">
|
||||||
$mulai++;
|
<option value="">Pilih Salah Satu</option>
|
||||||
}
|
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
||||||
@endphp
|
@php
|
||||||
</select>
|
$mulai = 1;
|
||||||
</div>
|
while ($mulai != 43){
|
||||||
<div class="form-group col-lg-6">
|
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
||||||
<select class="form-control pilihankirby" id="id_sirkbamc" name="id_sirkbamc">
|
$mulai++;
|
||||||
<option value="">Pick</option>
|
}
|
||||||
<option value="S">S</option>
|
@endphp
|
||||||
<option value="I">I</option>
|
</select>
|
||||||
<option value="R">R</option>
|
</td>
|
||||||
</select>
|
<td>
|
||||||
</div>
|
<select class="form-control pilihankirby" id="id_sirkbamc" name="id_sirkbamc">
|
||||||
</div>
|
<option value="">Pick</option>
|
||||||
</div>
|
<option value="S">S</option>
|
||||||
<div style="overflow: hidden; display: none;">
|
<option value="I">I</option>
|
||||||
<label for="id_kblef" class="col-form-label">LEV</label>
|
<option value="R">R</option>
|
||||||
<div class="form-row">
|
</select>
|
||||||
<div class="form-group col-lg-6">
|
</td>
|
||||||
<select class="form-control pilihankirby" id="id_kblef" name="id_kblef">
|
<td>
|
||||||
<option value="">Pilih Salah Satu</option>
|
<select class="form-control pilihankirby" id="id_kbak" name="id_kbak">
|
||||||
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
<option value="">Pilih Salah Satu</option>
|
||||||
@php
|
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
||||||
$mulai = 1;
|
@php
|
||||||
while ($mulai != 43){
|
$mulai = 1;
|
||||||
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
while ($mulai != 43){
|
||||||
$mulai++;
|
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
||||||
}
|
$mulai++;
|
||||||
@endphp
|
}
|
||||||
</select>
|
@endphp
|
||||||
</div>
|
</select>
|
||||||
<div class="form-group col-lg-6">
|
</td>
|
||||||
<select class="form-control pilihankirby" id="id_sirkblef" name="id_sirkblef">
|
<td>
|
||||||
<option value="">Pick</option>
|
<select class="form-control pilihankirby" id="id_sirkbak" name="id_sirkbak">
|
||||||
<option value="S">S</option>
|
<option value="">Pick</option>
|
||||||
<option value="I">I</option>
|
<option value="S">S</option>
|
||||||
<option value="R">R</option>
|
<option value="I">I</option>
|
||||||
</select>
|
<option value="R">R</option>
|
||||||
</div>
|
</select>
|
||||||
</div>
|
</td>
|
||||||
</div>
|
<td>
|
||||||
<div class="form-group col-lg-4">
|
<select class="form-control pilihankirby" id="id_kbfos" name="id_kbfos">
|
||||||
<label for="id_kbak" class="col-form-label">AK</label>
|
<option value="">Pilih Salah Satu</option>
|
||||||
<div class="form-row">
|
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
||||||
<div class="form-group col-lg-6">
|
@php
|
||||||
<select class="form-control pilihankirby" id="id_kbak" name="id_kbak">
|
$mulai = 1;
|
||||||
<option value="">Pilih Salah Satu</option>
|
while ($mulai != 43){
|
||||||
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
||||||
@php
|
$mulai++;
|
||||||
$mulai = 1;
|
}
|
||||||
while ($mulai != 43){
|
@endphp
|
||||||
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
</select>
|
||||||
$mulai++;
|
</td>
|
||||||
}
|
<td>
|
||||||
@endphp
|
<select class="form-control pilihankirby" id="id_sirkbfos" name="id_sirkbfos">
|
||||||
</select>
|
<option value="">Pick</option>
|
||||||
</div>
|
<option value="S">S</option>
|
||||||
<div class="form-group col-lg-6">
|
<option value="I">I</option>
|
||||||
<select class="form-control pilihankirby" id="id_sirkbak" name="id_sirkbak">
|
<option value="R">R</option>
|
||||||
<option value="">Pick</option>
|
</select>
|
||||||
<option value="S">S</option>
|
</td>
|
||||||
<option value="I">I</option>
|
<td>
|
||||||
<option value="R">R</option>
|
<select class="form-control pilihankirby" id="id_kbscf" name="id_kbscf">
|
||||||
</select>
|
<option value="">Pilih Salah Satu</option>
|
||||||
</div>
|
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
||||||
</div>
|
@php
|
||||||
</div>
|
$mulai = 1;
|
||||||
<div class="form-group col-lg-4">
|
while ($mulai != 43){
|
||||||
<label for="id_kbfos" class="col-form-label">FOS</label>
|
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
||||||
<div class="form-row">
|
$mulai++;
|
||||||
<div class="form-group col-lg-6">
|
}
|
||||||
<select class="form-control pilihankirby" id="id_kbfos" name="id_kbfos">
|
@endphp
|
||||||
<option value="">Pilih Salah Satu</option>
|
</select>
|
||||||
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
</td>
|
||||||
@php
|
<td>
|
||||||
$mulai = 1;
|
<select class="form-control pilihankirby" id="id_sirkbscf" name="id_sirkbscf">
|
||||||
while ($mulai != 43){
|
<option value="">Pick</option>
|
||||||
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
<option value="S">S</option>
|
||||||
$mulai++;
|
<option value="I">I</option>
|
||||||
}
|
<option value="R">R</option>
|
||||||
@endphp
|
</select>
|
||||||
</select>
|
</td>
|
||||||
</div>
|
</tr>
|
||||||
<div class="form-group col-lg-6">
|
</table>
|
||||||
<select class="form-control pilihankirby" id="id_sirkbfos" name="id_sirkbfos">
|
|
||||||
<option value="">Pick</option>
|
|
||||||
<option value="S">S</option>
|
|
||||||
<option value="I">I</option>
|
|
||||||
<option value="R">R</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="form-row">
|
|
||||||
<div class="form-group col-lg-4">
|
|
||||||
<label for="id_kbscf" class="col-form-label">SCF</label>
|
|
||||||
<div class="form-row">
|
|
||||||
<div class="form-group col-lg-6">
|
|
||||||
<select class="form-control pilihankirby" id="id_kbscf" name="id_kbscf">
|
|
||||||
<option value="">Pilih Salah Satu</option>
|
|
||||||
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
|
||||||
@php
|
|
||||||
$mulai = 1;
|
|
||||||
while ($mulai != 43){
|
|
||||||
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
|
||||||
$mulai++;
|
|
||||||
}
|
|
||||||
@endphp
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
<div class="form-group col-lg-6">
|
|
||||||
<select class="form-control pilihankirby" id="id_sirkbscf" name="id_sirkbscf">
|
|
||||||
<option value="">Pick</option>
|
|
||||||
<option value="S">S</option>
|
|
||||||
<option value="I">I</option>
|
|
||||||
<option value="R">R</option>
|
|
||||||
</select>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-lg-12">
|
<div class="form-group col-lg-12">
|
||||||
<label for="id_biakankultur" class="col-form-label">Biakan Kultur (Aerob / Anaerob)</label>
|
<label for="id_biakankultur" class="col-form-label">Biakan Kultur (Aerob / Anaerob)</label>
|
||||||
@@ -805,38 +770,84 @@
|
|||||||
<span class="badge badge-primary">C. Tes Kepekaan Antibiotika: (S: Sensitif ; I : Intermediate ; R: Resisten)</span>
|
<span class="badge badge-primary">C. Tes Kepekaan Antibiotika: (S: Sensitif ; I : Intermediate ; R: Resisten)</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="form-group col-lg-12">
|
<div class="form-group col-lg-12">
|
||||||
<ul class="nav nav-tabs tabs-bordered nav-justified">
|
<div class="form-row">
|
||||||
<li class="nav-item">
|
<div class="form-group col-lg-12">
|
||||||
<a href="#media_bap" data-toggle="tab" aria-expanded="false" class="nav-link active">
|
<div class="card">
|
||||||
<i class="fi-monitor mr-2"></i> Media BAP
|
<div class="card-body">
|
||||||
</a>
|
<h5 class="card-title">Ringkasan Hasil Terakhir</h5>
|
||||||
</li>
|
<h6 class="card-subtitle text-muted" id="last_updated">Diperbaharui :</h6>
|
||||||
<li class="nav-item">
|
</div>
|
||||||
<a href="#media_cap" data-toggle="tab" aria-expanded="true" class="nav-link">
|
<div class="card-body row">
|
||||||
<i class="fi-monitor mr-2"></i> Media CAP
|
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
|
||||||
</a>
|
<div class="card-box tilebox-one">
|
||||||
</li>
|
<i class="icon-layers float-right text-muted"></i>
|
||||||
<li class="nav-item">
|
<h6 class="text-muted text-uppercase mt-0">Media BAP</h6>
|
||||||
<a href="#media_mcconkey" data-toggle="tab" aria-expanded="true" class="nav-link">
|
<h2 class="m-b-20" id="status_bap_status">-</h2>
|
||||||
<i class="fi-monitor mr-2"></i> Media Mc Conkey
|
<span class="badge badge-primary" id="badge_bap_status"> - </span>
|
||||||
</a>
|
</div>
|
||||||
</li>
|
</div>
|
||||||
<li class="nav-item">
|
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
|
||||||
<a href="#media_sda" data-toggle="tab" aria-expanded="true" class="nav-link">
|
<div class="card-box tilebox-one">
|
||||||
<i class="fi-monitor mr-2"></i> Kultur Jamur
|
<i class="icon-layers float-right text-muted"></i>
|
||||||
</a>
|
<h6 class="text-muted text-uppercase mt-0">Media CAP</h6>
|
||||||
</li>
|
<h2 class="m-b-20" id="status_cap_status">-</h2>
|
||||||
<li class="nav-item">
|
<span class="badge badge-danger" id="badge_cap_status"> - </span>
|
||||||
<a href="#media_sellainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
|
</div>
|
||||||
<i class="fi-monitor mr-2"></i> Media Selektif lainnya
|
</div>
|
||||||
</a>
|
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
|
||||||
</li>
|
<div class="card-box tilebox-one">
|
||||||
<li class="nav-item">
|
<i class="icon-layers float-right text-muted"></i>
|
||||||
<a href="#media_tamlainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
|
<h6 class="text-muted text-uppercase mt-0">Mc Conkey</h6>
|
||||||
<i class="fi-monitor mr-2"></i> Pemeriksaan Tambahan Lainnya
|
<h2 class="m-b-20" id="status_mcconkey_status">-</h2>
|
||||||
</a>
|
<span class="badge badge-info" id="badge_mcconkey_status"> - </span>
|
||||||
</li>
|
</div>
|
||||||
</ul>
|
</div>
|
||||||
|
<div class="col-xs-12 col-md-6 col-lg-6 col-xl-3">
|
||||||
|
<div class="card-box tilebox-one">
|
||||||
|
<i class="icon-layers float-right text-muted"></i>
|
||||||
|
<h6 class="text-muted text-uppercase mt-0">Media Jamur</h6>
|
||||||
|
<h2 class="m-b-20" id="status_jamur_status">-</h2>
|
||||||
|
<span class="badge badge-warning" id="badge_jamur_status"> - </span>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-lg-12">
|
||||||
|
<ul class="nav nav-tabs tabs-bordered nav-justified">
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#media_bap" data-toggle="tab" aria-expanded="false" class="nav-link active">
|
||||||
|
<i class="fi-monitor mr-2"></i> Media BAP
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#media_cap" data-toggle="tab" aria-expanded="true" class="nav-link">
|
||||||
|
<i class="fi-monitor mr-2"></i> Media CAP
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#media_mcconkey" data-toggle="tab" aria-expanded="true" class="nav-link">
|
||||||
|
<i class="fi-monitor mr-2"></i> Media Mc Conkey
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#media_sda" data-toggle="tab" aria-expanded="true" class="nav-link">
|
||||||
|
<i class="fi-monitor mr-2"></i> Kultur Jamur
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#media_sellainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
|
||||||
|
<i class="fi-monitor mr-2"></i> Media Selektif lainnya
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
<li class="nav-item">
|
||||||
|
<a href="#media_tamlainnya" data-toggle="tab" aria-expanded="true" class="nav-link">
|
||||||
|
<i class="fi-monitor mr-2"></i> Pemeriksaan Tambahan Lainnya
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="tab-content">
|
<div class="tab-content">
|
||||||
<div class="tab-pane active" id="media_bap">
|
<div class="tab-pane active" id="media_bap">
|
||||||
<div class="card">
|
<div class="card">
|
||||||
@@ -1148,7 +1159,7 @@
|
|||||||
@php
|
@php
|
||||||
foreach($mikroorganismes[$keys[$i]] as $key => $value) {
|
foreach($mikroorganismes[$keys[$i]] as $key => $value) {
|
||||||
@endphp
|
@endphp
|
||||||
<option value="{{ $value['name'] }}">{!! $value['name'] !!}</option>
|
<option value="{{ $value['name'] }}">{{ $mikroorganismestlist[$i] }} - {!! $value['name'] !!}</option>
|
||||||
@php
|
@php
|
||||||
}
|
}
|
||||||
@endphp
|
@endphp
|
||||||
@@ -3320,6 +3331,30 @@
|
|||||||
<input type="hidden" name="template_jenis" id="template_jenis">
|
<input type="hidden" name="template_jenis" id="template_jenis">
|
||||||
<input type="hidden" name="_token" id="token" value="{{ csrf_token() }}">
|
<input type="hidden" name="_token" id="token" value="{{ csrf_token() }}">
|
||||||
<div style="overflow: hidden; display: none;">
|
<div style="overflow: hidden; display: none;">
|
||||||
|
<label for="id_kblef" class="col-form-label">LEV</label>
|
||||||
|
<div class="form-row">
|
||||||
|
<div class="form-group col-lg-6">
|
||||||
|
<select class="form-control pilihankirby" id="id_kblef" name="id_kblef">
|
||||||
|
<option value="">Pilih Salah Satu</option>
|
||||||
|
<option value="Tidak dilakukan">Tidak dilakukan</option>
|
||||||
|
@php
|
||||||
|
$mulai = 1;
|
||||||
|
while ($mulai != 43){
|
||||||
|
echo '<option value="'.$mulai.'">'.$mulai.'</option>';
|
||||||
|
$mulai++;
|
||||||
|
}
|
||||||
|
@endphp
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
<div class="form-group col-lg-6">
|
||||||
|
<select class="form-control pilihankirby" id="id_sirkblef" name="id_sirkblef">
|
||||||
|
<option value="">Pick</option>
|
||||||
|
<option value="S">S</option>
|
||||||
|
<option value="I">I</option>
|
||||||
|
<option value="R">R</option>
|
||||||
|
</select>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
<div class="form-group">
|
<div class="form-group">
|
||||||
<select class="form-control ekspertiseseletc" id="bakterimediabap" name="bakterimediabap">
|
<select class="form-control ekspertiseseletc" id="bakterimediabap" name="bakterimediabap">
|
||||||
<option value="">Pilih Salah Satu</option>
|
<option value="">Pilih Salah Satu</option>
|
||||||
@@ -3384,6 +3419,7 @@
|
|||||||
refreshBtn.addEventListener('click', function () {
|
refreshBtn.addEventListener('click', function () {
|
||||||
$('#divperiksa').hide();
|
$('#divperiksa').hide();
|
||||||
$('#divreadonly').hide();
|
$('#divreadonly').hide();
|
||||||
|
$('#divpreview').hide();
|
||||||
$('#divawal').show();
|
$('#divawal').show();
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
@@ -4058,6 +4094,115 @@
|
|||||||
data: { nofoto: idne, komponen: 'Media Tambahan Lainnya', keterangan:'generatetblpertumbuhankoloni', _token: '{{csrf_token()}}' },
|
data: { nofoto: idne, komponen: 'Media Tambahan Lainnya', keterangan:'generatetblpertumbuhankoloni', _token: '{{csrf_token()}}' },
|
||||||
url: '{{ route("getResult") }}',
|
url: '{{ route("getResult") }}',
|
||||||
};
|
};
|
||||||
|
var summaryKoloni = {
|
||||||
|
bap: [],
|
||||||
|
cap: [],
|
||||||
|
mcconkey: [],
|
||||||
|
sdar1: [],
|
||||||
|
sdar2: [],
|
||||||
|
sdai1: [],
|
||||||
|
sdai2: [],
|
||||||
|
};
|
||||||
|
var summaryJamurKeys = ['sdar1', 'sdar2', 'sdai1', 'sdai2'];
|
||||||
|
var summaryGridMap = {
|
||||||
|
bap: '#gridmediabap',
|
||||||
|
cap: '#gridmediacap',
|
||||||
|
mcconkey: '#gridmediamcconkey',
|
||||||
|
sdar1: '#gridmediasdar1',
|
||||||
|
sdar2: '#gridmediasdar2',
|
||||||
|
sdai1: '#gridmediasdai1',
|
||||||
|
sdai2: '#gridmediasdai2',
|
||||||
|
};
|
||||||
|
|
||||||
|
function resetSummaryPertumbuhanKoloni()
|
||||||
|
{
|
||||||
|
$('#status_bap_status, #status_cap_status, #status_mcconkey_status, #status_jamur_status').html('-');
|
||||||
|
$('#badge_bap_status, #badge_cap_status, #badge_mcconkey_status, #badge_jamur_status').html(' - ');
|
||||||
|
$('#last_updated').html('Diperbaharui :');
|
||||||
|
}
|
||||||
|
|
||||||
|
function valueSummaryPertumbuhanKoloni(value)
|
||||||
|
{
|
||||||
|
return value === null || value === undefined || value === '' ? '-' : value;
|
||||||
|
}
|
||||||
|
|
||||||
|
function timestampSummaryPertumbuhanKoloni(row)
|
||||||
|
{
|
||||||
|
if (!row) {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
var timestamp = row.updated_at || row.tglpenyimpanan || '';
|
||||||
|
if (timestamp === '') {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
var parsed = Date.parse(String(timestamp).replace(' ', 'T'));
|
||||||
|
return isNaN(parsed) ? 0 : parsed;
|
||||||
|
}
|
||||||
|
|
||||||
|
function newestSummaryPertumbuhanKoloni(rows)
|
||||||
|
{
|
||||||
|
var newest = null;
|
||||||
|
$.each(rows || [], function(index, row) {
|
||||||
|
if (!newest || timestampSummaryPertumbuhanKoloni(row) >= timestampSummaryPertumbuhanKoloni(newest)) {
|
||||||
|
newest = row;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return newest;
|
||||||
|
}
|
||||||
|
|
||||||
|
function lastSummaryPertumbuhanKoloni(rows)
|
||||||
|
{
|
||||||
|
rows = rows || [];
|
||||||
|
return rows.length > 0 ? rows[rows.length - 1] : null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function updateSummaryPertumbuhanKoloni()
|
||||||
|
{
|
||||||
|
var bap = lastSummaryPertumbuhanKoloni(summaryKoloni.bap);
|
||||||
|
var cap = lastSummaryPertumbuhanKoloni(summaryKoloni.cap);
|
||||||
|
var mcconkey = lastSummaryPertumbuhanKoloni(summaryKoloni.mcconkey);
|
||||||
|
var jamurRows = [];
|
||||||
|
var lastUpdatedRow = null;
|
||||||
|
|
||||||
|
$.each(summaryKoloni, function(key, rows) {
|
||||||
|
$.each(rows || [], function(index, row) {
|
||||||
|
if (!lastUpdatedRow || timestampSummaryPertumbuhanKoloni(row) > timestampSummaryPertumbuhanKoloni(lastUpdatedRow)) {
|
||||||
|
lastUpdatedRow = row;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
$.each(summaryJamurKeys, function(index, key) {
|
||||||
|
jamurRows = jamurRows.concat(summaryKoloni[key] || []);
|
||||||
|
});
|
||||||
|
|
||||||
|
var jamur = newestSummaryPertumbuhanKoloni(jamurRows);
|
||||||
|
|
||||||
|
$('#status_bap_status').html(valueSummaryPertumbuhanKoloni(bap ? bap.kuman : null));
|
||||||
|
$('#badge_bap_status').html(valueSummaryPertumbuhanKoloni(bap ? bap.status : null));
|
||||||
|
$('#status_cap_status').html(valueSummaryPertumbuhanKoloni(cap ? cap.kuman : null));
|
||||||
|
$('#badge_cap_status').html(valueSummaryPertumbuhanKoloni(cap ? cap.status : null));
|
||||||
|
$('#status_mcconkey_status').html(valueSummaryPertumbuhanKoloni(mcconkey ? mcconkey.kuman : null));
|
||||||
|
$('#badge_mcconkey_status').html(valueSummaryPertumbuhanKoloni(mcconkey ? mcconkey.status : null));
|
||||||
|
$('#status_jamur_status').html(valueSummaryPertumbuhanKoloni(jamur ? jamur.kuman : null));
|
||||||
|
$('#badge_jamur_status').html(valueSummaryPertumbuhanKoloni(jamur ? jamur.status : null));
|
||||||
|
$('#last_updated').html('Diperbaharui : ' + valueSummaryPertumbuhanKoloni(lastUpdatedRow ? (lastUpdatedRow.updated_at || lastUpdatedRow.tglpenyimpanan) : null));
|
||||||
|
}
|
||||||
|
|
||||||
|
function bindSummaryPertumbuhanKoloni()
|
||||||
|
{
|
||||||
|
$.each(summaryGridMap, function(key, selector) {
|
||||||
|
$(selector).off('bindingcomplete.summaryKoloni').on('bindingcomplete.summaryKoloni', function() {
|
||||||
|
summaryKoloni[key] = $(selector).jqxGrid('getrows') || [];
|
||||||
|
updateSummaryPertumbuhanKoloni();
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
resetSummaryPertumbuhanKoloni();
|
||||||
|
bindSummaryPertumbuhanKoloni();
|
||||||
|
|
||||||
$("#gridmediabap").jqxGrid({
|
$("#gridmediabap").jqxGrid({
|
||||||
width : '100%',
|
width : '100%',
|
||||||
source : srcjsonbap,
|
source : srcjsonbap,
|
||||||
@@ -4975,12 +5120,14 @@
|
|||||||
console.log('Displaying template for DLP: '+dlp);
|
console.log('Displaying template for DLP: '+dlp);
|
||||||
if (dlp == 'CCI'){
|
if (dlp == 'CCI'){
|
||||||
$('#templatecci').show();
|
$('#templatecci').show();
|
||||||
|
$('#judultemplate').html('CCI');
|
||||||
} else if (dlp == 'Kultur'){
|
} else if (dlp == 'Kultur'){
|
||||||
$('#templatekultur').show();
|
$('#templatekultur').show();
|
||||||
$('#pewarnaangiemsaselect').show();
|
$('#pewarnaangiemsaselect').show();
|
||||||
$('#pewarnaangiemsateks').hide();
|
$('#pewarnaangiemsateks').hide();
|
||||||
$('#pewarnaankohselect').show();
|
$('#pewarnaankohselect').show();
|
||||||
$('#pewarnaankohteks').hide();
|
$('#pewarnaankohteks').hide();
|
||||||
|
$('#judultemplate').html('Kultur');
|
||||||
jQueryCreateTabelPertumbuhanKoloni();
|
jQueryCreateTabelPertumbuhanKoloni();
|
||||||
} else if (dlp == 'Pewarna Langsung'){
|
} else if (dlp == 'Pewarna Langsung'){
|
||||||
$('#lsg_pewarnaankohselect').show();
|
$('#lsg_pewarnaankohselect').show();
|
||||||
@@ -4988,15 +5135,20 @@
|
|||||||
$('#lsg_pewarnaangiesmaselect').show();
|
$('#lsg_pewarnaangiesmaselect').show();
|
||||||
$('#lsg_pewarnaangiesmateks').hide();
|
$('#lsg_pewarnaangiesmateks').hide();
|
||||||
$('#templatepewarnaanlangsung').show();
|
$('#templatepewarnaanlangsung').show();
|
||||||
|
$('#judultemplate').html('Pewarna Langsung');
|
||||||
} else if (dlp == 'TBC'){
|
} else if (dlp == 'TBC'){
|
||||||
$('#templatetbc').show();
|
$('#templatetbc').show();
|
||||||
$('.hasilpemeriksaantb').hide();
|
$('.hasilpemeriksaantb').hide();
|
||||||
|
$('#judultemplate').html('TBC');
|
||||||
} else if (dlp == 'Viral Load'){
|
} else if (dlp == 'Viral Load'){
|
||||||
$('#templateviralload').show();
|
$('#templateviralload').show();
|
||||||
|
$('#judultemplate').html('Viral Load');
|
||||||
} else if (dlp == 'IgM IgG Leptospira'){
|
} else if (dlp == 'IgM IgG Leptospira'){
|
||||||
$('#templateleptospira').show();
|
$('#templateleptospira').show();
|
||||||
|
$('#judultemplate').html('IgM IgG Leptospira');
|
||||||
} else if (dlp == 'PCR COVID'){
|
} else if (dlp == 'PCR COVID'){
|
||||||
$('#templatecovid').show();
|
$('#templatecovid').show();
|
||||||
|
$('#judultemplate').html('PCR COVID');
|
||||||
}
|
}
|
||||||
console.log('Finished loading komponen jawaban for DLP: '+dlp+' | No.Foto: '+nofoto+' | ID Periksa: '+idne);
|
console.log('Finished loading komponen jawaban for DLP: '+dlp+' | No.Foto: '+nofoto+' | ID Periksa: '+idne);
|
||||||
}
|
}
|
||||||
@@ -5274,7 +5426,7 @@
|
|||||||
$("#template_jenis").val(dataRecord.dlp);
|
$("#template_jenis").val(dataRecord.dlp);
|
||||||
$("#nofoto").html(dataRecord.nofoto);
|
$("#nofoto").html(dataRecord.nofoto);
|
||||||
$("#norm").val(dataRecord.noregister);
|
$("#norm").val(dataRecord.noregister);
|
||||||
$("#nonama").val(dataRecord.nmpasien);
|
$("#nonama").html(dataRecord.nmpasien);
|
||||||
$("#nokel").html(dataRecord.jkpasien);
|
$("#nokel").html(dataRecord.jkpasien);
|
||||||
$("#nousia").html(dataRecord.usia);
|
$("#nousia").html(dataRecord.usia);
|
||||||
$("#noservis").html(dataRecord.tlsreques);
|
$("#noservis").html(dataRecord.tlsreques);
|
||||||
@@ -5568,7 +5720,10 @@
|
|||||||
var masterk = document.getElementById('master_kelompok').value;
|
var masterk = document.getElementById('master_kelompok').value;
|
||||||
var home = '{{URL::to("/")}}';
|
var home = '{{URL::to("/")}}';
|
||||||
var alamat = home+'/hasil/'+dataRecord.nofoto;
|
var alamat = home+'/hasil/'+dataRecord.nofoto;
|
||||||
window.open(alamat,'_blank');
|
$("#divpreview").show();
|
||||||
|
$("#divawal").hide();
|
||||||
|
$("#previewhasil").attr('src', alamat);
|
||||||
|
$("#linkpengambilan").attr('href', alamat);
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ text: 'Acc.No', datafield: 'tlsnofoto', width: 100, align: 'center', cellsalign: 'center'},
|
{ text: 'Acc.No', datafield: 'tlsnofoto', width: 100, align: 'center', cellsalign: 'center'},
|
||||||
@@ -5648,6 +5803,7 @@
|
|||||||
$('#divperiksa').hide();
|
$('#divperiksa').hide();
|
||||||
$('#divreadonly').hide();
|
$('#divreadonly').hide();
|
||||||
$('#divharibytanggal').hide();
|
$('#divharibytanggal').hide();
|
||||||
|
$('#divpreview').hide();
|
||||||
$("#btnuntukgridmediabap").click(function() {
|
$("#btnuntukgridmediabap").click(function() {
|
||||||
$('#modalgridmediabap').modal('show');
|
$('#modalgridmediabap').modal('show');
|
||||||
$('#idpertumbuhankoloni').val('new');
|
$('#idpertumbuhankoloni').val('new');
|
||||||
@@ -6475,9 +6631,98 @@
|
|||||||
$("#btnopenmodalcancel").click(function() {
|
$("#btnopenmodalcancel").click(function() {
|
||||||
$("#modalpembatalan").modal('show');
|
$("#modalpembatalan").modal('show');
|
||||||
});
|
});
|
||||||
$("#btnshowtemplate").click(function() {
|
$(".btnshowtemplate").click(function() {
|
||||||
$('#divtemplate').show();
|
$('#divtemplate').show();
|
||||||
});
|
});
|
||||||
|
$(".btnsavepewarnaanlsg").click(function(){
|
||||||
|
var keterangan = CKEDITOR.instances['keterangan'].getData();
|
||||||
|
var lsg_pewarnaanlain = CKEDITOR.instances['lsg_pewarnaanlain'].getData();
|
||||||
|
var viralload = CKEDITOR.instances['viralload'].getData();
|
||||||
|
var periksa_id = document.getElementById('periksa_id').value;
|
||||||
|
var template_jenis = document.getElementById('template_jenis').value;
|
||||||
|
var id_dokter = document.getElementById('dokter').value;
|
||||||
|
var acc_number = document.getElementById('nofoto').value;
|
||||||
|
var nostatus = document.getElementById('nostatus').value;
|
||||||
|
var addendumketerangan = CKEDITOR.instances['addendumketerangan'].getData();
|
||||||
|
if (addendumketerangan == '' && nostatus == 'Selesai'){
|
||||||
|
swal({
|
||||||
|
title : 'Stop',
|
||||||
|
text : 'Addendum Keterangan Wajib Di Isi',
|
||||||
|
type : 'warning',
|
||||||
|
})
|
||||||
|
return false;
|
||||||
|
} else if (addendumketerangan == '' && nostatus == 'Arsip'){
|
||||||
|
swal({
|
||||||
|
title : 'Stop',
|
||||||
|
text : 'Addendum Keterangan Wajib Di Isi',
|
||||||
|
type : 'warning',
|
||||||
|
})
|
||||||
|
return false;
|
||||||
|
} else {
|
||||||
|
const checkboxMap = {
|
||||||
|
inlineCheckbox1: 'TBC SO',
|
||||||
|
inlineCheckbox2: 'TBC RO',
|
||||||
|
inlineCheckbox3: 'Anak',
|
||||||
|
inlineCheckbox4: 'HIV',
|
||||||
|
inlineCheckbox5: 'DM',
|
||||||
|
inlineCheckbox6: 'Nanah Lendir',
|
||||||
|
inlineCheckbox7: 'Bercak darah',
|
||||||
|
inlineCheckbox8: 'Air liur',
|
||||||
|
inlineCheckbox9: 'Nanah Lendir',
|
||||||
|
inlineCheckbox10: 'Bercak darah',
|
||||||
|
inlineCheckbox11: 'Air liur',
|
||||||
|
};
|
||||||
|
const checkboxValues = {};
|
||||||
|
$.each(checkboxMap, function (id, label) {
|
||||||
|
checkboxValues[id] = $(`#${id}`).is(':checked') ? label : '';
|
||||||
|
});
|
||||||
|
var formdata = new FormData($('#kt_form')[0]);
|
||||||
|
formdata.set('periksa_id', periksa_id);
|
||||||
|
formdata.set('acc_number', acc_number);
|
||||||
|
formdata.set('val01', 'statuspewarnaanlsg');
|
||||||
|
formdata.set('val10', template_jenis);
|
||||||
|
formdata.set('keterangan', keterangan);
|
||||||
|
formdata.set('addendumketerangan', addendumketerangan);
|
||||||
|
formdata.set('lsg_pewarnaanlain', lsg_pewarnaanlain);
|
||||||
|
formdata.set('viralload', viralload);
|
||||||
|
formdata.set('nilai_kritis', $('#nilai_kritis').is(':checked') ? '1' : '0');
|
||||||
|
formdata.set('master_mikro', $('#master_lokasi').val());
|
||||||
|
formdata.set('_token', '{{ csrf_token() }}');
|
||||||
|
$.each(checkboxValues, (key, val) => formdata.set(key, val));
|
||||||
|
$.ajax({
|
||||||
|
url : '{{ route("exexpertisepacs") }}',
|
||||||
|
data : formdata,
|
||||||
|
type : 'POST',
|
||||||
|
contentType : false,
|
||||||
|
processData : false,
|
||||||
|
success: function (data) {
|
||||||
|
$("#gridpemeriksaan").jqxGrid('updatebounddata','filter');
|
||||||
|
$("#gridadendum").jqxGrid('updatebounddata','filter');
|
||||||
|
var status = data.status;
|
||||||
|
var message = data.message;
|
||||||
|
var warna = data.warna;
|
||||||
|
var icon = data.icon;
|
||||||
|
$.toast({
|
||||||
|
heading : status,
|
||||||
|
text : message,
|
||||||
|
position : 'top-right',
|
||||||
|
loaderBg : warna,
|
||||||
|
icon : icon,
|
||||||
|
hideAfter : 5000,
|
||||||
|
stack : 1
|
||||||
|
});
|
||||||
|
return false;
|
||||||
|
},
|
||||||
|
error: function (xhr, status, error) {
|
||||||
|
swal({
|
||||||
|
title : 'Stop',
|
||||||
|
text : xhr.responseText,
|
||||||
|
type : 'warning',
|
||||||
|
})
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
});
|
||||||
$("#btnsendexpertisetopacs").click(function(){
|
$("#btnsendexpertisetopacs").click(function(){
|
||||||
var keterangan = CKEDITOR.instances['keterangan'].getData();
|
var keterangan = CKEDITOR.instances['keterangan'].getData();
|
||||||
var lsg_pewarnaanlain = CKEDITOR.instances['lsg_pewarnaanlain'].getData();
|
var lsg_pewarnaanlain = CKEDITOR.instances['lsg_pewarnaanlain'].getData();
|
||||||
|
|||||||
@@ -0,0 +1,160 @@
|
|||||||
|
<div>
|
||||||
|
<div class="bio-step-panel">
|
||||||
|
<div class="bio-step-title">Pilih Lemari</div>
|
||||||
|
<div class="bio-choice-grid">
|
||||||
|
@forelse($cabinets as $cabinet)
|
||||||
|
<button type="button"
|
||||||
|
class="bio-choice {{ (int) $selectedCabinetId === (int) $cabinet->id ? 'active' : '' }}"
|
||||||
|
wire:click="selectCabinet({{ $cabinet->id }})">
|
||||||
|
<strong>{{ $cabinet->code }} - {{ $cabinet->name }}</strong>
|
||||||
|
<span>{{ $cabinet->location ?? 'Lokasi belum diisi' }}</span>
|
||||||
|
<small>{{ $cabinet->racks_count }} rack | {{ $cabinet->specimens_count }} tube terisi</small>
|
||||||
|
</button>
|
||||||
|
@empty
|
||||||
|
<div class="alert alert-warning m-b-0">Belum ada data lemari biorepository.</div>
|
||||||
|
@endforelse
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@if($selectedCabinet)
|
||||||
|
<div class="d-flex justify-content-between align-items-center m-b-15">
|
||||||
|
<h5 class="m-b-0">{{ $selectedCabinet->code }} - {{ $selectedCabinet->name }}</h5>
|
||||||
|
<form method="POST" action="{{ route('biorepository.deleteCabinet', $selectedCabinet->id) }}" class="js-delete-cabinet">
|
||||||
|
@csrf
|
||||||
|
<button type="submit" class="btn btn-sm btn-danger">Delete Lemari</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="bio-step-panel">
|
||||||
|
<div class="bio-step-title">Pilih Rack</div>
|
||||||
|
<div class="bio-choice-grid">
|
||||||
|
@forelse($selectedCabinet->racks as $rack)
|
||||||
|
@php
|
||||||
|
$slotCount = (int) ($rack->slot_count ?: 1);
|
||||||
|
$shelfCount = (int) $rack->level;
|
||||||
|
$boxCount = (int) ($rack->box_number ?: 1);
|
||||||
|
$tubeCapacity = (int) $rack->capacity;
|
||||||
|
@endphp
|
||||||
|
<div class="bio-choice-wrap">
|
||||||
|
<button type="button"
|
||||||
|
class="bio-choice {{ (int) $selectedRackId === (int) $rack->id ? 'active' : '' }}"
|
||||||
|
wire:click="selectRack({{ $rack->id }})">
|
||||||
|
<strong>{{ $rack->code }} - {{ $rack->name }}</strong>
|
||||||
|
<span>Rack No {{ $rack->rack_number ?? $rack->id }}</span>
|
||||||
|
<small>{{ $slotCount }} slot | {{ $shelfCount }} shelf/slot | {{ $boxCount }} box/shelf | {{ $tubeCapacity }} tube/box</small>
|
||||||
|
<small>Terisi: {{ $rack->specimens_count }}</small>
|
||||||
|
</button>
|
||||||
|
<form method="POST" action="{{ route('biorepository.deleteRack', $rack->id) }}" class="js-delete-rack bio-delete-form">
|
||||||
|
@csrf
|
||||||
|
<button type="submit" class="btn btn-xs btn-danger">Delete</button>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
@empty
|
||||||
|
<div class="alert alert-light m-b-0">Belum ada rack pada lemari ini.</div>
|
||||||
|
@endforelse
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@if($selectedRack)
|
||||||
|
@php
|
||||||
|
$slotCount = max(1, (int) ($selectedRack->slot_count ?: 1));
|
||||||
|
$shelfCount = max(0, (int) $selectedRack->level);
|
||||||
|
$boxCount = max(1, (int) ($selectedRack->box_number ?: 1));
|
||||||
|
$tubeCapacity = max(0, (int) $selectedRack->capacity);
|
||||||
|
$tubeMap = [];
|
||||||
|
foreach ($selectedRack->specimens as $item) {
|
||||||
|
if ($item->slot_number && $item->shelf_number && $item->box_number && $item->tube_number) {
|
||||||
|
$tubeMap[$item->slot_number.'-'.$item->shelf_number.'-'.$item->box_number.'-'.$item->tube_number] = $item;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@endphp
|
||||||
|
|
||||||
|
<div class="bio-step-panel">
|
||||||
|
<div class="bio-step-title">Pilih Slot</div>
|
||||||
|
<div class="bio-number-grid">
|
||||||
|
@for($slot = 1; $slot <= $slotCount; $slot++)
|
||||||
|
<button type="button"
|
||||||
|
class="bio-number {{ (int) $selectedSlot === $slot ? 'active' : '' }}"
|
||||||
|
wire:click="selectSlot({{ $slot }})">
|
||||||
|
Slot {{ $slot }}
|
||||||
|
</button>
|
||||||
|
@endfor
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
@if($selectedSlot)
|
||||||
|
<div class="bio-step-panel">
|
||||||
|
<div class="bio-step-title">Pilih Shelf</div>
|
||||||
|
<div class="bio-number-grid">
|
||||||
|
@for($shelf = 1; $shelf <= $shelfCount; $shelf++)
|
||||||
|
<button type="button"
|
||||||
|
class="bio-number {{ (int) $selectedShelf === $shelf ? 'active' : '' }}"
|
||||||
|
wire:click="selectShelf({{ $shelf }})">
|
||||||
|
Shelf {{ $shelf }}
|
||||||
|
</button>
|
||||||
|
@endfor
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@if($selectedSlot && $selectedShelf)
|
||||||
|
<div class="bio-step-panel">
|
||||||
|
<div class="bio-step-title">Pilih Box</div>
|
||||||
|
<div class="bio-number-grid">
|
||||||
|
@for($box = 1; $box <= $boxCount; $box++)
|
||||||
|
<button type="button"
|
||||||
|
class="bio-number {{ (int) $selectedBox === $box ? 'active' : '' }}"
|
||||||
|
wire:click="selectBox({{ $box }})">
|
||||||
|
Box {{ $box }}
|
||||||
|
</button>
|
||||||
|
@endfor
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
|
||||||
|
@if($selectedSlot && $selectedShelf && $selectedBox)
|
||||||
|
<div class="bio-step-panel">
|
||||||
|
<div class="bio-step-title">Tube List</div>
|
||||||
|
@if($tubeCapacity > 0)
|
||||||
|
<div class="tube-grid">
|
||||||
|
@for($tube = 1; $tube <= $tubeCapacity; $tube++)
|
||||||
|
@php $tubeKey = $selectedSlot.'-'.$selectedShelf.'-'.$selectedBox.'-'.$tube; @endphp
|
||||||
|
@if(isset($tubeMap[$tubeKey]))
|
||||||
|
<button type="button"
|
||||||
|
class="slot-btn slot-filled js-slot-filled"
|
||||||
|
data-specimen-id="{{ $tubeMap[$tubeKey]->id }}"
|
||||||
|
data-rack-id="{{ $selectedRack->id }}"
|
||||||
|
data-shelf="{{ $selectedShelf }}"
|
||||||
|
data-rackno="{{ $selectedRack->rack_number ?? $selectedRack->id }}"
|
||||||
|
data-slot="{{ $selectedSlot }}"
|
||||||
|
data-box="{{ $selectedBox }}"
|
||||||
|
data-tube="{{ $tube }}"
|
||||||
|
data-bakteri="{{ $tubeMap[$tubeKey]->bacteria_name ?? $tubeMap[$tubeKey]->specimen_name }}"
|
||||||
|
data-strain="{{ $tubeMap[$tubeKey]->strain }}"
|
||||||
|
data-volume="{{ $tubeMap[$tubeKey]->volume ?? 0 }}"
|
||||||
|
title="{{ $tubeMap[$tubeKey]->specimen_code }} - {{ $tubeMap[$tubeKey]->bacteria_name ?? $tubeMap[$tubeKey]->specimen_name }} / {{ $tubeMap[$tubeKey]->strain }}">
|
||||||
|
<span>{{ $tube }}</span>
|
||||||
|
<small>{{ $tubeMap[$tubeKey]->volume ?? 0 }} ml</small>
|
||||||
|
</button>
|
||||||
|
@else
|
||||||
|
<button type="button"
|
||||||
|
class="slot-btn js-slot"
|
||||||
|
data-rack-id="{{ $selectedRack->id }}"
|
||||||
|
data-shelf="{{ $selectedShelf }}"
|
||||||
|
data-rackno="{{ $selectedRack->rack_number ?? $selectedRack->id }}"
|
||||||
|
data-slot="{{ $selectedSlot }}"
|
||||||
|
data-box="{{ $selectedBox }}"
|
||||||
|
data-tube="{{ $tube }}">
|
||||||
|
{{ $tube }}
|
||||||
|
</button>
|
||||||
|
@endif
|
||||||
|
@endfor
|
||||||
|
</div>
|
||||||
|
@else
|
||||||
|
<div class="alert alert-light m-b-0">Konfigurasi tube belum lengkap.</div>
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
|
@endif
|
||||||
|
@endif
|
||||||
|
</div>
|
||||||
Reference in New Issue
Block a user