Remove duplicate old medicine form code causing null reference error

- Removed old code referencing non-existent field IDs (#new_drug_name, etc.)
- Fixed 'medInput is null' JavaScript error
- Kept only new implementation with correct IDs (#discharge_med_name, etc.)
- Cleaned up normalizeRxShortCode and unused event listeners
- Fix console error: Uncaught TypeError: can't access property addEventListener
This commit is contained in:
DevSoftTech Server 2026-06-06 20:22:36 +05:30
parent 66b5e1b6a5
commit fdc6ae352b

View File

@ -3852,59 +3852,13 @@ $allergyStatusNoKnown = in_array($allergyStatusNormalized, ['no known drug aller
return;
}
var suggestRows = [];
var rxGroupCache = [];
var medInput = section.querySelector('#new_drug_name');
var medSuggest = section.querySelector('#discharge_med_suggest');
var medType = section.querySelector('#new_drug_type');
var medWhen = section.querySelector('#new_drug_when');
var medFreq = section.querySelector('#new_drug_freq');
var rxGroupInput = section.querySelector('#selected_rx_group_id');
var rxGroupName = section.querySelector('#rx_group_selected_name');
var rxGroupList = document.getElementById('discharge_rx_group_list');
var rxGroupSearch = document.getElementById('discharge_rx_group_search');
var applyBtn = section.querySelector('#btn_apply_rx_group');
function normalizeRxShortCode(raw, kind) {
var v = String(raw || '').trim();
if (v === '') {
return '';
}
var key = v.replace(/\./g, '').replace(/\s+/g, '').toUpperCase();
if (kind === 'when') {
var whenMap = {
'BEFOREFOOD': 'BF',
'BFOOD': 'BF',
'BF': 'BF',
'AF': 'AF',
'AFOOD': 'AF',
'AFTERFOOD': 'AF',
'WF': 'WF',
'WFOOD': 'WF',
'WITHFOOD': 'WF'
};
return whenMap[key] || key;
}
var freqMap = {
'OD': 'OD',
'QD': 'OD',
'ONCEDAILY': 'OD',
'BD': 'BD',
'BID': 'BD',
'TWICEDAILY': 'BD',
'TDS': 'TDS',
'TID': 'TDS',
'THRICEDAILY': 'TDS',
'HS': 'HS',
'QHS': 'HS',
'QID': 'QID',
'SOS': 'SOS'
};
return freqMap[key] || key;
}
function setMedicineStatus(text, level) {
setSectionStatus('discharge_medicine_status', text, level || 'muted');
}
@ -3943,83 +3897,6 @@ $allergyStatusNoKnown = in_array($allergyStatusNormalized, ['no known drug aller
});
}
medInput.addEventListener('input', function() {
var q = String(medInput.value || '').trim();
if (q.length < 2) {
return;
}
$.get('<?= base_url('Opd_prescription/medicine_search') ?>?q=' + encodeURIComponent(q) + '&scope=active', function(data) {
suggestRows = (data && data.rows) ? data.rows : [];
var html = '';
suggestRows.forEach(function(row) {
var name = String(row.med_name || '').trim();
if (name === '') {
return;
}
html += '<option value="' + $('<div>').text(name).html() + '"></option>';
});
if (medSuggest) {
medSuggest.innerHTML = html;
}
}, 'json');
});
medInput.addEventListener('change', function() {
var value = String(medInput.value || '').trim().toUpperCase();
if (value === '') {
return;
}
var matched = null;
suggestRows.forEach(function(row) {
if (String(row.med_name || '').trim().toUpperCase() === value) {
matched = row;
}
});
if (matched && medType && String(medType.value || '').trim() === '') {
medType.value = String(matched.med_type || '').trim();
}
});
section.querySelectorAll('.rx-quick-btn').forEach(function(btn) {
btn.addEventListener('click', function() {
var targetId = String(btn.getAttribute('data-fill-target') || '').trim();
var value = String(btn.getAttribute('data-fill-value') || '').trim();
var target = targetId ? section.querySelector('#' + targetId) : null;
if (target) {
if (targetId === 'new_drug_when') {
target.value = normalizeRxShortCode(value, 'when');
} else if (targetId === 'new_drug_freq') {
target.value = normalizeRxShortCode(value, 'freq');
} else {
target.value = value;
}
}
});
});
if (medWhen && medWhen.dataset.shortBound !== '1') {
medWhen.dataset.shortBound = '1';
medWhen.addEventListener('blur', function() {
medWhen.value = normalizeRxShortCode(medWhen.value, 'when');
});
medWhen.addEventListener('change', function() {
medWhen.value = normalizeRxShortCode(medWhen.value, 'when');
});
}
if (medFreq && medFreq.dataset.shortBound !== '1') {
medFreq.dataset.shortBound = '1';
medFreq.addEventListener('blur', function() {
medFreq.value = normalizeRxShortCode(medFreq.value, 'freq');
});
medFreq.addEventListener('change', function() {
medFreq.value = normalizeRxShortCode(medFreq.value, 'freq');
});
}
var openRxBtn = section.querySelector('#btn_open_rx_group_modal');
if (openRxBtn) {
openRxBtn.addEventListener('click', function() {