Initial import: eCW Charge Validation bot and results Portal
Snapshot of the working project as of 2026-10-23 (local 2d4d4fc), one commit with no earlier history: the tracked files were de-identified first (synthetic claim ids and patient data only; see Context.md section 7). Credentials, run logs, screenshots, claim reports and client workbooks are gitignored and not included. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
commit
ba15a574ab
205 files changed
+56772
No files matched your search
Vendored
+93
@@ -0,0 +1,93 @@
|
||||
<!doctype html>
|
||||
<html>
|
||||
<head><meta charset="utf-8"><title>sliding fee fixture</title>
|
||||
<style>.hide { display: none; }</style></head>
|
||||
<body>
|
||||
<!--
|
||||
Minimal copy of the eCW path, attribute-for-attribute where the bot
|
||||
matches on it (Dom.txt, UB claim 9124000): the claim header "Info"
|
||||
button, Patient Information (#ptInfo) with its Sliding Fee Schedule
|
||||
button and Save/Cancel, the unsaved-data prompt, and the Sliding Fee
|
||||
Schedule modal whose inputs Angular fills a moment after it shows.
|
||||
Fictional values only.
|
||||
|
||||
Knobs, set from the test before clicking:
|
||||
window.fixture.disabled Sliding Fee Schedule button disabled
|
||||
window.fixture.values what the modal fills in (null = stays blank)
|
||||
window.fixture.prompt Cancel raises the "unsaved data" prompt
|
||||
Evidence the test reads back:
|
||||
window.saved any Save was clicked (must stay false)
|
||||
-->
|
||||
<div id="UBClaimDiv">
|
||||
<button type="button" id="claimPatientInfo1790766147287"
|
||||
ng-click="loadPatientHubnInfo('Info');">Info</button>
|
||||
</div>
|
||||
|
||||
<div class="modal hide" id="ptInfo">
|
||||
<div class="modal-content" id="ptInfoModal">
|
||||
<button id="savePrompt-tplBtn1" type="button" class="close"
|
||||
ng-click="closeModalWindow()">x</button>
|
||||
<div id="savePrompt" class="hide">
|
||||
You have unsaved data. Click Save to retain your changes.
|
||||
<button id="savePrompt-tplBtn2" ng-click="saveData(1)">Save</button>
|
||||
<button id="savePrompt-tplBtn4" ng-click="saveData(2)">Don't Save</button>
|
||||
<button id="savePrompt-tplBtn3" ng-click="saveData(3)">Cancel</button>
|
||||
</div>
|
||||
<button id="btnSlidingFeeschedule" ng-disabled="slidingfeedisable"
|
||||
data-ng-click="slidingFeeScheduleClick();">Sliding Fee Schedule</button>
|
||||
<button id="patient-demographicsBtn56" type="button"
|
||||
ng-click="cmdOk_Click()">Save</button>
|
||||
<button id="patient-demographicsBtn57" type="button"
|
||||
ng-click="cancelbtn()">Cancel</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal hide" id="slidingfeescheduleDailog">
|
||||
<input id="slidingfeescheduleIpt34" data-ng-model="patientIncomeDetails.PovertyLevel">
|
||||
<input id="slidingfeescheduleIpt35" data-ng-model="status.name">
|
||||
<input id="slidingfeescheduleIpt37" data-ng-model="patientIncomeDetails.AssignedType">
|
||||
<input id="slidingfeescheduleIpt40" data-ng-model="patientIncomeDetails.AssignedDate">
|
||||
<input id="slidingfeescheduleIpt41" data-ng-model="patientIncomeDetails.ExpiryDate">
|
||||
<input id="slidingfeescheduleIpt42" data--ng-model="patientIncomeDetails.FeeSchedule">
|
||||
<button id="slidingfeescheduleBtn6" data-ng-click="assignSlidingFeeSchedule();">Assign</button>
|
||||
<button id="slidingfeescheduleBtn8" type="button"
|
||||
ng-click="closeSlidingFeeScheduleModal()">Close</button>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
window.fixture = {disabled: false, values: null, prompt: false};
|
||||
window.saved = false;
|
||||
const $ = s => document.querySelector(s);
|
||||
const show = (s, on) => $(s).classList.toggle('hide', !on);
|
||||
const FIELDS = {
|
||||
poverty_level: '#slidingfeescheduleIpt34', status: '#slidingfeescheduleIpt35',
|
||||
scale_type: '#slidingfeescheduleIpt37', from_date: '#slidingfeescheduleIpt40',
|
||||
to_date: '#slidingfeescheduleIpt41', fee_schedule: '#slidingfeescheduleIpt42',
|
||||
};
|
||||
|
||||
$('#claimPatientInfo1790766147287').onclick = () => {
|
||||
$('#btnSlidingFeeschedule').disabled = !!window.fixture.disabled;
|
||||
setTimeout(() => show('#ptInfo', true), 300);
|
||||
};
|
||||
$('#btnSlidingFeeschedule').onclick = () => {
|
||||
for (const s of Object.values(FIELDS)) $(s).value = '';
|
||||
show('#slidingfeescheduleDailog', true);
|
||||
const v = window.fixture.values;
|
||||
if (v) setTimeout(() => {
|
||||
for (const [k, s] of Object.entries(FIELDS)) $(s).value = v[k] || '';
|
||||
}, 700);
|
||||
};
|
||||
$('#slidingfeescheduleBtn8').onclick = () => show('#slidingfeescheduleDailog', false);
|
||||
$('#patient-demographicsBtn57').onclick = () => {
|
||||
if (window.fixture.prompt) show('#savePrompt', true);
|
||||
else show('#ptInfo', false);
|
||||
};
|
||||
$('#savePrompt-tplBtn4').onclick = () => {
|
||||
show('#savePrompt', false); show('#ptInfo', false);
|
||||
};
|
||||
for (const s of ['#savePrompt-tplBtn2', '#patient-demographicsBtn56',
|
||||
'#slidingfeescheduleBtn6'])
|
||||
$(s).onclick = () => { window.saved = true; };
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
Reference in new issue
Block a user