This commit is contained in:
Duidev Software House
2025-12-08 19:23:51 +07:00
parent 48dd3b9009
commit 3d3a60c747
14 changed files with 6178 additions and 273 deletions
+254 -236
View File
@@ -76,99 +76,139 @@
</div>
</div>
<div id="modaleditorbiorepository" class="modal fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Bio Repository</h4>
</div>
<div class="modal-body">
<form class="form-horizontal">
<div class="form-group m-b-25">
<div class="col-12">
<label>Category Penyimpanan</label>
<select class="form-control" id="kategorisimpan" name="kategorisimpan">
<option value="A">Penyimpanan Suhu Ruang</option>
<option value="B">Penyimpanan Suhu 4 Derajat</option>
<option value="C">Penyimpanan Suhu 20 Derajat</option>
<option value="D">Penyimpanan Suhu 80 Derajat</option>
</select>
</div>
<div class="modal-dialog modal-xl">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
<h4 class="modal-title" id="myModalLabel">Bio Repository</h4>
</div>
<div class="modal-body">
<form class="form-horizontal">
<div class="form-group m-b-25">
<div class="col-12">
<label>Category Penyimpanan</label>
<select class="form-control" id="kategorisimpan" name="kategorisimpan">
<option value="A">Penyimpanan Suhu Ruang</option>
<option value="B">Penyimpanan Suhu 4 Derajat</option>
<option value="C">Penyimpanan Suhu 20 Derajat</option>
<option value="D">Penyimpanan Suhu 80 Derajat</option>
</select>
</div>
<div class="form-group row">
<div class="col-lg-4">
<label>Shelf Nomor</label>
<input type="number" class="form-control" id="shelfnomor">
</div>
<div class="col-lg-4">
<label>Rack Number</label>
<input type="number" class="form-control" id="raknomor">
</div>
<div class="col-lg-4">
<label>Slot Number</label>
<input type="number" class="form-control" id="slotnomor">
</div>
<div class="col-lg-4">
<label>Box Number</label>
<input type="number" class="form-control" id="boxnomor">
</div>
<div class="col-lg-4">
<label>Tube Number</label>
<input type="number" class="form-control" id="tubenomor">
</div>
</div>
<div class="form-group row">
<div class="col-lg-4">
<label>Shelf Nomor</label>
<input type="number" class="form-control" id="shelfnomor">
</div>
<div class="form-group m-b-25">
<div class="col-12">
<label>Bactery Name</label>
<input type="text" class="form-control" id="nmbakteri">
</div>
<div class="col-lg-4">
<label>Rack Number</label>
<input type="number" class="form-control" id="raknomor">
</div>
<div class="form-group m-b-25">
<div class="col-12">
<label>Strain</label>
<select class="form-control" id="strain" name="strain">
<option value="Gram Negatif">Gram Negatif</option>
<option value="Gram Positif">Gram Positif</option>
</select>
</div>
<div class="col-lg-4">
<label>Slot Number</label>
<input type="number" class="form-control" id="slotnomor">
</div>
<div class="form-group m-b-25">
<div class="col-12">
<label>ATCC</label>
<input type="text" class="form-control" id="atcc">
</div>
<div class="col-lg-4">
<label>Box Number</label>
<input type="number" class="form-control" id="boxnomor">
</div>
<div class="form-group m-b-25">
<div class="col-12">
<label>Tgl Penyimpanan</label>
<input type="text" class="form-control" id="tglpenyimpanan">
</div>
<div class="col-lg-4">
<label>Tube Number</label>
<input type="number" class="form-control" id="tubenomor">
</div>
<div class="form-group m-b-25">
<div class="col-12">
<label>Nama Pelaksana / Pemilik</label>
<input type="text" class="form-control" id="createdby">
</div>
</div>
<div class="form-group m-b-25">
<div class="col-12">
<label>Bactery Name</label>
<input type="text" class="form-control" id="nmbakteri">
</div>
<div class="form-group account-btn text-center m-t-10">
<div class="col-12">
<input type="hidden" class="form-control" id="idbakteri">
<button class="btn w-lg btn-custom waves-effect waves-light" id="btnsimpandata" type="button">Save</button>
</div>
</div>
<div class="form-group m-b-25">
<div class="col-12">
<label>Strain</label>
<select class="form-control" id="strain" name="strain">
<option value="Gram Negatif">Gram Negatif</option>
<option value="Gram Positif">Gram Positif</option>
</select>
</div>
</form>
</div>
</div>
<div class="form-group m-b-25">
<div class="col-12">
<label>ATCC</label>
<input type="text" class="form-control" id="atcc">
</div>
</div>
<div class="form-group m-b-25">
<div class="col-12">
<label>Tgl Penyimpanan</label>
<input type="text" class="form-control" id="tglpenyimpanan">
</div>
</div>
<div class="form-group m-b-25">
<div class="col-12">
<label>Nama Pelaksana / Pemilik</label>
<input type="text" class="form-control" id="createdby">
</div>
</div>
<div class="form-group account-btn text-center m-t-10">
<div class="col-12">
<input type="hidden" class="form-control" id="idbakteri">
<button class="btn w-lg btn-custom waves-effect waves-light" id="btnsimpandata" type="button">Save</button>
</div>
</div>
</form>
</div>
</div>
</div>
</div>
<div id="tempatctk" style="overflow: hidden; display: none;">
<div id="tabel_cetak"></div>
<div id="tabel_cetak"></div>
<table id="laporan" class="table table-bordered display">
<thead>
<tr>
<th>File Report</th>
<th>No.Loket</th>
<th>No Rekam Medis</th>
<th>No.RM</th>
<th>Nama</th>
<th>No.HP</th>
<th>Tgl. Lahir</th>
<th>Umur</th>
<th>Alamat</th>
<th>KTP</th>
<th>BPJS</th>
<th>Asuransi</th>
<th>Urgensi</th>
<th>Asal Pasien</th>
<th>Order</th>
<th>Klinisi</th>
<th>Klinis</th>
<th>Analis</th>
<th>PPDS</th>
<th>Code</th>
<th>Speciment</th>
<th>Template</th>
<th>Jenis</th>
<th>Bakteri I</th>
<th>Bakteri II</th>
<th>Bakteri III</th>
<th>Sample Masuk</th>
<th>Verifikasi</th>
<th>Target</th>
<th>Duration</th>
<th>Keterangan</th>
<th>Status</th>
</tr>
</thead>
<tbody></tbody>
</table>
</div>
<input type="hidden" name="_token" id="token" value="{{ csrf_token() }}">
@endsection
@push('script')
<script src="https://cdnjs.cloudflare.com/ajax/libs/jspdf/2.5.1/jspdf.umd.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/xlsx/0.17.0/xlsx.full.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
@@ -187,95 +227,136 @@ $(document).ready(function () {
type : 'error',
});
} else {
var source = {
datatype: "json",
datafields: [
{ name: 'id',type: 'text'},
{ name: 'filefoto',type: 'text'},
{ name: 'mulai',type: 'text'},
{ name: 'akhir',type: 'text'},
{ name: 'orderid',type: 'text'},
{ name: 'nofoto',type: 'text'},
{ name: 'noregister',type: 'text'},
{ name: 'asalpasien', type: 'text'},
{ name: 'nmpasien',type: 'text'},
{ name: 'jkpasien',type: 'text'},
{ name: 'tgllahirpasien', type: 'text'},
{ name: 'tlppasien', type: 'text'},
{ name: 'alamatpasien', type: 'text'},
{ name: 'usia', type: 'text'},
{ name: 'ktp', type: 'text'},
{ name: 'bpjs', type: 'text'},
{ name: 'klinis', type: 'text'},
{ name: 'klinisi', type: 'text'},
{ name: 'asuransi', type: 'text'},
{ name: 'urgensi', type: 'text'},
{ name: 'kd_spesimen', type: 'text'},
{ name: 'nm_spesimen', type: 'text'},
{ name: 'verifikasi',type: 'text'},
{ name: 'dlp',type: 'text'},
{ name: 'status',type: 'text'},
{ name: 'id_bakteri01',type: 'text'},
{ name: 'id_bakteri02',type: 'text'},
{ name: 'bakteri',type: 'text'},
{ name: 'selisih_hari',type: 'text'},
{ name: 'subpoli',type: 'text'},
{ name: 'status_target',type: 'text'},
{ name: 'modaliti2',type: 'text'},
],
updaterow : function (rowid, rowdata, commit) {commit(true);},
type : 'POST',
data : {bulan: bulan, tahun: tahun, jenisreport: '', _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: 'nofoto', 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: 'Tgl. Lahir', datafield: 'tgllahirpasien', width: 70, cellsalign: 'left', align: 'center' },
{ text: 'Umur', datafield: 'usia', width: 70, cellsalign: 'left', align: 'center' },
{ text: 'Alamat', datafield: 'alamatpasien', width: 70, cellsalign: 'left', align: 'center' },
{ text: 'KTP', datafield: 'ktp', width: 70, cellsalign: 'left', align: 'center' },
{ text: 'BPJS', datafield: 'bpjs', width: 70, cellsalign: 'left', align: 'center' },
{ text: 'Asuransi', datafield: 'asuransi', width: 70, cellsalign: 'left', align: 'center' },
{ text: 'Urgensi', datafield: 'urgensi', width: 70, cellsalign: 'left', align: 'center' },
{ text: 'Asal Pasien', datafield: 'asalpasien', width: 100, cellsalign: 'left', align: 'center'},
{ text: 'Order', datafield: 'subpoli', width: 150, 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: '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: '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: 'Sample Masuk', datafield: 'mulai', width: 160, cellsalign: 'left', align: 'center' },
{ text: 'Verifikasi', datafield: 'verifikasi', width: 80, cellsalign: 'left', align: 'center' },
{ text: 'Target', datafield: 'modaliti2', width: 100, cellsalign: 'left', align: 'center'},
{ text: 'Duration', datafield: 'selisih_hari', width: 100, cellsalign: 'left', align: 'center'},
{ text: 'Keterangan', datafield: 'status_target', width: 100, cellsalign: 'left', align: 'center'},
{ text: 'Status', datafield: 'status', width: 100, cellsalign: 'left', align: 'center'},
],
$.post('{{ route("reportPeriksa") }}', { bulan: bulan, tahun: tahun, jenisreport: '', _token: token },
function(data){
var sourceawal = {
datatype: "json",
datafields: [
{ name: 'id',type: 'text'},
{ name: 'filefoto',type: 'text'},
{ name: 'mulai',type: 'text'},
{ name: 'akhir',type: 'text'},
{ name: 'orderid',type: 'text'},
{ name: 'nofoto',type: 'text'},
{ name: 'noregister',type: 'text'},
{ name: 'asalpasien', type: 'text'},
{ name: 'nmpasien',type: 'text'},
{ name: 'jkpasien',type: 'text'},
{ name: 'tgllahirpasien', type: 'text'},
{ name: 'tlppasien', type: 'text'},
{ name: 'alamatpasien', type: 'text'},
{ name: 'usia', type: 'text'},
{ name: 'ktp', type: 'text'},
{ name: 'bpjs', type: 'text'},
{ name: 'klinis', type: 'text'},
{ name: 'klinisi', type: 'text'},
{ name: 'asuransi', type: 'text'},
{ name: 'urgensi', type: 'text'},
{ name: 'kd_spesimen', type: 'text'},
{ name: 'nm_spesimen', type: 'text'},
{ name: 'verifikasi',type: 'text'},
{ name: 'dlp',type: 'text'},
{ name: 'status',type: 'text'},
{ name: 'id_bakteri01',type: 'text'},
{ name: 'id_bakteri02',type: 'text'},
{ name: 'bakteri',type: 'text'},
{ name: 'selisih_hari',type: 'text'},
{ name: 'subpoli',type: 'text'},
{ name: 'status_target',type: 'text'},
{ name: 'modaliti2',type: 'text'},
],
id: 'id',
localData: data
};
var dataAdapter = new $.jqx.dataAdapter(sourceawal);
$('#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: 'nofoto', 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: 'Tgl. Lahir', datafield: 'tgllahirpasien', width: 70, cellsalign: 'left', align: 'center' },
{ text: 'Umur', datafield: 'usia', width: 70, cellsalign: 'left', align: 'center' },
{ text: 'Alamat', datafield: 'alamatpasien', width: 70, cellsalign: 'left', align: 'center' },
{ text: 'KTP', datafield: 'ktp', width: 70, cellsalign: 'left', align: 'center' },
{ text: 'BPJS', datafield: 'bpjs', width: 70, cellsalign: 'left', align: 'center' },
{ text: 'Asuransi', datafield: 'asuransi', width: 70, cellsalign: 'left', align: 'center' },
{ text: 'Urgensi', datafield: 'urgensi', width: 70, cellsalign: 'left', align: 'center' },
{ text: 'Asal Pasien', datafield: 'asalpasien', width: 100, cellsalign: 'left', align: 'center'},
{ text: 'Order', datafield: 'subpoli', width: 150, 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: '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: '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: 'Sample Masuk', datafield: 'mulai', width: 160, cellsalign: 'left', align: 'center' },
{ text: 'Verifikasi', datafield: 'verifikasi', width: 80, cellsalign: 'left', align: 'center' },
{ text: 'Target', datafield: 'modaliti2', width: 100, cellsalign: 'left', align: 'center'},
{ text: 'Duration', datafield: 'selisih_hari', width: 100, cellsalign: 'left', align: 'center'},
{ text: 'Keterangan', datafield: 'status_target', width: 100, cellsalign: 'left', align: 'center'},
{ text: 'Status', datafield: 'status', width: 100, cellsalign: 'left', align: 'center'},
],
});
var tbody = $("#laporan tbody");
tbody.empty();
$.each(data, function(i, row) {
var tr = `<tr>
<td>${row.filefoto ?? ''}</td>
<td>${row.nofoto ?? ''}</td>
<td>${row.noregister ?? ''}</td>
<td>${row.noregister ?? ''}</td>
<td>${row.nmpasien ?? ''}</td>
<td>${row.tlppasien ?? ''}</td>
<td>${row.tgllahirpasien ?? ''}</td>
<td>${row.usia ?? ''}</td>
<td>${row.alamatpasien ?? ''}</td>
<td>${row.ktp ?? ''}</td>
<td>${row.bpjs ?? ''}</td>
<td>${row.asuransi ?? ''}</td>
<td>${row.urgensi ?? ''}</td>
<td>${row.asalpasien ?? ''}</td>
<td>${row.subpoli ?? ''}</td>
<td>${row.klinisi ?? ''}</td>
<td>${row.klinis ?? ''}</td>
<td>${row.nmanalis ?? ''}</td>
<td>${row.nmppdssenior ?? ''}</td>
<td>${row.kd_spesimen ?? ''}</td>
<td>${row.nm_spesimen ?? ''}</td>
<td>${row.dlp ?? ''}</td>
<td>${row.diagnosa2 ?? ''}</td>
<td>${row.bakteri ?? ''}</td>
<td>${row.id_bakteri01 ?? ''}</td>
<td>${row.id_bakteri02 ?? ''}</td>
<td>${row.mulai ?? ''}</td>
<td>${row.verifikasi ?? ''}</td>
<td>${row.modaliti2 ?? ''}</td>
<td>${row.selisih_hari ?? ''}</td>
<td>${row.status_target ?? ''}</td>
<td>${row.status ?? ''}</td>
</tr>`;
tbody.append(tr);
});
return false;
});
}
});
@@ -495,79 +576,16 @@ $(document).ready(function () {
}
});
$('#downexcell').click(function(){
var gridContent = $("#result").jqxGrid('exportdata', 'json');
data = $.parseJSON(gridContent);
var noOfContacts = data.length;
if(noOfContacts>0){
var table = document.createElement("table");
table.style.width = '100%';
table.setAttribute('border', '1');
table.setAttribute('cellspacing', '0');
table.setAttribute('cellpadding', '5');
table.setAttribute('id', 'tabelcetak');
table.setAttribute('class', 'text');
var col = [];
for (var i = 0; i < noOfContacts; i++) {
for (var key in data[i]) {
if (col.indexOf(key) === -1) {
col.push(key);
}
}
}
var tHead = document.createElement("thead");
var hRow = document.createElement("tr");
for (var i = 0; i < col.length; i++) {
var th = document.createElement("th");
th.innerHTML = col[i];
hRow.appendChild(th);
}
tHead.appendChild(hRow);
table.appendChild(tHead);
var tBody = document.createElement("tbody");
for (var i = 0; i < noOfContacts; i++) {
var bRow = document.createElement("tr");
for (var j = 0; j < col.length; j++) {
var td = document.createElement("td");
var isi = data[i][col[j]];
var isi2 = isi.toString();
var pjg = isi2.length;
if (pjg > 8){
if (pjg == 9 || pjg == 10 || pjg == 11 || pjg == 12 || pjg == 13){
if( isi2.indexOf(',') != -1 ){
var res = isi2.replace(/,/g, "");
td.innerHTML = res;
}
else {
var res = isi2;
td.setAttribute('style', 'mso-number-format: "\@";');
td.innerHTML = res;
}
}
else {
var res = isi2;
td.setAttribute('style', 'mso-number-format: "\@";');
td.innerHTML = res;
}
}
else {
var res = isi2.replace(/,/g, "");
td.innerHTML = res;
}
bRow.appendChild(td);
}
tBody.appendChild(bRow)
}
table.appendChild(tBody);
var divContainer = document.getElementById("tabel_cetak");
divContainer.innerHTML = "";
divContainer.appendChild(table);
var bulan = document.getElementById('bulan').value;
var tahun = document.getElementById('tahun').value;
var table = document.getElementById('laporan');
if (table) {
var wb = XLSX.utils.table_to_book(table, { sheet: "Report" });
XLSX.writeFile(wb, "Report_"+bulan+"_Tahun"+tahun+".xlsx");
} else {
console.error('Tabel dengan ID "tblkeaktifankelas" tidak ditemukan.');
}
$("#tabel_cetak").btechco_excelexport({
containerid: "tabel_cetak"
, datatype: $datatype.Table
});
return false;
});
$('#downexcellharian').click(function(){
var gridContent = $("#resultharian").jqxGrid('exportdata', 'json');