update
This commit is contained in:
@@ -618,8 +618,7 @@ class ReportController extends Controller
|
||||
];
|
||||
|
||||
return [
|
||||
'A' => array_merge($tableC, ['Nama Spesies Bakteri', 'ESBL', 'MRSA'], $tableAAntibiotics),
|
||||
'B' => array_merge($tableC, ['Nama Spesies Jamur'], $tableBAntibiotics),
|
||||
'A' => array_merge($tableC, ['Nama Spesies Bakteri', 'Pertumbuhan Bakteri', 'SIR Bakteri', 'ESBL', 'MRSA'], $tableAAntibiotics, $tableBAntibiotics),
|
||||
'C' => $tableC,
|
||||
'A_antibiotics' => $tableAAntibiotics,
|
||||
'B_antibiotics' => $tableBAntibiotics,
|
||||
@@ -738,7 +737,7 @@ class ReportController extends Controller
|
||||
$komponen = DB::table('db_komponenjawaban')
|
||||
->select('accnumber', 'komponen', 'isidata')
|
||||
->whereIn('accnumber', $accnumbers)
|
||||
->whereIn('komponen', ['bakteri', 'id_bakteri01', 'id_bakteri02', 'id_mikroorganisme'])
|
||||
->whereIn('komponen', ['bakteri', 'id_bakteri01', 'id_bakteri02', 'id_mikroorganisme', 'id_biakankultur', 'bakterisir', 'id_bakterisir01', 'id_bakterisir02'])
|
||||
->whereNotNull('isidata')
|
||||
->where('isidata', '!=', '')
|
||||
->get()
|
||||
@@ -757,7 +756,7 @@ class ReportController extends Controller
|
||||
private function splitGlassReportRows($rows, $lookups) {
|
||||
$headers = $this->getGlassReportHeaders();
|
||||
$aliases = $this->getGlassReportAntibioticAliases();
|
||||
$tables = ['A' => [], 'B' => [], 'C' => []];
|
||||
$tables = ['A' => [], 'C' => []];
|
||||
|
||||
foreach ($rows as $row) {
|
||||
$baseRow = $this->buildGlassReportBaseRow($row);
|
||||
@@ -765,6 +764,12 @@ class ReportController extends Controller
|
||||
$antibioticRows = $lookups['antibiotik'][$row->id] ?? collect([]);
|
||||
|
||||
$speciesNames = [];
|
||||
$growthValue = '';
|
||||
$sirValues = [
|
||||
'bakteri' => '',
|
||||
'id_bakteri01' => '',
|
||||
'id_bakteri02' => '',
|
||||
];
|
||||
|
||||
foreach ($komponenRows as $komponenRow) {
|
||||
$value = trim(strip_tags((string) $komponenRow->isidata));
|
||||
@@ -773,12 +778,31 @@ class ReportController extends Controller
|
||||
}
|
||||
|
||||
if (in_array($komponenRow->komponen, ['bakteri', 'id_bakteri01', 'id_bakteri02'], true) && stripos($value, 'Ditemukan morfologi') === false) {
|
||||
$speciesNames[] = $value;
|
||||
$speciesNames[] = [
|
||||
'name' => $value,
|
||||
'component' => $komponenRow->komponen,
|
||||
];
|
||||
}
|
||||
|
||||
if ($komponenRow->komponen === 'id_biakankultur' && $growthValue === '') {
|
||||
$growthValue = $value;
|
||||
}
|
||||
|
||||
if ($komponenRow->komponen === 'bakterisir' && $sirValues['bakteri'] === '') {
|
||||
$sirValues['bakteri'] = $value;
|
||||
}
|
||||
|
||||
if ($komponenRow->komponen === 'id_bakterisir01' && $sirValues['id_bakteri01'] === '') {
|
||||
$sirValues['id_bakteri01'] = $value;
|
||||
}
|
||||
|
||||
if ($komponenRow->komponen === 'id_bakterisir02' && $sirValues['id_bakteri02'] === '') {
|
||||
$sirValues['id_bakteri02'] = $value;
|
||||
}
|
||||
}
|
||||
|
||||
$speciesNames = array_values(array_filter($speciesNames, function ($value) {
|
||||
return trim((string) $value) !== '';
|
||||
return trim((string) ($value['name'] ?? '')) !== '';
|
||||
}));
|
||||
|
||||
$antibioticValues = [];
|
||||
@@ -802,14 +826,15 @@ class ReportController extends Controller
|
||||
}
|
||||
|
||||
$hasJenisSpesimen = trim((string) ($baseRow[10] ?? '')) !== '';
|
||||
$hasFungalAntibiotic = collect($headers['B_antibiotics'])->contains(function ($antibioticHeader) use ($antibioticValues) {
|
||||
return array_key_exists($antibioticHeader, $antibioticValues);
|
||||
});
|
||||
|
||||
if (!empty($speciesNames) && $hasJenisSpesimen && !$hasFungalAntibiotic) {
|
||||
foreach ($speciesNames as $speciesName) {
|
||||
if (!empty($speciesNames) && $hasJenisSpesimen) {
|
||||
foreach ($speciesNames as $speciesData) {
|
||||
$sirKey = $speciesData['component'] ?? 'bakteri';
|
||||
$sirValue = $sirValues[$sirKey] ?? '';
|
||||
$tableRow = array_merge($baseRow, [
|
||||
$speciesName,
|
||||
$speciesData['name'] ?? '',
|
||||
$growthValue,
|
||||
$sirValue,
|
||||
$row->id_esbl ?? '',
|
||||
$row->id_mrsa ?? '',
|
||||
]);
|
||||
@@ -818,22 +843,11 @@ class ReportController extends Controller
|
||||
$tableRow[] = $antibioticValues[$antibioticHeader] ?? '';
|
||||
}
|
||||
|
||||
$tables['A'][] = $tableRow;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!empty($speciesNames) && $hasJenisSpesimen && $hasFungalAntibiotic) {
|
||||
foreach ($speciesNames as $speciesName) {
|
||||
$tableRow = array_merge($baseRow, [
|
||||
$speciesName,
|
||||
]);
|
||||
|
||||
foreach ($headers['B_antibiotics'] as $antibioticHeader) {
|
||||
$tableRow[] = $antibioticValues[$antibioticHeader] ?? '';
|
||||
}
|
||||
|
||||
$tables['B'][] = $tableRow;
|
||||
$tables['A'][] = $tableRow;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
@@ -902,7 +916,6 @@ class ReportController extends Controller
|
||||
$headers = $this->getGlassReportHeaders();
|
||||
$tables = [
|
||||
'A' => [],
|
||||
'B' => [],
|
||||
'C' => [],
|
||||
];
|
||||
|
||||
@@ -917,14 +930,14 @@ class ReportController extends Controller
|
||||
$lookups = $this->getGlassReportLookups($rows);
|
||||
$chunkTables = $this->splitGlassReportRows($rows, $lookups);
|
||||
|
||||
foreach (['A', 'B', 'C'] as $tableKey) {
|
||||
foreach (['A', 'C'] as $tableKey) {
|
||||
foreach ($chunkTables[$tableKey] as $tableRow) {
|
||||
$tables[$tableKey][] = $tableRow;
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
foreach (['A', 'B', 'C'] as $tableKey) {
|
||||
foreach (['A', 'C'] as $tableKey) {
|
||||
fputcsv($handle, ['TABEL '.$tableKey]);
|
||||
fputcsv($handle, $headers[$tableKey]);
|
||||
|
||||
|
||||
@@ -69,9 +69,12 @@
|
||||
<div class="alert alert-info">
|
||||
Preview Glass Report ditampilkan per halaman 50 pemeriksaan agar aman di memori. Untuk data lengkap gunakan tombol download CSV.
|
||||
</div>
|
||||
@foreach (['A', 'B', 'C'] as $tableKey)
|
||||
@foreach (['A', 'C'] as $tableKey)
|
||||
<div class="table-responsive" style="margin-bottom: 24px;">
|
||||
<h4>TABEL {{ $tableKey }}</h4>
|
||||
<button type="button" class="btn btn-primary" id="btnexporttabel{{ $tableKey }}" style="margin-bottom: 10px;">
|
||||
<i class="fa fa-print"></i> Export
|
||||
</button>
|
||||
<table class="table table-bordered table-sm" id="tabel{{ $tableKey }}">
|
||||
<thead>
|
||||
<tr>
|
||||
@@ -171,15 +174,6 @@
|
||||
console.error('Tabel dengan ID "tabelA" tidak ditemukan.');
|
||||
}
|
||||
});
|
||||
document.getElementById('btnexporttabelB').addEventListener('click', function() {
|
||||
var table = document.getElementById('tabelB');
|
||||
if (table) {
|
||||
var wb = XLSX.utils.table_to_book(table, { sheet: "Jamur" });
|
||||
XLSX.writeFile(wb, "TABEL_B_{{$bulan}}_Tahun{{$tahun}}.xlsx");
|
||||
} else {
|
||||
console.error('Tabel dengan ID "tabelB" tidak ditemukan.');
|
||||
}
|
||||
});
|
||||
document.getElementById('btnexporttabelC').addEventListener('click', function() {
|
||||
var table = document.getElementById('tabelC');
|
||||
if (table) {
|
||||
|
||||
Reference in New Issue
Block a user