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 ?? ''} |