diff --git a/htdocs/app/Http/Controllers/ReportController.php b/htdocs/app/Http/Controllers/ReportController.php index 4d15426b..37f38168 100644 --- a/htdocs/app/Http/Controllers/ReportController.php +++ b/htdocs/app/Http/Controllers/ReportController.php @@ -354,6 +354,7 @@ class ReportController extends Controller $page = $request->input('pagenum') ?? 1; $order = $request->input('order') ?? 'id desc'; $filterscount = $request->input('filterscount') ?? 0; + $isMdrReport = $jenisreport == 'list_hasil_mdr'; if ($jenisreport == 'biorepository'){ if ($bulan == 'ALL'){ $queryBiorepo = DB::table('db_komponenjawaban') @@ -410,6 +411,16 @@ class ReportController extends Controller if ($statusFilter === 'Selesai') { $query->where('status', 'LIKE', '%Selesai%'); } + if ($isMdrReport) { + $query->whereExists(function ($subquery) { + $subquery->select(DB::raw(1)) + ->from('db_komponenjawaban') + ->whereColumn('db_komponenjawaban.accnumber', 'periksa.nofoto') + ->whereIn('db_komponenjawaban.komponen', ['bakterisir', 'id_bakterisir01', 'id_bakterisir02']) + ->whereNotNull('db_komponenjawaban.isidata') + ->where('db_komponenjawaban.isidata', '!=', ''); + }); + } /** * CURSOR → Streaming data, tidak boros memori @@ -443,7 +454,8 @@ class ReportController extends Controller ->select('accnumber','komponen','isidata') ->whereIn('accnumber', array_unique($acc)) ->whereIn('komponen', [ - 'id_bakteri01','id_bakteri02','bakteri' + 'id_bakteri01','id_bakteri02','bakteri', + 'bakterisir','id_bakterisir01','id_bakterisir02' ]) ->get() ->groupBy('accnumber'); @@ -467,6 +479,13 @@ class ReportController extends Controller $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->hasil_mdr = $k->whereIn('komponen', ['bakterisir', 'id_bakterisir01', 'id_bakterisir02']) + ->pluck('isidata') + ->filter(function ($value) { + return trim(strip_tags((string) $value)) !== ''; + }) + ->unique() + ->implode('; '); $row->filefoto = "nofoto)."'>$row->nofoto"; diff --git a/htdocs/resources/views/admin/report.blade.php b/htdocs/resources/views/admin/report.blade.php index caefc718..25c1c29a 100644 --- a/htdocs/resources/views/admin/report.blade.php +++ b/htdocs/resources/views/admin/report.blade.php @@ -54,6 +54,9 @@
+
+ +
@@ -219,6 +222,7 @@ Bakteri I Bakteri II Bakteri III + Hasil MDR Sample Masuk Verifikasi Target @@ -243,12 +247,13 @@ $(document).ready(function () { $('#divlaporanharian').hide(); $("#tanggal").datepicker({format: 'yyyy-mm-dd'}); $("#tglpenyimpanan").datepicker({format: 'yyyy-mm-dd'}); - $('#btnReport').click(function () { + $('#btnReport, #btnReportMdr').click(function () { var bulan = document.getElementById('bulan').value; var tahun = document.getElementById('tahun').value; var dokterId= document.getElementById('dokter_id').value; var tanggalFilter = document.getElementById('tanggal_filter').value; var statusFilter = document.getElementById('status_filter').value; + var jenisReport = $(this).data('jenisreport') || ''; var token = document.getElementById('token').value; if (bulan == '' || tahun == ''){ swal({ @@ -257,7 +262,7 @@ $(document).ready(function () { type : 'error', }); } else { - $.post('{{ route("reportPeriksa") }}', { bulan: bulan, tahun: tahun, dokter_id: dokterId, tanggal_filter: tanggalFilter, status_filter: statusFilter, jenisreport: '', _token: token }, + $.post('{{ route("reportPeriksa") }}', { bulan: bulan, tahun: tahun, dokter_id: dokterId, tanggal_filter: tanggalFilter, status_filter: statusFilter, jenisreport: jenisReport, _token: token }, function(data){ var sourceawal = { datatype: "json", @@ -290,6 +295,7 @@ $(document).ready(function () { { name: 'id_bakteri01',type: 'text'}, { name: 'id_bakteri02',type: 'text'}, { name: 'bakteri',type: 'text'}, + { name: 'hasil_mdr',type: 'text'}, { name: 'selisih_hari',type: 'text'}, { name: 'reques',type: 'text'}, { name: 'status_target',type: 'text'}, @@ -342,6 +348,7 @@ $(document).ready(function () { { text: 'Bakteri I', datafield: 'bakteri', width: 150, cellsalign: 'left', align: 'center'}, { text: 'Bakteri II', datafield: 'id_bakteri01', width: 150, cellsalign: 'left', align: 'center'}, { text: 'Bakteri III', datafield: 'id_bakteri02', width: 150, cellsalign: 'left', align: 'center'}, + { text: 'Hasil MDR', datafield: 'hasil_mdr', width: 180, cellsalign: 'left', align: 'center', hidden: jenisReport !== 'list_hasil_mdr'}, { text: 'Tgl. Sample', datafield: 'mulai', width: 160, cellsalign: 'left', align: 'center' }, { text: 'Tgl. Hasil', datafield: 'verifikasi', width: 160, cellsalign: 'left', align: 'center' }, { text: 'Target', datafield: 'modaliti2', width: 100, cellsalign: 'left', align: 'center'}, @@ -382,6 +389,7 @@ $(document).ready(function () { ${row.bakteri ?? ''} ${row.id_bakteri01 ?? ''} ${row.id_bakteri02 ?? ''} + ${row.hasil_mdr ?? ''} ${row.mulai ?? ''} ${row.verifikasi ?? ''} ${row.modaliti2 ?? ''}