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
+106
@@ -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>
|
||||
Reference in new issue
Block a user