@kenyaemr/esm-billing-app 5.4.2-pre.2262 → 5.4.2-pre.2265
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/.turbo/turbo-build.log +3 -3
- package/dist/632.js +1 -1
- package/dist/632.js.map +1 -1
- package/dist/kenyaemr-esm-billing-app.js.buildmanifest.json +6 -6
- package/dist/main.js +3 -3
- package/dist/main.js.map +1 -1
- package/dist/routes.json +1 -1
- package/package.json +1 -1
- package/src/payment-modes/payment-mode-dashboard.compont.tsx +2 -2
- package/src/payment-modes/payment-mode.workspace.test.tsx +57 -1
- package/src/payment-modes/payment-mode.workspace.tsx +9 -3
- package/src/payment-modes/usePaymentModeFormSchema.tsx +1 -1
package/dist/routes.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"kenyaemr":"^19.0.0"},"pages":[{"component":"billableServicesHome","route":"billable-services"},{"component":"requirePaymentModal","routeRegex":"^patient/.+/chart","online":true,"offline":false}],"extensions":[{"component":"benefitsPackageDashboardLink","name":"benefits-package-dashboard-link","slot":"patient-chart-dashboard-slot","meta":{"name":"benefits-package","slot":"patient-chart-benefits-dashboard-slot","path":"insurance-benefits","columns":1,"columnSpan":1},"featureFlag":"healthInformationExchange"},{"component":"benefitsPackage","name":"benefits-package","slot":"patient-chart-benefits-dashboard-slot"},{"component":"root","name":"billing-dashboard-root","slot":"billing-dashboard-slot"},{"component":"benefitsEligibilyRequestForm","name":"benefits-eligibility-request-form"},{"component":"benefitsPreAuthForm","name":"benefits-pre-auth-form"},{"name":"billing-patient-summary","component":"billingPatientSummary","slot":"patient-chart-billing-dashboard-slot","order":10,"meta":{"columnSpan":4}},{"name":"billing-summary-dashboard-link","component":"billingSummaryDashboardLink","slot":"patient-chart-dashboard-slot","order":11,"meta":{"columns":1,"columnSpan":1,"slot":"patient-chart-billing-dashboard-slot","path":"Billing","layoutMode":"anchored"}},{"name":"billing-check-in-form","slot":"extra-visit-attribute-slot","component":"billingCheckInForm"},{"name":"require-billing-modal","component":"requirePaymentModal"},{"name":"patient-banner-billing-tags","component":"visitAttributeTags","slot":"patient-banner-tags-slot","order":2},{"name":"initiate-payment-modal","component":"initiatePaymentDialog"},{"name":"delete-billableservice-modal","component":"deleteBillableServiceModal"},{"name":"refund-bill-modal","component":"refundBillModal"},{"name":"delete-bill-modal","component":"deleteBillModal"},{"name":"lab-order-billable-item","component":"labOrder","slot":"top-of-lab-order-form-slot"},{"name":"procedure-order-billable-item","component":"procedureOrder","slot":"top-of-procedure-order-form-slot"},{"name":"imaging-order-billable-item","component":"imagingOrder","slot":"top-of-imaging-order-form-slot"},{"name":"price-info-order","component":"priceInfoOrder"},{"name":"drug-order-billable-item","component":"drugOrder","slot":"medication-info-slot"},{"name":"order-action-button","component":"orderActionButton","slots":["prescription-action-button-slot","imaging-orders-action","procedure-orders-action","tests-ordered-actions-slot"],"order":0},{"component":"billingOverviewLink","name":"billing-overview-link","order":0,"slot":"billing-dashboard-group-nav-slot"},{"component":"billDepositDashboardLink","name":"bill-deposit-dashboard-link","slot":"billing-dashboard-group-nav-slot"},{"component":"paymentHistoryLink","name":"payment-history-link","slot":"billing-dashboard-group-nav-slot"},{"component":"paymentPointsLink","name":"payment-points-link","slot":"billing-dashboard-group-nav-slot"},{"component":"paymentModesLink","name":"payment-modes-link","slot":"billing-dashboard-group-nav-slot"},{"component":"billManagerLink","name":"bill-manager-link","slot":"billing-dashboard-group-nav-slot"},{"component":"chargeableItemsLink","name":"chargeable-items-link","slot":"billing-dashboard-group-nav-slot"},{"component":"billableExemptionsLink","name":"billable-exemptions-link","slot":"billing-dashboard-group-nav-slot"},{"component":"claimsManagementOverviewDashboardLink","name":"claims-management-overview-link","order":0,"slot":"claims-management-dashboard-link-slot"},{"component":"preAuthRequestsDashboardLink","name":"preauthrequest-overview-link","slot":"claims-management-dashboard-link-slot"},{"component":"claimsOverview","name":"claims-overview-dashboard-link","slot":"claims-management-overview-slot"},{"component":"waiveBillActionButton","name":"waive-bill-action-button","slot":"bill-actions-slot"},{"component":"deleteBillActionButton","name":"delete-bill-action-button","slot":"bill-actions-slot"},{"component":"refundLineItem","name":"refund-line-item","slot":"bill-actions-overflow-menu-slot"},{"name":"edit-line-item","component":"editLineItem","slot":"bill-actions-overflow-menu-slot"},{"name":"cancel-line-item","component":"cancelLineItem","slot":"bill-actions-overflow-menu-slot"}],"workspaces":[{"name":"create-bill-workspace","component":"createBillWorkspace","title":"Create Bill Workspace","type":"other-form"},{"name":"waive-bill-form","component":"waiveBillForm","title":"Waive Bill Form","type":"other-form"},{"name":"edit-bill-form","component":"editBillForm","title":"Edit Bill Form","type":"other-form"},{"name":"billable-service-form","component":"addServiceForm","title":"Create Charge Item Form","type":"other-form"},{"name":"commodity-form","component":"addCommodityForm","title":"Create Charge Item Form","type":"other-form"},{"name":"billing-form","component":"billingForm","title":"Billing Form","type":"other-form","width":"extra-wide"},{"name":"payment-mode-workspace","component":"paymentModeWorkspace","title":"Payment Mode Workspace","type":"other-form"},{"name":"cancel-bill-workspace","component":"cancelBillWorkspace","title":"Cancel Bill Workspace","type":"other-form"},{"name":"add-deposit-workspace","component":"addDepositWorkspace","title":"Add Deposit","type":"other-form"},{"name":"deposit-transaction-workspace","component":"depositTransactionWorkspace","title":"Deposit Transaction","type":"other-form"}],"modals":[{"name":"create-payment-point","component":"createPaymentPoint"},{"name":"clock-out-modal","component":"clockOut"},{"name":"bulk-import-billable-services-modal","component":"bulkImportBillableServicesModal"},{"name":"delete-payment-mode-modal","component":"deletePaymentModeModal"},{"name":"manage-claim-request-modal","component":"manageClaimRequestModal"},{"name":"clock-in-modal","component":"clockIn"},{"name":"create-bill-item-modal","component":"createBillItemModal"},{"name":"delete-deposit-modal","component":"deleteDepositModal"},{"name":"reverse-transaction-modal","component":"reverseTransactionModal"},{"name":"print-preview-modal","component":"printPreviewModal"}],"version":"5.4.2-pre.
|
|
1
|
+
{"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"kenyaemr":"^19.0.0"},"pages":[{"component":"billableServicesHome","route":"billable-services"},{"component":"requirePaymentModal","routeRegex":"^patient/.+/chart","online":true,"offline":false}],"extensions":[{"component":"benefitsPackageDashboardLink","name":"benefits-package-dashboard-link","slot":"patient-chart-dashboard-slot","meta":{"name":"benefits-package","slot":"patient-chart-benefits-dashboard-slot","path":"insurance-benefits","columns":1,"columnSpan":1},"featureFlag":"healthInformationExchange"},{"component":"benefitsPackage","name":"benefits-package","slot":"patient-chart-benefits-dashboard-slot"},{"component":"root","name":"billing-dashboard-root","slot":"billing-dashboard-slot"},{"component":"benefitsEligibilyRequestForm","name":"benefits-eligibility-request-form"},{"component":"benefitsPreAuthForm","name":"benefits-pre-auth-form"},{"name":"billing-patient-summary","component":"billingPatientSummary","slot":"patient-chart-billing-dashboard-slot","order":10,"meta":{"columnSpan":4}},{"name":"billing-summary-dashboard-link","component":"billingSummaryDashboardLink","slot":"patient-chart-dashboard-slot","order":11,"meta":{"columns":1,"columnSpan":1,"slot":"patient-chart-billing-dashboard-slot","path":"Billing","layoutMode":"anchored"}},{"name":"billing-check-in-form","slot":"extra-visit-attribute-slot","component":"billingCheckInForm"},{"name":"require-billing-modal","component":"requirePaymentModal"},{"name":"patient-banner-billing-tags","component":"visitAttributeTags","slot":"patient-banner-tags-slot","order":2},{"name":"initiate-payment-modal","component":"initiatePaymentDialog"},{"name":"delete-billableservice-modal","component":"deleteBillableServiceModal"},{"name":"refund-bill-modal","component":"refundBillModal"},{"name":"delete-bill-modal","component":"deleteBillModal"},{"name":"lab-order-billable-item","component":"labOrder","slot":"top-of-lab-order-form-slot"},{"name":"procedure-order-billable-item","component":"procedureOrder","slot":"top-of-procedure-order-form-slot"},{"name":"imaging-order-billable-item","component":"imagingOrder","slot":"top-of-imaging-order-form-slot"},{"name":"price-info-order","component":"priceInfoOrder"},{"name":"drug-order-billable-item","component":"drugOrder","slot":"medication-info-slot"},{"name":"order-action-button","component":"orderActionButton","slots":["prescription-action-button-slot","imaging-orders-action","procedure-orders-action","tests-ordered-actions-slot"],"order":0},{"component":"billingOverviewLink","name":"billing-overview-link","order":0,"slot":"billing-dashboard-group-nav-slot"},{"component":"billDepositDashboardLink","name":"bill-deposit-dashboard-link","slot":"billing-dashboard-group-nav-slot"},{"component":"paymentHistoryLink","name":"payment-history-link","slot":"billing-dashboard-group-nav-slot"},{"component":"paymentPointsLink","name":"payment-points-link","slot":"billing-dashboard-group-nav-slot"},{"component":"paymentModesLink","name":"payment-modes-link","slot":"billing-dashboard-group-nav-slot"},{"component":"billManagerLink","name":"bill-manager-link","slot":"billing-dashboard-group-nav-slot"},{"component":"chargeableItemsLink","name":"chargeable-items-link","slot":"billing-dashboard-group-nav-slot"},{"component":"billableExemptionsLink","name":"billable-exemptions-link","slot":"billing-dashboard-group-nav-slot"},{"component":"claimsManagementOverviewDashboardLink","name":"claims-management-overview-link","order":0,"slot":"claims-management-dashboard-link-slot"},{"component":"preAuthRequestsDashboardLink","name":"preauthrequest-overview-link","slot":"claims-management-dashboard-link-slot"},{"component":"claimsOverview","name":"claims-overview-dashboard-link","slot":"claims-management-overview-slot"},{"component":"waiveBillActionButton","name":"waive-bill-action-button","slot":"bill-actions-slot"},{"component":"deleteBillActionButton","name":"delete-bill-action-button","slot":"bill-actions-slot"},{"component":"refundLineItem","name":"refund-line-item","slot":"bill-actions-overflow-menu-slot"},{"name":"edit-line-item","component":"editLineItem","slot":"bill-actions-overflow-menu-slot"},{"name":"cancel-line-item","component":"cancelLineItem","slot":"bill-actions-overflow-menu-slot"}],"workspaces":[{"name":"create-bill-workspace","component":"createBillWorkspace","title":"Create Bill Workspace","type":"other-form"},{"name":"waive-bill-form","component":"waiveBillForm","title":"Waive Bill Form","type":"other-form"},{"name":"edit-bill-form","component":"editBillForm","title":"Edit Bill Form","type":"other-form"},{"name":"billable-service-form","component":"addServiceForm","title":"Create Charge Item Form","type":"other-form"},{"name":"commodity-form","component":"addCommodityForm","title":"Create Charge Item Form","type":"other-form"},{"name":"billing-form","component":"billingForm","title":"Billing Form","type":"other-form","width":"extra-wide"},{"name":"payment-mode-workspace","component":"paymentModeWorkspace","title":"Payment Mode Workspace","type":"other-form"},{"name":"cancel-bill-workspace","component":"cancelBillWorkspace","title":"Cancel Bill Workspace","type":"other-form"},{"name":"add-deposit-workspace","component":"addDepositWorkspace","title":"Add Deposit","type":"other-form"},{"name":"deposit-transaction-workspace","component":"depositTransactionWorkspace","title":"Deposit Transaction","type":"other-form"}],"modals":[{"name":"create-payment-point","component":"createPaymentPoint"},{"name":"clock-out-modal","component":"clockOut"},{"name":"bulk-import-billable-services-modal","component":"bulkImportBillableServicesModal"},{"name":"delete-payment-mode-modal","component":"deletePaymentModeModal"},{"name":"manage-claim-request-modal","component":"manageClaimRequestModal"},{"name":"clock-in-modal","component":"clockIn"},{"name":"create-bill-item-modal","component":"createBillItemModal"},{"name":"delete-deposit-modal","component":"deleteDepositModal"},{"name":"reverse-transaction-modal","component":"reverseTransactionModal"},{"name":"print-preview-modal","component":"printPreviewModal"}],"version":"5.4.2-pre.2265"}
|
package/package.json
CHANGED
|
@@ -22,7 +22,7 @@ import {
|
|
|
22
22
|
} from '@carbon/react';
|
|
23
23
|
|
|
24
24
|
import styles from './payment-mode-dashboard.scss';
|
|
25
|
-
import { formatDate, launchWorkspace, showModal, useDebounce } from '@openmrs/esm-framework';
|
|
25
|
+
import { formatDate, launchWorkspace, showModal, useDebounce, useLayoutType } from '@openmrs/esm-framework';
|
|
26
26
|
import { PaymentMode } from '../types';
|
|
27
27
|
import startCase from 'lodash/startCase';
|
|
28
28
|
|
|
@@ -30,7 +30,7 @@ type PaymentModeDashboardProps = {};
|
|
|
30
30
|
|
|
31
31
|
const PaymentModeDashboard: React.FC<PaymentModeDashboardProps> = () => {
|
|
32
32
|
const { t } = useTranslation();
|
|
33
|
-
const size = 'md';
|
|
33
|
+
const size = useLayoutType() === 'tablet' ? 'md' : 'sm';
|
|
34
34
|
const { paymentModes = [], isLoading } = usePaymentModes(false);
|
|
35
35
|
const [searchTerm, setSearchTerm] = useState('');
|
|
36
36
|
|
|
@@ -99,7 +99,7 @@ describe('PaymentModeWorkspace', () => {
|
|
|
99
99
|
// Key in attribute type name, description, required and format
|
|
100
100
|
const attributeTypeNameInput = screen.getByRole('textbox', { name: /Attribute name/i });
|
|
101
101
|
const attributeTypeDescriptionInput = screen.getByRole('textbox', { name: /Attribute description/i });
|
|
102
|
-
const attributeRegExpInput = screen.getByRole('textbox', { name: /
|
|
102
|
+
const attributeRegExpInput = screen.getByRole('textbox', { name: /Regular expression/i });
|
|
103
103
|
const attributeRetiredToggle = screen.getByRole('switch', { name: /Attribute retired/i });
|
|
104
104
|
const attributeRequiredToggle = screen.getByRole('switch', { name: /Attribute required/i });
|
|
105
105
|
|
|
@@ -148,4 +148,60 @@ describe('PaymentModeWorkspace', () => {
|
|
|
148
148
|
'',
|
|
149
149
|
);
|
|
150
150
|
});
|
|
151
|
+
|
|
152
|
+
test('should submit payload with attributeTypes and uuid when in edit mode', async () => {
|
|
153
|
+
const initialPaymentMode = {
|
|
154
|
+
uuid: '123',
|
|
155
|
+
name: 'Test Name',
|
|
156
|
+
description: 'Test Description',
|
|
157
|
+
retired: false,
|
|
158
|
+
attributeTypes: [
|
|
159
|
+
{
|
|
160
|
+
name: 'Test Attribute Name',
|
|
161
|
+
uuid: '456',
|
|
162
|
+
format: 'java.lang.String',
|
|
163
|
+
regExp: null,
|
|
164
|
+
attributeOrder: 0,
|
|
165
|
+
foreignKey: null,
|
|
166
|
+
description: 'Test Attribute Description',
|
|
167
|
+
retired: false,
|
|
168
|
+
required: false,
|
|
169
|
+
},
|
|
170
|
+
],
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
const user = userEvent.setup();
|
|
174
|
+
render(<PaymentModeWorkspace {...testProps} initialPaymentMode={initialPaymentMode} />);
|
|
175
|
+
|
|
176
|
+
// make the attribute type required
|
|
177
|
+
const attributeRequiredToggle = screen.getByRole('switch', { name: /Attribute required/i });
|
|
178
|
+
await user.click(attributeRequiredToggle);
|
|
179
|
+
|
|
180
|
+
// click save and close
|
|
181
|
+
const saveAndCloseButton = screen.getByRole('button', { name: /Save & Close/i });
|
|
182
|
+
await user.click(saveAndCloseButton);
|
|
183
|
+
|
|
184
|
+
// should call createPaymentMode with attributeTypes and uuid
|
|
185
|
+
expect(mockCreatePaymentMode).toHaveBeenCalledWith(
|
|
186
|
+
{
|
|
187
|
+
description: 'Test Description',
|
|
188
|
+
name: 'Test Name',
|
|
189
|
+
attributeTypes: [
|
|
190
|
+
{
|
|
191
|
+
name: 'Test Attribute Name',
|
|
192
|
+
uuid: '456',
|
|
193
|
+
description: 'Test Attribute Description',
|
|
194
|
+
retired: false,
|
|
195
|
+
required: true,
|
|
196
|
+
format: 'java.lang.String',
|
|
197
|
+
regExp: null,
|
|
198
|
+
attributeOrder: 0,
|
|
199
|
+
foreignKey: null,
|
|
200
|
+
},
|
|
201
|
+
],
|
|
202
|
+
retired: false,
|
|
203
|
+
},
|
|
204
|
+
'123',
|
|
205
|
+
);
|
|
206
|
+
});
|
|
151
207
|
});
|
|
@@ -54,16 +54,22 @@ const PaymentModeWorkspace: React.FC<PaymentModeWorkspaceProps> = ({
|
|
|
54
54
|
});
|
|
55
55
|
|
|
56
56
|
const mappedAttributeTypes = (attributes) => {
|
|
57
|
-
|
|
57
|
+
const uuid = initialPaymentMode?.uuid
|
|
58
|
+
? initialPaymentMode.attributeTypes.find((a) => a.name === attributes.name)?.uuid
|
|
59
|
+
: null;
|
|
60
|
+
|
|
61
|
+
const attributeType = {
|
|
58
62
|
name: attributes.name,
|
|
59
63
|
description: attributes.description,
|
|
60
64
|
retired: attributes.retired,
|
|
61
65
|
attributeOrder: attributes?.attributeOrder ?? 0,
|
|
62
66
|
format: attributes?.format ?? '',
|
|
63
67
|
foreignKey: attributes?.foreignKey ?? null,
|
|
64
|
-
regExp: attributes?.regExp ??
|
|
68
|
+
regExp: attributes?.regExp ?? null,
|
|
65
69
|
required: attributes.required,
|
|
66
70
|
};
|
|
71
|
+
|
|
72
|
+
return uuid ? { ...attributeType, uuid } : attributeType;
|
|
67
73
|
};
|
|
68
74
|
|
|
69
75
|
const onSubmit = async (data: PaymentModeFormSchema) => {
|
|
@@ -192,7 +198,7 @@ const PaymentModeWorkspace: React.FC<PaymentModeWorkspaceProps> = ({
|
|
|
192
198
|
</Stack>
|
|
193
199
|
</div>
|
|
194
200
|
<ButtonSet className={classNames({ [styles.tablet]: isTablet, [styles.desktop]: !isTablet })}>
|
|
195
|
-
<Button style={{ maxWidth: '50%' }} kind="secondary" onClick={() => closeWorkspace}>
|
|
201
|
+
<Button style={{ maxWidth: '50%' }} kind="secondary" onClick={() => closeWorkspace()}>
|
|
196
202
|
{t('cancel', 'Cancel')}
|
|
197
203
|
</Button>
|
|
198
204
|
<Button
|
|
@@ -8,7 +8,7 @@ const usePaymentModeFormSchema = () => {
|
|
|
8
8
|
retired: z.boolean().default(false),
|
|
9
9
|
retiredReason: z.string().optional(),
|
|
10
10
|
format: z.string().optional(),
|
|
11
|
-
regExp: z.string().optional(),
|
|
11
|
+
regExp: z.union([z.string(), z.null()]).optional(),
|
|
12
12
|
required: z.boolean().default(false),
|
|
13
13
|
})
|
|
14
14
|
.refine(
|