Adds a full "Deltains Claim" button next to Delta MA Claim, mirroring the DDMA claim flow across frontend, backend queue/routes, and a new Selenium worker. Reuses the existing Deltains eligibility login/OTP code and was iteratively wired against the live portal (patient roster search, per-service-line fields, tooth number/surface selects, review and submit). Also fixes chatbot/insurance-alias carrier recognition so "deltains" resolves correctly instead of falling back to MassHealth.
67 lines
1.9 KiB
TypeScript
67 lines
1.9 KiB
TypeScript
import { Queue } from "bullmq";
|
|
import { redisConnection } from "./connection";
|
|
|
|
/** Job types dispatched to the selenium Python worker. */
|
|
export type SeleniumJobType =
|
|
| "eligibility-check"
|
|
| "claim-status-check"
|
|
| "claim-submit"
|
|
| "claim-pre-auth"
|
|
| "ddma-eligibility-check"
|
|
| "deltains-eligibility-check"
|
|
| "unitedsco-eligibility-check"
|
|
| "uniteducard-eligibility-check"
|
|
| "cca-eligibility-check"
|
|
| "cca-claim-submit"
|
|
| "cca-preauth-submit"
|
|
| "ddma-claim-submit"
|
|
| "deltains-claim-submit"
|
|
| "tuftssco-claim-submit"
|
|
| "uniteducard-claim-submit"
|
|
| "uniteddh-claim-submit"
|
|
| "uniteddh-preauth-submit"
|
|
| "tuftssco-preauth-submit"
|
|
| "tuftssco-eligibility-check"
|
|
| "mh-eligibility-history-check"
|
|
| "cmsp-eligibility-history-remaining-check"
|
|
| "bcbs-ma-eligibility-check";
|
|
|
|
export interface SeleniumJobData {
|
|
jobType: SeleniumJobType;
|
|
userId: number;
|
|
socketId?: string;
|
|
/** Fully-enriched payload sent to the Python service. */
|
|
enrichedPayload: any;
|
|
/** Extra fields used for DB post-processing */
|
|
insuranceId?: string;
|
|
formFirstName?: string;
|
|
formLastName?: string;
|
|
formDob?: string;
|
|
claimId?: number;
|
|
/** Base64-encoded files for claim submit */
|
|
files?: { originalname: string; bufferBase64: string; mimetype: string }[];
|
|
}
|
|
|
|
export interface OcrJobData {
|
|
userId: number;
|
|
socketId?: string;
|
|
files: { originalname: string; bufferBase64: string; mimetype: string }[];
|
|
}
|
|
|
|
const defaultOpts = {
|
|
removeOnComplete: { count: 100 },
|
|
removeOnFail: { count: 50 },
|
|
attempts: 1,
|
|
backoff: { type: "exponential" as const, delay: 5000 },
|
|
};
|
|
|
|
export const seleniumQueue = new Queue<SeleniumJobData>("selenium-jobs", {
|
|
connection: redisConnection,
|
|
defaultJobOptions: defaultOpts,
|
|
});
|
|
|
|
export const ocrQueue = new Queue<OcrJobData>("ocr-jobs", {
|
|
connection: redisConnection,
|
|
defaultJobOptions: { ...defaultOpts, attempts: 2 },
|
|
});
|