@mindbill/react 0.17.0 → 0.20.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +52 -27
- package/dist/index.d.ts +174 -22
- package/dist/index.js +1076 -640
- package/dist/index.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -8,18 +8,15 @@ npm install @mindbill/react @mindbill/node
|
|
|
8
8
|
|
|
9
9
|
## Connected lifecycle
|
|
10
10
|
|
|
11
|
-
`ConnectedBillLifecycle`
|
|
12
|
-
|
|
13
|
-
Procedure entry is keyboard-first: the form always keeps one empty row after the entered lines, grows as soon as that row is partially filled, and omits the empty row from save and submit payloads.
|
|
11
|
+
`ConnectedBillLifecycle` starts after your server atomically creates and submits an immutable bill. It owns the submitted-to-closed progress rail, a read-only rendering of the exact submitted snapshot, server-owned human-readable history, packet download, EORs, payment posting, Second Bill Review, close, and reopen. The only persistent header action is **Download packet**; status-dependent actions appear in the details view when MindBill makes them available.
|
|
14
12
|
|
|
15
13
|
```tsx
|
|
16
14
|
import { ConnectedBillLifecycle } from "@mindbill/react";
|
|
17
15
|
|
|
18
16
|
<ConnectedBillLifecycle
|
|
19
|
-
|
|
17
|
+
billId={billId}
|
|
20
18
|
sessionEndpoint="/api/mindbill/session"
|
|
21
19
|
appearance={{ preset: "qme-companion" }}
|
|
22
|
-
onBillCreated={(billId) => navigate(`/bills/${billId}`)}
|
|
23
20
|
/>
|
|
24
21
|
```
|
|
25
22
|
|
|
@@ -64,8 +61,6 @@ export async function POST(request: Request) {
|
|
|
64
61
|
}
|
|
65
62
|
```
|
|
66
63
|
|
|
67
|
-
The component searches MindBill's claims-administrator directory with both payer text and the current claim number. It explains name and claim-pattern evidence, shows delivery availability, and only preselects a high-confidence exact name or alias match.
|
|
68
|
-
|
|
69
64
|
The API key binds every session to one organization. `subject` identifies the user and `permissions` express the role. MindBill enforces the organization boundary on every bill request. A permanent Partner API key must never enter frontend code.
|
|
70
65
|
|
|
71
66
|
## Compact status
|
|
@@ -84,6 +79,20 @@ import { ConnectedBillStatus } from "@mindbill/react";
|
|
|
84
79
|
|
|
85
80
|
Use `useBillStatus({ billId })` when you want to render custom status UI. It returns `data`, `error`, `isLoading`, `isRefreshing`, and `refresh`. Use `createBillStatusClient` outside React.
|
|
86
81
|
|
|
82
|
+
The public lifecycle is `Submitted → Accepted → Processed → Closed`. Rejections and denials remain detailed states inside the Processed stage so the progress rail stays stable while the action sheet explains what the user can do next. Partner APIs and components do not expose draft or queued states.
|
|
83
|
+
|
|
84
|
+
## Read-only bill details
|
|
85
|
+
|
|
86
|
+
Use `BillReadOnlyForm` when you already loaded `BillLifecycleData` and only need the immutable detail surface. It uses the same section order and responsive layout as `BillSubmissionForm`, but renders values, calculated fees, and attachments without form controls.
|
|
87
|
+
|
|
88
|
+
```tsx
|
|
89
|
+
import { BillReadOnlyForm } from "@mindbill/react";
|
|
90
|
+
|
|
91
|
+
<BillReadOnlyForm data={billLifecycleData} onOpenAttachment={openAttachment} />
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
`ConnectedBillLifecycle` composes this component with the Details / Bill history switch, so most partners should not assemble these pieces themselves.
|
|
95
|
+
|
|
87
96
|
## Lifecycle actions
|
|
88
97
|
|
|
89
98
|
MindBill returns the actions that are valid for the bill's current state. Render that server-authoritative list instead of duplicating rejection, EOR, denial, review, payment, and closure rules in your application.
|
|
@@ -98,8 +107,8 @@ import { BillLifecycleActions } from "@mindbill/react";
|
|
|
98
107
|
case "view_eor": return bill.openEor();
|
|
99
108
|
case "post_payment": return setPaymentOpen(true);
|
|
100
109
|
case "second_review": return setSecondReviewOpen(true);
|
|
101
|
-
case "correct_and_resubmit": return bill.startCorrection();
|
|
102
110
|
case "close": return bill.closeBill({ reason: "Resolved" });
|
|
111
|
+
case "reopen": return bill.reopenBill({ reason: "Follow-up is continuing" });
|
|
103
112
|
}
|
|
104
113
|
}}
|
|
105
114
|
/>
|
|
@@ -109,40 +118,56 @@ Disabled actions are hidden by default. Set `showUnavailable` to show them with
|
|
|
109
118
|
|
|
110
119
|
## Activity timeline
|
|
111
120
|
|
|
112
|
-
`BillActivityTimeline` renders ordered lifecycle events
|
|
121
|
+
`BillActivityTimeline` renders the ordered, human-readable lifecycle events returned by MindBill. Partners do not need to store or reconstruct bill history.
|
|
113
122
|
|
|
114
123
|
```tsx
|
|
115
124
|
import { BillActivityTimeline } from "@mindbill/react";
|
|
116
125
|
|
|
117
|
-
<BillActivityTimeline events={
|
|
126
|
+
<BillActivityTimeline events={bill.data.activity} />
|
|
118
127
|
```
|
|
119
128
|
|
|
120
|
-
Browser callbacks such as `
|
|
129
|
+
Browser callbacks such as `onChanged` are for immediate UI, navigation, optimistic state, and analytics. MindBill remains authoritative for durable history; signed webhooks are available when your backend also needs event-driven synchronization.
|
|
121
130
|
|
|
122
|
-
##
|
|
131
|
+
## Bill submission form
|
|
123
132
|
|
|
124
|
-
|
|
133
|
+
`BillSubmissionForm` owns the complete pre-submission experience: the bill field schema, required-field rules and red asterisks, validation, service-line editing, source-document selection, PDF uploads, and the single Submit action. Its `bill` value is structurally identical to the server SDK's `CreateBillRequest`.
|
|
125
134
|
|
|
126
|
-
|
|
127
|
-
import { BillReviewForm } from "@mindbill/react";
|
|
135
|
+
The partner application only loads initial values and sends the component's immutable snapshot to its authenticated server route. Uploaded files stay in the browser until the user submits.
|
|
128
136
|
|
|
129
|
-
|
|
130
|
-
|
|
137
|
+
```tsx
|
|
138
|
+
import { BillSubmissionForm } from "@mindbill/react";
|
|
139
|
+
|
|
140
|
+
<BillSubmissionForm
|
|
141
|
+
initialBill={bootstrap.bill}
|
|
142
|
+
attachments={bootstrap.attachments}
|
|
143
|
+
getSession={() => fetch("/api/mindbill/session", { method: "POST" }).then(r => r.json())}
|
|
144
|
+
diagnosisOptions={bootstrap.diagnoses}
|
|
145
|
+
procedureOptions={bootstrap.procedures}
|
|
146
|
+
onLookupPostalCode={lookupPostalCode}
|
|
131
147
|
appearance={{ preset: "qme-companion" }}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
onAddAttachment={(file, documentType, description) =>
|
|
135
|
-
api.upload("/billing/attachments", { file, documentType, description })
|
|
136
|
-
}
|
|
137
|
-
onRemoveAttachment={(attachmentId) =>
|
|
138
|
-
api.delete(`/billing/attachments/${attachmentId}`)
|
|
139
|
-
}
|
|
140
|
-
onSearchClaimsAdministrators={(query, claimNumber) =>
|
|
141
|
-
api.searchPayers({ query, claimNumber })
|
|
148
|
+
onSubmit={({ bill, sourceAttachmentIds, uploads }) =>
|
|
149
|
+
submitBill({ bill, sourceAttachmentIds, uploads })
|
|
142
150
|
}
|
|
143
151
|
/>
|
|
144
152
|
```
|
|
145
153
|
|
|
154
|
+
The component includes the interaction model, not just the markup:
|
|
155
|
+
|
|
156
|
+
- a responsive two-column review form (one column on narrow screens);
|
|
157
|
+
- paste-friendly `MM/DD/YYYY` date fields and required-field asterisks;
|
|
158
|
+
- ZIP-to-city/state completion through `onLookupPostalCode`;
|
|
159
|
+
- searchable ICD-10 multi-select with removable chips;
|
|
160
|
+
- canonical claims-administrator search through the authenticated MindBill payer directory;
|
|
161
|
+
- QME, AME, and Psych QME evaluation modes with medical-legal modifier defaults;
|
|
162
|
+
- searchable procedure/modifier controls, fee-schedule amounts, totals, and an automatically maintained empty line;
|
|
163
|
+
- auto-attached source documents, practice W-9 treatment, and click, panel-drop, or whole-page PDF upload.
|
|
164
|
+
|
|
165
|
+
Partners supply tenant-specific bootstrap data and server callbacks. Required fields, validation, payer selection, service-line behavior, attachments, and submission UX stay inside `@mindbill/react`, so every integration receives the same billing workflow.
|
|
166
|
+
|
|
167
|
+
`BILL_SUBMISSION_REQUIRED_FIELDS` and `validateBillSubmission` expose the same contract for tests and non-visual integrations. The component never creates a draft; its callback fires only when the user submits a locally valid snapshot.
|
|
168
|
+
|
|
169
|
+
`BillReviewForm` remains available for legacy integrations that already own a custom review model. New integrations should use `BillSubmissionForm`.
|
|
170
|
+
|
|
146
171
|
Use `BillStatusSummary` only when your application already owns status loading and wants a presentation-only component:
|
|
147
172
|
|
|
148
173
|
```tsx
|
package/dist/index.d.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { MindBillAppearance, MindBillEventDetail, MindBillErrorDetail } from '@mindbill/embed';
|
|
2
2
|
export { MindBillAppearance, MindBillErrorDetail, MindBillEventDetail } from '@mindbill/embed';
|
|
3
3
|
import { CSSProperties, ReactElement, ReactNode } from 'react';
|
|
4
|
-
import { BillLifecycleAction, BillLifecycleDelivery, BillPaymentRecord, BillRemittanceSummary, BillLifecycleData, BillLifecycleClientOptions,
|
|
5
|
-
export { BillActivityRecord, BillEorDocument, BillLifecycleAction, BillLifecycleActionId, BillLifecycleClient, BillLifecycleClientOptions, BillLifecycleData, BillLifecycleDelivery, BillLifecycleSession, BillLifecycleSessionProvider, BillLifecycleSessionRequest, BillPaymentRecord, BillRemittanceSummary,
|
|
4
|
+
import { BillReviewData as BillReviewData$1, BillReviewAttachment as BillReviewAttachment$1, BillLifecycleSessionProvider, BillReviewPayer as BillReviewPayer$1, BillLifecycleAction, BillLifecycleDelivery, BillPaymentRecord, BillRemittanceSummary, BillLifecycleData, BillLifecycleClientOptions, BillLifecycleClient, BillEorDocument } from '@mindbill/browser';
|
|
5
|
+
export { BillActivityRecord, BillEorDocument, BillLifecycleAction, BillLifecycleActionId, BillLifecycleClient, BillLifecycleClientOptions, BillLifecycleData, BillLifecycleDelivery, BillLifecycleSession, BillLifecycleSessionProvider, BillLifecycleSessionRequest, BillPaymentRecord, BillRemittanceSummary, CloseBillInput, PostBillPaymentInput, ReopenBillInput, SubmitSecondReviewInput, createBillLifecycleClient } from '@mindbill/browser';
|
|
6
6
|
|
|
7
7
|
type MindBillThemePreset = "mindbill" | "qme-companion" | "orange-bright" | "clinical-blue";
|
|
8
8
|
type MindBillReactAppearance = MindBillAppearance & {
|
|
@@ -273,7 +273,7 @@ type BillDeliveryOptions = {
|
|
|
273
273
|
mailingAddress?: string | null;
|
|
274
274
|
};
|
|
275
275
|
};
|
|
276
|
-
type BillSubmissionInput = {
|
|
276
|
+
type BillSubmissionInput$1 = {
|
|
277
277
|
route: BillSubmissionRoute;
|
|
278
278
|
destination?: {
|
|
279
279
|
faxNumber?: string;
|
|
@@ -286,9 +286,11 @@ type BillSubmissionInput = {
|
|
|
286
286
|
};
|
|
287
287
|
type BillReviewFormProps = {
|
|
288
288
|
data: BillReviewData;
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
289
|
+
mode?: "review" | "submission";
|
|
290
|
+
initialSubmission?: BillSubmissionInput$1;
|
|
291
|
+
onSave?: (input: BillReviewSaveInput) => Promise<BillReviewData | void>;
|
|
292
|
+
onSubmit: (input: BillReviewSaveInput, submission: BillSubmissionInput$1) => Promise<void>;
|
|
293
|
+
onGetDeliveryOptions?: () => Promise<BillDeliveryOptions>;
|
|
292
294
|
onAddAttachment: (file: File, documentType: BillReviewDocumentType, description?: string) => Promise<void>;
|
|
293
295
|
onRemoveAttachment: (attachmentId: string) => Promise<void>;
|
|
294
296
|
onOpenAttachment?: (attachment: BillReviewAttachment) => void;
|
|
@@ -321,7 +323,7 @@ type BillReviewDraft = {
|
|
|
321
323
|
lineItems: BillReviewLineItem[];
|
|
322
324
|
};
|
|
323
325
|
declare function buildBillReviewSaveInput(draft: BillReviewDraft): BillReviewSaveInput;
|
|
324
|
-
declare function BillReviewForm({ data, onSave, onSubmit, onGetDeliveryOptions, onAddAttachment, onRemoveAttachment, onOpenAttachment, onSearchClaimsAdministrators, className, style, appearance, features, disabled, }: BillReviewFormProps): ReactElement;
|
|
326
|
+
declare function BillReviewForm({ data, mode, initialSubmission, onSave, onSubmit, onGetDeliveryOptions, onAddAttachment, onRemoveAttachment, onOpenAttachment, onSearchClaimsAdministrators, className, style, appearance, features, disabled, }: BillReviewFormProps): ReactElement;
|
|
325
327
|
type BillStatusSummaryProps = {
|
|
326
328
|
status: string;
|
|
327
329
|
submittedAt?: string | null;
|
|
@@ -344,6 +346,164 @@ type BillStatusAction = {
|
|
|
344
346
|
};
|
|
345
347
|
declare function BillStatusSummary({ status, submittedAt, agingDays, updatedAt, totalCharge, totalPaid, balanceDue, actions, className, style, appearance }: BillStatusSummaryProps): ReactElement;
|
|
346
348
|
|
|
349
|
+
type BillReadOnlyFormProps = {
|
|
350
|
+
data: BillReviewData$1;
|
|
351
|
+
appearance?: MindBillReactAppearance;
|
|
352
|
+
className?: string;
|
|
353
|
+
style?: CSSProperties;
|
|
354
|
+
onOpenAttachment?: (attachment: BillReviewAttachment$1) => void | Promise<void>;
|
|
355
|
+
};
|
|
356
|
+
declare function BillReadOnlyForm({ data, appearance, className, style, onOpenAttachment }: BillReadOnlyFormProps): ReactElement;
|
|
357
|
+
|
|
358
|
+
declare const BILL_SUBMISSION_DOCUMENT_TYPES: readonly ["final_report", "proof_of_service", "letter_of_attestation", "form_122", "return_to_work_voucher", "w9", "medical_records", "appeal", "other"];
|
|
359
|
+
type BillSubmissionDocumentType = (typeof BILL_SUBMISSION_DOCUMENT_TYPES)[number];
|
|
360
|
+
type BillSubmissionEvaluationType = "qme" | "ame" | "psych_qme";
|
|
361
|
+
type BillSubmissionAddress = {
|
|
362
|
+
line1: string;
|
|
363
|
+
city: string;
|
|
364
|
+
state: string;
|
|
365
|
+
postalCode: string;
|
|
366
|
+
};
|
|
367
|
+
type BillSubmissionDiagnosisOption = {
|
|
368
|
+
code: string;
|
|
369
|
+
description: string;
|
|
370
|
+
};
|
|
371
|
+
type BillSubmissionProcedureOption = {
|
|
372
|
+
code: string;
|
|
373
|
+
description: string;
|
|
374
|
+
allowedAmount?: number;
|
|
375
|
+
};
|
|
376
|
+
type BillSubmissionModifierOption = {
|
|
377
|
+
code: string;
|
|
378
|
+
description: string;
|
|
379
|
+
};
|
|
380
|
+
type BillSubmissionPostalPlace = {
|
|
381
|
+
city: string;
|
|
382
|
+
state: string;
|
|
383
|
+
};
|
|
384
|
+
type BillSubmissionInput = {
|
|
385
|
+
externalId?: string;
|
|
386
|
+
billingMode?: "med_legal" | "professional";
|
|
387
|
+
patient: {
|
|
388
|
+
id?: string;
|
|
389
|
+
externalId?: string;
|
|
390
|
+
firstName: string;
|
|
391
|
+
middleName?: string;
|
|
392
|
+
lastName: string;
|
|
393
|
+
dateOfBirth: string;
|
|
394
|
+
ssn?: string;
|
|
395
|
+
gender?: "M" | "F" | "X";
|
|
396
|
+
phone?: string;
|
|
397
|
+
address: BillSubmissionAddress;
|
|
398
|
+
};
|
|
399
|
+
claim: {
|
|
400
|
+
id?: string;
|
|
401
|
+
externalId?: string;
|
|
402
|
+
claimNumber: string;
|
|
403
|
+
adjNumber?: string;
|
|
404
|
+
employer?: string;
|
|
405
|
+
dateOfInjury?: string;
|
|
406
|
+
injuryState?: string;
|
|
407
|
+
description?: string;
|
|
408
|
+
claimsAdministrator?: {
|
|
409
|
+
id?: string;
|
|
410
|
+
name: string;
|
|
411
|
+
};
|
|
412
|
+
};
|
|
413
|
+
service: {
|
|
414
|
+
date: string;
|
|
415
|
+
endDate?: string | null;
|
|
416
|
+
authorizationNumber?: string | null;
|
|
417
|
+
};
|
|
418
|
+
billingProvider?: {
|
|
419
|
+
name?: string;
|
|
420
|
+
taxId?: string;
|
|
421
|
+
npi?: string;
|
|
422
|
+
phone?: string;
|
|
423
|
+
address?: BillSubmissionAddress;
|
|
424
|
+
};
|
|
425
|
+
renderingProvider?: {
|
|
426
|
+
name?: string;
|
|
427
|
+
specialty?: string;
|
|
428
|
+
npi?: string;
|
|
429
|
+
taxonomy?: string;
|
|
430
|
+
licenseNumber?: string;
|
|
431
|
+
licenseState?: string;
|
|
432
|
+
isQme?: boolean;
|
|
433
|
+
isAme?: boolean;
|
|
434
|
+
};
|
|
435
|
+
serviceLocation?: {
|
|
436
|
+
name?: string;
|
|
437
|
+
address?: BillSubmissionAddress;
|
|
438
|
+
placeOfServiceCode?: string;
|
|
439
|
+
};
|
|
440
|
+
diagnoses?: string[];
|
|
441
|
+
serviceLines: Array<{
|
|
442
|
+
code: string;
|
|
443
|
+
modifiers?: string[];
|
|
444
|
+
units?: number;
|
|
445
|
+
serviceDate?: string;
|
|
446
|
+
serviceDateEnd?: string | null;
|
|
447
|
+
charge?: number;
|
|
448
|
+
diagnosisPointers?: number[];
|
|
449
|
+
}>;
|
|
450
|
+
};
|
|
451
|
+
type BillSubmissionSourceAttachment = {
|
|
452
|
+
id: string;
|
|
453
|
+
fileName: string;
|
|
454
|
+
documentType: BillSubmissionDocumentType;
|
|
455
|
+
description?: string;
|
|
456
|
+
selected?: boolean;
|
|
457
|
+
/** Auto-attached documents such as a practice W-9 cannot be deselected. */
|
|
458
|
+
autoAttached?: boolean;
|
|
459
|
+
removable?: boolean;
|
|
460
|
+
previewUrl?: string;
|
|
461
|
+
};
|
|
462
|
+
type BillSubmissionUpload = {
|
|
463
|
+
file: File;
|
|
464
|
+
documentType: BillSubmissionDocumentType;
|
|
465
|
+
description?: string;
|
|
466
|
+
};
|
|
467
|
+
type BillSubmissionFormValue = {
|
|
468
|
+
bill: BillSubmissionInput;
|
|
469
|
+
sourceAttachmentIds: string[];
|
|
470
|
+
uploads: BillSubmissionUpload[];
|
|
471
|
+
};
|
|
472
|
+
type BillSubmissionFormProps = {
|
|
473
|
+
initialBill: BillSubmissionInput;
|
|
474
|
+
attachments?: BillSubmissionSourceAttachment[];
|
|
475
|
+
onSubmit: (value: BillSubmissionFormValue) => void | Promise<void>;
|
|
476
|
+
/** Short-lived partner browser session. Enables the built-in canonical payer directory. */
|
|
477
|
+
getSession?: BillLifecycleSessionProvider;
|
|
478
|
+
sessionEndpoint?: string;
|
|
479
|
+
apiBaseUrl?: string;
|
|
480
|
+
fetch?: typeof globalThis.fetch;
|
|
481
|
+
onSearchClaimsAdministrators?: (query: string, claimNumber?: string) => Promise<BillReviewPayer$1[]>;
|
|
482
|
+
diagnosisOptions?: BillSubmissionDiagnosisOption[];
|
|
483
|
+
onSearchDiagnoses?: (query: string) => Promise<BillSubmissionDiagnosisOption[]>;
|
|
484
|
+
onLookupPostalCode?: (postalCode: string) => Promise<BillSubmissionPostalPlace | null>;
|
|
485
|
+
procedureOptions?: BillSubmissionProcedureOption[];
|
|
486
|
+
modifierOptions?: BillSubmissionModifierOption[];
|
|
487
|
+
appearance?: MindBillReactAppearance;
|
|
488
|
+
className?: string;
|
|
489
|
+
style?: CSSProperties;
|
|
490
|
+
disabled?: boolean;
|
|
491
|
+
submitLabel?: string;
|
|
492
|
+
heading?: ReactNode;
|
|
493
|
+
description?: ReactNode;
|
|
494
|
+
};
|
|
495
|
+
declare const BILL_SUBMISSION_REQUIRED_FIELDS: readonly ["patient.firstName", "patient.lastName", "patient.dateOfBirth", "patient.address.line1", "patient.address.city", "patient.address.state", "patient.address.postalCode", "claim.claimNumber", "claim.claimsAdministrator", "service.date", "serviceLines[].code", "serviceLines[].units"];
|
|
496
|
+
type BillSubmissionValidation = {
|
|
497
|
+
valid: boolean;
|
|
498
|
+
fieldErrors: Record<string, string>;
|
|
499
|
+
};
|
|
500
|
+
declare function ensureTrailingBillSubmissionLine(lines: BillSubmissionInput["serviceLines"]): BillSubmissionInput["serviceLines"];
|
|
501
|
+
declare function parseBillSubmissionDate(value: string): string | undefined;
|
|
502
|
+
declare function formatBillSubmissionDate(value: string | null | undefined): string;
|
|
503
|
+
declare function applyBillSubmissionEvaluationModifiers(lines: BillSubmissionInput["serviceLines"], type: BillSubmissionEvaluationType): BillSubmissionInput["serviceLines"];
|
|
504
|
+
declare function validateBillSubmission(bill: BillSubmissionInput): BillSubmissionValidation;
|
|
505
|
+
declare function BillSubmissionForm({ initialBill, attachments, onSubmit, getSession, sessionEndpoint, apiBaseUrl, fetch: fetchOverride, onSearchClaimsAdministrators, diagnosisOptions, onSearchDiagnoses, onLookupPostalCode, procedureOptions, modifierOptions, appearance, className, style, disabled, submitLabel, heading, description, }: BillSubmissionFormProps): ReactElement;
|
|
506
|
+
|
|
347
507
|
type BillStatusData = {
|
|
348
508
|
billId: string;
|
|
349
509
|
state: string;
|
|
@@ -437,7 +597,7 @@ type BillActivityTimelineProps = SurfaceProps & {
|
|
|
437
597
|
/** Human-readable fallback for a signed partner event type. */
|
|
438
598
|
declare function billActivityEventLabel(type: string): string;
|
|
439
599
|
declare function BillActivityTimeline({ events, emptyLabel, appearance, className, style, formatDate }: BillActivityTimelineProps): ReactElement;
|
|
440
|
-
type BillLifecycleStage = "
|
|
600
|
+
type BillLifecycleStage = "submitted" | "accepted" | "processed" | "closed";
|
|
441
601
|
/** Maps MindBill's detailed lifecycle state into a compact progress stage. */
|
|
442
602
|
declare function billLifecycleStage(state: string): BillLifecycleStage;
|
|
443
603
|
type BillLifecycleProgressProps = SurfaceProps & {
|
|
@@ -463,16 +623,12 @@ type BillPaymentLedgerProps = SurfaceProps & {
|
|
|
463
623
|
declare function BillPaymentLedger({ payments, appearance, className, style }: BillPaymentLedgerProps): ReactElement;
|
|
464
624
|
|
|
465
625
|
type UseBillLifecycleOptions = BillLifecycleClientOptions & {
|
|
466
|
-
/** Initial bill snapshot used when no existing `billId` is supplied. */
|
|
467
|
-
create?: BrowserBillCreateInput;
|
|
468
626
|
refreshInterval?: number;
|
|
469
627
|
enabled?: boolean;
|
|
470
628
|
initialData?: BillLifecycleData | null;
|
|
471
|
-
onBillCreated?: (billId: string, data: BillLifecycleData) => void | Promise<void>;
|
|
472
|
-
onBillIdChange?: (billId: string, previousBillId: string | null) => void | Promise<void>;
|
|
473
629
|
};
|
|
474
630
|
type UseBillLifecycleResult = {
|
|
475
|
-
billId: string
|
|
631
|
+
billId: string;
|
|
476
632
|
data: BillLifecycleData | null;
|
|
477
633
|
error: Error | null;
|
|
478
634
|
isLoading: boolean;
|
|
@@ -481,28 +637,24 @@ type UseBillLifecycleResult = {
|
|
|
481
637
|
refresh: () => Promise<void>;
|
|
482
638
|
searchClaimsAdministrators: BillLifecycleClient["searchClaimsAdministrators"];
|
|
483
639
|
getDeliveryOptions: BillLifecycleClient["getDeliveryOptions"];
|
|
484
|
-
saveReview: BillLifecycleClient["saveReview"];
|
|
485
|
-
submitBill: BillLifecycleClient["submitBill"];
|
|
486
|
-
addAttachment: BillLifecycleClient["addAttachment"];
|
|
487
|
-
removeAttachment: BillLifecycleClient["removeAttachment"];
|
|
488
640
|
openAttachment: (attachment: BillReviewAttachment) => Promise<void>;
|
|
489
641
|
openEor: (document: BillEorDocument) => Promise<void>;
|
|
642
|
+
downloadPacket: () => Promise<void>;
|
|
490
643
|
closeBill: BillLifecycleClient["closeBill"];
|
|
644
|
+
reopenBill: BillLifecycleClient["reopenBill"];
|
|
491
645
|
postPayment: BillLifecycleClient["postPayment"];
|
|
492
646
|
submitSecondReview: BillLifecycleClient["submitSecondReview"];
|
|
493
|
-
startCorrection: () => Promise<BillLifecycleData>;
|
|
494
647
|
};
|
|
495
|
-
declare function useBillLifecycle({ billId: providedBillId,
|
|
648
|
+
declare function useBillLifecycle({ billId: providedBillId, sessionEndpoint, getSession, apiBaseUrl, refreshInterval, enabled, initialData, fetch: fetchOverride, }: UseBillLifecycleOptions): UseBillLifecycleResult;
|
|
496
649
|
type ConnectedBillLifecycleProps = UseBillLifecycleOptions & {
|
|
497
650
|
appearance?: MindBillReactAppearance;
|
|
498
|
-
features?: BillReviewFeatures;
|
|
499
651
|
className?: string;
|
|
500
652
|
style?: CSSProperties;
|
|
501
653
|
loadingFallback?: ReactNode;
|
|
502
654
|
errorFallback?: (error: Error, retry: () => Promise<void>) => ReactNode;
|
|
503
655
|
onChanged?: (data: BillLifecycleData) => void;
|
|
504
656
|
};
|
|
505
|
-
declare function ConnectedBillLifecycle({ appearance,
|
|
657
|
+
declare function ConnectedBillLifecycle({ appearance, className, style, loadingFallback, errorFallback, onChanged, ...options }: ConnectedBillLifecycleProps): ReactElement;
|
|
506
658
|
|
|
507
659
|
type MindBillWidgetProps = {
|
|
508
660
|
sessionToken: string;
|
|
@@ -516,4 +668,4 @@ type MindBillWidgetProps = {
|
|
|
516
668
|
declare function MindBillBillTimeline(props: MindBillWidgetProps): ReactElement;
|
|
517
669
|
declare function MindBillBillReview(props: MindBillWidgetProps): ReactElement;
|
|
518
670
|
|
|
519
|
-
export { type BillActivityEvent, BillActivityTimeline, type BillActivityTimelineProps, BillLifecycleActions, type BillLifecycleActionsProps, BillLifecycleProgress, type BillLifecycleProgressProps, type BillLifecycleStage, BillPayerContactCard, type BillPayerContactCardProps, BillPaymentLedger, type BillPaymentLedgerProps, BillRemittanceCard, type BillRemittanceCardProps, type BillReviewAttachment, type BillReviewBillingProvider, type BillReviewClinician, type BillReviewData, type BillReviewDocumentType, type BillReviewDraft, type BillReviewFeatures, BillReviewForm, type BillReviewFormProps, type BillReviewLineItem, type BillReviewLocation, type BillReviewPayer, type BillReviewSaveInput, BillSnapshotSummary, type BillSnapshotSummaryProps, type BillStatusAction, type BillStatusClient, type BillStatusClientOptions, type BillStatusData, type BillStatusSession, type BillStatusSessionProvider, type BillStatusSessionRequest, BillStatusSummary, type BillStatusSummaryProps, type BillSubmissionRoute, ConnectedBillLifecycle, type ConnectedBillLifecycleProps, ConnectedBillStatus, type ConnectedBillStatusProps, MindBillBillReview, MindBillBillTimeline, type MindBillReactAppearance, type MindBillThemePreset, type MindBillWidgetProps, type UseBillLifecycleOptions, type UseBillLifecycleResult, type UseBillStatusOptions, type UseBillStatusResult, billActivityEventLabel, billLifecycleStage, buildBillReviewSaveInput, createBillStatusClient, ensureTrailingProcedureLine, mindBillAppearanceStyle, mindBillThemePresets, resolveMindBillAppearance, useBillLifecycle, useBillStatus, visibleBillLifecycleActions };
|
|
671
|
+
export { BILL_SUBMISSION_DOCUMENT_TYPES, BILL_SUBMISSION_REQUIRED_FIELDS, type BillActivityEvent, BillActivityTimeline, type BillActivityTimelineProps, BillLifecycleActions, type BillLifecycleActionsProps, BillLifecycleProgress, type BillLifecycleProgressProps, type BillLifecycleStage, BillPayerContactCard, type BillPayerContactCardProps, BillPaymentLedger, type BillPaymentLedgerProps, BillReadOnlyForm, type BillReadOnlyFormProps, BillRemittanceCard, type BillRemittanceCardProps, type BillReviewAttachment, type BillReviewBillingProvider, type BillReviewClinician, type BillReviewData, type BillReviewDocumentType, type BillReviewDraft, type BillReviewFeatures, BillReviewForm, type BillReviewFormProps, type BillReviewLineItem, type BillReviewLocation, type BillReviewPayer, type BillReviewSaveInput, BillSnapshotSummary, type BillSnapshotSummaryProps, type BillStatusAction, type BillStatusClient, type BillStatusClientOptions, type BillStatusData, type BillStatusSession, type BillStatusSessionProvider, type BillStatusSessionRequest, BillStatusSummary, type BillStatusSummaryProps, type BillSubmissionAddress, type BillSubmissionDiagnosisOption, type BillSubmissionDocumentType, type BillSubmissionEvaluationType, BillSubmissionForm, type BillSubmissionFormProps, type BillSubmissionFormValue, type BillSubmissionInput, type BillSubmissionModifierOption, type BillSubmissionPostalPlace, type BillSubmissionProcedureOption, type BillSubmissionRoute, type BillSubmissionSourceAttachment, type BillSubmissionUpload, type BillSubmissionValidation, ConnectedBillLifecycle, type ConnectedBillLifecycleProps, ConnectedBillStatus, type ConnectedBillStatusProps, MindBillBillReview, MindBillBillTimeline, type MindBillReactAppearance, type MindBillThemePreset, type MindBillWidgetProps, type UseBillLifecycleOptions, type UseBillLifecycleResult, type UseBillStatusOptions, type UseBillStatusResult, applyBillSubmissionEvaluationModifiers, billActivityEventLabel, billLifecycleStage, buildBillReviewSaveInput, createBillStatusClient, ensureTrailingBillSubmissionLine, ensureTrailingProcedureLine, formatBillSubmissionDate, mindBillAppearanceStyle, mindBillThemePresets, parseBillSubmissionDate, resolveMindBillAppearance, useBillLifecycle, useBillStatus, validateBillSubmission, visibleBillLifecycleActions };
|