04-02-2025

This commit is contained in:
Duidev Software House
2025-02-04 09:09:37 +07:00
parent 619f75ff5e
commit ba76a18580
3 changed files with 448 additions and 700 deletions

View File

@@ -160,69 +160,100 @@ class FrontpageController extends Controller
}
}
public function viewMikro() {
if (Session::get('previlage') == ''){
// Cek previlage
if (!Session::has('previlage')) {
return redirect('/login');
} else {
$data = [];
$dokters = User::where('previlage', 'supervisor')->get();
$allppds = User::where('previlage', 'ppds')->get();
$allanalis = User::where('previlage', 'analis')->get();
$organismslis = Organisms::where('kelompok', 'biakankultur')->groupBy('category')->select('category')->get();
$i = 0;
foreach ($organismslis as $rorganisme) {
$j = 0;
$category = $rorganisme->category;
$rooms = Organisms::where('kelompok', 'biakankultur')->where('category', $category)->orderBy('name', 'ASC')->get();
foreach ($rooms as $room) {
$data['organismes'][$i][$j]['id'] = $room->id;
$data['organismes'][$i][$j]['name'] = $room->name;
$j++;
}
$i++;
}
$x = 0;
foreach ($organismslis as $rows) {
$data['bacterycateggories'][$x] = $rows->category;
$x++;
}
if ($x == 0){
$data['organismes'][0][0]['id'] = 0;
$data['organismes'][0][0]['name'] = 'No Data';
$data['bacterycateggories'][0] = 'No Data';
}
$mikroorganismelist = Organisms::where('kelompok', 'mikroorganisme')->groupBy('category')->select('category')->get();
$i = 0;
foreach ($mikroorganismelist as $rorganisme) {
$j = 0;
$category = $rorganisme->category;
$rooms = Organisms::where('kelompok', 'mikroorganisme')->where('category', $category)->orderBy('name', 'ASC')->get();
foreach ($rooms as $room) {
$data['mikroorganismes'][$i][$j]['id'] = $room->id;
$data['mikroorganismes'][$i][$j]['name'] = $room->name;
$j++;
}
$i++;
}
$x = 0;
foreach ($mikroorganismelist as $rows) {
$data['mikroorganismestlist'][$x] = $rows->category;
$x++;
}
if ($x == 0){
$data['mikroorganismes'][0][0]['id'] = 0;
$data['mikroorganismes'][0][0]['name'] = 'No Data';
$data['mikroorganismestlist'][0] = 'No Data';
}
$data['allppds'] = $allppds;
$data['dokters'] = $dokters;
$data['allanalis'] = $allanalis;
$data['antrkrmsitu']= PeriksaSYNC::where('created_by', Session('username'))->where('status', '')->count();
$data['lokasi'] = 'Lab Mikrobiologi';
$data['master'] = 'mikro';
$previlage = Session('previlage');
return view('dokter.ppds', $data);
}
}
// Data umum
$data = [
'dokters' => User::where('previlage', 'supervisor')->get(),
'allppds' => User::where('previlage', 'ppds')->get(),
'allanalis' => User::where('previlage', 'analis')->get(),
'lokasi' => 'Lab Mikrobiologi',
'master' => 'mikro',
'antrkrmsitu' => 0,
];
// Ambil semua data organisme sekaligus
$allOrganisms = Organisms::orderBy('name', 'ASC')->get();
// Fungsi helper untuk mengelompokkan data organisme
$groupOrganisms = function ($kelompok) use ($allOrganisms) {
$organisms = $allOrganisms->where('kelompok', $kelompok);
if ($organisms->isEmpty()) {
return [
'organismes' => [[['id' => 0, 'name' => 'No Data']]],
'categories' => ['No Data'],
];
}
$grouped = $organisms->groupBy('category');
$organismes = [];
$categories = [];
$i = 0;
foreach ($grouped as $category => $items) {
$categories[] = $category;
$j = 0;
foreach ($items as $item) {
$organismes[$i][$j] = ['id' => $item->id, 'name' => $item->name];
$j++;
}
$i++;
}
return [
'organismes' => $organismes,
'categories' => $categories,
];
};
// Data untuk biakankultur dan mikroorganisme
$biakankulturData = $groupOrganisms('biakankultur');
$mikroorganismeData = $groupOrganisms('mikroorganisme');
// Gabungkan data
$data = array_merge($data, [
'organismes' => $biakankulturData['organismes'],
'bacterycateggories' => $biakankulturData['categories'],
'mikroorganismes' => $mikroorganismeData['organismes'],
'mikroorganismestlist' => $mikroorganismeData['categories'],
]);
// Mapping nama kelompok di array dengan nama kelompok di tabel database
$kelompokMapping = [
'jsonsputum' => 'Sputum',
'jsonswabtenggorok' => 'Swab Tenggorok',
'jsonurine' => 'Urine',
'jsonswabperineum' => 'Swab perineum',
'jsonselepitel' => 'Sel Epitel',
'jsonselradang' => 'Sel Radang',
'jsonmikroorganisme' => 'Q Mikroorganisme',
'jsonjumlahlactobacillus' => 'Lactobacillus',
'jsonjumlahgardnerella' => 'Gardnerella',
'jsonjumlahmobiluncus' => 'Mobiluncus',
'jsonpewarnaanziehlnielsen' => 'Pewarnaan Ziehl Nielsen',
'jsonpewarnaanneisser' => 'Pewarnaan Neisser',
'jsonpewarnaannegatif' => 'Pewarnaan Negatif',
'jsonpewarnaanspora' => 'Pewarnaan Spora',
'jsonmediabap' => 'Media BAP',
'jsonmediacap' => 'Media CAP',
'jsonmediamcconkey' => 'Media Mc Conkey',
'jsonpemeriksaantl' => 'Pemeriksaan Tambahan Lainnya',
'jsonbiakankultur' => 'Biakan Kultur',
];
// Ambil data tambahan untuk kelompok organisme dari koleksi yang sudah diambil
foreach ($kelompokMapping as $key => $kelompok) {
$data[$key] = $allOrganisms->where('kelompok', $kelompok)->values();
}
// Kembalikan view dengan data
return view('dokter.ppds', $data);
}
public function pengambilan() {
if (Session::get('previlage') == ''){
return redirect('/login');