This commit is contained in:
Duidev Software House
2025-09-23 14:33:23 +07:00
parent e8d66dec74
commit b107ab9ba7
4 changed files with 174 additions and 33 deletions
@@ -1228,6 +1228,17 @@ class DokterController extends Controller
if ($organism != ''){
$isidata = 'Organisme yang ditemukan <strong style="font-style: italic;">'.$organism.'</strong><br />'.$isidata;
KomponenJawaban::updateOrCreate(
[
'accnumber' => $nofoto,
'template' => $request->input('jenis'),
'komponen' => 'bakteri',
],
[
'isidata' => $organism,
'created_by' => Session('nama')
]
);
}
}
if ($isidata == '' OR is_null($isidata)){
@@ -265,47 +265,66 @@ class ReportController extends Controller
public function report(Request $request) {
$bulan = $request->input('bulan');
$tahun = $request->input('tahun');
$jenisreport = $request->input('jenisreport');
$homebase = url("/");
$arraylist = [];
$limit = $request->input('limit') ?? 500;
$page = $request->input('pagenum') ?? 1;
$order = $request->input('order') ?? 'id desc';
$filterscount = $request->input('filterscount') ?? 0;
if ($bulan === 'pertanggal' || $bulan === 'terjadwal') {
$results = DB::table($bulan === 'terjadwal' ? 'jadwalperiksan' : 'periksa')->when($bulan === 'terjadwal', function ($query) use ($tahun) {
return $query->whereNull('jadwalperiksan.status')
->where('jadwalperiksan.daftar', 'LIKE', "%$tahun%");
}, function ($query) use ($tahun) {
return $query->where('periksa.daftar', 'LIKE', "$tahun%");
})->get();
$totals = ['m' => 0, 'f' => 0, 'jkn' => 0, 'umum' => 0, 'tag' => 0, 'gcu' => 0, 'bill' => 0, 'swasta' => 0, 'electiv' => 0, 'cito' => 0];
foreach ($results as $result) {
$asuransi = $result->asuransi;
$urgensi = $result->urgensi;
$totals = self::updateTotals($totals, $asuransi, $urgensi, $result->jkpasien);
$arraylist[] = self::mapResultToArray($result);
}
if ($bulan === 'pertanggal') {
$arraylist[] = self::getTotalRow($totals);
}
echo json_encode($arraylist);
} else {
if ($bulan == 'ALL' || $bulan == 'Pick Month') {
$results = DB::table('periksa')->where('daftar', 'LIKE', $tahun.'%')->get();
if ($jenisreport == 'biorepository'){
if ($bulan == 'ALL'){
$lists = DB::table('db_komponenjawaban')
->select('db_komponenjawaban.*', 'periksa.nofoto', 'periksa.noregister', 'db_komponenjawaban.nmpasien', 'db_komponenjawaban.usia', 'db_komponenjawaban.dlp', 'db_komponenjawaban.nm_spesimen', 'db_komponenjawaban.kd_spesimen')
->leftJoin('periksa', 'db_komponenjawaban.accnumber', 'periksa.nofoto')
->whereIn('db_komponenjawaban.komponen', ['id_bakteri01', 'id_bakteri02', 'bakteri'])
->where('periksa.daftar', 'LIKE', $tahun.'-%')->orderBy('periksa.id', 'DESC')->get();
} else {
$tglcari = $tahun.'-'.$bulan;
$results = DB::table('periksa')->where('daftar', 'LIKE', $tglcari.'%')->get();
$lists = DB::table('db_komponenjawaban')
->select('db_komponenjawaban.*', 'periksa.nofoto', 'periksa.noregister', 'db_komponenjawaban.nmpasien', 'db_komponenjawaban.usia', 'db_komponenjawaban.dlp', 'db_komponenjawaban.nm_spesimen', 'db_komponenjawaban.kd_spesimen')
->leftJoin('periksa', 'db_komponenjawaban.accnumber', 'periksa.nofoto')
->whereIn('db_komponenjawaban.komponen', ['id_bakteri01', 'id_bakteri02', 'bakteri'])
->where('periksa.daftar', 'LIKE', $tahun.'-'.$bulan.'-%')->orderBy('periksa.id', 'DESC')->get();
}
$totals = ['m' => 0, 'f' => 0, 'jkn' => 0, 'umum' => 0, 'tag' => 0, 'gcu' => 0, 'bill' => 0, 'swasta' => 0, 'electiv' => 0, 'cito' => 0];
foreach ($results as $result) {
$asuransi = $result->asuransi;
$urgensi = $result->urgensi;
$totals = self::updateTotals($totals, $asuransi, $urgensi, $result->jkpasien);
$arraylist[] = self::mapResultToArray($result);
echo json_encode($lists);
} else {
if ($bulan === 'pertanggal' || $bulan === 'terjadwal') {
$results = DB::table($bulan === 'terjadwal' ? 'jadwalperiksan' : 'periksa')->when($bulan === 'terjadwal', function ($query) use ($tahun) {
return $query->whereNull('jadwalperiksan.status')
->where('jadwalperiksan.daftar', 'LIKE', "%$tahun%");
}, function ($query) use ($tahun) {
return $query->where('periksa.daftar', 'LIKE', "$tahun%");
})->get();
$totals = ['m' => 0, 'f' => 0, 'jkn' => 0, 'umum' => 0, 'tag' => 0, 'gcu' => 0, 'bill' => 0, 'swasta' => 0, 'electiv' => 0, 'cito' => 0];
foreach ($results as $result) {
$asuransi = $result->asuransi;
$urgensi = $result->urgensi;
$totals = self::updateTotals($totals, $asuransi, $urgensi, $result->jkpasien);
$arraylist[] = self::mapResultToArray($result);
}
if ($bulan === 'pertanggal') {
$arraylist[] = self::getTotalRow($totals);
}
echo json_encode($arraylist);
} else {
if ($bulan == 'ALL' || $bulan == 'Pick Month') {
$results = DB::table('periksa')->where('daftar', 'LIKE', $tahun.'%')->get();
} else {
$tglcari = $tahun.'-'.$bulan;
$results = DB::table('periksa')->where('daftar', 'LIKE', $tglcari.'%')->get();
}
$totals = ['m' => 0, 'f' => 0, 'jkn' => 0, 'umum' => 0, 'tag' => 0, 'gcu' => 0, 'bill' => 0, 'swasta' => 0, 'electiv' => 0, 'cito' => 0];
foreach ($results as $result) {
$asuransi = $result->asuransi;
$urgensi = $result->urgensi;
$totals = self::updateTotals($totals, $asuransi, $urgensi, $result->jkpasien);
$arraylist[] = self::mapResultToArray($result);
}
$arraylist[] = self::getTotalRow($totals);
echo json_encode($arraylist);
}
$arraylist[] = self::getTotalRow($totals);
echo json_encode($arraylist);
}
}
public function genRekapAntibiotik(Request $request) {
$data = [];
@@ -17,6 +17,11 @@ return new class extends Migration
$table->string('template', 100)->nullable();
$table->string('komponen', 100)->nullable();
$table->text('isidata')->nullable();
$table->string('nobiorepository', 100)->nullable();
$table->string('strain', 255)->nullable();
$table->string('atcc', 255)->nullable();
$table->string('sample', 255)->nullable();
$table->date('tglpenyimpanan', 100)->nullable();
$table->string('created_by', 255)->nullable();
$table->timestamp('created_at')->useCurrent();
$table->timestamp('updated_at')->useCurrent();
+108 -2
View File
@@ -33,11 +33,20 @@
<div class="form-group col-md-3">
<button type="button" class="btn btn-primary" id="btnReport">Detail</button>
</div>
<div class="form-group col-md-3">
</div>
<div class="form-group col-md-3">
<button type="button" class="btn btn-warning btn-block" id="btnrekap">Rekap Antibiotik</button>
</div>
<div class="form-group col-md-3">
<button type="button" class="btn btn-info btn-block" id="btnrekapglassreport">Rekap Glass Report</button>
</div>
<div class="form-group col-md-3">
<button type="button" class="btn btn-primary btn-block" id="btnrekapzn">Rekap Ziehl Nielsen</button>
</div>
<div class="form-group col-md-3">
<button type="button" class="btn btn-danger btn-block" id="btnrekapbiorepo">Biorepository Bakteri</button>
</div>
</div>
</div>
</div>
@@ -156,7 +165,7 @@ $(document).ready(function () {
],
updaterow : function (rowid, rowdata, commit) {commit(true);},
type : 'POST',
data : {bulan: bulan, tahun: tahun, _token: token },
data : {bulan: bulan, tahun: tahun, jenisreport: '', _token: token },
url : '{{ route("reportPeriksa") }}',
};
var dataAdapter = new $.jqx.dataAdapter(source);
@@ -219,6 +228,103 @@ $(document).ready(function () {
{ text: 'Insurance', align: 'center', name: 'asuransi' }
]
});
});
$('#btnrekapbiorepo').click(function () {
var bulan = document.getElementById('bulan').value;
var tahun = document.getElementById('tahun').value;
if (bulan == '' || tahun == ''){
swal({
title : 'Mohon diLengkapi',
text : 'Data Dasar Bulan dan Tahun Wajib di Isi',
type : 'error',
});
} else {
var token = document.getElementById('token').value;
var source = {
datatype: "json",
datafields: [
{ name: 'id',type: 'text'},
{ name: 'nofoto',type: 'text'},
{ name: 'noregister',type: 'text'},
{ name: 'nmpasien',type: 'text'},
{ name: 'usia',type: 'text'},
{ name: 'dlp',type: 'text'},
{ name: 'nm_spesimen',type: 'text'},
{ name: 'kd_spesimen',type: 'text'},
{ name: 'reques', type: 'text'},
{ name: 'nobiorepository', type: 'text'},
{ name: 'strain', type: 'text'},
{ name: 'atcc', type: 'text'},
{ name: 'sample', type: 'text'},
{ name: 'tglpenyimpanan', type: 'text'},
{ name: 'created_by', type: 'text'},
],
updaterow : function (rowid, rowdata, commit) {commit(true);},
type : 'POST',
data : {bulan: bulan, tahun: tahun, jenisreport: 'biorepository', _token: token },
url : '{{ route("reportPeriksa") }}',
};
var dataAdapter = new $.jqx.dataAdapter(source);
$('#divlaporan').show();
$('#divlaporanharian').hide();
$("#result").jqxGrid({
width : '100%',
enablebrowserselection : true,
filterable : true,
autoheight : true,
showfilterrow : true,
altrows : true,
source : dataAdapter,
pageable : true,
theme : "energyblue",
columnsresize : true,
selectionmode : 'multiplecellsextended',
columns : [
{ text: 'File Report', editable: false, sortable: false, filterable: false, datafield: 'filefoto', width: 80, cellsalign: 'left', align: 'center' },
{ text: 'No.Loket', datafield: 'noloket', width: 80, cellsalign: 'left', align: 'center' },
{ text: 'No.RM', datafield: 'noregister', width: 70, align: 'center', cellsalign: 'left'},
{ text: 'Nama', datafield: 'nmpasien', width: 160, cellsalign: 'left', align: 'center' },
{ text: 'No.HP', datafield: 'tlppasien', width: 100, cellsalign: 'left', align: 'center' },
{ text: 'Umur', datafield: 'usia', width: 70, cellsalign: 'left', align: 'center' },
{ text: 'M', editable: false, sortable: false, filterable: false, datafield: 'l', width: 20, cellsalign: 'left', align: 'center' },
{ text: 'F', editable: false, sortable: false, filterable: false, datafield: 'p', width: 20, cellsalign: 'left', align: 'center' },
{ text: 'Order', editable: false, sortable: false, filterable: false, datafield: 'jenis', width: 80, cellsalign: 'left', align: 'center' },
{ text: 'JKN', editable: false, sortable: false, filterable: false, columngroup: 'asuransi', datafield: 'jkn', width: 40, cellsalign: 'left', align: 'center' },
{ text: 'UMM', editable: false, sortable: false, filterable: false, columngroup: 'asuransi', datafield: 'umm', width: 40, cellsalign: 'left', align: 'center' },
{ text: 'TAG', editable: false, sortable: false, filterable: false, columngroup: 'asuransi', datafield: 'tag', width: 40, cellsalign: 'left', align: 'center' },
{ text: 'GCU', editable: false, sortable: false, filterable: false, columngroup: 'asuransi', datafield: 'gcu', width: 40, cellsalign: 'left', align: 'center' },
{ text: 'Billing', editable: false, sortable: false, filterable: false, columngroup: 'asuransi', datafield: 'billing', width: 40, cellsalign: 'left', align: 'center' },
{ text: 'SWASTA', editable: false, sortable: false, filterable: false, columngroup: 'asuransi', datafield: 'swasta', width: 40, cellsalign: 'left', align: 'center' },
{ text: 'Elective', editable: false, sortable: false, filterable: false, columngroup: 'urgensi', datafield: 'ele', width: 40, cellsalign: 'left', align: 'center' },
{ text: 'CITO', editable: false, sortable: false, filterable: false, columngroup: 'urgensi', datafield: 'cito', width: 40, cellsalign: 'left', align: 'center' },
{ text: 'Sample Masuk', columngroup: 'waktu', datafield: 'daftar', width: 160, cellsalign: 'left', align: 'center' },
{ text: 'Draft By', columngroup: 'waktu', datafield: 'nmdrafter', width: 150, cellsalign: 'left', align: 'center' },
{ text: 'Tgl. Draft', columngroup: 'waktu', datafield: 'tgldraft', width: 80, cellsalign: 'left', align: 'center' },
{ text: 'Expertise By', columngroup: 'waktu', datafield: 'nmpembaca', width: 150, cellsalign: 'left', align: 'center' },
{ text: 'Supervisor', columngroup: 'waktu', datafield: 'nmdokter', width: 150, cellsalign: 'left', align: 'center' },
{ text: 'Verifikasi', columngroup: 'waktu', datafield: 'verifikasi', width: 80, cellsalign: 'left', align: 'center' },
{ text: 'Cetak', columngroup: 'waktu', datafield: 'export', width: 80, cellsalign: 'left', align: 'center' },
{ text: 'Asal Pasien', datafield: 'asalpasien', width: 100, cellsalign: 'left', align: 'center'},
{ text: 'Asal RS', datafield: 'nmrs', width: 100, cellsalign: 'left', align: 'center'},
{ text: 'Klinisi', datafield: 'klinisi', width: 150, cellsalign: 'left', align: 'center'},
{ text: 'Klinis', datafield: 'klinis', width: 150, cellsalign: 'left', align: 'center'},
{ text: 'Analis', datafield: 'nmanalis', width: 150, cellsalign: 'left', align: 'center'},
{ text: 'PPDS', datafield: 'nmppdssenior', width: 150, cellsalign: 'left', align: 'center'},
{ text: 'Device', datafield: 'modality', width: 150, cellsalign: 'left', align: 'center'},
{ text: 'Code', datafield: 'kd_spesimen', width: 150, cellsalign: 'left', align: 'center'},
{ text: 'Speciment', datafield: 'nm_spesimen', width: 150, cellsalign: 'left', align: 'center'},
{ text: 'Template', datafield: 'dlp', width: 150, cellsalign: 'left', align: 'center'},
{ text: 'Jenis', datafield: 'diagnosa2', width: 150, cellsalign: 'left', align: 'center'},
{ text: 'Duration', editable: false, sortable: false, filterable: false, datafield: 'durasi', width: 100, cellsalign: 'left', align: 'center'},
],
columngroups:
[
{ text: 'Riwayat Tindakan', align: 'center', name: 'waktu' },
{ text: 'Urgensi', align: 'center', name: 'urgensi' },
{ text: 'Insurance', align: 'center', name: 'asuransi' }
]
});
}
});
$('#btnrekap').click(function () {
var bulan = document.getElementById('bulan').value;
@@ -302,7 +408,7 @@ $(document).ready(function () {
],
updaterow : function (rowid, rowdata, commit) {commit(true);},
type : 'POST',
data : {bulan: bulan, tahun: tahun, _token: token },
data : {bulan: bulan, tahun: tahun, jenisreport: '', _token: token },
url : '{{ route("reportPeriksa") }}',
};