' + $('
').text(sGeneric).html() + '
' : '') +
+ (sCompany ? '
' + $('
').text(sCompany).html() + '
' : '') +
+ '
' +
+ '
' +
+ '
';
$rows.append(card);
});
}, 'json').fail(function() {
- $note.text('');
- $empty.show();
+ $note.text('Error');
+ $empty.show().text('Failed to load substitutes. Please try again.');
$rows.empty();
});
}
- // Handle substitute "Use" button
- $(document).on('click', '.btn-discharge-substitute-use', function() {
- var medId = parseInt($(this).data('id') || '0', 10);
- var medName = String($(this).data('name') || '').trim();
- var medType = String($(this).data('type') || '').trim();
+ // Handle Sub button click on added medicine rows
+ $(document).on('click', '.btn-discharge-substitute-row', function(e) {
+ if (e) e.preventDefault();
+ var $btn = $(this);
+ var $tr = $btn.closest('tr');
+ var medName = String($btn.data('med-name') || $tr.find('td:eq(1)').text() || '').trim();
+ var medType = String($btn.data('med-type') || $tr.find('td:eq(0)').text() || '').trim();
+ var medId = parseInt($btn.data('id') || $tr.data('row-id') || 0, 10);
+ var rowId = parseInt($btn.data('id') || $tr.data('row-id') || 0, 10);
+ var rowSource = String($btn.data('source') || $tr.data('row-source') || 'legacy').trim();
- if (medName === '') {
+ if (!medName) {
return;
}
- $('#discharge_med_id').val(medId);
- $('#discharge_med_name').val(medName);
- if (medType !== '') {
- setDischargeMedType(medType);
- }
+ $('#discharge_medicine_tbody tr').removeClass('table-info');
+ $tr.addClass('table-info');
- $('#discharge_substitute_box').hide();
- $('#discharge_med_name').trigger('focus');
+ $('#discharge_substitute_box').data('target-row-id', rowId);
+ $('#discharge_substitute_box').data('target-row-source', rowSource);
+
+ loadDischargeMedicineSubstitutes(medId, medName, medType);
});
- // Load substitutes when medicine is selected
- dischargeMedInput.addEventListener('change', function() {
- var medId = parseInt($('#discharge_med_id').val() || '0', 10);
- var medName = String(dischargeMedInput.value || '').trim();
+ // Close substitute box
+ $(document).on('click', '#btn_close_discharge_substitutes', function() {
+ $('#discharge_substitute_box').hide();
+ $('#discharge_medicine_tbody tr').removeClass('table-info');
+ });
- if (medId > 0 || medName !== '') {
- setTimeout(function() {
- loadDischargeMedicineSubstitutes(medId, medName);
- }, 100);
+ // Handle substitute "Replace" button
+ $(document).on('click', '.btn-discharge-substitute-replace', function() {
+ var sName = String($(this).data('name') || '').trim();
+ var sType = String($(this).data('type') || '').trim();
+ var sSalt = String($(this).data('salt') || '').trim();
+ var sId = parseInt($(this).data('id') || '0', 10);
+
+ var targetRowId = $('#discharge_substitute_box').data('target-row-id');
+ var $targetRow = null;
+ if (targetRowId !== undefined && targetRowId !== null) {
+ $targetRow = $('#discharge_medicine_tbody tr[data-row-id="' + targetRowId + '"]');
}
+ if (!$targetRow || !$targetRow.length) {
+ $targetRow = $('#discharge_medicine_tbody tr.table-info');
+ }
+
+ if ($targetRow && $targetRow.length) {
+ // Open in edit mode to preserve dosage/timing/frequency
+ $targetRow.find('.btn-edit-discharge-med').trigger('click');
+ $('#discharge_med_id').val(sId);
+ $('#discharge_med_name').val(sName);
+ $('#discharge_med_salt').val(sSalt);
+ if (sType) {
+ setDischargeMedType(sType);
+ }
+ $('#discharge_substitute_box').hide();
+ $('#discharge_medicine_tbody tr').removeClass('table-info');
+ setMedicineStatus('Substitute selected. Review and click "Update Medicine" to save.', 'info');
+ $('#btn_discharge_med_add').focus();
+ } else {
+ $('#discharge_med_id').val(sId);
+ $('#discharge_med_name').val(sName);
+ $('#discharge_med_salt').val(sSalt);
+ if (sType) {
+ setDischargeMedType(sType);
+ }
+ $('#discharge_substitute_box').hide();
+ $('#discharge_med_name').focus();
+ }
+ });
+
+ // Handle substitute "+ Add to Form" button
+ $(document).on('click', '.btn-discharge-substitute-use-form', function() {
+ var sName = String($(this).data('name') || '').trim();
+ var sType = String($(this).data('type') || '').trim();
+ var sSalt = String($(this).data('salt') || '').trim();
+ var sId = parseInt($(this).data('id') || '0', 10);
+
+ resetMedicineFormState();
+ $('#discharge_med_id').val(sId);
+ $('#discharge_med_name').val(sName);
+ $('#discharge_med_salt').val(sSalt);
+ if (sType) {
+ setDischargeMedType(sType);
+ }
+ $('#discharge_substitute_box').hide();
+ $('#discharge_medicine_tbody tr').removeClass('table-info');
+ setMedicineStatus('Substitute loaded as new medicine. Fill timing/duration and click +ADD.', 'info');
+ $('#discharge_dosage').focus();
});
// ─── Rx-Group Functionality ──────────────────────────────────────
@@ -6788,7 +6878,7 @@ $historyFields = [
var id = parseInt(rowId || 0, 10);
var source = String(rowSource || 'legacy').trim() || 'legacy';
data = data || {};
- return '
'
+ return ' | '
+ '').text(source).html() + '" '
@@ -6806,6 +6896,13 @@ $historyFields = [
+ 'data-remark="' + $('').text(data.remark || '').html() + '"'
+ '>Edit'
+ ' Remove'
+ + ' ').text(source).html() + '" '
+ + 'data-med-name="' + $('').text(data.med_name || '').html() + '" '
+ + 'data-med-salt="' + $(' ').text(data.med_salt || '').html() + '" '
+ + 'data-med-type="' + $(' ').text(data.med_type || '').html() + '" '
+ + 'title="View Substitutes"> Sub'
+ ' | ';
}