This commit is contained in:
Dwi Swandhana
2026-07-19 21:23:09 +07:00
parent 5e097c1abc
commit 4450076726
2 changed files with 240 additions and 101 deletions
@@ -15,14 +15,25 @@
var initialStartDate = @json($initialStartDate ?? '');
var initialEndDate = @json($initialEndDate ?? '');
var autoOpenAttempts = 0;
var maxAutoOpenAttempts = 12;
var hasOpenedTarget = false;
var hasRequestedFilteredLoad = false;
var maxAutoOpenAttempts = 12;
var hasOpenedTarget = false;
var hasRequestedFilteredLoad = false;
function setInitialFilters() {
if ($('#mulai').length) {
$('#mulai').val(initialStartDate);
}
console.log('[mikro-expertise] init', {
focusPeriksaId: focusPeriksaId,
focusNoFoto: focusNoFoto,
shouldOpenOnLoad: shouldOpenOnLoad,
initialListMode: initialListMode,
initialSearchValue: initialSearchValue,
initialStartDate: initialStartDate,
initialEndDate: initialEndDate
});
function setInitialFilters() {
console.log('[mikro-expertise] setInitialFilters:start');
if ($('#mulai').length) {
$('#mulai').val(initialStartDate);
}
if ($('#akhir').length) {
$('#akhir').val(initialEndDate);
}
@@ -32,10 +43,17 @@
if ($('#master_set01').length) {
$('#master_set01').val(initialListMode);
}
if ($('#valcari').length) {
$('#valcari').val(initialSearchValue);
}
}
if ($('#valcari').length) {
$('#valcari').val(initialSearchValue);
}
console.log('[mikro-expertise] setInitialFilters:done', {
mulai: $('#mulai').val(),
akhir: $('#akhir').val(),
valjenis: $('#valjenis').val(),
master_set01: $('#master_set01').val(),
valcari: $('#valcari').val()
});
}
function findExpertiseButton(boundIndex) {
var row = $('#gridpemeriksaan').find('[role="row"][boundindex="' + boundIndex + '"]').first();
@@ -50,45 +68,78 @@
}).first();
}
function triggerExpertiseButton(boundIndex, rowData) {
try {
var columns = $('#gridpemeriksaan').jqxGrid('columns');
var records = columns && columns.records ? columns.records : [];
function triggerExpertiseButton(boundIndex, rowData) {
console.log('[mikro-expertise] triggerExpertiseButton:start', {
boundIndex: boundIndex,
rowData: rowData
});
try {
var columns = $('#gridpemeriksaan').jqxGrid('columns');
var records = columns && columns.records ? columns.records : [];
console.log('[mikro-expertise] triggerExpertiseButton:columns', {
count: records.length
});
for (var i = 0; i < records.length; i++) {
for (var i = 0; i < records.length; i++) {
var column = records[i];
if (column && typeof column.buttonclick === 'function') {
var renderedLabel = typeof column.cellsrenderer === 'function'
? column.cellsrenderer()
: '';
if (String(renderedLabel).indexOf('Expertise') !== -1) {
column.buttonclick(rowData || boundIndex);
return true;
}
}
}
} catch (error) {
console.log(error);
}
if (String(renderedLabel).indexOf('Expertise') !== -1) {
console.log('[mikro-expertise] triggerExpertiseButton:calling column.buttonclick', {
columnIndex: i,
renderedLabel: renderedLabel
});
column.buttonclick(rowData || boundIndex);
return true;
}
}
}
} catch (error) {
console.error('[mikro-expertise] triggerExpertiseButton:error', error);
}
var button = findExpertiseButton(boundIndex);
if (button.length) {
button.trigger('click');
return true;
}
var button = findExpertiseButton(boundIndex);
if (button.length) {
console.log('[mikro-expertise] triggerExpertiseButton:fallback DOM button click');
button.trigger('click');
return true;
}
return false;
}
console.warn('[mikro-expertise] triggerExpertiseButton:not found');
return false;
}
function openFocusedPeriksa() {
if (!shouldOpenOnLoad || hasOpenedTarget || !focusPeriksaId) {
return;
}
function openFocusedPeriksa() {
console.log('[mikro-expertise] openFocusedPeriksa:start', {
shouldOpenOnLoad: shouldOpenOnLoad,
hasOpenedTarget: hasOpenedTarget,
focusPeriksaId: focusPeriksaId,
focusNoFoto: focusNoFoto,
attempt: autoOpenAttempts + 1
});
if (!shouldOpenOnLoad || hasOpenedTarget || !focusPeriksaId) {
console.warn('[mikro-expertise] openFocusedPeriksa:skipped');
return;
}
var rows = $('#gridpemeriksaan').jqxGrid('getrows') || [];
var matchedRow = null;
var matchedRowBoundIndex = -1;
var rows = $('#gridpemeriksaan').jqxGrid('getrows') || [];
console.log('[mikro-expertise] openFocusedPeriksa:grid rows', {
count: rows.length,
sample: rows.slice ? rows.slice(0, 3).map(function (row) {
return {
id: row.id,
nofoto: row.nofoto,
dlp: row.dlp,
status: row.status,
boundindex: row.boundindex
};
}) : []
});
var matchedRow = null;
var matchedRowBoundIndex = -1;
for (var i = 0; i < rows.length; i++) {
if (String(rows[i].id) === focusPeriksaId || (focusNoFoto !== '' && String(rows[i].nofoto) === focusNoFoto)) {
@@ -100,52 +151,76 @@
}
}
if (!matchedRow) {
autoOpenAttempts++;
if (autoOpenAttempts >= maxAutoOpenAttempts) {
$('#divawal').show();
}
return;
}
if (!matchedRow) {
autoOpenAttempts++;
console.warn('[mikro-expertise] openFocusedPeriksa:not matched', {
attempt: autoOpenAttempts,
focusPeriksaId: focusPeriksaId,
focusNoFoto: focusNoFoto
});
if (autoOpenAttempts >= maxAutoOpenAttempts) {
console.error('[mikro-expertise] openFocusedPeriksa:max attempts, showing divawal');
$('#divawal').show();
}
return;
}
var triggerRowIndex = matchedRowBoundIndex >= 0 ? matchedRowBoundIndex : matchedRow.boundindex;
$('#gridpemeriksaan').jqxGrid('selectrow', triggerRowIndex);
$('#gridpemeriksaan').jqxGrid('ensurerowvisible', triggerRowIndex);
var triggerRowIndex = matchedRowBoundIndex >= 0 ? matchedRowBoundIndex : matchedRow.boundindex;
console.log('[mikro-expertise] openFocusedPeriksa:matched', {
triggerRowIndex: triggerRowIndex,
row: matchedRow
});
$('#gridpemeriksaan').jqxGrid('selectrow', triggerRowIndex);
$('#gridpemeriksaan').jqxGrid('ensurerowvisible', triggerRowIndex);
setTimeout(function () {
if (triggerExpertiseButton(triggerRowIndex, matchedRow)) {
hasOpenedTarget = true;
return;
}
setTimeout(function () {
if (triggerExpertiseButton(triggerRowIndex, matchedRow)) {
hasOpenedTarget = true;
console.log('[mikro-expertise] openFocusedPeriksa:triggered');
return;
}
autoOpenAttempts++;
if (autoOpenAttempts >= maxAutoOpenAttempts) {
$('#divawal').show();
}
}, 150);
}
autoOpenAttempts++;
console.warn('[mikro-expertise] openFocusedPeriksa:trigger failed', {
attempt: autoOpenAttempts
});
if (autoOpenAttempts >= maxAutoOpenAttempts) {
console.error('[mikro-expertise] openFocusedPeriksa:max trigger attempts, showing divawal');
$('#divawal').show();
}
}, 150);
}
function requestFilteredLoad() {
if (hasRequestedFilteredLoad) {
return;
}
function requestFilteredLoad() {
console.log('[mikro-expertise] requestFilteredLoad:start', {
hasRequestedFilteredLoad: hasRequestedFilteredLoad,
openedpageType: typeof openedpage
});
if (hasRequestedFilteredLoad) {
console.warn('[mikro-expertise] requestFilteredLoad:skipped duplicate');
return;
}
hasRequestedFilteredLoad = true;
setInitialFilters();
if (typeof openedpage === 'function') {
openedpage();
} else {
$('#divawal').show();
}
}
setInitialFilters();
if (typeof openedpage === 'function') {
console.log('[mikro-expertise] requestFilteredLoad:calling openedpage');
openedpage();
} else {
console.error('[mikro-expertise] requestFilteredLoad:openedpage missing, showing divawal');
$('#divawal').show();
}
}
$('#gridpemeriksaan').off('bindingcomplete.mikro-expertise').on('bindingcomplete.mikro-expertise', function () {
openFocusedPeriksa();
});
$('#gridpemeriksaan').off('bindingcomplete.mikro-expertise').on('bindingcomplete.mikro-expertise', function () {
console.log('[mikro-expertise] grid bindingcomplete');
openFocusedPeriksa();
});
$(window).off('load.mikro-expertise').on('load.mikro-expertise', function () {
requestFilteredLoad();
});
$(window).off('load.mikro-expertise').on('load.mikro-expertise', function () {
console.log('[mikro-expertise] window load');
requestFilteredLoad();
});
$('#btnkembali2').off('click.mikro-expertise').on('click.mikro-expertise', function () {
window.location.href = returnUrl;
@@ -4982,10 +4982,24 @@
]
});
}
function openlamanekpertise(dlp, nofoto, idne){
dlp = dlp || document.getElementById('dlp').value;
nofoto = nofoto || document.getElementById('nofoto').value || document.getElementById('nofoto').textContent;
idne = idne || document.getElementById('periksa_id').value;
function openlamanekpertise(dlp, nofoto, idne){
console.log('[openlamanekpertise] start', {
inputDlp: dlp,
inputNofoto: nofoto,
inputIdne: idne,
currentDlp: document.getElementById('dlp') ? document.getElementById('dlp').value : null,
currentNofotoValue: document.getElementById('nofoto') ? document.getElementById('nofoto').value : null,
currentNofotoText: document.getElementById('nofoto') ? document.getElementById('nofoto').textContent : null,
currentPeriksaId: document.getElementById('periksa_id') ? document.getElementById('periksa_id').value : null
});
dlp = dlp || document.getElementById('dlp').value;
nofoto = nofoto || document.getElementById('nofoto').value || document.getElementById('nofoto').textContent;
idne = idne || document.getElementById('periksa_id').value;
console.log('[openlamanekpertise] resolved values', {
dlp: dlp,
nofoto: nofoto,
idne: idne
});
$('#dlp').val(dlp);
$('#nofoto').val(nofoto).html(nofoto);
$('#periksa_id').val(idne);
@@ -5004,10 +5018,15 @@
$('#id_bakterimediabapteks').hide();
$('#vl_hasildiv1select').show();
$('#vl_hasildiv1teks').hide();
$('#vl_hasildiv2select').show();
$('#vl_hasildiv2teks').hide();
$('input[type="checkbox"]').prop('disabled', false);
console.log('Loading komponen jawaban for DLP: '+dlp+' | No.Foto: '+nofoto+' | ID Periksa: '+idne);
$('#vl_hasildiv2select').show();
$('#vl_hasildiv2teks').hide();
$('input[type="checkbox"]').prop('disabled', false);
console.log('[openlamanekpertise] ui toggled', {
divtemplateVisible: $('#divtemplate').is(':visible'),
masterdivVisible: $('#masterdiv').is(':visible'),
setelahdipilihtemplateVisibleCount: $('.setelahdipilihtemplate:visible').length
});
console.log('Loading komponen jawaban for DLP: '+dlp+' | No.Foto: '+nofoto+' | ID Periksa: '+idne);
var form_data = new FormData();
form_data.append('nofoto', nofoto);
form_data.append('ruangan', dlp);
@@ -5019,9 +5038,14 @@
type : 'POST',
contentType : false,
processData : false,
success : function (response) {
var komponens = response.komponens || JSON.parse(response);
komponens.forEach(function(rows) {
success : function (response) {
console.log('[openlamanekpertise] getResult success raw', response);
var komponens = response.komponens || JSON.parse(response);
console.log('[openlamanekpertise] getResult parsed', {
count: Array.isArray(komponens) ? komponens.length : null,
komponens: komponens
});
komponens.forEach(function(rows) {
console.log(rows.komponen+' | '+rows.isidata);
if (rows.komponen === 'lsg_pewarnaanlain') {
CKEDITOR.instances['lsg_pewarnaanlain'].setData(rows.isidata);
@@ -5128,13 +5152,20 @@
}
}
});
},
error: function (xhr, status, error) {
var response = xhr.responseJSON || {};
var traceText = response.trace ? JSON.stringify(response.trace) : null;
console.log(traceText);
}
});
},
error: function (xhr, status, error) {
var response = xhr.responseJSON || {};
var traceText = response.trace ? JSON.stringify(response.trace) : null;
console.error('[openlamanekpertise] getResult error', {
status: status,
error: error,
httpStatus: xhr.status,
responseText: xhr.responseText,
responseJSON: xhr.responseJSON,
traceText: traceText
});
}
});
console.log('Displaying template for DLP: '+dlp);
if (dlp == 'CCI'){
$('#templatecci').show();
@@ -5168,7 +5199,15 @@
$('#templatecovid').show();
$('#judultemplate').html('PCR COVID');
}
console.log('Finished loading komponen jawaban for DLP: '+dlp+' | No.Foto: '+nofoto+' | ID Periksa: '+idne);
console.log('[openlamanekpertise] template branch done', {
dlp: dlp,
nofoto: nofoto,
idne: idne,
templateKulturVisible: $('#templatekultur').is(':visible'),
templatePewarnaanVisible: $('#templatepewarnaanlangsung').is(':visible'),
templateTbVisible: $('#templatetbc').is(':visible'),
templateViralLoadVisible: $('#templateviralload').is(':visible')
});
}
function openedpage( jQuery ){
var jenis = document.getElementById('master_set01').value;
@@ -5179,6 +5218,15 @@
var poli = document.getElementById('valpoli2').value;
var set06 = document.getElementById('master_judul').value;
var token = document.getElementById('token').value;
console.log('[openedpage] getList params', {
jenis: jenis,
mulai: mulai,
akhir: akhir,
valcari: valcari,
poli: poli,
master: master,
judul: set06
});
if (jenis == 'ThisDay'){
$("#mulai").val('');
$("#akhir").val('');
@@ -5343,7 +5391,16 @@
var dataRecord = (row && typeof row === 'object')
? row
: $("#gridpemeriksaan").jqxGrid('getrowdata', editrow);
console.log('[expertise button] clicked/resolved row', {
inputRow: row,
editrow: editrow,
dataRecord: dataRecord
});
if (!dataRecord || typeof dataRecord.id === 'undefined') {
console.error('[expertise button] dataRecord missing/invalid', {
inputRow: row,
editrow: editrow
});
return;
}
$("#nofoto").val('');
@@ -5378,9 +5435,16 @@
var cekuser5 = dataRecord.iddokter;
var cekuser6 = dataRecord.analis;
var set01 = dataRecord.pasien_id;
var accnumber = dataRecord.nofoto;
var cekkesimpulan = dataRecord.kesimpulan;
var dlp = dataRecord.dlp;
var accnumber = dataRecord.nofoto;
var cekkesimpulan = dataRecord.kesimpulan;
var dlp = dataRecord.dlp;
console.log('[expertise button] key values', {
id: goook,
nofoto: nofoto,
dlp: dlp,
status: statuse,
pasien_id: set01
});
var masteru = document.getElementById('master_userid').value;
var token = document.getElementById('token').value;
var sourceadendum = {
@@ -7508,8 +7572,8 @@
var response = xhr.responseJSON || {};
var traceText = response.trace ? JSON.stringify(response.trace) : null;
console.log(traceText);
}
});
}
});
});
$("#btnsimpannewkumanmanual2").click(function() {
var komponen = 'id_bakteri02';