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
a01f6502e5
commit
f5cbdc4104
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 */
|
||||
.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);}
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
|
|
|
|||
Loading…
Reference in a new issue