Fix: save/load encounters — hidden popovers, label IDs, note IDs
- CSS: .enc-load-popover.hidden now overrides display:flex (specificity bug caused popovers to always be visible) - resumeEncounter: add domPfxMap to correctly resolve label element IDs (enc_type 'wellvisit' → 'wv-label', 'hospital' → 'hosp-label', etc.) - resumeEncounter: use noteIdMap to find the right output element per tab - resumeEncounter: use enc.enc_type (not tabName) as _savedEncId_ key for consistency with saveFromTab
This commit is contained in:
parent
9544d43b16
commit
3449b0efca
2 changed files with 18 additions and 6 deletions
|
|
@ -418,6 +418,7 @@ body{font-family:'Inter',system-ui,sans-serif;background:var(--g50);color:var(--
|
||||||
|
|
||||||
/* Inline load popover — compact dropdown, right-aligned under Load button */
|
/* Inline load popover — compact dropdown, right-aligned under Load button */
|
||||||
.enc-load-popover{position:absolute;right:0;top:calc(100% + 4px);width:360px;max-width:calc(100vw - 24px);background:white;border:1px solid var(--g300);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,0.15);z-index:600;display:flex;flex-direction:column;}
|
.enc-load-popover{position:absolute;right:0;top:calc(100% + 4px);width:360px;max-width:calc(100vw - 24px);background:white;border:1px solid var(--g300);border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,0.15);z-index:600;display:flex;flex-direction:column;}
|
||||||
|
.enc-load-popover.hidden{display:none;}
|
||||||
.enc-load-popover-inner{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--g200);}
|
.enc-load-popover-inner{display:flex;align-items:center;gap:6px;padding:8px 10px;border-bottom:1px solid var(--g200);}
|
||||||
.enc-load-search{flex:1;padding:6px 10px;border:1px solid var(--g300);border-radius:6px;font-size:13px;font-family:inherit;}
|
.enc-load-search{flex:1;padding:6px 10px;border:1px solid var(--g300);border-radius:6px;font-size:13px;font-family:inherit;}
|
||||||
.enc-load-search:focus{outline:none;border-color:var(--blue);}
|
.enc-load-search:focus{outline:none;border-color:var(--blue);}
|
||||||
|
|
|
||||||
|
|
@ -244,25 +244,36 @@
|
||||||
var tabBtn = document.querySelector('.tab-btn[data-tab="' + tabName + '"]');
|
var tabBtn = document.querySelector('.tab-btn[data-tab="' + tabName + '"]');
|
||||||
if (tabBtn) tabBtn.click();
|
if (tabBtn) tabBtn.click();
|
||||||
|
|
||||||
|
// Map enc_type → DOM element prefix
|
||||||
|
var domPfxMap = {
|
||||||
|
encounter: 'enc', dictation: 'dict', hospital: 'hosp', chart: 'chart',
|
||||||
|
wellvisit: 'wv', sickvisit: 'sick', soap: 'soap', milestones: 'ms'
|
||||||
|
};
|
||||||
|
var domPfx = domPfxMap[enc.enc_type] || enc.enc_type;
|
||||||
|
var noteIdMap = {
|
||||||
|
encounter: 'enc-hpi-text', dictation: 'dict-hpi-text',
|
||||||
|
hospital: 'hc-course-text', chart: 'cr-review-text',
|
||||||
|
wellvisit: 'wv-note-text', sickvisit: 'sick-note-text'
|
||||||
|
};
|
||||||
|
|
||||||
// Fill in data
|
// Fill in data
|
||||||
setTimeout(function() {
|
setTimeout(function() {
|
||||||
// Fill label
|
// Fill label
|
||||||
var labelEl = document.getElementById(tabName + '-label') || document.getElementById(enc.enc_type + '-label');
|
var labelEl = document.getElementById(domPfx + '-label');
|
||||||
if (labelEl) labelEl.value = enc.label;
|
if (labelEl) labelEl.value = enc.label;
|
||||||
|
|
||||||
// Set saved ID so next save updates same record
|
// Set saved ID so next save updates same record
|
||||||
window['_savedEncId_' + tabName] = enc.id;
|
window['_savedEncId_' + enc.enc_type] = enc.id;
|
||||||
|
|
||||||
// Call tab-specific handler
|
// Call tab-specific handler
|
||||||
if (window._encLoadHandlers && window._encLoadHandlers[enc.enc_type]) {
|
if (window._encLoadHandlers && window._encLoadHandlers[enc.enc_type]) {
|
||||||
window._encLoadHandlers[enc.enc_type](enc);
|
window._encLoadHandlers[enc.enc_type](enc);
|
||||||
} else {
|
} else {
|
||||||
// Default: fill transcript field if it exists
|
// Default: fill transcript and generated note
|
||||||
var transcriptEl = document.getElementById(tabName + '-transcript') || document.getElementById(enc.enc_type + '-transcript');
|
var transcriptEl = document.getElementById(domPfx + '-transcript');
|
||||||
if (transcriptEl && enc.transcript) transcriptEl.textContent = enc.transcript;
|
if (transcriptEl && enc.transcript) transcriptEl.textContent = enc.transcript;
|
||||||
// Fill generated note
|
|
||||||
if (enc.generated_note) {
|
if (enc.generated_note) {
|
||||||
var noteEl = document.getElementById(enc.enc_type + '-hpi-text') || document.getElementById(tabName + '-hpi-text');
|
var noteEl = document.getElementById(noteIdMap[enc.enc_type] || (domPfx + '-hpi-text'));
|
||||||
if (noteEl) {
|
if (noteEl) {
|
||||||
noteEl.textContent = enc.generated_note;
|
noteEl.textContent = enc.generated_note;
|
||||||
var outputCard = noteEl.closest('.output-card');
|
var outputCard = noteEl.closest('.output-card');
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue