@openmrs/esm-billing-app 1.0.1-pre.14

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.
Files changed (167) hide show
  1. package/.editorconfig +12 -0
  2. package/.eslintignore +2 -0
  3. package/.eslintrc +57 -0
  4. package/.husky/pre-commit +7 -0
  5. package/.husky/pre-push +6 -0
  6. package/.prettierignore +14 -0
  7. package/.turbo.json +18 -0
  8. package/.yarn/plugins/@yarnpkg/plugin-outdated.cjs +35 -0
  9. package/LICENSE +401 -0
  10. package/README.md +7 -0
  11. package/__mocks__/bills.mock.ts +392 -0
  12. package/__mocks__/delivery-summary.mock.ts +87 -0
  13. package/__mocks__/encounter-observation.mock.ts +10649 -0
  14. package/__mocks__/encounter-observations.mock.ts +6187 -0
  15. package/__mocks__/hiv-summary.mock.ts +22 -0
  16. package/__mocks__/patient-summary.mock.ts +32 -0
  17. package/__mocks__/patient.mock.ts +59 -0
  18. package/__mocks__/program-summary.mock.ts +43 -0
  19. package/__mocks__/react-i18next.js +57 -0
  20. package/dist/294.js +2 -0
  21. package/dist/294.js.LICENSE.txt +9 -0
  22. package/dist/294.js.map +1 -0
  23. package/dist/319.js +1 -0
  24. package/dist/384.js +1 -0
  25. package/dist/384.js.map +1 -0
  26. package/dist/421.js +1 -0
  27. package/dist/421.js.map +1 -0
  28. package/dist/450.js +1 -0
  29. package/dist/450.js.map +1 -0
  30. package/dist/476.js +1 -0
  31. package/dist/476.js.map +1 -0
  32. package/dist/574.js +1 -0
  33. package/dist/757.js +1 -0
  34. package/dist/788.js +1 -0
  35. package/dist/800.js +2 -0
  36. package/dist/800.js.LICENSE.txt +3 -0
  37. package/dist/800.js.map +1 -0
  38. package/dist/807.js +1 -0
  39. package/dist/833.js +1 -0
  40. package/dist/935.js +2 -0
  41. package/dist/935.js.LICENSE.txt +19 -0
  42. package/dist/935.js.map +1 -0
  43. package/dist/96.js +2 -0
  44. package/dist/96.js.LICENSE.txt +47 -0
  45. package/dist/96.js.map +1 -0
  46. package/dist/main.js +2 -0
  47. package/dist/main.js.LICENSE.txt +47 -0
  48. package/dist/main.js.map +1 -0
  49. package/dist/openmrs-esm-billing-app.js +1 -0
  50. package/dist/openmrs-esm-billing-app.js.buildmanifest.json +462 -0
  51. package/dist/openmrs-esm-billing-app.js.map +1 -0
  52. package/dist/routes.json +1 -0
  53. package/e2e/README.md +115 -0
  54. package/e2e/core/global-setup.ts +32 -0
  55. package/e2e/core/index.ts +1 -0
  56. package/e2e/core/test.ts +20 -0
  57. package/e2e/fixtures/api.ts +26 -0
  58. package/e2e/fixtures/index.ts +1 -0
  59. package/e2e/pages/home-page.ts +9 -0
  60. package/e2e/pages/index.ts +1 -0
  61. package/e2e/specs/sample-test.spec.ts +11 -0
  62. package/e2e/support/github/Dockerfile +34 -0
  63. package/e2e/support/github/docker-compose.yml +24 -0
  64. package/e2e/support/github/run-e2e-docker-env.sh +49 -0
  65. package/example.env +6 -0
  66. package/i18next-parser.config.js +89 -0
  67. package/jest.config.js +34 -0
  68. package/package.json +123 -0
  69. package/playwright.config.ts +32 -0
  70. package/prettier.config.js +8 -0
  71. package/src/bill-history/bill-history.component.tsx +187 -0
  72. package/src/bill-history/bill-history.scss +151 -0
  73. package/src/bill-history/bill-history.test.tsx +122 -0
  74. package/src/billable-services/bill-waiver/bill-selection.component.tsx +72 -0
  75. package/src/billable-services/bill-waiver/bill-waiver-form.component.tsx +108 -0
  76. package/src/billable-services/bill-waiver/bill-waiver-form.scss +34 -0
  77. package/src/billable-services/bill-waiver/bill-waiver.component.tsx +32 -0
  78. package/src/billable-services/bill-waiver/bill-waiver.scss +10 -0
  79. package/src/billable-services/bill-waiver/patient-bills.component.tsx +135 -0
  80. package/src/billable-services/bill-waiver/utils.ts +41 -0
  81. package/src/billable-services/billable-service.resource.ts +71 -0
  82. package/src/billable-services/billable-services-home.component.tsx +51 -0
  83. package/src/billable-services/billable-services.component.tsx +255 -0
  84. package/src/billable-services/billable-services.scss +218 -0
  85. package/src/billable-services/billable-services.test.tsx +16 -0
  86. package/src/billable-services/create-edit/add-billable-service.component.tsx +322 -0
  87. package/src/billable-services/create-edit/add-billable-service.scss +131 -0
  88. package/src/billable-services/create-edit/add-billable-service.test.tsx +152 -0
  89. package/src/billable-services/dashboard/dashboard.component.tsx +15 -0
  90. package/src/billable-services/dashboard/dashboard.scss +27 -0
  91. package/src/billable-services/dashboard/dashboard.test.tsx +11 -0
  92. package/src/billable-services/dashboard/service-metrics.component.tsx +42 -0
  93. package/src/billable-services-admin-card-link.component.test.tsx +21 -0
  94. package/src/billable-services-admin-card-link.component.tsx +25 -0
  95. package/src/billing-dashboard/billing-dashboard.component.tsx +20 -0
  96. package/src/billing-dashboard/billing-dashboard.scss +27 -0
  97. package/src/billing-dashboard/billing-dashboard.test.tsx +13 -0
  98. package/src/billing-form/billing-checkin-form.component.tsx +131 -0
  99. package/src/billing-form/billing-checkin-form.scss +13 -0
  100. package/src/billing-form/billing-checkin-form.test.tsx +134 -0
  101. package/src/billing-form/billing-form.component.tsx +25 -0
  102. package/src/billing-form/billing-form.resource.ts +31 -0
  103. package/src/billing-form/billing-form.scss +5 -0
  104. package/src/billing-form/visit-attributes/visit-attributes-form.component.tsx +173 -0
  105. package/src/billing-form/visit-attributes/visit-attributes-form.scss +22 -0
  106. package/src/billing-header/billing-header.component.tsx +43 -0
  107. package/src/billing-header/billing-header.scss +83 -0
  108. package/src/billing-header/billing-illustration.component.tsx +30 -0
  109. package/src/billing.resource.ts +120 -0
  110. package/src/bills-table/bills-table.component.tsx +280 -0
  111. package/src/bills-table/bills-table.scss +181 -0
  112. package/src/bills-table/bills-table.test.tsx +154 -0
  113. package/src/config-schema.ts +3 -0
  114. package/src/dashboard.meta.ts +6 -0
  115. package/src/declarations.d.ts +4 -0
  116. package/src/helpers/functions.ts +63 -0
  117. package/src/helpers/index.ts +1 -0
  118. package/src/index.ts +56 -0
  119. package/src/invoice/invoice-table.component.tsx +185 -0
  120. package/src/invoice/invoice-table.scss +91 -0
  121. package/src/invoice/invoice.component.tsx +138 -0
  122. package/src/invoice/invoice.scss +93 -0
  123. package/src/invoice/invoice.test.tsx +242 -0
  124. package/src/invoice/payments/invoice-breakdown/invoice-breakdown.component.tsx +17 -0
  125. package/src/invoice/payments/invoice-breakdown/invoice-breakdown.scss +29 -0
  126. package/src/invoice/payments/payment-form/payment-form.component.tsx +105 -0
  127. package/src/invoice/payments/payment-form/payment-form.scss +54 -0
  128. package/src/invoice/payments/payment-history/payment-history.component.tsx +68 -0
  129. package/src/invoice/payments/payment.resource.ts +43 -0
  130. package/src/invoice/payments/payments.component.tsx +140 -0
  131. package/src/invoice/payments/payments.scss +46 -0
  132. package/src/invoice/payments/utils.ts +30 -0
  133. package/src/invoice/payments/visit-tags/visit-attribute.component.tsx +21 -0
  134. package/src/invoice/printable-invoice/print-receipt.component.tsx +28 -0
  135. package/src/invoice/printable-invoice/print-receipt.scss +14 -0
  136. package/src/invoice/printable-invoice/printable-footer.component.tsx +19 -0
  137. package/src/invoice/printable-invoice/printable-footer.scss +17 -0
  138. package/src/invoice/printable-invoice/printable-footer.test.tsx +30 -0
  139. package/src/invoice/printable-invoice/printable-invoice-header.component.tsx +63 -0
  140. package/src/invoice/printable-invoice/printable-invoice-header.scss +61 -0
  141. package/src/invoice/printable-invoice/printable-invoice-header.test.tsx +58 -0
  142. package/src/invoice/printable-invoice/printable-invoice.component.tsx +146 -0
  143. package/src/invoice/printable-invoice/printable-invoice.scss +50 -0
  144. package/src/left-panel-link.component.tsx +41 -0
  145. package/src/left-panel-link.test.tsx +38 -0
  146. package/src/metrics-cards/card.component.tsx +11 -0
  147. package/src/metrics-cards/card.scss +20 -0
  148. package/src/metrics-cards/metrics-cards.component.tsx +42 -0
  149. package/src/metrics-cards/metrics-cards.scss +12 -0
  150. package/src/metrics-cards/metrics-cards.test.tsx +41 -0
  151. package/src/metrics-cards/metrics.resource.ts +45 -0
  152. package/src/modal/require-payment-modal.component.tsx +81 -0
  153. package/src/modal/require-payment.scss +6 -0
  154. package/src/root.component.tsx +19 -0
  155. package/src/root.scss +30 -0
  156. package/src/routes.json +79 -0
  157. package/src/setup-tests.ts +13 -0
  158. package/src/types/index.ts +167 -0
  159. package/test-helpers.tsx +23 -0
  160. package/translations/am.json +107 -0
  161. package/translations/en.json +107 -0
  162. package/translations/es.json +107 -0
  163. package/translations/fr.json +107 -0
  164. package/translations/he.json +107 -0
  165. package/translations/km.json +107 -0
  166. package/tsconfig.json +16 -0
  167. package/webpack.config.js +1 -0
@@ -0,0 +1,81 @@
1
+ import React from 'react';
2
+ import { useTranslation } from 'react-i18next';
3
+ import {
4
+ Button,
5
+ InlineLoading,
6
+ ModalBody,
7
+ ModalFooter,
8
+ ModalHeader,
9
+ StructuredListBody,
10
+ StructuredListCell,
11
+ StructuredListHead,
12
+ StructuredListRow,
13
+ StructuredListWrapper,
14
+ } from '@carbon/react';
15
+ import { useBills } from '../billing.resource';
16
+ import { convertToCurrency } from '../helpers';
17
+ import styles from './require-payment.scss';
18
+
19
+ type RequirePaymentModalProps = {
20
+ closeModal: () => void;
21
+ patientUuid: string;
22
+ };
23
+
24
+ const RequirePaymentModal: React.FC<RequirePaymentModalProps> = ({ closeModal, patientUuid }) => {
25
+ const { t } = useTranslation();
26
+ const { bills, isLoading, error } = useBills(patientUuid);
27
+ const lineItems = bills.filter((bill) => bill.status !== 'PAID').flatMap((bill) => bill.lineItems);
28
+
29
+ return (
30
+ <div>
31
+ <ModalHeader closeModal={closeModal} title={t('patientBillingAlert', 'Patient Billing Alert')} />
32
+ <ModalBody>
33
+ <p className={styles.bodyShort02}>
34
+ {t(
35
+ 'billPaymentRequiredMessage',
36
+ 'The current patient has pending bill. Advice patient to settle bill before receiving services',
37
+ )}
38
+ </p>
39
+ {isLoading && (
40
+ <InlineLoading
41
+ status="active"
42
+ iconDescription="Loading"
43
+ description={t('inlineLoading', 'Loading bill items...')}
44
+ />
45
+ )}
46
+ <StructuredListWrapper isCondensed>
47
+ <StructuredListHead>
48
+ <StructuredListRow head>
49
+ <StructuredListCell head>{t('item', 'Item')}</StructuredListCell>
50
+ <StructuredListCell head>{t('quantity', 'Quantity')}</StructuredListCell>
51
+ <StructuredListCell head>{t('unitPrice', 'Unit price')}</StructuredListCell>
52
+ <StructuredListCell head>{t('total', 'Total')}</StructuredListCell>
53
+ </StructuredListRow>
54
+ </StructuredListHead>
55
+ <StructuredListBody>
56
+ {lineItems.map((lineItem) => {
57
+ return (
58
+ <StructuredListRow>
59
+ <StructuredListCell>{lineItem.billableService || lineItem.item}</StructuredListCell>
60
+ <StructuredListCell>{lineItem.quantity}</StructuredListCell>
61
+ <StructuredListCell>{convertToCurrency(lineItem.price)}</StructuredListCell>
62
+ <StructuredListCell>{convertToCurrency(lineItem.quantity * lineItem.price)}</StructuredListCell>
63
+ </StructuredListRow>
64
+ );
65
+ })}
66
+ </StructuredListBody>
67
+ </StructuredListWrapper>
68
+ </ModalBody>
69
+ <ModalFooter>
70
+ <Button kind="secondary" onClick={closeModal}>
71
+ {t('cancel', 'Cancel')}
72
+ </Button>
73
+ <Button kind="primary" onClick={closeModal}>
74
+ {t('ok', 'OK')}
75
+ </Button>
76
+ </ModalFooter>
77
+ </div>
78
+ );
79
+ };
80
+
81
+ export default RequirePaymentModal;
@@ -0,0 +1,6 @@
1
+ @use '@carbon/type';
2
+
3
+ .bodyShort02 {
4
+ margin-bottom: 0.5rem;
5
+ @include type.type-style('body-compact-02');
6
+ }
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import { BrowserRouter, Route, Routes } from 'react-router-dom';
3
+ import { BillingDashboard } from './billing-dashboard/billing-dashboard.component';
4
+ import Invoice from './invoice/invoice.component';
5
+
6
+ const RootComponent: React.FC = () => {
7
+ const baseName = window.getOpenmrsSpaBase() + 'home/billing';
8
+
9
+ return (
10
+ <BrowserRouter basename={baseName}>
11
+ <Routes>
12
+ <Route path="/" element={<BillingDashboard />} />
13
+ <Route path="/patient/:patientUuid/:billUuid" element={<Invoice />} />
14
+ </Routes>
15
+ </BrowserRouter>
16
+ );
17
+ };
18
+
19
+ export default RootComponent;
package/src/root.scss ADDED
@@ -0,0 +1,30 @@
1
+ @use '@carbon/type';
2
+ @import '~@openmrs/esm-styleguide/src/vars';
3
+
4
+ .productiveHeading01 {
5
+ @include type.type-style('heading-compact-01');
6
+ }
7
+
8
+ .productiveHeading02 {
9
+ @include type.type-style('heading-compact-02');
10
+ }
11
+
12
+ .bodyLong01 {
13
+ @include type.type-style('body-01');
14
+ }
15
+
16
+ .caption01 {
17
+ @include type.type-style('legal-01');
18
+ }
19
+
20
+ .bodyShort02 {
21
+ @include type.type-style('body-compact-02');
22
+ }
23
+
24
+ .text02 {
25
+ color: $text-02;
26
+ }
27
+
28
+ .text01 {
29
+ color: $ui-05;
30
+ }
@@ -0,0 +1,79 @@
1
+ {
2
+ "$schema": "https://json.openmrs.org/routes.schema.json",
3
+ "backendDependencies": {
4
+ "kenyaemr": "^18.2.0"
5
+ },
6
+ "pages": [
7
+ {
8
+ "component": "billableServicesHome",
9
+ "route":"billable-services"
10
+ }
11
+ ],
12
+ "extensions": [
13
+ {
14
+ "component": "billingDashboardLink",
15
+ "name": "billing-dashboard-link",
16
+ "slot": "homepage-dashboard-slot",
17
+ "meta": {
18
+ "name": "billing",
19
+ "title": "billing",
20
+ "slot": "billing-dashboard-slot"
21
+ }
22
+ },
23
+ {
24
+ "component": "root",
25
+ "name": "billing-dashboard-root",
26
+ "slot": "billing-dashboard-slot"
27
+ },
28
+ {
29
+ "name": "billing-patient-summary",
30
+ "component": "billingPatientSummary",
31
+ "slot": "patient-chart-billing-dashboard-slot",
32
+ "order": 10,
33
+ "meta": {
34
+ "columnSpan": 4
35
+ }
36
+ },
37
+ {
38
+ "name": "billing-summary-dashboard-link",
39
+ "component": "billingSummaryDashboardLink",
40
+ "slot": "patient-chart-dashboard-slot",
41
+ "order": 11,
42
+ "meta": {
43
+ "columns": 1,
44
+ "columnSpan": 1,
45
+ "slot": "patient-chart-billing-dashboard-slot",
46
+ "path": "Billing history"
47
+ }
48
+ },
49
+ {
50
+ "name": "billing-checkin-form",
51
+ "slot": "billing-checkin-slot",
52
+ "component": "billingCheckInForm"
53
+ },
54
+ {
55
+ "slot": "system-admin-page-card-link-slot",
56
+ "component": "billableServicesCardLink",
57
+ "name": "billable-services-admin-card-link"
58
+ },
59
+ {
60
+ "name": "billing-form",
61
+ "component": "billingForm"
62
+ },
63
+ {
64
+ "name": "require-billing-modal",
65
+ "component": "requirePaymentModal"
66
+ },
67
+ {
68
+ "name": "patient-banner-billing-tags",
69
+ "component": "visitAttributeTags",
70
+ "slot": "patient-banner-tags-slot",
71
+ "order": 2
72
+ },
73
+ {
74
+ "name": "billing-home-tiles-ext",
75
+ "slot": "billing-home-tiles-slot",
76
+ "component": "billingServicesTiles"
77
+ }
78
+ ]
79
+ }
@@ -0,0 +1,13 @@
1
+ import '@testing-library/jest-dom';
2
+
3
+ declare global {
4
+ interface Window {
5
+ openmrsBase: string;
6
+ spaBase: string;
7
+ }
8
+ }
9
+
10
+ window.openmrsBase = '/openmrs';
11
+ window.spaBase = '/spa';
12
+ window.getOpenmrsSpaBase = () => '/openmrs/spa/';
13
+ window.HTMLElement.prototype.scrollIntoView = jest.fn();
@@ -0,0 +1,167 @@
1
+ export interface MappedBill {
2
+ uuid: string;
3
+ id: number;
4
+ patientUuid: string;
5
+ patientName: string;
6
+ cashPointUuid: string;
7
+ cashPointName: string;
8
+ cashPointLocation: string;
9
+ cashier: Provider;
10
+ receiptNumber: string;
11
+ status: string;
12
+ identifier: string;
13
+ dateCreated: string;
14
+ lineItems: Array<LineItem>;
15
+ billingService: string;
16
+ payments: Array<Payment>;
17
+ totalAmount?: number;
18
+ tenderedAmount?: number;
19
+ display?: string;
20
+ }
21
+
22
+ interface LocationLink {
23
+ rel: string;
24
+ uri: string;
25
+ resourceAlias: string;
26
+ }
27
+
28
+ interface Location {
29
+ uuid: string;
30
+ display: string;
31
+ links: LocationLink[];
32
+ }
33
+
34
+ interface CashPoint {
35
+ uuid: string;
36
+ name: string;
37
+ description: string;
38
+ retired: boolean;
39
+ location: Location;
40
+ }
41
+
42
+ interface ProviderLink {
43
+ rel: string;
44
+ uri: string;
45
+ resourceAlias: string;
46
+ }
47
+
48
+ interface Provider {
49
+ uuid: string;
50
+ display: string;
51
+ links: ProviderLink[];
52
+ }
53
+
54
+ export interface LineItem {
55
+ uuid: string;
56
+ display: string;
57
+ voided: boolean;
58
+ voidReason: string | null;
59
+ item: string;
60
+ billableService: string;
61
+ quantity: number;
62
+ price: number;
63
+ priceName: string;
64
+ priceUuid: string;
65
+ lineItemOrder: number;
66
+ resourceVersion: string;
67
+ }
68
+
69
+ interface PatientLink {
70
+ rel: string;
71
+ uri: string;
72
+ resourceAlias: string;
73
+ }
74
+
75
+ interface Patient {
76
+ uuid: string;
77
+ display: string;
78
+ links: PatientLink[];
79
+ }
80
+
81
+ interface AttributeType {
82
+ uuid: string;
83
+ name: string;
84
+ description: string;
85
+ retired: boolean;
86
+ attributeOrder: number;
87
+ format: string;
88
+ foreignKey: string | null;
89
+ regExp: string | null;
90
+ required: boolean;
91
+ }
92
+
93
+ interface Attribute {
94
+ uuid: string;
95
+ display: string;
96
+ voided: boolean;
97
+ voidReason: string | null;
98
+ value: string;
99
+ attributeType: AttributeType;
100
+ order: number;
101
+ valueName: string;
102
+ resourceVersion: string;
103
+ }
104
+
105
+ interface PaymentInstanceType {
106
+ uuid: string;
107
+ name: string;
108
+ description: string;
109
+ retired: boolean;
110
+ }
111
+
112
+ export interface Payment {
113
+ uuid: string;
114
+ instanceType: PaymentInstanceType;
115
+ attributes: Attribute[];
116
+ amount: number;
117
+ amountTendered: number;
118
+ dateCreated: number;
119
+ voided: boolean;
120
+ resourceVersion: string;
121
+ }
122
+
123
+ export interface PatientInvoice {
124
+ uuid: string;
125
+ display: string;
126
+ voided: boolean;
127
+ voidReason: string | null;
128
+ adjustedBy: any[];
129
+ billAdjusted: any;
130
+ cashPoint: CashPoint;
131
+ cashier: Provider;
132
+ dateCreated: string;
133
+ lineItems: LineItem[];
134
+ patient: Patient;
135
+ payments: Payment[];
136
+ receiptNumber: string;
137
+ status: string;
138
+ adjustmentReason: any;
139
+ id: number;
140
+ resourceVersion: string;
141
+ }
142
+
143
+ export interface PatientDetails {
144
+ name: string;
145
+ age: string;
146
+ gender: string;
147
+ city: string;
148
+ county: string;
149
+ subCounty: string;
150
+ }
151
+
152
+ export interface FacilityDetail {
153
+ uuid: string;
154
+ display: string;
155
+ }
156
+
157
+ export type ServiceConcept = {
158
+ concept: {
159
+ uuid: string;
160
+ display: string;
161
+ };
162
+ conceptName: {
163
+ uuid: string;
164
+ display: string;
165
+ };
166
+ display: string;
167
+ };
@@ -0,0 +1,23 @@
1
+ import React from 'react';
2
+ import { SWRConfig } from 'swr';
3
+ import { render, screen, waitForElementToBeRemoved } from '@testing-library/react';
4
+
5
+ const swrWrapper = ({ children }) => {
6
+ return (
7
+ <SWRConfig
8
+ value={{
9
+ dedupingInterval: 0,
10
+ provider: () => new Map(),
11
+ }}>
12
+ {children}
13
+ </SWRConfig>
14
+ );
15
+ };
16
+
17
+ export const renderWithSwr = (ui, options?) => render(ui, { wrapper: swrWrapper, ...options });
18
+
19
+ export function waitForLoadingToFinish() {
20
+ return waitForElementToBeRemoved(() => [...screen.queryAllByRole('progressbar')], {
21
+ timeout: 4000,
22
+ });
23
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "actions": "Actions",
3
+ "addBillableServices": "Add Billable Services",
4
+ "addNewBillableService": "Add new billable service",
5
+ "addNewService": "Add new service",
6
+ "addPaymentOptions": "Add payment option",
7
+ "amount": "Amount",
8
+ "amountToWaiveAriaLabel": "Enter amount to waive",
9
+ "amountToWaiveHelper": "Specify the amount to be deducted from the bill",
10
+ "amountToWaiveLabel": "Amount to Waive",
11
+ "billableService": "Billable service",
12
+ "billableServices": "Billable Services",
13
+ "billedItems": "Billed Items",
14
+ "billedTo": "Billed to",
15
+ "billErrorService": "Bill service error",
16
+ "billing": "Billing",
17
+ "billItem": "Bill item",
18
+ "billItems": "Bill Items",
19
+ "billList": "Bill list",
20
+ "billMetrics": "Bill metrics",
21
+ "billName": " {{billName}} ",
22
+ "billPayment": "Bill payment",
23
+ "billPaymentRequiredMessage": "The current patient has pending bill. Advice patient to settle bill before receiving services",
24
+ "billServicesManagement": "Bill services management",
25
+ "billsList": "Bill list",
26
+ "billTotal": "Bill total",
27
+ "billWaiver": "Bill waiver",
28
+ "billWaiverError": "Bill waiver failed {{error}}",
29
+ "billWaiverSuccess": "Bill waiver successful",
30
+ "cancel": "Cancel",
31
+ "checkFilters": "Check the filters above",
32
+ "discard": "Discard",
33
+ "discount": "Discount",
34
+ "drug": "Drug",
35
+ "enterAmount": "Enter amount",
36
+ "enterConcept": "Associated concept",
37
+ "enterReferenceNumber": "Enter ref. number",
38
+ "errorLoadingBillServices": "Error loading bill services",
39
+ "errorLoadingPaymentModes": "Payment modes error",
40
+ "filterBy": "Filter by",
41
+ "filterTable": "Filter table",
42
+ "home": "Home",
43
+ "identifier": "Identifier",
44
+ "inlineLoading": "Loading bill items...",
45
+ "insuranceScheme": "Insurance scheme",
46
+ "invalidWaiverAmount": "Invalid waiver amount",
47
+ "invoice": "Invoice",
48
+ "invoiceError": "Invoice error",
49
+ "item": "Item",
50
+ "itemsToBeBilled": "Items to be billed",
51
+ "launchBillForm": "Launch bill form",
52
+ "lineItems": "Line items",
53
+ "loading": "Loading data...",
54
+ "loadingBillingServices": "Loading billing services...",
55
+ "loadingDescription": "Loading",
56
+ "manageBillableServices": "Manage billable services",
57
+ "name": "Name",
58
+ "nextPage": "Next page",
59
+ "noBilltoDisplay": "There are no bills to display for this patient",
60
+ "noMatchingBillsToDisplay": "No matching bills to display",
61
+ "noMatchingItemsToDisplay": "No matching items to display",
62
+ "noMatchingServicesToDisplay": "No matching services to display",
63
+ "nonDrug": "Non drug",
64
+ "noResultsFor": "No results for",
65
+ "noServicesToDisplay": "There are no services to display",
66
+ "ok": "OK",
67
+ "patientBillingAlert": "Patient Billing Alert",
68
+ "patientBills": "Patient bill",
69
+ "patientBillsDescription": "List of patient bills",
70
+ "patientCategory": "Patient category",
71
+ "paymentDetails": "Payment Details",
72
+ "paymentMethod": "Payment method",
73
+ "paymentMethods": "Payment methods",
74
+ "paymentMode": "Payment Mode",
75
+ "payments": "Payments",
76
+ "policyNumber": "Policy number",
77
+ "postWaiver": "Post waiver",
78
+ "previousPage": "Previous page",
79
+ "prices": "Prices",
80
+ "printBill": "Print bill",
81
+ "printReceipt": "Print receipt",
82
+ "processPayment": "Process Payment",
83
+ "quantity": "Quantity",
84
+ "referenceNumber": "Reference number",
85
+ "save": "Save",
86
+ "searchConcepts": "Search associated concept",
87
+ "searching": "Searching",
88
+ "searchThisTable": "Search this table",
89
+ "selectBillableService": "Select a billable service...",
90
+ "selectCategory": "Select category",
91
+ "selectPaymentMethod": "Select payment method",
92
+ "sellingAmount": "Enter selling price",
93
+ "sellingPrice": "Selling Price",
94
+ "serviceMetrics": "Service Metrics",
95
+ "serviceName": "Service Name",
96
+ "serviceShortName": "Short Name",
97
+ "servicesList": "Services list",
98
+ "serviceType": "Service Type",
99
+ "shortName": "Short Name",
100
+ "status": "Service Status",
101
+ "total": "Total",
102
+ "totalAmount": "Total Amount",
103
+ "totalTendered": "Total Tendered",
104
+ "unitPrice": "Unit price",
105
+ "visitTime": "Visit time",
106
+ "waiverForm": "Waiver form"
107
+ }
@@ -0,0 +1,107 @@
1
+ {
2
+ "actions": "Actions",
3
+ "addBillableServices": "Add Billable Services",
4
+ "addNewBillableService": "Add new billable service",
5
+ "addNewService": "Add new service",
6
+ "addPaymentOptions": "Add payment option",
7
+ "amount": "Amount",
8
+ "amountToWaiveAriaLabel": "Enter amount to waive",
9
+ "amountToWaiveHelper": "Specify the amount to be deducted from the bill",
10
+ "amountToWaiveLabel": "Amount to Waive",
11
+ "billableService": "Billable service",
12
+ "billableServices": "Billable Services",
13
+ "billedItems": "Billed Items",
14
+ "billedTo": "Billed to",
15
+ "billErrorService": "Bill service error",
16
+ "billing": "Billing",
17
+ "billItem": "Bill item",
18
+ "billItems": "Bill Items",
19
+ "billList": "Bill list",
20
+ "billMetrics": "Bill metrics",
21
+ "billName": " {{billName}} ",
22
+ "billPayment": "Bill payment",
23
+ "billPaymentRequiredMessage": "The current patient has pending bill. Advice patient to settle bill before receiving services",
24
+ "billServicesManagement": "Bill services management",
25
+ "billsList": "Bill list",
26
+ "billTotal": "Bill total",
27
+ "billWaiver": "Bill waiver",
28
+ "billWaiverError": "Bill waiver failed {{error}}",
29
+ "billWaiverSuccess": "Bill waiver successful",
30
+ "cancel": "Cancel",
31
+ "checkFilters": "Check the filters above",
32
+ "discard": "Discard",
33
+ "discount": "Discount",
34
+ "drug": "Drug",
35
+ "enterAmount": "Enter amount",
36
+ "enterConcept": "Associated concept",
37
+ "enterReferenceNumber": "Enter ref. number",
38
+ "errorLoadingBillServices": "Error loading bill services",
39
+ "errorLoadingPaymentModes": "Payment modes error",
40
+ "filterBy": "Filter by",
41
+ "filterTable": "Filter table",
42
+ "home": "Home",
43
+ "identifier": "Identifier",
44
+ "inlineLoading": "Loading bill items...",
45
+ "insuranceScheme": "Insurance scheme",
46
+ "invalidWaiverAmount": "Invalid waiver amount",
47
+ "invoice": "Invoice",
48
+ "invoiceError": "Invoice error",
49
+ "item": "Item",
50
+ "itemsToBeBilled": "Items to be billed",
51
+ "launchBillForm": "Launch bill form",
52
+ "lineItems": "Line items",
53
+ "loading": "Loading data...",
54
+ "loadingBillingServices": "Loading billing services...",
55
+ "loadingDescription": "Loading",
56
+ "manageBillableServices": "Manage billable services",
57
+ "name": "Name",
58
+ "nextPage": "Next page",
59
+ "noBilltoDisplay": "There are no bills to display for this patient",
60
+ "noMatchingBillsToDisplay": "No matching bills to display",
61
+ "noMatchingItemsToDisplay": "No matching items to display",
62
+ "noMatchingServicesToDisplay": "No matching services to display",
63
+ "nonDrug": "Non drug",
64
+ "noResultsFor": "No results for",
65
+ "noServicesToDisplay": "There are no services to display",
66
+ "ok": "OK",
67
+ "patientBillingAlert": "Patient Billing Alert",
68
+ "patientBills": "Patient bill",
69
+ "patientBillsDescription": "List of patient bills",
70
+ "patientCategory": "Patient category",
71
+ "paymentDetails": "Payment Details",
72
+ "paymentMethod": "Payment method",
73
+ "paymentMethods": "Payment methods",
74
+ "paymentMode": "Payment Mode",
75
+ "payments": "Payments",
76
+ "policyNumber": "Policy number",
77
+ "postWaiver": "Post waiver",
78
+ "previousPage": "Previous page",
79
+ "prices": "Prices",
80
+ "printBill": "Print bill",
81
+ "printReceipt": "Print receipt",
82
+ "processPayment": "Process Payment",
83
+ "quantity": "Quantity",
84
+ "referenceNumber": "Reference number",
85
+ "save": "Save",
86
+ "searchConcepts": "Search associated concept",
87
+ "searching": "Searching",
88
+ "searchThisTable": "Search this table",
89
+ "selectBillableService": "Select a billable service...",
90
+ "selectCategory": "Select category",
91
+ "selectPaymentMethod": "Select payment method",
92
+ "sellingAmount": "Enter selling price",
93
+ "sellingPrice": "Selling Price",
94
+ "serviceMetrics": "Service Metrics",
95
+ "serviceName": "Service Name",
96
+ "serviceShortName": "Short Name",
97
+ "servicesList": "Services list",
98
+ "serviceType": "Service Type",
99
+ "shortName": "Short Name",
100
+ "status": "Service Status",
101
+ "total": "Total",
102
+ "totalAmount": "Total Amount",
103
+ "totalTendered": "Total Tendered",
104
+ "unitPrice": "Unit price",
105
+ "visitTime": "Visit time",
106
+ "waiverForm": "Waiver form"
107
+ }