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:
Daniel Onyejesi 2026-03-22 17:39:04 -04:00
parent 9544d43b16
commit 3449b0efca
2 changed files with 18 additions and 6 deletions

View file

@ -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 */
.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-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);}

View file

@ -244,25 +244,36 @@
var tabBtn = document.querySelector('.tab-btn[data-tab="' + tabName + '"]');
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
setTimeout(function() {
// 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;
// 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
if (window._encLoadHandlers && window._encLoadHandlers[enc.enc_type]) {
window._encLoadHandlers[enc.enc_type](enc);
} else {
// Default: fill transcript field if it exists
var transcriptEl = document.getElementById(tabName + '-transcript') || document.getElementById(enc.enc_type + '-transcript');
// Default: fill transcript and generated note
var transcriptEl = document.getElementById(domPfx + '-transcript');
if (transcriptEl && enc.transcript) transcriptEl.textContent = enc.transcript;
// Fill 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) {
noteEl.textContent = enc.generated_note;
var outputCard = noteEl.closest('.output-card');