Overview
Backend implementation overview for Bill-wise Critical Callout in crelio-app.
š¤ Sachin Sharmaš
Updated: Apr 29, 2026š·ļø featureš·ļø backendš·ļø operations
Bill-wise Critical Callout ā Backend
All server-side logic lives in crelio-app. The feature adds an order-level dimension to the existing report-level callout ā a new FK on CriticalCallout, a new enum value, a bulk orchestrator, and three API endpoints.
What this section covers
| Page | Covers |
|---|---|
| Data Model | Migration 0055, CriticalValuesEnum, CriticalCallout model and save_critical_callout factory |
| CriticalReport Proxy | CriticalReport proxy ā parameter evaluation, email, single-report notify, ES sync |
| Bulk Manager | BulkCriticalCalloutManager ā order-wise callout orchestration, draft/done state transitions, batch data fetch |
| API Reference | Three endpoints ā fetch by bill, fetch logs, post callout ā and the serializer |
| ES Sync & Activity Log | Elasticsearch sync strategy and activity log structure |
Architecture
Key files
| File | Role |
|---|---|
report/migrations/0055_criticalcallout_bill_and_more.py | Schema changes ā bill FK, nullable lab_report, new enum value |
report/models/lab_report_relation.py | CriticalValuesEnum, LabReportRelation.criticalValues field |
report/models/critical_callout.py | CriticalCallout model and save_critical_callout factory |
report/proxies/critical_reports.py | CriticalReport proxy ā parameter eval, email, notify, after_save |
operation/views/bulk_critical_callout_manager.py | BulkCriticalCalloutManager ā order-wise orchestration |
report/views/critical_callout.py | FetchCriticalRecordsByBillView, FetchCriticalNotificationLogsBulkView |
operation/views/critical_callout.py | CriticalCalloutView ā audit record fetch |
report/serializers/custom/lrr_custom_serializer.py | LabReportRelationAllTestSerializer |
finance/views/bill_split_manager.py | BillSplitManager.sync_lab_reports() ā ES sync |
templates/communication/critical_notification.jinja | Email template |