@digihmis/esm-billing-app 1.0.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 +4 -0
- package/dist/117.js +1 -0
- package/dist/117.js.map +1 -0
- package/dist/132.js +1 -0
- package/dist/132.js.map +1 -0
- package/dist/152.js +1 -0
- package/dist/152.js.map +1 -0
- package/dist/16.js +1 -0
- package/dist/16.js.map +1 -0
- package/dist/209.js +1 -0
- package/dist/209.js.map +1 -0
- package/dist/317.js +1 -0
- package/dist/317.js.map +1 -0
- package/dist/349.js +1 -0
- package/dist/349.js.map +1 -0
- package/dist/358.js +1 -0
- package/dist/358.js.map +1 -0
- package/dist/371.js +1 -0
- package/dist/371.js.map +1 -0
- package/dist/378.js +1 -0
- package/dist/378.js.map +1 -0
- package/dist/442.js +1 -0
- package/dist/442.js.map +1 -0
- package/dist/45.js +1 -0
- package/dist/45.js.map +1 -0
- package/dist/466.js +1 -0
- package/dist/466.js.map +1 -0
- package/dist/496.js +12 -0
- package/dist/496.js.map +1 -0
- package/dist/508.js +1 -0
- package/dist/508.js.map +1 -0
- package/dist/61.js +1 -0
- package/dist/61.js.map +1 -0
- package/dist/640.js +1 -0
- package/dist/640.js.map +1 -0
- package/dist/689.js +1 -0
- package/dist/689.js.map +1 -0
- package/dist/709.js +1 -0
- package/dist/709.js.map +1 -0
- package/dist/712.js +1 -0
- package/dist/712.js.map +1 -0
- package/dist/720.js +1 -0
- package/dist/720.js.map +1 -0
- package/dist/742.js +1 -0
- package/dist/742.js.map +1 -0
- package/dist/771.js +1 -0
- package/dist/771.js.map +1 -0
- package/dist/806.js +1 -0
- package/dist/806.js.map +1 -0
- package/dist/839.js +1 -0
- package/dist/839.js.map +1 -0
- package/dist/912.js +1 -0
- package/dist/912.js.map +1 -0
- package/dist/913.js +1 -0
- package/dist/913.js.map +1 -0
- package/dist/940.js +1 -0
- package/dist/940.js.map +1 -0
- package/dist/965.js +15 -0
- package/dist/965.js.map +1 -0
- package/dist/digihmis-esm-billing-app.js +6 -0
- package/dist/digihmis-esm-billing-app.js.buildmanifest.json +827 -0
- package/dist/digihmis-esm-billing-app.js.map +1 -0
- package/dist/main.js +17 -0
- package/dist/main.js.map +1 -0
- package/dist/routes.json +1 -0
- package/jest.config.js +26 -0
- package/package.json +51 -0
- package/rspack.config.js +1 -0
- package/src/billing-checkin-form/billing-checkin-form-schema/index.ts +11 -0
- package/src/billing-checkin-form/billing-checkin-form.extension.tsx +179 -0
- package/src/billing-checkin-form/billing-checkin-form.resource.ts +42 -0
- package/src/billing-checkin-form/billing-checkin-form.scss +82 -0
- package/src/billing-checkin-form/billing-patient-type-tag/billing-patient-type-tag.component.tsx +39 -0
- package/src/billing-checkin-form/billing-patient-type-tag/billing-patient-type-tag.resource.ts +57 -0
- package/src/billing-checkin-form/billing-patient-type-tag/billing-patient-type-tag.scss +4 -0
- package/src/billing-checkin-form/helper/index.ts +2 -0
- package/src/billing-checkin-form/type/index.ts +42 -0
- package/src/billing-checkin-form/visit-attributes/visit-attributes-form.component.tsx +244 -0
- package/src/billing-checkin-form/visit-attributes/visit-attributes-form.resource.ts +23 -0
- package/src/billing-checkin-form/visit-attributes/visit-attributes-form.scss +186 -0
- package/src/billing-dashboard/billing-dashboard.component.tsx +224 -0
- package/src/billing-dashboard/billing-dashboard.resource.ts +101 -0
- package/src/billing-dashboard/billing-dashboard.scss +166 -0
- package/src/billing-dashboard/metrics/metrics.resource.ts +142 -0
- package/src/billing-dashboard/type/index.ts +176 -0
- package/src/billing-header/page-header/page-header.component.tsx +35 -0
- package/src/billing-header/page-header/page-header.scss +76 -0
- package/src/billing-header/page-header/page-icon/icon-wrapper.extension.tsx +17 -0
- package/src/billing-timesheet-modal/billing-timesheet-modal.scss +56 -0
- package/src/billing-timesheet-modal/billing-timesheet-modal.tsx +281 -0
- package/src/billing-timesheet-modal/billing-timesheet-resource-modal.ts +37 -0
- package/src/bills-table/bills-table.component.tsx +323 -0
- package/src/bills-table/bills-table.scss +252 -0
- package/src/config-schema.ts +148 -0
- package/src/constants/index.ts +2 -0
- package/src/dashboard.meta.ts +16 -0
- package/src/declarations.d.ts +6 -0
- package/src/index.ts +37 -0
- package/src/leftpanel/left-panel.component.tsx +98 -0
- package/src/leftpanel/left-panel.scss +13 -0
- package/src/routes.json +58 -0
- package/src/setup-tests.ts +1 -0
- package/src/utils/index.ts +270 -0
- package/translations/am.json +18 -0
- package/translations/ar.json +18 -0
- package/translations/en.json +18 -0
- package/translations/es.json +18 -0
- package/translations/fr.json +18 -0
- package/translations/he.json +18 -0
- package/translations/km.json +18 -0
- package/translations/pt.json +18 -0
- package/translations/sw.json +18 -0
- package/translations/vi.json +18 -0
- package/translations/zh.json +18 -0
- package/tsconfig.json +5 -0
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
import { useConfig } from '@openmrs/esm-framework';
|
|
2
|
+
import { BillingConfig } from '../config-schema';
|
|
3
|
+
|
|
4
|
+
export const DEFAULT_LOCALE_CURRENCY_MAP: Record<string, string> = {
|
|
5
|
+
en: 'KES', // English - Kenyan Shilling
|
|
6
|
+
sw: 'KES', // Swahili - Kenyan Shilling
|
|
7
|
+
am: 'ETB', // Amharic - Ethiopian Birr
|
|
8
|
+
ar: 'SAR', // Arabic - Saudi Riyal
|
|
9
|
+
es: 'EUR', // Spanish - Euro
|
|
10
|
+
fr: 'EUR', // French - Euro
|
|
11
|
+
he: 'ILS', // Hebrew - Israeli Shekel
|
|
12
|
+
km: 'KHR', // Khmer - Cambodian Riel
|
|
13
|
+
pt: 'EUR', // Portuguese - Euro
|
|
14
|
+
vi: 'VND', // Vietnamese - Vietnamese Dong
|
|
15
|
+
zh: 'CNY', // Chinese - Chinese Yuan
|
|
16
|
+
'en-KE': 'KES', // English Kenya
|
|
17
|
+
'sw-KE': 'KES', // Swahili Kenya
|
|
18
|
+
'am-ET': 'ETB', // Amharic Ethiopia
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Custom currency symbols that override the default Intl display
|
|
23
|
+
* Use this to force "KES" instead of "KSH" in Swahili
|
|
24
|
+
*/
|
|
25
|
+
const CUSTOM_CURRENCY_SYMBOLS: Record<string, string> = {
|
|
26
|
+
KES: 'KES',
|
|
27
|
+
ETB: 'ETB',
|
|
28
|
+
// Add more custom symbols as needed
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* Gets the currency code for the current locale
|
|
33
|
+
* @returns The currency code (e.g., 'KES', 'ETB', 'USD')
|
|
34
|
+
*/
|
|
35
|
+
export const getCurrencyForLocale = (): string => {
|
|
36
|
+
const currentLocale = localStorage.getItem('i18nextLng') ?? 'en';
|
|
37
|
+
|
|
38
|
+
// Try exact match first
|
|
39
|
+
if (DEFAULT_LOCALE_CURRENCY_MAP[currentLocale]) {
|
|
40
|
+
return DEFAULT_LOCALE_CURRENCY_MAP[currentLocale];
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Try base language (e.g., 'en-US' → 'en')
|
|
44
|
+
const baseLanguage = currentLocale.split('-')[0];
|
|
45
|
+
if (DEFAULT_LOCALE_CURRENCY_MAP[baseLanguage]) {
|
|
46
|
+
return DEFAULT_LOCALE_CURRENCY_MAP[baseLanguage];
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
// Final fallback
|
|
50
|
+
return 'USD';
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Gets the currency code for the current locale with config support
|
|
55
|
+
* @param config - The billing configuration object
|
|
56
|
+
* @returns The currency code (e.g., 'KES', 'ETB', 'USD')
|
|
57
|
+
*/
|
|
58
|
+
export const getCurrencyForLocaleWithConfig = (config?: BillingConfig): string => {
|
|
59
|
+
const currentLocale = localStorage.getItem('i18nextLng') ?? 'en';
|
|
60
|
+
|
|
61
|
+
// Use config mapping if available, otherwise fall back to default
|
|
62
|
+
const currencyMap = config?.localeCurrencyMapping || DEFAULT_LOCALE_CURRENCY_MAP;
|
|
63
|
+
|
|
64
|
+
// Try exact match first
|
|
65
|
+
if (currencyMap[currentLocale]) {
|
|
66
|
+
return currencyMap[currentLocale];
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// Try base language (e.g., 'en-US' → 'en')
|
|
70
|
+
const baseLanguage = currentLocale.split('-')[0];
|
|
71
|
+
if (currencyMap[baseLanguage]) {
|
|
72
|
+
return currencyMap[baseLanguage];
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Final fallback
|
|
76
|
+
return 'USD';
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
/**
|
|
80
|
+
* Gets the current locale from localStorage
|
|
81
|
+
* @returns The current locale (e.g., 'en', 'sw', 'am')
|
|
82
|
+
*/
|
|
83
|
+
export const getCurrentLocale = (): string => {
|
|
84
|
+
return localStorage.getItem('i18nextLng') ?? 'en';
|
|
85
|
+
};
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Formats currency with custom symbol override to force "KES" instead of "KSH"
|
|
89
|
+
* @param amount - The amount to format
|
|
90
|
+
* @param currency - The currency code
|
|
91
|
+
* @param locale - The locale to use for formatting
|
|
92
|
+
* @returns Formatted currency string with custom symbol
|
|
93
|
+
*/
|
|
94
|
+
const formatWithCustomSymbol = (amount: number, currency: string, locale: string): string => {
|
|
95
|
+
const customSymbol = CUSTOM_CURRENCY_SYMBOLS[currency];
|
|
96
|
+
|
|
97
|
+
if (customSymbol) {
|
|
98
|
+
// Format without currency symbol, then add custom symbol
|
|
99
|
+
const formatter = new Intl.NumberFormat(locale, {
|
|
100
|
+
style: 'decimal',
|
|
101
|
+
minimumFractionDigits: 2,
|
|
102
|
+
maximumFractionDigits: 2,
|
|
103
|
+
});
|
|
104
|
+
|
|
105
|
+
const formattedNumber = formatter.format(Math.abs(amount));
|
|
106
|
+
const prefix = amount < 0 ? '- ' : '';
|
|
107
|
+
|
|
108
|
+
return `${prefix}${customSymbol} ${formattedNumber}`;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
// Fallback to standard formatting
|
|
112
|
+
const formatter = new Intl.NumberFormat(locale, {
|
|
113
|
+
style: 'currency',
|
|
114
|
+
currency: currency,
|
|
115
|
+
minimumFractionDigits: 2,
|
|
116
|
+
});
|
|
117
|
+
|
|
118
|
+
return formatter.format(amount);
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* Formats a number as currency based on the current locale
|
|
123
|
+
* Forces "KES" display instead of "KSH" for Kenyan Shilling
|
|
124
|
+
* @param amount - The amount to format
|
|
125
|
+
* @param options - Additional Intl.NumberFormat options
|
|
126
|
+
* @returns Formatted currency string
|
|
127
|
+
*/
|
|
128
|
+
export const formatCurrency = (amount: number, options: Intl.NumberFormatOptions = {}): string => {
|
|
129
|
+
const currentLocale = getCurrentLocale();
|
|
130
|
+
const currency = getCurrencyForLocale();
|
|
131
|
+
|
|
132
|
+
// Use custom formatting for currencies with custom symbols
|
|
133
|
+
if (CUSTOM_CURRENCY_SYMBOLS[currency]) {
|
|
134
|
+
return formatWithCustomSymbol(amount, currency, currentLocale);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
const formatter = new Intl.NumberFormat(currentLocale, {
|
|
138
|
+
style: 'currency',
|
|
139
|
+
currency: currency,
|
|
140
|
+
minimumFractionDigits: 2,
|
|
141
|
+
...options,
|
|
142
|
+
});
|
|
143
|
+
|
|
144
|
+
let formattedAmount = formatter.format(Math.abs(amount));
|
|
145
|
+
|
|
146
|
+
if (amount < 0) {
|
|
147
|
+
formattedAmount = `- ${formattedAmount}`;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
return formattedAmount;
|
|
151
|
+
};
|
|
152
|
+
|
|
153
|
+
/**
|
|
154
|
+
* Formats a number as currency without negative sign handling
|
|
155
|
+
* Forces "KES" display instead of "KSH" for Kenyan Shilling
|
|
156
|
+
* @param amount - The amount to format
|
|
157
|
+
* @param options - Additional Intl.NumberFormat options
|
|
158
|
+
* @returns Formatted currency string
|
|
159
|
+
*/
|
|
160
|
+
export const formatCurrencySimple = (amount: number, options: Intl.NumberFormatOptions = {}): string => {
|
|
161
|
+
const currentLocale = getCurrentLocale();
|
|
162
|
+
const currency = getCurrencyForLocale();
|
|
163
|
+
|
|
164
|
+
// Use custom formatting for currencies with custom symbols
|
|
165
|
+
if (CUSTOM_CURRENCY_SYMBOLS[currency]) {
|
|
166
|
+
const formatter = new Intl.NumberFormat(currentLocale, {
|
|
167
|
+
style: 'decimal',
|
|
168
|
+
minimumFractionDigits: 2,
|
|
169
|
+
maximumFractionDigits: 2,
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
const formattedNumber = formatter.format(amount);
|
|
173
|
+
return `${CUSTOM_CURRENCY_SYMBOLS[currency]} ${formattedNumber}`;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
const formatter = new Intl.NumberFormat(currentLocale, {
|
|
177
|
+
style: 'currency',
|
|
178
|
+
currency: currency,
|
|
179
|
+
...options,
|
|
180
|
+
});
|
|
181
|
+
|
|
182
|
+
return formatter.format(amount);
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
/**
|
|
186
|
+
* Hook to get currency formatting with config support
|
|
187
|
+
* Forces "KES" display instead of "KSH" for Kenyan Shilling
|
|
188
|
+
* @returns Object with currency formatting functions
|
|
189
|
+
*/
|
|
190
|
+
export const useCurrencyFormatting = () => {
|
|
191
|
+
const config = useConfig<BillingConfig>();
|
|
192
|
+
|
|
193
|
+
const getCurrency = () => getCurrencyForLocaleWithConfig(config);
|
|
194
|
+
|
|
195
|
+
const getLocale = () => getCurrentLocale();
|
|
196
|
+
|
|
197
|
+
const format = (amount: number, options: Intl.NumberFormatOptions = {}) => {
|
|
198
|
+
const currentLocale = getLocale();
|
|
199
|
+
const currency = getCurrency();
|
|
200
|
+
|
|
201
|
+
// Use custom formatting for currencies with custom symbols
|
|
202
|
+
if (CUSTOM_CURRENCY_SYMBOLS[currency]) {
|
|
203
|
+
return formatWithCustomSymbol(amount, currency, currentLocale);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
const formatter = new Intl.NumberFormat(currentLocale, {
|
|
207
|
+
style: 'currency',
|
|
208
|
+
currency: currency,
|
|
209
|
+
minimumFractionDigits: 2,
|
|
210
|
+
...options,
|
|
211
|
+
});
|
|
212
|
+
|
|
213
|
+
let formattedAmount = formatter.format(Math.abs(amount));
|
|
214
|
+
|
|
215
|
+
if (amount < 0) {
|
|
216
|
+
formattedAmount = `- ${formattedAmount}`;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
return formattedAmount;
|
|
220
|
+
};
|
|
221
|
+
|
|
222
|
+
const formatSimple = (amount: number, options: Intl.NumberFormatOptions = {}) => {
|
|
223
|
+
const currentLocale = getLocale();
|
|
224
|
+
const currency = getCurrency();
|
|
225
|
+
|
|
226
|
+
// Use custom formatting for currencies with custom symbols
|
|
227
|
+
if (CUSTOM_CURRENCY_SYMBOLS[currency]) {
|
|
228
|
+
const formatter = new Intl.NumberFormat(currentLocale, {
|
|
229
|
+
style: 'decimal',
|
|
230
|
+
minimumFractionDigits: 2,
|
|
231
|
+
maximumFractionDigits: 2,
|
|
232
|
+
});
|
|
233
|
+
|
|
234
|
+
const formattedNumber = formatter.format(amount);
|
|
235
|
+
return `${CUSTOM_CURRENCY_SYMBOLS[currency]} ${formattedNumber}`;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
const formatter = new Intl.NumberFormat(currentLocale, {
|
|
239
|
+
style: 'currency',
|
|
240
|
+
currency: currency,
|
|
241
|
+
...options,
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
return formatter.format(amount);
|
|
245
|
+
};
|
|
246
|
+
|
|
247
|
+
return {
|
|
248
|
+
getCurrency,
|
|
249
|
+
getLocale,
|
|
250
|
+
format,
|
|
251
|
+
formatSimple,
|
|
252
|
+
};
|
|
253
|
+
};
|
|
254
|
+
|
|
255
|
+
/**
|
|
256
|
+
* Extracts and returns the substring after the first colon (:) in the input string.
|
|
257
|
+
* If there's no colon or the input is invalid, returns the original string.
|
|
258
|
+
* The input string is typically in the format "uuid:string".
|
|
259
|
+
*
|
|
260
|
+
* @param {string} input - The input string from which the substring is to be extracted.
|
|
261
|
+
* @returns {string} The substring found after the first colon, or the original string if no colon is present.
|
|
262
|
+
*/
|
|
263
|
+
export function extractString(input: string): string {
|
|
264
|
+
if (!input || typeof input !== 'string') {
|
|
265
|
+
return '';
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
const parts = input.split(':');
|
|
269
|
+
return parts.length > 1 ? parts[1] : input;
|
|
270
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cash": "Cash",
|
|
3
|
+
"enterPolicyNumber": "Enter policy number",
|
|
4
|
+
"exemptionCategory": "Exemption category",
|
|
5
|
+
"insurance": "Insurance",
|
|
6
|
+
"insuranceScheme": "Insurance scheme",
|
|
7
|
+
"isPatientExemptedLegend": "Will the patient pay for services?",
|
|
8
|
+
"loading": "Loading data...",
|
|
9
|
+
"loadingDescription": "Loading",
|
|
10
|
+
"nonPayingPatient": "No, non-paying patient (exempt)",
|
|
11
|
+
"patientCategory": "Payment Category",
|
|
12
|
+
"payingPatient": "Yes, paying patient",
|
|
13
|
+
"paymentMethodsTitle": "Payment method",
|
|
14
|
+
"policyNumber": "Policy number",
|
|
15
|
+
"selectExemptionCategory": "Select exemption category",
|
|
16
|
+
"selectInsuranceScheme": "Select insurance scheme",
|
|
17
|
+
"selectPaymentMethod": "Select payment method"
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cash": "Cash",
|
|
3
|
+
"enterPolicyNumber": "Enter policy number",
|
|
4
|
+
"exemptionCategory": "Exemption category",
|
|
5
|
+
"insurance": "Insurance",
|
|
6
|
+
"insuranceScheme": "Insurance scheme",
|
|
7
|
+
"isPatientExemptedLegend": "Will the patient pay for services?",
|
|
8
|
+
"loading": "Loading data...",
|
|
9
|
+
"loadingDescription": "Loading",
|
|
10
|
+
"nonPayingPatient": "No, non-paying patient (exempt)",
|
|
11
|
+
"patientCategory": "Payment Category",
|
|
12
|
+
"payingPatient": "Yes, paying patient",
|
|
13
|
+
"paymentMethodsTitle": "Payment method",
|
|
14
|
+
"policyNumber": "Policy number",
|
|
15
|
+
"selectExemptionCategory": "Select exemption category",
|
|
16
|
+
"selectInsuranceScheme": "Select insurance scheme",
|
|
17
|
+
"selectPaymentMethod": "Select payment method"
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cash": "Cash",
|
|
3
|
+
"enterPolicyNumber": "Enter policy number",
|
|
4
|
+
"exemptionCategory": "Exemption category",
|
|
5
|
+
"insurance": "Insurance",
|
|
6
|
+
"insuranceScheme": "Insurance scheme",
|
|
7
|
+
"isPatientExemptedLegend": "Will the patient pay for services?",
|
|
8
|
+
"loading": "Loading data...",
|
|
9
|
+
"loadingDescription": "Loading",
|
|
10
|
+
"nonPayingPatient": "No, non-paying patient (exempt)",
|
|
11
|
+
"patientCategory": "Payment Category",
|
|
12
|
+
"payingPatient": "Yes, paying patient",
|
|
13
|
+
"paymentMethodsTitle": "Payment method",
|
|
14
|
+
"policyNumber": "Policy number",
|
|
15
|
+
"selectExemptionCategory": "Select exemption category",
|
|
16
|
+
"selectInsuranceScheme": "Select insurance scheme",
|
|
17
|
+
"selectPaymentMethod": "Select payment method"
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cash": "Cash",
|
|
3
|
+
"enterPolicyNumber": "Enter policy number",
|
|
4
|
+
"exemptionCategory": "Exemption category",
|
|
5
|
+
"insurance": "Insurance",
|
|
6
|
+
"insuranceScheme": "Insurance scheme",
|
|
7
|
+
"isPatientExemptedLegend": "Will the patient pay for services?",
|
|
8
|
+
"loading": "Loading data...",
|
|
9
|
+
"loadingDescription": "Loading",
|
|
10
|
+
"nonPayingPatient": "No, non-paying patient (exempt)",
|
|
11
|
+
"patientCategory": "Payment Category",
|
|
12
|
+
"payingPatient": "Yes, paying patient",
|
|
13
|
+
"paymentMethodsTitle": "Payment method",
|
|
14
|
+
"policyNumber": "Policy number",
|
|
15
|
+
"selectExemptionCategory": "Select exemption category",
|
|
16
|
+
"selectInsuranceScheme": "Select insurance scheme",
|
|
17
|
+
"selectPaymentMethod": "Select payment method"
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cash": "Cash",
|
|
3
|
+
"enterPolicyNumber": "Enter policy number",
|
|
4
|
+
"exemptionCategory": "Exemption category",
|
|
5
|
+
"insurance": "Insurance",
|
|
6
|
+
"insuranceScheme": "Insurance scheme",
|
|
7
|
+
"isPatientExemptedLegend": "Will the patient pay for services?",
|
|
8
|
+
"loading": "Loading data...",
|
|
9
|
+
"loadingDescription": "Loading",
|
|
10
|
+
"nonPayingPatient": "No, non-paying patient (exempt)",
|
|
11
|
+
"patientCategory": "Payment Category",
|
|
12
|
+
"payingPatient": "Yes, paying patient",
|
|
13
|
+
"paymentMethodsTitle": "Payment method",
|
|
14
|
+
"policyNumber": "Policy number",
|
|
15
|
+
"selectExemptionCategory": "Select exemption category",
|
|
16
|
+
"selectInsuranceScheme": "Select insurance scheme",
|
|
17
|
+
"selectPaymentMethod": "Select payment method"
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cash": "Cash",
|
|
3
|
+
"enterPolicyNumber": "Enter policy number",
|
|
4
|
+
"exemptionCategory": "Exemption category",
|
|
5
|
+
"insurance": "Insurance",
|
|
6
|
+
"insuranceScheme": "Insurance scheme",
|
|
7
|
+
"isPatientExemptedLegend": "Will the patient pay for services?",
|
|
8
|
+
"loading": "Loading data...",
|
|
9
|
+
"loadingDescription": "Loading",
|
|
10
|
+
"nonPayingPatient": "No, non-paying patient (exempt)",
|
|
11
|
+
"patientCategory": "Payment Category",
|
|
12
|
+
"payingPatient": "Yes, paying patient",
|
|
13
|
+
"paymentMethodsTitle": "Payment method",
|
|
14
|
+
"policyNumber": "Policy number",
|
|
15
|
+
"selectExemptionCategory": "Select exemption category",
|
|
16
|
+
"selectInsuranceScheme": "Select insurance scheme",
|
|
17
|
+
"selectPaymentMethod": "Select payment method"
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cash": "Cash",
|
|
3
|
+
"enterPolicyNumber": "Enter policy number",
|
|
4
|
+
"exemptionCategory": "Exemption category",
|
|
5
|
+
"insurance": "Insurance",
|
|
6
|
+
"insuranceScheme": "Insurance scheme",
|
|
7
|
+
"isPatientExemptedLegend": "Will the patient pay for services?",
|
|
8
|
+
"loading": "Loading data...",
|
|
9
|
+
"loadingDescription": "Loading",
|
|
10
|
+
"nonPayingPatient": "No, non-paying patient (exempt)",
|
|
11
|
+
"patientCategory": "Payment Category",
|
|
12
|
+
"payingPatient": "Yes, paying patient",
|
|
13
|
+
"paymentMethodsTitle": "Payment method",
|
|
14
|
+
"policyNumber": "Policy number",
|
|
15
|
+
"selectExemptionCategory": "Select exemption category",
|
|
16
|
+
"selectInsuranceScheme": "Select insurance scheme",
|
|
17
|
+
"selectPaymentMethod": "Select payment method"
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cash": "Cash",
|
|
3
|
+
"enterPolicyNumber": "Enter policy number",
|
|
4
|
+
"exemptionCategory": "Exemption category",
|
|
5
|
+
"insurance": "Insurance",
|
|
6
|
+
"insuranceScheme": "Insurance scheme",
|
|
7
|
+
"isPatientExemptedLegend": "Will the patient pay for services?",
|
|
8
|
+
"loading": "Loading data...",
|
|
9
|
+
"loadingDescription": "Loading",
|
|
10
|
+
"nonPayingPatient": "No, non-paying patient (exempt)",
|
|
11
|
+
"patientCategory": "Payment Category",
|
|
12
|
+
"payingPatient": "Yes, paying patient",
|
|
13
|
+
"paymentMethodsTitle": "Payment method",
|
|
14
|
+
"policyNumber": "Policy number",
|
|
15
|
+
"selectExemptionCategory": "Select exemption category",
|
|
16
|
+
"selectInsuranceScheme": "Select insurance scheme",
|
|
17
|
+
"selectPaymentMethod": "Select payment method"
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cash": "Cash",
|
|
3
|
+
"enterPolicyNumber": "Enter policy number",
|
|
4
|
+
"exemptionCategory": "Exemption category",
|
|
5
|
+
"insurance": "Insurance",
|
|
6
|
+
"insuranceScheme": "Insurance scheme",
|
|
7
|
+
"isPatientExemptedLegend": "Will the patient pay for services?",
|
|
8
|
+
"loading": "Loading data...",
|
|
9
|
+
"loadingDescription": "Loading",
|
|
10
|
+
"nonPayingPatient": "No, non-paying patient (exempt)",
|
|
11
|
+
"patientCategory": "Payment Category",
|
|
12
|
+
"payingPatient": "Yes, paying patient",
|
|
13
|
+
"paymentMethodsTitle": "Payment method",
|
|
14
|
+
"policyNumber": "Policy number",
|
|
15
|
+
"selectExemptionCategory": "Select exemption category",
|
|
16
|
+
"selectInsuranceScheme": "Select insurance scheme",
|
|
17
|
+
"selectPaymentMethod": "Select payment method"
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cash": "Cash",
|
|
3
|
+
"enterPolicyNumber": "Enter policy number",
|
|
4
|
+
"exemptionCategory": "Exemption category",
|
|
5
|
+
"insurance": "Insurance",
|
|
6
|
+
"insuranceScheme": "Insurance scheme",
|
|
7
|
+
"isPatientExemptedLegend": "Will the patient pay for services?",
|
|
8
|
+
"loading": "Loading data...",
|
|
9
|
+
"loadingDescription": "Loading",
|
|
10
|
+
"nonPayingPatient": "No, non-paying patient (exempt)",
|
|
11
|
+
"patientCategory": "Payment Category",
|
|
12
|
+
"payingPatient": "Yes, paying patient",
|
|
13
|
+
"paymentMethodsTitle": "Payment method",
|
|
14
|
+
"policyNumber": "Policy number",
|
|
15
|
+
"selectExemptionCategory": "Select exemption category",
|
|
16
|
+
"selectInsuranceScheme": "Select insurance scheme",
|
|
17
|
+
"selectPaymentMethod": "Select payment method"
|
|
18
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
{
|
|
2
|
+
"cash": "Cash",
|
|
3
|
+
"enterPolicyNumber": "Enter policy number",
|
|
4
|
+
"exemptionCategory": "Exemption category",
|
|
5
|
+
"insurance": "Insurance",
|
|
6
|
+
"insuranceScheme": "Insurance scheme",
|
|
7
|
+
"isPatientExemptedLegend": "Will the patient pay for services?",
|
|
8
|
+
"loading": "Loading data...",
|
|
9
|
+
"loadingDescription": "Loading",
|
|
10
|
+
"nonPayingPatient": "No, non-paying patient (exempt)",
|
|
11
|
+
"patientCategory": "Payment Category",
|
|
12
|
+
"payingPatient": "Yes, paying patient",
|
|
13
|
+
"paymentMethodsTitle": "Payment method",
|
|
14
|
+
"policyNumber": "Policy number",
|
|
15
|
+
"selectExemptionCategory": "Select exemption category",
|
|
16
|
+
"selectInsuranceScheme": "Select insurance scheme",
|
|
17
|
+
"selectPaymentMethod": "Select payment method"
|
|
18
|
+
}
|