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:
ManikandanandClaude Opus 5.5 committed 2026-10-23 18:38:17 +05:30
commit ba15a574ab
205 files changed
+56772

No files matched your search

+106
View File
@@ -0,0 +1,106 @@
<!doctype html>
<!-- A claim form's side menu + eCW's Account Inquiry ("Patient Inquiry
Detail") modal, after the bindings in Dom.txt (2026-10-20). Made-up
claims only. A test sets window.HISTORY_PAGES (one array of claims per
page: {id, date, codes}) before clicking the launcher. The CPT rows are
loaded only once "Show CPT Payments" is ticked, as eCW reloads them. -->
<html><head><meta charset="utf-8"><title>Account Inquiry fixture</title>
<style>.ng-hide{display:none}.modal{display:none}.modal.in{display:block}</style>
</head><body>
<div class="claim-form" id="claimFormFixture">
<ul class="side-menu">
<li><a>UB Claim</a></li>
<li><a>Documents</a></li>
<li><a class="cursor" title="Account Inquiry" ng-click="vm.loadSmartPanel(item);" style="display:none"><label class="ft-label">Account Inquiry</label></a></li>
<li><a class="cursor" title="Documents" ng-click="vm.loadSmartPanel(item);"><label class="ft-label">Documents</label></a></li>
<li><a id="acctInq" class="cursor" title="Account Inquiry" ng-click="vm.loadSmartPanel(item);"><label class="ft-label">Account Inquiry</label></a></li>
<li><a>Actions</a></li>
</ul>
<button id="formCancel">Cancel</button>
</div>
<div class="modal" id="piModal">
<div class="modal-header">
<button type="button" class="close"
ng-click="validateandclosePatientInquiryDetailModal(false)">×</button>
<h4 class="modal-title">Patient Inquiry Detail</h4>
</div>
<div id="accountsLoadingImg" style="display:none">Loading…</div>
<div class="pull-left doc-att mt5">
<label class="checkbox-inline" ng-repeat="filter in collClaimFiltersFieldNames track by $index"><input type="checkbox" ng-model="filter.mod" ng-click="reloadClaimData($index,$event)" data-f="cpt"> Show CPT Payments</label>
<label class="checkbox-inline" ng-repeat="filter in collClaimFiltersFieldNames track by $index"><input type="checkbox" ng-model="filter.mod" ng-click="reloadClaimData($index,$event)"> Show CPT Payment Totals</label>
<label class="checkbox-inline" ng-repeat="filter in collClaimFiltersFieldNames track by $index"><input type="checkbox" ng-model="filter.mod" ng-click="reloadClaimData($index,$event)"> Show Voided Claims</label>
</div>
<div>
<button class="btn" ng-click="pibuttonprev()">PREV</button>
<input type="text" ng-model="curpage" id="pigoToPageNo" value="1">
of <span ng-bind="totalPage">1</span>
<button class="btn" ng-click="pibuttonnext()">NEXT</button>
</div>
<table class="table claimsDtlMainTbl"><tbody id="claims"></tbody></table>
<button class="btn" ng-click="validateandclosePatientInquiryDetailModal(true)">OK</button>
</div>
<script>
window.HISTORY_PAGES = window.HISTORY_PAGES || [[]];
let page = 0, showCpt = false;
const modal = document.getElementById('piModal');
const loader = document.getElementById('accountsLoadingImg');
const cptBox = document.querySelector('input[data-f="cpt"]');
function render() {
const pages = window.HISTORY_PAGES;
document.getElementById('pigoToPageNo').value = String(page + 1);
document.querySelector('[ng-bind="totalPage"]').textContent =
String(pages.length);
const body = document.getElementById('claims');
body.innerHTML = '';
for (const c of pages[page] || []) {
const cpt = showCpt ? c.codes.map(code =>
`<tr class="cptPaymentRow ng-scope" ng-repeat="charge in payment.Charges track by $index">` +
`<td></td><td ng-bind="getCPTPaymentDescription(charge,true)">${code}:SOME SERVICE…</td>` +
`<td ng-bind="charge.BilledFee">10.00</td></tr>`).join('') : '';
const tr = document.createElement('tr');
tr.setAttribute('ng-repeat', 'claim in claims track by $index');
tr.innerHTML =
`<td><table><tbody>` +
`<tr class="claimMainRow"><td ng-bind="claim.ClaimId">${c.id}</td>` +
`<td ng-bind="claim.ServiceDate | date:'MM/dd/yyyy'">${c.date}</td>` +
`<td ng-bind="getClaimDescription(claim,true)">Charges (Pr:XX Fac: YY)</td></tr>` +
`<tr class="claimChildRow0" ng-repeat="payment in claim.Payments track by $index">` +
`<td><table><tbody><tr><td>Medicare</td></tr>${cpt}</tbody></table></td></tr>` +
`</tbody></table></td>`;
body.append(tr);
}
}
function loading(then) {
loader.style.display = 'block';
setTimeout(() => { then(); loader.style.display = 'none'; }, 300);
}
document.getElementById('acctInq').addEventListener('click', () => {
if (window.NO_INQUIRY) return;
page = 0;
setTimeout(() => { modal.classList.add('in'); loading(render); }, 200);
});
cptBox.addEventListener('click', () => {
showCpt = cptBox.checked;
loading(render);
});
document.querySelector('[ng-click="pibuttonnext()"]').addEventListener(
'click', () => {
if (page < window.HISTORY_PAGES.length - 1) { page++; loading(render); }
});
document.querySelector(
'button.close[ng-click="validateandclosePatientInquiryDetailModal(false)"]')
.addEventListener('click', () => {
if (window.STUCK_OPEN) return;
window.CLOSED_WITH = 'X';
modal.classList.remove('in');
});
document.querySelector(
'[ng-click="validateandclosePatientInquiryDetailModal(true)"]')
.addEventListener('click', () => { window.CLOSED_WITH = 'OK'; });
</script>
</body></html>