diff --git a/public/index.html b/public/index.html
index f523b08..e8afd06 100644
--- a/public/index.html
+++ b/public/index.html
@@ -490,7 +490,7 @@
-
+
diff --git a/public/js/chartReview.js b/public/js/chartReview.js
index 5a18ee0..9dae56d 100644
--- a/public/js/chartReview.js
+++ b/public/js/chartReview.js
@@ -80,7 +80,8 @@
var entry = document.createElement('div');
entry.className = 'lab-entry';
entry.innerHTML = '' +
- '';
+ '';
+ entry.querySelector('.remove-lab-btn').addEventListener('click', function() { entry.remove(); });
labsContainer.appendChild(entry);
});
diff --git a/public/js/ed-encounters.js b/public/js/ed-encounters.js
index 147e9b7..7dd1a62 100644
--- a/public/js/ed-encounters.js
+++ b/public/js/ed-encounters.js
@@ -275,7 +275,7 @@
if (e.results[i].isFinal) _liveTranscript += e.results[i][0].transcript + ' ';
else interim = e.results[i][0].transcript;
}
- if (transcriptEl) transcriptEl.innerHTML = _liveTranscript + (interim ? '' + interim + '' : '');
+ if (transcriptEl) transcriptEl.innerHTML = escHtml(_liveTranscript) + (interim ? '' + escHtml(interim) + '' : '');
};
_recognition.onend = function() { if (_recording && !_paused) try { _recognition.start(); } catch(e) {} };
}
diff --git a/public/js/hospitalCourse.js b/public/js/hospitalCourse.js
index a6ae360..4281568 100644
--- a/public/js/hospitalCourse.js
+++ b/public/js/hospitalCourse.js
@@ -44,7 +44,8 @@
var entry = document.createElement('div');
entry.className = 'lab-entry';
entry.innerHTML = '' +
- '';
+ '';
+ entry.querySelector('.remove-lab-btn').addEventListener('click', function() { entry.remove(); });
labsContainer.appendChild(entry);
});
diff --git a/public/js/milestones.js b/public/js/milestones.js
index 341a993..fd63bb0 100644
--- a/public/js/milestones.js
+++ b/public/js/milestones.js
@@ -1,4 +1,3 @@
-(function() {
var _inited = false;
var MILESTONES_DATA = {}; // Will be loaded from API
@@ -237,4 +236,3 @@
console.log('✅ Milestones module loaded');
} // end initMilestones
-})();
diff --git a/public/js/sickVisit.js b/public/js/sickVisit.js
index f5dbe64..9b96e7c 100644
--- a/public/js/sickVisit.js
+++ b/public/js/sickVisit.js
@@ -147,7 +147,7 @@
if (e.results[i].isFinal) _sickTranscript += e.results[i][0].transcript + ' ';
else interim = e.results[i][0].transcript;
}
- if (transcriptEl) transcriptEl.innerHTML = _sickTranscript + (interim ? '' + interim + '' : '');
+ if (transcriptEl) transcriptEl.innerHTML = esc(_sickTranscript) + (interim ? '' + esc(interim) + '' : '');
};
_sickRecognition.onend = function() { if (_sickRecording && !_sickPaused) try { _sickRecognition.start(); } catch(e) {} };
}
diff --git a/test/clinical-notes-entrypoints.test.js b/test/clinical-notes-entrypoints.test.js
new file mode 100644
index 0000000..1869a61
--- /dev/null
+++ b/test/clinical-notes-entrypoints.test.js
@@ -0,0 +1,123 @@
+const { test } = require('node:test');
+const assert = require('node:assert/strict');
+const fs = require('node:fs');
+const path = require('node:path');
+
+const root = path.join(__dirname, '..');
+
+function read(relativePath) {
+ return fs.readFileSync(path.join(root, relativePath), 'utf8');
+}
+
+function scriptTagSource(indexHtml, src) {
+ const escaped = src.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
+ const match = indexHtml.match(new RegExp('