diff --git a/.DS_Store b/.DS_Store
old mode 100644
new mode 100755
index 381f991b..a821b612
Binary files a/.DS_Store and b/.DS_Store differ
diff --git a/.editorconfig b/.editorconfig
old mode 100644
new mode 100755
diff --git a/.env b/.env
old mode 100644
new mode 100755
diff --git a/.eslintignore b/.eslintignore
old mode 100644
new mode 100755
diff --git a/.eslintrc b/.eslintrc
old mode 100644
new mode 100755
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
old mode 100644
new mode 100755
diff --git a/.github/workflows/bundle-size.yml b/.github/workflows/bundle-size.yml
old mode 100644
new mode 100755
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
old mode 100644
new mode 100755
diff --git a/.github/workflows/tx-pull.yml b/.github/workflows/tx-pull.yml
old mode 100644
new mode 100755
diff --git a/.github/workflows/tx-push.yml b/.github/workflows/tx-push.yml
old mode 100644
new mode 100755
diff --git a/.gitignore b/.gitignore
old mode 100644
new mode 100755
diff --git a/.husky/.gitignore b/.husky/.gitignore
old mode 100644
new mode 100755
diff --git a/.prettierignore b/.prettierignore
old mode 100644
new mode 100755
diff --git a/.tx/config b/.tx/config
old mode 100644
new mode 100755
diff --git a/.vscode/settings.json b/.vscode/settings.json
old mode 100644
new mode 100755
diff --git a/.yarnrc.yml b/.yarnrc.yml
old mode 100644
new mode 100755
diff --git a/LICENSE.md b/LICENSE.md
old mode 100644
new mode 100755
diff --git a/README.md b/README.md
old mode 100644
new mode 100755
diff --git a/__mocks__/active-visits.mock.ts b/__mocks__/active-visits.mock.ts
old mode 100644
new mode 100755
diff --git a/__mocks__/address.mock.ts b/__mocks__/address.mock.ts
old mode 100644
new mode 100755
diff --git a/__mocks__/appointments.mock.ts b/__mocks__/appointments.mock.ts
old mode 100644
new mode 100755
diff --git a/__mocks__/auto-generation-options.mock.ts b/__mocks__/auto-generation-options.mock.ts
old mode 100644
new mode 100755
diff --git a/__mocks__/identifier-types.mock.ts b/__mocks__/identifier-types.mock.ts
old mode 100644
new mode 100755
diff --git a/__mocks__/identifiers.mock.ts b/__mocks__/identifiers.mock.ts
old mode 100644
new mode 100755
diff --git a/__mocks__/index.ts b/__mocks__/index.ts
old mode 100644
new mode 100755
diff --git a/__mocks__/locations.mock.ts b/__mocks__/locations.mock.ts
old mode 100644
new mode 100755
diff --git a/__mocks__/metrics.mock.ts b/__mocks__/metrics.mock.ts
old mode 100644
new mode 100755
diff --git a/__mocks__/patient-registration.mock.ts b/__mocks__/patient-registration.mock.ts
old mode 100644
new mode 100755
diff --git a/__mocks__/patient-visits.mock.ts b/__mocks__/patient-visits.mock.ts
old mode 100644
new mode 100755
diff --git a/__mocks__/patient.mock.ts b/__mocks__/patient.mock.ts
old mode 100644
new mode 100755
diff --git a/__mocks__/search.mock.ts b/__mocks__/search.mock.ts
old mode 100644
new mode 100755
diff --git a/__mocks__/session.mock.ts b/__mocks__/session.mock.ts
old mode 100644
new mode 100755
diff --git a/__mocks__/visits.mock.ts b/__mocks__/visits.mock.ts
old mode 100644
new mode 100755
diff --git a/e2e/commands/cohort-operations.ts b/e2e/commands/cohort-operations.ts
old mode 100644
new mode 100755
diff --git a/e2e/commands/encounter-operations.ts b/e2e/commands/encounter-operations.ts
old mode 100644
new mode 100755
diff --git a/e2e/commands/index.ts b/e2e/commands/index.ts
old mode 100644
new mode 100755
diff --git a/e2e/commands/patient-operations.ts b/e2e/commands/patient-operations.ts
old mode 100644
new mode 100755
diff --git a/e2e/commands/provider-operations.ts b/e2e/commands/provider-operations.ts
old mode 100644
new mode 100755
diff --git a/e2e/commands/visit-operations.ts b/e2e/commands/visit-operations.ts
old mode 100644
new mode 100755
diff --git a/e2e/core/global-setup.ts b/e2e/core/global-setup.ts
old mode 100644
new mode 100755
diff --git a/e2e/core/index.ts b/e2e/core/index.ts
old mode 100644
new mode 100755
diff --git a/e2e/core/test.ts b/e2e/core/test.ts
old mode 100644
new mode 100755
diff --git a/e2e/fixtures/api.ts b/e2e/fixtures/api.ts
old mode 100644
new mode 100755
diff --git a/e2e/fixtures/index.ts b/e2e/fixtures/index.ts
old mode 100644
new mode 100755
diff --git a/e2e/pages/appointments-page.ts b/e2e/pages/appointments-page.ts
old mode 100644
new mode 100755
diff --git a/e2e/pages/home-page.ts b/e2e/pages/home-page.ts
old mode 100644
new mode 100755
diff --git a/e2e/pages/index.ts b/e2e/pages/index.ts
old mode 100644
new mode 100755
diff --git a/e2e/pages/patient-lists-page.ts b/e2e/pages/patient-lists-page.ts
old mode 100644
new mode 100755
diff --git a/e2e/pages/registration-and-edit-page.ts b/e2e/pages/registration-and-edit-page.ts
old mode 100644
new mode 100755
diff --git a/e2e/specs/active-visits.spec.ts b/e2e/specs/active-visits.spec.ts
old mode 100644
new mode 100755
diff --git a/e2e/specs/appointments.spec.ts b/e2e/specs/appointments.spec.ts
old mode 100644
new mode 100755
diff --git a/e2e/specs/edit-patient.spec.ts b/e2e/specs/edit-patient.spec.ts
old mode 100644
new mode 100755
diff --git a/e2e/specs/patient-list.spec.ts b/e2e/specs/patient-list.spec.ts
old mode 100644
new mode 100755
diff --git a/e2e/specs/patient-search.spec.ts b/e2e/specs/patient-search.spec.ts
old mode 100644
new mode 100755
diff --git a/e2e/specs/register-new-patient.spec.ts b/e2e/specs/register-new-patient.spec.ts
old mode 100644
new mode 100755
diff --git a/e2e/specs/return-to-patient-list.spec.ts b/e2e/specs/return-to-patient-list.spec.ts
old mode 100644
new mode 100755
diff --git a/e2e/support/bamboo/docker-compose.yml b/e2e/support/bamboo/docker-compose.yml
old mode 100644
new mode 100755
diff --git a/e2e/support/bamboo/e2e-test-runner.sh b/e2e/support/bamboo/e2e-test-runner.sh
old mode 100644
new mode 100755
diff --git a/e2e/support/bamboo/playwright.Dockerfile b/e2e/support/bamboo/playwright.Dockerfile
old mode 100644
new mode 100755
diff --git a/e2e/support/github/Dockerfile b/e2e/support/github/Dockerfile
old mode 100644
new mode 100755
diff --git a/e2e/support/github/docker-compose.yml b/e2e/support/github/docker-compose.yml
old mode 100644
new mode 100755
diff --git a/e2e/support/github/run-e2e-docker-env.sh b/e2e/support/github/run-e2e-docker-env.sh
old mode 100644
new mode 100755
diff --git a/example.env b/example.env
old mode 100644
new mode 100755
diff --git a/jest.config.js b/jest.config.js
old mode 100644
new mode 100755
diff --git a/package.json b/package.json
old mode 100644
new mode 100755
index 75fdcc74..e6f0b32e
--- a/package.json
+++ b/package.json
@@ -9,7 +9,7 @@
   "scripts": {
     "start": "openmrs develop --backend http://10.50.80.110:8084 --sources packages/esm-*-app  --api-url  /amrs --spa-path /amrs/spa/ --port 8040",
     "dev": "openmrs develop --backend http://10.50.80.110:8084 --sources packages/esm-report-app  --api-url  /amrs --spa-path /amrs/spa/ --port 8040",
-    "start:core": "openmrs develop --backend http://10.50.80.110:8084 --sources packages/esm-ampath-core-app --api-url  /amrs --spa-path /amrs/spa/ --port 8030",
+    "dev:core": "openmrs develop --backend http://10.50.80.110:8084 --sources packages/esm-ampath-core-app --api-url  /amrs --spa-path /amrs/spa/ --port 8030",
     "ci:publish": "yarn workspaces foreach --all --topological --exclude @ampath/esm-3.x-app npm publish --access public --tag latest",
     "ci:prepublish": "yarn workspaces foreach --all --topological --exclude @ampath/esm-3.x-app npm publish --access public --tag next",
     "release": "yarn workspaces foreach --all --topological version",
@@ -38,7 +38,7 @@
     "@babel/core": "^7.11.6",
     "@carbon/react": "~1.37.0",
     "@ohri/openmrs-esm-ohri-commons-lib": "next",
-    "@openmrs/esm-framework": "^5.6.1-pre.2075",
+    "@openmrs/esm-framework": "^5.7.1-pre.2076",
     "@openmrs/esm-patient-common-lib": "next",
     "@playwright/test": "1.40.1",
     "@swc/core": "^1.2.165",
@@ -75,7 +75,7 @@
     "jest-cli": "^29.7.0",
     "jest-environment-jsdom": "^29.7.0",
     "lint-staged": "^15.2.1",
-    "openmrs": "^5.6.1-pre.2075",
+    "openmrs": "^5.7.1-pre.2076",
     "prettier": "^3.1.1",
     "react": "^18.1.0",
     "react-dom": "^18.1.0",
diff --git a/packages/esm-billing-app/README.md b/packages/esm-billing-app/README.md
old mode 100644
new mode 100755
index 37fc4c24..00dc2c05
--- a/packages/esm-billing-app/README.md
+++ b/packages/esm-billing-app/README.md
@@ -1,3 +1,4 @@
+![Node.js CI](https://github.com/palladiumkenya/kenyaemr-esm-3.x/workflows/Node.js%20CI/badge.svg)
 
 # ESM Billing App
 
diff --git a/packages/esm-billing-app/__mocks__/visit.mock.ts b/packages/esm-billing-app/__mocks__/visit.mock.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/jest.config.js b/packages/esm-billing-app/jest.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/package.json b/packages/esm-billing-app/package.json
old mode 100644
new mode 100755
index 10535518..bb437e5c
--- a/packages/esm-billing-app/package.json
+++ b/packages/esm-billing-app/package.json
@@ -1,12 +1,12 @@
 {
   "name": "@ampath/esm-billing-app",
-  "version": "5.1.1",
-  "description": "Billing app for AMRS",
+  "version": "5.2.0",
+  "description": "Billing app for AMPATH",
   "browser": "dist/ampath-esm-billing-app.js",
   "main": "src/index.ts",
   "source": true,
   "license": "MPL-2.0",
-  "homepage": "https://github.com/AMPATH/ampath-esm-3.x#readme",
+  "homepage": "https://github.com/palladiumkenya/ampath-esm-core#readme",
   "scripts": {
     "start": "openmrs develop",
     "serve": "webpack serve --mode=development",
@@ -31,10 +31,10 @@
   },
   "repository": {
     "type": "git",
-    "url": "git+https://github.com/AMPATH/ampath-esm-3.x.git"
+    "url": "git+https://github.com/palladiumkenya/kenyaemr-esm-core#readme"
   },
   "bugs": {
-    "url": "git+https://github.com/AMPATH/ampath-esm-3.x.git"
+    "url": "https://github.com/palladiumkenya/kenyaemr-esm-core/issues"
   },
   "dependencies": {
     "@carbon/react": "^1.42.1",
diff --git a/packages/esm-billing-app/src/bill-history/bill-history.component.tsx b/packages/esm-billing-app/src/bill-history/bill-history.component.tsx
old mode 100644
new mode 100755
index e3c19915..811daa8e
--- a/packages/esm-billing-app/src/bill-history/bill-history.component.tsx
+++ b/packages/esm-billing-app/src/bill-history/bill-history.component.tsx
@@ -19,8 +19,14 @@ import {
   Button,
 } from '@carbon/react';
 import { Add } from '@carbon/react/icons';
-import { isDesktop, useLayoutType, usePagination, launchWorkspace } from '@openmrs/esm-framework';
-import { EmptyDataIllustration, ErrorState, usePaginationInfo, CardHeader } from '@openmrs/esm-patient-common-lib';
+import { isDesktop, useLayoutType, usePagination } from '@openmrs/esm-framework';
+import {
+  EmptyDataIllustration,
+  ErrorState,
+  usePaginationInfo,
+  CardHeader,
+  useLaunchWorkspaceRequiringVisit,
+} from '@openmrs/esm-patient-common-lib';
 import { useBills } from '../billing.resource';
 import InvoiceTable from '../invoice/invoice-table.component';
 import styles from './bill-history.scss';
@@ -32,12 +38,17 @@ interface BillHistoryProps {
 const BillHistory: React.FC<BillHistoryProps> = ({ patientUuid }) => {
   const { t } = useTranslation();
   const { bills, isLoading, error } = useBills(patientUuid);
+  const launchPatientWorkspace = useLaunchWorkspaceRequiringVisit('billing-form');
   const layout = useLayoutType();
   const [pageSize, setPageSize] = React.useState(10);
   const responsiveSize = isDesktop(layout) ? 'sm' : 'lg';
   const { paginated, goTo, results, currentPage } = usePagination(bills, pageSize);
   const { pageSizes } = usePaginationInfo(pageSize, bills?.length, currentPage, results?.length);
 
+  const handleLaunchBillForm = () => {
+    launchPatientWorkspace({ workspaceTitle: t('billingForm', 'Billing Form') });
+  };
+
   const headerData = [
     {
       header: t('visitTime', 'Visit time'),
@@ -58,7 +69,7 @@ const BillHistory: React.FC<BillHistoryProps> = ({ patientUuid }) => {
   ];
 
   const setBilledItems = (bill) =>
-    bill.lineItems.reduce(
+    bill.lineItems?.reduce(
       (acc, item) => acc + (acc ? ' & ' : '') + (item.billableService?.split(':')[1] || item.item?.split(':')[1] || ''),
       '',
     );
@@ -102,7 +113,7 @@ const BillHistory: React.FC<BillHistoryProps> = ({ patientUuid }) => {
               <EmptyDataIllustration />
             </div>
             <p className={styles.content}>There are no bills to display.</p>
-            <Button onClick={() => launchWorkspace('billing-form', { workspaceTitle: 'Billing Form' })} kind="ghost">
+            <Button onClick={handleLaunchBillForm} kind="ghost">
               {t('launchBillForm', 'Launch bill form')}
             </Button>
           </Tile>
@@ -114,10 +125,7 @@ const BillHistory: React.FC<BillHistoryProps> = ({ patientUuid }) => {
   return (
     <div>
       <CardHeader title={t('patientBilling', 'Patient billing')}>
-        <Button
-          renderIcon={Add}
-          onClick={() => launchWorkspace('billing-form', { workspaceTitle: 'Billing Form' })}
-          kind="ghost">
+        <Button renderIcon={Add} onClick={handleLaunchBillForm} kind="ghost">
           {t('addBill', 'Add bill item(s)')}
         </Button>
       </CardHeader>
diff --git a/packages/esm-billing-app/src/bill-history/bill-history.scss b/packages/esm-billing-app/src/bill-history/bill-history.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billable-services-admin-card-link.component.tsx b/packages/esm-billing-app/src/billable-services-admin-card-link.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billable-services/bill-waiver/bill-selection.component.tsx b/packages/esm-billing-app/src/billable-services/bill-waiver/bill-selection.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billable-services/bill-waiver/bill-waiver-form.component.tsx b/packages/esm-billing-app/src/billable-services/bill-waiver/bill-waiver-form.component.tsx
old mode 100644
new mode 100755
index 0ca92071..5c0dd522
--- a/packages/esm-billing-app/src/billable-services/bill-waiver/bill-waiver-form.component.tsx
+++ b/packages/esm-billing-app/src/billable-services/bill-waiver/bill-waiver-form.component.tsx
@@ -4,7 +4,7 @@ import { TaskAdd } from '@carbon/react/icons';
 import { useTranslation } from 'react-i18next';
 import styles from './bill-waiver-form.scss';
 import { type LineItem, type MappedBill } from '../../types';
-import { createBillWaiverPayload } from './utils';
+import { createBillWaiverPayload, extractErrorMessagesFromResponse } from '../../utils';
 import { convertToCurrency, extractString } from '../../helpers';
 import { processBillPayment, usePaymentModes } from '../../billing.resource';
 import { showSnackbar } from '@openmrs/esm-framework';
@@ -48,7 +48,7 @@ const BillWaiverForm: React.FC<BillWaiverFormProps> = ({ bill, lineItems, setPat
         showSnackbar({
           title: t('billWaiver', 'Bill waiver'),
           subtitle: t('billWaiverError', 'Bill waiver failed {{error}}', {
-            error: error?.responseBody?.error?.message ?? error.message,
+            error: extractErrorMessagesFromResponse(error?.responseBody),
           }),
           kind: 'error',
           timeoutInMs: 3500,
diff --git a/packages/esm-billing-app/src/billable-services/bill-waiver/bill-waiver-form.scss b/packages/esm-billing-app/src/billable-services/bill-waiver/bill-waiver-form.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billable-services/bill-waiver/bill-waiver.component.tsx b/packages/esm-billing-app/src/billable-services/bill-waiver/bill-waiver.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billable-services/bill-waiver/bill-waiver.scss b/packages/esm-billing-app/src/billable-services/bill-waiver/bill-waiver.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billable-services/bill-waiver/patient-bills.component.tsx b/packages/esm-billing-app/src/billable-services/bill-waiver/patient-bills.component.tsx
old mode 100644
new mode 100755
index b459e1e1..93070d0e
--- a/packages/esm-billing-app/src/billable-services/bill-waiver/patient-bills.component.tsx
+++ b/packages/esm-billing-app/src/billable-services/bill-waiver/patient-bills.component.tsx
@@ -1,5 +1,4 @@
 import React from 'react';
-import { useBills } from '../../billing.resource';
 import {
   Layer,
   DataTable,
@@ -57,7 +56,7 @@ const PatientBills: React.FC<PatientBillsProps> = ({ patientUuid, bills, setPati
               <div className={styles.illo}>
                 <EmptyDataIllustration />
               </div>
-              <p className={styles.content}>{t('noBilltoDisplay', 'There are no bills to display for this patient')}</p>
+              <p className={styles.content}>{t('noBillDisplay', 'There are no bills to display for this patient')}</p>
             </Tile>
           </Layer>
         </div>
diff --git a/packages/esm-billing-app/src/billable-services/bill-waiver/utils.ts b/packages/esm-billing-app/src/billable-services/bill-waiver/utils.ts
deleted file mode 100644
index f850b352..00000000
--- a/packages/esm-billing-app/src/billable-services/bill-waiver/utils.ts
+++ /dev/null
@@ -1,38 +0,0 @@
-import { type OpenmrsResource } from '@openmrs/esm-framework';
-import { type LineItem, type MappedBill } from '../../types';
-
-export const createBillWaiverPayload = (
-  bill: MappedBill,
-  amountWaived: number,
-  totalAmount: number,
-  lineItems: Array<LineItem>,
-  paymentModes: Array<OpenmrsResource>,
-) => {
-  const { cashier } = bill;
-
-  const billPayment = {
-    amount: parseFloat(totalAmount.toFixed(2)),
-    amountTendered: parseFloat(Number(amountWaived).toFixed(2)),
-    attributes: [],
-    instanceType: paymentModes?.find((mode) => mode.name.toLowerCase().includes('waiver'))?.uuid,
-  };
-
-  const processedLineItems = lineItems.map((lineItem) => ({
-    ...lineItem,
-    billableService: processBillItem(lineItem),
-    item: processBillItem(lineItem),
-    paymentStatus: 'PAID',
-  }));
-
-  const processedPayment = {
-    cashPoint: bill.cashPointUuid,
-    cashier: cashier.uuid,
-    lineItems: processedLineItems,
-    payments: [...bill.payments, billPayment],
-    patient: bill.patientUuid,
-  };
-
-  return processedPayment;
-};
-
-const processBillItem = (item) => (item.item || item.billableService)?.split(':')[0];
diff --git a/packages/esm-billing-app/src/billable-services/billable-service.resource.tsx b/packages/esm-billing-app/src/billable-services/billable-service.resource.tsx
old mode 100644
new mode 100755
index d0296721..c19a27fd
--- a/packages/esm-billing-app/src/billable-services/billable-service.resource.tsx
+++ b/packages/esm-billing-app/src/billable-services/billable-service.resource.tsx
@@ -6,6 +6,10 @@ type ResponseObject = {
   results: Array<OpenmrsResource>;
 };
 
+type ServiceTypesResponse = {
+  setMembers: { uuid: string; display: string }[];
+};
+
 export const useBillableServices = () => {
   const url = `/ws/rest/v1/cashier/billableService?v=custom:(uuid,name,shortName,serviceStatus,serviceType:(display),servicePrices:(uuid,name,price))`;
   const { data, isLoading, isValidating, error, mutate } = useSWR<{ data: ResponseObject }>(url, openmrsFetch, {});
@@ -13,8 +17,8 @@ export const useBillableServices = () => {
 };
 
 export function useServiceTypes() {
-  const url = `/ws/rest/v1/concept/d7bd4cc0-90b1-4f22-90f2-ab7fde936727?v=custom:(setMembers:(uuid,display))`;
-  const { data, error, isLoading } = useSWR<{ data: any }>(url, openmrsFetch, {});
+  const url = `/ws/rest/v1/concept/d2ece9e9-3907-440d-b5c3-5d3b148594f5?v=custom:(setMembers:(uuid,display))`;
+  const { data, error, isLoading } = useSWR<{ data: ServiceTypesResponse }>(url, openmrsFetch, {});
   return { serviceTypes: data?.data.setMembers ?? [], error, isLoading };
 }
 
diff --git a/packages/esm-billing-app/src/billable-services/billable-services-home.component.tsx b/packages/esm-billing-app/src/billable-services/billable-services-home.component.tsx
old mode 100644
new mode 100755
index af50fe2a..ee6c8856
--- a/packages/esm-billing-app/src/billable-services/billable-services-home.component.tsx
+++ b/packages/esm-billing-app/src/billable-services/billable-services-home.component.tsx
@@ -9,6 +9,8 @@ import BillingHeader from '../billing-header/billing-header.component';
 import { Wallet, Money } from '@carbon/react/icons';
 import { UserHasAccess, navigate } from '@openmrs/esm-framework';
 import BillWaiver from './bill-waiver/bill-waiver.component';
+import BillingTariffs from './billing-tariffs/billing-tariffs.component';
+import AddTariffsService from './billing-tariffs/add-billings-tariffs-service.component';
 const basePath = `${window.spaBase}/billable-services`;
 const BillableServiceHome: React.FC = () => {
   const { t } = useTranslation();
@@ -28,7 +30,12 @@ const BillableServiceHome: React.FC = () => {
               </SideNavLink>
               <UserHasAccess privilege="coreapps.systemAdministration">
                 <SideNavLink onClick={() => handleNavigation('waive-bill')} renderIcon={Money}>
-                  {t('billWaiver', 'Bill waiver')}
+                  {t('billWaiver', 'Bill Waiver')}
+                </SideNavLink>
+              </UserHasAccess>
+              <UserHasAccess privilege="coreapps.systemAdministration">
+                <SideNavLink onClick={() => handleNavigation('bill-tariffs')} renderIcon={Money}>
+                  {t('billTariffs', 'Insurance Tariffs')}
                 </SideNavLink>
               </UserHasAccess>
             </SideNavItems>
@@ -40,6 +47,8 @@ const BillableServiceHome: React.FC = () => {
             <Route path="/" element={<BillableServicesDashboard />} />
             <Route path="/add-service" element={<AddBillableService />} />
             <Route path="/waive-bill" element={<BillWaiver />} />
+            <Route path="/bill-tariffs" element={<BillingTariffs />} />
+            <Route path="/add-tariffs" element={<AddTariffsService />} />
           </Routes>
         </section>
       </main>
diff --git a/packages/esm-billing-app/src/billable-services/billable-services.component.tsx b/packages/esm-billing-app/src/billable-services/billable-services.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billable-services/billable-services.scss b/packages/esm-billing-app/src/billable-services/billable-services.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billable-services/billiable-item/drug-order.component.tsx b/packages/esm-billing-app/src/billable-services/billiable-item/drug-order/drug-order.component.tsx
old mode 100644
new mode 100755
similarity index 65%
rename from packages/esm-billing-app/src/billable-services/billiable-item/drug-order.component.tsx
rename to packages/esm-billing-app/src/billable-services/billiable-item/drug-order/drug-order.component.tsx
index c4f2160a..66cd0c63
--- a/packages/esm-billing-app/src/billable-services/billiable-item/drug-order.component.tsx
+++ b/packages/esm-billing-app/src/billable-services/billiable-item/drug-order/drug-order.component.tsx
@@ -1,10 +1,10 @@
 import React from 'react';
 import { type Drug } from '@openmrs/esm-patient-common-lib';
-import { type DosingUnit, type MedicationFrequency, type MedicationRoute, type QuantityUnit } from '../../types';
-import { useBillableItem, useSockItemInventory } from './useBilliableItem';
+import { type DosingUnit, type MedicationFrequency, type MedicationRoute, type QuantityUnit } from '../../../types';
+import { useBillableItem, useSockItemInventory } from '../useBillableItem';
 import { useTranslation } from 'react-i18next';
 import styles from './drug-order.scss';
-import { convertToCurrency } from '../../helpers';
+import { convertToCurrency } from '../../../helpers';
 
 type DrugOrderProps = {
   order: {
@@ -25,21 +25,29 @@ const DrugOrder: React.FC<DrugOrderProps> = ({ order }) => {
   const { t } = useTranslation();
   const { stockItem, isLoading: isLoadingInventory } = useSockItemInventory(order?.drug?.uuid);
   const { billableItem, isLoading } = useBillableItem(order?.drug.concept.uuid);
-
   if (isLoading || isLoadingInventory) {
     return null;
   }
 
   return (
     <div className={styles.drugOrderContainer}>
-      {stockItem && (
-        <div className={styles.itemContainer}>
-          <span className={styles.bold}>
-            {t('inStock', '{{quantityUoM}}(s) In stock ', { quantityUoM: stockItem?.quantityUoM })}
-          </span>
-          <span>{Math.round(stockItem?.quantity)}</span>
-        </div>
+      {stockItem && stockItem.length > 0 ? (
+        <>
+          <div className={styles.bold}>{'In Stock'}</div>
+          {stockItem.map((item, index) => (
+            <div key={index} className={styles.itemContainer}>
+              <span>{item.partyName}</span>
+              <span>
+                {' '}
+                {Math.round(item.quantity)} {item.quantityUoM}(s){' '}
+              </span>
+            </div>
+          ))}
+        </>
+      ) : (
+        <div className={styles.red}>{'Drug Is Not Available  / Out of Stock'}</div>
       )}
+
       <div>
         {billableItem &&
           billableItem?.servicePrices.map((item) => (
diff --git a/packages/esm-billing-app/src/billable-services/billiable-item/drug-order.scss b/packages/esm-billing-app/src/billable-services/billiable-item/drug-order/drug-order.scss
old mode 100644
new mode 100755
similarity index 89%
rename from packages/esm-billing-app/src/billable-services/billiable-item/drug-order.scss
rename to packages/esm-billing-app/src/billable-services/billiable-item/drug-order/drug-order.scss
index f40a9fd7..d969ad7e
--- a/packages/esm-billing-app/src/billable-services/billiable-item/drug-order.scss
+++ b/packages/esm-billing-app/src/billable-services/billiable-item/drug-order/drug-order.scss
@@ -24,3 +24,8 @@
   grid-template-columns: 1fr 1fr;
   padding-left: spacing.$spacing-03;
 }
+
+.red {
+  color: red;
+  font-weight: normal;
+}
diff --git a/packages/esm-billing-app/src/billable-services/billiable-item/lab-order.component.tsx b/packages/esm-billing-app/src/billable-services/billiable-item/lab-order.component.tsx
deleted file mode 100644
index 58a93b5f..00000000
--- a/packages/esm-billing-app/src/billable-services/billiable-item/lab-order.component.tsx
+++ /dev/null
@@ -1,34 +0,0 @@
-import React from 'react';
-import { convertToCurrency } from '../../helpers';
-import { useBillableItem } from './useBilliableItem';
-
-type LabOrderProps = {
-  order: {
-    testType?: {
-      label: string;
-      conceptUuid: string;
-    };
-  };
-};
-
-const LabOrder: React.FC<LabOrderProps> = ({ order }) => {
-  // TODO: Implement logic to display whether the lab order service is available to ensure clinicians can order the service
-
-  const { billableItem, error, isLoading } = useBillableItem(order?.testType?.conceptUuid);
-
-  const billItems = billableItem?.servicePrices
-    .map((servicePrice) => `${servicePrice?.paymentMode?.name} - ${convertToCurrency(servicePrice?.price)}`)
-    .join(' ');
-
-  if (isLoading) {
-    return null;
-  }
-
-  if (error) {
-    return null;
-  }
-
-  return <p>{billItems}</p>;
-};
-
-export default LabOrder;
diff --git a/packages/esm-billing-app/src/billable-services/billiable-item/test-order/imaging-order.component.tsx b/packages/esm-billing-app/src/billable-services/billiable-item/test-order/imaging-order.component.tsx
new file mode 100755
index 00000000..1cb55343
--- /dev/null
+++ b/packages/esm-billing-app/src/billable-services/billiable-item/test-order/imaging-order.component.tsx
@@ -0,0 +1,33 @@
+import React from 'react';
+import { useBillableItem } from '../useBillableItem';
+import { useTranslation } from 'react-i18next';
+import { InlineLoading } from '@carbon/react';
+import PriceInfoOrder from './price-info-order.componet';
+
+type ImagingOrderProps = {
+  order: {
+    testType?: {
+      label: string;
+      conceptUuid: string;
+    };
+  };
+};
+
+const ImagingOrder: React.FC<ImagingOrderProps> = ({ order }) => {
+  const { t } = useTranslation();
+  const { billableItem, isLoading, error } = useBillableItem(order?.testType?.conceptUuid);
+
+  if (isLoading) {
+    return (
+      <InlineLoading
+        status="active"
+        iconDescription={t('loading', 'Loading')}
+        description={t('loadingData', 'Loading data...')}
+      />
+    );
+  }
+
+  return <PriceInfoOrder billableItem={billableItem} error={error} />;
+};
+
+export default ImagingOrder;
diff --git a/packages/esm-billing-app/src/billable-services/billiable-item/test-order/lab-order.component.tsx b/packages/esm-billing-app/src/billable-services/billiable-item/test-order/lab-order.component.tsx
new file mode 100755
index 00000000..4a0003b2
--- /dev/null
+++ b/packages/esm-billing-app/src/billable-services/billiable-item/test-order/lab-order.component.tsx
@@ -0,0 +1,33 @@
+import React from 'react';
+import { useBillableItem } from '../useBillableItem';
+import { useTranslation } from 'react-i18next';
+import { InlineLoading } from '@carbon/react';
+import PriceInfoOrder from './price-info-order.componet';
+
+type LabOrderProps = {
+  order: {
+    testType?: {
+      label: string;
+      conceptUuid: string;
+    };
+  };
+};
+
+const LabOrder: React.FC<LabOrderProps> = ({ order }) => {
+  const { t } = useTranslation();
+  const { billableItem, isLoading, error } = useBillableItem(order?.testType?.conceptUuid);
+
+  if (isLoading) {
+    return (
+      <InlineLoading
+        status="active"
+        iconDescription={t('loading', 'Loading')}
+        description={t('loadingData', 'Loading data...')}
+      />
+    );
+  }
+
+  return <PriceInfoOrder billableItem={billableItem} error={error} />;
+};
+
+export default LabOrder;
diff --git a/packages/esm-billing-app/src/billable-services/billiable-item/test-order/price-info-order.componet.tsx b/packages/esm-billing-app/src/billable-services/billiable-item/test-order/price-info-order.componet.tsx
new file mode 100755
index 00000000..658cc991
--- /dev/null
+++ b/packages/esm-billing-app/src/billable-services/billiable-item/test-order/price-info-order.componet.tsx
@@ -0,0 +1,62 @@
+import React from 'react';
+import { convertToCurrency } from '../../../helpers';
+import { useTranslation } from 'react-i18next';
+import styles from './price-info-order.scss';
+import {
+  StructuredListWrapper,
+  StructuredListHead,
+  StructuredListRow,
+  StructuredListCell,
+  StructuredListBody,
+  Tile,
+  InlineNotification,
+} from '@carbon/react';
+
+type PriceInfoOrderProps = {
+  billableItem: any;
+  error?: boolean;
+};
+
+const PriceInfoOrder: React.FC<PriceInfoOrderProps> = ({ billableItem, error }) => {
+  const { t } = useTranslation();
+
+  if (error || !billableItem) {
+    return (
+      <InlineNotification
+        kind="info"
+        title={t('noprice', 'No price found')}
+        subtitle={t('noInfo', 'Please contact the cashier')}
+        lowContrast
+      />
+    );
+  }
+
+  return (
+    <Tile id="" className={styles.prices}>
+      <div className={styles.listContainer}>
+        <StructuredListWrapper isCondensed>
+          <StructuredListHead>
+            <StructuredListRow head>
+              <StructuredListCell head className={styles.cell}>
+                {t('paymentMethods', 'Payment methods')}
+              </StructuredListCell>
+              <StructuredListCell head className={styles.cell}>
+                {t('prices', 'Prices(Ksh)')}
+              </StructuredListCell>
+            </StructuredListRow>
+          </StructuredListHead>
+          <StructuredListBody>
+            {billableItem.servicePrices.map((priceItem) => (
+              <StructuredListRow key={priceItem.uuid}>
+                <StructuredListCell className={styles.cell}>{priceItem.paymentMode.name}</StructuredListCell>
+                <StructuredListCell className={styles.cell}>{convertToCurrency(priceItem.price)}</StructuredListCell>
+              </StructuredListRow>
+            ))}
+          </StructuredListBody>
+        </StructuredListWrapper>
+      </div>
+    </Tile>
+  );
+};
+
+export default PriceInfoOrder;
diff --git a/packages/esm-billing-app/src/billable-services/billiable-item/test-order/price-info-order.scss b/packages/esm-billing-app/src/billable-services/billiable-item/test-order/price-info-order.scss
new file mode 100755
index 00000000..00a745b4
--- /dev/null
+++ b/packages/esm-billing-app/src/billable-services/billiable-item/test-order/price-info-order.scss
@@ -0,0 +1,20 @@
+@use '@carbon/styles/scss/type';
+@use '@carbon/styles/scss/spacing';
+@use '@carbon/layout';
+@use '@carbon/colors';
+
+.prices {
+  justify-content: center;
+  align-items: center;
+  margin: layout.$spacing-03;
+}
+
+.listContainer {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+}
+
+.cell {
+  padding: spacing.$spacing-05;
+}
diff --git a/packages/esm-billing-app/src/billable-services/billiable-item/test-order/procedure-order.component.tsx b/packages/esm-billing-app/src/billable-services/billiable-item/test-order/procedure-order.component.tsx
new file mode 100755
index 00000000..92291e00
--- /dev/null
+++ b/packages/esm-billing-app/src/billable-services/billiable-item/test-order/procedure-order.component.tsx
@@ -0,0 +1,33 @@
+import React from 'react';
+import { useBillableItem } from '../useBillableItem';
+import { useTranslation } from 'react-i18next';
+import { InlineLoading } from '@carbon/react';
+import PriceInfoOrder from './price-info-order.componet';
+
+type ProcedureOrderProps = {
+  order: {
+    testType?: {
+      label: string;
+      conceptUuid: string;
+    };
+  };
+};
+
+const ProcedureOrder: React.FC<ProcedureOrderProps> = ({ order }) => {
+  const { t } = useTranslation();
+  const { billableItem, isLoading, error } = useBillableItem(order?.testType?.conceptUuid);
+
+  if (isLoading) {
+    return (
+      <InlineLoading
+        status="active"
+        iconDescription={t('loading', 'Loading')}
+        description={t('loadingData', 'Loading data...')}
+      />
+    );
+  }
+
+  return <PriceInfoOrder billableItem={billableItem} error={error} />;
+};
+
+export default ProcedureOrder;
diff --git a/packages/esm-billing-app/src/billable-services/billiable-item/test-order/test-order-action.component.tsx b/packages/esm-billing-app/src/billable-services/billiable-item/test-order/test-order-action.component.tsx
new file mode 100755
index 00000000..1e8b4ee0
--- /dev/null
+++ b/packages/esm-billing-app/src/billable-services/billiable-item/test-order/test-order-action.component.tsx
@@ -0,0 +1,50 @@
+import { OverflowMenuItem } from '@carbon/react';
+import { type Order } from '@openmrs/esm-patient-common-lib';
+import React, { useCallback } from 'react';
+import { useTranslation } from 'react-i18next';
+import { useTestOrderBillStatus } from './test-order-action.resource';
+import { showModal } from '@openmrs/esm-framework';
+
+type TestOrderProps = { order: Order };
+
+enum FulfillerStatus {
+  IN_PROGRESS = 'IN_PROGRESS',
+}
+
+const TestOrderAction: React.FC<TestOrderProps> = ({ order }) => {
+  const { t } = useTranslation();
+  const { isLoading, hasPendingPayment } = useTestOrderBillStatus(order.uuid, order.patient.uuid);
+
+  const launchModal = useCallback(() => {
+    const dispose = showModal('pickup-lab-request-modal', {
+      closeModal: () => dispose(),
+      order,
+    });
+  }, [order]);
+
+  // Show the test order if the following conditions are met:
+  // 1. The current visit is in-patient
+  // 2. The test order has been paid in full
+  // 3. The patient is an emergency patient
+
+  // If the order is in progress, do not show the action
+  if (order.fulfillerStatus === FulfillerStatus.IN_PROGRESS) {
+    return null;
+  }
+
+  if (isLoading) {
+    return <OverflowMenuItem itemText={t('loading', 'Loading...')} />;
+  }
+
+  return (
+    <OverflowMenuItem
+      onClick={launchModal}
+      disabled={hasPendingPayment}
+      itemText={
+        hasPendingPayment ? t('unsettledBill', 'Unsettled bill for test.') : t('pickLabRequest', 'Pick Lab Request')
+      }
+    />
+  );
+};
+
+export default TestOrderAction;
diff --git a/packages/esm-billing-app/src/billable-services/billiable-item/test-order/test-order-action.resource.tsx b/packages/esm-billing-app/src/billable-services/billiable-item/test-order/test-order-action.resource.tsx
new file mode 100755
index 00000000..7a23f550
--- /dev/null
+++ b/packages/esm-billing-app/src/billable-services/billiable-item/test-order/test-order-action.resource.tsx
@@ -0,0 +1,54 @@
+import { openmrsFetch, restBaseUrl, useConfig, useVisit } from '@openmrs/esm-framework';
+import useSWR from 'swr';
+import { type LineItem, type QueueEntry } from '../../../types';
+import { type BillingConfig } from '../../../config-schema';
+
+export const useTestOrderBillStatus = (orderUuid: string, patientUuid: string) => {
+  const config = useConfig<BillingConfig>();
+  const { currentVisit } = useVisit(patientUuid);
+  const { isEmergencyPatient, isLoading: isLoadingQueue } = usePatientQueue(patientUuid);
+  const { isLoading: isLoadingBill, hasPendingPayment } = usePatientBill(orderUuid);
+
+  if (isLoadingQueue || isLoadingBill) {
+    return { hasPendingPayment: false, isLoading: true };
+  }
+
+  // If current visit type is inpatient or the patient is in the emergency queue, we should allow the patient to receive services without paying the bill
+  if (currentVisit?.visitType?.uuid === config?.inPatientVisitTypeUuid || isEmergencyPatient) {
+    return { hasPendingPayment: false, isLoading: false };
+  }
+
+  // If the patient is not in the queue then we should check if the patient has a pending bill
+  return { hasPendingPayment, isLoading: false };
+};
+
+export const usePatientQueue = (patientUuid: string) => {
+  const config = useConfig({ externalModuleName: '@ampath/esm-service-queues-app' });
+  const url = `${restBaseUrl}/visit-queue-entry?patient=${patientUuid}`;
+  const { data, isLoading, error } = useSWR<{
+    data: { results: Array<QueueEntry> };
+  }>(url, openmrsFetch);
+
+  const isEmergencyPatient =
+    data?.data?.results?.[0]?.queueEntry?.priority?.uuid === config?.concepts?.emergencyPriorityConceptUuid;
+  const isInQueue = data?.data?.results?.length > 0;
+  return { isInQueue, isLoading, error, isEmergencyPatient };
+};
+
+export const usePatientBill = (orderUuid: string) => {
+  const { billingStatusQueryUrl } = useConfig<BillingConfig>();
+  const billUrl = createUrl(restBaseUrl, orderUuid, billingStatusQueryUrl);
+  const { data, isLoading, error } = useSWR<{
+    data: { results: Array<LineItem> };
+  }>(billUrl, openmrsFetch);
+
+  const hasPendingPayment = data?.data?.results?.some(
+    (lineItem) => lineItem.paymentStatus === 'PENDING' || lineItem.paymentStatus === 'POSTED',
+  );
+
+  return { hasPendingPayment, isLoading, error };
+};
+
+function createUrl(restBaseUrl: string, orderUuid: string, templateUrl: string): string {
+  return templateUrl.replace('${restBaseUrl}', restBaseUrl).replace('${orderUuid}', orderUuid);
+}
diff --git a/packages/esm-billing-app/src/billable-services/billiable-item/useBilliableItem.tsx b/packages/esm-billing-app/src/billable-services/billiable-item/useBillableItem.tsx
old mode 100644
new mode 100755
similarity index 83%
rename from packages/esm-billing-app/src/billable-services/billiable-item/useBilliableItem.tsx
rename to packages/esm-billing-app/src/billable-services/billiable-item/useBillableItem.tsx
index 50393f05..44eaa26c
--- a/packages/esm-billing-app/src/billable-services/billiable-item/useBilliableItem.tsx
+++ b/packages/esm-billing-app/src/billable-services/billiable-item/useBillableItem.tsx
@@ -37,13 +37,12 @@ export const useBillableItem = (billableItemId: string) => {
 
 export const useSockItemInventory = (stockItemId: string) => {
   const url = `/ws/rest/v1/stockmanagement/stockiteminventory?v=default&limit=10&totalCount=true&drugUuid=${stockItemId}`;
-  const { data, error, isLoading } = useSWR<{ data: { results: Array<{ quantityUoM: string; quantity: number }> } }>(
-    url,
-    openmrsFetch,
-  );
-  const stockItemsInfo = first(data?.data?.results ?? []);
+  const { data, error, isLoading } = useSWR<{
+    data: { results: Array<{ quantityUoM: string; quantity: number; partyName: string }> };
+  }>(url, openmrsFetch);
+
   return {
-    stockItem: stockItemsInfo,
+    stockItem: (data?.data?.results as Array<any>) ?? [],
     isLoading: isLoading,
     error,
   };
diff --git a/packages/esm-billing-app/src/billable-services/billing-tariffs/add-billing-tariffs-service.scss b/packages/esm-billing-app/src/billable-services/billing-tariffs/add-billing-tariffs-service.scss
new file mode 100755
index 00000000..5c52a1ca
--- /dev/null
+++ b/packages/esm-billing-app/src/billable-services/billing-tariffs/add-billing-tariffs-service.scss
@@ -0,0 +1,164 @@
+@use '@carbon/styles/scss/spacing';
+@use '@carbon/styles/scss/type';
+@use '@carbon/colors';
+@use '@carbon/layout';
+@import '~@openmrs/esm-styleguide/src/vars';
+
+.form {
+  display: flex;
+  flex-direction: column;
+  justify-content: space-between;
+  height: 100%;
+  padding: spacing.$spacing-06;
+}
+
+.subTitle {
+  font-weight: 600;
+  font-size: 14px;
+}
+
+.sectionTitle {
+  @include type.type-style('heading-compact-02');
+  color: $text-02;
+  margin-bottom: spacing.$spacing-04;
+}
+
+.modalBody {
+  padding-bottom: spacing.$spacing-05;
+}
+
+.container {
+  margin: 1rem;
+}
+
+.paymentContainer {
+  margin: layout.$layout-01;
+  padding: layout.$layout-01;
+  width: 70%;
+  border-right: 1px solid colors.$cool-gray-40;
+}
+
+.paymentButtons {
+  margin: layout.$layout-01 0;
+}
+
+.paymentMethodContainer {
+  display: grid;
+  grid-template-columns: repeat(4, minmax(auto, 1fr));
+  column-gap: 1rem;
+  margin: 0.625rem 0;
+  width: 100%;
+}
+
+.paymentTotals {
+  margin-top: layout.$spacing-01;
+}
+
+.processPayments {
+  display: flex;
+  justify-content: flex-end;
+  margin: layout.$spacing-05;
+  column-gap: layout.$spacing-04;
+}
+
+.errorPaymentContainer {
+  margin: layout.$spacing-04;
+  min-height: layout.$spacing-09;
+}
+
+.removeButtonContainer {
+  display: flex;
+  align-self: center;
+  cursor: pointer;
+  margin-left: layout.$spacing-07;
+}
+
+.removeButton {
+  color: colors.$red-60;
+}
+
+.service {
+  padding: 1rem 0.75rem;
+}
+
+.conceptsList {
+  background-color: $ui-02;
+  max-height: 14rem;
+  overflow-y: auto;
+  border: 1px solid $ui-03;
+
+  li:hover {
+    background-color: $ui-03;
+  }
+}
+
+.emptyResults {
+  @include type.type-style('body-compact-01');
+  color: $text-02;
+  min-height: 1rem;
+  border: 1px solid $ui-03;
+}
+
+.conceptLabel {
+  @include type.type-style('label-02');
+  margin-bottom: 0.6rem;
+}
+
+.errorContainer {
+  margin: 1rem;
+}
+
+.serviceError {
+  :global(.cds--search-input):focus {
+    outline: 2.5px solid $danger;
+  }
+
+  :global(.cds--search-magnifier) {
+    svg {
+      fill: $danger;
+    }
+  }
+}
+
+.errorMessage {
+  @include type.type-style('label-02');
+  color: $danger;
+  margin-top: 0.5rem;
+}
+
+.spinner {
+  &:global(.cds--inline-loading) {
+    min-height: 1rem;
+  }
+}
+
+.loader {
+  margin-top: 1rem;
+  margin-bottom: 1rem;
+  margin-left: auto;
+  margin-right: auto;
+  width: max-content;
+}
+
+.searchWrapper {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-items: center;
+}
+
+.nameSection {
+  display: flex;
+  gap: 20px;
+  align-items: flex-start;
+}
+
+.secondSection {
+  display: flex;
+  gap: 20px;
+  align-items: flex-start;
+}
+
+.serviceName {
+  width: 50%;
+}
diff --git a/packages/esm-billing-app/src/billable-services/billing-tariffs/add-billings-tariffs-service.component.tsx b/packages/esm-billing-app/src/billable-services/billing-tariffs/add-billings-tariffs-service.component.tsx
new file mode 100755
index 00000000..93795538
--- /dev/null
+++ b/packages/esm-billing-app/src/billable-services/billing-tariffs/add-billings-tariffs-service.component.tsx
@@ -0,0 +1,183 @@
+import React, { useCallback, useRef, useState } from 'react';
+import styles from './add-billing-tariffs-service.scss';
+import {
+  Form,
+  Button,
+  TextInput,
+  ComboBox,
+  Dropdown,
+  Layer,
+  InlineLoading,
+  Search,
+  Tile,
+  FormLabel,
+  NumberInput,
+} from '@carbon/react';
+import { useTranslation } from 'react-i18next';
+import {
+  createBillableService,
+  useConceptsSearch,
+  usePaymentModes,
+  useServiceTypes,
+} from '../billable-service.resource';
+import { Controller, useFieldArray, useForm } from 'react-hook-form';
+import { Add, TrashCan, WarningFilled } from '@carbon/react/icons';
+import { z } from 'zod';
+import { zodResolver } from '@hookform/resolvers/zod';
+import { navigate, showSnackbar, useDebounce, useLayoutType } from '@openmrs/esm-framework';
+import { type ServiceConcept } from '../../types';
+import { extractErrorMessagesFromResponse } from '../../utils';
+
+const servicePriceSchema = z.object({
+  paymentMode: z.string({ required_error: 'Payment method is required' }),
+  price: z
+    .string()
+    .refine((value) => !isNaN(Number(value)), 'Value must be a number')
+    .refine((value) => parseInt(value) > 0, 'Price should be a number more than zero')
+    .refine((value) => !!value, 'Price is required'),
+});
+
+const paymentFormSchema = z.object({
+  payment: z.array(servicePriceSchema).min(1, 'At least one payment method is required'),
+  serviceName: z.string({
+    required_error: 'Service name is required',
+  }),
+  shortName: z.string({ required_error: 'A valid short name is required.' }),
+  serviceTypeName: z.string({ required_error: 'A service type is required' }),
+  concept: z.string({ required_error: 'Concept search is required.' }),
+});
+
+type FormData = z.infer<typeof paymentFormSchema>;
+const DEFAULT_PAYMENT_OPTION = { paymentMode: '', price: '1' };
+
+const AddTariffsService: React.FC = () => {
+  const { t } = useTranslation();
+
+  const { paymentModes, isLoading: isLoadingPaymentModes } = usePaymentModes();
+  const { serviceTypes, isLoading: isLoadingServicesTypes } = useServiceTypes();
+
+  const {
+    control,
+    handleSubmit,
+    formState: { errors, isValid },
+  } = useForm<FormData>({
+    mode: 'all',
+    defaultValues: {},
+    resolver: zodResolver(paymentFormSchema),
+  });
+
+  const { fields, remove, append } = useFieldArray({ name: 'payment', control: control });
+
+  const handleAppendPaymentMode = useCallback(() => append(DEFAULT_PAYMENT_OPTION), [append]);
+  const handleRemovePaymentMode = useCallback((index) => remove(index), [remove]);
+
+  const isTablet = useLayoutType() === 'tablet';
+  const searchInputRef = useRef(null);
+  const handleSearchTermChange = (event: React.ChangeEvent<HTMLInputElement>) => setSearchTerm(event.target.value);
+
+  const [selectedConcept, setSelectedConcept] = useState<ServiceConcept>(null);
+  const [searchTerm, setSearchTerm] = useState('');
+  const debouncedSearchTerm = useDebounce(searchTerm);
+  const { searchResults, isSearching } = useConceptsSearch(debouncedSearchTerm);
+
+  const handleConceptChange = useCallback((selectedConcept: ServiceConcept) => {
+    setSelectedConcept(selectedConcept);
+  }, []);
+
+  const handleNavigateToServiceDashboard = () =>
+    navigate({
+      to: window.getOpenmrsSpaBase() + 'billable-services',
+    });
+
+  const onSubmit = (data: FormData) => {
+    const payload: any = {};
+
+    let servicePrices = data.payment.map((element) => {
+      return {
+        name: paymentModes.filter((p) => p.uuid === element.paymentMode)[0].name,
+        price: element.price,
+        paymentMode: element.paymentMode,
+      };
+    });
+
+    payload.name = data.serviceName;
+    payload.shortName = data.shortName;
+    payload.serviceType = data.serviceTypeName;
+    payload.servicePrices = servicePrices;
+    payload.serviceStatus = 'ENABLED';
+    payload.concept = selectedConcept?.concept?.uuid;
+
+    createBillableService(payload).then(
+      (resp) => {
+        showSnackbar({
+          title: t('billableService', 'Billable service'),
+          subtitle: 'Billable service created successfully',
+          kind: 'success',
+          isLowContrast: true,
+          timeoutInMs: 3000,
+        });
+        handleNavigateToServiceDashboard();
+      },
+      (error) => {
+        showSnackbar({
+          title: 'Error adding billable service',
+          kind: 'error',
+          subtitle: extractErrorMessagesFromResponse(error.responseBody),
+          isLowContrast: true,
+        });
+      },
+    );
+  };
+
+  if (isLoadingServicesTypes || isLoadingPaymentModes) {
+    return (
+      <div className={styles.searchWrapper}>
+        <InlineLoading className={styles.loader} description={t('searching', 'Searching') + '...'} />
+      </div>
+    );
+  }
+
+  return (
+    <Form className={styles.form}>
+      <h4 className={styles.subTitle}>{t('addTariffsServices', 'Add Insurance Tariffs')}</h4>
+
+      <section className={styles.secondSection}>
+        <div className={styles.serviceName}>
+          <Controller
+            control={control}
+            name="serviceTypeName"
+            render={({ field }) => (
+              <ComboBox
+                id="serviceType"
+                items={serviceTypes ?? []}
+                titleText={t('availableTariffs', 'Available Tariffs')}
+                itemToString={(item: { display: string }) => (item ? item.display : '')}
+                placeholder="Select service type"
+                required
+                {...field}
+                onChange={({ selectedItem }) => field.onChange(selectedItem ? selectedItem.display : '')}
+                invalidText={errors.serviceTypeName?.message || ''}
+                invalid={!!errors.serviceTypeName}
+              />
+            )}
+          />
+        </div>
+      </section>
+
+      <section>
+        <Button kind="secondary" onClick={handleNavigateToServiceDashboard}>
+          {t('cancel', 'Cancel')}
+        </Button>
+        <Button type="submit" onClick={handleSubmit(onSubmit)}>
+          {t('addTariffsave', 'Add Tariff')}
+        </Button>
+      </section>
+    </Form>
+  );
+};
+
+function ResponsiveWrapper({ children, isTablet }: { children: React.ReactNode; isTablet: boolean }) {
+  return isTablet ? <Layer>{children} </Layer> : <>{children}</>;
+}
+
+export default AddTariffsService;
diff --git a/packages/esm-billing-app/src/billable-services/billing-tariffs/billing-tariffs-admin-card.tsx b/packages/esm-billing-app/src/billable-services/billing-tariffs/billing-tariffs-admin-card.tsx
new file mode 100644
index 00000000..e69de29b
diff --git a/packages/esm-billing-app/src/billable-services/billing-tariffs/billing-tariffs-services.scss b/packages/esm-billing-app/src/billable-services/billing-tariffs/billing-tariffs-services.scss
new file mode 100755
index 00000000..2f2691ff
--- /dev/null
+++ b/packages/esm-billing-app/src/billable-services/billing-tariffs/billing-tariffs-services.scss
@@ -0,0 +1,219 @@
+@use '@carbon/layout';
+@use '@carbon/type';
+@use '@carbon/styles/scss/spacing';
+@import '~@openmrs/esm-styleguide/src/vars';
+
+.container {
+  margin: 2rem 0;
+}
+
+.emptyStateContainer,
+.loaderContainer {
+  @extend .container;
+}
+
+.serviceContainer {
+  background-color: $ui-02;
+  border: 1px solid $ui-03;
+  width: 100%;
+  margin: 0 auto;
+  max-width: 95vw;
+  padding-bottom: 0;
+
+  :has(.filterEmptyState) {
+    border-bottom: none;
+  }
+}
+.left-justified-items {
+  display: flex;
+  flex-direction: row;
+  align-items: center;
+  cursor: pointer;
+  align-items: center;
+}
+
+.filterContainer {
+  flex: 1;
+
+  :global(.cds--dropdown__wrapper--inline) {
+    gap: 0;
+  }
+
+  :global(.cds--list-box__menu-icon) {
+    height: 1rem;
+  }
+
+  :global(.cds--list-box__menu) {
+    min-width: max-content;
+  }
+
+  :global(.cds--list-box) {
+    margin-left: layout.$spacing-03;
+  }
+}
+
+.menu {
+  margin-left: layout.$spacing-03;
+}
+
+.headerContainer {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  padding: layout.$spacing-04 layout.$spacing-05;
+  background-color: $ui-02;
+}
+
+.backgroundDataFetchingIndicator {
+  align-items: center;
+  display: flex;
+  flex: 1;
+  justify-content: space-between;
+
+  &:global(.cds--inline-loading) {
+    max-height: 1rem;
+  }
+}
+
+.tableContainer section {
+  position: relative;
+}
+
+.tableContainer a {
+  text-decoration: none;
+}
+
+.pagination {
+  overflow: hidden;
+
+  &:global(.cds--pagination) {
+    border-top: none;
+  }
+}
+
+.hiddenRow {
+  display: none;
+}
+
+.emptyRow {
+  padding: 0 1rem;
+  display: flex;
+  align-items: center;
+}
+
+.visitSummaryContainer {
+  width: 100%;
+  max-width: 768px;
+  margin: 1rem auto;
+}
+
+.expandedActiveVisitRow > td > div {
+  max-height: max-content !important;
+}
+
+.expandedActiveVisitRow td {
+  padding: 0 2rem;
+}
+
+.expandedActiveVisitRow th[colspan] td[colspan] > div:first-child {
+  padding: 0 1rem;
+}
+
+.action {
+  margin-bottom: layout.$spacing-03;
+}
+
+.illo {
+  margin-top: layout.$spacing-05;
+}
+
+.content {
+  @include type.type-style('heading-compact-01');
+  color: $text-02;
+  margin-top: layout.$spacing-05;
+  margin-bottom: layout.$spacing-03;
+}
+
+.desktopHeading,
+.tabletHeading {
+  text-align: left;
+  text-transform: capitalize;
+  flex: 1;
+
+  h4 {
+    @include type.type-style('heading-compact-02');
+    color: $text-02;
+
+    &:after {
+      content: '';
+      display: block;
+      width: 2rem;
+      padding-top: 3px;
+      border-bottom: 0.375rem solid;
+      @include brand-03(border-bottom-color);
+    }
+  }
+}
+
+.tile {
+  text-align: center;
+  border: 1px solid $ui-03;
+}
+
+.menuitem {
+  max-width: none;
+}
+
+.filterEmptyState {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+  padding: layout.$spacing-05;
+  margin: layout.$spacing-09;
+  text-align: center;
+}
+
+.filterEmptyStateTile {
+  margin: auto;
+}
+
+.filterEmptyStateContent {
+  @include type.type-style('heading-compact-02');
+  color: $text-02;
+  margin-bottom: 0.5rem;
+}
+
+.filterEmptyStateHelper {
+  @include type.type-style('body-compact-01');
+  color: $text-02;
+}
+
+.metricsContainer {
+  display: flex;
+  justify-content: space-between;
+  background-color: $ui-02;
+  height: spacing.$spacing-10;
+  align-items: center;
+  padding: 0 spacing.$spacing-05;
+}
+
+.metricsTitle {
+  @include type.type-style('heading-03');
+  color: $ui-05;
+}
+
+.actionsContainer {
+  display: flex;
+  justify-content: space-between;
+  align-items: center;
+  background-color: $ui-02;
+}
+.actionBtn {
+  display: flex;
+  column-gap: 0.5rem;
+}
+
+.mainSection {
+  display: grid;
+  grid-template-columns: 16rem 1fr;
+}
diff --git a/packages/esm-billing-app/src/billable-services/billing-tariffs/billing-tariffs.component.tsx b/packages/esm-billing-app/src/billable-services/billing-tariffs/billing-tariffs.component.tsx
new file mode 100755
index 00000000..e1923f91
--- /dev/null
+++ b/packages/esm-billing-app/src/billable-services/billing-tariffs/billing-tariffs.component.tsx
@@ -0,0 +1,286 @@
+import React, { useCallback, useMemo, useState } from 'react';
+import classNames from 'classnames';
+import {
+  DataTable,
+  InlineLoading,
+  Layer,
+  Pagination,
+  Search,
+  Table,
+  TableBody,
+  TableCell,
+  TableContainer,
+  TableHead,
+  TableHeader,
+  TableRow,
+  Tile,
+  Button,
+} from '@carbon/react';
+import { useLayoutType, isDesktop, useConfig, usePagination, ErrorState, navigate } from '@openmrs/esm-framework';
+import { EmptyState } from '@openmrs/esm-patient-common-lib';
+import styles from './billing-tariffs-services.scss';
+import { useTranslation } from 'react-i18next';
+import { useBillableServices } from './billing-tariffs.resource';
+import { ArrowRight, RadioButton } from '@carbon/react/icons';
+import { RadioButtonGroup } from '@carbon/react';
+import { OverflowMenu, OverflowMenuItem } from '@carbon/react';
+
+const BillingTariffs = () => {
+  const { t } = useTranslation();
+  const { billableServices, isLoading, isValidating, error, mutate } = useBillableServices();
+  const layout = useLayoutType();
+  const config = useConfig();
+  const [searchString, setSearchString] = useState('');
+  const responsiveSize = isDesktop(layout) ? 'lg' : 'sm';
+  const pageSizes = config?.billableServices?.pageSizes ?? [10, 20, 30, 40, 50];
+  const [pageSize, setPageSize] = useState(config?.billableServices?.pageSize ?? 10);
+
+  //creating service state
+  const [showOverlay, setShowOverlay] = useState(false);
+  const [overlayHeader, setOverlayTitle] = useState('');
+  const [category, setCategory] = useState('');
+
+  const toggleSearch = (choiceSelected) => {
+    (document.getElementById('searchField') as HTMLInputElement).disabled = false;
+
+    if (choiceSelected == 'Stock Item') {
+      setCategory('Stock Item');
+    } else {
+      setCategory('Service');
+    }
+  };
+
+  const headerData = [
+    {
+      header: t('serviceName', 'Service Name'),
+      key: 'serviceName',
+    },
+    {
+      header: t('shortName', 'Short Name'),
+      key: 'shortName',
+    },
+    {
+      header: t('serviceType', 'Service Type'),
+      key: 'serviceType',
+    },
+    {
+      header: t('status', 'Service Status'),
+      key: 'status',
+    },
+    {
+      header: t('prices', 'Prices'),
+      key: 'prices',
+    },
+    {
+      header: t('tariffs', 'Tariffs'),
+      key: 'tariffs',
+    },
+    {
+      header: t('actions', 'Actions'),
+      key: 'actions',
+    },
+  ];
+
+  const launchBillableServiceForm = useCallback(() => {
+    navigate({ to: window.getOpenmrsSpaBase() + 'billable-services/add-service' });
+  }, []);
+
+  const searchResults = useMemo(() => {
+    if (billableServices !== undefined && billableServices.length > 0) {
+      if (searchString && searchString.trim() !== '') {
+        const search = searchString.toLowerCase();
+        return billableServices?.filter((service) =>
+          Object.entries(service).some(([header, value]) => {
+            return header === 'uuid' ? false : `${value}`.toLowerCase().includes(search);
+          }),
+        );
+      }
+    }
+    return billableServices;
+  }, [searchString, billableServices]);
+
+  const { paginated, goTo, results, currentPage } = usePagination(searchResults, pageSize);
+
+  let rowData = [];
+  if (results) {
+    results.forEach((service, index) => {
+      const s = {
+        id: `${index}`,
+        uuid: service.uuid,
+        serviceName: service.name,
+        shortName: service.shortName,
+        serviceType: service?.serviceType?.display,
+        status: service.serviceStatus,
+        prices: '--',
+        tariffs: 'T1, T2, T3',
+        actions: (
+          <OverflowMenu flipped={document?.dir === 'rtl'} aria-label="overflow-menu">
+            <OverflowMenuItem href="/add-tariffs" itemText="Add/Edit Tariffs" />
+            <OverflowMenuItem hasDivider isDelete itemText="Delete Tariffs" />
+          </OverflowMenu>
+        ),
+      };
+      let cost = '';
+      service.servicePrices.forEach((price) => {
+        cost += `${price.name} (${price.price}) `;
+      });
+      s.prices = cost;
+      rowData.push(s);
+    });
+  }
+
+  const handleSearch = useCallback(
+    (e) => {
+      goTo(1);
+      setSearchString(e.target.value);
+    },
+    [goTo, setSearchString],
+  );
+
+  if (isLoading) {
+    <InlineLoading status="active" iconDescription="Loading" description="Loading data..." />;
+  }
+  if (error) {
+    <ErrorState headerTitle={t('billableService', 'Billable Service')} error={error} />;
+  }
+  if (billableServices.length === 0) {
+    <EmptyState
+      displayText={t('billableService', 'Billable Service')}
+      headerTitle={t('billableService', 'Billable Service')}
+      launchForm={launchBillableServiceForm}
+    />;
+  }
+
+  function filterItems(value: any) {
+    throw new Error('Function not implemented.');
+  }
+
+  return (
+    <>
+      {billableServices?.length > 0 ? (
+        <div className={styles.serviceContainer}>
+          <RadioButtonGroup
+            legendText={t('selectCategory', 'Select category')}
+            name="radio-button-group"
+            defaultSelected="radio-1"
+            className={styles.billingItem}
+            onChange={toggleSearch}>
+            <RadioButton title={t('stockItem', 'Stock Item')} values="Stock Item" id="radio-1" />
+            <RadioButton title={t('service', 'Service')} values="Service" id="radio-2" />
+          </RadioButtonGroup>
+
+          <div></div>
+          <DataTable
+            isSortable
+            rows={rowData}
+            headers={headerData}
+            size={responsiveSize}
+            useZebraStyles={rowData?.length > 1 ? true : false}>
+            {({ rows, headers, getRowProps, getTableProps }) => (
+              <TableContainer>
+                <Table {...getTableProps()} aria-label="service list">
+                  <TableHead>
+                    <TableRow>
+                      {headers.map((header) => (
+                        <TableHeader key={header.key}>{header.header}</TableHeader>
+                      ))}
+                    </TableRow>
+                  </TableHead>
+                  <TableBody>
+                    {rows.map((row) => (
+                      <TableRow
+                        key={row.id}
+                        {...getRowProps({
+                          row,
+                        })}>
+                        {row.cells.map((cell) => (
+                          <TableCell key={cell.id}>{cell.value}</TableCell>
+                        ))}
+                      </TableRow>
+                    ))}
+                  </TableBody>
+                </Table>
+              </TableContainer>
+            )}
+          </DataTable>
+          {searchResults?.length === 0 && (
+            <div className={styles.filterEmptyState}>
+              <Layer level={0}>
+                <Tile className={styles.filterEmptyStateTile}>
+                  <p className={styles.filterEmptyStateContent}>
+                    {t('noMatchingServicesToDisplay', 'No matching services to display')}
+                  </p>
+                  <p className={styles.filterEmptyStateHelper}>{t('checkFilters', 'Check the filters above')}</p>
+                </Tile>
+              </Layer>
+            </div>
+          )}
+          {paginated && (
+            <Pagination
+              forwardText="Next page"
+              backwardText="Previous page"
+              page={currentPage}
+              pageSize={pageSize}
+              pageSizes={pageSizes}
+              totalItems={searchResults?.length}
+              className={styles.pagination}
+              size={responsiveSize}
+              onChange={({ pageSize: newPageSize, page: newPage }) => {
+                if (newPageSize !== pageSize) {
+                  setPageSize(newPageSize);
+                }
+                if (newPage !== currentPage) {
+                  goTo(newPage);
+                }
+              }}
+            />
+          )}
+        </div>
+      ) : (
+        <EmptyState
+          launchForm={launchBillableServiceForm}
+          displayText={t('noServicesToDisplay', 'There are no services to display')}
+          headerTitle={t('billableService', 'Billing Tariffs')}
+        />
+      )}
+    </>
+  );
+};
+
+function FilterableTableHeader({ layout, handleSearch, isValidating, responsiveSize, t }) {
+  return (
+    <>
+      <div className={styles.headerContainer}>
+        <div
+          className={classNames({
+            [styles.tabletHeading]: !isDesktop(layout),
+            [styles.desktopHeading]: isDesktop(layout),
+          })}>
+          <h4>{t('servicesList', 'Services list')}</h4>
+        </div>
+        <div className={styles.backgroundDataFetchingIndicator}>
+          <span>{isValidating ? <InlineLoading /> : null}</span>
+        </div>
+      </div>
+      <div className={styles.actionsContainer}>
+        <Search
+          labelText=""
+          placeholder={t('filterTable', 'Filter table')}
+          onChange={handleSearch}
+          size={responsiveSize}
+        />
+        <Button
+          size={responsiveSize}
+          kind="primary"
+          renderIcon={(props) => <ArrowRight size={16} {...props} />}
+          onClick={() => {
+            navigate({ to: window.getOpenmrsSpaBase() + 'billable-services/add-service' });
+          }}
+          iconDescription={t('addNewBillableService', 'Add new billable service')}>
+          {t('addNewService', 'Add new service')}
+        </Button>
+      </div>
+    </>
+  );
+}
+export default BillingTariffs;
diff --git a/packages/esm-billing-app/src/billable-services/billing-tariffs/billing-tariffs.resource.tsx b/packages/esm-billing-app/src/billable-services/billing-tariffs/billing-tariffs.resource.tsx
new file mode 100755
index 00000000..90cba6ed
--- /dev/null
+++ b/packages/esm-billing-app/src/billable-services/billing-tariffs/billing-tariffs.resource.tsx
@@ -0,0 +1,55 @@
+import { type OpenmrsResource, openmrsFetch } from '@openmrs/esm-framework';
+import useSWR from 'swr';
+import { type ServiceConcept } from '../../types';
+
+type ResponseObject = {
+  results: Array<OpenmrsResource>;
+};
+
+type ServiceTypesResponse = {
+  setMembers: { uuid: string; display: string }[];
+};
+
+export const useBillableServices = () => {
+  const url = `/ws/rest/v1/cashier/billableService?v=custom:(uuid,name,shortName,serviceStatus,serviceType:(display),servicePrices:(uuid,name,price))`;
+  const { data, isLoading, isValidating, error, mutate } = useSWR<{ data: ResponseObject }>(url, openmrsFetch, {});
+  return { billableServices: data?.data.results ?? [], isLoading, isValidating, error, mutate };
+};
+
+export function useServiceTypes() {
+  const url = `/ws/rest/v1/concept/d7bd4cc0-90b1-4f22-90f2-ab7fde936727?v=custom:(setMembers:(uuid,display))`;
+  const { data, error, isLoading } = useSWR<{ data: ServiceTypesResponse }>(url, openmrsFetch, {});
+  return { serviceTypes: data?.data.setMembers ?? [], error, isLoading };
+}
+
+export const usePaymentModes = () => {
+  const url = `/ws/rest/v1/cashier/paymentMode`;
+  const { data, error, isLoading } = useSWR<{ data: ResponseObject }>(url, openmrsFetch, {});
+  return { paymentModes: data?.data.results ?? [], error, isLoading };
+};
+
+export const createBillableService = (payload: any) => {
+  const url = `/ws/rest/v1/cashier/api/billable-service`;
+  return openmrsFetch(url, {
+    method: 'POST',
+    body: payload,
+    headers: {
+      'Content-Type': 'application/json',
+    },
+  });
+};
+
+export function useConceptsSearch(conceptToLookup: string) {
+  const conditionsSearchUrl = `/ws/rest/v1/conceptsearch?q=${conceptToLookup}`;
+
+  const { data, error, isLoading } = useSWR<{ data: { results: Array<ServiceConcept> } }, Error>(
+    conceptToLookup ? conditionsSearchUrl : null,
+    openmrsFetch,
+  );
+
+  return {
+    searchResults: data?.data?.results ?? [],
+    error: error,
+    isSearching: isLoading,
+  };
+}
diff --git a/packages/esm-billing-app/src/billable-services/create-edit/add-billable-service.component.tsx b/packages/esm-billing-app/src/billable-services/create-edit/add-billable-service.component.tsx
old mode 100644
new mode 100755
index 83ed659c..aaed930c
--- a/packages/esm-billing-app/src/billable-services/create-edit/add-billable-service.component.tsx
+++ b/packages/esm-billing-app/src/billable-services/create-edit/add-billable-service.component.tsx
@@ -1,4 +1,3 @@
-/* eslint-disable curly */
 import React, { useCallback, useRef, useState } from 'react';
 import styles from './add-billable-service.scss';
 import {
@@ -12,6 +11,7 @@ import {
   Search,
   Tile,
   FormLabel,
+  NumberInput,
 } from '@carbon/react';
 import { useTranslation } from 'react-i18next';
 import {
@@ -24,43 +24,48 @@ import { Controller, useFieldArray, useForm } from 'react-hook-form';
 import { Add, TrashCan, WarningFilled } from '@carbon/react/icons';
 import { z } from 'zod';
 import { zodResolver } from '@hookform/resolvers/zod';
-import { navigate, showSnackbar, useDebounce, useLayoutType, useSession } from '@openmrs/esm-framework';
+import { navigate, showSnackbar, useDebounce, useLayoutType } from '@openmrs/esm-framework';
 import { type ServiceConcept } from '../../types';
+import { extractErrorMessagesFromResponse } from '../../utils';
 
 const servicePriceSchema = z.object({
-  paymentMode: z.string().refine((value) => !!value, 'Payment method is required'),
-  price: z.union([
-    z.number().refine((value) => !!value, 'Price is required'),
-    z.string().refine((value) => !!value, 'Price is required'),
-  ]),
+  paymentMode: z.string({ required_error: 'Payment method is required' }),
+  price: z
+    .string()
+    .refine((value) => !isNaN(Number(value)), 'Value must be a number')
+    .refine((value) => parseInt(value) > 0, 'Price should be a number more than zero')
+    .refine((value) => !!value, 'Price is required'),
 });
-const paymentFormSchema = z.object({ payment: z.array(servicePriceSchema) });
 
-type PaymentMode = {
-  paymentMode: string;
-  price: string | number;
-};
-type PaymentModeFormValue = {
-  payment: Array<PaymentMode>;
-};
-const DEFAULT_PAYMENT_OPTION = { paymentMode: '', price: 0 };
+const paymentFormSchema = z.object({
+  payment: z.array(servicePriceSchema).min(1, 'At least one payment method is required'),
+  serviceName: z.string({
+    required_error: 'Service name is required',
+  }),
+  shortName: z.string({ required_error: 'A valid short name is required.' }),
+  serviceTypeName: z.string({ required_error: 'A service type is required' }),
+  concept: z.string({ required_error: 'Concept search is required.' }),
+});
+
+type FormData = z.infer<typeof paymentFormSchema>;
+const DEFAULT_PAYMENT_OPTION = { paymentMode: '', price: '1' };
 
 const AddBillableService: React.FC = () => {
   const { t } = useTranslation();
 
   const { paymentModes, isLoading: isLoadingPaymentModes } = usePaymentModes();
   const { serviceTypes, isLoading: isLoadingServicesTypes } = useServiceTypes();
-  const [billableServicePayload, setBillableServicePayload] = useState<any>({});
 
   const {
     control,
     handleSubmit,
-    formState: { errors },
-  } = useForm<any>({
+    formState: { errors, isValid },
+  } = useForm<FormData>({
     mode: 'all',
     defaultValues: {},
     resolver: zodResolver(paymentFormSchema),
   });
+
   const { fields, remove, append } = useFieldArray({ name: 'payment', control: control });
 
   const handleAppendPaymentMode = useCallback(() => append(DEFAULT_PAYMENT_OPTION), [append]);
@@ -74,7 +79,8 @@ const AddBillableService: React.FC = () => {
   const [searchTerm, setSearchTerm] = useState('');
   const debouncedSearchTerm = useDebounce(searchTerm);
   const { searchResults, isSearching } = useConceptsSearch(debouncedSearchTerm);
-  const handleConceptChange = useCallback((selectedConcept: any) => {
+
+  const handleConceptChange = useCallback((selectedConcept: ServiceConcept) => {
     setSelectedConcept(selectedConcept);
   }, []);
 
@@ -83,27 +89,20 @@ const AddBillableService: React.FC = () => {
       to: window.getOpenmrsSpaBase() + 'billable-services',
     });
 
-  if (isLoadingPaymentModes && isLoadingServicesTypes) {
-    return (
-      <InlineLoading
-        status="active"
-        iconDescription={t('loadingDescription', 'Loading')}
-        description={t('loading', 'Loading data...')}
-      />
-    );
-  }
-
-  const onSubmit = (data) => {
+  const onSubmit = (data: FormData) => {
     const payload: any = {};
 
-    let servicePrices = [];
-    data.payment.forEach((element) => {
-      element.name = paymentModes.filter((p) => p.uuid === element.paymentMode)[0].name;
-      servicePrices.push(element);
+    let servicePrices = data.payment.map((element) => {
+      return {
+        name: paymentModes.filter((p) => p.uuid === element.paymentMode)[0].name,
+        price: element.price,
+        paymentMode: element.paymentMode,
+      };
     });
-    payload.name = billableServicePayload.serviceName;
-    payload.shortName = billableServicePayload.shortName;
-    payload.serviceType = billableServicePayload.serviceType.uuid;
+
+    payload.name = data.serviceName;
+    payload.shortName = data.shortName;
+    payload.serviceType = data.serviceTypeName;
     payload.servicePrices = servicePrices;
     payload.serviceStatus = 'ENABLED';
     payload.concept = selectedConcept?.concept?.uuid;
@@ -114,205 +113,233 @@ const AddBillableService: React.FC = () => {
           title: t('billableService', 'Billable service'),
           subtitle: 'Billable service created successfully',
           kind: 'success',
+          isLowContrast: true,
           timeoutInMs: 3000,
         });
         handleNavigateToServiceDashboard();
       },
       (error) => {
-        showSnackbar({ title: 'Bill payment error', kind: 'error', subtitle: error });
+        showSnackbar({
+          title: 'Error adding billable service',
+          kind: 'error',
+          subtitle: extractErrorMessagesFromResponse(error.responseBody),
+          isLowContrast: true,
+        });
       },
     );
   };
 
+  if (isLoadingServicesTypes || isLoadingPaymentModes) {
+    return (
+      <div className={styles.searchWrapper}>
+        <InlineLoading className={styles.loader} description={t('searching', 'Searching') + '...'} />
+      </div>
+    );
+  }
+
   return (
     <Form className={styles.form}>
-      <h4>{t('addBillableServices', 'Add Billable Services')}</h4>
-      <section className={styles.section}>
-        <Layer>
-          <TextInput
-            id="serviceName"
-            type="text"
-            labelText={t('serviceName', 'Service Name')}
-            size="md"
-            onChange={(e) =>
-              setBillableServicePayload({
-                ...billableServicePayload,
-                serviceName: e.target.value,
-              })
-            }
-            placeholder="Enter service name"
+      <h4 className={styles.subTitle}>{t('addBillableServices', 'Add Billable Services')}</h4>
+      <section className={styles.nameSection}>
+        <div className={styles.serviceName}>
+          <Controller
+            control={control}
+            name="serviceName"
+            render={({ field }) => (
+              <Layer>
+                <TextInput
+                  {...field}
+                  id="serviceName"
+                  type="text"
+                  labelText={t('serviceName', 'Service Name')}
+                  size="md"
+                  placeholder="Enter service name"
+                  invalidText={errors.serviceName?.message || ''}
+                  invalid={!!errors.serviceName}
+                />
+              </Layer>
+            )}
           />
-        </Layer>
-      </section>
-      <section className={styles.section}>
-        <Layer>
-          <TextInput
-            id="serviceShortName"
-            type="text"
-            labelText={t('serviceShortName', 'Short Name')}
-            size="md"
-            onChange={(e) =>
-              setBillableServicePayload({
-                ...billableServicePayload,
-                shortName: e.target.value,
-              })
-            }
-            placeholder="Enter service short name"
+        </div>
+        <div className={styles.serviceName}>
+          <Controller
+            control={control}
+            name="shortName"
+            render={({ field }) => (
+              <Layer>
+                <TextInput
+                  id="serviceShortName"
+                  {...field}
+                  type="text"
+                  labelText={t('serviceShortName', 'Short Name')}
+                  size="md"
+                  placeholder="Enter service short name"
+                  invalidText={errors.shortName?.message}
+                  invalid={!!errors.shortName}
+                />
+              </Layer>
+            )}
           />
-        </Layer>
+        </div>
       </section>
-      <section>
-        <FormLabel className={styles.conceptLabel}>Associated Concept</FormLabel>
-        <Controller
-          name="search"
-          control={control}
-          render={({ field: { onChange, value, onBlur } }) => (
-            <ResponsiveWrapper isTablet={isTablet}>
-              <Search
-                ref={searchInputRef}
-                size="md"
-                id="conceptsSearch"
-                labelText={t('enterConcept', 'Associated concept')}
-                placeholder={t('searchConcepts', 'Search associated concept')}
-                className={errors?.search && styles.serviceError}
-                onChange={(e) => {
-                  onChange(e);
-                  handleSearchTermChange(e);
-                }}
-                renderIcon={errors?.search && <WarningFilled />}
-                onBlur={onBlur}
-                onClear={() => {
-                  setSearchTerm('');
-                  setSelectedConcept(null);
-                }}
-                value={(() => {
-                  if (selectedConcept) {
-                    return selectedConcept.display;
-                  }
-                  if (debouncedSearchTerm) {
-                    return value;
-                  }
-                })()}
-              />
-            </ResponsiveWrapper>
-          )}
-        />
-        {(() => {
-          if (!debouncedSearchTerm || selectedConcept) return null;
-          if (isSearching)
-            return <InlineLoading className={styles.loader} description={t('searching', 'Searching') + '...'} />;
-          if (searchResults && searchResults.length) {
+      <section className={styles.secondSection}>
+        <div className={styles.serviceName}>
+          <FormLabel className={styles.conceptLabel}>Associated Concept</FormLabel>
+          <Controller
+            name="concept"
+            control={control}
+            render={({ field: { onChange, value, onBlur } }) => (
+              <ResponsiveWrapper isTablet={isTablet}>
+                <Search
+                  ref={searchInputRef}
+                  size="md"
+                  id="conceptsSearch"
+                  labelText={t('enterConcept', 'Associated concept')}
+                  placeholder={t('searchConcepts', 'Search associated concept')}
+                  className={errors?.concept && styles.serviceError}
+                  onChange={(e) => {
+                    onChange(e);
+                    handleSearchTermChange(e);
+                  }}
+                  renderIcon={errors?.concept && <WarningFilled />}
+                  onBlur={onBlur}
+                  onClear={() => {
+                    setSearchTerm('');
+                    setSelectedConcept(null);
+                  }}
+                  value={(() => {
+                    if (selectedConcept) {
+                      return selectedConcept.display;
+                    }
+                    if (debouncedSearchTerm) {
+                      return value;
+                    }
+                  })()}
+                />
+              </ResponsiveWrapper>
+            )}
+          />
+          {(() => {
+            if (!debouncedSearchTerm || selectedConcept) {
+              return null;
+            }
+            if (isSearching) {
+              return (
+                <div className={styles.searchWrapper}>
+                  <InlineLoading className={styles.loader} description={t('searching', 'Searching') + '...'} />
+                </div>
+              );
+            }
+            if (searchResults && searchResults.length) {
+              return (
+                <ul className={styles.conceptsList}>
+                  {searchResults?.map((searchResult, index) => (
+                    <li
+                      role="menuitem"
+                      className={styles.service}
+                      key={searchResult.concept.uuid}
+                      onClick={() => handleConceptChange(searchResult)}>
+                      {searchResult.display}
+                    </li>
+                  ))}
+                </ul>
+              );
+            }
             return (
-              <ul className={styles.conceptsList}>
-                {/*TODO: use uuid instead of index as the key*/}
-                {searchResults?.map((searchResult, index) => (
-                  <li
-                    role="menuitem"
-                    className={styles.service}
-                    key={index}
-                    onClick={() => handleConceptChange(searchResult)}>
-                    {searchResult.display}
-                  </li>
-                ))}
-              </ul>
+              <Layer>
+                <Tile className={styles.emptyResults}>
+                  <span>
+                    {t('noResultsFor', 'No results for')} <strong>"{debouncedSearchTerm}"</strong>
+                  </span>
+                </Tile>
+              </Layer>
             );
-          }
-          return (
-            <Layer>
-              <Tile className={styles.emptyResults}>
-                <span>
-                  {t('noResultsFor', 'No results for')} <strong>"{debouncedSearchTerm}"</strong>
-                </span>
-              </Tile>
-            </Layer>
-          );
-        })()}
-      </section>
-      <section className={styles.section}>
-        <Layer>
-          <ComboBox
-            id="serviceType"
-            items={serviceTypes ?? []}
-            titleText={t('serviceType', 'Service Type')}
-            itemToString={(item) => item?.display}
-            onChange={({ selectedItem }) => {
-              setBillableServicePayload({
-                ...billableServicePayload,
-                display: selectedItem?.display,
-                serviceType: selectedItem,
-              });
-            }}
-            placeholder="Select service type"
-            required
+          })()}
+        </div>
+        <div className={styles.serviceName}>
+          <Controller
+            control={control}
+            name="serviceTypeName"
+            render={({ field }) => (
+              <ComboBox
+                id="serviceType"
+                items={serviceTypes ?? []}
+                titleText={t('serviceType', 'Service Type')}
+                itemToString={(item: { display: string }) => (item ? item.display : '')}
+                placeholder="Select service type"
+                required
+                {...field}
+                onChange={({ selectedItem }) => field.onChange(selectedItem ? selectedItem.display : '')}
+                invalidText={errors.serviceTypeName?.message || ''}
+                invalid={!!errors.serviceTypeName}
+              />
+            )}
           />
-        </Layer>
+        </div>
       </section>
-
-      <section>
-        <div className={styles.container}>
-          {fields.map((field, index) => (
-            <div key={field.id} className={styles.paymentMethodContainer}>
-              <Controller
-                control={control}
-                name={`payment.${index}.paymentMode`}
-                render={({ field }) => (
-                  <Layer>
-                    <Dropdown
-                      id={`paymentMode-${index}`}
-                      onChange={({ selectedItem }) => field.onChange(selectedItem?.uuid)}
-                      titleText={t('paymentMode', 'Payment Mode')}
-                      label={t('selectPaymentMethod', 'Select payment method')}
-                      items={paymentModes ?? []}
-                      itemToString={(item) => (item ? item.name : '')}
-                      invalid={!!errors?.payment?.[index]?.paymentMode}
-                      invalidText={errors?.payment?.[index]?.paymentMode?.message}
-                    />
-                  </Layer>
-                )}
+      <div>
+        {fields.map((field, index) => (
+          <div key={field.id} className={styles.paymentMethodContainer}>
+            <Controller
+              control={control}
+              name={`payment.${index}.paymentMode`}
+              render={({ field }) => (
+                <Layer>
+                  <Dropdown
+                    id={`paymentMode-${index}`}
+                    onChange={({ selectedItem }) => field.onChange(selectedItem?.uuid)}
+                    titleText={t('paymentMode', 'Payment Mode')}
+                    label={t('selectPaymentMethod', 'Select payment method')}
+                    items={paymentModes ?? []}
+                    itemToString={(item) => (item ? item.name : '')}
+                    invalid={!!errors?.payment?.[index]?.paymentMode}
+                    invalidText={errors?.payment?.[index]?.paymentMode?.message}
+                  />
+                </Layer>
+              )}
+            />
+            <Controller
+              control={control}
+              name={`payment.${index}.price`}
+              render={({ field }) => (
+                <Layer>
+                  <TextInput
+                    id={`price-${index}`}
+                    {...field}
+                    invalid={!!errors?.payment?.[index]?.price}
+                    invalidText={errors?.payment?.[index]?.price?.message}
+                    labelText={t('sellingPrice', 'Selling Price')}
+                    placeholder={t('sellingAmount', 'Enter selling price')}
+                  />
+                </Layer>
+              )}
+            />
+            <div className={styles.removeButtonContainer}>
+              <TrashCan
+                aria-label={`delete_${index}`}
+                id={`delete_${index}`}
+                onClick={() => handleRemovePaymentMode(index)}
+                className={styles.removeButton}
+                size={20}
               />
-              <Controller
-                control={control}
-                name={`payment.${index}.price`}
-                render={({ field }) => (
-                  <Layer>
-                    <TextInput
-                      id={`price-${index}`}
-                      {...field}
-                      invalid={!!errors?.payment?.[index]?.price}
-                      invalidText={errors?.payment?.[index]?.price?.message}
-                      labelText={t('sellingPrice', 'Selling Price')}
-                      placeholder={t('sellingAmount', 'Enter selling price')}
-                    />
-                  </Layer>
-                )}
-              />
-              <div className={styles.removeButtonContainer}>
-                <TrashCan
-                  aria-label={`delete_${index}`}
-                  id={`delete_${index}`}
-                  onClick={() => handleRemovePaymentMode(index)}
-                  className={styles.removeButton}
-                  size={20}
-                />
-              </div>
             </div>
-          ))}
-          <Button
-            size="md"
-            onClick={handleAppendPaymentMode}
-            className={styles.paymentButtons}
-            renderIcon={(props) => <Add size={24} {...props} />}
-            iconDescription="Add">
-            {t('addPaymentOptions', 'Add payment option')}
-          </Button>
-        </div>
-      </section>
+          </div>
+        ))}
 
+        <Button
+          size="md"
+          onClick={handleAppendPaymentMode}
+          className={styles.paymentButtons}
+          renderIcon={(props) => <Add size={24} {...props} />}
+          iconDescription="Add">
+          {t('addPaymentOptions', 'Add payment option')}
+        </Button>
+      </div>
       <section>
         <Button kind="secondary" onClick={handleNavigateToServiceDashboard}>
           {t('cancel', 'Cancel')}
         </Button>
-        <Button type="submit" onClick={handleSubmit(onSubmit)}>
+        <Button type="submit" onClick={handleSubmit(onSubmit)} disabled={!isValid || !selectedConcept}>
           {t('save', 'Save')}
         </Button>
       </section>
diff --git a/packages/esm-billing-app/src/billable-services/create-edit/add-billable-service.scss b/packages/esm-billing-app/src/billable-services/create-edit/add-billable-service.scss
old mode 100644
new mode 100755
index 3b1f8c83..5c52a1ca
--- a/packages/esm-billing-app/src/billable-services/create-edit/add-billable-service.scss
+++ b/packages/esm-billing-app/src/billable-services/create-edit/add-billable-service.scss
@@ -9,10 +9,12 @@
   flex-direction: column;
   justify-content: space-between;
   height: 100%;
+  padding: spacing.$spacing-06;
 }
 
-.section {
-  margin: spacing.$spacing-03;
+.subTitle {
+  font-weight: 600;
+  font-size: 14px;
 }
 
 .sectionTitle {
@@ -43,7 +45,6 @@
 .paymentMethodContainer {
   display: grid;
   grid-template-columns: repeat(4, minmax(auto, 1fr));
-  align-items: flex-start;
   column-gap: 1rem;
   margin: 0.625rem 0;
   width: 100%;
@@ -100,7 +101,7 @@
 
 .conceptLabel {
   @include type.type-style('label-02');
-  margin: 1rem;
+  margin-bottom: 0.6rem;
 }
 
 .errorContainer {
@@ -130,3 +131,34 @@
     min-height: 1rem;
   }
 }
+
+.loader {
+  margin-top: 1rem;
+  margin-bottom: 1rem;
+  margin-left: auto;
+  margin-right: auto;
+  width: max-content;
+}
+
+.searchWrapper {
+  display: flex;
+  flex-direction: column;
+  align-items: center;
+  justify-items: center;
+}
+
+.nameSection {
+  display: flex;
+  gap: 20px;
+  align-items: flex-start;
+}
+
+.secondSection {
+  display: flex;
+  gap: 20px;
+  align-items: flex-start;
+}
+
+.serviceName {
+  width: 50%;
+}
diff --git a/packages/esm-billing-app/src/billable-services/dashboard/dashboard.component.tsx b/packages/esm-billing-app/src/billable-services/dashboard/dashboard.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billable-services/dashboard/dashboard.scss b/packages/esm-billing-app/src/billable-services/dashboard/dashboard.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billable-services/dashboard/service-metrics.component.tsx b/packages/esm-billing-app/src/billable-services/dashboard/service-metrics.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billing-dashboard/billing-dashboard.component.tsx b/packages/esm-billing-app/src/billing-dashboard/billing-dashboard.component.tsx
old mode 100644
new mode 100755
index 8235f6c8..6008d2a9
--- a/packages/esm-billing-app/src/billing-dashboard/billing-dashboard.component.tsx
+++ b/packages/esm-billing-app/src/billing-dashboard/billing-dashboard.component.tsx
@@ -4,6 +4,7 @@ import BillingHeader from '../billing-header/billing-header.component';
 import MetricsCards from '../metrics-cards/metrics-cards.component';
 import BillsTable from '../bills-table/bills-table.component';
 import styles from './billing-dashboard.scss';
+import BillingTabs from '../billing-tabs/billling-tabs.component';
 
 export function BillingDashboard() {
   const { t } = useTranslation();
@@ -12,9 +13,7 @@ export function BillingDashboard() {
     <main className={styles.container}>
       <BillingHeader title={t('home', 'Home')} />
       <MetricsCards />
-      <main className={styles.billsTableContainer}>
-        <BillsTable defaultBillPaymentStatus="PENDING" />
-      </main>
+      <BillingTabs />
     </main>
   );
 }
diff --git a/packages/esm-billing-app/src/billing-dashboard/billing-dashboard.scss b/packages/esm-billing-app/src/billing-dashboard/billing-dashboard.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billing-form/billing-checkin-form.component.tsx b/packages/esm-billing-app/src/billing-form/billing-checkin-form.component.tsx
old mode 100644
new mode 100755
index c2994c3f..24595d94
--- a/packages/esm-billing-app/src/billing-form/billing-checkin-form.component.tsx
+++ b/packages/esm-billing-app/src/billing-form/billing-checkin-form.component.tsx
@@ -25,7 +25,7 @@ const BillingCheckInForm: React.FC<BillingCheckInFormProps> = ({ patientUuid, se
   const { lineItems, isLoading: isLoadingLineItems, error: lineError } = useBillableItems();
   const [attributes, setAttributes] = useState([]);
   const [paymentMethod, setPaymentMethod] = useState<any>();
-  let lineList = [];
+  const [isPatientExemptedValue, setIsPatientExemptedValue] = useState<string | null>(null);
 
   const handleCreateBill = useCallback((createBillPayload) => {
     createPatientBill(createBillPayload).then(
@@ -51,7 +51,6 @@ const BillingCheckInForm: React.FC<BillingCheckInFormProps> = ({ patientUuid, se
       : PENDING_PAYMENT_STATUS;
 
     const lineItems = selectedItems.map((item, index) => {
-      // // should default to first price if check returns empty. todo - update backend to return default price
       const priceForPaymentMode =
         item.servicePrices.find((p) => p.paymentMode?.uuid === paymentMethod) || item?.servicePrices[0];
       return {
@@ -84,7 +83,7 @@ const BillingCheckInForm: React.FC<BillingCheckInFormProps> = ({ patientUuid, se
       handleCreateExtraVisitInfo: () => {},
       attributes,
     });
-  }, []);
+  }, [attributes, setExtraVisitInfo]);
 
   if (isLoadingLineItems || isLoadingCashPoints) {
     return (
@@ -96,13 +95,6 @@ const BillingCheckInForm: React.FC<BillingCheckInFormProps> = ({ patientUuid, se
     );
   }
 
-  if (paymentMethod) {
-    lineList = [];
-    lineList = lineItems.filter((e) =>
-      e.servicePrices.some((p) => p.paymentMode && p.paymentMode.uuid === paymentMethod?.uuid),
-    );
-  }
-
   if (cashError || lineError) {
     return (
       <InlineNotification
@@ -116,20 +108,28 @@ const BillingCheckInForm: React.FC<BillingCheckInFormProps> = ({ patientUuid, se
 
   return (
     <>
-      <VisitAttributesForm setAttributes={setAttributes} setPaymentMethod={setPaymentMethod} />
+      <VisitAttributesForm
+        setAttributes={setAttributes}
+        setPaymentMethod={setPaymentMethod}
+        setIsPatientExempted={setIsPatientExemptedValue}
+      />
       <SHANumberValidity paymentMethod={paymentMethod} />
-      <section className={styles.sectionContainer}>
-        <div className={styles.sectionTitle}>{t('billing', 'Billing')}</div>
-        <div className={styles.sectionField}>
-          <FilterableMultiSelect
-            id="billing-service"
-            titleText={t('searchServices', 'Search services')}
-            items={lineItems ?? []}
-            itemToString={(item) => (item ? item?.name : '')}
-            onChange={({ selectedItems }) => handleBillingService(selectedItems)}
-          />
-        </div>
-      </section>
+      {paymentMethod && (
+        <section className={styles.sectionContainer}>
+          <div className={styles.sectionTitle}>{t('billing', 'Billing')}</div>
+          <div className={styles.sectionField}>
+            <FilterableMultiSelect
+              key={isPatientExemptedValue}
+              id="billing-service"
+              titleText={t('searchServices', 'Search services')}
+              items={lineItems ?? []}
+              itemToString={(item) => (item ? item?.name : '')}
+              onChange={({ selectedItems }) => handleBillingService(selectedItems)}
+              disabled={isPatientExemptedValue === ''}
+            />
+          </div>
+        </section>
+      )}
     </>
   );
 };
diff --git a/packages/esm-billing-app/src/billing-form/billing-checkin-form.scss b/packages/esm-billing-app/src/billing-form/billing-checkin-form.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billing-form/billing-form.component.tsx b/packages/esm-billing-app/src/billing-form/billing-form.component.tsx
old mode 100644
new mode 100755
index ee60e514..cbeb959a
--- a/packages/esm-billing-app/src/billing-form/billing-form.component.tsx
+++ b/packages/esm-billing-app/src/billing-form/billing-form.component.tsx
@@ -97,7 +97,7 @@ const BillingForm: React.FC<BillingFormProps> = ({ closeWorkspace }) => {
   const filterItems = (val) => {
     setsearchVal(val);
 
-    if (!isLoading) {
+    if (isLoading) {
       /* empty */
     } else {
       if (typeof data !== 'undefined') {
@@ -109,13 +109,17 @@ const BillingForm: React.FC<BillingFormProps> = ({ closeWorkspace }) => {
         const res = data as { results: any[] };
 
         res.results.map((o) => {
-          if (o.commonName && (o.commonName != '' || o.commonName != null)) {
+          if (
+            o.commonName &&
+            (o.commonName != '' || o.commonName != null) &&
+            (o.purchasePrice != '' || o.purchasePrice != null)
+          ) {
             searchOptions.push({
               uuid: o.uuid,
               Item: o.commonName,
               Qnty: 1,
-              Price: 10,
-              Total: 10,
+              Price: o?.purchasePrice,
+              Total: o?.purchasePrice,
               category: 'StockItem',
             });
           } else {
@@ -124,8 +128,8 @@ const BillingForm: React.FC<BillingFormProps> = ({ closeWorkspace }) => {
                 uuid: o.uuid,
                 Item: o.name,
                 Qnty: 1,
-                Price: o.servicePrices[0].price,
-                Total: o.servicePrices[0].price,
+                Price: o.servicePrices[0]?.price,
+                Total: o.servicePrices[0]?.price,
                 category: 'Service',
               });
             }
diff --git a/packages/esm-billing-app/src/billing-form/billing-form.scss b/packages/esm-billing-app/src/billing-form/billing-form.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billing-form/helper.ts b/packages/esm-billing-app/src/billing-form/helper.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billing-form/social-health-authority/sha-number-validity.component.tsx b/packages/esm-billing-app/src/billing-form/social-health-authority/sha-number-validity.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billing-form/visit-attributes/visit-attributes-form.component.tsx b/packages/esm-billing-app/src/billing-form/visit-attributes/visit-attributes-form.component.tsx
old mode 100644
new mode 100755
index 96a59ec6..71db914c
--- a/packages/esm-billing-app/src/billing-form/visit-attributes/visit-attributes-form.component.tsx
+++ b/packages/esm-billing-app/src/billing-form/visit-attributes/visit-attributes-form.component.tsx
@@ -1,6 +1,5 @@
-import React, { useCallback } from 'react';
+import React, { useCallback, useEffect } from 'react';
 import { useTranslation } from 'react-i18next';
-import styles from './visit-attributes-form.scss';
 import { TextInput, InlineLoading, ComboBox, RadioButtonGroup, RadioButton } from '@carbon/react';
 import { Controller, useForm } from 'react-hook-form';
 import { zodResolver } from '@hookform/resolvers/zod';
@@ -8,15 +7,17 @@ import { z } from 'zod';
 import { useConfig } from '@openmrs/esm-framework';
 import { type BillingConfig } from '../../config-schema';
 import { usePaymentModes } from '../../billing.resource';
+import styles from './visit-attributes-form.scss';
 
 type VisitAttributesFormProps = {
   setAttributes: (state) => void;
   setPaymentMethod?: (value: any) => void;
+  setIsPatientExempted: (value: string) => void;
 };
 
 type VisitAttributesFormValue = {
   isPatientExempted: string;
-  paymentMethods: { uuid: string; name: string };
+  paymentMethods: { uuid: string; name: string } | null;
   insuranceScheme: string;
   policyNumber: string;
   exemptionCategory: string;
@@ -24,70 +25,70 @@ type VisitAttributesFormValue = {
 
 const visitAttributesFormSchema = z.object({
   isPatientExempted: z.string(),
-  paymentMethods: z.object({ uuid: z.string(), name: z.string() }),
-  insuranceSchema: z.string(),
-  policyNumber: z.string(),
-  exemptionCategory: z.string(),
+  paymentMethods: z.object({ uuid: z.string(), name: z.string() }).nullable(),
+  insuranceScheme: z.string().optional(),
+  policyNumber: z.string().optional(),
+  exemptionCategory: z.string().optional(),
 });
 
-const VisitAttributesForm: React.FC<VisitAttributesFormProps> = ({ setAttributes, setPaymentMethod }) => {
+const VisitAttributesForm: React.FC<VisitAttributesFormProps> = ({
+  setAttributes,
+  setPaymentMethod,
+  setIsPatientExempted,
+}) => {
   const { t } = useTranslation();
   const { visitAttributeTypes, patientExemptionCategories } = useConfig<BillingConfig>();
   const { control, getValues, watch, setValue } = useForm<VisitAttributesFormValue>({
     mode: 'all',
-    defaultValues: {},
+    defaultValues: {
+      isPatientExempted: '',
+      paymentMethods: null,
+      insuranceScheme: '',
+      policyNumber: '',
+      exemptionCategory: '',
+    },
     resolver: zodResolver(visitAttributesFormSchema),
   });
-  const [isPatientExempted, paymentMethods, insuranceSchema, policyNumber, exemptionCategory] = watch([
-    'isPatientExempted',
-    'paymentMethods',
-    'insuranceScheme',
-    'policyNumber',
-    'exemptionCategory',
-  ]);
 
   const { paymentModes, isLoading: isLoadingPaymentModes } = usePaymentModes();
+  const [isPatientExempted, paymentMethods] = watch(['isPatientExempted', 'paymentMethods']);
 
   const resetFormFieldsForNonExemptedPatients = useCallback(() => {
-    if ((isPatientExempted && paymentMethods !== null) || paymentMethods !== undefined) {
-      setValue('insuranceScheme', '');
-      setValue('policyNumber', '');
+    setValue('insuranceScheme', '');
+    setValue('policyNumber', '');
+    setValue('exemptionCategory', '');
+    setValue('paymentMethods', null);
+  }, [setValue]);
+
+  useEffect(() => {
+    if (isPatientExempted === 'true') {
+      resetFormFieldsForNonExemptedPatients();
     }
-  }, [isPatientExempted, paymentMethods, setValue]);
+    setIsPatientExempted(isPatientExempted);
+  }, [isPatientExempted, resetFormFieldsForNonExemptedPatients, setIsPatientExempted]);
 
   const createVisitAttributesPayload = useCallback(() => {
-    const { exemptionCategory, paymentMethods, policyNumber, isPatientExempted } = getValues();
-    setPaymentMethod(paymentMethods);
-    resetFormFieldsForNonExemptedPatients();
+    const values = getValues();
+    setPaymentMethod?.(values.paymentMethods);
     const formPayload = [
-      { uuid: visitAttributeTypes.isPatientExempted, value: isPatientExempted },
-      { uuid: visitAttributeTypes.paymentMethods, value: paymentMethods?.uuid },
-      { uuid: visitAttributeTypes.policyNumber, value: policyNumber },
-      { uuid: visitAttributeTypes.insuranceScheme, value: insuranceSchema },
-      { uuid: visitAttributeTypes.exemptionCategory, value: exemptionCategory },
+      { uuid: visitAttributeTypes.isPatientExempted, value: values.isPatientExempted },
+      { uuid: visitAttributeTypes.paymentMethods, value: values.paymentMethods?.uuid },
+      { uuid: visitAttributeTypes.policyNumber, value: values.policyNumber },
+      { uuid: visitAttributeTypes.insuranceScheme, value: values.insuranceScheme },
+      { uuid: visitAttributeTypes.exemptionCategory, value: values.exemptionCategory },
     ];
     const visitAttributesPayload = formPayload.filter(
       (item) => item.value !== undefined && item.value !== null && item.value !== '',
     );
-    return Object.entries(visitAttributesPayload).map(([key, value]) => ({
-      attributeType: value.uuid,
-      value: value.value,
+    return visitAttributesPayload.map(({ uuid, value }) => ({
+      attributeType: uuid,
+      value,
     }));
-  }, [
-    visitAttributeTypes.insuranceScheme,
-    visitAttributeTypes.isPatientExempted,
-    visitAttributeTypes.exemptionCategory,
-    visitAttributeTypes.paymentMethods,
-    visitAttributeTypes.policyNumber,
-    getValues,
-    insuranceSchema,
-    resetFormFieldsForNonExemptedPatients,
-    setPaymentMethod,
-  ]);
+  }, [getValues, visitAttributeTypes, setPaymentMethod]);
 
-  React.useEffect(() => {
+  useEffect(() => {
     setAttributes(createVisitAttributesPayload());
-  }, [paymentMethods, insuranceSchema, policyNumber, exemptionCategory, setAttributes, createVisitAttributesPayload]);
+  }, [isPatientExempted, paymentMethods, getValues, createVisitAttributesPayload, setAttributes]);
 
   if (isLoadingPaymentModes) {
     return (
@@ -109,17 +110,21 @@ const VisitAttributesForm: React.FC<VisitAttributesFormProps> = ({ setAttributes
             control={control}
             render={({ field }) => (
               <RadioButtonGroup
-                onChange={(selected) => field.onChange(selected)}
+                onChange={(selected) => {
+                  field.onChange(selected);
+                  setValue('isPatientExempted', selected);
+                }}
                 orientation="horizontal"
                 legendText={t('isPatientExemptedLegend', 'Is patient exempted from payment?')}
                 name="patientExemption">
-                <RadioButton labelText="Yes" value={true} id="Yes" />
-                <RadioButton labelText="No" value={false} id="No" />
+                <RadioButton labelText={t('yes', 'Yes')} value="true" id="Yes" />
+                <RadioButton labelText={t('no', 'No')} value="false" id="No" />
               </RadioButtonGroup>
             )}
           />
         </div>
-        {isPatientExempted && (
+
+        {isPatientExempted === 'true' && (
           <div className={styles.sectionFieldLayer}>
             <Controller
               control={control}
@@ -138,25 +143,28 @@ const VisitAttributesForm: React.FC<VisitAttributesFormProps> = ({ setAttributes
             />
           </div>
         )}
-        <div className={styles.sectionFieldLayer}>
-          <Controller
-            control={control}
-            name="paymentMethods"
-            render={({ field }) => (
-              <ComboBox
-                className={styles.sectionField}
-                onChange={({ selectedItem }) => field.onChange(selectedItem)}
-                id="paymentMethods"
-                items={paymentModes}
-                itemToString={(item) => (item ? item.name : '')}
-                titleText={t('paymentMethodsTitle', 'Payment methods')}
-                placeholder={t('selectPaymentMethodPlaceholder', 'Select payment method')}
-              />
-            )}
-          />
-        </div>
 
-        {paymentMethods?.name?.toLocaleLowerCase() === 'insurance' && (
+        {isPatientExempted === 'false' && (
+          <div className={styles.sectionFieldLayer}>
+            <Controller
+              control={control}
+              name="paymentMethods"
+              render={({ field }) => (
+                <ComboBox
+                  className={styles.sectionField}
+                  onChange={({ selectedItem }) => field.onChange(selectedItem)}
+                  id="paymentMethods"
+                  items={paymentModes}
+                  itemToString={(item) => (item ? item.name : '')}
+                  titleText={t('paymentMethodsTitle', 'Payment method')}
+                  placeholder={t('selectPaymentMethod', 'Select payment method')}
+                />
+              )}
+            />
+          </div>
+        )}
+
+        {paymentMethods?.name?.toLowerCase() === 'insurance' && isPatientExempted === 'false' && (
           <>
             <div className={styles.sectionFieldLayer}>
               <Controller
diff --git a/packages/esm-billing-app/src/billing-form/visit-attributes/visit-attributes-form.scss b/packages/esm-billing-app/src/billing-form/visit-attributes/visit-attributes-form.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billing-header/billing-header.component.tsx b/packages/esm-billing-app/src/billing-header/billing-header.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billing-header/billing-header.scss b/packages/esm-billing-app/src/billing-header/billing-header.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billing-header/billing-illustration.component.tsx b/packages/esm-billing-app/src/billing-header/billing-illustration.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billing-prompt/billing-prompt.resource.tsx b/packages/esm-billing-app/src/billing-prompt/billing-prompt.resource.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/billing-tabs/billing-tab.scss b/packages/esm-billing-app/src/billing-tabs/billing-tab.scss
new file mode 100755
index 00000000..e69de29b
diff --git a/packages/esm-billing-app/src/billing-tabs/billling-tabs.component.tsx b/packages/esm-billing-app/src/billing-tabs/billling-tabs.component.tsx
new file mode 100755
index 00000000..3adf2719
--- /dev/null
+++ b/packages/esm-billing-app/src/billing-tabs/billling-tabs.component.tsx
@@ -0,0 +1,38 @@
+import React, { useState } from 'react';
+import { useTranslation } from 'react-i18next';
+import { Tab, TabList, Tabs, TabPanel, TabPanels } from '@carbon/react';
+import styles from './billing-tab.scss';
+import PatientBillsScreen from '../past-patient-bills/patient-bills-dashboard/patient-bills-dashboard';
+import BillsTable from '../bills-table/bills-table.component';
+
+const BillingTabs = () => {
+  const { t } = useTranslation();
+  const [activeTabIndex, setActiveTabIndex] = useState<number>(0);
+
+  const handleTabChange = ({ selectedIndex }: { selectedIndex: number }) => {
+    setActiveTabIndex(selectedIndex);
+  };
+
+  return (
+    <div className={styles.referralsList} data-testid="BillingsList-list">
+      <Tabs selectedIndex={activeTabIndex} onChange={handleTabChange} className={styles.tabs}>
+        <div style={{ display: 'flex' }}>
+          <TabList style={{ paddingLeft: '1rem' }} aria-label="Billing tabs" contained>
+            <Tab className={styles.tab}>{"Today's bills"}</Tab>
+            <Tab className={styles.tab}>{t('patientBills', 'Patient Bill')}</Tab>
+          </TabList>
+        </div>
+        <TabPanels>
+          <TabPanel className={styles.tabPanel}>
+            <BillsTable />
+          </TabPanel>
+          <TabPanel className={styles.tabPanel}>
+            <PatientBillsScreen />
+          </TabPanel>
+        </TabPanels>
+      </Tabs>
+    </div>
+  );
+};
+
+export default BillingTabs;
diff --git a/packages/esm-billing-app/src/billing.resource.ts b/packages/esm-billing-app/src/billing.resource.ts
old mode 100644
new mode 100755
index a8a42ce0..d9c3c1ca
--- a/packages/esm-billing-app/src/billing.resource.ts
+++ b/packages/esm-billing-app/src/billing.resource.ts
@@ -97,7 +97,7 @@ export const useBill = (billUuid: string) => {
       cashPointUuid: bill?.cashPoint?.uuid,
       cashPointName: bill?.cashPoint?.name,
       cashPointLocation: bill?.cashPoint?.location?.display,
-      dateCreated: bill?.dateCreated ? formatDate(parseDate(bill.dateCreated), { mode: 'wide' }) : '--',
+      dateCreated: bill?.dateCreated ?? '--',
       lineItems: bill.lineItems,
       billingService: bill.lineItems.map((bill) => bill.item).join(' '),
       payments: bill.payments,
@@ -132,7 +132,7 @@ export const processBillPayment = (payload, billUuid: string) => {
 
 export function useDefaultFacility() {
   const { authenticated } = useSession();
-  const url = '/ws/rest/v1/amrs/default-facility';
+  const url = '/ws/rest/v1/kenyaemr/default-facility';
   const { data, isLoading } = useSWR<{ data: FacilityDetail }>(authenticated ? url : null, openmrsFetch, {});
   return { data: data?.data, isLoading: isLoading };
 }
@@ -181,8 +181,9 @@ export const usePaymentModes = (excludeWaiver: boolean = true) => {
   });
   const allowedPaymentModes =
     excludedPaymentMode?.length > 0
-      ? data?.data?.results.filter((mode) => !excludedPaymentMode.some((excluded) => excluded.uuid === mode.uuid)) ?? []
-      : data?.data?.results ?? [];
+      ? (data?.data?.results.filter((mode) => !excludedPaymentMode.some((excluded) => excluded.uuid === mode.uuid)) ??
+        [])
+      : (data?.data?.results ?? []);
   return {
     paymentModes: excludeWaiver ? allowedPaymentModes : data?.data?.results,
     isLoading,
diff --git a/packages/esm-billing-app/src/bills-table/bills-table.component.tsx b/packages/esm-billing-app/src/bills-table/bills-table.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/bills-table/bills-table.scss b/packages/esm-billing-app/src/bills-table/bills-table.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/claims/claims-wrap/claims-main-component.tsx b/packages/esm-billing-app/src/claims/claims-wrap/claims-main-component.tsx
new file mode 100755
index 00000000..65b5fd69
--- /dev/null
+++ b/packages/esm-billing-app/src/claims/claims-wrap/claims-main-component.tsx
@@ -0,0 +1,35 @@
+import React, { useEffect, useState } from 'react';
+import styles from './claims-main.scss';
+import { type LineItem, type MappedBill } from '../../types';
+import ClaimsTable from '../dashboard/table/claims-table.component';
+import { useBill } from '../../billing.resource';
+import { useTranslation } from 'react-i18next';
+import ClaimsForm from '../dashboard/form/claims-form.component';
+import MainMetrics from '../metrics/metrics.component';
+
+interface ClaimsMainProps {
+  bill: MappedBill;
+}
+
+const ClaimMainComponent: React.FC<ClaimsMainProps> = ({ bill }) => {
+  const [selectedLineItems, setSelectedLineItems] = useState<LineItem[]>([]);
+  const { isLoading: isLoadingBill, error } = useBill(bill.uuid);
+
+  const handleSelectItem = (lineItems: Array<LineItem>) => {
+    setSelectedLineItems(lineItems);
+  };
+
+  return (
+    <>
+      <MainMetrics selectedLineItems={selectedLineItems} bill={bill} />
+      <div className={styles.mainContainer}>
+        <div className={styles.content}>
+          <ClaimsTable bill={bill} isLoadingBill={isLoadingBill} onSelectItem={handleSelectItem} />
+          <ClaimsForm bill={bill} selectedLineItems={selectedLineItems} />
+        </div>
+      </div>
+    </>
+  );
+};
+
+export default ClaimMainComponent;
diff --git a/packages/esm-billing-app/src/claims/claims-wrap/claims-main.scss b/packages/esm-billing-app/src/claims/claims-wrap/claims-main.scss
new file mode 100755
index 00000000..001553fa
--- /dev/null
+++ b/packages/esm-billing-app/src/claims/claims-wrap/claims-main.scss
@@ -0,0 +1,25 @@
+.mainContainer {
+  display: flex;
+  margin: 0 auto;
+  padding: 0 1rem;
+}
+
+.content {
+  display: flex;
+  width: 100%;
+}
+
+:global(.omrs-breakpoint-lt-desktop) {
+  .mainContainer {
+    flex-direction: column;
+  }
+
+  .content {
+    flex-direction: column;
+  }
+}
+
+.claimContainer,
+.form {
+  flex: 1;
+}
diff --git a/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-breakdown/claims-breakdown.component.tsx b/packages/esm-billing-app/src/claims/dashboard/claims-breakdown/claims-breakdown.component.tsx
old mode 100644
new mode 100755
similarity index 100%
rename from packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-breakdown/claims-breakdown.component.tsx
rename to packages/esm-billing-app/src/claims/dashboard/claims-breakdown/claims-breakdown.component.tsx
diff --git a/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-breakdown/claims-breakdown.scss b/packages/esm-billing-app/src/claims/dashboard/claims-breakdown/claims-breakdown.scss
old mode 100644
new mode 100755
similarity index 100%
rename from packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-breakdown/claims-breakdown.scss
rename to packages/esm-billing-app/src/claims/dashboard/claims-breakdown/claims-breakdown.scss
diff --git a/packages/esm-billing-app/src/claims/dashboard/claims-dashboard.component.tsx b/packages/esm-billing-app/src/claims/dashboard/claims-dashboard.component.tsx
new file mode 100755
index 00000000..dc87cbeb
--- /dev/null
+++ b/packages/esm-billing-app/src/claims/dashboard/claims-dashboard.component.tsx
@@ -0,0 +1,41 @@
+import React from 'react';
+import { useParams } from 'react-router-dom';
+import { useTranslation } from 'react-i18next';
+import { usePatient, ErrorState } from '@openmrs/esm-framework';
+import styles from './header/claims-header.scss';
+import { InlineLoading } from '@carbon/react';
+import { useBill } from '../../billing.resource';
+import ClaimsHeader from './header/claims-header.component';
+
+const ClaimScreen: React.FC = () => {
+  const { billUuid, patientUuid } = useParams();
+  const { t } = useTranslation();
+
+  const { patient, isLoading: isLoadingPatient } = usePatient(patientUuid);
+  const { bill, isLoading: isLoadingBill, error } = useBill(billUuid);
+
+  if (isLoadingPatient && isLoadingBill) {
+    return (
+      <div className={styles.invoiceContainer}>
+        <InlineLoading
+          className={styles.loader}
+          status="active"
+          iconDescription="Loading"
+          description="Loading patient header..."
+        />
+      </div>
+    );
+  }
+
+  if (error) {
+    return (
+      <div className={styles.errorContainer}>
+        <ErrorState headerTitle={t('createClaimError', 'Create Claim error')} error={error} />
+      </div>
+    );
+  }
+
+  return <ClaimsHeader patient={patient} bill={bill} />;
+};
+
+export default ClaimScreen;
diff --git a/packages/esm-billing-app/src/claims/dashboard/form/claims-form.component.tsx b/packages/esm-billing-app/src/claims/dashboard/form/claims-form.component.tsx
new file mode 100755
index 00000000..8c315d94
--- /dev/null
+++ b/packages/esm-billing-app/src/claims/dashboard/form/claims-form.component.tsx
@@ -0,0 +1,396 @@
+import React, { useEffect, useMemo, useState } from 'react';
+import { useTranslation } from 'react-i18next';
+import {
+  Column,
+  TextArea,
+  Form,
+  Layer,
+  Stack,
+  TextInput,
+  Row,
+  ButtonSet,
+  Button,
+  FilterableMultiSelect,
+  MultiSelect,
+  InlineLoading,
+} from '@carbon/react';
+import styles from './claims-form.scss';
+import { type MappedBill, type LineItem } from '../../../types';
+import { navigate, showSnackbar } from '@openmrs/esm-framework';
+import { useSystemSetting } from '../../../hooks/getMflCode';
+import { useParams } from 'react-router-dom';
+import { processClaims, useProviders, useVisit } from './claims-form.resource';
+import { useForm, Controller } from 'react-hook-form';
+import { z } from 'zod';
+import { zodResolver } from '@hookform/resolvers/zod';
+import { extractNameString, formatDate } from '../../../helpers/functions';
+
+type ClaimsFormProps = {
+  bill: MappedBill;
+  selectedLineItems: LineItem[];
+};
+
+const ClaimsFormSchema = z.object({
+  claimCode: z.string().nonempty({ message: 'Claim code is required' }),
+  guaranteeId: z.string().nonempty({ message: 'Guarantee Id is required' }),
+  claimExplanation: z.string().nonempty({ message: 'Claim explanation is required' }),
+  claimJustification: z.string().nonempty({ message: 'Claim justification is required' }),
+  providerName: z
+    .array(
+      z.object({
+        id: z.string(),
+        text: z.string(),
+      }),
+    )
+    .nonempty({ message: 'At least one provider is required' }),
+  diagnoses: z
+    .array(
+      z.object({
+        id: z.string(),
+        text: z.string(),
+      }),
+    )
+    .nonempty({ message: 'At least one diagnosis is required' }),
+  visitType: z.string().nonempty({ message: 'Visit type is required' }),
+  facility: z.string().nonempty({ message: 'Facility is required' }),
+  treatmentStart: z.string().nonempty({ message: 'Treatment start date is required' }),
+  treatmentEnd: z.string().nonempty({ message: 'Treatment end date is required' }),
+});
+
+const ClaimsForm: React.FC<ClaimsFormProps> = ({ bill, selectedLineItems }) => {
+  const { t } = useTranslation();
+  const { mflCodeValue } = useSystemSetting('facility.mflcode');
+  const { patientUuid, billUuid } = useParams();
+  const { visits: recentVisit } = useVisit(patientUuid);
+  const visitUuid = recentVisit?.visitType.uuid;
+
+  const { data } = useProviders();
+  const [loading, setLoading] = useState(false);
+  const providers = data?.data.results.map((provider) => ({ id: provider.uuid, text: provider.display })) || [];
+
+  const handleNavigateToBillingOptions = () =>
+    navigate({
+      to: window.getOpenmrsSpaBase() + `home/billing/patient/${patientUuid}/${billUuid}`,
+    });
+
+  const diagnoses = useMemo(() => {
+    return (
+      recentVisit?.encounters?.flatMap(
+        (encounter) =>
+          encounter.diagnoses.map((diagnosis) => ({
+            id: diagnosis.diagnosis.coded.uuid,
+            text: diagnosis.display,
+            certainty: diagnosis.certainty,
+          })) || [],
+      ) || []
+    );
+  }, [recentVisit]);
+
+  const confirmedDiagnoses = useMemo(() => {
+    return diagnoses.filter((diagnosis) => diagnosis.certainty === 'CONFIRMED');
+  }, [diagnoses]);
+
+  const {
+    control,
+    handleSubmit,
+    formState: { errors, isValid },
+    setValue,
+    reset,
+  } = useForm({
+    mode: 'all',
+    resolver: zodResolver(ClaimsFormSchema),
+    defaultValues: {
+      claimCode: '',
+      guaranteeId: '',
+      claimExplanation: '',
+      claimJustification: '',
+      providerName: [],
+      diagnoses: [],
+      visitType: recentVisit?.visitType?.display || '',
+      facility: `${recentVisit?.location?.display || ''} - ${mflCodeValue || ''}`,
+      treatmentStart: recentVisit?.startDatetime ? formatDate(recentVisit.startDatetime) : '',
+      treatmentEnd: recentVisit?.stopDatetime ? formatDate(recentVisit.stopDatetime) : '',
+    },
+  });
+
+  const onSubmit = async (data) => {
+    setLoading(true);
+    const providedItems = selectedLineItems.reduce((acc, item) => {
+      acc[item.uuid] = {
+        items: [
+          {
+            uuid: item.itemOrServiceConceptUuid,
+            price: item.price,
+            quantity: item.quantity,
+          },
+        ],
+        explanation: data.claimExplanation,
+        justification: data.claimJustification,
+      };
+      return acc;
+    }, {});
+
+    const payload = {
+      providedItems,
+      claimExplanation: data.claimExplanation,
+      claimJustification: data.claimJustification,
+      startDate: data.treatmentStart,
+      endDate: data.treatmentEnd,
+      location: mflCodeValue,
+      diagnoses: data.diagnoses.map((diagnosis) => diagnosis.id),
+      paidInFacility: true,
+      patient: patientUuid,
+      visitType: visitUuid,
+      guaranteeId: data.guaranteeId,
+      providers: data.providerName.map((provider) => provider.id),
+      claimCode: data.claimCode,
+      use: 'claim',
+      insurer: 'SHA',
+      billNumber: billUuid,
+    };
+    try {
+      await processClaims(payload);
+      showSnackbar({
+        kind: 'success',
+        title: t('processClaim', 'Process Claim'),
+        subtitle: t('sendClaim', 'Claim sent successfully'),
+        timeoutInMs: 3000,
+        isLowContrast: true,
+      });
+      reset();
+      setTimeout(() => {
+        navigate({
+          to: window.getOpenmrsSpaBase() + `home/billing/`,
+        });
+      }, 2000);
+    } catch (err) {
+      console.error(err);
+      showSnackbar({
+        kind: 'error',
+        title: t('claimError', 'Claim Error'),
+        subtitle: t('sendClaimError', 'Request Failed, Please try later........'),
+        timeoutInMs: 2500,
+        isLowContrast: true,
+      });
+    } finally {
+      setLoading(false);
+    }
+  };
+
+  useEffect(() => {
+    setValue('diagnoses', confirmedDiagnoses);
+    setValue('visitType', recentVisit?.visitType?.display || '');
+    setValue('facility', `${recentVisit?.location?.display || ''} - ${mflCodeValue || ''}`);
+    setValue('treatmentStart', recentVisit?.startDatetime ? formatDate(recentVisit.startDatetime) : '');
+    setValue('treatmentEnd', recentVisit?.stopDatetime ? formatDate(recentVisit.stopDatetime) : '');
+  }, [confirmedDiagnoses, recentVisit, mflCodeValue, setValue]);
+  return (
+    <Form className={styles.form} onSubmit={handleSubmit(onSubmit)}>
+      <Stack gap={4} className={styles.grid}>
+        <span className={styles.claimFormTitle}>{t('formTitle', 'Fill in the form details')}</span>
+        <Row className={styles.formClaimRow}>
+          <Column className={styles.formClaimColumn}>
+            <Layer className={styles.input}>
+              <Controller
+                control={control}
+                name="visitType"
+                render={({ field }) => (
+                  <TextInput
+                    {...field}
+                    id="visittype"
+                    labelText={t('visittype', 'Visit Type')}
+                    readOnly
+                    value={field.value}
+                  />
+                )}
+              />
+            </Layer>
+          </Column>
+          <Column className={styles.formClaimColumn}>
+            <Layer className={styles.input}>
+              <Controller
+                control={control}
+                name="facility"
+                render={({ field }) => (
+                  <TextInput
+                    {...field}
+                    id="facility"
+                    labelText={t('facility', 'Facility')}
+                    readOnly
+                    value={field.value}
+                  />
+                )}
+              />
+            </Layer>
+          </Column>
+        </Row>
+        <Row className={styles.formClaimRow}>
+          <Column className={styles.formClaimColumn}>
+            <Layer className={styles.input}>
+              <Controller
+                control={control}
+                name="treatmentStart"
+                render={({ field }) => (
+                  <TextInput
+                    {...field}
+                    id="treatmentStart"
+                    labelText={t('treatmentstart', 'Treatment Start')}
+                    readOnly
+                    value={field.value}
+                  />
+                )}
+              />
+            </Layer>
+          </Column>
+          <Column className={styles.formClaimColumn}>
+            <Layer className={styles.input}>
+              <Controller
+                control={control}
+                name="treatmentEnd"
+                render={({ field }) => (
+                  <TextInput
+                    {...field}
+                    id="treatmentEnd"
+                    labelText={t('treatmentend', 'Treatment End')}
+                    readOnly
+                    value={field.value}
+                  />
+                )}
+              />
+            </Layer>
+          </Column>
+        </Row>
+        <Column>
+          <Layer className={styles.input}>
+            <Controller
+              control={control}
+              name="diagnoses"
+              render={({ field }) => (
+                <MultiSelect
+                  {...field}
+                  id="diagnoses"
+                  titleText={t('diagnoses', 'Diagnoses')}
+                  items={diagnoses}
+                  itemToString={(item) => (item ? item.text : '')}
+                  selectionFeedback="top-after-reopen"
+                  selectedItems={field.value}
+                  onChange={({ selectedItems }) => field.onChange(selectedItems)}
+                />
+              )}
+            />
+          </Layer>
+        </Column>
+        <Column>
+          <Layer className={styles.input}>
+            <Controller
+              control={control}
+              name="providerName"
+              render={({ field }) => (
+                <FilterableMultiSelect
+                  {...field}
+                  id="provider_name"
+                  titleText={t('provider_name', 'Provider Name')}
+                  items={providers}
+                  itemToString={(item) => (item ? extractNameString(item.text) : '')}
+                  selectionFeedback="top-after-reopen"
+                  selectedItems={field.value}
+                  onChange={({ selectedItems }) => field.onChange(selectedItems)}
+                />
+              )}
+            />
+          </Layer>
+        </Column>
+        <Row className={styles.formClaimRow}>
+          <Column className={styles.formClaimColumn}>
+            <Layer className={styles.input}>
+              <Controller
+                control={control}
+                name="guaranteeId"
+                render={({ field }) => (
+                  <TextInput
+                    {...field}
+                    id="guaranteeId"
+                    placeholder="Guarantee Id"
+                    labelText={t('guaranteeId', 'Guarantee Id')}
+                    invalid={!!errors.guaranteeId}
+                    invalidText={errors.guaranteeId?.message}
+                  />
+                )}
+              />
+            </Layer>
+          </Column>
+          <Column className={styles.formClaimColumn}>
+            <Layer className={styles.input}>
+              <Controller
+                control={control}
+                name="claimCode"
+                render={({ field }) => (
+                  <TextInput
+                    {...field}
+                    id="claimcode"
+                    placeholder="Claim Code"
+                    labelText={t('claimcode', 'Claim Code')}
+                    invalid={!!errors.claimCode}
+                    invalidText={errors.claimCode?.message}
+                  />
+                )}
+              />
+            </Layer>
+          </Column>
+        </Row>
+        <Column>
+          <Layer className={styles.input}>
+            <Controller
+              control={control}
+              name="claimExplanation"
+              render={({ field }) => (
+                <TextArea
+                  {...field}
+                  labelText={t('claimExplanation', 'Claim Explanation')}
+                  rows={3}
+                  placeholder="Claim Explanation"
+                  id="claimExplanation"
+                  invalid={!!errors.claimExplanation}
+                  invalidText={errors.claimExplanation?.message}
+                />
+              )}
+            />
+          </Layer>
+        </Column>
+        <Column>
+          <Layer className={styles.input}>
+            <Controller
+              control={control}
+              name="claimJustification"
+              render={({ field }) => (
+                <TextArea
+                  {...field}
+                  labelText={t('claimJustification', 'Claim Justification')}
+                  rows={3}
+                  placeholder="Claim Justification"
+                  id="claimJustification"
+                  invalid={!!errors.claimJustification}
+                  invalidText={errors.claimJustification?.message}
+                />
+              )}
+            />
+          </Layer>
+        </Column>
+        <ButtonSet className={styles.buttonSet}>
+          <Button className={styles.button} kind="secondary" onClick={handleNavigateToBillingOptions}>
+            {t('discardClaim', 'Discard Claim')}
+          </Button>
+          <Button className={styles.button} kind="primary" type="submit" disabled={!isValid || loading}>
+            {loading ? (
+              <InlineLoading description={t('processing', 'Processing...')} />
+            ) : (
+              t('processClaim', 'Process Claim')
+            )}
+          </Button>
+        </ButtonSet>
+      </Stack>
+    </Form>
+  );
+};
+
+export default ClaimsForm;
diff --git a/packages/esm-billing-app/src/claims/dashboard/form/claims-form.resource.ts b/packages/esm-billing-app/src/claims/dashboard/form/claims-form.resource.ts
new file mode 100755
index 00000000..a4e53555
--- /dev/null
+++ b/packages/esm-billing-app/src/claims/dashboard/form/claims-form.resource.ts
@@ -0,0 +1,49 @@
+import useSWR from 'swr';
+import { FetchResponse, openmrsFetch, restBaseUrl, type Visit } from '@openmrs/esm-framework';
+import useSWRImmutable from 'swr/immutable';
+
+interface Provider {
+  uuid: string;
+  display: string;
+}
+
+interface ProvidersResponse {
+  results: Provider[];
+}
+
+export function useVisit(patientUuid: string) {
+  const customRepresentation =
+    'custom:(uuid,encounters:(uuid,diagnoses:(uuid,display,certainty,diagnosis:(coded:(uuid,display))),encounterDatetime,encounterType:(uuid,display),encounterProviders:(uuid,display,provider:(uuid,person:(uuid,display)))),location:(uuid,name,display),visitType:(uuid,name,display),startDatetime,stopDatetime)&limit=1';
+
+  const { data, error, isLoading, isValidating, mutate } = useSWR<{ data: { results: Array<Visit> } }, Error>(
+    `${restBaseUrl}/visit?patient=${patientUuid}&v=${customRepresentation}`,
+    openmrsFetch,
+  );
+
+  return {
+    visits: data ? data?.data?.results[0] : null,
+    error,
+    isLoading,
+    isValidating,
+    mutateVisits: mutate,
+  };
+}
+
+export const useProviders = () => {
+  const customRepresentation = 'custom:(uuid,display)';
+  const url = `/ws/rest/v1/provider?v=${customRepresentation}`;
+  const { data, error, isLoading } = useSWRImmutable<{ data: ProvidersResponse }>(url, openmrsFetch);
+
+  return { data, error, isLoading };
+};
+
+export const processClaims = (payload) => {
+  const url = `/ws/rest/v1/insuranceclaims/claims`;
+  return openmrsFetch(url, {
+    method: 'POST',
+    body: JSON.stringify(payload),
+    headers: {
+      'Content-Type': 'application/json',
+    },
+  });
+};
diff --git a/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-form/claims-form.scss b/packages/esm-billing-app/src/claims/dashboard/form/claims-form.scss
old mode 100644
new mode 100755
similarity index 57%
rename from packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-form/claims-form.scss
rename to packages/esm-billing-app/src/claims/dashboard/form/claims-form.scss
index 6c920f90..298ec130
--- a/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-form/claims-form.scss
+++ b/packages/esm-billing-app/src/claims/dashboard/form/claims-form.scss
@@ -21,10 +21,58 @@
 }
 
 .form {
+  width: 100%;
+  margin: layout.$spacing-09 layout.$spacing-05 0;
   display: flex;
   flex-direction: column;
   justify-content: space-between;
-  width: 50%;
+  background-color: white;
+
+  :global(.omrs-breakpoint-lt-desktop) {
+    width: 50%;
+    padding: spacing.$spacing-06 spacing.$spacing-05;
+  }
+
+  .claimFormTitle {
+    @include type.type-style('heading-02');
+    display: flex;
+    align-items: center;
+    justify-content: space-between;
+    margin: spacing.$spacing-05 0 1rem;
+    row-gap: 1.5rem;
+    position: relative;
+
+    &::after {
+      content: '';
+      display: block;
+      width: 2rem;
+      border-bottom: 0.375rem solid var(--brand-03);
+      position: absolute;
+      bottom: -0.75rem;
+      left: 0;
+    }
+
+    & > span {
+      @include type.type-style('body-01');
+    }
+  }
+
+  .buttonSet {
+    padding: 0rem;
+    margin-top: spacing.$spacing-03;
+    display: flex;
+    justify-content: flex-end;
+    gap: spacing.$spacing-05;
+    margin-bottom: spacing.$spacing-07;
+
+    :global(.omrs-breakpoint-lt-desktop) {
+      justify-content: center;
+    }
+  }
+
+  :global(.omrs-breakpoint-lt-desktop) {
+    width: 768px;
+  }
 }
 
 .grid {
@@ -36,24 +84,8 @@
   margin-top: spacing.$spacing-05;
 }
 
-.inputRow {
-  margin-top: spacing.$spacing-05;
-  width: 50%; // Adjust width as per your design requirements
-}
-
-.datePickersRow {
-  display: flex;
-  flex-wrap: nowrap;
-  gap: spacing.$spacing-05; // Adjust gap between columns
-  align-items: center;
-}
-
-.datePickerInput {
-  width: 100%;
-}
-
 .button {
-  height: spacing.$spacing-10;
+  height: spacing.$spacing-08;
   display: flex;
   align-content: flex-start;
   align-items: baseline;
@@ -66,7 +98,7 @@
   display: flex;
   justify-content: flex-end;
   gap: spacing.$spacing-05;
-  margin-bottom: spacing.$spacing-05;
+  margin-bottom: spacing.$spacing-07;
 }
 
 .claimFormTitle {
@@ -74,7 +106,7 @@
   display: flex;
   align-items: center;
   justify-content: space-between;
-  margin: spacing.$spacing-05;
+  margin: spacing.$spacing-05 0 spacing.$spacing-03;
   row-gap: 1.5rem;
   position: relative;
 
@@ -94,10 +126,6 @@
 }
 
 :global(.omrs-breakpoint-lt-desktop) {
-  .form {
-    height: var(--tablet-workspace-window-height);
-  }
-
   .buttonSet {
     padding: spacing.$spacing-06 spacing.$spacing-05;
     background-color: $ui-02;
@@ -106,13 +134,12 @@
   }
 }
 
-/* New Styles for Facility and Visit Type */
-.facilityVisitRow {
+.formClaimRow {
   display: flex;
   flex-wrap: nowrap;
-  gap: spacing.$spacing-05; /* Adjust gap between columns */
+  gap: spacing.$spacing-05;
 }
 
-.facilityColumn {
-  flex: 1 1 0%; /* Makes columns take up equal space */
+.formClaimColumn {
+  flex: 1 1 0%;
 }
diff --git a/packages/esm-billing-app/src/claims/dashboard/header/claims-header.component.tsx b/packages/esm-billing-app/src/claims/dashboard/header/claims-header.component.tsx
new file mode 100755
index 00000000..c997ca3e
--- /dev/null
+++ b/packages/esm-billing-app/src/claims/dashboard/header/claims-header.component.tsx
@@ -0,0 +1,23 @@
+import React from 'react';
+import { ExtensionSlot } from '@openmrs/esm-framework';
+import styles from './claims-header.scss';
+import ClaimMainComponent from '../../claims-wrap/claims-main-component';
+import { type MappedBill } from '../../../types';
+
+interface ClaimsHeaderProps {
+  patient: fhir.Patient;
+  bill: MappedBill;
+}
+
+const ClaimsHeader: React.FC<ClaimsHeaderProps> = ({ patient, bill }) => {
+  return (
+    <div className={styles.claimContainer}>
+      {patient && <ExtensionSlot name="patient-header-slot" state={{ patientUuid: patient.id, patient }} />}
+      <div className={styles.detailsContainer}>
+        <ClaimMainComponent bill={bill} />
+      </div>
+    </div>
+  );
+};
+
+export default ClaimsHeader;
diff --git a/packages/esm-billing-app/src/claims/dashboard/header/claims-header.scss b/packages/esm-billing-app/src/claims/dashboard/header/claims-header.scss
new file mode 100755
index 00000000..f0e04ce4
--- /dev/null
+++ b/packages/esm-billing-app/src/claims/dashboard/header/claims-header.scss
@@ -0,0 +1,23 @@
+@use '@carbon/colors';
+@use '@carbon/layout';
+@use '@carbon/type';
+
+.claimContainer {
+  background-color: colors.$gray-10;
+  height: calc(100vh - 3rem);
+}
+
+.errorContainer {
+  margin: layout.$spacing-05;
+}
+
+.loader {
+  display: flex;
+  min-height: layout.$spacing-09;
+  justify-content: center;
+}
+.claimTitle {
+  @include type.type-style('heading-02');
+  display: flex;
+  margin: layout.$spacing-05;
+}
diff --git a/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-table.component.tsx/claims-table.component.tsx b/packages/esm-billing-app/src/claims/dashboard/table/claims-table.component.tsx
old mode 100644
new mode 100755
similarity index 76%
rename from packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-table.component.tsx/claims-table.component.tsx
rename to packages/esm-billing-app/src/claims/dashboard/table/claims-table.component.tsx
index 91740187..6e221b80
--- a/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-table.component.tsx/claims-table.component.tsx
+++ b/packages/esm-billing-app/src/claims/dashboard/table/claims-table.component.tsx
@@ -17,13 +17,13 @@ import {
   TableToolbarSearch,
   TableSelectRow,
   Tile,
+  Pagination,
   type DataTableHeader,
   type DataTableRow,
 } from '@carbon/react';
-import { isDesktop, useDebounce, useLayoutType } from '@openmrs/esm-framework';
+import { formatDate, isDesktop, useDebounce, useLayoutType } from '@openmrs/esm-framework';
 import styles from './claims-table.scss';
-import { type LineItem, type MappedBill } from '../../../../types';
-import ClaimsForm from '../claims-form/claims-form.component';
+import { type LineItem, type MappedBill } from '../../../types';
 
 type ClaimsTableProps = {
   bill: MappedBill;
@@ -35,39 +35,49 @@ type ClaimsTableProps = {
 const ClaimsTable: React.FC<ClaimsTableProps> = ({ bill, isSelectable = true, isLoadingBill, onSelectItem }) => {
   const { t } = useTranslation();
   const { lineItems } = bill;
-  const paidLineItems = lineItems?.filter((item) => item.paymentStatus === 'PAID') ?? [];
   const layout = useLayoutType();
   const responsiveSize = isDesktop(layout) ? 'sm' : 'lg';
-  const [selectedLineItems, setSelectedLineItems] = useState(paidLineItems ?? []);
+  const [selectedLineItems, setSelectedLineItems] = useState<LineItem[]>([]);
   const [searchTerm, setSearchTerm] = useState('');
   const debouncedSearchTerm = useDebounce(searchTerm);
+  const [currentPage, setCurrentPage] = useState(1);
+  const [pageSize, setPageSize] = useState(10);
+
+  const paidLineItems = useMemo(() => lineItems.filter((item) => item.paymentStatus === 'PAID'), [lineItems]);
+
   const filteredLineItems = useMemo(() => {
     if (!debouncedSearchTerm) {
-      return lineItems;
+      return paidLineItems;
     }
 
-    return debouncedSearchTerm
-      ? fuzzy
-          .filter(debouncedSearchTerm, lineItems, {
-            extract: (lineItem: LineItem) => `${lineItem.item}`,
-          })
-          .sort((r1, r2) => r1.score - r2.score)
-          .map((result) => result.original)
-      : lineItems;
-  }, [debouncedSearchTerm, lineItems]);
+    return fuzzy
+      .filter(debouncedSearchTerm, paidLineItems, {
+        extract: (lineItem: LineItem) => `${lineItem.item}`,
+      })
+      .sort((r1, r2) => r1.score - r2.score)
+      .map((result) => result.original);
+  }, [debouncedSearchTerm, paidLineItems]);
+
+  const paginatedLineItems = useMemo(() => {
+    const startIndex = (currentPage - 1) * pageSize;
+    const endIndex = startIndex + pageSize;
+    return filteredLineItems.slice(startIndex, endIndex);
+  }, [filteredLineItems, currentPage, pageSize]);
 
   const tableHeaders: Array<typeof DataTableHeader> = [
     { header: 'No', key: 'no' },
     { header: 'Serial No.', key: 'serialno' },
-    { header: 'Inventory Name', key: 'inventoryname' },
+    { header: 'Bill Item', key: 'inventoryname' },
     { header: 'Status', key: 'status' },
-    { header: 'Total', key: 'total' },
+    { header: 'Total amount', key: 'total' },
+    { header: 'Bill creation date', key: 'dateofbillcreation' },
   ];
+
   const processBillItem = (item) => (item.item || item.billableService)?.split(':')[1];
 
   const tableRows: Array<typeof DataTableRow> = useMemo(
     () =>
-      filteredLineItems?.map((item, index) => {
+      paginatedLineItems?.map((item, index) => {
         return {
           no: `${index + 1}`,
           id: `${item.uuid}`,
@@ -75,9 +85,10 @@ const ClaimsTable: React.FC<ClaimsTableProps> = ({ bill, isSelectable = true, is
           serialno: bill.receiptNumber,
           status: item.paymentStatus,
           total: item.price * item.quantity,
+          dateofbillcreation: formatDate(new Date(bill.dateCreated), { mode: 'standard' }),
         };
       }) ?? [],
-    [bill.receiptNumber, filteredLineItems],
+    [bill.dateCreated, bill.receiptNumber, paginatedLineItems],
   );
 
   if (isLoadingBill) {
@@ -180,7 +191,20 @@ const ClaimsTable: React.FC<ClaimsTableProps> = ({ bill, isSelectable = true, is
           </Layer>
         </div>
       )}
-      <ClaimsForm />
+      <Pagination
+        forwardText="Next page"
+        backwardText="Previous page"
+        page={currentPage}
+        pageSize={pageSize}
+        pageSizes={[5, 10, 20, 50]}
+        totalItems={filteredLineItems.length}
+        className={styles.pagination}
+        size={responsiveSize}
+        onChange={({ pageSize: newPageSize, page: newPage }) => {
+          setPageSize(newPageSize);
+          setCurrentPage(newPage);
+        }}
+      />
     </div>
   );
 };
diff --git a/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-table.component.tsx/claims-table.scss b/packages/esm-billing-app/src/claims/dashboard/table/claims-table.scss
old mode 100644
new mode 100755
similarity index 91%
rename from packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-table.component.tsx/claims-table.scss
rename to packages/esm-billing-app/src/claims/dashboard/table/claims-table.scss
index bb7a5d56..b2345896
--- a/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-table.component.tsx/claims-table.scss
+++ b/packages/esm-billing-app/src/claims/dashboard/table/claims-table.scss
@@ -32,12 +32,20 @@
 }
 
 .claimContainer {
+  width: 100%;
   margin: layout.$spacing-09 layout.$spacing-05 0;
   border: 1px solid $ui-03;
   display: flex;
+  flex-direction: column;
   justify-content: flex-start;
 }
 
+:global(.omrs-breakpoint-lt-desktop) {
+  .claimContainer {
+    width: 100%;
+  }
+}
+
 .searchbox {
   input:focus {
     outline: 2px solid colors.$orange-40 !important;
@@ -91,13 +99,10 @@
     height: layout.$spacing-07;
   }
 }
+
 .tableContainer {
   width: 100%;
 }
-
-@media (min-width: 1200px) {
-  .tableContainer {
-    width: 50%;
-    margin-right: auto;
-  }
+.pagination {
+  background: white;
 }
diff --git a/packages/esm-billing-app/src/invoice/claims/make-claims.component.tsx b/packages/esm-billing-app/src/claims/make-claims.component.tsx
old mode 100644
new mode 100755
similarity index 72%
rename from packages/esm-billing-app/src/invoice/claims/make-claims.component.tsx
rename to packages/esm-billing-app/src/claims/make-claims.component.tsx
index 86672f19..78958156
--- a/packages/esm-billing-app/src/invoice/claims/make-claims.component.tsx
+++ b/packages/esm-billing-app/src/claims/make-claims.component.tsx
@@ -4,12 +4,13 @@ import styles from './make-claims.scss';
 import { Button } from '@carbon/react';
 import { Report } from '@carbon/react/icons';
 import { navigate } from '@openmrs/esm-framework';
-import { spaBasePath } from '../../constants';
+import { spaBasePath } from '../constants';
 
-const MakeClaims: React.FC = () => {
+const MakeClaims: React.FC<{ patientUuid: string; billUuid: string }> = ({ patientUuid, billUuid }) => {
   const { t } = useTranslation();
+
   const navigateToCreateClaimScreen = () => {
-    navigate({ to: `${spaBasePath}/billing/claims` });
+    navigate({ to: `${spaBasePath}/billing/patient/${patientUuid}/${billUuid}/claims` });
   };
 
   return (
diff --git a/packages/esm-billing-app/src/invoice/claims/make-claims.scss b/packages/esm-billing-app/src/claims/make-claims.scss
old mode 100644
new mode 100755
similarity index 100%
rename from packages/esm-billing-app/src/invoice/claims/make-claims.scss
rename to packages/esm-billing-app/src/claims/make-claims.scss
diff --git a/packages/esm-billing-app/src/claims/metrics/metrics-card.component.tsx b/packages/esm-billing-app/src/claims/metrics/metrics-card.component.tsx
new file mode 100755
index 00000000..ee97d485
--- /dev/null
+++ b/packages/esm-billing-app/src/claims/metrics/metrics-card.component.tsx
@@ -0,0 +1,36 @@
+import React from 'react';
+import classNames from 'classnames';
+import { Layer, Tile } from '@carbon/react';
+import styles from './metrics-card.scss';
+
+interface MetricsCardProps {
+  label: string;
+  value: number | string;
+  headerLabel: string;
+  children?: React.ReactNode;
+  service?: string;
+}
+
+const MetricsCard: React.FC<MetricsCardProps> = ({ label, value, headerLabel, children }) => {
+  return (
+    <Layer
+      className={classNames(styles.container, {
+        [styles.cardWithChildren]: children,
+      })}>
+      <Tile className={styles.tileContainer}>
+        <div className={styles.tileHeader}>
+          <div className={styles.headerLabelContainer}>
+            <label className={styles.headerLabel}>{headerLabel}</label>
+            {children}
+          </div>
+        </div>
+        <div>
+          <label className={styles.totalsLabel}>{label}</label>
+          <p className={styles.totalsValue}>{value}</p>
+        </div>
+      </Tile>
+    </Layer>
+  );
+};
+
+export default MetricsCard;
diff --git a/packages/esm-billing-app/src/claims/metrics/metrics-card.scss b/packages/esm-billing-app/src/claims/metrics/metrics-card.scss
new file mode 100755
index 00000000..cf2f451f
--- /dev/null
+++ b/packages/esm-billing-app/src/claims/metrics/metrics-card.scss
@@ -0,0 +1,76 @@
+@use '@carbon/styles/scss/spacing';
+@use '@carbon/styles/scss/type';
+@import '~@openmrs/esm-styleguide/src/vars';
+
+.container {
+  flex-grow: 1;
+}
+
+:global(.omrs-breakpoint-lt-desktop) {
+  .cardWithChildren {
+    order: 3;
+  }
+}
+
+.tileContainer {
+  border: 0.0625rem solid $ui-03;
+  height: 7.875rem;
+  padding: spacing.$spacing-05;
+  margin: spacing.$spacing-03 spacing.$spacing-03;
+}
+
+.tileHeader {
+  display: flex;
+  justify-content: space-between;
+  align-items: baseline;
+  margin-bottom: spacing.$spacing-03;
+}
+
+.headerLabel {
+  @include type.type-style('heading-compact-01');
+}
+
+.totalsLabel {
+  @include type.type-style('label-01');
+  color: $text-02;
+}
+
+.totalsValue {
+  @include type.type-style('heading-04');
+  color: $ui-05;
+}
+
+.headerLabelContainer {
+  display: flex;
+  height: spacing.$spacing-07;
+
+  :global(.cds--dropdown__wrapper--inline) {
+    gap: 0;
+    margin-top: -0.75rem;
+  }
+
+  :global(.cds--list-box__menu-icon) {
+    height: 1rem;
+  }
+}
+
+.link {
+  text-decoration: none;
+  display: flex;
+  align-items: center;
+  color: $interactive-01;
+
+  svg {
+    margin-left: spacing.$spacing-03;
+  }
+}
+
+html[dir='rtl'] {
+  .link {
+    svg {
+      margin-right: spacing.$spacing-03;
+      margin-left: unset;
+      transform: scale(-1, 1);
+    }
+  }
+}
diff --git a/packages/esm-billing-app/src/claims/metrics/metrics-header.component.tsx b/packages/esm-billing-app/src/claims/metrics/metrics-header.component.tsx
new file mode 100755
index 00000000..c50679f3
--- /dev/null
+++ b/packages/esm-billing-app/src/claims/metrics/metrics-header.component.tsx
@@ -0,0 +1,16 @@
+import React from 'react';
+import { useTranslation } from 'react-i18next';
+import styles from './metrics-header.scss';
+
+const MetricsHeader = () => {
+  const { t } = useTranslation();
+  const metricsTitle = t('claimSummary', 'Claim Summary');
+
+  return (
+    <div className={styles.metricsContainer}>
+      <span className={styles.metricsTitle}>{metricsTitle}</span>
+    </div>
+  );
+};
+
+export default MetricsHeader;
diff --git a/packages/esm-billing-app/src/claims/metrics/metrics-header.scss b/packages/esm-billing-app/src/claims/metrics/metrics-header.scss
new file mode 100755
index 00000000..572b4622
--- /dev/null
+++ b/packages/esm-billing-app/src/claims/metrics/metrics-header.scss
@@ -0,0 +1,16 @@
+@use '@carbon/layout';
+@use '@carbon/type';
+@import '~@openmrs/esm-styleguide/src/vars';
+
+.metricsContainer {
+  display: flex;
+  justify-content: space-between;
+  height: layout.$spacing-10;
+  align-items: center;
+  padding: 0 layout.$spacing-05;
+}
+
+.metricsTitle {
+  @include type.type-style('heading-03');
+  color: $ui-05;
+}
diff --git a/packages/esm-billing-app/src/claims/metrics/metrics.component.tsx b/packages/esm-billing-app/src/claims/metrics/metrics.component.tsx
new file mode 100755
index 00000000..5691cfb6
--- /dev/null
+++ b/packages/esm-billing-app/src/claims/metrics/metrics.component.tsx
@@ -0,0 +1,47 @@
+import React from 'react';
+import { useTranslation } from 'react-i18next';
+import styles from './metrics.scss';
+import MetricsHeader from './metrics-header.component';
+import MetricsCard from './metrics-card.component';
+import { computeTotalPrice } from '../../utils';
+import { type LineItem, type MappedBill } from '../../types';
+import { convertToCurrency, formatDate } from '../../helpers';
+
+interface MainMetricsProps {
+  selectedLineItems: LineItem[];
+  bill: MappedBill;
+}
+
+const MainMetrics: React.FC<MainMetricsProps> = ({ selectedLineItems, bill }) => {
+  const { t } = useTranslation();
+
+  const numberOfLineItems = selectedLineItems.length;
+
+  const hasMoreThanOneLineItem = bill?.lineItems?.length > 1;
+  const computedTotal = hasMoreThanOneLineItem ? computeTotalPrice(selectedLineItems) : (bill.totalAmount ?? 0);
+
+  return (
+    <>
+      <MetricsHeader />
+      <div className={styles.cardContainer} data-testid="claims-metrics">
+        <MetricsCard
+          label={t('total', 'Amount')}
+          value={convertToCurrency(computedTotal)}
+          headerLabel={t('totalAmount', 'Total Amount')}
+        />
+        <MetricsCard
+          label={t('items', 'Items')}
+          value={numberOfLineItems.toString()}
+          headerLabel={t('claimsItems', 'Claims Items')}
+        />
+        <MetricsCard
+          label={t('date', 'Date of Claimed')}
+          value={formatDate(bill.dateCreated)}
+          headerLabel={t('date', 'Date of Claimed')}
+        />
+      </div>
+    </>
+  );
+};
+
+export default MainMetrics;
diff --git a/packages/esm-billing-app/src/claims/metrics/metrics.scss b/packages/esm-billing-app/src/claims/metrics/metrics.scss
new file mode 100755
index 00000000..237cdef4
--- /dev/null
+++ b/packages/esm-billing-app/src/claims/metrics/metrics.scss
@@ -0,0 +1,10 @@
+@use '@carbon/styles/scss/spacing';
+@import '~@openmrs/esm-styleguide/src/vars';
+
+.cardContainer {
+  display: flex;
+  justify-content: space-between;
+  padding: 0 spacing.$spacing-05 spacing.$spacing-07 spacing.$spacing-03;
+  flex-flow: row wrap;
+  margin-top: -(spacing.$spacing-03);
+}
diff --git a/packages/esm-billing-app/src/config-schema.ts b/packages/esm-billing-app/src/config-schema.ts
old mode 100644
new mode 100755
index f7b86295..b59aa36f
--- a/packages/esm-billing-app/src/config-schema.ts
+++ b/packages/esm-billing-app/src/config-schema.ts
@@ -9,6 +9,7 @@ export interface BillingConfig {
     exemptionCategory: string;
     billPaymentStatus: string;
   };
+  inPatientVisitTypeUuid: string;
   patientExemptionCategories: Array<{ value: string; label: string }>;
   excludedPaymentMode: Array<{ uuid: string; label: string }>;
   enforceBillPayment: boolean;
@@ -17,9 +18,21 @@ export interface BillingConfig {
   passKey: string;
   authorizationUrl: string;
   initiateUrl: string;
+  billingStatusQueryUrl: string;
+  mpesaAPIBaseUrl: string;
 }
 
 export const configSchema = {
+  inPatientVisitTypeUuid: {
+    _type: Type.String,
+    _description: 'The visit type uuid for in-patient',
+    _default: 'a73e2ac6-263b-47fc-99fc-e0f2c09fc914',
+  },
+  mpesaAPIBaseUrl: {
+    _type: Type.String,
+    _description: 'The base url that will be used to make any backend calls related to mpesa.',
+    _default: 'https://billing.kenyahmis.org',
+  },
   visitAttributeTypes: {
     isPatientExempted: {
       _type: Type.String,
@@ -112,4 +125,9 @@ export const configSchema = {
     _default: '',
     _description: 'MPESA Initiator url which Initiates online payment on behalf of a customer.',
   },
+  billingStatusQueryUrl: {
+    _type: Type.String,
+    _default: '${restBaseUrl}/cashier/billLineItem?orderUuid=${orderUuid}&v=full',
+    _description: 'URL to query billing status',
+  },
 };
diff --git a/packages/esm-billing-app/src/constants.ts b/packages/esm-billing-app/src/constants.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/dashboard.meta.ts b/packages/esm-billing-app/src/dashboard.meta.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/declarations.d.ts b/packages/esm-billing-app/src/declarations.d.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/helpers/functions.ts b/packages/esm-billing-app/src/helpers/functions.ts
old mode 100644
new mode 100755
index 6228b792..e0793d98
--- a/packages/esm-billing-app/src/helpers/functions.ts
+++ b/packages/esm-billing-app/src/helpers/functions.ts
@@ -1,3 +1,4 @@
+import dayjs from 'dayjs';
 import { type Payment, type LineItem } from '../types';
 
 // amount already paid
@@ -81,3 +82,16 @@ function removeUUID(str) {
   // Replace the UUID with an empty string
   return str.replace(uuidPattern, '');
 }
+
+// cleans the provider display name
+export function extractNameString(formattedString) {
+  if (!formattedString) {
+    return '';
+  }
+  const parts = formattedString.split(' - ');
+  return parts.length > 1 ? parts[1] : '';
+}
+
+export function formatDate(date) {
+  return dayjs(date).format('YYYY-MM-DD');
+}
diff --git a/packages/esm-billing-app/src/helpers/index.ts b/packages/esm-billing-app/src/helpers/index.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/hooks/getMflCode.tsx b/packages/esm-billing-app/src/hooks/getMflCode.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/hooks/usePatientAttributes.tsx b/packages/esm-billing-app/src/hooks/usePatientAttributes.tsx
new file mode 100755
index 00000000..03c15da6
--- /dev/null
+++ b/packages/esm-billing-app/src/hooks/usePatientAttributes.tsx
@@ -0,0 +1,26 @@
+import { openmrsFetch, type OpenmrsResource, restBaseUrl, useConfig } from '@openmrs/esm-framework';
+import useSWRImmutable from 'swr/immutable';
+
+interface PatientAttributes extends OpenmrsResource {
+  attributeType: OpenmrsResource;
+  value: string;
+}
+
+/**
+ * Custom hook to fetch and retrieve patient attributes for a given patient UUID.
+ *
+ * @param patientUuid - The UUID of the patient.
+ * @returns An object containing the patient's phone number, loading state, and error state.
+ */
+export const usePatientAttributes = (patientUuid: string) => {
+  const config = useConfig({ externalModuleName: '@ampath/esm-patient-registration-app' });
+  const { data, isLoading, error } = useSWRImmutable<{ data: { person: { attributes: Array<PatientAttributes> } } }>(
+    `${restBaseUrl}/patient/${patientUuid}?v=custom:(person:(attributes:(uuid,display,value,attributeType:(uuid,name)))`,
+    openmrsFetch,
+  );
+  const patientPhoneAttribute = data?.data?.person?.attributes.find(
+    (attr) => attr.attributeType.uuid === config?.fieldConfigurations?.phone?.personAttributeUuid,
+  )?.value;
+
+  return { phoneNumber: patientPhoneAttribute, isLoading, error };
+};
diff --git a/packages/esm-billing-app/src/hooks/useRequestStatus.tsx b/packages/esm-billing-app/src/hooks/useRequestStatus.tsx
new file mode 100755
index 00000000..ea629803
--- /dev/null
+++ b/packages/esm-billing-app/src/hooks/useRequestStatus.tsx
@@ -0,0 +1,55 @@
+import { useState, useEffect, type SetStateAction } from 'react';
+import { getRequestStatus, readableStatusMap, getErrorMessage } from '../m-pesa/mpesa-resource';
+import { useTranslation } from 'react-i18next';
+import { useConfig } from '@openmrs/esm-framework';
+import { type BillingConfig } from '../config-schema';
+import { type RequestStatus } from '../types';
+
+type RequestData = { requestId: string; requestStatus: RequestStatus | null };
+
+/**
+ * useRequestStatus
+ * @param setNotification a function to call with the appropriate notification type
+ * @returns a function to trigger the polling.
+ */
+export const useRequestStatus = (
+  setNotification: React.Dispatch<SetStateAction<{ type: 'error' | 'success'; message: string } | null>>,
+): [RequestData, React.Dispatch<React.SetStateAction<RequestData | null>>] => {
+  const { t } = useTranslation();
+  const { mpesaAPIBaseUrl } = useConfig<BillingConfig>();
+
+  const [requestData, setRequestData] = useState<{ requestId: string; requestStatus: RequestStatus | null }>({
+    requestId: null,
+    requestStatus: null,
+  });
+
+  useEffect(() => {
+    let interval: NodeJS.Timeout;
+
+    if (requestData.requestId && !['COMPLETE', 'FAILED', 'NOT-FOUND'].includes(requestData.requestStatus)) {
+      const fetchStatus = async () => {
+        try {
+          const status = await getRequestStatus(requestData.requestId, mpesaAPIBaseUrl);
+          if (status === 'COMPLETE' || status === 'FAILED' || status === 'NOT-FOUND') {
+            clearInterval(interval);
+          }
+          if (status === 'COMPLETE' || status === 'INITIATED') {
+            setNotification({ type: 'success', message: readableStatusMap.get(status) });
+          }
+          if (status === 'FAILED' || status === 'NOT-FOUND') {
+            setNotification({ type: 'error', message: readableStatusMap.get(status) });
+          }
+        } catch (error) {
+          clearInterval(interval);
+          setNotification({ type: 'error', message: getErrorMessage(error, t) });
+        }
+      };
+
+      interval = setInterval(fetchStatus, 2000);
+
+      return () => clearInterval(interval);
+    }
+  }, [mpesaAPIBaseUrl, requestData.requestId, requestData.requestStatus, setNotification, t]);
+
+  return [requestData, setRequestData];
+};
diff --git a/packages/esm-billing-app/src/index.ts b/packages/esm-billing-app/src/index.ts
old mode 100644
new mode 100755
index 2a2b54a9..737fdda8
--- a/packages/esm-billing-app/src/index.ts
+++ b/packages/esm-billing-app/src/index.ts
@@ -12,8 +12,12 @@ import BillingForm from './billing-form/billing-form.component';
 import RequirePaymentModal from './modal/require-payment-modal.component';
 import VisitAttributeTags from './invoice/payments/visit-tags/visit-attribute.component';
 import InitiatePaymentDialog from './invoice/payments/initiate-payment/initiate-payment.component';
-import DrugOrder from './billable-services/billiable-item/drug-order.component';
-import LabOrder from './billable-services/billiable-item/lab-order.component';
+import DrugOrder from './billable-services/billiable-item/drug-order/drug-order.component';
+import LabOrder from './billable-services/billiable-item/test-order/lab-order.component';
+import TestOrderAction from './billable-services/billiable-item/test-order/test-order-action.component';
+import PriceInfoOrder from './billable-services/billiable-item/test-order/price-info-order.componet';
+import ProcedureOrder from './billable-services/billiable-item/test-order/procedure-order.component';
+import ImagingOrder from './billable-services/billiable-item/test-order/imaging-order.component';
 
 const moduleName = '@ampath/esm-billing-app';
 
@@ -51,4 +55,8 @@ export const requirePaymentModal = getSyncLifecycle(RequirePaymentModal, options
 export const visitAttributeTags = getSyncLifecycle(VisitAttributeTags, options);
 export const initiatePaymentDialog = getSyncLifecycle(InitiatePaymentDialog, options);
 export const labOrder = getSyncLifecycle(LabOrder, options);
+export const priceInfoOrder = getSyncLifecycle(PriceInfoOrder, options);
+export const procedureOrder = getSyncLifecycle(ProcedureOrder, options);
+export const imagingOrder = getSyncLifecycle(ImagingOrder, options);
 export const drugOrder = getSyncLifecycle(DrugOrder, options);
+export const testOrderAction = getSyncLifecycle(TestOrderAction, options);
diff --git a/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-dashboard.component.tsx b/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-dashboard.component.tsx
deleted file mode 100644
index 995a9cc6..00000000
--- a/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-dashboard.component.tsx
+++ /dev/null
@@ -1,15 +0,0 @@
-import React from 'react';
-import { useTranslation } from 'react-i18next';
-import ClaimsHeader from './claims-header/claims-header.component';
-
-const ClaimScreen: React.FC = () => {
-  const { t } = useTranslation();
-
-  return (
-    <>
-      <ClaimsHeader />
-    </>
-  );
-};
-
-export default ClaimScreen;
diff --git a/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-form/claims-form.component.tsx b/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-form/claims-form.component.tsx
deleted file mode 100644
index 8cbf21e6..00000000
--- a/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-form/claims-form.component.tsx
+++ /dev/null
@@ -1,129 +0,0 @@
-import React from 'react';
-import { useTranslation } from 'react-i18next';
-import {
-  Column,
-  Form,
-  Layer,
-  Stack,
-  TextInput,
-  Row,
-  DatePicker,
-  ButtonSet,
-  Button,
-  DatePickerInput,
-} from '@carbon/react';
-import styles from './claims-form.scss';
-
-const ClaimsForm: React.FC = () => {
-  const { t } = useTranslation();
-
-  return (
-    <Form className={styles.form}>
-      <span className={styles.claimFormTitle}>{t('formTitle', 'Fill in the form details')}</span>
-      <Stack gap={4} className={styles.grid}>
-        <Column>
-          <Layer className={styles.input}>
-            <TextInput
-              id="claimExplanation"
-              invalidText="Required"
-              placeholder="Claim Explanation"
-              labelText={t('claimExplanation', 'Claim Explanation')}
-            />
-          </Layer>
-        </Column>
-        <Row className={styles.facilityVisitRow}>
-          <Column className={styles.facilityColumn}>
-            <Layer className={styles.input}>
-              <DatePicker datePickerType="single">
-                <DatePickerInput
-                  placeholder="mm/dd/yyyy"
-                  labelText={t('treatmentstart', 'Treatment Start')}
-                  id="date-picker-single-claims-1"
-                  size="xl"
-                  className={styles.datePickerInput}
-                />
-              </DatePicker>
-            </Layer>
-          </Column>
-          <Column className={styles.facilityColumn}>
-            <Layer className={styles.input}>
-              <DatePicker datePickerType="single">
-                <DatePickerInput
-                  placeholder="mm/dd/yyyy"
-                  labelText={t('treatmentend', 'Treatment End')}
-                  id="date-picker-single-claims-2"
-                  size="xl"
-                  className={styles.datePickerInput}
-                />
-              </DatePicker>
-            </Layer>
-          </Column>
-        </Row>
-        <Row className={styles.facilityVisitRow}>
-          <Column className={styles.facilityColumn}>
-            <Layer className={styles.input}>
-              <TextInput
-                id="visitType"
-                invalidText="Required"
-                placeholder="Visit Type"
-                labelText={t('visitType', ' Visit Type')}
-              />
-            </Layer>
-          </Column>
-          <Column className={styles.facilityColumn}>
-            <Layer className={styles.input}>
-              <TextInput
-                id="facility"
-                invalidText="Required"
-                placeholder="Facility"
-                labelText={t('facility', 'Facility')}
-              />
-            </Layer>
-          </Column>
-        </Row>
-        <Row className={styles.facilityVisitRow}>
-          <Column className={styles.facilityColumn}>
-            <Layer className={styles.input}>
-              <TextInput
-                id="claimcode"
-                invalidText="Required"
-                placeholder="Claim Code"
-                labelText={t('claimcode', ' Claim Code')}
-              />
-            </Layer>
-          </Column>
-          <Column className={styles.facilityColumn}>
-            <Layer className={styles.input}>
-              <TextInput
-                id="guarantee"
-                invalidText="Required"
-                placeholder="Guarantee ID"
-                labelText={t('guarantee', 'Guarantee ID')}
-              />
-            </Layer>
-          </Column>
-        </Row>
-        <Column>
-          <Layer className={styles.input}>
-            <TextInput
-              id="diagnosis"
-              invalidText="Required"
-              placeholder="Diagnosis"
-              labelText={t('diagnosis', 'Diagnosis')}
-            />
-          </Layer>
-        </Column>
-      </Stack>
-      <ButtonSet className={styles.buttonSet}>
-        <Button className={styles.button} kind="danger">
-          {t('discardClaim', 'Discard Claim')}
-        </Button>
-        <Button className={styles.button} kind="primary" type="submit">
-          {t('processClaim', 'Process Claim')}
-        </Button>
-      </ButtonSet>
-    </Form>
-  );
-};
-
-export default ClaimsForm;
diff --git a/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-header/claims-header.component.tsx b/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-header/claims-header.component.tsx
deleted file mode 100644
index 5cc3bb6a..00000000
--- a/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-header/claims-header.component.tsx
+++ /dev/null
@@ -1,63 +0,0 @@
-import React, { useEffect, useState } from 'react';
-import { InlineLoading } from '@carbon/react';
-import { useParams } from 'react-router-dom';
-import { useTranslation } from 'react-i18next';
-import { ExtensionSlot, usePatient, showModal } from '@openmrs/esm-framework';
-import { ErrorState } from '@openmrs/esm-patient-common-lib';
-import styles from './claims-header.scss';
-import { useBill } from '../../../../billing.resource';
-import { type LineItem } from '../../../../types';
-import ClaimsTable from '../claims-table.component.tsx/claims-table.component';
-import { ClaimsBreakDown } from '../claims-breakdown/claims-breakdown.component';
-import ClaimsForm from '../claims-form/claims-form.component';
-
-const ClaimsHeader: React.FC = () => {
-  const { t } = useTranslation();
-  const { billUuid, patientUuid } = useParams();
-  const { patient, isLoading: isLoadingPatient } = usePatient(patientUuid);
-  const { bill, isLoading: isLoadingBill, error } = useBill(billUuid);
-  const [selectedLineIems, setSelectedLineItems] = useState([]);
-  const handleSelectItem = (lineItems: Array<LineItem>) => {
-    setSelectedLineItems(lineItems);
-  };
-
-  useEffect(() => {
-    const paidLineItems = bill?.lineItems?.filter((item) => item.paymentStatus === 'PAID') ?? [];
-    setSelectedLineItems(paidLineItems);
-  }, [bill.lineItems]);
-
-  if (isLoadingPatient && isLoadingBill) {
-    return (
-      <div className={styles.claimContainer}>
-        <InlineLoading
-          className={styles.loader}
-          status="active"
-          iconDescription="Loading"
-          description="Loading patient header..."
-        />
-      </div>
-    );
-  }
-
-  if (error) {
-    return (
-      <div className={styles.errorContainer}>
-        <ErrorState headerTitle={t('invoiceError', 'Invoice error')} error={error} />
-      </div>
-    );
-  }
-
-  return (
-    <div className={styles.claimContainer}>
-      {patient && patientUuid && <ExtensionSlot name="patient-header-slot" state={{ patient, patientUuid }} />}
-      <div className={styles.detailsContainer}>
-        <span className={styles.claimTitle}>Create Claim Form</span>
-      </div>
-
-      <ClaimsTable bill={bill} isLoadingBill={isLoadingBill} onSelectItem={handleSelectItem} />
-      <ClaimsBreakDown label={t('amountClaimed', 'Amount Claimed')} value="Ksh. 1000" />
-    </div>
-  );
-};
-
-export default ClaimsHeader;
diff --git a/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-header/claims-header.scss b/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-header/claims-header.scss
deleted file mode 100644
index 09aa2aed..00000000
--- a/packages/esm-billing-app/src/invoice/claims/claims-dashboard/claims-header/claims-header.scss
+++ /dev/null
@@ -1,51 +0,0 @@
-@use '@carbon/colors';
-@use '@carbon/layout';
-@use '@carbon/type';
-
-.claimContainer {
-  background-color: colors.$gray-10;
-  height: calc(100vh - 3rem);
-}
-
-.errorContainer {
-  margin: layout.$spacing-05;
-}
-
-.loader {
-  display: flex;
-  min-height: layout.$spacing-09;
-  justify-content: center;
-}
-.claimTitle {
-  @include type.type-style('heading-02');
-  display: flex;
-  flex: 3;
-  flex-flow: row wrap;
-  align-items: center;
-  justify-content: space-between;
-  margin: layout.$spacing-05;
-  row-gap: 1.5rem;
-}
-.details {
-  display: flex;
-  flex: 3;
-  flex-flow: row wrap;
-  align-items: center;
-  justify-content: space-between;
-  margin: layout.$spacing-05;
-  row-gap: 1.5rem;
-}
-
-@media screen {
-  .printContainer {
-    background-color: colors.$white;
-    display: none;
-  }
-}
-
-@media print {
-  html,
-  body {
-    background-color: colors.$white !important;
-  }
-}
diff --git a/packages/esm-billing-app/src/invoice/invoice-table.component.tsx b/packages/esm-billing-app/src/invoice/invoice-table.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/invoice/invoice-table.scss b/packages/esm-billing-app/src/invoice/invoice-table.scss
old mode 100644
new mode 100755
index 1f43be14..50516695
--- a/packages/esm-billing-app/src/invoice/invoice-table.scss
+++ b/packages/esm-billing-app/src/invoice/invoice-table.scss
@@ -32,7 +32,7 @@
 }
 
 .invoiceContainer {
-  margin: layout.$spacing-09 layout.$spacing-05 0;
+  margin: layout.$spacing-05;
   border: 1px solid $ui-03;
 }
 
diff --git a/packages/esm-billing-app/src/invoice/invoice.component.tsx b/packages/esm-billing-app/src/invoice/invoice.component.tsx
old mode 100644
new mode 100755
index c685c532..b58f9494
--- a/packages/esm-billing-app/src/invoice/invoice.component.tsx
+++ b/packages/esm-billing-app/src/invoice/invoice.component.tsx
@@ -1,20 +1,19 @@
-import React, { useCallback, useEffect, useRef, useState } from 'react';
+import React, { useEffect, useRef, useState } from 'react';
 import { Button, InlineLoading } from '@carbon/react';
-import { Printer } from '@carbon/react/icons';
+import { BaggageClaim, Printer, Wallet } from '@carbon/react/icons';
 import { useParams } from 'react-router-dom';
 import { useReactToPrint } from 'react-to-print';
 import { useTranslation } from 'react-i18next';
-import { ExtensionSlot, usePatient, showModal } from '@openmrs/esm-framework';
+import { ExtensionSlot, usePatient, showModal, formatDatetime, parseDate, navigate } from '@openmrs/esm-framework';
 import { ErrorState } from '@openmrs/esm-patient-common-lib';
 import { convertToCurrency } from '../helpers';
 import { type LineItem } from '../types';
-import { useBill } from '../billing.resource';
+import { useBill, useDefaultFacility } from '../billing.resource';
 import InvoiceTable from './invoice-table.component';
 import Payments from './payments/payments.component';
-import PrintReceipt from './printable-invoice/print-receipt.component';
 import PrintableInvoice from './printable-invoice/printable-invoice.component';
 import styles from './invoice.scss';
-import MakeClaims from './claims/make-claims.component';
+import { spaBasePath } from '../constants';
 
 interface InvoiceDetailsProps {
   label: string;
@@ -23,41 +22,30 @@ interface InvoiceDetailsProps {
 
 const Invoice: React.FC = () => {
   const { t } = useTranslation();
+  const { data: facilityInfo } = useDefaultFacility();
   const { billUuid, patientUuid } = useParams();
+  const [isPrinting, setIsPrinting] = useState(false);
   const { patient, isLoading: isLoadingPatient } = usePatient(patientUuid);
   const { bill, isLoading: isLoadingBill, error } = useBill(billUuid);
-  const [isPrinting, setIsPrinting] = useState(false);
   const [selectedLineItems, setSelectedLineItems] = useState([]);
   const componentRef = useRef<HTMLDivElement>(null);
-  const onBeforeGetContentResolve = useRef<(() => void) | null>(null);
+
   const handleSelectItem = (lineItems: Array<LineItem>) => {
     const paidLineItems = bill?.lineItems?.filter((item) => item.paymentStatus === 'PAID') ?? [];
     setSelectedLineItems([...lineItems, ...paidLineItems]);
   };
 
-  const handleAfterPrint = useCallback(() => {
-    onBeforeGetContentResolve.current = null;
-    setIsPrinting(false);
-  }, []);
-
-  const reactToPrintContent = useCallback(() => componentRef.current, []);
-
-  const handleOnBeforeGetContent = useCallback(() => {
-    return new Promise<void>((resolve) => {
-      if (patient && bill) {
-        setIsPrinting(true);
-        onBeforeGetContentResolve.current = resolve;
-      }
-    });
-  }, [bill, patient]);
-
   const handlePrint = useReactToPrint({
-    content: reactToPrintContent,
+    content: () => componentRef.current,
     documentTitle: `Invoice ${bill?.receiptNumber} - ${patient?.name?.[0]?.given?.join(' ')} ${
       patient?.name?.[0].family
     }`,
-    onBeforeGetContent: handleOnBeforeGetContent,
-    onAfterPrint: handleAfterPrint,
+    onBeforePrint() {
+      setIsPrinting(true);
+    },
+    onAfterPrint() {
+      setIsPrinting(false);
+    },
     removeAfterPrint: true,
   });
 
@@ -73,17 +61,11 @@ const Invoice: React.FC = () => {
     setSelectedLineItems(paidLineItems);
   }, [bill.lineItems]);
 
-  useEffect(() => {
-    if (isPrinting && onBeforeGetContentResolve.current) {
-      onBeforeGetContentResolve.current();
-    }
-  }, [isPrinting]);
-
   const invoiceDetails = {
     'Total Amount': convertToCurrency(bill?.totalAmount),
     'Amount Tendered': convertToCurrency(bill?.tenderedAmount),
     'Invoice Number': bill.receiptNumber,
-    'Date And Time': bill?.dateCreated,
+    'Date And Time': formatDatetime(parseDate(bill.dateCreated), { mode: 'standard', noToday: true }),
     'Invoice Status': bill?.status,
   };
 
@@ -117,29 +99,58 @@ const Invoice: React.FC = () => {
             <InvoiceDetails key={key} label={key} value={val} />
           ))}
         </section>
-        <div>
-          <Button onClick={handleBillPayment} iconDescription="Initiate Payment" size="md">
-            {t('initiatePayment', 'Initiate Payment')}
-          </Button>
-          <Button
-            disabled={isPrinting}
-            onClick={handlePrint}
-            renderIcon={(props) => <Printer size={24} {...props} />}
-            iconDescription="Print bill"
-            className={styles.button}
-            size="md">
-            {t('printBill', 'Print bill')}
-          </Button>
-          {/* {bill.status === 'PAID' ? <PrintReceipt billId={bill?.id} /> : null} */}
-          <MakeClaims />
-        </div>
+      </div>
+      <div className={styles.actionArea}>
+        <Button
+          kind="secondary"
+          size="sm"
+          disabled={bill?.status !== 'PAID'}
+          onClick={() => navigate({ to: `\${openmrsBase}/ws/rest/v1/cashier/receipt?billId=${bill.id}` })}
+          renderIcon={Printer}
+          iconDescription="Add">
+          {t('printRecept', 'Print receipt')}
+        </Button>
+        <Button
+          onClick={handlePrint}
+          kind="tertiary"
+          size="sm"
+          disabled={isPrinting}
+          renderIcon={Printer}
+          iconDescription="Add"
+          tooltipPosition="right">
+          {isPrinting ? t('printingInvoice', 'Printing invoice...') : t('printInvoice', 'Print invoice')}
+        </Button>
+        <Button
+          onClick={handleBillPayment}
+          disabled={bill?.status === 'PAID'}
+          size="sm"
+          renderIcon={Wallet}
+          iconDescription="Add"
+          tooltipPosition="left">
+          {t('mpesaPayment', 'MPESA Payment')}
+        </Button>
+        <Button
+          onClick={() => navigate({ to: `${spaBasePath}/billing/patient/${patientUuid}/${billUuid}/claims` })}
+          kind="danger"
+          size="sm"
+          renderIcon={BaggageClaim}
+          iconDescription="Add"
+          tooltipPosition="bottom">
+          {t('claim', 'Process claims')}
+        </Button>
       </div>
 
       <InvoiceTable bill={bill} isLoadingBill={isLoadingBill} onSelectItem={handleSelectItem} />
       <Payments bill={bill} selectedLineItems={selectedLineItems} />
 
-      <div className={styles.printContainer} ref={componentRef}>
-        {isPrinting && <PrintableInvoice bill={bill} patient={patient} isLoading={isLoadingPatient} />}
+      <div className={styles.printContainer}>
+        <PrintableInvoice
+          ref={componentRef}
+          facilityInfo={facilityInfo}
+          bill={bill}
+          patient={patient}
+          isPrinting={isPrinting}
+        />
       </div>
     </div>
   );
diff --git a/packages/esm-billing-app/src/invoice/invoice.scss b/packages/esm-billing-app/src/invoice/invoice.scss
old mode 100644
new mode 100755
index f067f6b6..759c9685
--- a/packages/esm-billing-app/src/invoice/invoice.scss
+++ b/packages/esm-billing-app/src/invoice/invoice.scss
@@ -64,6 +64,7 @@
 
 .button {
   margin-left: layout.$spacing-04;
+  min-width: 10rem;
 }
 
 .invoicePaymentsContainer {
@@ -95,3 +96,16 @@
     background-color: colors.$white !important;
   }
 }
+
+.actionArea {
+  margin: 0.625rem;
+  padding-top: 0.625rem;
+  display: flex;
+  justify-content: flex-end;
+  column-gap: 0.325rem;
+  border-top: 1px solid colors.$gray-20;
+
+  & > button {
+    max-height: 2rem;
+  }
+}
diff --git a/packages/esm-billing-app/src/invoice/invoice.test.tsx b/packages/esm-billing-app/src/invoice/invoice.test.tsx
new file mode 100755
index 00000000..8eae1967
--- /dev/null
+++ b/packages/esm-billing-app/src/invoice/invoice.test.tsx
@@ -0,0 +1,237 @@
+import React from 'react';
+import { screen, render } from '@testing-library/react';
+import userEvent from '@testing-library/user-event';
+import { useReactToPrint } from 'react-to-print';
+import { showSnackbar } from '@openmrs/esm-framework';
+import { mockPayments, mockBill } from '../../../../__mocks__/bills.mock';
+import { useBill, processBillPayment, usePaymentModes } from '../billing.resource';
+
+import Invoice from './invoice.component';
+
+const mockedBill = jest.mocked(useBill);
+const mockedProcessBillPayment = jest.mocked(processBillPayment);
+const mockedUsePaymentModes = jest.mocked(usePaymentModes);
+const mockedUseReactToPrint = jest.mocked(useReactToPrint);
+
+jest.mock('../billing.resource', () => ({
+  useBill: jest.fn(),
+  processBillPayment: jest.fn(),
+  useDefaultFacility: jest.fn().mockReturnValue({ uuid: '54065383-b4d4-42d2-af4d-d250a1fd2590', display: 'MTRH' }),
+}));
+
+jest.mock('react-router-dom', () => {
+  const originalModule = jest.requireActual('react-router-dom');
+
+  return {
+    ...originalModule,
+    useParams: jest.fn().mockReturnValue({ patientUuid: 'patientUuid', billUuid: 'billUuid' }),
+  };
+});
+
+jest.mock('react-to-print', () => {
+  const originalModule = jest.requireActual('react-to-print');
+
+  return {
+    ...originalModule,
+    useReactToPrint: jest.fn(),
+  };
+});
+
+jest.mock('@openmrs/esm-framework', () => {
+  const originalModule = jest.requireActual('@openmrs/esm-framework');
+
+  return {
+    ...originalModule,
+    usePatient: jest.fn().mockReturnValue({
+      patient: {
+        id: 'b2fcf02b-7ee3-4d16-a48f-576be2b103aa',
+        name: [{ given: ['John'], family: 'Doe' }],
+      },
+      patientUuid: 'b2fcf02b-7ee3-4d16-a48f-576be2b103aa',
+      isLoading: false,
+      error: null,
+    }),
+  };
+});
+
+xdescribe('Invoice', () => {
+  beforeEach(() => {
+    mockedBill.mockReturnValue({
+      bill: mockBill,
+      isLoading: false,
+      error: null,
+      isValidating: false,
+      mutate: jest.fn(),
+    });
+
+    mockedUsePaymentModes.mockReturnValue({
+      paymentModes: [
+        { uuid: 'uuid', name: 'Cash', description: 'Cash Method', retired: false },
+        { uuid: 'uuid1', name: 'MPESA', description: 'MPESA Method', retired: false },
+      ],
+      isLoading: false,
+      error: null,
+      mutate: jest.fn(),
+    });
+  });
+
+  afterEach(() => jest.clearAllMocks());
+
+  test('should be able to search through the invoice table and settle a bill', async () => {
+    const user = userEvent.setup();
+
+    renderInvoice();
+
+    const expectedHeaders = [
+      /Total amount/i,
+      /Amount tendered/i,
+      /Date and time/i,
+      /Invoice status/i,
+      /Invoice number/i,
+    ];
+
+    expectedHeaders.forEach((header) => {
+      expect(screen.getByRole('heading', { name: header })).toBeInTheDocument();
+    });
+
+    const printButton = screen.getByRole('button', { name: /Print bill/i });
+    expect(printButton).toBeInTheDocument();
+
+    // Should show the line items table with the correct headers
+    const expectedColumnHeaders = [/No/i, /Bill item/i, /Bill code/i, /Status/i, /Quantity/i, /Price/i, /Total/i];
+
+    expectedColumnHeaders.forEach((columnHeader) => {
+      expect(screen.getByRole('columnheader', { name: columnHeader })).toBeInTheDocument();
+    });
+
+    expect(screen.getByRole('heading', { name: /Line items/i })).toBeInTheDocument();
+    expect(screen.getByText(/Items to be billed/i)).toBeInTheDocument();
+
+    // Should be able to search the line items table
+    const searchInput = screen.getByRole('searchbox');
+    expect(searchInput).toBeInTheDocument();
+    await user.type(searchInput, 'Hemoglobin');
+    expect(screen.getByText('Hemoglobin')).toBeInTheDocument();
+
+    await user.type(searchInput, 'Some random text');
+    expect(screen.queryByText('Hemoglobin')).not.toBeInTheDocument();
+    expect(screen.getByText(/No matching items to display/i)).toBeInTheDocument();
+    await user.clear(searchInput);
+
+    const row = mockBill.lineItems[0].item + ' ' + mockBill.receiptNumber + ' ' + mockBill.status.toUpperCase();
+
+    expect(screen.getByRole('row', { name: new RegExp(row, 'i') })).toBeInTheDocument();
+
+    // should be able to handle payments
+    const paymentSection = await screen.findByRole('heading', { name: /Payments/i });
+    expect(paymentSection).toBeInTheDocument();
+
+    const addPaymentOptionButton = await screen.findByRole('button', { name: /Add payment option/i });
+    expect(addPaymentOptionButton).toBeInTheDocument();
+    await user.click(addPaymentOptionButton);
+    const paymentModeInput = screen.getByRole('combobox', { name: /Payment method/i });
+    expect(paymentModeInput).toBeInTheDocument();
+    await user.click(paymentModeInput);
+
+    // select cash payment mode
+    const cashPaymentMode = await screen.findByText('Cash');
+    expect(cashPaymentMode).toBeInTheDocument();
+    await user.click(cashPaymentMode);
+
+    // enter payment amount
+    const paymentAmountInput = screen.getByPlaceholderText('Enter amount');
+    expect(paymentAmountInput).toBeInTheDocument();
+    await user.type(paymentAmountInput, '100');
+
+    // enter payment reference number
+    const paymentReferenceNumberInput = screen.getByRole('textbox', { name: /Reference number/ });
+    expect(paymentReferenceNumberInput).toBeInTheDocument();
+    await user.type(paymentReferenceNumberInput, '123456');
+
+    expect(addPaymentOptionButton).toBeDisabled();
+
+    // should process payment
+    mockedProcessBillPayment.mockResolvedValueOnce(Promise.resolve({} as any));
+    const processPaymentButton = screen.getByRole('button', { name: /Process Payment/i });
+    expect(processPaymentButton).toBeInTheDocument();
+    await user.click(processPaymentButton);
+
+    expect(processBillPayment).toHaveBeenCalledTimes(1);
+    expect(processBillPayment).toHaveBeenCalledWith(
+      {
+        cashPoint: '54065383-b4d4-42d2-af4d-d250a1fd2590',
+        cashier: 'fe00dd43-4c39-4ce9-9832-bc3620c80c6c',
+        patient: 'b2fcf02b-7ee3-4d16-a48f-576be2b103aa',
+        payments: [{ amount: 100, amountTendered: 100, attributes: [], instanceType: 'uuid' }],
+        status: 'PAID',
+      },
+      '6eb8d678-514d-46ad-9554-51e48d96d567',
+    );
+    expect(showSnackbar).toHaveBeenCalled();
+    expect(showSnackbar).toHaveBeenCalledWith({
+      kind: 'success',
+      subtitle: 'Bill payment processing has been successful',
+      timeoutInMs: 3000,
+      title: 'Bill payment',
+    });
+  });
+
+  test('should show print preview when print button is clicked', async () => {
+    const user = userEvent.setup();
+
+    renderInvoice();
+
+    const printButton = screen.getByRole('button', { name: /Print bill/i });
+    expect(printButton).toBeInTheDocument();
+    await user.click(printButton);
+    expect(mockedUseReactToPrint).toHaveBeenCalledTimes(1);
+    expect(mockedUseReactToPrint).toHaveBeenCalledWith(
+      expect.objectContaining({
+        documentTitle: 'Invoice 0035-6 - John Doe',
+      }),
+    );
+  });
+
+  test('should show payment history if bill is paid and disable adding more payments', async () => {
+    const user = userEvent.setup();
+    mockedBill.mockReturnValue({
+      bill: {
+        ...mockBill,
+        status: 'PAID',
+        payments: mockPayments,
+        tenderedAmount: 100,
+      },
+      isLoading: false,
+      error: null,
+      isValidating: false,
+      mutate: jest.fn(),
+    });
+
+    mockedUsePaymentModes.mockReturnValue({
+      paymentModes: [
+        { uuid: 'uuid', name: 'Cash', description: 'Cash Method', retired: false },
+        { uuid: 'uuid1', name: 'MPESA', description: 'MPESA Method', retired: false },
+      ],
+      isLoading: false,
+      error: null,
+      mutate: jest.fn(),
+    });
+
+    renderInvoice();
+    const paymentHistorySection = screen.getByRole('heading', { name: /Payments/i });
+    expect(paymentHistorySection).toBeInTheDocument();
+
+    const expectedColumnHeaders = [/Date of payment/, /Bill amount/, /Amount tendered/, /Payment method/];
+    expectedColumnHeaders.forEach((header) => {
+      expect(screen.getByRole('columnheader', { name: new RegExp(header, 'i') })).toBeInTheDocument();
+    });
+
+    const addPaymentOptionButton = await screen.findByRole('button', { name: /Add payment option/i });
+    expect(addPaymentOptionButton).toBeInTheDocument();
+    expect(addPaymentOptionButton).toBeDisabled();
+  });
+});
+
+function renderInvoice() {
+  return render(<Invoice />);
+}
diff --git a/packages/esm-billing-app/src/invoice/payments/initiate-payment/initiate-payment.component.tsx b/packages/esm-billing-app/src/invoice/payments/initiate-payment/initiate-payment.component.tsx
old mode 100644
new mode 100755
index fb9bea0b..334501b4
--- a/packages/esm-billing-app/src/invoice/payments/initiate-payment/initiate-payment.component.tsx
+++ b/packages/esm-billing-app/src/invoice/payments/initiate-payment/initiate-payment.component.tsx
@@ -1,16 +1,28 @@
-import React from 'react';
+import React, { useEffect, useMemo, useState } from 'react';
 import { useTranslation } from 'react-i18next';
-import { Button, Form, ModalBody, ModalHeader, TextInput, Layer } from '@carbon/react';
+import {
+  Button,
+  Form,
+  ModalBody,
+  ModalHeader,
+  TextInput,
+  Layer,
+  InlineNotification,
+  InlineLoading,
+  Loading,
+} from '@carbon/react';
 import styles from './initiate-payment.scss';
 import { Controller, useForm } from 'react-hook-form';
 import { type MappedBill } from '../../../types';
-import { showSnackbar, useConfig } from '@openmrs/esm-framework';
 import { z } from 'zod';
 import { zodResolver } from '@hookform/resolvers/zod';
 import { formatPhoneNumber } from '../utils';
-import { Buffer } from 'buffer';
 import { useSystemSetting } from '../../../hooks/getMflCode';
 import { initiateStkPush } from '../../../m-pesa/mpesa-resource';
+import { useRequestStatus } from '../../../hooks/useRequestStatus';
+import { useConfig, usePatient } from '@openmrs/esm-framework';
+import { type BillingConfig } from '../../../config-schema';
+import { usePatientAttributes } from '../../../hooks/usePatientAttributes';
 
 const InitiatePaymentSchema = z.object({
   phoneNumber: z
@@ -27,75 +39,62 @@ export interface InitiatePaymentDialogProps {
 
 const InitiatePaymentDialog: React.FC<InitiatePaymentDialogProps> = ({ closeModal, bill }) => {
   const { t } = useTranslation();
-  const { mpesaCallbackUrl, passKey, shortCode, authorizationUrl, initiateUrl } = useConfig();
+  const { phoneNumber, isLoading: isLoadingPhoneNumber } = usePatientAttributes(bill.patientUuid);
+  const { mpesaAPIBaseUrl } = useConfig<BillingConfig>();
   const { mflCodeValue } = useSystemSetting('facility.mflcode');
+  const [notification, setNotification] = useState<{ type: 'error' | 'success'; message: string } | null>(null);
+  const [isLoading, setIsLoading] = useState(false);
+  const [{ requestStatus }, pollingTrigger] = useRequestStatus(setNotification);
+
   const {
     control,
     handleSubmit,
     formState: { errors, isValid },
+    setValue,
   } = useForm<any>({
     mode: 'all',
-    defaultValues: {
-      billAmount: String(bill.totalAmount),
-    },
+    defaultValues: { billAmount: String(bill.totalAmount), phoneNumber: phoneNumber },
     resolver: zodResolver(InitiatePaymentSchema),
   });
 
-  const onSubmit = async (data) => {
-    try {
-      const timeStamp = new Date()
-        .toISOString()
-        .replace(/[^0-9]/g, '')
-        .slice(0, -3);
-      const phoneNumber = formatPhoneNumber(data.phoneNumber);
-      const amountBilled = data.billAmount;
-      const password = shortCode + passKey + timeStamp;
-      const callBackUrl = mpesaCallbackUrl;
-      const Password = Buffer.from(password).toString('base64');
-      const accountReference = `${mflCodeValue}#${bill.receiptNumber}`;
+  useEffect(() => {
+    setValue('phoneNumber', phoneNumber);
+  }, [phoneNumber, setValue]);
+
+  const onSubmit = async (data: { phoneNumber: any; billAmount: any }) => {
+    const phoneNumber = formatPhoneNumber(data.phoneNumber);
+    const amountBilled = data.billAmount;
+    const accountReference = `${mflCodeValue}#${bill.receiptNumber}`;
 
-      const payload = {
-        BusinessShortCode: shortCode,
-        Password: Password,
-        Timestamp: timeStamp,
-        TransactionType: 'CustomerPayBillOnline',
-        PartyA: phoneNumber,
-        PartyB: shortCode,
-        PhoneNumber: phoneNumber,
-        CallBackURL: callBackUrl,
-        AccountReference: accountReference,
-        TransactionDesc: 'KenyaEMRPay',
-        Amount: amountBilled,
-      };
+    const payload = {
+      AccountReference: accountReference,
+      PhoneNumber: phoneNumber,
+      Amount: amountBilled,
+    };
 
-      await initiateStkPush(payload, initiateUrl, authorizationUrl);
-      showSnackbar({
-        title: t('stkPush', 'STK Push'),
-        subtitle: t('stkPushSucess', 'STK Push send successfully'),
-        kind: 'success',
-        timeoutInMs: 3500,
-        isLowContrast: true,
-      });
-      closeModal();
-    } catch (err) {
-      const errorMessage =
-        err.response?.data?.errorMessage || err.message || t('stkPushError', 'STK Push request failed');
-      showSnackbar({
-        title: t('stkPush', 'STK Push'),
-        subtitle: errorMessage,
-        kind: 'error',
-        timeoutInMs: 3500,
-        isLowContrast: true,
-      });
-    }
+    setIsLoading(true);
+    const requestId = await initiateStkPush(payload, setNotification, mpesaAPIBaseUrl);
+    setIsLoading(false);
+    pollingTrigger({ requestId, requestStatus: 'INITIATED' });
   };
 
+  if (isLoadingPhoneNumber || isLoading) {
+    return <InlineLoading status="active" iconDescription="Loading" description="Loading data..." />;
+  }
+
   return (
     <div>
       <ModalHeader closeModal={closeModal} />
       <ModalBody>
         <Form className={styles.form}>
           <h4>{t('paymentPayment', 'Bill Payment')}</h4>
+          {notification && (
+            <InlineNotification
+              kind={notification.type}
+              title={notification.message}
+              onCloseButtonClick={() => setNotification(null)}
+            />
+          )}
           <section className={styles.section}>
             <Controller
               control={control}
@@ -136,8 +135,19 @@ const InitiatePaymentDialog: React.FC<InitiatePaymentDialogProps> = ({ closeModa
             <Button kind="secondary" className={styles.buttonLayout} onClick={closeModal}>
               {t('cancel', 'Cancel')}
             </Button>
-            <Button type="submit" className={styles.button} onClick={handleSubmit(onSubmit)} disabled={!isValid}>
-              {t('initiatePay', 'Initiate Payment')}
+            <Button
+              type="submit"
+              className={styles.button}
+              onClick={handleSubmit(onSubmit)}
+              disabled={!isValid || isLoading || requestStatus === 'INITIATED'}>
+              {isLoading ? (
+                <>
+                  <Loading className={styles.button_spinner} withOverlay={false} small />{' '}
+                  {t('processingPayment', 'Processing Payment')}
+                </>
+              ) : (
+                t('initiatePay', 'Initiate Payment')
+              )}
             </Button>
           </section>
         </Form>
diff --git a/packages/esm-billing-app/src/invoice/payments/initiate-payment/initiate-payment.scss b/packages/esm-billing-app/src/invoice/payments/initiate-payment/initiate-payment.scss
old mode 100644
new mode 100755
index f5b482f0..08648339
--- a/packages/esm-billing-app/src/invoice/payments/initiate-payment/initiate-payment.scss
+++ b/packages/esm-billing-app/src/invoice/payments/initiate-payment/initiate-payment.scss
@@ -31,3 +31,8 @@
   margin-top: layout.$spacing-05;
   margin-bottom: layout.$spacing-01;
 }
+
+.button_spinner {
+  padding: 0;
+  margin-right: 12px;
+}
diff --git a/packages/esm-billing-app/src/invoice/payments/invoice-breakdown/invoice-breakdown.component.tsx b/packages/esm-billing-app/src/invoice/payments/invoice-breakdown/invoice-breakdown.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/invoice/payments/invoice-breakdown/invoice-breakdown.scss b/packages/esm-billing-app/src/invoice/payments/invoice-breakdown/invoice-breakdown.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/invoice/payments/payment-form/payment-form.component.tsx b/packages/esm-billing-app/src/invoice/payments/payment-form/payment-form.component.tsx
old mode 100644
new mode 100755
index 668047be..be7ebec8
--- a/packages/esm-billing-app/src/invoice/payments/payment-form/payment-form.component.tsx
+++ b/packages/esm-billing-app/src/invoice/payments/payment-form/payment-form.component.tsx
@@ -1,27 +1,43 @@
 import React, { useCallback } from 'react';
-import { Controller, useFieldArray, useFormContext } from 'react-hook-form';
+import {
+  Controller,
+  type FieldArrayWithId,
+  type UseFieldArrayRemove,
+  useFieldArray,
+  useFormContext,
+} from 'react-hook-form';
 import { useTranslation } from 'react-i18next';
 import { TrashCan, Add } from '@carbon/react/icons';
 import { Button, Dropdown, NumberInputSkeleton, TextInput, NumberInput } from '@carbon/react';
 import { ErrorState } from '@openmrs/esm-patient-common-lib';
-import { type PaymentFormValue } from '../payments.component';
 import styles from './payment-form.scss';
 import { usePaymentModes } from '../../../billing.resource';
+import { type PaymentFormValue } from '../../../types';
 
-type PaymentFormProps = { disablePayment: boolean; amountDue: number };
-
-const DEFAULT_PAYMENT = { method: '', amount: 0, referenceCode: '' };
+type PaymentFormProps = {
+  disablePayment: boolean;
+  amountDue: number;
+  append: (obj: { method: string; amount: number; referenceCode: string }) => void;
+  fields: FieldArrayWithId<PaymentFormValue, 'payment', 'id'>[];
+  remove: UseFieldArrayRemove;
+};
 
-const PaymentForm: React.FC<PaymentFormProps> = ({ disablePayment, amountDue }) => {
+const PaymentForm: React.FC<PaymentFormProps> = ({ disablePayment, amountDue, append, remove, fields }) => {
   const { t } = useTranslation();
   const {
     control,
     formState: { errors },
+    setFocus,
   } = useFormContext<PaymentFormValue>();
   const { paymentModes, isLoading, error } = usePaymentModes();
-  const { fields, remove, append } = useFieldArray({ name: 'payment', control: control });
 
-  const handleAppendPaymentMode = useCallback(() => append(DEFAULT_PAYMENT), [append]);
+  const handleAppendPaymentMode = useCallback(() => {
+    {
+      append({ method: '', amount: 0, referenceCode: '' });
+      setFocus(`payment.${fields.length}.method`);
+    }
+  }, [append]);
+
   const handleRemovePaymentMode = useCallback((index) => remove(index), [remove]);
 
   if (isLoading) {
@@ -45,8 +61,12 @@ const PaymentForm: React.FC<PaymentFormProps> = ({ disablePayment, amountDue })
             name={`payment.${index}.method`}
             render={({ field }) => (
               <Dropdown
+                {...field}
                 id="paymentMethod"
-                onChange={({ selectedItem }) => field.onChange(selectedItem?.uuid)}
+                onChange={({ selectedItem }) => {
+                  setFocus(`payment.${index}.amount`);
+                  field.onChange(selectedItem?.uuid);
+                }}
                 titleText={t('paymentMethod', 'Payment method')}
                 label={t('selectPaymentMethod', 'Select payment method')}
                 items={paymentModes}
@@ -61,8 +81,8 @@ const PaymentForm: React.FC<PaymentFormProps> = ({ disablePayment, amountDue })
             name={`payment.${index}.amount`}
             render={({ field }) => (
               <NumberInput
-                id="paymentAmount"
                 {...field}
+                id="paymentAmount"
                 onChange={(e) => field.onChange(Number(e.target.value))}
                 invalid={!!errors?.payment?.[index]?.amount}
                 invalidText={errors?.payment?.[index]?.amount?.message}
@@ -76,8 +96,8 @@ const PaymentForm: React.FC<PaymentFormProps> = ({ disablePayment, amountDue })
             control={control}
             render={({ field }) => (
               <TextInput
-                id="paymentReferenceCode"
                 {...field}
+                id="paymentReferenceCode"
                 labelText={t('referenceNumber', 'Reference number')}
                 placeholder={t('enterReferenceNumber', 'Enter ref. number')}
                 type="text"
diff --git a/packages/esm-billing-app/src/invoice/payments/payment-form/payment-form.scss b/packages/esm-billing-app/src/invoice/payments/payment-form/payment-form.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/invoice/payments/payment-history/payment-history.component.tsx b/packages/esm-billing-app/src/invoice/payments/payment-history/payment-history.component.tsx
old mode 100644
new mode 100755
index ebeb51b9..4ce7f679
--- a/packages/esm-billing-app/src/invoice/payments/payment-history/payment-history.component.tsx
+++ b/packages/esm-billing-app/src/invoice/payments/payment-history/payment-history.component.tsx
@@ -14,10 +14,6 @@ const PaymentHistory: React.FC<PaymentHistoryProps> = ({ bill }) => {
       key: 'dateCreated',
       header: 'Date of payment',
     },
-    {
-      key: 'amount',
-      header: 'Bill amount',
-    },
     {
       key: 'amountTendered',
       header: 'Amount tendered',
diff --git a/packages/esm-billing-app/src/invoice/payments/payments.component.tsx b/packages/esm-billing-app/src/invoice/payments/payments.component.tsx
old mode 100644
new mode 100755
index a1442042..d3003c88
--- a/packages/esm-billing-app/src/invoice/payments/payments.component.tsx
+++ b/packages/esm-billing-app/src/invoice/payments/payments.component.tsx
@@ -1,12 +1,12 @@
-import React from 'react';
-import { FormProvider, useForm, useWatch } from 'react-hook-form';
+import React, { useState } from 'react';
+import { FormProvider, useFieldArray, useForm, useWatch } from 'react-hook-form';
 import { useTranslation } from 'react-i18next';
 import { z } from 'zod';
 import { zodResolver } from '@hookform/resolvers/zod';
-import { navigate, showSnackbar, useVisit } from '@openmrs/esm-framework';
+import { navigate, showSnackbar } from '@openmrs/esm-framework';
 import { Button } from '@carbon/react';
 import { CardHeader } from '@openmrs/esm-patient-common-lib';
-import { type LineItem, type MappedBill } from '../../types';
+import { type LineItem, type PaymentFormValue, type MappedBill } from '../../types';
 import { convertToCurrency } from '../../helpers';
 import { createPaymentPayload } from './utils';
 import { processBillPayment } from '../../billing.resource';
@@ -14,18 +14,14 @@ import { InvoiceBreakDown } from './invoice-breakdown/invoice-breakdown.componen
 import PaymentHistory from './payment-history/payment-history.component';
 import PaymentForm from './payment-form/payment-form.component';
 import styles from './payments.scss';
+import { computeTotalPrice, extractErrorMessagesFromResponse } from '../../utils';
+import { mutate } from 'swr';
 
 type PaymentProps = {
   bill: MappedBill;
   selectedLineItems: Array<LineItem>;
 };
 
-export type Payment = { method: string; amount: string | number; referenceCode?: number | string };
-
-export type PaymentFormValue = {
-  payment: Array<Payment>;
-};
-
 const Payments: React.FC<PaymentProps> = ({ bill, selectedLineItems }) => {
   const { t } = useTranslation();
   const paymentSchema = z.object({
@@ -36,25 +32,23 @@ const Payments: React.FC<PaymentProps> = ({ bill, selectedLineItems }) => {
     referenceCode: z.union([z.number(), z.string()]).optional(),
   });
 
-  const paymentFormSchema = z.object({ payment: z.array(paymentSchema) });
-  const { currentVisit } = useVisit(bill?.patientUuid);
   const methods = useForm<PaymentFormValue>({
     mode: 'all',
     defaultValues: {},
-    resolver: zodResolver(paymentFormSchema),
+    resolver: zodResolver(z.object({ payment: z.array(paymentSchema) })),
   });
+  const formArrayMethods = useFieldArray({ name: 'payment', control: methods.control });
 
   const formValues = useWatch({
     name: 'payment',
     control: methods.control,
   });
+  const [paymentSuccessful, setPaymentSuccessful] = useState(false);
 
   const hasMoreThanOneLineItem = bill?.lineItems?.length > 1;
-
-  const computedTotal = hasMoreThanOneLineItem ? computeTotalPrice(selectedLineItems) : bill.totalAmount ?? 0;
-
+  const computedTotal = hasMoreThanOneLineItem ? computeTotalPrice(selectedLineItems) : (bill.totalAmount ?? 0);
   const totalAmountTendered = formValues?.reduce((curr: number, prev) => curr + Number(prev.amount) ?? 0, 0) ?? 0;
-  const amountDue = Number(computedTotal) - (Number(bill.tenderedAmount) + Number(totalAmountTendered));
+  const amountDue = Number(bill.totalAmount) - (Number(bill.tenderedAmount) + Number(totalAmountTendered));
 
   const handleNavigateToBillingDashboard = () =>
     navigate({
@@ -62,19 +56,31 @@ const Payments: React.FC<PaymentProps> = ({ bill, selectedLineItems }) => {
     });
 
   const handleProcessPayment = () => {
+    const { remove } = formArrayMethods;
     const paymentPayload = createPaymentPayload(bill, bill.patientUuid, formValues, amountDue, selectedLineItems);
+    remove();
     processBillPayment(paymentPayload, bill.uuid).then(
-      () => {
+      (resp) => {
         showSnackbar({
           title: t('billPayment', 'Bill payment'),
           subtitle: 'Bill payment processing has been successful',
           kind: 'success',
           timeoutInMs: 3000,
         });
-        handleNavigateToBillingDashboard();
+        const url = `/ws/rest/v1/cashier/bill/${bill.uuid}`;
+        mutate((key) => typeof key === 'string' && key.startsWith(url), undefined, { revalidate: true });
+        setPaymentSuccessful(true);
       },
       (error) => {
-        showSnackbar({ title: 'Bill payment error', kind: 'error', subtitle: error });
+        showSnackbar({
+          title: t('failedBillPayment', 'Bill payment failed'),
+          subtitle: `An unexpected error occurred while processing your bill payment. Please contact the system administrator and provide them with the following error details: ${extractErrorMessagesFromResponse(
+            error.responseBody,
+          )}`,
+          kind: 'error',
+          timeoutInMs: 3000,
+          isLowContrast: true,
+        });
       },
     );
   };
@@ -90,12 +96,12 @@ const Payments: React.FC<PaymentProps> = ({ bill, selectedLineItems }) => {
           </CardHeader>
           <div>
             {bill && <PaymentHistory bill={bill} />}
-            <PaymentForm disablePayment={amountDue <= 0} amountDue={amountDue} />
+            <PaymentForm {...formArrayMethods} disablePayment={amountDue <= 0} amountDue={amountDue} />
           </div>
         </div>
         <div className={styles.divider} />
         <div className={styles.paymentTotals}>
-          <InvoiceBreakDown label={t('totalAmount', 'Total Amount')} value={convertToCurrency(computedTotal)} />
+          <InvoiceBreakDown label={t('totalAmount', 'Total Amount')} value={convertToCurrency(bill.totalAmount)} />
           <InvoiceBreakDown
             label={t('totalTendered', 'Total Tendered')}
             value={convertToCurrency(bill.tenderedAmount + totalAmountTendered ?? 0)}
@@ -120,19 +126,4 @@ const Payments: React.FC<PaymentProps> = ({ bill, selectedLineItems }) => {
   );
 };
 
-const computeTotalPrice = (items) => {
-  if (items && !items.length) {
-    return 0;
-  }
-
-  let totalPrice = 0;
-
-  items?.forEach((item) => {
-    const { price, quantity } = item;
-    totalPrice += price * quantity;
-  });
-
-  return totalPrice;
-};
-
 export default Payments;
diff --git a/packages/esm-billing-app/src/invoice/payments/payments.resource.ts b/packages/esm-billing-app/src/invoice/payments/payments.resource.ts
new file mode 100755
index 00000000..087bad36
--- /dev/null
+++ b/packages/esm-billing-app/src/invoice/payments/payments.resource.ts
@@ -0,0 +1,35 @@
+import useSWR from 'swr';
+import { openmrsFetch, useConfig } from '@openmrs/esm-framework';
+import { type BillingConfig } from '../../config-schema';
+
+type PaymentMethod = {
+  uuid: string;
+  description: string;
+  name: string;
+  retired: boolean;
+};
+
+const swrOption = {
+  errorRetryCount: 2,
+};
+
+export const usePaymentModes = () => {
+  const { excludedPaymentMode } = useConfig<BillingConfig>();
+  const url = `/ws/rest/v1/cashier/paymentMode`;
+  const { data, isLoading, error, mutate } = useSWR<{ data: { results: Array<PaymentMethod> } }>(
+    url,
+    openmrsFetch,
+    swrOption,
+  );
+  const allowedPaymentModes =
+    excludedPaymentMode?.length > 0
+      ? (data?.data?.results.filter((mode) => !excludedPaymentMode.some((excluded) => excluded.uuid === mode.uuid)) ??
+        [])
+      : (data?.data?.results ?? []);
+  return {
+    paymentModes: allowedPaymentModes,
+    isLoading,
+    mutate,
+    error,
+  };
+};
diff --git a/packages/esm-billing-app/src/invoice/payments/payments.scss b/packages/esm-billing-app/src/invoice/payments/payments.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/invoice/payments/utils.ts b/packages/esm-billing-app/src/invoice/payments/utils.ts
old mode 100644
new mode 100755
index f98fa29d..b5eba817
--- a/packages/esm-billing-app/src/invoice/payments/utils.ts
+++ b/packages/esm-billing-app/src/invoice/payments/utils.ts
@@ -1,5 +1,4 @@
-import { type LineItem, type MappedBill } from '../../types';
-import { type Payment } from './payments.component';
+import { type FormPayment, type LineItem, type MappedBill } from '../../types';
 
 const hasLineItem = (lineItems: Array<LineItem>, item: LineItem) => {
   if (lineItems?.length === 0) {
@@ -12,7 +11,7 @@ const hasLineItem = (lineItems: Array<LineItem>, item: LineItem) => {
 export const createPaymentPayload = (
   bill: MappedBill,
   patientUuid: string,
-  formValues: Array<Payment>,
+  formValues: Array<FormPayment>,
   amountDue: number,
   selectedLineItems: Array<LineItem>,
 ) => {
diff --git a/packages/esm-billing-app/src/invoice/payments/visit-tags/visit-attribute.component.tsx b/packages/esm-billing-app/src/invoice/payments/visit-tags/visit-attribute.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/invoice/printable-invoice/print-receipt.component.tsx b/packages/esm-billing-app/src/invoice/printable-invoice/print-receipt.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/invoice/printable-invoice/print-receipt.scss b/packages/esm-billing-app/src/invoice/printable-invoice/print-receipt.scss
old mode 100644
new mode 100755
index f71809c2..f78896bf
--- a/packages/esm-billing-app/src/invoice/printable-invoice/print-receipt.scss
+++ b/packages/esm-billing-app/src/invoice/printable-invoice/print-receipt.scss
@@ -8,7 +8,3 @@
   padding: 0;
   text-decoration: none;
 }
-
-.button {
-  margin-left: layout.$spacing-04;
-}
diff --git a/packages/esm-billing-app/src/invoice/printable-invoice/printable-footer.component.tsx b/packages/esm-billing-app/src/invoice/printable-invoice/printable-footer.component.tsx
old mode 100644
new mode 100755
index 39a9d6ef..eca12fe4
--- a/packages/esm-billing-app/src/invoice/printable-invoice/printable-footer.component.tsx
+++ b/packages/esm-billing-app/src/invoice/printable-invoice/printable-footer.component.tsx
@@ -1,16 +1,31 @@
 import React from 'react';
-import { useDefaultFacility } from '../../billing.resource';
 import styles from './printable-footer.scss';
+import { useTranslation } from 'react-i18next';
+import dayjs from 'dayjs';
+import { useSession } from '@openmrs/esm-framework';
 
-const PrintableFooter = () => {
-  const { data, isLoading } = useDefaultFacility();
+type PrintableFooterProps = {
+  facilityInfo: Record<string, any>;
+};
+
+const PrintableFooter: React.FC<PrintableFooterProps> = ({ facilityInfo }) => {
+  const { t } = useTranslation();
+  const session = useSession();
 
-  if (isLoading) {
-    return <div>--</div>;
-  }
   return (
     <div className={styles.container}>
-      <p className={styles.itemFooter}>{data?.display}</p>
+      <p className={styles.itemFooter}>{facilityInfo?.display}</p>
+      <p className={styles.footDescription}>
+        {t(
+          'generatedMessage',
+          'The invoice has been electronically generated and is a valid document. It was created by {{userName}} on {{date}} at {{time}}',
+          {
+            userName: `${session?.user?.display}`,
+            date: dayjs().format('DD-MM-YYYY'),
+            time: dayjs().format('hh:mm A'),
+          },
+        )}
+      </p>
     </div>
   );
 };
diff --git a/packages/esm-billing-app/src/invoice/printable-invoice/printable-footer.scss b/packages/esm-billing-app/src/invoice/printable-invoice/printable-footer.scss
old mode 100644
new mode 100755
index 9e744f54..00334d14
--- a/packages/esm-billing-app/src/invoice/printable-invoice/printable-footer.scss
+++ b/packages/esm-billing-app/src/invoice/printable-invoice/printable-footer.scss
@@ -5,13 +5,20 @@
 .container {
   display: flex;
   flex-direction: column;
-  position: fixed;
   width: 100%;
   bottom: 0;
+  padding: layout.$spacing-01;
+  justify-content: center;
 }
 
 .itemFooter {
-  padding: 1rem;
+  padding: layout.$spacing-01 layout.$spacing-05;
   @include type.type-style('body-compact-02');
   color: colors.$cool-gray-90;
 }
+
+.footDescription {
+  @include type.type-style('legal-01');
+  padding: layout.$spacing-01 layout.$spacing-05;
+  color: colors.$cool-gray-70;
+}
diff --git a/packages/esm-billing-app/src/invoice/printable-invoice/printable-footer.test.tsx b/packages/esm-billing-app/src/invoice/printable-invoice/printable-footer.test.tsx
old mode 100644
new mode 100755
index 096206ed..e2e261db
--- a/packages/esm-billing-app/src/invoice/printable-invoice/printable-footer.test.tsx
+++ b/packages/esm-billing-app/src/invoice/printable-invoice/printable-footer.test.tsx
@@ -1,9 +1,6 @@
 import React from 'react';
 import { screen, render } from '@testing-library/react';
 import PrintableFooter from './printable-footer.component';
-import { useDefaultFacility } from '../../billing.resource';
-
-const mockUseDefaultFacility = useDefaultFacility as jest.MockedFunction<typeof useDefaultFacility>;
 
 jest.mock('../../billing.resource', () => ({
   useDefaultFacility: jest.fn(),
@@ -15,16 +12,8 @@ describe('PrintableFooter', () => {
   });
 
   test('should render PrintableFooter component', () => {
-    mockUseDefaultFacility.mockReturnValue({ data: { display: 'MTRH', uuid: 'mtrh-uuid' }, isLoading: false });
-    render(<PrintableFooter />);
+    render(<PrintableFooter facilityInfo={{ display: 'MTRH', uuid: 'mtrh-uuid' }} />);
     const footer = screen.getByText('MTRH');
     expect(footer).toBeInTheDocument();
   });
-
-  test('should show placeholder text when facility isLoading', () => {
-    mockUseDefaultFacility.mockReturnValue({ data: { display: 'MTRH', uuid: 'mtrh-uuid' }, isLoading: true });
-    render(<PrintableFooter />);
-    const footer = screen.getByText('--');
-    expect(footer).toBeInTheDocument();
-  });
 });
diff --git a/packages/esm-billing-app/src/invoice/printable-invoice/printable-invoice-header.component.tsx b/packages/esm-billing-app/src/invoice/printable-invoice/printable-invoice-header.component.tsx
old mode 100644
new mode 100755
index 5569c47b..d650ef05
--- a/packages/esm-billing-app/src/invoice/printable-invoice/printable-invoice-header.component.tsx
+++ b/packages/esm-billing-app/src/invoice/printable-invoice/printable-invoice-header.component.tsx
@@ -3,23 +3,23 @@ import { type PatientDetails } from '../../types';
 import styles from './printable-invoice-header.scss';
 import { useConfig } from '@openmrs/esm-framework';
 import { useTranslation } from 'react-i18next';
-import { useDefaultFacility } from '../../billing.resource';
+import startCase from 'lodash-es/startCase';
 
 interface PrintableInvoiceHeaderProps {
   patientDetails: PatientDetails;
+  facilityInfo: Record<string, any>;
 }
 
-const PrintableInvoiceHeader: React.FC<PrintableInvoiceHeaderProps> = ({ patientDetails }) => {
+const PrintableInvoiceHeader: React.FC<PrintableInvoiceHeaderProps> = ({ patientDetails, facilityInfo }) => {
   const { t } = useTranslation();
-  const { logo } = useConfig();
-  const { data } = useDefaultFacility();
+  const { logo } = useConfig({ externalModuleName: '@ampath/esm-login-app' });
 
   return (
     <div className={styles.container}>
       <div className={styles.printableHeader}>
         <p className={styles.heading}>{t('invoice', 'Invoice')}</p>
         {logo?.src ? (
-          <img className={styles.img} src={logo.src} alt={logo.alt} />
+          <img className={styles.img} height={60} width={250} src={logo.src} alt={logo.alt} />
         ) : logo?.name ? (
           logo.name
         ) : (
@@ -43,7 +43,7 @@ const PrintableInvoiceHeader: React.FC<PrintableInvoiceHeaderProps> = ({ patient
       <div className={styles.printableBody}>
         <div className={styles.billDetails}>
           <p className={styles.itemHeading}>{t('billedTo', 'Billed to')}</p>
-          <p className={styles.itemLabel}>{patientDetails?.name}</p>
+          <p className={styles.itemLabel}>{startCase(patientDetails?.name)}</p>
           <p className={styles.itemLabel}>{patientDetails?.county}</p>
           <p className={styles.itemLabel}>
             {patientDetails?.subCounty}
@@ -52,7 +52,7 @@ const PrintableInvoiceHeader: React.FC<PrintableInvoiceHeaderProps> = ({ patient
         </div>
 
         <div className={styles.facilityDetails}>
-          <p className={styles.facilityName}>{data?.display}</p>
+          <p className={styles.facilityName}>{facilityInfo?.display}</p>
           <p className={styles.itemLabel}>Kenya</p>
         </div>
       </div>
diff --git a/packages/esm-billing-app/src/invoice/printable-invoice/printable-invoice-header.scss b/packages/esm-billing-app/src/invoice/printable-invoice/printable-invoice-header.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/invoice/printable-invoice/printable-invoice-header.test.tsx b/packages/esm-billing-app/src/invoice/printable-invoice/printable-invoice-header.test.tsx
old mode 100644
new mode 100755
index 49f5aa4f..de1face0
--- a/packages/esm-billing-app/src/invoice/printable-invoice/printable-invoice-header.test.tsx
+++ b/packages/esm-billing-app/src/invoice/printable-invoice/printable-invoice-header.test.tsx
@@ -1,10 +1,8 @@
 import React from 'react';
 import { screen, render } from '@testing-library/react';
 import PrintableInvoiceHeader from './printable-invoice-header.component';
-import { useDefaultFacility } from '../../billing.resource';
 import { useConfig } from '@openmrs/esm-framework';
 
-const mockUseDefaultFacility = useDefaultFacility as jest.MockedFunction<typeof useDefaultFacility>;
 const mockUseConfig = useConfig as jest.MockedFunction<typeof useConfig>;
 
 jest.mock('../../billing.resource', () => ({
@@ -28,8 +26,8 @@ const testProps = {
 describe('PrintableInvoiceHeader', () => {
   test('should render PrintableInvoiceHeader component', () => {
     mockUseConfig.mockReturnValue({ logo: { src: 'logo.png', alt: 'logo' } });
-    mockUseDefaultFacility.mockReturnValue({ data: { display: 'MTRH', uuid: 'mtrh-uuid' }, isLoading: false });
-    render(<PrintableInvoiceHeader {...testProps} />);
+
+    render(<PrintableInvoiceHeader facilityInfo={{ display: 'MTRH', uuid: 'mtrh-uuid' }} {...testProps} />);
     const header = screen.getByText('Invoice');
     expect(header).toBeInTheDocument();
 
@@ -42,16 +40,16 @@ describe('PrintableInvoiceHeader', () => {
 
   test('should display the logo when logo is provided', () => {
     mockUseConfig.mockReturnValue({ logo: { src: 'logo.png', alt: 'logo' } });
-    mockUseDefaultFacility.mockReturnValue({ data: { display: 'MTRH', uuid: 'mtrh-uuid' }, isLoading: false });
-    render(<PrintableInvoiceHeader {...testProps} />);
+
+    render(<PrintableInvoiceHeader facilityInfo={{ display: 'MTRH', uuid: 'mtrh-uuid' }} {...testProps} />);
     const logo = screen.getByAltText('logo');
     expect(logo).toBeInTheDocument();
   });
 
   test('should display the default logo when logo is not provided', () => {
     mockUseConfig.mockReturnValue({ logo: {} });
-    mockUseDefaultFacility.mockReturnValue({ data: { display: 'MTRH', uuid: 'mtrh-uuid' }, isLoading: false });
-    render(<PrintableInvoiceHeader {...testProps} />);
+
+    render(<PrintableInvoiceHeader facilityInfo={{ display: 'MTRH', uuid: 'mtrh-uuid' }} {...testProps} />);
     const logo = screen.getByRole('img');
     expect(logo).toBeInTheDocument();
   });
diff --git a/packages/esm-billing-app/src/invoice/printable-invoice/printable-invoice.component.tsx b/packages/esm-billing-app/src/invoice/printable-invoice/printable-invoice.component.tsx
old mode 100644
new mode 100755
index 64db0bb6..16c44337
--- a/packages/esm-billing-app/src/invoice/printable-invoice/printable-invoice.component.tsx
+++ b/packages/esm-billing-app/src/invoice/printable-invoice/printable-invoice.component.tsx
@@ -8,10 +8,9 @@ import {
   TableBody,
   TableHeader,
   TableCell,
-  DataTableSkeleton,
 } from '@carbon/react';
-import { age, isDesktop, useLayoutType } from '@openmrs/esm-framework';
-import { getGender } from '../../helpers';
+import { age, formatDatetime, parseDate } from '@openmrs/esm-framework';
+import { convertToCurrency, extractString, getGender } from '../../helpers';
 import { type MappedBill } from '../../types';
 import { useTranslation } from 'react-i18next';
 import PrintableFooter from './printable-footer.component';
@@ -21,126 +20,115 @@ import styles from './printable-invoice.scss';
 type PrintableInvoiceProps = {
   bill: MappedBill;
   patient: fhir.Patient;
-  isLoading: boolean;
+  isPrinting: boolean;
+  facilityInfo: Record<string, any>;
 };
 
-const PrintableInvoice: React.FC<PrintableInvoiceProps> = ({ bill, patient, isLoading }) => {
-  const { t } = useTranslation();
-  const layout = useLayoutType();
-  const responsiveSize = isDesktop(layout) ? 'sm' : 'lg';
-  const headerData = [
-    { header: 'Inventory item', key: 'billItem' },
-    { header: 'Quantity', key: 'quantity' },
-    { header: 'Unit price', key: 'price' },
-    { header: 'Total', key: 'total' },
-  ];
+const PrintableInvoice = React.forwardRef<HTMLDivElement, PrintableInvoiceProps>(
+  ({ bill, patient, facilityInfo }, ref) => {
+    const { t } = useTranslation();
+    const headerData = [
+      { header: 'Inventory item', key: 'billItem' },
+      { header: 'Quantity', key: 'quantity' },
+      { header: 'Unit price', key: 'price' },
+      { header: 'Total', key: 'total' },
+    ];
 
-  const rowData =
-    bill?.lineItems?.map((item) => {
+    const rowData =
+      bill?.lineItems?.map((item, index) => {
+        return {
+          id: `${item.uuid}`,
+          billItem: `${index + 1} - ${
+            item.item === '' ? extractString(item?.billableService) : extractString(item.item)
+          }`,
+          quantity: item.quantity,
+          price: item.price,
+          total: item.price * item.quantity,
+        };
+      }) ?? [];
+
+    const invoiceTotal = {
+      'Total Amount': convertToCurrency(bill?.totalAmount),
+      'Amount Tendered': convertToCurrency(bill?.tenderedAmount),
+      'Discount Amount': convertToCurrency(0),
+      'Amount due': convertToCurrency(bill?.totalAmount - bill?.tenderedAmount),
+    };
+
+    const patientDetails = useMemo(() => {
       return {
-        id: `${item.uuid}`,
-        billItem: item.item,
-        quantity: item.quantity,
-        price: item.price,
-        total: item.price * item.quantity,
+        name: `${patient?.name?.[0]?.given?.join(' ')} ${patient?.name?.[0].family}`,
+        age: age(patient?.birthDate),
+        gender: getGender(patient?.gender, t),
+        city: patient?.address?.[0].city,
+        county: patient?.address?.[0].district,
+        subCounty: patient?.address?.[0].state,
       };
-    }) ?? [];
+    }, [patient, t]);
 
-  const invoiceTotal = {
-    'Total Amount': bill?.totalAmount,
-    'Amount Tendered': bill?.tenderedAmount,
-    'Discount Amount': 0,
-    'Amount due': bill?.totalAmount - bill?.tenderedAmount,
-  };
-
-  const patientDetails = useMemo(() => {
-    return {
-      name: `${patient?.name?.[0]?.given?.join(' ')} ${patient?.name?.[0].family}`,
-      age: age(patient?.birthDate),
-      gender: getGender(patient?.gender, t),
-      city: patient?.address?.[0].city,
-      county: patient?.address?.[0].district,
-      subCounty: patient?.address?.[0].state,
+    const invoiceDetails = {
+      'Invoice #': bill.receiptNumber,
+      'Invoice date': formatDatetime(parseDate(bill.dateCreated), { mode: 'standard', noToday: true }),
+      Status: bill.status,
     };
-  }, [patient, t]);
-
-  const invoiceDetails = {
-    'Invoice #': bill.receiptNumber,
-    'Invoice date': bill.dateCreated,
-    Status: bill.status,
-  };
 
-  if (isLoading) {
     return (
-      <div className={styles.loaderContainer}>
-        <DataTableSkeleton
-          columnCount={headerData?.length ?? 0}
-          showHeader={false}
-          showToolbar={false}
-          size={responsiveSize}
-          zebra
-        />
-      </div>
-    );
-  }
-
-  return (
-    <div className={styles.container}>
-      <PrintableInvoiceHeader patientDetails={patientDetails} />
-      <div className={styles.printableInvoiceContainer}>
-        <div className={styles.detailsContainer}>
-          {Object.entries(invoiceDetails).map(([key, val]) => (
-            <div key={key} className={styles.item}>
-              <p className={styles.itemHeading}>{key}</p>
-              <span>{val}</span>
-            </div>
-          ))}
-        </div>
+      <div ref={ref} className={styles.container}>
+        <PrintableInvoiceHeader patientDetails={patientDetails} facilityInfo={facilityInfo} />
+        <div className={styles.printableInvoiceContainer}>
+          <div className={styles.detailsContainer}>
+            {Object.entries(invoiceDetails).map(([key, val]) => (
+              <div key={key} className={styles.item}>
+                <p className={styles.itemHeading}>{key}</p>
+                <span className={styles.itemValue}>{val}</span>
+              </div>
+            ))}
+          </div>
 
-        <div className={styles.itemsContainer}>
-          <div className={styles.tableContainer}>
-            <DataTable isSortable rows={rowData} headers={headerData} size={responsiveSize} useZebraStyles={false}>
-              {({ rows, headers, getRowProps, getTableProps }) => (
-                <TableContainer>
-                  <Table {...getTableProps()} aria-label="Invoice line items">
-                    <TableHead>
-                      <TableRow>
-                        {headers.map((header) => (
-                          <TableHeader key={header.key}>{header.header}</TableHeader>
-                        ))}
-                      </TableRow>
-                    </TableHead>
-                    <TableBody>
-                      {rows.map((row) => (
-                        <TableRow
-                          key={row.id}
-                          {...getRowProps({
-                            row,
-                          })}>
-                          {row.cells.map((cell) => (
-                            <TableCell key={cell.id}>{cell.value}</TableCell>
+          <div className={styles.itemsContainer}>
+            <div className={styles.tableContainer}>
+              <DataTable size="sm" isSortable rows={rowData} headers={headerData} useZebraStyles>
+                {({ rows, headers, getRowProps, getTableProps }) => (
+                  <TableContainer>
+                    <Table {...getTableProps()} aria-label="Invoice line items">
+                      <TableHead>
+                        <TableRow>
+                          {headers.map((header) => (
+                            <TableHeader key={header.key}>{header.header}</TableHeader>
                           ))}
                         </TableRow>
-                      ))}
-                    </TableBody>
-                  </Table>
-                </TableContainer>
-              )}
-            </DataTable>
-          </div>
+                      </TableHead>
+                      <TableBody>
+                        {rows.map((row) => (
+                          <TableRow
+                            key={row.id}
+                            {...getRowProps({
+                              row,
+                            })}>
+                            {row.cells.map((cell) => (
+                              <TableCell key={cell.id}>{cell.value}</TableCell>
+                            ))}
+                          </TableRow>
+                        ))}
+                      </TableBody>
+                    </Table>
+                  </TableContainer>
+                )}
+              </DataTable>
+            </div>
 
-          <div className={styles.totalContainer}>
-            {Object.entries(invoiceTotal).map(([key, val]) => (
-              <p key={key} className={styles.itemTotal}>
-                <span className={styles.itemHeading}>{key}</span>: <span className={styles.itemLabel}>{val}</span>
-              </p>
-            ))}
+            <div className={styles.totalContainer}>
+              {Object.entries(invoiceTotal).map(([key, val]) => (
+                <p key={key} className={styles.itemTotal}>
+                  <span className={styles.itemHeading}>{key}</span>: <span className={styles.itemLabel}>{val}</span>
+                </p>
+              ))}
+            </div>
           </div>
         </div>
+        <PrintableFooter facilityInfo={facilityInfo} />
       </div>
-      <PrintableFooter />
-    </div>
-  );
-};
+    );
+  },
+);
 
 export default PrintableInvoice;
diff --git a/packages/esm-billing-app/src/invoice/printable-invoice/printable-invoice.scss b/packages/esm-billing-app/src/invoice/printable-invoice/printable-invoice.scss
old mode 100644
new mode 100755
index 596aeb95..f78d9a2d
--- a/packages/esm-billing-app/src/invoice/printable-invoice/printable-invoice.scss
+++ b/packages/esm-billing-app/src/invoice/printable-invoice/printable-invoice.scss
@@ -7,6 +7,10 @@
   flex-direction: row;
 }
 
+.container {
+  margin-top: layout.$spacing-05;
+}
+
 .itemsContainer {
   display: flex;
   flex-direction: column;
@@ -21,7 +25,7 @@
 }
 
 .tableContainer {
-  min-height: 50vh;
+  margin-bottom: layout.$spacing-05;
 }
 
 .totalContainer {
@@ -34,17 +38,23 @@
 }
 
 .itemHeading {
-  @include type.type-style('body-compact-02');
-  font-weight: bold;
+  @include type.type-style('label-02');
+  font-style: bold;
+  color: colors.$cool-gray-90;
+  margin-bottom: layout.$spacing-01;
+}
+
+.itemValue {
+  @include type.type-style('legal-01');
   color: colors.$cool-gray-90;
-  margin-bottom: layout.$spacing-02;
 }
 
 .itemTotal {
-  border-top: solid 0.1pt colors.$cool-gray-30;
+  border-bottom: solid 0.00125rem colors.$cool-gray-10;
   padding: layout.$spacing-02;
 }
 
 .itemLabel {
   float: right;
+  @include type.type-style('label-01');
 }
diff --git a/packages/esm-billing-app/src/left-panel-link.component.tsx b/packages/esm-billing-app/src/left-panel-link.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/m-pesa/mpesa-resource.tsx b/packages/esm-billing-app/src/m-pesa/mpesa-resource.tsx
old mode 100644
new mode 100755
index 70e1ee38..3e970c28
--- a/packages/esm-billing-app/src/m-pesa/mpesa-resource.tsx
+++ b/packages/esm-billing-app/src/m-pesa/mpesa-resource.tsx
@@ -1,74 +1,81 @@
-import useSWR from 'swr';
-import { openmrsFetch, useConfig } from '@openmrs/esm-framework';
-import { Buffer } from 'buffer';
-import { type BillingConfig } from '../config-schema';
+import { type RequestStatus } from '../types';
 
-type PaymentMethod = {
-  uuid: string;
-  description: string;
-  name: string;
-  retired: boolean;
-};
+export const readableStatusMap = new Map<RequestStatus, string>();
+readableStatusMap.set('COMPLETE', 'Complete');
+readableStatusMap.set('FAILED', 'Failed');
+readableStatusMap.set('INITIATED', 'Waiting for user...');
+readableStatusMap.set('NOT-FOUND', 'Request not found');
 
-const swrOption = {
-  errorRetryCount: 2,
-};
+export const initiateStkPush = async (
+  payload,
+  setNotification: (notification: { type: 'error' | 'success'; message: string }) => void,
+  MPESA_PAYMENT_API_BASE_URL: string,
+): Promise<string> => {
+  try {
+    const url = `${MPESA_PAYMENT_API_BASE_URL}/api/mpesa/stk-push`;
+
+    const res = await fetch(url, {
+      method: 'POST',
+      headers: {
+        'Content-Type': 'application/json',
+      },
+      body: JSON.stringify({
+        phoneNumber: payload.PhoneNumber,
+        amount: payload.Amount,
+        accountReference: payload.AccountReference,
+      }),
+    });
 
-export const usePaymentModes = (excludeWaiver: boolean = true) => {
-  const { excludedPaymentMode } = useConfig<BillingConfig>();
-  const url = `/ws/rest/v1/cashier/paymentMode`;
-  const { data, isLoading, error, mutate } = useSWR<{ data: { results: Array<PaymentMethod> } }>(
-    url,
-    openmrsFetch,
-    swrOption,
-  );
-  const allowedPaymentModes =
-    excludedPaymentMode?.length > 0
-      ? data?.data?.results.filter((mode) => !excludedPaymentMode.some((excluded) => excluded.uuid === mode.uuid)) ?? []
-      : data?.data?.results ?? [];
-  return {
-    paymentModes: excludeWaiver ? allowedPaymentModes : data?.data?.results,
-    isLoading,
-    mutate,
-    error,
-  };
+    if (!res.ok && res.status === 403) {
+      const error = new Error('Health facility M-PESA data not configured.');
+      throw error;
+    }
+
+    const response: { requestId: string } = await res.json();
+
+    setNotification({ message: 'STK Push sent successfully', type: 'success' });
+    return response.requestId;
+  } catch (err) {
+    const error = err as Error;
+    setNotification({
+      message: error.message ?? 'Unable to initiate Lipa Na Mpesa, please try again later.',
+      type: 'error',
+    });
+  }
 };
 
-export const generateStkAccessToken = async (authorizationUrl: string) => {
-  // eslint-disable-next-line no-useless-catch
-  try {
-    const consumerKey = '';
-    const consumerSecret = '';
-    const auth = Buffer.from(`${consumerKey}:${consumerSecret}`).toString('base64');
-    const headers = {
+export const getRequestStatus = async (
+  requestId: string,
+  MPESA_PAYMENT_API_BASE_URL: string,
+): Promise<RequestStatus> => {
+  const requestResponse = await fetch(`${MPESA_PAYMENT_API_BASE_URL}/api/mpesa/check-payment-state`, {
+    method: 'POST',
+    headers: {
       'Content-Type': 'application/json',
-      Authorization: `Basic ${auth}`,
-    };
-    const response = await fetch(authorizationUrl, { method: 'GET', headers: headers });
-    const { access_token } = await response.json();
-    return access_token;
-  } catch (error) {
-    //throw error;
-    console.error('An error occurred:', error);
+    },
+    body: JSON.stringify({
+      requestId,
+    }),
+  });
+
+  if (!requestResponse.ok) {
+    const error = new Error(`HTTP error! status: ${requestResponse.status}`);
+
+    if (requestResponse.statusText) {
+      error.message = requestResponse.statusText;
+    }
+    throw error;
   }
+
+  const requestStatus: { status: RequestStatus } = await requestResponse.json();
+
+  return requestStatus.status;
 };
 
-export const initiateStkPush = async (payload, initiateUrl: string, authorizationUrl: string) => {
-  // eslint-disable-next-line no-useless-catch
-  try {
-    const access_token = await generateStkAccessToken(authorizationUrl);
-    const headers = {
-      'Content-Type': 'application/json',
-      Authorization: `Bearer ${access_token}`,
-    };
-    const response = await fetch(initiateUrl, {
-      method: 'POST',
-      headers: headers,
-      body: JSON.stringify(payload),
-    });
-    return await response.json();
-  } catch (err) {
-    console.error('An error occurred :', err);
-    //throw err;
+export const getErrorMessage = (err: { message: string }, t) => {
+  if (err.message) {
+    return err.message;
   }
+
+  return t('unKnownErrorMsg', 'An unknown error occurred');
 };
diff --git a/packages/esm-billing-app/src/metrics-cards/card.component.tsx b/packages/esm-billing-app/src/metrics-cards/card.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/metrics-cards/card.scss b/packages/esm-billing-app/src/metrics-cards/card.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/metrics-cards/metrics-cards.component.tsx b/packages/esm-billing-app/src/metrics-cards/metrics-cards.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/metrics-cards/metrics-cards.scss b/packages/esm-billing-app/src/metrics-cards/metrics-cards.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/metrics-cards/metrics.resource.ts b/packages/esm-billing-app/src/metrics-cards/metrics.resource.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/modal/require-payment-modal.component.tsx b/packages/esm-billing-app/src/modal/require-payment-modal.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/modal/require-payment.scss b/packages/esm-billing-app/src/modal/require-payment.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/past-patient-bills/filtered-patient-bills.component.tsx b/packages/esm-billing-app/src/past-patient-bills/filtered-patient-bills.component.tsx
new file mode 100755
index 00000000..55e3cffa
--- /dev/null
+++ b/packages/esm-billing-app/src/past-patient-bills/filtered-patient-bills.component.tsx
@@ -0,0 +1,119 @@
+import React from 'react';
+import {
+  Layer,
+  DataTable,
+  TableContainer,
+  Table,
+  TableHead,
+  TableRow,
+  TableHeader,
+  TableBody,
+  TableExpandRow,
+  TableCell,
+  Tile,
+} from '@carbon/react';
+import { convertToCurrency, extractString } from '../helpers';
+import { useTranslation } from 'react-i18next';
+import { type MappedBill } from '../types';
+import styles from '../bills-table/bills-table.scss';
+import { ConfigurableLink } from '@openmrs/esm-framework';
+import { EmptyState } from '@openmrs/esm-patient-common-lib';
+
+type PatientBillsProps = {
+  patientUuid: string;
+  bills: Array<MappedBill>;
+  setPatientUuid: (patientUuid: string) => void;
+};
+
+const PastPatientBills: React.FC<PatientBillsProps> = ({ patientUuid, bills, setPatientUuid }) => {
+  const { t } = useTranslation();
+
+  if (!patientUuid) {
+    <h3>Missing patient information</h3>;
+  }
+
+  const tableHeaders = [
+    { header: 'Date', key: 'date' },
+    { header: 'Billable Service', key: 'billableService' },
+    { header: 'Total Amount', key: 'totalAmount' },
+  ];
+
+  const billingUrl = '${openmrsSpaBase}/home/billing/patient/${patientUuid}/${uuid}';
+
+  const tableRows = bills.map((bill) => ({
+    id: `${bill.uuid}`,
+    date: (
+      <ConfigurableLink
+        style={{ textDecoration: 'none', maxWidth: '50%' }}
+        to={billingUrl}
+        templateParams={{ patientUuid: bill.patientUuid, uuid: bill.uuid }}>
+        {bill.dateCreated}
+      </ConfigurableLink>
+    ),
+    billableService: extractString(bill.billingService),
+    totalAmount: convertToCurrency(bill.totalAmount),
+  }));
+
+  if (bills.length === 0 && patientUuid !== '') {
+    <EmptyState displayText={'Pending Patient Bills Found'} headerTitle={'No Pending Patient Bills Found'} />;
+  }
+
+  return (
+    <div className={styles.container}>
+      <DataTable
+        rows={tableRows}
+        headers={tableHeaders}
+        size="sm"
+        useZebraStyles
+        render={({
+          rows,
+          headers,
+          getHeaderProps,
+          getExpandHeaderProps,
+          getRowProps,
+          getExpandedRowProps,
+          getTableProps,
+          getTableContainerProps,
+        }) => (
+          <TableContainer
+            title={t('patientBills', 'Patient bill')}
+            description={t('patientBillsDescription', 'List of patient bills')}
+            {...getTableContainerProps()}>
+            <Table {...getTableProps()} aria-label="sample table">
+              <TableHead>
+                <TableRow>
+                  <TableHeader enableToggle={true} {...getExpandHeaderProps()} />
+                  {headers.map((header, i) => (
+                    <TableHeader
+                      key={i}
+                      {...getHeaderProps({
+                        header,
+                      })}>
+                      {header.header}
+                    </TableHeader>
+                  ))}
+                </TableRow>
+              </TableHead>
+              <TableBody>
+                {rows.map((row, index) => (
+                  <React.Fragment key={row.id}>
+                    <TableExpandRow
+                      {...getRowProps({
+                        row,
+                      })}>
+                      {row.cells.map((cell) => (
+                        <TableCell key={cell.id}>{cell.value}</TableCell>
+                      ))}
+                    </TableExpandRow>
+                  </React.Fragment>
+                ))}
+              </TableBody>
+            </Table>
+          </TableContainer>
+        )}
+      />
+    </div>
+  );
+};
+
+export default PastPatientBills;
diff --git a/packages/esm-billing-app/src/past-patient-bills/patient-bills-dashboard/patient-bills-dashboard.scss b/packages/esm-billing-app/src/past-patient-bills/patient-bills-dashboard/patient-bills-dashboard.scss
new file mode 100755
index 00000000..b3010f48
--- /dev/null
+++ b/packages/esm-billing-app/src/past-patient-bills/patient-bills-dashboard/patient-bills-dashboard.scss
@@ -0,0 +1,11 @@
+@use '@carbon/colors';
+@use '@carbon/layout';
+@use '@carbon/type';
+
+.container {
+  height: calc(100vh - 3rem);
+}
+
+.billsTableContainer {
+  margin: layout.$spacing-03 layout.$spacing-01;
+}
diff --git a/packages/esm-billing-app/src/past-patient-bills/patient-bills-dashboard/patient-bills-dashboard.tsx b/packages/esm-billing-app/src/past-patient-bills/patient-bills-dashboard/patient-bills-dashboard.tsx
new file mode 100755
index 00000000..ecbca8b9
--- /dev/null
+++ b/packages/esm-billing-app/src/past-patient-bills/patient-bills-dashboard/patient-bills-dashboard.tsx
@@ -0,0 +1,34 @@
+import React, { useState } from 'react';
+import styles from './patient-bills-dashboard.scss';
+import { ExtensionSlot } from '@openmrs/esm-framework';
+import PastPatientBills from '../filtered-patient-bills.component';
+import { useBills } from '../../billing.resource';
+import { Dropdown } from '@carbon/react';
+
+const filterItems = [
+  { id: 'PENDING', text: 'Pending bills' },
+  { id: 'POSTED', text: 'Posted bills' },
+];
+
+const PatientBillsScreen: React.FC = () => {
+  const [patientUuid, setPatientUuid] = React.useState<string>('');
+  const { bills } = useBills(patientUuid);
+  const filterBills = bills.filter((bill) => bill.status !== 'PAID' && patientUuid === bill.patientUuid) ?? [];
+
+  return (
+    <main className={styles.container}>
+      <ExtensionSlot
+        name="patient-search-bar-slot"
+        state={{
+          selectPatientAction: (patientUuid) => setPatientUuid(patientUuid),
+          buttonProps: {
+            kind: 'primary',
+          },
+        }}
+      />
+      <PastPatientBills patientUuid={patientUuid} bills={filterBills} setPatientUuid={setPatientUuid} />
+    </main>
+  );
+};
+
+export default PatientBillsScreen;
diff --git a/packages/esm-billing-app/src/past-patient-bills/patient-bills.scss b/packages/esm-billing-app/src/past-patient-bills/patient-bills.scss
new file mode 100755
index 00000000..e26d7a5f
--- /dev/null
+++ b/packages/esm-billing-app/src/past-patient-bills/patient-bills.scss
@@ -0,0 +1,11 @@
+@use '@carbon/colors';
+@use '@carbon/layout';
+@use '@carbon/type';
+
+.button {
+  margin-left: layout.$spacing-04;
+}
+
+.billsTableContainer {
+  margin: 2rem 1rem;
+}
diff --git a/packages/esm-billing-app/src/root.component.tsx b/packages/esm-billing-app/src/root.component.tsx
old mode 100644
new mode 100755
index d8c9eff0..25265707
--- a/packages/esm-billing-app/src/root.component.tsx
+++ b/packages/esm-billing-app/src/root.component.tsx
@@ -2,7 +2,7 @@ import React from 'react';
 import { BrowserRouter, Route, Routes } from 'react-router-dom';
 import { BillingDashboard } from './billing-dashboard/billing-dashboard.component';
 import Invoice from './invoice/invoice.component';
-import ClaimScreen from './invoice/claims/claims-dashboard/claims-dashboard.component';
+import ClaimScreen from './claims/dashboard/claims-dashboard.component';
 
 const RootComponent: React.FC = () => {
   const baseName = window.getOpenmrsSpaBase() + 'home/billing';
@@ -12,7 +12,7 @@ const RootComponent: React.FC = () => {
       <Routes>
         <Route path="/" element={<BillingDashboard />} />
         <Route path="/patient/:patientUuid/:billUuid" element={<Invoice />} />
-        <Route path="/claims" element={<ClaimScreen />} />
+        <Route path="/patient/:patientUuid/:billUuid/claims" element={<ClaimScreen />} />
       </Routes>
     </BrowserRouter>
   );
diff --git a/packages/esm-billing-app/src/root.scss b/packages/esm-billing-app/src/root.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/src/routes.json b/packages/esm-billing-app/src/routes.json
old mode 100644
new mode 100755
index 91eaa4ec..1383e2d7
--- a/packages/esm-billing-app/src/routes.json
+++ b/packages/esm-billing-app/src/routes.json
@@ -1,8 +1,7 @@
 {
   "$schema": "https://json.openmrs.org/routes.schema.json",
   "backendDependencies": {
-    "ampathemr": "^1.0.0",
-    "amrsreporting": "^1.0.0"
+    "ampathemr": "^1.0.0"
   },
   "pages": [
     {
@@ -86,10 +85,30 @@
       "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": "test-order-action",
+      "component": "testOrderAction",
+      "slot": "tests-ordered-actions-slot",
+      "order": 0
     }
   ]
 }
diff --git a/packages/esm-billing-app/src/types/index.ts b/packages/esm-billing-app/src/types/index.ts
old mode 100644
new mode 100755
index 14248555..1c4d618e
--- a/packages/esm-billing-app/src/types/index.ts
+++ b/packages/esm-billing-app/src/types/index.ts
@@ -1,3 +1,4 @@
+import { type OpenmrsResource } from '@openmrs/esm-framework';
 import { type Drug, type OrderBasketItem } from '@openmrs/esm-patient-common-lib';
 export interface MappedBill {
   uuid: string;
@@ -66,6 +67,7 @@ export interface LineItem {
   lineItemOrder: number;
   resourceVersion: string;
   paymentStatus: string;
+  itemOrServiceConceptUuid: string;
 }
 
 interface PatientLink {
@@ -110,18 +112,6 @@ interface PaymentInstanceType {
   description: string;
   retired: boolean;
 }
-
-export interface Payment {
-  uuid: string;
-  instanceType: PaymentInstanceType;
-  attributes: Attribute[];
-  amount: number;
-  amountTendered: number;
-  dateCreated: number;
-  voided: boolean;
-  resourceVersion: string;
-}
-
 export interface PatientInvoice {
   uuid: string;
   display: string;
@@ -257,3 +247,32 @@ export type PaymentMethod = {
   name: string;
   retired: boolean;
 };
+
+export interface Payment {
+  uuid: string;
+  instanceType: PaymentInstanceType;
+  attributes: Attribute[];
+  amount: number;
+  amountTendered: number;
+  dateCreated: string;
+  voided: boolean;
+  resourceVersion: string;
+}
+
+export type FormPayment = { method: string; amount: string | number; referenceCode?: number | string };
+
+export type PaymentFormValue = {
+  payment: Array<FormPayment>;
+};
+
+export type QueueEntry = {
+  queueEntry: {
+    uuid: string;
+    priority: OpenmrsResource;
+    status: OpenmrsResource;
+    queue: OpenmrsResource;
+    queueComingFrom: OpenmrsResource;
+  };
+};
+
+export type RequestStatus = 'INITIATED' | 'COMPLETE' | 'FAILED' | 'NOT-FOUND';
diff --git a/packages/esm-billing-app/src/utils.ts b/packages/esm-billing-app/src/utils.ts
new file mode 100755
index 00000000..483f5bd9
--- /dev/null
+++ b/packages/esm-billing-app/src/utils.ts
@@ -0,0 +1,87 @@
+import { type OpenmrsResource } from '@openmrs/esm-framework';
+import { type LineItem, type MappedBill } from './types';
+
+export const createBillWaiverPayload = (
+  bill: MappedBill,
+  amountWaived: number,
+  totalAmount: number,
+  lineItems: Array<LineItem>,
+  paymentModes: Array<OpenmrsResource>,
+) => {
+  const { cashier } = bill;
+
+  const billPayment = {
+    amount: parseFloat(totalAmount.toFixed(2)),
+    amountTendered: parseFloat(Number(amountWaived).toFixed(2)),
+    attributes: [],
+    instanceType: paymentModes?.find((mode) => mode.name.toLowerCase().includes('waiver'))?.uuid,
+  };
+
+  const processedLineItems = lineItems.map((lineItem) => ({
+    ...lineItem,
+    billableService: processBillItem(lineItem),
+    item: processBillItem(lineItem),
+    paymentStatus: 'PAID',
+  }));
+
+  const processedPayment = {
+    cashPoint: bill.cashPointUuid,
+    cashier: cashier.uuid,
+    lineItems: processedLineItems,
+    payments: [...bill.payments, billPayment],
+    patient: bill.patientUuid,
+  };
+
+  return processedPayment;
+};
+
+const processBillItem = (item) => (item.item || item.billableService)?.split(':')[0];
+
+function extractMessage(input: string): string | null {
+  const parts = input?.split('=>');
+  if (parts?.length > 0) {
+    return parts[parts.length - 1].trim();
+  }
+  return null;
+}
+
+/**
+ * Extracts error messages from a given error response object.
+ * If fieldErrors are present, it extracts the error messages from each field.
+ * If globalErrors are present, it extracts the error messages from each global error.
+ * Otherwise, it returns the top-level error message.
+ *
+ * @param {ErrorObject} errorObject - The error response object.
+ */
+export function extractErrorMessagesFromResponse(errorObject): string {
+  const {
+    error: { fieldErrors, globalErrors, message },
+  } = errorObject ?? {};
+
+  if (Object.keys(fieldErrors ?? {})?.length > 0) {
+    return Object.values(fieldErrors)
+      .flatMap((errors: Array<any>) => errors.map((error) => error.message))
+      .join('\n');
+  }
+
+  if (globalErrors?.length) {
+    return globalErrors.map((error) => error.message).join('\n');
+  }
+
+  return extractMessage(message) ?? 'An error occurred';
+}
+
+export const computeTotalPrice = (items) => {
+  if (items && !items.length) {
+    return 0;
+  }
+
+  let totalPrice = 0;
+
+  items?.forEach((item) => {
+    const { price, quantity } = item;
+    totalPrice += price * quantity;
+  });
+
+  return totalPrice;
+};
diff --git a/packages/esm-billing-app/translations/en.json b/packages/esm-billing-app/translations/en.json
old mode 100644
new mode 100755
index 1c0fe84a..2c8142bb
--- a/packages/esm-billing-app/translations/en.json
+++ b/packages/esm-billing-app/translations/en.json
@@ -5,11 +5,13 @@
   "addNewBillableService": "Add new billable service",
   "addNewService": "Add new service",
   "addPaymentOptions": "Add payment option",
+  "addTariffsave": "Add Tariff",
+  "addTariffsServices": "Add Tariffs Services",
   "amount": "Amount",
-  "amountClaimed": "Amount Claimed",
   "amountToWaiveAriaLabel": "Enter amount to waive",
   "amountToWaiveHelper": "Specify the amount to be deducted from the bill",
   "amountToWaiveLabel": "Amount to Waive",
+  "availableTariffs": "Available Tariffs",
   "billableService": "Billable service",
   "billableServices": "Billable Services",
   "billAmount": "Bill Amount",
@@ -17,6 +19,7 @@
   "billedTo": "Billed to",
   "billErrorService": "Bill service error",
   "billing": "Billing",
+  "billingForm": "Billing Form",
   "billingStatus": "Billing status",
   "billItem": "Bill item",
   "billItems": "Save Bill",
@@ -27,16 +30,24 @@
   "billPaymentRequiredMessage": "The current patient has pending bill. Advice patient to settle bill before receiving services",
   "billServicesManagement": "Bill services management",
   "billsList": "Bill list",
+  "billTariffs": "Insurance Tariffs",
   "billTotal": "Bill total",
-  "billWaiver": "Bill waiver",
+  "billWaiver": "Bill Waiver",
   "billWaiverError": "Bill waiver failed {{error}}",
   "billWaiverSuccess": "Bill waiver successful",
   "cancel": "Cancel",
   "checkFilters": "Check the filters above",
   "checkValidity": "Check Validity",
+  "claim": "Process claims",
   "claimcode": " Claim Code",
+  "claimError": "Claim Error",
   "claimExplanation": "Claim Explanation",
-  "diagnosis": "Diagnosis",
+  "claimJustification": "Claim Justification",
+  "claimsItems": "Claims Items",
+  "claimSummary": "Claim Summary",
+  "createClaimError": "Create Claim error",
+  "date": "Date of Claimed",
+  "diagnoses": "Diagnoses",
   "discard": "Discard",
   "discardClaim": "Discard Claim",
   "discount": "Discount",
@@ -48,15 +59,15 @@
   "errorLoadingPaymentModes": "Payment modes error",
   "exemptionCategory": "Exemption category",
   "facility": "Facility",
+  "failedBillPayment": "Bill payment failed",
   "filterBy": "Filter by",
   "filterTable": "Filter table",
   "formTitle": "Fill in the form details",
-  "guarantee": "Guarantee ID",
+  "generatedMessage": "The invoice has been electronically generated and is a valid document. It was created by {{userName}} on {{date}} at {{time}}",
+  "guaranteeId": "Guarantee Id",
   "home": "Home",
   "identifier": "Identifier",
   "initiatePay": "Initiate Payment",
-  "initiatePayment": "Initiate Payment",
-  "inStock": "{{quantityUoM}}(s) In stock ",
   "insuranceScheme": "Insurance scheme",
   "invalidSHANumber": "SHA number is invalid, advice patient to update payment or contact SHA",
   "invalidWaiverAmountMessage": "Amount to waive cannot be greater than total amount",
@@ -64,18 +75,22 @@
   "invoiceError": "Invoice error",
   "isPatientExemptedLegend": "Is patient exempted from payment?",
   "item": "Item",
+  "items": "Items",
   "itemsToBeBilled": "Items to be billed",
   "launchBillForm": "Launch bill form",
   "lineItems": "Line items",
   "loading": "Loading",
   "loadingBillingServices": "Loading billing services...",
+  "loadingData": "Loading data...",
   "loadingDescription": "Loading",
   "makeclaims": "Make Claims",
   "manageBillableServices": "Manage billable services",
+  "mpesaPayment": "MPESA Payment",
   "name": "Name",
   "navigateBack": "Navigate back",
   "nextPage": "Next page",
-  "noBilltoDisplay": "There are no bills to display for this patient",
+  "no": "No",
+  "noBillDisplay": "There are no bills to display for this patient",
   "noMatchingBillsToDisplay": "No matching bills to display",
   "noMatchingItemsToDisplay": "No matching items to display",
   "noMatchingServicesToDisplay": "No matching services to display",
@@ -91,15 +106,21 @@
   "paymentPayment": "Bill Payment",
   "payments": "Payments",
   "Phone Number": "Phone Number",
+  "pickLabRequest": "Pick Lab Request",
   "policyNumber": "Policy number",
   "postWaiver": "Post waiver",
   "previousPage": "Previous page",
   "prices": "Prices",
-  "printBill": "Print bill",
+  "printingInvoice": "Printing invoice...",
+  "printInvoice": "Print invoice",
   "printReceipt": "Print receipt",
+  "printRecept": "Print receipt",
   "proceedToCare": "Proceed to care",
   "processClaim": "Process Claim",
+  "processing": "Processing...",
+  "processingPayment": "Processing Payment",
   "processPayment": "Process Payment",
+  "provider_name": "Provider Name",
   "providerMessage": "By clicking Proceed to care, you acknowledge that you have advised the patient to settle the bill.",
   "quantity": "Quantity",
   "referenceNumber": "Ref number",
@@ -112,9 +133,10 @@
   "selectExemptionCategory": "Select exemption category",
   "selectitemstobeclaimed": "Select items that are to be included in the claims",
   "selectPaymentMethod": "Select payment method",
-  "selectPaymentMethodPlaceholder": "Select payment method",
   "sellingAmount": "Enter selling price",
   "sellingPrice": "Selling Price",
+  "sendClaim": "Claim sent successfully",
+  "sendClaimError": "Request Failed, Please try later........",
   "service": "Service",
   "serviceMetrics": "Service Metrics",
   "serviceName": "Service Name",
@@ -125,20 +147,20 @@
   "shaNumber": "SHA Number",
   "shortName": "Short Name",
   "status": "Service Status",
-  "stkPush": "STK Push",
-  "stkPushError": "STK Push request failed",
-  "stkPushSucess": "STK Push send successfully",
   "stockItem": "Stock Item",
+  "tariffs": "Tariffs",
   "total": "Total",
   "totalAmount": "Total Amount",
   "totalTendered": "Total Tendered",
   "treatmentend": "Treatment End",
   "treatmentstart": "Treatment Start",
   "unitPrice": "Unit price",
+  "unsettledBill": "Unsettled bill for test.",
   "valid": "Valid SHA Number",
   "validatingSHANumber": "Validating SHA Number",
   "validSHANumber": "SHA number is valid, proceed with care",
   "visitTime": "Visit time",
-  "visitType": " Visit Type",
-  "waiverForm": "Waiver form"
+  "visittype": "Visit Type",
+  "waiverForm": "Waiver form",
+  "yes": "Yes"
 }
diff --git a/packages/esm-billing-app/tsconfig.json b/packages/esm-billing-app/tsconfig.json
old mode 100644
new mode 100755
diff --git a/packages/esm-billing-app/webpack.config.js b/packages/esm-billing-app/webpack.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/README.md b/packages/esm-care-panel-app/README.md
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/currentProphylaxisUsed/en.json b/packages/esm-care-panel-app/currentProphylaxisUsed/en.json
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/hivStatus/en.json b/packages/esm-care-panel-app/hivStatus/en.json
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/jest.config.js b/packages/esm-care-panel-app/jest.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/package.json b/packages/esm-care-panel-app/package.json
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/care-panel-dashboard/care-panel-dashboard.component.tsx b/packages/esm-care-panel-app/src/care-panel-dashboard/care-panel-dashboard.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/care-panel-dashboard/care-panel-dashboard.scss b/packages/esm-care-panel-app/src/care-panel-dashboard/care-panel-dashboard.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/care-panel/care-panel.component.tsx b/packages/esm-care-panel-app/src/care-panel/care-panel.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/care-panel/care-panel.scss b/packages/esm-care-panel-app/src/care-panel/care-panel.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/care-programs/care-programs.component.tsx b/packages/esm-care-panel-app/src/care-programs/care-programs.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/care-programs/care-programs.scss b/packages/esm-care-panel-app/src/care-programs/care-programs.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/config-schema.ts b/packages/esm-care-panel-app/src/config-schema.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/dashboard.meta.ts b/packages/esm-care-panel-app/src/dashboard.meta.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/declarations.d.ts b/packages/esm-care-panel-app/src/declarations.d.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/hooks/useCarePrograms.tsx b/packages/esm-care-panel-app/src/hooks/useCarePrograms.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/hooks/useEnrollmentHistory.ts b/packages/esm-care-panel-app/src/hooks/useEnrollmentHistory.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/hooks/useNonStandardRegimen.ts b/packages/esm-care-panel-app/src/hooks/useNonStandardRegimen.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/hooks/usePatientSummary.ts b/packages/esm-care-panel-app/src/hooks/usePatientSummary.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/hooks/useProgramSummary.ts b/packages/esm-care-panel-app/src/hooks/useProgramSummary.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/hooks/useRegimenEncounter.ts b/packages/esm-care-panel-app/src/hooks/useRegimenEncounter.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/hooks/useRegimenHistory.ts b/packages/esm-care-panel-app/src/hooks/useRegimenHistory.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/hooks/useRegimenReason.ts b/packages/esm-care-panel-app/src/hooks/useRegimenReason.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/hooks/useStandardRegimen.ts b/packages/esm-care-panel-app/src/hooks/useStandardRegimen.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/index.ts b/packages/esm-care-panel-app/src/index.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/patient-summary/patient-summary.component.tsx b/packages/esm-care-panel-app/src/patient-summary/patient-summary.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/patient-summary/patient-summary.scss b/packages/esm-care-panel-app/src/patient-summary/patient-summary.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/print-layout/print.component.tsx b/packages/esm-care-panel-app/src/print-layout/print.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/print-layout/print.scss b/packages/esm-care-panel-app/src/print-layout/print.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/program-enrollment/program-enrollment.component.tsx b/packages/esm-care-panel-app/src/program-enrollment/program-enrollment.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/program-enrollment/program-enrollment.scss b/packages/esm-care-panel-app/src/program-enrollment/program-enrollment.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/program-summary/program-summary.component.tsx b/packages/esm-care-panel-app/src/program-summary/program-summary.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/program-summary/program-summary.scss b/packages/esm-care-panel-app/src/program-summary/program-summary.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/regimen-editor/delete-regimen-modal.component.tsx b/packages/esm-care-panel-app/src/regimen-editor/delete-regimen-modal.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/regimen-editor/non-standard-regimen.component.tsx b/packages/esm-care-panel-app/src/regimen-editor/non-standard-regimen.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/regimen-editor/regimen-button.component.tsx b/packages/esm-care-panel-app/src/regimen-editor/regimen-button.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/regimen-editor/regimen-form.component.tsx b/packages/esm-care-panel-app/src/regimen-editor/regimen-form.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/regimen-editor/regimen-reason.component.tsx b/packages/esm-care-panel-app/src/regimen-editor/regimen-reason.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/regimen-editor/regimen.resource.tsx b/packages/esm-care-panel-app/src/regimen-editor/regimen.resource.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/regimen-editor/standard-regimen.component.tsx b/packages/esm-care-panel-app/src/regimen-editor/standard-regimen.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/regimen-editor/standard-regimen.scss b/packages/esm-care-panel-app/src/regimen-editor/standard-regimen.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/regimen-editor/utils.tsx b/packages/esm-care-panel-app/src/regimen-editor/utils.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/regimen/regimen-history.component.tsx b/packages/esm-care-panel-app/src/regimen/regimen-history.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/regimen/regimen-history.scss b/packages/esm-care-panel-app/src/regimen/regimen-history.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/routes.json b/packages/esm-care-panel-app/src/routes.json
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/src/types/index.ts b/packages/esm-care-panel-app/src/types/index.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/translations/en.json b/packages/esm-care-panel-app/translations/en.json
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/treatmentNumber/en.json b/packages/esm-care-panel-app/treatmentNumber/en.json
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/tsconfig.json b/packages/esm-care-panel-app/tsconfig.json
old mode 100644
new mode 100755
diff --git a/packages/esm-care-panel-app/webpack.config.js b/packages/esm-care-panel-app/webpack.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/jest.config.js b/packages/esm-hts-app/jest.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/package.json b/packages/esm-hts-app/package.json
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/config-schema.ts b/packages/esm-hts-app/src/config-schema.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/dashboard.meta.tsx b/packages/esm-hts-app/src/dashboard.meta.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/dashboard.scss b/packages/esm-hts-app/src/dashboard.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/declarations.d.ts b/packages/esm-hts-app/src/declarations.d.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/header/hts-header.component.tsx b/packages/esm-hts-app/src/header/hts-header.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/header/hts-header.scss b/packages/esm-hts-app/src/header/hts-header.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/header/hts-illustration.component.tsx b/packages/esm-hts-app/src/header/hts-illustration.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/hts.component.tsx b/packages/esm-hts-app/src/hts.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/hts.scss b/packages/esm-hts-app/src/hts.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/index.ts b/packages/esm-hts-app/src/index.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/left-panel-link.component.tsx b/packages/esm-hts-app/src/left-panel-link.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/root.component.tsx b/packages/esm-hts-app/src/root.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/root.scss b/packages/esm-hts-app/src/root.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/routes.json b/packages/esm-hts-app/src/routes.json
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/common.scss b/packages/esm-hts-app/src/views/dashboard/common.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/hts-program-services/common.scss b/packages/esm-hts-app/src/views/dashboard/hts-program-services/common.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/hts-program-services/hts-initial.component.tsx b/packages/esm-hts-app/src/views/dashboard/hts-program-services/hts-initial.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/hts-program-services/hts-linkage.component.tsx b/packages/esm-hts-app/src/views/dashboard/hts-program-services/hts-linkage.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/hts-program-services/hts-program-services.tsx b/packages/esm-hts-app/src/views/dashboard/hts-program-services/hts-program-services.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/hts-program-services/hts-program.scss b/packages/esm-hts-app/src/views/dashboard/hts-program-services/hts-program.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/hts-program-services/hts-referred.component.tsx b/packages/esm-hts-app/src/views/dashboard/hts-program-services/hts-referred.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/hts-program-services/hts-retest.component.tsx b/packages/esm-hts-app/src/views/dashboard/hts-program-services/hts-retest.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/hts-program-services/hts-screening.component.tsx b/packages/esm-hts-app/src/views/dashboard/hts-program-services/hts-screening.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/empty-state/empty-data-illustration.component.tsx b/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/empty-state/empty-data-illustration.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/empty-state/empty-state.component.tsx b/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/empty-state/empty-state.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/empty-state/empty-state.scss b/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/empty-state/empty-state.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/hts-patient-list-tables/due-for-linkage.component.tsx b/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/hts-patient-list-tables/due-for-linkage.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/hts-patient-list-tables/due-for-retest.component.tsx b/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/hts-patient-list-tables/due-for-retest.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/hts-patient-list-tables/eligible.component.tsx b/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/hts-patient-list-tables/eligible.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/hts-patient-list-tables/hts-screening.component.tsx b/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/hts-patient-list-tables/hts-screening.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/hts-patient-list-tables/invalid-result.component.tsx b/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/hts-patient-list-tables/invalid-result.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/hts-patient-list-tables/module-uptake.component.tsx b/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/hts-patient-list-tables/module-uptake.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/hts-patient-list-tables/tested.component.tsx b/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/hts-patient-list-tables/tested.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/hts-patient-list-tabs.component.tsx b/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/hts-patient-list-tabs.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/hts-patient-list-tabs.scss b/packages/esm-hts-app/src/views/dashboard/patient-list-tabs/hts-patient-list-tabs.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/patient-summary/hts-patientsummary.scss b/packages/esm-hts-app/src/views/dashboard/patient-summary/hts-patientsummary.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/patient-summary/patient-summary.component.tsx b/packages/esm-hts-app/src/views/dashboard/patient-summary/patient-summary.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/summary-tiles/hts-summary-tile.scss b/packages/esm-hts-app/src/views/dashboard/summary-tiles/hts-summary-tile.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/summary-tiles/hts-summary-tiles-overall-uptake.component.tsx b/packages/esm-hts-app/src/views/dashboard/summary-tiles/hts-summary-tiles-overall-uptake.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/src/views/dashboard/summary-tiles/hts-summary-tiles.component.tsx b/packages/esm-hts-app/src/views/dashboard/summary-tiles/hts-summary-tiles.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/translations/en.json b/packages/esm-hts-app/translations/en.json
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/tsconfig.json b/packages/esm-hts-app/tsconfig.json
old mode 100644
new mode 100755
diff --git a/packages/esm-hts-app/webpack.config.js b/packages/esm-hts-app/webpack.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-lab-order-manifest-app/src/lab-order-manifest/dialog/verification-modal.scss b/packages/esm-lab-order-manifest-app/src/lab-order-manifest/dialog/verification-modal.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-lab-order-manifest-app/src/lab-order-manifest/dialog/verification.component.tsx b/packages/esm-lab-order-manifest-app/src/lab-order-manifest/dialog/verification.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/jest.config.js b/packages/esm-morgue-app/jest.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/package.json b/packages/esm-morgue-app/package.json
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/config-schema.ts b/packages/esm-morgue-app/src/config-schema.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/declarations.d.ts b/packages/esm-morgue-app/src/declarations.d.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/index.ts b/packages/esm-morgue-app/src/index.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/morgue-component/morgue.component.tsx b/packages/esm-morgue-app/src/morgue-component/morgue.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/morgue-header/morgue-header.component.tsx b/packages/esm-morgue-app/src/morgue-header/morgue-header.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/morgue-header/morgue-header.scss b/packages/esm-morgue-app/src/morgue-header/morgue-header.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/morgue-header/morgue-illustration.component.tsx b/packages/esm-morgue-app/src/morgue-header/morgue-illustration.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/morgue-left-panel/morgue-left-panel-link.component.tsx b/packages/esm-morgue-app/src/morgue-left-panel/morgue-left-panel-link.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/morgue-metrics/morgue-card.component.tsx b/packages/esm-morgue-app/src/morgue-metrics/morgue-card.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/morgue-metrics/morgue-card.scss b/packages/esm-morgue-app/src/morgue-metrics/morgue-card.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/morgue-metrics/morgue-header.scss b/packages/esm-morgue-app/src/morgue-metrics/morgue-header.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/morgue-metrics/morgue-metrics-header.component.tsx b/packages/esm-morgue-app/src/morgue-metrics/morgue-metrics-header.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/morgue-metrics/morgue-metrics.component.tsx b/packages/esm-morgue-app/src/morgue-metrics/morgue-metrics.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/morgue-metrics/morgue-metrics.scss b/packages/esm-morgue-app/src/morgue-metrics/morgue-metrics.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/morgue-tables/morgue-admission.component.tsx b/packages/esm-morgue-app/src/morgue-tables/morgue-admission.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/morgue-tables/morgue-admitted.component.tsx b/packages/esm-morgue-app/src/morgue-tables/morgue-admitted.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/morgue-tables/morgue-discharged.component.tsx b/packages/esm-morgue-app/src/morgue-tables/morgue-discharged.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/morgue-tabs/morgue-tabs-component.tsx b/packages/esm-morgue-app/src/morgue-tabs/morgue-tabs-component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/morgue-tabs/morgue-tabs.scss b/packages/esm-morgue-app/src/morgue-tabs/morgue-tabs.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/root.component.tsx b/packages/esm-morgue-app/src/root.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/root.scss b/packages/esm-morgue-app/src/root.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/routes.json b/packages/esm-morgue-app/src/routes.json
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/src/setup-tests.ts b/packages/esm-morgue-app/src/setup-tests.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/translations/en.json b/packages/esm-morgue-app/translations/en.json
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/tsconfig.json b/packages/esm-morgue-app/tsconfig.json
old mode 100644
new mode 100755
diff --git a/packages/esm-morgue-app/webpack.config.js b/packages/esm-morgue-app/webpack.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/jest.config.js b/packages/esm-otz-app/jest.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/package.json b/packages/esm-otz-app/package.json
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/config-schema.ts b/packages/esm-otz-app/src/config-schema.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/dashboard.meta.tsx b/packages/esm-otz-app/src/dashboard.meta.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/dashboard.scss b/packages/esm-otz-app/src/dashboard.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/declarations.d.ts b/packages/esm-otz-app/src/declarations.d.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/header/otz-header.component.tsx b/packages/esm-otz-app/src/header/otz-header.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/header/otz-header.scss b/packages/esm-otz-app/src/header/otz-header.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/header/otz-illustration.component.tsx b/packages/esm-otz-app/src/header/otz-illustration.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/index.ts b/packages/esm-otz-app/src/index.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/left-panel-link.component.tsx b/packages/esm-otz-app/src/left-panel-link.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/otz.component.tsx b/packages/esm-otz-app/src/otz.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/otz.scss b/packages/esm-otz-app/src/otz.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/root.component.tsx b/packages/esm-otz-app/src/root.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/root.scss b/packages/esm-otz-app/src/root.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/routes.json b/packages/esm-otz-app/src/routes.json
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/views/dashboard/common.scss b/packages/esm-otz-app/src/views/dashboard/common.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/views/dashboard/otz-program-services/common.scss b/packages/esm-otz-app/src/views/dashboard/otz-program-services/common.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/views/dashboard/otz-program-services/otz-enrolment.component.tsx b/packages/esm-otz-app/src/views/dashboard/otz-program-services/otz-enrolment.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/views/dashboard/otz-program-services/otz-program-services.tsx b/packages/esm-otz-app/src/views/dashboard/otz-program-services/otz-program-services.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/views/dashboard/otz-program-services/otz-program.scss b/packages/esm-otz-app/src/views/dashboard/otz-program-services/otz-program.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/empty-state/empty-data-illustration.component.tsx b/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/empty-state/empty-data-illustration.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/empty-state/empty-state.component.tsx b/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/empty-state/empty-state.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/empty-state/empty-state.scss b/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/empty-state/empty-state.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/otz-patient-list-tables/eligible-for-vl-testing.component.tsx b/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/otz-patient-list-tables/eligible-for-vl-testing.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/otz-patient-list-tables/eligible-not-enrolled.component.tsx b/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/otz-patient-list-tables/eligible-not-enrolled.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/otz-patient-list-tables/missed-appointments.component.tsx b/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/otz-patient-list-tables/missed-appointments.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/otz-patient-list-tables/total-active.component.tsx b/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/otz-patient-list-tables/total-active.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/otz-patient-list-tables/total-enrolled.component.tsx b/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/otz-patient-list-tables/total-enrolled.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/otz-patient-list-tabs.component.tsx b/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/otz-patient-list-tabs.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/otz-patient-list-tabs.scss b/packages/esm-otz-app/src/views/dashboard/patient-list-tabs/otz-patient-list-tabs.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/views/dashboard/patient-summary/otz-patientsummary.scss b/packages/esm-otz-app/src/views/dashboard/patient-summary/otz-patientsummary.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/views/dashboard/patient-summary/patient-summary.component.tsx b/packages/esm-otz-app/src/views/dashboard/patient-summary/patient-summary.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/views/dashboard/summary-tiles/otz-summary-tile.scss b/packages/esm-otz-app/src/views/dashboard/summary-tiles/otz-summary-tile.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/src/views/dashboard/summary-tiles/otz-summary-tiles.component.tsx b/packages/esm-otz-app/src/views/dashboard/summary-tiles/otz-summary-tiles.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/translations/en.json b/packages/esm-otz-app/translations/en.json
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/tsconfig.json b/packages/esm-otz-app/tsconfig.json
old mode 100644
new mode 100755
diff --git a/packages/esm-otz-app/webpack.config.js b/packages/esm-otz-app/webpack.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/jest.config.js b/packages/esm-patient-clinical-view-app/jest.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/package.json b/packages/esm-patient-clinical-view-app/package.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/case-management/header/case-management-header.scss b/packages/esm-patient-clinical-view-app/src/case-management/header/case-management-header.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/case-management/header/case-management-header.tsx b/packages/esm-patient-clinical-view-app/src/case-management/header/case-management-header.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/case-management/header/case-management-illustration.tsx b/packages/esm-patient-clinical-view-app/src/case-management/header/case-management-illustration.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/case-management/metrics/case-management-header.component.tsx b/packages/esm-patient-clinical-view-app/src/case-management/metrics/case-management-header.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/case-management/metrics/case-management-header.scss b/packages/esm-patient-clinical-view-app/src/case-management/metrics/case-management-header.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/case-management/table/case-management-list-active-component.tsx b/packages/esm-patient-clinical-view-app/src/case-management/table/case-management-list-active-component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/case-management/table/case-management-list-inactive-component.tsx b/packages/esm-patient-clinical-view-app/src/case-management/table/case-management-list-inactive-component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/case-management/table/case-management-list.scss b/packages/esm-patient-clinical-view-app/src/case-management/table/case-management-list.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/case-management/tabs/case-management-tabs.component.tsx b/packages/esm-patient-clinical-view-app/src/case-management/tabs/case-management-tabs.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/case-management/tabs/case-management-tabs.scss b/packages/esm-patient-clinical-view-app/src/case-management/tabs/case-management-tabs.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/case-management/workspace/case-management-concept-map.ts b/packages/esm-patient-clinical-view-app/src/case-management/workspace/case-management-concept-map.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/case-management/workspace/case-management.resource.ts b/packages/esm-patient-clinical-view-app/src/case-management/workspace/case-management.resource.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/case-management/workspace/case-management.scss b/packages/esm-patient-clinical-view-app/src/case-management/workspace/case-management.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/case-management/workspace/case-management.workspace.tsx b/packages/esm-patient-clinical-view-app/src/case-management/workspace/case-management.workspace.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/case-management/workspace/patient-info.component.tsx b/packages/esm-patient-clinical-view-app/src/case-management/workspace/patient-info.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/case-management/workspace/patient-info.scss b/packages/esm-patient-clinical-view-app/src/case-management/workspace/patient-info.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/case-management/wrap/wrap.component.tsx b/packages/esm-patient-clinical-view-app/src/case-management/wrap/wrap.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/clinical-encounter/clinical-enc.component.tsx b/packages/esm-patient-clinical-view-app/src/clinical-encounter/clinical-enc.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/clinical-encounter/clinical-encounter-dashboard-meta.tsx b/packages/esm-patient-clinical-view-app/src/clinical-encounter/clinical-encounter-dashboard-meta.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/clinical-encounter/dashboard/clinical-encounter-dashboard.component.tsx b/packages/esm-patient-clinical-view-app/src/clinical-encounter/dashboard/clinical-encounter-dashboard.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/clinical-encounter/dashboard/in-patient.scss b/packages/esm-patient-clinical-view-app/src/clinical-encounter/dashboard/in-patient.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/clinical-encounter/summary/in-patient-medical-summary/in-patient-medical-summary.component.tsx b/packages/esm-patient-clinical-view-app/src/clinical-encounter/summary/in-patient-medical-summary/in-patient-medical-summary.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/clinical-encounter/summary/maternal-summary/maternal-summary.component.tsx b/packages/esm-patient-clinical-view-app/src/clinical-encounter/summary/maternal-summary/maternal-summary.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/clinical-encounter/summary/neonatal summary/neonatal-summary.component.tsx b/packages/esm-patient-clinical-view-app/src/clinical-encounter/summary/neonatal summary/neonatal-summary.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/clinical-encounter/summary/out-patient-summary/out-patient-summary.scss b/packages/esm-patient-clinical-view-app/src/clinical-encounter/summary/out-patient-summary/out-patient-summary.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/clinical-encounter/summary/out-patient-summary/patient-medical-history.component.tsx b/packages/esm-patient-clinical-view-app/src/clinical-encounter/summary/out-patient-summary/patient-medical-history.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/clinical-encounter/summary/out-patient-summary/patient-social-history.component.tsx b/packages/esm-patient-clinical-view-app/src/clinical-encounter/summary/out-patient-summary/patient-social-history.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/clinical-encounter/summary/summary-card.component.tsx b/packages/esm-patient-clinical-view-app/src/clinical-encounter/summary/summary-card.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/clinical-encounter/summary/summary-card.scss b/packages/esm-patient-clinical-view-app/src/clinical-encounter/summary/summary-card.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/clinical-encounter/summary/surgical summary/surgical-summary.component.tsx b/packages/esm-patient-clinical-view-app/src/clinical-encounter/summary/surgical summary/surgical-summary.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/clinical-view-group/clinical-view-section.component.tsx b/packages/esm-patient-clinical-view-app/src/clinical-view-group/clinical-view-section.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/clinical-view-group/clinical-view-section.scss b/packages/esm-patient-clinical-view-app/src/clinical-view-group/clinical-view-section.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/clinical-view-group/createDashboardGroup.tsx b/packages/esm-patient-clinical-view-app/src/clinical-view-group/createDashboardGroup.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/clinical-view-group/dashboard-group.component.tsx b/packages/esm-patient-clinical-view-app/src/clinical-view-group/dashboard-group.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/clinical-view-group/dashboard-group.scss b/packages/esm-patient-clinical-view-app/src/clinical-view-group/dashboard-group.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/config-schema.ts b/packages/esm-patient-clinical-view-app/src/config-schema.ts
old mode 100644
new mode 100755
index 2085e061..d05df708
--- a/packages/esm-patient-clinical-view-app/src/config-schema.ts
+++ b/packages/esm-patient-clinical-view-app/src/config-schema.ts
@@ -17,11 +17,11 @@ export const configSchema = {
       postNatal: '72aa78e0-ee4b-47c3-9073-26f3b9ecc4a7',
       labourAndDelivery: '496c7cc3-0eea-4e84-a04c-2292949e2f7f',
       defaulterTracingFormUuid: 'a1a62d1e-2def-11e9-b210-d663bd873d93',
-      htsScreening: '04295648-7606-11e8-adc0-fa7ae01bbebc',
-      htsInitialTest: '402dc5d7-46da-42d4-b2be-f43ea4ad87b0',
-      htsRetest: 'b08471f6-0892-4bf7-ab2b-bf79797b8ea4',
-      htsLinkage: '050a7f12-5c52-4cad-8834-863695af335d',
-      htsReferral: '9284828e-ce55-11e9-a32f-2a2ae2dbcce4',
+      htsScreening: '7a16a346-0991-48ac-b339-aacd463a7845',
+      htsInitialTest: 'edb264d4-91fc-4d16-bb34-a413eef2b865',
+      htsRetest: 'ef3d58b9-7186-40f2-b601-3d568259d392',
+      htsLinkage: '6c82c396-45dc-476b-abc4-84c2b71992c5',
+      htsReferral: '3b688533-0de1-4c3e-b75a-c5b865080d80',
       clinicalEncounterFormUuid: 'e958f902-64df-4819-afd4-7fb061f59308',
     },
   },
diff --git a/packages/esm-patient-clinical-view-app/src/contact-list/birthdate-calculator.component.tsx b/packages/esm-patient-clinical-view-app/src/contact-list/birthdate-calculator.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/contact-list/contact-actions.component.tsx b/packages/esm-patient-clinical-view-app/src/contact-list/contact-actions.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/contact-list/contact-list-concept-map.ts b/packages/esm-patient-clinical-view-app/src/contact-list/contact-list-concept-map.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/contact-list/contact-list-form.scss b/packages/esm-patient-clinical-view-app/src/contact-list/contact-list-form.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/contact-list/contact-list.component.tsx b/packages/esm-patient-clinical-view-app/src/contact-list/contact-list.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/contact-list/contact-list.resource.tsx b/packages/esm-patient-clinical-view-app/src/contact-list/contact-list.resource.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/contact-list/contact-list.scss b/packages/esm-patient-clinical-view-app/src/contact-list/contact-list.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/contact-list/contact-list.workspace.tsx b/packages/esm-patient-clinical-view-app/src/contact-list/contact-list.workspace.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/contact-list/hiv-status.component.tsx b/packages/esm-patient-clinical-view-app/src/contact-list/hiv-status.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/dashboard.meta.tsx b/packages/esm-patient-clinical-view-app/src/dashboard.meta.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/declarations.d.ts b/packages/esm-patient-clinical-view-app/src/declarations.d.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/family-partner-history/concept-obs.component.tsx b/packages/esm-patient-clinical-view-app/src/family-partner-history/concept-obs.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/family-partner-history/family-history.component.tsx b/packages/esm-patient-clinical-view-app/src/family-partner-history/family-history.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/family-partner-history/family-history.scss b/packages/esm-patient-clinical-view-app/src/family-partner-history/family-history.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/family-partner-history/family-partner-dashboard.meta.tsx b/packages/esm-patient-clinical-view-app/src/family-partner-history/family-partner-dashboard.meta.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/family-partner-history/relationships.resource.tsx b/packages/esm-patient-clinical-view-app/src/family-partner-history/relationships.resource.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/hooks/useClinicalEncounter.ts b/packages/esm-patient-clinical-view-app/src/hooks/useClinicalEncounter.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/hooks/useContacts.ts b/packages/esm-patient-clinical-view-app/src/hooks/useContacts.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/hooks/useEncounterRows.ts b/packages/esm-patient-clinical-view-app/src/hooks/useEncounterRows.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/hooks/useNeonatalSummary.ts b/packages/esm-patient-clinical-view-app/src/hooks/useNeonatalSummary.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/hooks/usePartograph.ts b/packages/esm-patient-clinical-view-app/src/hooks/usePartograph.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/hooks/usePatientTracing.ts b/packages/esm-patient-clinical-view-app/src/hooks/usePatientTracing.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/hooks/useRelationshipTypes.ts b/packages/esm-patient-clinical-view-app/src/hooks/useRelationshipTypes.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/hooks/useRelativeHTSEncounter.ts b/packages/esm-patient-clinical-view-app/src/hooks/useRelativeHTSEncounter.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/hooks/useRelativeHivEnrollment.ts b/packages/esm-patient-clinical-view-app/src/hooks/useRelativeHivEnrollment.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/index.ts b/packages/esm-patient-clinical-view-app/src/index.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/left-panel-link.component.tsx b/packages/esm-patient-clinical-view-app/src/left-panel-link.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/antenatal-care.component.tsx b/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/antenatal-care.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/concept-maps/antenatal-care-concepts-map.ts b/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/concept-maps/antenatal-care-concepts-map.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/concept-maps/labour-and-delivery-care-concepts-map.ts b/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/concept-maps/labour-and-delivery-care-concepts-map.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/concept-maps/postnatal-care-concepts-map.ts b/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/concept-maps/postnatal-care-concepts-map.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/concepts/mch-concepts.ts b/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/concepts/mch-concepts.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/labour-delivery.component.tsx b/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/labour-delivery.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/maternal-health-component.scss b/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/maternal-health-component.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/mch-dashboard.meta.tsx b/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/mch-dashboard.meta.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/partography/labour-delivery.scss b/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/partography/labour-delivery.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/partography/partograph-chart.scss b/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/partography/partograph-chart.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/partography/partograph-chart.tsx b/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/partography/partograph-chart.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/partography/partograph.component.tsx b/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/partography/partograph.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/postnatal-care.component.tsx b/packages/esm-patient-clinical-view-app/src/maternal-and-child-health/postnatal-care.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/root.component.tsx b/packages/esm-patient-clinical-view-app/src/root.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/root.scss b/packages/esm-patient-clinical-view-app/src/root.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/routes.json b/packages/esm-patient-clinical-view-app/src/routes.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/specialized-clinics/generic-nav-links/encounter-observations/encounter-observations.component.tsx b/packages/esm-patient-clinical-view-app/src/specialized-clinics/generic-nav-links/encounter-observations/encounter-observations.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/specialized-clinics/generic-nav-links/encounter-observations/styles.scss b/packages/esm-patient-clinical-view-app/src/specialized-clinics/generic-nav-links/encounter-observations/styles.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/specialized-clinics/generic-nav-links/generic-dashboard.component.tsx b/packages/esm-patient-clinical-view-app/src/specialized-clinics/generic-nav-links/generic-dashboard.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/specialized-clinics/generic-nav-links/generic-nav-links.component.tsx b/packages/esm-patient-clinical-view-app/src/specialized-clinics/generic-nav-links/generic-nav-links.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/specialized-clinics/generic-nav-links/useEncounters.tsx b/packages/esm-patient-clinical-view-app/src/specialized-clinics/generic-nav-links/useEncounters.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/defaulter-tracing/defaulter-tracing.component.tsx b/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/defaulter-tracing/defaulter-tracing.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-care-and-treatment-dashboard.meta.tsx b/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-care-and-treatment-dashboard.meta.tsx
old mode 100644
new mode 100755
index e71d0c44..b1b1b884
--- a/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-care-and-treatment-dashboard.meta.tsx
+++ b/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-care-and-treatment-dashboard.meta.tsx
@@ -18,5 +18,5 @@ export const hivCareAndTreatmentNavGroup = {
   slotName: 'hiv-care-and-treatment-slot',
   isExpanded: false,
   isChild: true,
-  showWhenExpression: "enrollment.includes('HIV')",
+  //showWhenExpression: "enrollment.includes('HIV')",
 };
diff --git a/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-testing-services/constants.ts b/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-testing-services/constants.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-testing-services/hiv-testing-component.scss b/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-testing-services/hiv-testing-component.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-testing-services/mch-clinical-view.meta.tsx b/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-testing-services/mch-clinical-view.meta.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-testing-services/views/hiv-testing/hiv-screening-constants.ts b/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-testing-services/views/hiv-testing/hiv-screening-constants.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-testing-services/views/hiv-testing/hiv-testing-constants.ts b/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-testing-services/views/hiv-testing/hiv-testing-constants.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-testing-services/views/hiv-testing/hiv-testing-services.component.tsx b/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-testing-services/views/hiv-testing/hiv-testing-services.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-testing-services/views/hiv-testing/tabs/hiv-screening.component.tsx b/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-testing-services/views/hiv-testing/tabs/hiv-screening.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-testing-services/views/hiv-testing/tabs/hiv-testing.component.tsx b/packages/esm-patient-clinical-view-app/src/specialized-clinics/hiv-care-and-treatment-services/hiv-testing-services/views/hiv-testing/tabs/hiv-testing.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/specialized-clinics/special-clinic-dashboard.meta.tsx b/packages/esm-patient-clinical-view-app/src/specialized-clinics/special-clinic-dashboard.meta.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/types/index.ts b/packages/esm-patient-clinical-view-app/src/types/index.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/ui/data-table/o-table.component.tsx b/packages/esm-patient-clinical-view-app/src/ui/data-table/o-table.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/ui/data-table/o-table.scss b/packages/esm-patient-clinical-view-app/src/ui/data-table/o-table.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/ui/encounter-list/encounter-list-utils.ts b/packages/esm-patient-clinical-view-app/src/ui/encounter-list/encounter-list-utils.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/ui/encounter-list/encounter-list.component.tsx b/packages/esm-patient-clinical-view-app/src/ui/encounter-list/encounter-list.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/ui/encounter-list/encounter-list.scss b/packages/esm-patient-clinical-view-app/src/ui/encounter-list/encounter-list.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/ui/encounter-list/encounter.resource.tsx b/packages/esm-patient-clinical-view-app/src/ui/encounter-list/encounter.resource.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/ui/encounter-observation/encounter-observation-component.scss b/packages/esm-patient-clinical-view-app/src/ui/encounter-observation/encounter-observation-component.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/ui/encounter-observation/encounter-observation.component.tsx b/packages/esm-patient-clinical-view-app/src/ui/encounter-observation/encounter-observation.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/utils/constants.ts b/packages/esm-patient-clinical-view-app/src/utils/constants.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/src/utils/expression-helper.ts b/packages/esm-patient-clinical-view-app/src/utils/expression-helper.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/translations/en.json b/packages/esm-patient-clinical-view-app/translations/en.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/translations/es.json b/packages/esm-patient-clinical-view-app/translations/es.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/translations/fr.json b/packages/esm-patient-clinical-view-app/translations/fr.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/translations/km.json b/packages/esm-patient-clinical-view-app/translations/km.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/tsconfig.json b/packages/esm-patient-clinical-view-app/tsconfig.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-clinical-view-app/webpack.config.js b/packages/esm-patient-clinical-view-app/webpack.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/jest.config.js b/packages/esm-patient-flags-app/jest.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/package.json b/packages/esm-patient-flags-app/package.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/src/amrs-link/amrs-chart-link.component.tsx b/packages/esm-patient-flags-app/src/amrs-link/amrs-chart-link.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/src/amrs-link/amrs-link.component.tsx b/packages/esm-patient-flags-app/src/amrs-link/amrs-link.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/src/config-schema.ts b/packages/esm-patient-flags-app/src/config-schema.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/src/declarations.d.ts b/packages/esm-patient-flags-app/src/declarations.d.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/src/hooks/usePatientFlags.tsx b/packages/esm-patient-flags-app/src/hooks/usePatientFlags.tsx
old mode 100644
new mode 100755
index 29bfa830..d8bd879a
--- a/packages/esm-patient-flags-app/src/hooks/usePatientFlags.tsx
+++ b/packages/esm-patient-flags-app/src/hooks/usePatientFlags.tsx
@@ -19,6 +19,6 @@ export const usePatientFlags = (patientUuid: string): PatientFlagsReturnType =>
     patientFlagsUrl,
     openmrsFetch,
   );
-  const patientFlags = typeof data?.data === 'string' ? [] : data?.data?.results ?? [];
+  const patientFlags = typeof data?.data === 'string' ? [] : (data?.data?.results ?? []);
   return { patientFlags, isLoading, error };
 };
diff --git a/packages/esm-patient-flags-app/src/hooks/usePatientId.tsx b/packages/esm-patient-flags-app/src/hooks/usePatientId.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/src/index.ts b/packages/esm-patient-flags-app/src/index.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/src/navbar/nav-utils.tsx b/packages/esm-patient-flags-app/src/navbar/nav-utils.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/src/navbar/navbar-action-button.component.tsx b/packages/esm-patient-flags-app/src/navbar/navbar-action-button.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/src/navbar/navbar-action-button.scss b/packages/esm-patient-flags-app/src/navbar/navbar-action-button.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/src/navbar/navbar-link.component.tsx b/packages/esm-patient-flags-app/src/navbar/navbar-link.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/src/navbar/navbar-link.scss b/packages/esm-patient-flags-app/src/navbar/navbar-link.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/src/navbar/navbar-overlay.component.tsx b/packages/esm-patient-flags-app/src/navbar/navbar-overlay.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/src/patient-flags/patient-flags.component.tsx b/packages/esm-patient-flags-app/src/patient-flags/patient-flags.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/src/patient-flags/patient-flags.scss b/packages/esm-patient-flags-app/src/patient-flags/patient-flags.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/src/patient-flags/patient-flags.test.tsx b/packages/esm-patient-flags-app/src/patient-flags/patient-flags.test.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/src/routes.json b/packages/esm-patient-flags-app/src/routes.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/src/types/index.ts b/packages/esm-patient-flags-app/src/types/index.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/translations/en.json b/packages/esm-patient-flags-app/translations/en.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/translations/es.json b/packages/esm-patient-flags-app/translations/es.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/translations/fr.json b/packages/esm-patient-flags-app/translations/fr.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/translations/km.json b/packages/esm-patient-flags-app/translations/km.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/tsconfig.json b/packages/esm-patient-flags-app/tsconfig.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-flags-app/webpack.config.js b/packages/esm-patient-flags-app/webpack.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/README.md b/packages/esm-patient-registration-app/README.md
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/docs/images/patient-registration-hierarchy.png b/packages/esm-patient-registration-app/docs/images/patient-registration-hierarchy.png
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/jest.config.js b/packages/esm-patient-registration-app/jest.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/package.json b/packages/esm-patient-registration-app/package.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/add-patient-link.scss b/packages/esm-patient-registration-app/src/add-patient-link.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/add-patient-link.test.tsx b/packages/esm-patient-registration-app/src/add-patient-link.test.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/add-patient-link.tsx b/packages/esm-patient-registration-app/src/add-patient-link.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/config-schema.ts b/packages/esm-patient-registration-app/src/config-schema.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/constants.ts b/packages/esm-patient-registration-app/src/constants.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/declarations.d.ts b/packages/esm-patient-registration-app/src/declarations.d.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/index.ts b/packages/esm-patient-registration-app/src/index.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/nav-link.test.tsx b/packages/esm-patient-registration-app/src/nav-link.test.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/nav-link.tsx b/packages/esm-patient-registration-app/src/nav-link.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/offline.resources.ts b/packages/esm-patient-registration-app/src/offline.resources.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/offline.ts b/packages/esm-patient-registration-app/src/offline.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-photo.extension.tsx b/packages/esm-patient-registration-app/src/patient-photo.extension.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/before-save-prompt.tsx b/packages/esm-patient-registration-app/src/patient-registration/before-save-prompt.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/date-util.ts b/packages/esm-patient-registration-app/src/patient-registration/date-util.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/__mocks__/field.resource.ts b/packages/esm-patient-registration-app/src/patient-registration/field/__mocks__/field.resource.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/address/address-field.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/address/address-field.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/address/address-hierarchy-levels.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/address/address-hierarchy-levels.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/address/address-hierarchy.resource.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/address/address-hierarchy.resource.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/address/address-search.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/address/address-search.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/address/address-search.scss b/packages/esm-patient-registration-app/src/patient-registration/field/address/address-search.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/address/custom-address-field.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/address/custom-address-field.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/custom-field.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/custom-field.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/dob/dob.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/dob/dob.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/field.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/field.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/field.resource.ts b/packages/esm-patient-registration-app/src/patient-registration/field/field.resource.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/field.scss b/packages/esm-patient-registration-app/src/patient-registration/field/field.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/gender/gender-field.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/gender/gender-field.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/gender/gender-field.test.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/gender/gender-field.test.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/id/id-field.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/id/id-field.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/id/identifier-selection-overlay.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/id/identifier-selection-overlay.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/id/identifier-selection.scss b/packages/esm-patient-registration-app/src/patient-registration/field/id/identifier-selection.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/name/name-field.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/name/name-field.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/obs/obs-field.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/obs/obs-field.component.tsx
old mode 100644
new mode 100755
index 0ba125d5..7b54f9e1
--- a/packages/esm-patient-registration-app/src/patient-registration/field/obs/obs-field.component.tsx
+++ b/packages/esm-patient-registration-app/src/patient-registration/field/obs/obs-field.component.tsx
@@ -158,7 +158,7 @@ function CodedObsField({ concept, answerConceptSetUuid, label, required, customC
   const fieldName = `obs.${concept.uuid}`;
 
   const { data: conceptAnswers, isLoading: isLoadingConceptAnswers } = useConceptAnswers(
-    customConceptAnswers.length ? '' : answerConceptSetUuid ?? concept.uuid,
+    customConceptAnswers.length ? '' : (answerConceptSetUuid ?? concept.uuid),
   );
 
   const answers = useMemo(
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/obs/obs-field.test.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/obs/obs-field.test.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/person-attributes/coded-person-attribute-field.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/person-attributes/coded-person-attribute-field.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/person-attributes/custom-person-attribute-field.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/person-attributes/custom-person-attribute-field.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/person-attributes/person-attribute-field.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/person-attributes/person-attribute-field.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/person-attributes/person-attributes.resource.ts b/packages/esm-patient-registration-app/src/patient-registration/field/person-attributes/person-attributes.resource.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/person-attributes/text-person-attribute-field.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/person-attributes/text-person-attribute-field.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/field/phone/phone-field.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/field/phone/phone-field.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/form-manager.ts b/packages/esm-patient-registration-app/src/patient-registration/form-manager.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/input/basic-input/input/input.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/input/basic-input/input/input.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/input/basic-input/input/input.test.tsx b/packages/esm-patient-registration-app/src/patient-registration/input/basic-input/input/input.test.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/input/basic-input/select/select-input.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/input/basic-input/select/select-input.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/input/combo-input/combo-input.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/input/combo-input/combo-input.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/input/combo-input/selection-tick.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/input/combo-input/selection-tick.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/input/custom-input/autosuggest/autosuggest.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/input/custom-input/autosuggest/autosuggest.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/input/custom-input/autosuggest/autosuggest.scss b/packages/esm-patient-registration-app/src/patient-registration/input/custom-input/autosuggest/autosuggest.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/input/custom-input/identifier/identifier-input.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/input/custom-input/identifier/identifier-input.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/input/custom-input/identifier/utils.testt.ts b/packages/esm-patient-registration-app/src/patient-registration/input/custom-input/identifier/utils.testt.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/input/custom-input/identifier/utils.ts b/packages/esm-patient-registration-app/src/patient-registration/input/custom-input/identifier/utils.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/input/dummy-data/dummy-data-input.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/input/dummy-data/dummy-data-input.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/input/dummy-data/dummy-data-input.test.tsx b/packages/esm-patient-registration-app/src/patient-registration/input/dummy-data/dummy-data-input.test.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/input/input.scss b/packages/esm-patient-registration-app/src/patient-registration/input/input.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/patient-registration-context.ts b/packages/esm-patient-registration-app/src/patient-registration/patient-registration-context.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/patient-registration-hooks.ts b/packages/esm-patient-registration-app/src/patient-registration/patient-registration-hooks.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/patient-registration-utils.ts b/packages/esm-patient-registration-app/src/patient-registration/patient-registration-utils.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/patient-registration.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/patient-registration.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/patient-registration.resource.testt.tsx b/packages/esm-patient-registration-app/src/patient-registration/patient-registration.resource.testt.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/patient-registration.resource.ts b/packages/esm-patient-registration-app/src/patient-registration/patient-registration.resource.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/patient-registration.scss b/packages/esm-patient-registration-app/src/patient-registration/patient-registration.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/patient-registration.types.ts b/packages/esm-patient-registration-app/src/patient-registration/patient-registration.types.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/section/death-info/death-info-section.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/section/death-info/death-info-section.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/section/demographics/demographics-section.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/section/demographics/demographics-section.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/section/generic-section.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/section/generic-section.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/section/patient-relationships/relationships-section.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/section/patient-relationships/relationships-section.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/section/patient-relationships/relationships.resource.tsx b/packages/esm-patient-registration-app/src/patient-registration/section/patient-relationships/relationships.resource.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/section/patient-relationships/relationships.scss b/packages/esm-patient-registration-app/src/patient-registration/section/patient-relationships/relationships.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/section/section-wrapper.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/section/section-wrapper.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/section/section.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/section/section.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/section/section.scss b/packages/esm-patient-registration-app/src/patient-registration/section/section.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/ui-components/overlay/overlay.component.tsx b/packages/esm-patient-registration-app/src/patient-registration/ui-components/overlay/overlay.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/ui-components/overlay/overlay.scss b/packages/esm-patient-registration-app/src/patient-registration/ui-components/overlay/overlay.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/validation/patient-registration-validation.test.tsx b/packages/esm-patient-registration-app/src/patient-registration/validation/patient-registration-validation.test.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-registration/validation/patient-registration-validation.tsx b/packages/esm-patient-registration-app/src/patient-registration/validation/patient-registration-validation.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-verification-HIE/assets/counties.json b/packages/esm-patient-registration-app/src/patient-verification-HIE/assets/counties.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-verification-HIE/assets/verification-assets.ts b/packages/esm-patient-registration-app/src/patient-verification-HIE/assets/verification-assets.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-verification-HIE/patient-verification-hook.tsx b/packages/esm-patient-registration-app/src/patient-verification-HIE/patient-verification-hook.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-verification-HIE/patient-verification-utils.ts b/packages/esm-patient-registration-app/src/patient-verification-HIE/patient-verification-utils.ts
old mode 100644
new mode 100755
index c57e72fb..093c3445
--- a/packages/esm-patient-registration-app/src/patient-verification-HIE/patient-verification-utils.ts
+++ b/packages/esm-patient-registration-app/src/patient-verification-HIE/patient-verification-utils.ts
@@ -115,9 +115,9 @@ export function handleClientRegistryResponse(
             'a8a0a00e-1350-11df-a1f1-0026b9348838':
               clientResponse.client.occupation === undefined || clientResponse.client.occupation === null
                 ? 'a899e0ac-1350-11df-a1f1-0026b9348838'
-                : props.values.concepts.find(
+                : (props.values.concepts.find(
                     (concept) => concept.display?.toLowerCase() === clientResponse.client.occupation?.toLowerCase(),
-                  )?.uuid ?? 'a8aaf3e2-1350-11df-a1f1-0026b9348838',
+                  )?.uuid ?? 'a8aaf3e2-1350-11df-a1f1-0026b9348838'),
           },
         });
         dispose();
diff --git a/packages/esm-patient-registration-app/src/patient-verification-HIE/patient-verification.component.tsx b/packages/esm-patient-registration-app/src/patient-verification-HIE/patient-verification.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-verification-HIE/patient-verification.scss b/packages/esm-patient-registration-app/src/patient-verification-HIE/patient-verification.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-verification-HIE/verification-modal/confirm-prompt.component.tsx b/packages/esm-patient-registration-app/src/patient-verification-HIE/verification-modal/confirm-prompt.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-verification-HIE/verification-modal/empty-prompt.component.tsx b/packages/esm-patient-registration-app/src/patient-verification-HIE/verification-modal/empty-prompt.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-verification-HIE/verification-types.ts b/packages/esm-patient-registration-app/src/patient-verification-HIE/verification-types.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-verification/assets/counties.json b/packages/esm-patient-registration-app/src/patient-verification/assets/counties.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-verification/assets/verification-assets.ts b/packages/esm-patient-registration-app/src/patient-verification/assets/verification-assets.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-verification/patient-verification-hook.tsx b/packages/esm-patient-registration-app/src/patient-verification/patient-verification-hook.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-verification/patient-verification-utils.ts b/packages/esm-patient-registration-app/src/patient-verification/patient-verification-utils.ts
old mode 100644
new mode 100755
index c57e72fb..093c3445
--- a/packages/esm-patient-registration-app/src/patient-verification/patient-verification-utils.ts
+++ b/packages/esm-patient-registration-app/src/patient-verification/patient-verification-utils.ts
@@ -115,9 +115,9 @@ export function handleClientRegistryResponse(
             'a8a0a00e-1350-11df-a1f1-0026b9348838':
               clientResponse.client.occupation === undefined || clientResponse.client.occupation === null
                 ? 'a899e0ac-1350-11df-a1f1-0026b9348838'
-                : props.values.concepts.find(
+                : (props.values.concepts.find(
                     (concept) => concept.display?.toLowerCase() === clientResponse.client.occupation?.toLowerCase(),
-                  )?.uuid ?? 'a8aaf3e2-1350-11df-a1f1-0026b9348838',
+                  )?.uuid ?? 'a8aaf3e2-1350-11df-a1f1-0026b9348838'),
           },
         });
         dispose();
diff --git a/packages/esm-patient-registration-app/src/patient-verification/patient-verification.component.tsx b/packages/esm-patient-registration-app/src/patient-verification/patient-verification.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-verification/patient-verification.scss b/packages/esm-patient-registration-app/src/patient-verification/patient-verification.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-verification/verification-modal/confirm-prompt.component.tsx b/packages/esm-patient-registration-app/src/patient-verification/verification-modal/confirm-prompt.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-verification/verification-modal/empty-prompt.component.tsx b/packages/esm-patient-registration-app/src/patient-verification/verification-modal/empty-prompt.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/patient-verification/verification-types.ts b/packages/esm-patient-registration-app/src/patient-verification/verification-types.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/resource.ts b/packages/esm-patient-registration-app/src/resource.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/root.component.tsx b/packages/esm-patient-registration-app/src/root.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/root.scss b/packages/esm-patient-registration-app/src/root.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/routes.json b/packages/esm-patient-registration-app/src/routes.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/widgets/cancel-patient-edit.component.tsx b/packages/esm-patient-registration-app/src/widgets/cancel-patient-edit.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/widgets/delete-identifier-confirmation-modal.testt.tsx b/packages/esm-patient-registration-app/src/widgets/delete-identifier-confirmation-modal.testt.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/widgets/delete-identifier-confirmation-modal.tsx b/packages/esm-patient-registration-app/src/widgets/delete-identifier-confirmation-modal.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/widgets/delete-identifier-modal.scss b/packages/esm-patient-registration-app/src/widgets/delete-identifier-modal.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/widgets/edit-patient-details-button.component.tsx b/packages/esm-patient-registration-app/src/widgets/edit-patient-details-button.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/src/widgets/edit-patient-details-button.scss b/packages/esm-patient-registration-app/src/widgets/edit-patient-details-button.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/translations/am.json b/packages/esm-patient-registration-app/translations/am.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/translations/ar.json b/packages/esm-patient-registration-app/translations/ar.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/translations/en.json b/packages/esm-patient-registration-app/translations/en.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/translations/es.json b/packages/esm-patient-registration-app/translations/es.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/translations/fr.json b/packages/esm-patient-registration-app/translations/fr.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/translations/he.json b/packages/esm-patient-registration-app/translations/he.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/translations/km.json b/packages/esm-patient-registration-app/translations/km.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/translations/zh.json b/packages/esm-patient-registration-app/translations/zh.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/translations/zh_CN.json b/packages/esm-patient-registration-app/translations/zh_CN.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/tsconfig.json b/packages/esm-patient-registration-app/tsconfig.json
old mode 100644
new mode 100755
diff --git a/packages/esm-patient-registration-app/webpack.config.js b/packages/esm-patient-registration-app/webpack.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-preappointment-app/jest.config.js b/packages/esm-preappointment-app/jest.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-preappointment-app/package.json b/packages/esm-preappointment-app/package.json
old mode 100644
new mode 100755
diff --git a/packages/esm-preappointment-app/src/config-schema.ts b/packages/esm-preappointment-app/src/config-schema.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-preappointment-app/src/custom-pagination.component.tsx b/packages/esm-preappointment-app/src/custom-pagination.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-preappointment-app/src/custom-pagination.scss b/packages/esm-preappointment-app/src/custom-pagination.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-preappointment-app/src/declarations.d.ts b/packages/esm-preappointment-app/src/declarations.d.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-preappointment-app/src/index.ts b/packages/esm-preappointment-app/src/index.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-preappointment-app/src/pre-appointments/pre-appointment.component.tsx b/packages/esm-preappointment-app/src/pre-appointments/pre-appointment.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-preappointment-app/src/pre-appointments/pre-appointment.resource.tsx b/packages/esm-preappointment-app/src/pre-appointments/pre-appointment.resource.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-preappointment-app/src/pre-appointments/pre-appointment.scss b/packages/esm-preappointment-app/src/pre-appointments/pre-appointment.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-preappointment-app/src/root.component.tsx b/packages/esm-preappointment-app/src/root.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-preappointment-app/src/root.scss b/packages/esm-preappointment-app/src/root.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-preappointment-app/src/routes.json b/packages/esm-preappointment-app/src/routes.json
old mode 100644
new mode 100755
diff --git a/packages/esm-preappointment-app/src/types/index.ts b/packages/esm-preappointment-app/src/types/index.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-preappointment-app/src/use-pagination-info.component.ts b/packages/esm-preappointment-app/src/use-pagination-info.component.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-preappointment-app/translations/en.json b/packages/esm-preappointment-app/translations/en.json
old mode 100644
new mode 100755
diff --git a/packages/esm-preappointment-app/tsconfig.json b/packages/esm-preappointment-app/tsconfig.json
old mode 100644
new mode 100755
diff --git a/packages/esm-preappointment-app/webpack.config.js b/packages/esm-preappointment-app/webpack.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/jest.config.js b/packages/esm-providers-app/jest.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/package.json b/packages/esm-providers-app/package.json
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/config-schema.ts b/packages/esm-providers-app/src/config-schema.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/declarations.d.ts b/packages/esm-providers-app/src/declarations.d.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/index.ts b/packages/esm-providers-app/src/index.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/providers-component/providers.component.tsx b/packages/esm-providers-app/src/providers-component/providers.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/providers-header/providers-header.component.tsx b/packages/esm-providers-app/src/providers-header/providers-header.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/providers-header/providers-header.scss b/packages/esm-providers-app/src/providers-header/providers-header.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/providers-header/providers-illustration.component.tsx b/packages/esm-providers-app/src/providers-header/providers-illustration.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/providers-left-panel/providers-left-panel-link.component.tsx b/packages/esm-providers-app/src/providers-left-panel/providers-left-panel-link.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/providers-metrics/providers-card.component.tsx b/packages/esm-providers-app/src/providers-metrics/providers-card.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/providers-metrics/providers-card.scss b/packages/esm-providers-app/src/providers-metrics/providers-card.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/providers-metrics/providers-header.scss b/packages/esm-providers-app/src/providers-metrics/providers-header.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/providers-metrics/providers-metrics-header.component.tsx b/packages/esm-providers-app/src/providers-metrics/providers-metrics-header.component.tsx
old mode 100644
new mode 100755
index b4e770b1..d9903926
--- a/packages/esm-providers-app/src/providers-metrics/providers-metrics-header.component.tsx
+++ b/packages/esm-providers-app/src/providers-metrics/providers-metrics-header.component.tsx
@@ -100,20 +100,26 @@ const MetricsHeader = () => {
           />
         </div>
         <div style={{ marginBottom: '20px' }}>
+          <TextInput
+            data-modal-primary-focus
+            id="text-input-1"
+            labelText="License Number*"
+            placeholder="Enter License Number"
+            required
+            style={{
+              marginBottom: '1rem',
+            }}
+          />
           <DatePicker datePickerType="single">
-            <DatePickerInput placeholder="mm/dd/yyyy" labelText="Date of Death" id="date-picker-single" size="md" />
+            <DatePickerInput
+              placeholder="mm/dd/yyyy"
+              labelText="License Expiry Date"
+              id="date-picker-single"
+              size="md"
+            />
           </DatePicker>
         </div>
-        <TextInput
-          data-modal-primary-focus
-          id="text-input-1"
-          labelText="Place Death*"
-          placeholder="Enter place of Death"
-          required
-          style={{
-            marginBottom: '1rem',
-          }}
-        />
+
         <div style={{ marginBottom: '20px' }}>
           <ComboBox
             allowCustomValue
diff --git a/packages/esm-providers-app/src/providers-metrics/providers-metrics.component.tsx b/packages/esm-providers-app/src/providers-metrics/providers-metrics.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/providers-metrics/providers-metrics.scss b/packages/esm-providers-app/src/providers-metrics/providers-metrics.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/providers-tables/providers-active.component.tsx b/packages/esm-providers-app/src/providers-tables/providers-active.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/providers-tables/providers-admission.component.tsx b/packages/esm-providers-app/src/providers-tables/providers-admission.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/providers-tables/providers-admitted.component.tsx b/packages/esm-providers-app/src/providers-tables/providers-admitted.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/providers-tables/providers-discharged.component.tsx b/packages/esm-providers-app/src/providers-tables/providers-discharged.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/providers-tabs/providers-tabs-component.tsx b/packages/esm-providers-app/src/providers-tabs/providers-tabs-component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/providers-tabs/providers-tabs.scss b/packages/esm-providers-app/src/providers-tabs/providers-tabs.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/root.component.tsx b/packages/esm-providers-app/src/root.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/root.scss b/packages/esm-providers-app/src/root.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/routes.json b/packages/esm-providers-app/src/routes.json
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/src/setup-tests.ts b/packages/esm-providers-app/src/setup-tests.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/translations/en.json b/packages/esm-providers-app/translations/en.json
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/tsconfig.json b/packages/esm-providers-app/tsconfig.json
old mode 100644
new mode 100755
diff --git a/packages/esm-providers-app/webpack.config.js b/packages/esm-providers-app/webpack.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/api/api.ts b/packages/esm-report-app/src/api/api.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/headers/report-header-component.tsx b/packages/esm-report-app/src/headers/report-header-component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/headers/report-header.scss b/packages/esm-report-app/src/headers/report-header.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/headers/report-illustration-component.tsx b/packages/esm-report-app/src/headers/report-illustration-component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/hooks/useSelectedLocations.tsx b/packages/esm-report-app/src/hooks/useSelectedLocations.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/CARE_AND_TREATMENT/Care_and_Treatment.scss b/packages/esm-report-app/src/registers/CARE_AND_TREATMENT/Care_and_Treatment.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/CARE_AND_TREATMENT/Care_and_Treatment.tsx b/packages/esm-report-app/src/registers/CARE_AND_TREATMENT/Care_and_Treatment.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/Jua_Mtoto_Wako/Jua_Mtoto_Wako.scss b/packages/esm-report-app/src/registers/Jua_Mtoto_Wako/Jua_Mtoto_Wako.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/Jua_Mtoto_Wako/Jua_Mtoto_Wako.tsx b/packages/esm-report-app/src/registers/Jua_Mtoto_Wako/Jua_Mtoto_Wako.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH-267/prep-activity-register.component.tsx b/packages/esm-report-app/src/registers/MOH-267/prep-activity-register.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH-267/prep.scss b/packages/esm-report-app/src/registers/MOH-267/prep.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH-362/MOH-362.scss b/packages/esm-report-app/src/registers/MOH-362/MOH-362.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH-362/moh-362a/MOH_362A_component.tsx b/packages/esm-report-app/src/registers/MOH-362/moh-362a/MOH_362A_component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH-362/moh-362b/MOH_362B_component.tsx b/packages/esm-report-app/src/registers/MOH-362/moh-362b/MOH_362B_component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH-405/MOH-405.scss b/packages/esm-report-app/src/registers/MOH-405/MOH-405.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH-405/MOH_405_component.tsx b/packages/esm-report-app/src/registers/MOH-405/MOH_405_component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH-406/MOH_406.scss b/packages/esm-report-app/src/registers/MOH-406/MOH_406.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH-406/MOH_406_component.tsx b/packages/esm-report-app/src/registers/MOH-406/MOH_406_component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH-407/clientFollowUp/ClientFollowUp_component.tsx b/packages/esm-report-app/src/registers/MOH-407/clientFollowUp/ClientFollowUp_component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH-407/nutrition.scss b/packages/esm-report-app/src/registers/MOH-407/nutrition.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH-407/nutrition/Nutrition_component.tsx b/packages/esm-report-app/src/registers/MOH-407/nutrition/Nutrition_component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH-408/MOH-408-component.tsx b/packages/esm-report-app/src/registers/MOH-408/MOH-408-component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH-408/MOH-408.scss b/packages/esm-report-app/src/registers/MOH-408/MOH-408.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH-731/MOH_731.scss b/packages/esm-report-app/src/registers/MOH-731/MOH_731.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH-731/MOH_731.tsx b/packages/esm-report-app/src/registers/MOH-731/MOH_731.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH-731/PartOne.tsx b/packages/esm-report-app/src/registers/MOH-731/PartOne.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH-731/PartThree.tsx b/packages/esm-report-app/src/registers/MOH-731/PartThree.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH-731/PartTwo.tsx b/packages/esm-report-app/src/registers/MOH-731/PartTwo.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH_333_MATERNITY/MOH_333.scss b/packages/esm-report-app/src/registers/MOH_333_MATERNITY/MOH_333.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH_333_MATERNITY/MOH_333_component.tsx b/packages/esm-report-app/src/registers/MOH_333_MATERNITY/MOH_333_component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH_Defaulter_Tracing/Defaulter_Tracing_Register.tsx b/packages/esm-report-app/src/registers/MOH_Defaulter_Tracing/Defaulter_Tracing_Register.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/MOH_Defaulter_Tracing/Defaulter_tracing_register.scss b/packages/esm-report-app/src/registers/MOH_Defaulter_Tracing/Defaulter_tracing_register.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/OTZ/MOH_otz.scss b/packages/esm-report-app/src/registers/OTZ/MOH_otz.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/OTZ/MOH_otz_component.tsx b/packages/esm-report-app/src/registers/OTZ/MOH_otz_component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/Project_Beyond/PBC/Project_Beyond_Clients.scss b/packages/esm-report-app/src/registers/Project_Beyond/PBC/Project_Beyond_Clients.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/Project_Beyond/PBC/Project_Beyond_Clients.tsx b/packages/esm-report-app/src/registers/Project_Beyond/PBC/Project_Beyond_Clients.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/Project_Beyond/PBD/Project_Beyond_Deliveries.scss b/packages/esm-report-app/src/registers/Project_Beyond/PBD/Project_Beyond_Deliveries.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/registers/Project_Beyond/PBD/Project_Beyond_Deliveries.tsx b/packages/esm-report-app/src/registers/Project_Beyond/PBD/Project_Beyond_Deliveries.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/reports-dashboard/breadcrumb/bread-crumb.scss b/packages/esm-report-app/src/reports-dashboard/breadcrumb/bread-crumb.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/reports-dashboard/breadcrumb/bread-crumb.tsx b/packages/esm-report-app/src/reports-dashboard/breadcrumb/bread-crumb.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/reports-dashboard/report-dashboard-component.tsx b/packages/esm-report-app/src/reports-dashboard/report-dashboard-component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/reports-dashboard/report-loader/dynamic-report-loader-component.tsx b/packages/esm-report-app/src/reports-dashboard/report-loader/dynamic-report-loader-component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/reports-dashboard/report-loader/dynamic-report-loader.scss b/packages/esm-report-app/src/reports-dashboard/report-loader/dynamic-report-loader.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/reports-dashboard/report-loader/reportMapping.json b/packages/esm-report-app/src/reports-dashboard/report-loader/reportMapping.json
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/reports-dashboard/report-summary/ReportSummary.css b/packages/esm-report-app/src/reports-dashboard/report-summary/ReportSummary.css
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/reports-dashboard/report-summary/ReportSummary.tsx b/packages/esm-report-app/src/reports-dashboard/report-summary/ReportSummary.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/reports-dashboard/report-tab/report-tabs.scss b/packages/esm-report-app/src/reports-dashboard/report-tab/report-tabs.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/reports-dashboard/report-tab/report-tabs.tsx b/packages/esm-report-app/src/reports-dashboard/report-tab/report-tabs.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/reports-dashboard/report-table/report-table-component.tsx b/packages/esm-report-app/src/reports-dashboard/report-table/report-table-component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/reports-dashboard/tab-panel/tab-panel-component.tsx b/packages/esm-report-app/src/reports-dashboard/tab-panel/tab-panel-component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-report-app/src/reports-dashboard/tab-panel/tab-panel.scss b/packages/esm-report-app/src/reports-dashboard/tab-panel/tab-panel.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/increment-version.js b/packages/esm-version-app/increment-version.js
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/jest.config.js b/packages/esm-version-app/jest.config.js
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/package.json b/packages/esm-version-app/package.json
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/src/about-link.component.tsx b/packages/esm-version-app/src/about-link.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/src/about/about.component.tsx b/packages/esm-version-app/src/about/about.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/src/about/about.scss b/packages/esm-version-app/src/about/about.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/src/config-schema.ts b/packages/esm-version-app/src/config-schema.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/src/declarations.d.ts b/packages/esm-version-app/src/declarations.d.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/src/frontend-modules/frontend-modules.component.tsx b/packages/esm-version-app/src/frontend-modules/frontend-modules.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/src/hooks/useFrontendModules.tsx b/packages/esm-version-app/src/hooks/useFrontendModules.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/src/hooks/useModules.tsx b/packages/esm-version-app/src/hooks/useModules.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/src/hooks/useSystemSetting.tsx b/packages/esm-version-app/src/hooks/useSystemSetting.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/src/index.ts b/packages/esm-version-app/src/index.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/src/release-version.js b/packages/esm-version-app/src/release-version.js
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/src/root.component.tsx b/packages/esm-version-app/src/root.component.tsx
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/src/root.scss b/packages/esm-version-app/src/root.scss
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/src/routes.json b/packages/esm-version-app/src/routes.json
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/src/types/index.ts b/packages/esm-version-app/src/types/index.ts
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/src/version.js b/packages/esm-version-app/src/version.js
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/translations/en.json b/packages/esm-version-app/translations/en.json
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/tsconfig.json b/packages/esm-version-app/tsconfig.json
old mode 100644
new mode 100755
diff --git a/packages/esm-version-app/webpack.config.js b/packages/esm-version-app/webpack.config.js
old mode 100644
new mode 100755
diff --git a/playwright.config.ts b/playwright.config.ts
old mode 100644
new mode 100755
diff --git a/prettier.config.js b/prettier.config.js
old mode 100644
new mode 100755
diff --git a/react-i18next.js b/react-i18next.js
old mode 100644
new mode 100755
diff --git a/tools/i18next-parser.config.js b/tools/i18next-parser.config.js
old mode 100644
new mode 100755
diff --git a/tools/index.ts b/tools/index.ts
old mode 100644
new mode 100755
diff --git a/tools/setup-tests.ts b/tools/setup-tests.ts
old mode 100644
new mode 100755
diff --git a/tools/test-utils.tsx b/tools/test-utils.tsx
old mode 100644
new mode 100755
diff --git a/tsconfig.json b/tsconfig.json
old mode 100644
new mode 100755
diff --git a/turbo.json b/turbo.json
old mode 100644
new mode 100755
diff --git a/yarn.lock b/yarn.lock
old mode 100644
new mode 100755
index da5ca984..d73b52ba
--- a/yarn.lock
+++ b/yarn.lock
@@ -22,7 +22,7 @@ __metadata:
     "@carbon/styles": "npm:^1.58.0"
     "@hookform/resolvers": "npm:^3.3.1"
     "@ohri/openmrs-esm-ohri-commons-lib": "npm:next"
-    "@openmrs/esm-framework": "npm:^5.6.1-pre.2075"
+    "@openmrs/esm-framework": "npm:^5.7.1-pre.2076"
     "@openmrs/esm-patient-common-lib": "npm:next"
     "@playwright/test": "npm:1.40.1"
     "@swc/core": "npm:^1.2.165"
@@ -64,7 +64,7 @@ __metadata:
     jspdf: "npm:^2.5.1"
     lint-staged: "npm:^15.2.1"
     moment: "npm:^2.30.1"
-    openmrs: "npm:^5.6.1-pre.2075"
+    openmrs: "npm:^5.7.1-pre.2076"
     pdf-lib: "npm:^1.17.1"
     prettier: "npm:^3.1.1"
     react: "npm:^18.1.0"
@@ -353,45 +353,45 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.24.7":
-  version: 7.24.7
-  resolution: "@babel/compat-data@npm:7.24.7"
-  checksum: 10/6edc09152ca51a22c33741c441f33f9475598fa59edc53369edb74b49f4ea4bef1281f5b0ed2b9b67fb66faef2da2069e21c4eef83405d8326e524b301f4e7e2
+"@babel/compat-data@npm:^7.22.6, @babel/compat-data@npm:^7.24.8":
+  version: 7.24.9
+  resolution: "@babel/compat-data@npm:7.24.9"
+  checksum: 10/fcdbf3dd978305880f06ae20a23f4f68a8eddbe64fc5d2fbc98dfe4cdf15c174cff41e3a8eb9d935f9f3a68d3a23fa432044082ee9768a2ed4b15f769b8f6853
   languageName: node
   linkType: hard
 
-"@babel/core@npm:^7.11.1, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.6, @babel/core@npm:^7.23.9":
-  version: 7.24.7
-  resolution: "@babel/core@npm:7.24.7"
+"@babel/core@npm:^7.11.1, @babel/core@npm:^7.11.6, @babel/core@npm:^7.12.3, @babel/core@npm:^7.23.9":
+  version: 7.24.9
+  resolution: "@babel/core@npm:7.24.9"
   dependencies:
     "@ampproject/remapping": "npm:^2.2.0"
     "@babel/code-frame": "npm:^7.24.7"
-    "@babel/generator": "npm:^7.24.7"
-    "@babel/helper-compilation-targets": "npm:^7.24.7"
-    "@babel/helper-module-transforms": "npm:^7.24.7"
-    "@babel/helpers": "npm:^7.24.7"
-    "@babel/parser": "npm:^7.24.7"
+    "@babel/generator": "npm:^7.24.9"
+    "@babel/helper-compilation-targets": "npm:^7.24.8"
+    "@babel/helper-module-transforms": "npm:^7.24.9"
+    "@babel/helpers": "npm:^7.24.8"
+    "@babel/parser": "npm:^7.24.8"
     "@babel/template": "npm:^7.24.7"
-    "@babel/traverse": "npm:^7.24.7"
-    "@babel/types": "npm:^7.24.7"
+    "@babel/traverse": "npm:^7.24.8"
+    "@babel/types": "npm:^7.24.9"
     convert-source-map: "npm:^2.0.0"
     debug: "npm:^4.1.0"
     gensync: "npm:^1.0.0-beta.2"
     json5: "npm:^2.2.3"
     semver: "npm:^6.3.1"
-  checksum: 10/ef8cc1afa3ccecee6d1f5660c487ccc2a3f25106830ea9040e80ef4b2092e053607ee4ddd03493e4f7ef2f9967a956ca53b830d54c5bee738eeb58cce679dd4a
+  checksum: 10/f00a372fa547f6e21f4db1b6e521e6eb01f77f5931726897aae6f4cf29a687f615b9b77147b539e851a68bf94e4850bcfba7eb11091dd8e2bc625f6d831ce257
   languageName: node
   linkType: hard
 
-"@babel/generator@npm:^7.23.0, @babel/generator@npm:^7.23.6, @babel/generator@npm:^7.24.7, @babel/generator@npm:^7.7.2":
-  version: 7.24.7
-  resolution: "@babel/generator@npm:7.24.7"
+"@babel/generator@npm:^7.24.8, @babel/generator@npm:^7.24.9, @babel/generator@npm:^7.7.2":
+  version: 7.24.10
+  resolution: "@babel/generator@npm:7.24.10"
   dependencies:
-    "@babel/types": "npm:^7.24.7"
+    "@babel/types": "npm:^7.24.9"
     "@jridgewell/gen-mapping": "npm:^0.3.5"
     "@jridgewell/trace-mapping": "npm:^0.3.25"
     jsesc: "npm:^2.5.1"
-  checksum: 10/c71d24a4b41b19c10d2f2eb819f27d4cf94220e2322f7c8fed8bfbbb115b2bebbdd6dc1f27dac78a175e90604def58d763af87e0fa81ce4ab1582858162cf768
+  checksum: 10/c2491fb7d985527a165546cbcf9e5f6a2518f2a968c7564409c012acce1019056b21e67a152af89b3f4d4a295ca2e75a1a16858152f750efbc4b5087f0cb7253
   languageName: node
   linkType: hard
 
@@ -414,27 +414,27 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.24.7":
-  version: 7.24.7
-  resolution: "@babel/helper-compilation-targets@npm:7.24.7"
+"@babel/helper-compilation-targets@npm:^7.22.6, @babel/helper-compilation-targets@npm:^7.24.7, @babel/helper-compilation-targets@npm:^7.24.8":
+  version: 7.24.8
+  resolution: "@babel/helper-compilation-targets@npm:7.24.8"
   dependencies:
-    "@babel/compat-data": "npm:^7.24.7"
-    "@babel/helper-validator-option": "npm:^7.24.7"
-    browserslist: "npm:^4.22.2"
+    "@babel/compat-data": "npm:^7.24.8"
+    "@babel/helper-validator-option": "npm:^7.24.8"
+    browserslist: "npm:^4.23.1"
     lru-cache: "npm:^5.1.1"
     semver: "npm:^6.3.1"
-  checksum: 10/8f8bc89af70a606ccb208513aa25d83e19b88f91b64a33174f7701a9479e67ddbb0a9c89033265070375cd24e690b93380b3a3ea11e4b3a711d742f0f4699ee7
+  checksum: 10/3489280d07b871af565b32f9b11946ff9a999fac0db9bec5df960760f6836c7a4b52fccb9d64229ccce835d37a43afb85659beb439ecedde04dcea7eb062a143
   languageName: node
   linkType: hard
 
 "@babel/helper-create-class-features-plugin@npm:^7.24.7":
-  version: 7.24.7
-  resolution: "@babel/helper-create-class-features-plugin@npm:7.24.7"
+  version: 7.24.8
+  resolution: "@babel/helper-create-class-features-plugin@npm:7.24.8"
   dependencies:
     "@babel/helper-annotate-as-pure": "npm:^7.24.7"
     "@babel/helper-environment-visitor": "npm:^7.24.7"
     "@babel/helper-function-name": "npm:^7.24.7"
-    "@babel/helper-member-expression-to-functions": "npm:^7.24.7"
+    "@babel/helper-member-expression-to-functions": "npm:^7.24.8"
     "@babel/helper-optimise-call-expression": "npm:^7.24.7"
     "@babel/helper-replace-supers": "npm:^7.24.7"
     "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7"
@@ -442,7 +442,7 @@ __metadata:
     semver: "npm:^6.3.1"
   peerDependencies:
     "@babel/core": ^7.0.0
-  checksum: 10/8ecb1c2acc808e1e0c21dccc7ea6899de9a140cb1856946800176b4784de6fccd575661fbff7744bb895d01aa6956ce963446b8577c4c2334293ba5579d5cdb9
+  checksum: 10/a779c5356fcc4881e807d85d973fd37e99e773fe95837b0f6582ca9a89331f84e5f26b0b6aa9a101181325b73cf3f54081d178b657a79819b8abadc53b0ea8ec
   languageName: node
   linkType: hard
 
@@ -502,13 +502,13 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/helper-member-expression-to-functions@npm:^7.24.7":
-  version: 7.24.7
-  resolution: "@babel/helper-member-expression-to-functions@npm:7.24.7"
+"@babel/helper-member-expression-to-functions@npm:^7.24.7, @babel/helper-member-expression-to-functions@npm:^7.24.8":
+  version: 7.24.8
+  resolution: "@babel/helper-member-expression-to-functions@npm:7.24.8"
   dependencies:
-    "@babel/traverse": "npm:^7.24.7"
-    "@babel/types": "npm:^7.24.7"
-  checksum: 10/d990752aaff311aba0ca61539e1776c5ba2818836403f9bafac849deb4cd24c082cbde5f23e490b7f3614c95ff67f8d75fa5e2f14cb00586a72c96c158e1127b
+    "@babel/traverse": "npm:^7.24.8"
+    "@babel/types": "npm:^7.24.8"
+  checksum: 10/ac878761cfd0a46c081cda0da75cc186f922cf16e8ecdd0c4fb6dca4330d9fe4871b41a9976224cf9669c9e7fe0421b5c27349f2e99c125fa0be871b327fa770
   languageName: node
   linkType: hard
 
@@ -522,9 +522,9 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/helper-module-transforms@npm:^7.24.7":
-  version: 7.24.7
-  resolution: "@babel/helper-module-transforms@npm:7.24.7"
+"@babel/helper-module-transforms@npm:^7.24.7, @babel/helper-module-transforms@npm:^7.24.8, @babel/helper-module-transforms@npm:^7.24.9":
+  version: 7.24.9
+  resolution: "@babel/helper-module-transforms@npm:7.24.9"
   dependencies:
     "@babel/helper-environment-visitor": "npm:^7.24.7"
     "@babel/helper-module-imports": "npm:^7.24.7"
@@ -533,7 +533,7 @@ __metadata:
     "@babel/helper-validator-identifier": "npm:^7.24.7"
   peerDependencies:
     "@babel/core": ^7.0.0
-  checksum: 10/4f2b232bf6d1be8d3a72b084a2a7ac1b0b93ea85717411a11ae1fb6375d4392019e781d8cc155789e649a2caa7eec378dd1404210603d6d4230f042c5feacffb
+  checksum: 10/eaed9cb93edb11626758f76bfb482f9c3b6583f6756813c5ef849d6d52bbe7c2cb39f61646758e860732d14c2588b60eb4e2af78d7751450649a8d3d7ca41697
   languageName: node
   linkType: hard
 
@@ -546,10 +546,10 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3":
-  version: 7.24.7
-  resolution: "@babel/helper-plugin-utils@npm:7.24.7"
-  checksum: 10/dad51622f0123fdba4e2d40a81a6b7d6ef4b1491b2f92fd9749447a36bde809106cf117358705057a2adc8fd73d5dc090222e0561b1213dae8601c8367f5aac8
+"@babel/helper-plugin-utils@npm:^7.0.0, @babel/helper-plugin-utils@npm:^7.10.4, @babel/helper-plugin-utils@npm:^7.12.13, @babel/helper-plugin-utils@npm:^7.14.5, @babel/helper-plugin-utils@npm:^7.18.6, @babel/helper-plugin-utils@npm:^7.22.5, @babel/helper-plugin-utils@npm:^7.24.7, @babel/helper-plugin-utils@npm:^7.24.8, @babel/helper-plugin-utils@npm:^7.8.0, @babel/helper-plugin-utils@npm:^7.8.3":
+  version: 7.24.8
+  resolution: "@babel/helper-plugin-utils@npm:7.24.8"
+  checksum: 10/adbc9fc1142800a35a5eb0793296924ee8057fe35c61657774208670468a9fbfbb216f2d0bc46c680c5fefa785e5ff917cc1674b10bd75cdf9a6aa3444780630
   languageName: node
   linkType: hard
 
@@ -608,10 +608,10 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/helper-string-parser@npm:^7.24.7":
-  version: 7.24.7
-  resolution: "@babel/helper-string-parser@npm:7.24.7"
-  checksum: 10/603d8d962bbe89907aa99a8f19a006759ab7b2464615f20a6a22e3e2e8375af37ddd0e5175c9e622e1c4b2d83607ffb41055a59d0ce34404502af30fde573a5c
+"@babel/helper-string-parser@npm:^7.24.8":
+  version: 7.24.8
+  resolution: "@babel/helper-string-parser@npm:7.24.8"
+  checksum: 10/6d1bf8f27dd725ce02bdc6dffca3c95fb9ab8a06adc2edbd9c1c9d68500274230d1a609025833ed81981eff560045b6b38f7b4c6fb1ab19fc90e5004e3932535
   languageName: node
   linkType: hard
 
@@ -622,10 +622,10 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/helper-validator-option@npm:^7.24.7":
-  version: 7.24.7
-  resolution: "@babel/helper-validator-option@npm:7.24.7"
-  checksum: 10/9689166bf3f777dd424c026841c8cd651e41b21242dbfd4569a53086179a3e744c8eddd56e9d10b54142270141c91581b53af0d7c00c82d552d2540e2a919f7e
+"@babel/helper-validator-option@npm:^7.24.8":
+  version: 7.24.8
+  resolution: "@babel/helper-validator-option@npm:7.24.8"
+  checksum: 10/a52442dfa74be6719c0608fee3225bd0493c4057459f3014681ea1a4643cd38b68ff477fe867c4b356da7330d085f247f0724d300582fa4ab9a02efaf34d107c
   languageName: node
   linkType: hard
 
@@ -641,13 +641,13 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/helpers@npm:^7.24.7":
-  version: 7.24.7
-  resolution: "@babel/helpers@npm:7.24.7"
+"@babel/helpers@npm:^7.24.8":
+  version: 7.24.8
+  resolution: "@babel/helpers@npm:7.24.8"
   dependencies:
     "@babel/template": "npm:^7.24.7"
-    "@babel/types": "npm:^7.24.7"
-  checksum: 10/f7496f0d7a0b13ea86136ac2053371027125734170328215f8a90eac96fafaaae4e5398c0729bdadf23261c00582a31e14bc70113427653b718220641a917f9d
+    "@babel/types": "npm:^7.24.8"
+  checksum: 10/61c08a2baa87382a87c7110e9b5574c782603e247b7e6267769ee0e8b7b54b70ff05f16466f05bb318622b7ac28e79b449edff565abf5adcb1adb1b0f42fee9c
   languageName: node
   linkType: hard
 
@@ -663,12 +663,12 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.0, @babel/parser@npm:^7.23.6, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.7":
-  version: 7.24.7
-  resolution: "@babel/parser@npm:7.24.7"
+"@babel/parser@npm:^7.1.0, @babel/parser@npm:^7.14.7, @babel/parser@npm:^7.20.7, @babel/parser@npm:^7.23.9, @babel/parser@npm:^7.24.7, @babel/parser@npm:^7.24.8":
+  version: 7.24.8
+  resolution: "@babel/parser@npm:7.24.8"
   bin:
     parser: ./bin/babel-parser.js
-  checksum: 10/ef9ebce60e13db560ccc7af9235d460f6726bb7e23ae2d675098c1fc43d5249067be60d4118889dad33b1d4f85162cf66baf554719e1669f29bb20e71322568e
+  checksum: 10/e44b8327da46e8659bc9fb77f66e2dc4364dd66495fb17d046b96a77bf604f0446f1e9a89cf2f011d78fc3f5cdfbae2e9e0714708e1c985988335683b2e781ef
   languageName: node
   linkType: hard
 
@@ -1046,21 +1046,21 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/plugin-transform-classes@npm:^7.24.7":
-  version: 7.24.7
-  resolution: "@babel/plugin-transform-classes@npm:7.24.7"
+"@babel/plugin-transform-classes@npm:^7.24.8":
+  version: 7.24.8
+  resolution: "@babel/plugin-transform-classes@npm:7.24.8"
   dependencies:
     "@babel/helper-annotate-as-pure": "npm:^7.24.7"
-    "@babel/helper-compilation-targets": "npm:^7.24.7"
+    "@babel/helper-compilation-targets": "npm:^7.24.8"
     "@babel/helper-environment-visitor": "npm:^7.24.7"
     "@babel/helper-function-name": "npm:^7.24.7"
-    "@babel/helper-plugin-utils": "npm:^7.24.7"
+    "@babel/helper-plugin-utils": "npm:^7.24.8"
     "@babel/helper-replace-supers": "npm:^7.24.7"
     "@babel/helper-split-export-declaration": "npm:^7.24.7"
     globals: "npm:^11.1.0"
   peerDependencies:
     "@babel/core": ^7.0.0-0
-  checksum: 10/5d5577fcb0ec9ef33d889358c54720abe462325bed5483d71f9aa0a704f491520777be5411d6fd8a08a8ebe352e2445d46d1e6577a5a2c9333bc37b9ff8b9a74
+  checksum: 10/3d586018691423ed1fbcb4589cc29001226c96e5e060932bf99379568c684a4a230cca7871e7c825335336ef0326066ba6e3bf5e6d0209425b0f5ceeda3eaed2
   languageName: node
   linkType: hard
 
@@ -1076,14 +1076,14 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/plugin-transform-destructuring@npm:^7.24.7":
-  version: 7.24.7
-  resolution: "@babel/plugin-transform-destructuring@npm:7.24.7"
+"@babel/plugin-transform-destructuring@npm:^7.24.8":
+  version: 7.24.8
+  resolution: "@babel/plugin-transform-destructuring@npm:7.24.8"
   dependencies:
-    "@babel/helper-plugin-utils": "npm:^7.24.7"
+    "@babel/helper-plugin-utils": "npm:^7.24.8"
   peerDependencies:
     "@babel/core": ^7.0.0-0
-  checksum: 10/eec43df24a07b3c61f335883e50c6642762fdd3cc5c5f95532cebeb51ea9bf77ca9a38011b678d91549dd75e29e1c58bd6e0ebc34bb763c300bc2cc65801e663
+  checksum: 10/e3bba0bb050592615fbf062ea07ae94f99e9cf22add006eaa66ed672d67ff7051b578a5ea68a7d79f9184fb3c27c65333d86b0b8ea04f9810bcccbeea2ffbe76
   languageName: node
   linkType: hard
 
@@ -1229,16 +1229,16 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/plugin-transform-modules-commonjs@npm:^7.24.7":
-  version: 7.24.7
-  resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.7"
+"@babel/plugin-transform-modules-commonjs@npm:^7.24.8":
+  version: 7.24.8
+  resolution: "@babel/plugin-transform-modules-commonjs@npm:7.24.8"
   dependencies:
-    "@babel/helper-module-transforms": "npm:^7.24.7"
-    "@babel/helper-plugin-utils": "npm:^7.24.7"
+    "@babel/helper-module-transforms": "npm:^7.24.8"
+    "@babel/helper-plugin-utils": "npm:^7.24.8"
     "@babel/helper-simple-access": "npm:^7.24.7"
   peerDependencies:
     "@babel/core": ^7.0.0-0
-  checksum: 10/9bd10cd03cce138a644f4e671025058348d8ff364253122bed60f9a2a32759445b93e8a6501773491cb19906602b18fd26255df0caac425343a1584599b36b24
+  checksum: 10/18e5d229767c7b5b6ff0cbf1a8d2d555965b90201839d0ac2dc043b56857624ea344e59f733f028142a8c1d54923b82e2a0185694ef36f988d797bfbaf59819c
   languageName: node
   linkType: hard
 
@@ -1353,16 +1353,16 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/plugin-transform-optional-chaining@npm:^7.24.7":
-  version: 7.24.7
-  resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.7"
+"@babel/plugin-transform-optional-chaining@npm:^7.24.7, @babel/plugin-transform-optional-chaining@npm:^7.24.8":
+  version: 7.24.8
+  resolution: "@babel/plugin-transform-optional-chaining@npm:7.24.8"
   dependencies:
-    "@babel/helper-plugin-utils": "npm:^7.24.7"
+    "@babel/helper-plugin-utils": "npm:^7.24.8"
     "@babel/helper-skip-transparent-expression-wrappers": "npm:^7.24.7"
     "@babel/plugin-syntax-optional-chaining": "npm:^7.8.3"
   peerDependencies:
     "@babel/core": ^7.0.0-0
-  checksum: 10/0835caa8fa8561ba5da8edb82aee93aef8e5145eae33e5400569bb4fae879c596cd35d3bfe7519b222261fc370b1291c499870ca6ad9903e1a71cfaaa27a5454
+  checksum: 10/1f873fb9d86c280b64dfe5ebc59244b459b717ed72a7682da2386db3d9e11fc9d831cfc2e11d37262b4325a7a0e3ccbccfb8cd0b944caf199d3c9e03fff7b0af
   languageName: node
   linkType: hard
 
@@ -1482,14 +1482,14 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/plugin-transform-typeof-symbol@npm:^7.24.7":
-  version: 7.24.7
-  resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.7"
+"@babel/plugin-transform-typeof-symbol@npm:^7.24.8":
+  version: 7.24.8
+  resolution: "@babel/plugin-transform-typeof-symbol@npm:7.24.8"
   dependencies:
-    "@babel/helper-plugin-utils": "npm:^7.24.7"
+    "@babel/helper-plugin-utils": "npm:^7.24.8"
   peerDependencies:
     "@babel/core": ^7.0.0-0
-  checksum: 10/c07847a3bcb27509d392de7a59b9836669b90ca508d4b63b36bb73b63413bc0b2571a64410b65999a73abeac99957b31053225877dcbfaf4eb21d8cc0ae4002f
+  checksum: 10/5f113fed94b694ec4a40a27b8628ce736cfa172b69fcffa2833c9a41895032127f3daeea552e94fdb4a3ce4e8cd51de67a670ab87a1f447a0cf55c9cb2d7ed11
   languageName: node
   linkType: hard
 
@@ -1541,13 +1541,13 @@ __metadata:
   linkType: hard
 
 "@babel/preset-env@npm:^7.11.0":
-  version: 7.24.7
-  resolution: "@babel/preset-env@npm:7.24.7"
+  version: 7.24.8
+  resolution: "@babel/preset-env@npm:7.24.8"
   dependencies:
-    "@babel/compat-data": "npm:^7.24.7"
-    "@babel/helper-compilation-targets": "npm:^7.24.7"
-    "@babel/helper-plugin-utils": "npm:^7.24.7"
-    "@babel/helper-validator-option": "npm:^7.24.7"
+    "@babel/compat-data": "npm:^7.24.8"
+    "@babel/helper-compilation-targets": "npm:^7.24.8"
+    "@babel/helper-plugin-utils": "npm:^7.24.8"
+    "@babel/helper-validator-option": "npm:^7.24.8"
     "@babel/plugin-bugfix-firefox-class-in-computed-class-key": "npm:^7.24.7"
     "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "npm:^7.24.7"
     "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "npm:^7.24.7"
@@ -1578,9 +1578,9 @@ __metadata:
     "@babel/plugin-transform-block-scoping": "npm:^7.24.7"
     "@babel/plugin-transform-class-properties": "npm:^7.24.7"
     "@babel/plugin-transform-class-static-block": "npm:^7.24.7"
-    "@babel/plugin-transform-classes": "npm:^7.24.7"
+    "@babel/plugin-transform-classes": "npm:^7.24.8"
     "@babel/plugin-transform-computed-properties": "npm:^7.24.7"
-    "@babel/plugin-transform-destructuring": "npm:^7.24.7"
+    "@babel/plugin-transform-destructuring": "npm:^7.24.8"
     "@babel/plugin-transform-dotall-regex": "npm:^7.24.7"
     "@babel/plugin-transform-duplicate-keys": "npm:^7.24.7"
     "@babel/plugin-transform-dynamic-import": "npm:^7.24.7"
@@ -1593,7 +1593,7 @@ __metadata:
     "@babel/plugin-transform-logical-assignment-operators": "npm:^7.24.7"
     "@babel/plugin-transform-member-expression-literals": "npm:^7.24.7"
     "@babel/plugin-transform-modules-amd": "npm:^7.24.7"
-    "@babel/plugin-transform-modules-commonjs": "npm:^7.24.7"
+    "@babel/plugin-transform-modules-commonjs": "npm:^7.24.8"
     "@babel/plugin-transform-modules-systemjs": "npm:^7.24.7"
     "@babel/plugin-transform-modules-umd": "npm:^7.24.7"
     "@babel/plugin-transform-named-capturing-groups-regex": "npm:^7.24.7"
@@ -1603,7 +1603,7 @@ __metadata:
     "@babel/plugin-transform-object-rest-spread": "npm:^7.24.7"
     "@babel/plugin-transform-object-super": "npm:^7.24.7"
     "@babel/plugin-transform-optional-catch-binding": "npm:^7.24.7"
-    "@babel/plugin-transform-optional-chaining": "npm:^7.24.7"
+    "@babel/plugin-transform-optional-chaining": "npm:^7.24.8"
     "@babel/plugin-transform-parameters": "npm:^7.24.7"
     "@babel/plugin-transform-private-methods": "npm:^7.24.7"
     "@babel/plugin-transform-private-property-in-object": "npm:^7.24.7"
@@ -1614,7 +1614,7 @@ __metadata:
     "@babel/plugin-transform-spread": "npm:^7.24.7"
     "@babel/plugin-transform-sticky-regex": "npm:^7.24.7"
     "@babel/plugin-transform-template-literals": "npm:^7.24.7"
-    "@babel/plugin-transform-typeof-symbol": "npm:^7.24.7"
+    "@babel/plugin-transform-typeof-symbol": "npm:^7.24.8"
     "@babel/plugin-transform-unicode-escapes": "npm:^7.24.7"
     "@babel/plugin-transform-unicode-property-regex": "npm:^7.24.7"
     "@babel/plugin-transform-unicode-regex": "npm:^7.24.7"
@@ -1623,11 +1623,11 @@ __metadata:
     babel-plugin-polyfill-corejs2: "npm:^0.4.10"
     babel-plugin-polyfill-corejs3: "npm:^0.10.4"
     babel-plugin-polyfill-regenerator: "npm:^0.6.1"
-    core-js-compat: "npm:^3.31.0"
+    core-js-compat: "npm:^3.37.1"
     semver: "npm:^6.3.1"
   peerDependencies:
     "@babel/core": ^7.0.0-0
-  checksum: 10/2fd90c46efefadb48dae6d13de190ac48753af187ee394924cf532c79870ebb87658bd31f06649630827a478b17a4adc41717cc6d4c460ff2ed9fafa51e5b515
+  checksum: 10/6d32d4554b34230031c0fb0c0e636e7e78e2219a26d5145209d9417cabcd2bd09637b1470187d2613a0b0d2128ed4a6e27a40ea268e44a62fc13b5d242e2cf82
   languageName: node
   linkType: hard
 
@@ -1652,11 +1652,11 @@ __metadata:
   linkType: hard
 
 "@babel/runtime@npm:^7.10.5, @babel/runtime@npm:^7.11.2, @babel/runtime@npm:^7.12.5, @babel/runtime@npm:^7.14.0, @babel/runtime@npm:^7.14.5, @babel/runtime@npm:^7.14.8, @babel/runtime@npm:^7.15.4, @babel/runtime@npm:^7.17.2, @babel/runtime@npm:^7.18.3, @babel/runtime@npm:^7.19.0, @babel/runtime@npm:^7.21.0, @babel/runtime@npm:^7.22.15, @babel/runtime@npm:^7.7.2, @babel/runtime@npm:^7.8.4, @babel/runtime@npm:^7.9.2":
-  version: 7.24.7
-  resolution: "@babel/runtime@npm:7.24.7"
+  version: 7.24.8
+  resolution: "@babel/runtime@npm:7.24.8"
   dependencies:
     regenerator-runtime: "npm:^0.14.0"
-  checksum: 10/7b77f566165dee62db3db0296e71d08cafda3f34e1b0dcefcd68427272e17c1704f4e4369bff76651b07b6e49d3ea5a0ce344818af9116e9292e4381e0918c76
+  checksum: 10/e6f335e472a8a337379effc15815dd0eddf6a7d0c00b50deb4f9e9585819b45431d0ff3c2d3d0fa58c227a9b04dcc4a85e7245fb57493adb2863b5208c769cbd
   languageName: node
   linkType: hard
 
@@ -1671,32 +1671,32 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@babel/traverse@npm:^7.23.2, @babel/traverse@npm:^7.24.7":
-  version: 7.24.7
-  resolution: "@babel/traverse@npm:7.24.7"
+"@babel/traverse@npm:^7.24.7, @babel/traverse@npm:^7.24.8":
+  version: 7.24.8
+  resolution: "@babel/traverse@npm:7.24.8"
   dependencies:
     "@babel/code-frame": "npm:^7.24.7"
-    "@babel/generator": "npm:^7.24.7"
+    "@babel/generator": "npm:^7.24.8"
     "@babel/helper-environment-visitor": "npm:^7.24.7"
     "@babel/helper-function-name": "npm:^7.24.7"
     "@babel/helper-hoist-variables": "npm:^7.24.7"
     "@babel/helper-split-export-declaration": "npm:^7.24.7"
-    "@babel/parser": "npm:^7.24.7"
-    "@babel/types": "npm:^7.24.7"
+    "@babel/parser": "npm:^7.24.8"
+    "@babel/types": "npm:^7.24.8"
     debug: "npm:^4.3.1"
     globals: "npm:^11.1.0"
-  checksum: 10/785cf26383a992740e492efba7016de964cd06c05c9d7146fa1b5ead409e054c444f50b36dc37856884a56e32cf9d3105ddf1543486b6df68300bffb117a245a
+  checksum: 10/47d8ecf8cfff58fe621fc4d8454b82c97c407816d8f9c435caa0c849ea7c357b91119a06f3c69f21a0228b5d06ac0b44f49d1f78cff032d6266317707f1fe615
   languageName: node
   linkType: hard
 
-"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.23.0, @babel/types@npm:^7.23.6, @babel/types@npm:^7.24.7, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3":
-  version: 7.24.7
-  resolution: "@babel/types@npm:7.24.7"
+"@babel/types@npm:^7.0.0, @babel/types@npm:^7.20.7, @babel/types@npm:^7.24.7, @babel/types@npm:^7.24.8, @babel/types@npm:^7.24.9, @babel/types@npm:^7.3.3, @babel/types@npm:^7.4.4, @babel/types@npm:^7.8.3":
+  version: 7.24.9
+  resolution: "@babel/types@npm:7.24.9"
   dependencies:
-    "@babel/helper-string-parser": "npm:^7.24.7"
+    "@babel/helper-string-parser": "npm:^7.24.8"
     "@babel/helper-validator-identifier": "npm:^7.24.7"
     to-fast-properties: "npm:^2.0.0"
-  checksum: 10/ad3c8c0d6fb4acb0bb74bb5b4bb849b181bf6185677ef9c59c18856c81e43628d0858253cf232f0eca806f02e08eff85a1d3e636a3e94daea737597796b0b430
+  checksum: 10/21873a08a124646824aa230de06af52149ab88206dca59849dcb3003990a6306ec2cdaa4147ec1127c0cfc5f133853cfc18f80d7f6337b6662a3c378ed565f15
   languageName: node
   linkType: hard
 
@@ -1707,21 +1707,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@carbon/charts-react@npm:^1.16.1":
-  version: 1.17.2
-  resolution: "@carbon/charts-react@npm:1.17.2"
-  dependencies:
-    "@carbon/charts": "npm:1.17.2"
-    "@carbon/icons-react": "npm:^11.44.1"
-    "@ibm/telemetry-js": "npm:^1.5.2"
-  peerDependencies:
-    react: ^16.8.6 || ^17.0.1 || ^18.2.0
-    react-dom: ^16.8.6 || ^17.0.1 || ^18.2.0
-  checksum: 10/5c15fe03b81e2f87fb0f5139482fc35687458a247eef7d220fd53ee7cfe8a26274695e97d1d40abeddaf850ffbd0fa18d1404d3ba1d1f96ef72e572aa394d9f4
-  languageName: node
-  linkType: hard
-
-"@carbon/charts-react@npm:^1.5.2":
+"@carbon/charts-react@npm:^1.16.1, @carbon/charts-react@npm:^1.5.2":
   version: 1.19.2
   resolution: "@carbon/charts-react@npm:1.19.2"
   dependencies:
@@ -1735,28 +1721,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@carbon/charts@npm:1.17.2, @carbon/charts@npm:^1.12.0":
-  version: 1.17.2
-  resolution: "@carbon/charts@npm:1.17.2"
-  dependencies:
-    "@carbon/colors": "npm:^11.23.1"
-    "@carbon/utils-position": "npm:^1.3.0"
-    "@ibm/telemetry-js": "npm:^1.5.2"
-    carbon-components: "npm:^10.58.15"
-    d3: "npm:^7.9.0"
-    d3-cloud: "npm:^1.2.7"
-    d3-sankey: "npm:^0.12.3"
-    date-fns: "npm:^3.6.0"
-    dompurify: "npm:^3.1.5"
-    html-to-image: "npm:^1.11.11"
-    lodash-es: "npm:^4.17.21"
-    topojson-client: "npm:^3.1.0"
-    tslib: "npm:^2.6.3"
-  checksum: 10/bade51acb73af3891b8c8402bf04fa1785adf6ce94b34fc2a16815c115e225cfc19002e9168ff08ecb526ddff85f32bf4890768b1ff72aa57f8d1c060987b90f
-  languageName: node
-  linkType: hard
-
-"@carbon/charts@npm:1.19.2":
+"@carbon/charts@npm:1.19.2, @carbon/charts@npm:^1.12.0":
   version: 1.19.2
   resolution: "@carbon/charts@npm:1.19.2"
   dependencies:
@@ -1777,7 +1742,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@carbon/colors@npm:^11.23.1":
+"@carbon/colors@npm:^11.23.0, @carbon/colors@npm:^11.23.1":
   version: 11.23.1
   resolution: "@carbon/colors@npm:11.23.1"
   dependencies:
@@ -1802,7 +1767,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@carbon/grid@npm:^11.24.1":
+"@carbon/grid@npm:^11.24.0, @carbon/grid@npm:^11.24.1":
   version: 11.24.1
   resolution: "@carbon/grid@npm:11.24.1"
   dependencies:
@@ -1812,7 +1777,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@carbon/icon-helpers@npm:^10.49.0, @carbon/icon-helpers@npm:^10.49.1":
+"@carbon/icon-helpers@npm:^10.49.0":
   version: 10.49.1
   resolution: "@carbon/icon-helpers@npm:10.49.1"
   dependencies:
@@ -1821,20 +1786,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@carbon/icons-react@npm:^11.26.0, @carbon/icons-react@npm:^11.44.1":
-  version: 11.44.1
-  resolution: "@carbon/icons-react@npm:11.44.1"
-  dependencies:
-    "@carbon/icon-helpers": "npm:^10.49.1"
-    "@ibm/telemetry-js": "npm:^1.5.0"
-    prop-types: "npm:^15.7.2"
-  peerDependencies:
-    react: ">=16"
-  checksum: 10/a546db550789e72d4d5e3b8dcab96341d36a7f4005d49ebdbbd3bcf88fcbaa8b175792d6bfa78818b3d5fb3b05f16eb7241cccb0a69655bdbf13aac164321e97
-  languageName: node
-  linkType: hard
-
-"@carbon/icons-react@npm:^11.45.0":
+"@carbon/icons-react@npm:^11.26.0, @carbon/icons-react@npm:^11.35.0, @carbon/icons-react@npm:^11.45.0":
   version: 11.45.0
   resolution: "@carbon/icons-react@npm:11.45.0"
   dependencies:
@@ -1847,7 +1799,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@carbon/layout@npm:^11.19.0, @carbon/layout@npm:^11.23.1":
+"@carbon/layout@npm:^11.19.0, @carbon/layout@npm:^11.20.0, @carbon/layout@npm:^11.23.0, @carbon/layout@npm:^11.23.1":
   version: 11.23.1
   resolution: "@carbon/layout@npm:11.23.1"
   dependencies:
@@ -1856,7 +1808,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@carbon/motion@npm:^11.19.1":
+"@carbon/motion@npm:^11.19.0":
   version: 11.19.1
   resolution: "@carbon/motion@npm:11.19.1"
   dependencies:
@@ -1865,16 +1817,48 @@ __metadata:
   languageName: node
   linkType: hard
 
+"@carbon/react@npm:>1.47.0 <1.50.0":
+  version: 1.49.0
+  resolution: "@carbon/react@npm:1.49.0"
+  dependencies:
+    "@babel/runtime": "npm:^7.18.3"
+    "@carbon/feature-flags": "npm:^0.16.0"
+    "@carbon/icons-react": "npm:^11.35.0"
+    "@carbon/layout": "npm:^11.20.0"
+    "@carbon/styles": "npm:^1.49.0"
+    "@ibm/telemetry-js": "npm:^1.2.0"
+    classnames: "npm:2.5.1"
+    copy-to-clipboard: "npm:^3.3.1"
+    downshift: "npm:8.3.1"
+    flatpickr: "npm:4.6.9"
+    invariant: "npm:^2.2.3"
+    lodash.debounce: "npm:^4.0.8"
+    lodash.findlast: "npm:^4.5.0"
+    lodash.isequal: "npm:^4.5.0"
+    lodash.omit: "npm:^4.5.0"
+    lodash.throttle: "npm:^4.1.1"
+    prop-types: "npm:^15.7.2"
+    react-is: "npm:^18.2.0"
+    use-resize-observer: "npm:^6.0.0"
+    wicg-inert: "npm:^3.1.1"
+    window-or-global: "npm:^1.0.1"
+  peerDependencies:
+    react: ^16.8.6 || ^17.0.1 || ^18.2.0
+    react-dom: ^16.8.6 || ^17.0.1 || ^18.2.0
+    sass: ^1.33.0
+  checksum: 10/18e74975d78a8f26a464b2783a98cfa21610679e9bedc31e9f98e5b05a7ecfa157dd00569f9d54985ebfddcaeeae19096553c8f1cf57bc4f070405faeed3d70a
+  languageName: node
+  linkType: hard
+
 "@carbon/react@npm:^1.12.0, @carbon/react@npm:^1.13.0, @carbon/react@npm:^1.42.1":
-  version: 1.60.3
-  resolution: "@carbon/react@npm:1.60.3"
+  version: 1.62.0
+  resolution: "@carbon/react@npm:1.62.0"
   dependencies:
     "@babel/runtime": "npm:^7.18.3"
     "@carbon/feature-flags": "npm:^0.20.0"
-    "@carbon/icons-react": "npm:^11.44.1"
-    "@carbon/layout": "npm:^11.23.1"
-    "@carbon/styles": "npm:^1.60.1"
-    "@figma/code-connect": "npm:^0.1.2"
+    "@carbon/icons-react": "npm:^11.45.0"
+    "@carbon/layout": "npm:^11.23.0"
+    "@carbon/styles": "npm:^1.61.0"
     "@floating-ui/react": "npm:^0.26.0"
     "@ibm/telemetry-js": "npm:^1.5.0"
     classnames: "npm:2.5.1"
@@ -1891,13 +1875,12 @@ __metadata:
     react-is: "npm:^18.2.0"
     tabbable: "npm:^6.2.0"
     use-resize-observer: "npm:^6.0.0"
-    wicg-inert: "npm:^3.1.1"
     window-or-global: "npm:^1.0.1"
   peerDependencies:
     react: ^16.8.6 || ^17.0.1 || ^18.2.0
     react-dom: ^16.8.6 || ^17.0.1 || ^18.2.0
     sass: ^1.33.0
-  checksum: 10/28ac63d264b8c9ce9f42a956cf897d40cd5ec15b89422dc5d3ba11715c9fe01ca7d9d76baa23e31cd34af95858d55c4cc98016e20df876d422868ebd7dd13c63
+  checksum: 10/7b82d33055713921ff7508f88c00004815c0f1cfff1947d895d4a2d4abbbcbe717c56264e1245734bf13698455a2fbedf8dce7e9695f9110c6f3fc62229f7ea1
   languageName: node
   linkType: hard
 
@@ -1934,17 +1917,17 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@carbon/styles@npm:^1.37.0, @carbon/styles@npm:^1.58.0, @carbon/styles@npm:^1.60.1":
-  version: 1.60.1
-  resolution: "@carbon/styles@npm:1.60.1"
+"@carbon/styles@npm:^1.37.0, @carbon/styles@npm:^1.49.0, @carbon/styles@npm:^1.58.0, @carbon/styles@npm:^1.61.0":
+  version: 1.61.0
+  resolution: "@carbon/styles@npm:1.61.0"
   dependencies:
-    "@carbon/colors": "npm:^11.23.1"
+    "@carbon/colors": "npm:^11.23.0"
     "@carbon/feature-flags": "npm:^0.20.0"
-    "@carbon/grid": "npm:^11.24.1"
-    "@carbon/layout": "npm:^11.23.1"
-    "@carbon/motion": "npm:^11.19.1"
-    "@carbon/themes": "npm:^11.37.1"
-    "@carbon/type": "npm:^11.28.1"
+    "@carbon/grid": "npm:^11.24.0"
+    "@carbon/layout": "npm:^11.23.0"
+    "@carbon/motion": "npm:^11.19.0"
+    "@carbon/themes": "npm:^11.37.0"
+    "@carbon/type": "npm:^11.28.0"
     "@ibm/plex": "npm:6.0.0-next.6"
     "@ibm/telemetry-js": "npm:^1.5.0"
   peerDependencies:
@@ -1952,7 +1935,7 @@ __metadata:
   peerDependenciesMeta:
     sass:
       optional: true
-  checksum: 10/3a166807ff91a58783f35d3dbf30172cc58c748d68f2c066d8001ee2de50951439aae0f97ec55a6c5ab4b6349848d7d1c4e6a5398a1d749c7900962e834441bf
+  checksum: 10/ae474457472bfbd153c18a42f410f1492db825dc2dea0346bcb6c67961b0dc4b5f847a2febbd1b1b954d860efd0fe9cee70cc10b0e50bd1f9b51877eef93c431
   languageName: node
   linkType: hard
 
@@ -1965,7 +1948,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@carbon/themes@npm:^11.37.1":
+"@carbon/themes@npm:^11.37.0":
   version: 11.37.1
   resolution: "@carbon/themes@npm:11.37.1"
   dependencies:
@@ -1978,7 +1961,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@carbon/type@npm:^11.28.1":
+"@carbon/type@npm:^11.28.0, @carbon/type@npm:^11.28.1":
   version: 11.28.1
   resolution: "@carbon/type@npm:11.28.1"
   dependencies:
@@ -2047,50 +2030,26 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@figma/code-connect@npm:^0.1.2":
-  version: 0.1.2
-  resolution: "@figma/code-connect@npm:0.1.2"
-  dependencies:
-    "@babel/core": "npm:^7.23.6"
-    "@babel/generator": "npm:^7.23.6"
-    "@babel/parser": "npm:^7.23.6"
-    "@babel/types": "npm:^7.23.6"
-    "@storybook/csf-tools": "npm:^7.6.7"
-    axios: "npm:^1.6.0"
-    chalk: "npm:^4.1.2"
-    commander: "npm:^11.1.0"
-    dotenv: "npm:^16.3.1"
-    glob: "npm:^10.3.10"
-    lodash: "npm:^4.17.21"
-    minimatch: "npm:^9.0.3"
-    prettier: "npm:^3.2.4"
-    typescript: "npm:5.4.2"
-  bin:
-    figma: bin/figma
-  checksum: 10/730fd7b326629bdfb4fa1376690fc6cef43471e372b40ba9873dba560246986646601f9f7f854df09d639652177ce926ff335fd57e71ec9cbb1d241bfeb65f37
-  languageName: node
-  linkType: hard
-
-"@floating-ui/core@npm:^1.0.0":
-  version: 1.6.3
-  resolution: "@floating-ui/core@npm:1.6.3"
+"@floating-ui/core@npm:^1.6.0":
+  version: 1.6.4
+  resolution: "@floating-ui/core@npm:1.6.4"
   dependencies:
-    "@floating-ui/utils": "npm:^0.2.3"
-  checksum: 10/e0aa2466d6b8de77d67f704c82f3d5013e19a81f734523a47c6f7b11b2a1c6419ed88cff81eeeb0ea2880b45d100fca43eb74339280a61e3ea5226e49a6c4b02
+    "@floating-ui/utils": "npm:^0.2.4"
+  checksum: 10/589430cbff4bac90b9b891e2c94c57dc113d39ac163552f547d9e4c7d21f09997b9d33e82ec717759caee678c47f845f14a3f28df6f029fcfcf3ad803ba4eb7c
   languageName: node
   linkType: hard
 
 "@floating-ui/dom@npm:^1.0.0":
-  version: 1.6.6
-  resolution: "@floating-ui/dom@npm:1.6.6"
+  version: 1.6.7
+  resolution: "@floating-ui/dom@npm:1.6.7"
   dependencies:
-    "@floating-ui/core": "npm:^1.0.0"
-    "@floating-ui/utils": "npm:^0.2.3"
-  checksum: 10/14d829b11d7ffb82c9c274c001726d004f81b9b6b0516955350f4922631228cc5e2183f83a2c240673c4e0785028d731157b7093e1027c9a3388ad39c891d857
+    "@floating-ui/core": "npm:^1.6.0"
+    "@floating-ui/utils": "npm:^0.2.4"
+  checksum: 10/a6a42bfd243c311f6040043808a6549c1db45fa36138b81cb1e615170d61fd2daf4f37accc1df3e0189405d97e3d71b12de39879c9d58ccf181c982b69cf6cf9
   languageName: node
   linkType: hard
 
-"@floating-ui/react-dom@npm:^2.1.0":
+"@floating-ui/react-dom@npm:^2.1.1":
   version: 2.1.1
   resolution: "@floating-ui/react-dom@npm:2.1.1"
   dependencies:
@@ -2103,23 +2062,23 @@ __metadata:
   linkType: hard
 
 "@floating-ui/react@npm:^0.26.0":
-  version: 0.26.18
-  resolution: "@floating-ui/react@npm:0.26.18"
+  version: 0.26.19
+  resolution: "@floating-ui/react@npm:0.26.19"
   dependencies:
-    "@floating-ui/react-dom": "npm:^2.1.0"
-    "@floating-ui/utils": "npm:^0.2.3"
+    "@floating-ui/react-dom": "npm:^2.1.1"
+    "@floating-ui/utils": "npm:^0.2.4"
     tabbable: "npm:^6.0.0"
   peerDependencies:
     react: ">=16.8.0"
     react-dom: ">=16.8.0"
-  checksum: 10/070d91761bd74f64cdd7041597da843515191a2855a4b42c51319fef068de0850a7e6f8bd6070e01cc4549cc346e44d402faeb83fe2df4405960d07538b11932
+  checksum: 10/709d0bb29fa51e29478ab385064b8601075be22d01b339bf624b603200fce068ca6526e7ee8ddfffb671c46be7d3a37ec742a3a9b35b1a38a42eeeb54cb075fc
   languageName: node
   linkType: hard
 
-"@floating-ui/utils@npm:^0.2.3":
-  version: 0.2.3
-  resolution: "@floating-ui/utils@npm:0.2.3"
-  checksum: 10/234c3862426cffc1551eafad60a8ad4c5325f36ff985aea671089646a574c6672ef81e54e26282b935d22d84306e13c24ff57a18f1ac564e19ae99b6ce1299fa
+"@floating-ui/utils@npm:^0.2.4":
+  version: 0.2.4
+  resolution: "@floating-ui/utils@npm:0.2.4"
+  checksum: 10/7662d7a4ae39c0287e026f666297a3d28c80e588251c8c59ff66938a0aead47d380bbb9018629bd63a98f399c3919ec689d5448a5c48ffc176d545ddef705df1
   languageName: node
   linkType: hard
 
@@ -2180,11 +2139,11 @@ __metadata:
   linkType: hard
 
 "@hookform/resolvers@npm:^3.3.1":
-  version: 3.6.0
-  resolution: "@hookform/resolvers@npm:3.6.0"
+  version: 3.9.0
+  resolution: "@hookform/resolvers@npm:3.9.0"
   peerDependencies:
     react-hook-form: ^7.0.0
-  checksum: 10/6dd1b7ad21ed2b171470740884e0b83982c79a0d4ceddabe60b616e53eeed2b5569cdba5e91ad844e379aeda5ffa835b0c2d2525d702fcd8b263c2194895f9b7
+  checksum: 10/b878e92cebc703106a70987437ab4add0e71a327a0bb9864f82ab480b5d9a38b0d639f6154b138c3c4828af0db00c1b413279c102715146b19edc76b9786f1c3
   languageName: node
   linkType: hard
 
@@ -2220,16 +2179,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@ibm/telemetry-js@npm:^1.5.0, @ibm/telemetry-js@npm:^1.5.1, @ibm/telemetry-js@npm:^1.5.2":
-  version: 1.5.2
-  resolution: "@ibm/telemetry-js@npm:1.5.2"
-  bin:
-    ibmtelemetry: dist/collect.js
-  checksum: 10/1dcc971e78a927baba382a7179f75bc2b6fb1b237d8e9e88941c6410810e716a862e9135c709887a245daaf0e3e158ac3d01bf7e830457933ec91afffc479146
-  languageName: node
-  linkType: hard
-
-"@ibm/telemetry-js@npm:^1.6.0":
+"@ibm/telemetry-js@npm:^1.2.0, @ibm/telemetry-js@npm:^1.5.0, @ibm/telemetry-js@npm:^1.5.1, @ibm/telemetry-js@npm:^1.6.0":
   version: 1.6.0
   resolution: "@ibm/telemetry-js@npm:1.6.0"
   bin:
@@ -3008,9 +2958,9 @@ __metadata:
   linkType: hard
 
 "@jridgewell/sourcemap-codec@npm:^1.4.10, @jridgewell/sourcemap-codec@npm:^1.4.14":
-  version: 1.4.15
-  resolution: "@jridgewell/sourcemap-codec@npm:1.4.15"
-  checksum: 10/89960ac087781b961ad918978975bcdf2051cd1741880469783c42de64239703eab9db5230d776d8e6a09d73bb5e4cb964e07d93ee6e2e7aea5a7d726e865c09
+  version: 1.5.0
+  resolution: "@jridgewell/sourcemap-codec@npm:1.5.0"
+  checksum: 10/4ed6123217569a1484419ac53f6ea0d9f3b57e5b57ab30d7c267bdb27792a27eb0e4b08e84a2680aa55cc2f2b411ffd6ec3db01c44fdc6dc43aca4b55f8374fd
   languageName: node
   linkType: hard
 
@@ -3158,11 +3108,11 @@ __metadata:
   linkType: hard
 
 "@ohri/openmrs-esm-ohri-commons-lib@npm:next":
-  version: 2.3.2-pre.382
-  resolution: "@ohri/openmrs-esm-ohri-commons-lib@npm:2.3.2-pre.382"
+  version: 2.3.7-pre.447
+  resolution: "@ohri/openmrs-esm-ohri-commons-lib@npm:2.3.7-pre.447"
   dependencies:
     "@carbon/react": "npm:^1.13.0"
-    "@openmrs/openmrs-form-engine-lib": "npm:2.0.0-pre.1029"
+    "@openmrs/openmrs-form-engine-lib": "npm:2.0.0-pre.1260"
     fuzzy: "npm:^0.1.3"
     lodash-es: "npm:^4.17.15"
     systemjs-webpack-interop: "npm:^2.3.7"
@@ -3174,13 +3124,13 @@ __metadata:
     react: 18.x
     react-i18next: 11.x
     swr: 2.x
-  checksum: 10/59e1e1d8f7701ba1d06d9d50c85e2226e75d3a2131752a478322a8bbc74a4fb2482c481e87743b101d2a349c237c9ccbcf9f4179600e0b57e585772177202d50
+  checksum: 10/b35b78a86c75deee09f24c46d19935ee204f34bd0015f097eb134ef26dba488f21de2160b88a602d9c69e08a914401be4b339fa2e7554b1473ab096172c3fd8d
   languageName: node
   linkType: hard
 
-"@openmrs/esm-api@npm:5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "@openmrs/esm-api@npm:5.6.1-pre.2075"
+"@openmrs/esm-api@npm:5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "@openmrs/esm-api@npm:5.7.1-pre.2076"
   dependencies:
     "@types/fhir": "npm:0.0.31"
     lodash-es: "npm:^4.17.21"
@@ -3189,17 +3139,17 @@ __metadata:
     "@openmrs/esm-error-handling": 5.x
     "@openmrs/esm-navigation": 5.x
     "@openmrs/esm-offline": 5.x
-  checksum: 10/f6104da5bc393cb95f2eefa97833774acbb71cabe9d3142dfbb89681da2ed672eee9796b1eb55b4234cb1fdba6a36676035eecfb302f309b9a25d50b0be33394
+  checksum: 10/fcf5f563484373e0c507ecf1d10f1f62c2a1b7b691146e23ee8e7d4df445d735e36ebb3980f6f8d74529e7bd29119a6fad8ded131a4c6da024aa59974a0ffd84
   languageName: node
   linkType: hard
 
-"@openmrs/esm-app-shell@npm:5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "@openmrs/esm-app-shell@npm:5.6.1-pre.2075"
+"@openmrs/esm-app-shell@npm:5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "@openmrs/esm-app-shell@npm:5.7.1-pre.2076"
   dependencies:
     "@carbon/react": "npm:~1.37.0"
-    "@openmrs/esm-framework": "npm:5.6.1-pre.2075"
-    "@openmrs/esm-styleguide": "npm:5.6.1-pre.2075"
+    "@openmrs/esm-framework": "npm:5.7.1-pre.2076"
+    "@openmrs/esm-styleguide": "npm:5.7.1-pre.2076"
     dayjs: "npm:^1.10.4"
     dexie: "npm:^3.0.3"
     html-webpack-plugin: "npm:^5.5.0"
@@ -3224,57 +3174,57 @@ __metadata:
     workbox-strategies: "npm:^6.1.5"
     workbox-webpack-plugin: "npm:^6.1.5"
     workbox-window: "npm:^6.1.5"
-  checksum: 10/50fed286154d562a6d51d891381049b1e0a92415c55f1ffe9ab7bd6f380c61e0d7a771f6bac6ef11931c2cf0c74a33ccdea8a910228020477c9a396710d6ef24
+  checksum: 10/c69c66eae5e6efbd9de6f1ddf5e533f72b243ef2989552df113d7dc3d5562203839298c4ec4340eccc5a148d27791f8de81f2a6866d1de5429b3cc6c731761ed
   languageName: node
   linkType: hard
 
-"@openmrs/esm-config@npm:5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "@openmrs/esm-config@npm:5.6.1-pre.2075"
+"@openmrs/esm-config@npm:5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "@openmrs/esm-config@npm:5.7.1-pre.2076"
   dependencies:
     ramda: "npm:^0.26.1"
   peerDependencies:
     "@openmrs/esm-globals": 5.x
     "@openmrs/esm-state": 5.x
     single-spa: 5.x
-  checksum: 10/52e5c8c53d3952e7315bc67ae3499500a4f760fcda93c45ad9bf328792bd56f29770c87066fb651e4479d48487e22cc8df07f0bdc344272e67ffc7203b368973
+  checksum: 10/b2d4318cc29e18df21002b7975a94eb88a922a9a32b4fcab2ff71a15b60171bb733c3e215146422a836c9e33ef678778c4658e654f799b007a9191f076fe4718
   languageName: node
   linkType: hard
 
-"@openmrs/esm-context@npm:5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "@openmrs/esm-context@npm:5.6.1-pre.2075"
+"@openmrs/esm-context@npm:5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "@openmrs/esm-context@npm:5.7.1-pre.2076"
   dependencies:
     immer: "npm:^10.0.4"
   peerDependencies:
     "@openmrs/esm-globals": 5.x
     "@openmrs/esm-state": 5.x
-  checksum: 10/cfc6614a77128833edc18bbbd98ff70521a5d5848ad52bbdffd28196e8ac020d313d614fef7ea4531cd5f4972eed3ebfea36c70a174db665ab64410dfdbfc78c
+  checksum: 10/c23e027a04b0e7702df40dc8da7c58e4ddb2911109d6c59f4673e37829321e3e9936cb7d730e09d2a56b36402c921556c153a8ef946a46c0507c1c1621edad36
   languageName: node
   linkType: hard
 
-"@openmrs/esm-dynamic-loading@npm:5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "@openmrs/esm-dynamic-loading@npm:5.6.1-pre.2075"
+"@openmrs/esm-dynamic-loading@npm:5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "@openmrs/esm-dynamic-loading@npm:5.7.1-pre.2076"
   peerDependencies:
     "@openmrs/esm-globals": 5.x
     "@openmrs/esm-translations": 5.x
-  checksum: 10/0089d5e93f41bcef4bb3d090b7b771cc2ca81f0d0e02d0b32343da397e21d1eb1608512b4e9ec184c5a2c5c1cfdc9614269100bd5474a8c3602bbb86cd8432c9
+  checksum: 10/7888f10c61b54f94d7f79ca2ec2d62c79da7d26ae1f8f72931684ad92ec7199d91513a88a3843aa26f466a859b9269e9616f462a7315dc33008d1f69b6ac2f90
   languageName: node
   linkType: hard
 
-"@openmrs/esm-error-handling@npm:5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "@openmrs/esm-error-handling@npm:5.6.1-pre.2075"
+"@openmrs/esm-error-handling@npm:5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "@openmrs/esm-error-handling@npm:5.7.1-pre.2076"
   peerDependencies:
     "@openmrs/esm-globals": 5.x
-  checksum: 10/4d923f851216b0feb64ea7433d9022e829c3953e7d64c2e67de44c1627a7cbbbcd0803227a53100faa28fcc7a7e03603d0ebf187a04d14c729c89f05a7812b57
+  checksum: 10/64ef869e256049a2d8b8017677607d78228c6eb5207d207c0bc1453e5e6194bec169b9b3ebcf2723accdea02dd0cae52900086a7ee1dacb6c6eab387638b3590
   languageName: node
   linkType: hard
 
-"@openmrs/esm-extensions@npm:5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "@openmrs/esm-extensions@npm:5.6.1-pre.2075"
+"@openmrs/esm-extensions@npm:5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "@openmrs/esm-extensions@npm:5.7.1-pre.2076"
   dependencies:
     lodash-es: "npm:^4.17.21"
   peerDependencies:
@@ -3284,43 +3234,43 @@ __metadata:
     "@openmrs/esm-state": 5.x
     "@openmrs/esm-utils": 5.x
     single-spa: 5.x
-  checksum: 10/91930e0deb61d500add87a37efc7b3972ddeb3d2c584cd160a855187b6a98f6a34f9210133ac7bf0cdb6d87d05f6ec6ab46de544c650f923df1bb6014549c15c
+  checksum: 10/342535786d089b58969729b2df0d98ce590d3aef5c5809d73df1c0af1b49973fbad83c46d52224a6e42a61d8e240e1fe545fb9640c126285c9069258cb76c9af
   languageName: node
   linkType: hard
 
-"@openmrs/esm-feature-flags@npm:5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "@openmrs/esm-feature-flags@npm:5.6.1-pre.2075"
+"@openmrs/esm-feature-flags@npm:5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "@openmrs/esm-feature-flags@npm:5.7.1-pre.2076"
   dependencies:
     ramda: "npm:^0.26.1"
   peerDependencies:
     "@openmrs/esm-globals": 5.x
     "@openmrs/esm-state": 5.x
     single-spa: 5.x
-  checksum: 10/a8fa715cc9d8fb70b5ada2b24b51b5c29771246435dce879a8b0f7ceae13cf1f35ab7b3db8d779fd86b94944d80e054d312b8bf37cd3ac42f3e222c9f95d108a
-  languageName: node
-  linkType: hard
-
-"@openmrs/esm-framework@npm:5.6.1-pre.2075, @openmrs/esm-framework@npm:^5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "@openmrs/esm-framework@npm:5.6.1-pre.2075"
-  dependencies:
-    "@openmrs/esm-api": "npm:5.6.1-pre.2075"
-    "@openmrs/esm-config": "npm:5.6.1-pre.2075"
-    "@openmrs/esm-context": "npm:5.6.1-pre.2075"
-    "@openmrs/esm-dynamic-loading": "npm:5.6.1-pre.2075"
-    "@openmrs/esm-error-handling": "npm:5.6.1-pre.2075"
-    "@openmrs/esm-extensions": "npm:5.6.1-pre.2075"
-    "@openmrs/esm-feature-flags": "npm:5.6.1-pre.2075"
-    "@openmrs/esm-globals": "npm:5.6.1-pre.2075"
-    "@openmrs/esm-navigation": "npm:5.6.1-pre.2075"
-    "@openmrs/esm-offline": "npm:5.6.1-pre.2075"
-    "@openmrs/esm-react-utils": "npm:5.6.1-pre.2075"
-    "@openmrs/esm-routes": "npm:5.6.1-pre.2075"
-    "@openmrs/esm-state": "npm:5.6.1-pre.2075"
-    "@openmrs/esm-styleguide": "npm:5.6.1-pre.2075"
-    "@openmrs/esm-translations": "npm:5.6.1-pre.2075"
-    "@openmrs/esm-utils": "npm:5.6.1-pre.2075"
+  checksum: 10/bc433f537235051288a70282aeb431d4269e7aff1115bd997212a1f8be4a7db464caa617659e1d962faec588de38f22a8dbd87d3ece66c4de7c537fee7dfa1bf
+  languageName: node
+  linkType: hard
+
+"@openmrs/esm-framework@npm:5.7.1-pre.2076, @openmrs/esm-framework@npm:^5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "@openmrs/esm-framework@npm:5.7.1-pre.2076"
+  dependencies:
+    "@openmrs/esm-api": "npm:5.7.1-pre.2076"
+    "@openmrs/esm-config": "npm:5.7.1-pre.2076"
+    "@openmrs/esm-context": "npm:5.7.1-pre.2076"
+    "@openmrs/esm-dynamic-loading": "npm:5.7.1-pre.2076"
+    "@openmrs/esm-error-handling": "npm:5.7.1-pre.2076"
+    "@openmrs/esm-extensions": "npm:5.7.1-pre.2076"
+    "@openmrs/esm-feature-flags": "npm:5.7.1-pre.2076"
+    "@openmrs/esm-globals": "npm:5.7.1-pre.2076"
+    "@openmrs/esm-navigation": "npm:5.7.1-pre.2076"
+    "@openmrs/esm-offline": "npm:5.7.1-pre.2076"
+    "@openmrs/esm-react-utils": "npm:5.7.1-pre.2076"
+    "@openmrs/esm-routes": "npm:5.7.1-pre.2076"
+    "@openmrs/esm-state": "npm:5.7.1-pre.2076"
+    "@openmrs/esm-styleguide": "npm:5.7.1-pre.2076"
+    "@openmrs/esm-translations": "npm:5.7.1-pre.2076"
+    "@openmrs/esm-utils": "npm:5.7.1-pre.2076"
     dayjs: "npm:^1.10.7"
   peerDependencies:
     dayjs: 1.x
@@ -3331,35 +3281,35 @@ __metadata:
     rxjs: 6.x
     single-spa: 5.x
     swr: 2.x
-  checksum: 10/3cc8bc27e3f3a4d20cc6d25ab9902aa4ff780bfc5ad4e76e24448470b61e77434ae312d83d0fbf20f04dc89032f7e83efecc6bfb30f17beabf1929ec60e32766
+  checksum: 10/24968534fc5de2b78e1bdf95fd030d0326dd008cc3192130f620df95c17796001fa60f87befedf29d17c8221f08b26eee142d94e0feb76124c0d030b2b69a9ee
   languageName: node
   linkType: hard
 
-"@openmrs/esm-globals@npm:5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "@openmrs/esm-globals@npm:5.6.1-pre.2075"
+"@openmrs/esm-globals@npm:5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "@openmrs/esm-globals@npm:5.7.1-pre.2076"
   dependencies:
     "@types/fhir": "npm:0.0.31"
   peerDependencies:
     single-spa: 5.x
-  checksum: 10/d33fdd6b15a936faf8e300bba73d8a1875d317aa9da04a006d967041debcdecacb0222b148667ca0f22d6f4b58ea038134d56c0d3f9a4b7a48428ba805fcc161
+  checksum: 10/b8b9647657cf70e9a7a55a9897809cec0cdc4a15a947a9920db042fe503cacd502ec80ce5da37b890eb75149f6f86d1c7bd7df964d0fbd293ff5d0f9ad6996f0
   languageName: node
   linkType: hard
 
-"@openmrs/esm-navigation@npm:5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "@openmrs/esm-navigation@npm:5.6.1-pre.2075"
+"@openmrs/esm-navigation@npm:5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "@openmrs/esm-navigation@npm:5.7.1-pre.2076"
   dependencies:
     path-to-regexp: "npm:6.1.0"
   peerDependencies:
     "@openmrs/esm-state": 5.x
-  checksum: 10/e6a0a1bfa3a6b39fee8d4cc55b619258de5f7980ea5387d1c3edae2cfbd3da736d4b09e7542bc71ac512c1484e9d3e80f1a2bfbff9ae010b8ebe1e6044da2297
+  checksum: 10/5de2e623bd037cabaaf3d562b6e9b1a0d3710db005dce7c3828ebc98d054a745ea7c43242a92c6c86b847cb8be672b792c50e7a1da0a27cf9630741253c7ac63
   languageName: node
   linkType: hard
 
-"@openmrs/esm-offline@npm:5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "@openmrs/esm-offline@npm:5.6.1-pre.2075"
+"@openmrs/esm-offline@npm:5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "@openmrs/esm-offline@npm:5.7.1-pre.2076"
   dependencies:
     dexie: "npm:^3.0.3"
     lodash-es: "npm:^4.17.21"
@@ -3370,13 +3320,13 @@ __metadata:
     "@openmrs/esm-globals": 5.x
     "@openmrs/esm-state": 5.x
     rxjs: 6.x
-  checksum: 10/1405afd32f74c3918fbaba06c6af34920e2c5f5cbcedf00b291909fb40821f5e1591ea5b6b105540b4f7eccc818c8d16ecc8aed98928e2501f67005ee341d023
+  checksum: 10/636fa1297dbc759c9cabc178edbbf5ddb86ba57d11f8ea52036ec91e1856e177da3c6d2d61a5d7959a4e19b03e038bdc6ec03c3942061b89f1a35b193d6ee12f
   languageName: node
   linkType: hard
 
 "@openmrs/esm-patient-common-lib@npm:next":
-  version: 8.0.2-pre.4789
-  resolution: "@openmrs/esm-patient-common-lib@npm:8.0.2-pre.4789"
+  version: 8.1.1-pre.5040
+  resolution: "@openmrs/esm-patient-common-lib@npm:8.1.1-pre.5040"
   dependencies:
     "@carbon/react": "npm:^1.12.0"
     lodash-es: "npm:^4.17.21"
@@ -3385,13 +3335,13 @@ __metadata:
     "@openmrs/esm-framework": 5.x
     react: 18.x
     single-spa: 6.x
-  checksum: 10/2335f25e6a849af927abd41757cd5dddc812ffabe8d780a88812cca5ebb7af7a53891c4db5e2a2cb222b0be8f0d9cb1f76da5daeb1bc0fd91a9299fb0957f41f
+  checksum: 10/421277f73bca02e9596ac869ef7c91615266d77feab8ada38dbae28e5d80b017756ea3a9172d1cf6a9fd62b70fc6773f427ffe79fab80f64e5d2634f6d9207aa
   languageName: node
   linkType: hard
 
-"@openmrs/esm-react-utils@npm:5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "@openmrs/esm-react-utils@npm:5.6.1-pre.2075"
+"@openmrs/esm-react-utils@npm:5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "@openmrs/esm-react-utils@npm:5.7.1-pre.2076"
   dependencies:
     lodash-es: "npm:^4.17.21"
     single-spa-react: "npm:^6.0.0"
@@ -3412,34 +3362,34 @@ __metadata:
     react-i18next: 11.x
     rxjs: 6.x
     swr: 2.x
-  checksum: 10/38d53381efedccc3c470cc2938c99747a93befa431ecfbdece769ee109232b2a5e2ec24688db219cb7da0bb8c8fec506d140b8e470bbbb4c1da1bd1aeb10aa94
+  checksum: 10/a1bebe24bb919372821713afc5838c5717153b1f2ed59ef3e6fb7181c4a4716fa4b7b049ab74dcc5b10172066102de757a79610faf19a4f127ec6c4aa064bbf6
   languageName: node
   linkType: hard
 
-"@openmrs/esm-routes@npm:5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "@openmrs/esm-routes@npm:5.6.1-pre.2075"
+"@openmrs/esm-routes@npm:5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "@openmrs/esm-routes@npm:5.7.1-pre.2076"
   peerDependencies:
     "@openmrs/esm-globals": 5.x
     "@openmrs/esm-utils": 5.x
-  checksum: 10/0a078ce678987da5a8116157bfebe4edbaaca5dd56a31e837bc605b109e71355aa56a8a5c0886a3cd2aa69f1843ddc6ab5b06cd0b9b280ca5204fdcf59836eb5
+  checksum: 10/60b11aaaf429c01c17662c3b4bd1f778d65efe6e2c959099eec623946fbe524a97f89203fa89ecc1b1947278e6cf7b2382dbf3805788285db4c37c2ae3d1685e
   languageName: node
   linkType: hard
 
-"@openmrs/esm-state@npm:5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "@openmrs/esm-state@npm:5.6.1-pre.2075"
+"@openmrs/esm-state@npm:5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "@openmrs/esm-state@npm:5.7.1-pre.2076"
   dependencies:
     zustand: "npm:^4.3.6"
   peerDependencies:
     "@openmrs/esm-globals": 5.x
-  checksum: 10/a0e3acf6f882379b68a50e87c92e314df12af98221ba664b0a479c2286151a1331fc6edabd318114e6183796c002e5aeb85e3ceafeb396f96dbbeca03c2d72b0
+  checksum: 10/d347f0fb9941187475d5bd0513583bf6dcfbc3630739c6d9c86ce06eb26751afb4e42960c334aa3adc7c7e7902523f3e7505f3ace67686bc6446b596a69e620c
   languageName: node
   linkType: hard
 
-"@openmrs/esm-styleguide@npm:5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "@openmrs/esm-styleguide@npm:5.6.1-pre.2075"
+"@openmrs/esm-styleguide@npm:5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "@openmrs/esm-styleguide@npm:5.7.1-pre.2076"
   dependencies:
     "@carbon/charts": "npm:^1.12.0"
     "@carbon/react": "npm:~1.37.0"
@@ -3462,24 +3412,24 @@ __metadata:
     react: 18.x
     react-dom: 18.x
     rxjs: 6.x
-  checksum: 10/67989d4a57be2b6067af7b620b61dd893ade2209567a1a017345aa2d93c37721d7ce2af69d7e8963f54ffbbf232573a28c47c527f70a2fdf37e6559c540442c0
+  checksum: 10/9d0443d839a41b042b2c622e95d37df755a723d7502c99727614461632e8b29628f395c6f54c88ef32418196789cff25b7645cd2e56f322d48c34ff080e059c6
   languageName: node
   linkType: hard
 
-"@openmrs/esm-translations@npm:5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "@openmrs/esm-translations@npm:5.6.1-pre.2075"
+"@openmrs/esm-translations@npm:5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "@openmrs/esm-translations@npm:5.7.1-pre.2076"
   dependencies:
     i18next: "npm:21.10.0"
   peerDependencies:
     i18next: 21.x
-  checksum: 10/db59205a893a3fdaa68c5b50d0af648ae1fb6b449cd4c98c9793b869aef5046cab58a5a694a3ef108d8675d29afb41975b0bcaa42f5478ad016ee5dd31251f87
+  checksum: 10/15be469bdbaf52a53d4101cc1eacffe9a51eafa309d80000a99025ef1173fb20a1ef1b25249f0513e2f47792fd86e1d887f34d7dc735a0597e88b082d3d6db0c
   languageName: node
   linkType: hard
 
-"@openmrs/esm-utils@npm:5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "@openmrs/esm-utils@npm:5.6.1-pre.2075"
+"@openmrs/esm-utils@npm:5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "@openmrs/esm-utils@npm:5.7.1-pre.2076"
   dependencies:
     "@internationalized/date": "npm:^3.5.4"
     semver: "npm:7.3.2"
@@ -3488,41 +3438,41 @@ __metadata:
     dayjs: 1.x
     i18next: 21.x
     rxjs: 6.x
-  checksum: 10/8f9de8fd2a223e6903346f3b009e4a48b509bbf16243e4deeddc977543bed97029ad7f7391dd0abd4735a4091f3b7f9694c145b134ff57a147820ea752c32503
+  checksum: 10/fd51a5610518c0f7a384e51492d1e2f0667ed7459e26805c4f928caa7e5b4fcac98bea38c48c4352f66e3a863f2a71114bfdbda2958e67f57297a174f3f01a1f
   languageName: node
   linkType: hard
 
-"@openmrs/openmrs-form-engine-lib@npm:2.0.0-pre.1029":
-  version: 2.0.0-pre.1029
-  resolution: "@openmrs/openmrs-form-engine-lib@npm:2.0.0-pre.1029"
+"@openmrs/openmrs-form-engine-lib@npm:2.0.0-pre.1260":
+  version: 2.0.0-pre.1260
+  resolution: "@openmrs/openmrs-form-engine-lib@npm:2.0.0-pre.1260"
   dependencies:
-    ace-builds: "npm:^1.4.12"
+    "@carbon/react": "npm:>1.47.0 <1.50.0"
+    ace-builds: "npm:^1.33.2"
     classnames: "npm:^2.5.1"
     dayjs: "npm:1.x"
-    formik: "npm:^2.2.6"
-    lodash-es: "npm:^4.17.15"
-    react-error-boundary: "npm:^4.0.11"
-    react-markdown: "npm:^7.1.0"
+    formik: "npm:^2.4.6"
+    lodash-es: "npm:^4.17.21"
+    react-error-boundary: "npm:^4.0.13"
+    react-markdown: "npm:^7.1.2"
     react-waypoint: "npm:^10.3.0"
-    react-webcam: "npm:^7.1.1"
-    yup: "npm:^0.29.1"
+    react-webcam: "npm:^7.2.0"
+    yup: "npm:^1.4.0"
   peerDependencies:
-    "@carbon/react": 1.x
     "@openmrs/esm-framework": 5.x
-    "@openmrs/esm-patient-common-lib": 7.x
+    "@openmrs/esm-patient-common-lib": 8.x
     dayjs: 1.x
     i18next: 23.x
     react: 18.x
     react-i18next: 11.x
     rxjs: 6.x
     swr: 2.x
-  checksum: 10/92afa09ba4240fe3b695b23ff637ed22c4936cd7ca672f2eb07ed84d3b3aaff1e0063d54b7b82e9b80d032eac9d40cdaa8742ed0f1038989d8f440ed05978502
+  checksum: 10/3266f4c4df6254f46017808dc5fec6071c8ab3a7476147285d182cee1679156f037ef058cdea18f55fce1175007c4dbd6997742eaa695419dd555d6d1efa077e
   languageName: node
   linkType: hard
 
-"@openmrs/webpack-config@npm:5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "@openmrs/webpack-config@npm:5.6.1-pre.2075"
+"@openmrs/webpack-config@npm:5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "@openmrs/webpack-config@npm:5.7.1-pre.2076"
   dependencies:
     "@swc/core": "npm:^1.3.58"
     clean-webpack-plugin: "npm:^4.0.0"
@@ -3539,7 +3489,7 @@ __metadata:
     webpack-stats-plugin: "npm:^1.0.3"
   peerDependencies:
     webpack: 5.x
-  checksum: 10/2eb72b1a19573404bbcf89ab1ab5e95c74793193b4a815634acca0ba0da39fcfd628d944c305621e2e612836dd160d051346a418fb4e65c4420bd228edfd0da8
+  checksum: 10/31f02e07f104d1323515ade178d02bbf97569366d70ba8c28024bc0cd5fcd6629693bf42c651420ff7f4f3ce5e6f5aec03cc17d9bfec66b6d6c878702b74325a
   languageName: node
   linkType: hard
 
@@ -5107,10 +5057,10 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@remix-run/router@npm:1.17.0":
-  version: 1.17.0
-  resolution: "@remix-run/router@npm:1.17.0"
-  checksum: 10/bffc96ebe5c5658c2ea0585f7b2b7fd4760366ad63cdc05062f84ea84ba0f88dd70e75d802ed938f08b17be5348a8add8e4eef30e1d6422ea27a0ecb02cda66e
+"@remix-run/router@npm:1.18.0":
+  version: 1.18.0
+  resolution: "@remix-run/router@npm:1.18.0"
+  checksum: 10/f878cf246b94368f431a51363f1d33dc35ad11cb910d930476d988825b024a152de87a7f74f0891c3e7182228f892c7f64f94409aae27084c320338dee82caa1
   languageName: node
   linkType: hard
 
@@ -5234,83 +5184,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@storybook/channels@npm:7.6.20":
-  version: 7.6.20
-  resolution: "@storybook/channels@npm:7.6.20"
-  dependencies:
-    "@storybook/client-logger": "npm:7.6.20"
-    "@storybook/core-events": "npm:7.6.20"
-    "@storybook/global": "npm:^5.0.0"
-    qs: "npm:^6.10.0"
-    telejson: "npm:^7.2.0"
-    tiny-invariant: "npm:^1.3.1"
-  checksum: 10/3dc827df9d0d0c0c68f10edbf5169e42c2cdb43832cb14ce3ac8149f295219f8bae6ed27300fd50e6a78080914cf142d1810fdbcf687dd313a7bfac41386cd95
-  languageName: node
-  linkType: hard
-
-"@storybook/client-logger@npm:7.6.20":
-  version: 7.6.20
-  resolution: "@storybook/client-logger@npm:7.6.20"
-  dependencies:
-    "@storybook/global": "npm:^5.0.0"
-  checksum: 10/0062c440c825ab460667d799b00d3ff87dcf4dabce05733c11ffbb1ea70e0a2e77fdc313ce9bdeccc4ac816101abe17572b96cc20c975874812f875828653704
-  languageName: node
-  linkType: hard
-
-"@storybook/core-events@npm:7.6.20":
-  version: 7.6.20
-  resolution: "@storybook/core-events@npm:7.6.20"
-  dependencies:
-    ts-dedent: "npm:^2.0.0"
-  checksum: 10/bd72649a262017f244aa6311352c1b38f2b38478c19b9aee4851bfdff5b2b11565dd768fe144f1304f9f130b533ffa4ab3fd2eea1361d202a76ff920cc377601
-  languageName: node
-  linkType: hard
-
-"@storybook/csf-tools@npm:^7.6.7":
-  version: 7.6.20
-  resolution: "@storybook/csf-tools@npm:7.6.20"
-  dependencies:
-    "@babel/generator": "npm:^7.23.0"
-    "@babel/parser": "npm:^7.23.0"
-    "@babel/traverse": "npm:^7.23.2"
-    "@babel/types": "npm:^7.23.0"
-    "@storybook/csf": "npm:^0.1.2"
-    "@storybook/types": "npm:7.6.20"
-    fs-extra: "npm:^11.1.0"
-    recast: "npm:^0.23.1"
-    ts-dedent: "npm:^2.0.0"
-  checksum: 10/f0ca4a7e7309548bf647fbbc175bccb56fe4df210e3e52f96a5cc553bc06253c8fd7fcceb00ee7192e09fd073fd67fdaacab0ba81c56d440116114355b5f0935
-  languageName: node
-  linkType: hard
-
-"@storybook/csf@npm:^0.1.2":
-  version: 0.1.9
-  resolution: "@storybook/csf@npm:0.1.9"
-  dependencies:
-    type-fest: "npm:^2.19.0"
-  checksum: 10/9a5119361a1156d30482988abe95098b8e6ef3de34bd7ed514a4a6738f77edde6eec66c3c04568a9bf9473aac549120a1dba064aeb44cb0cb9fed1ba63cc9038
-  languageName: node
-  linkType: hard
-
-"@storybook/global@npm:^5.0.0":
-  version: 5.0.0
-  resolution: "@storybook/global@npm:5.0.0"
-  checksum: 10/0e7b495f4fe7f36447e793926f1c0460ec07fd66f0da68e3150da5878f6043c9eeb9b41614a45c5ec0d48d5d383c59ca8f88b6dc7882a2a784ac9b20375d8edb
-  languageName: node
-  linkType: hard
-
-"@storybook/types@npm:7.6.20":
-  version: 7.6.20
-  resolution: "@storybook/types@npm:7.6.20"
-  dependencies:
-    "@storybook/channels": "npm:7.6.20"
-    "@types/babel__core": "npm:^7.0.0"
-    "@types/express": "npm:^4.7.0"
-    file-system-cache: "npm:2.3.0"
-  checksum: 10/8da9513f1f34f606b114026af5fad5a7658ce5e2fa7af3363d9f3d481e5e22ed9ae6343f28aa9d14208bff07f489cb7f5ae3adcad5a603f8181e952b2ee29f3f
-  languageName: node
-  linkType: hard
-
 "@surma/rollup-plugin-off-main-thread@npm:^2.2.3":
   version: 2.2.3
   resolution: "@surma/rollup-plugin-off-main-thread@npm:2.2.3"
@@ -5323,90 +5196,90 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@swc/core-darwin-arm64@npm:1.6.5":
-  version: 1.6.5
-  resolution: "@swc/core-darwin-arm64@npm:1.6.5"
+"@swc/core-darwin-arm64@npm:1.7.0":
+  version: 1.7.0
+  resolution: "@swc/core-darwin-arm64@npm:1.7.0"
   conditions: os=darwin & cpu=arm64
   languageName: node
   linkType: hard
 
-"@swc/core-darwin-x64@npm:1.6.5":
-  version: 1.6.5
-  resolution: "@swc/core-darwin-x64@npm:1.6.5"
+"@swc/core-darwin-x64@npm:1.7.0":
+  version: 1.7.0
+  resolution: "@swc/core-darwin-x64@npm:1.7.0"
   conditions: os=darwin & cpu=x64
   languageName: node
   linkType: hard
 
-"@swc/core-linux-arm-gnueabihf@npm:1.6.5":
-  version: 1.6.5
-  resolution: "@swc/core-linux-arm-gnueabihf@npm:1.6.5"
+"@swc/core-linux-arm-gnueabihf@npm:1.7.0":
+  version: 1.7.0
+  resolution: "@swc/core-linux-arm-gnueabihf@npm:1.7.0"
   conditions: os=linux & cpu=arm
   languageName: node
   linkType: hard
 
-"@swc/core-linux-arm64-gnu@npm:1.6.5":
-  version: 1.6.5
-  resolution: "@swc/core-linux-arm64-gnu@npm:1.6.5"
+"@swc/core-linux-arm64-gnu@npm:1.7.0":
+  version: 1.7.0
+  resolution: "@swc/core-linux-arm64-gnu@npm:1.7.0"
   conditions: os=linux & cpu=arm64 & libc=glibc
   languageName: node
   linkType: hard
 
-"@swc/core-linux-arm64-musl@npm:1.6.5":
-  version: 1.6.5
-  resolution: "@swc/core-linux-arm64-musl@npm:1.6.5"
+"@swc/core-linux-arm64-musl@npm:1.7.0":
+  version: 1.7.0
+  resolution: "@swc/core-linux-arm64-musl@npm:1.7.0"
   conditions: os=linux & cpu=arm64 & libc=musl
   languageName: node
   linkType: hard
 
-"@swc/core-linux-x64-gnu@npm:1.6.5":
-  version: 1.6.5
-  resolution: "@swc/core-linux-x64-gnu@npm:1.6.5"
+"@swc/core-linux-x64-gnu@npm:1.7.0":
+  version: 1.7.0
+  resolution: "@swc/core-linux-x64-gnu@npm:1.7.0"
   conditions: os=linux & cpu=x64 & libc=glibc
   languageName: node
   linkType: hard
 
-"@swc/core-linux-x64-musl@npm:1.6.5":
-  version: 1.6.5
-  resolution: "@swc/core-linux-x64-musl@npm:1.6.5"
+"@swc/core-linux-x64-musl@npm:1.7.0":
+  version: 1.7.0
+  resolution: "@swc/core-linux-x64-musl@npm:1.7.0"
   conditions: os=linux & cpu=x64 & libc=musl
   languageName: node
   linkType: hard
 
-"@swc/core-win32-arm64-msvc@npm:1.6.5":
-  version: 1.6.5
-  resolution: "@swc/core-win32-arm64-msvc@npm:1.6.5"
+"@swc/core-win32-arm64-msvc@npm:1.7.0":
+  version: 1.7.0
+  resolution: "@swc/core-win32-arm64-msvc@npm:1.7.0"
   conditions: os=win32 & cpu=arm64
   languageName: node
   linkType: hard
 
-"@swc/core-win32-ia32-msvc@npm:1.6.5":
-  version: 1.6.5
-  resolution: "@swc/core-win32-ia32-msvc@npm:1.6.5"
+"@swc/core-win32-ia32-msvc@npm:1.7.0":
+  version: 1.7.0
+  resolution: "@swc/core-win32-ia32-msvc@npm:1.7.0"
   conditions: os=win32 & cpu=ia32
   languageName: node
   linkType: hard
 
-"@swc/core-win32-x64-msvc@npm:1.6.5":
-  version: 1.6.5
-  resolution: "@swc/core-win32-x64-msvc@npm:1.6.5"
+"@swc/core-win32-x64-msvc@npm:1.7.0":
+  version: 1.7.0
+  resolution: "@swc/core-win32-x64-msvc@npm:1.7.0"
   conditions: os=win32 & cpu=x64
   languageName: node
   linkType: hard
 
 "@swc/core@npm:^1.2.165, @swc/core@npm:^1.3.58":
-  version: 1.6.5
-  resolution: "@swc/core@npm:1.6.5"
-  dependencies:
-    "@swc/core-darwin-arm64": "npm:1.6.5"
-    "@swc/core-darwin-x64": "npm:1.6.5"
-    "@swc/core-linux-arm-gnueabihf": "npm:1.6.5"
-    "@swc/core-linux-arm64-gnu": "npm:1.6.5"
-    "@swc/core-linux-arm64-musl": "npm:1.6.5"
-    "@swc/core-linux-x64-gnu": "npm:1.6.5"
-    "@swc/core-linux-x64-musl": "npm:1.6.5"
-    "@swc/core-win32-arm64-msvc": "npm:1.6.5"
-    "@swc/core-win32-ia32-msvc": "npm:1.6.5"
-    "@swc/core-win32-x64-msvc": "npm:1.6.5"
+  version: 1.7.0
+  resolution: "@swc/core@npm:1.7.0"
+  dependencies:
+    "@swc/core-darwin-arm64": "npm:1.7.0"
+    "@swc/core-darwin-x64": "npm:1.7.0"
+    "@swc/core-linux-arm-gnueabihf": "npm:1.7.0"
+    "@swc/core-linux-arm64-gnu": "npm:1.7.0"
+    "@swc/core-linux-arm64-musl": "npm:1.7.0"
+    "@swc/core-linux-x64-gnu": "npm:1.7.0"
+    "@swc/core-linux-x64-musl": "npm:1.7.0"
+    "@swc/core-win32-arm64-msvc": "npm:1.7.0"
+    "@swc/core-win32-ia32-msvc": "npm:1.7.0"
+    "@swc/core-win32-x64-msvc": "npm:1.7.0"
     "@swc/counter": "npm:^0.1.3"
     "@swc/types": "npm:^0.1.9"
   peerDependencies:
@@ -5435,7 +5308,7 @@ __metadata:
   peerDependenciesMeta:
     "@swc/helpers":
       optional: true
-  checksum: 10/874b7d5f790e67b82546967fec5f380539b81fe10725f97772f8260776ee800448ef3e6f0c7c6eb1d1094ebe65b8531f982e407ef918de7220977b04d094d605
+  checksum: 10/01a64b708c066e0fdc7f1dedebde25c273da51758bdb29ecdec1a7e57456f58d6216dfff43a05c7fa917a88d939327f9ae248bc3480ab18bcf4bad8e0bedba42
   languageName: node
   linkType: hard
 
@@ -5447,11 +5320,11 @@ __metadata:
   linkType: hard
 
 "@swc/helpers@npm:^0.5.0":
-  version: 0.5.11
-  resolution: "@swc/helpers@npm:0.5.11"
+  version: 0.5.12
+  resolution: "@swc/helpers@npm:0.5.12"
   dependencies:
     tslib: "npm:^2.4.0"
-  checksum: 10/54d66ade8010e6ba526a9d73b8bcdbb01c806a24f2d3786640ef3081065e8fba398d9b890df4847744c33d086412fd9a6570b5e99e8001ea1462efc5ce0f3847
+  checksum: 10/f04a4728c38a6e75a85b077408e175e1abbc1650a76e4b78008d6380ca1422d9f7f4f9fe61b42f8fb889140f05ced6a5a9983037a8d5d8086bf6bc80a0b2118b
   languageName: node
   linkType: hard
 
@@ -5594,7 +5467,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@types/babel__core@npm:^7.0.0, @types/babel__core@npm:^7.1.14":
+"@types/babel__core@npm:^7.1.14":
   version: 7.20.5
   resolution: "@types/babel__core@npm:7.20.5"
   dependencies:
@@ -5728,7 +5601,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"@types/express@npm:*, @types/express@npm:^4.17.13, @types/express@npm:^4.7.0":
+"@types/express@npm:*, @types/express@npm:^4.17.13":
   version: 4.17.21
   resolution: "@types/express@npm:4.17.21"
   dependencies:
@@ -5878,9 +5751,9 @@ __metadata:
   linkType: hard
 
 "@types/lodash@npm:*":
-  version: 4.17.6
-  resolution: "@types/lodash@npm:4.17.6"
-  checksum: 10/6d3a68b3e795381f4aaf946855134d24eeb348ad5d66e9a44461d30026da82b215d55b92b70486d811ca45d54d4ab956aa2dced37fd04e19d49afe160ae3da2e
+  version: 4.17.7
+  resolution: "@types/lodash@npm:4.17.7"
+  checksum: 10/b8177f19cf962414a66989837481b13f546afc2e98e8d465bec59e6ac03a59c584eb7053ce511cde3a09c5f3096d22a5ae22cfb56b23f3b0da75b0743b6b1a44
   languageName: node
   linkType: hard
 
@@ -5938,11 +5811,11 @@ __metadata:
   linkType: hard
 
 "@types/node@npm:*":
-  version: 20.14.9
-  resolution: "@types/node@npm:20.14.9"
+  version: 20.14.11
+  resolution: "@types/node@npm:20.14.11"
   dependencies:
     undici-types: "npm:~5.26.4"
-  checksum: 10/f313b06c79be92f5d3541159ef813b9fc606941f951ecf826e940658c6d4952755ca2f06277b746326cef0697ed79a04676ecde053d32e1121b3352c8168d2e9
+  checksum: 10/344e1ce1ed16c86ed1c4209ab4d1de67db83dd6b694a6fabe295c47144dde2c58dabddae9f39a0a2bdd246e95f8d141ccfe848e464884b48b8918df4f7788025
   languageName: node
   linkType: hard
 
@@ -6140,11 +6013,11 @@ __metadata:
   linkType: hard
 
 "@types/ws@npm:^8.5.5":
-  version: 8.5.10
-  resolution: "@types/ws@npm:8.5.10"
+  version: 8.5.11
+  resolution: "@types/ws@npm:8.5.11"
   dependencies:
     "@types/node": "npm:*"
-  checksum: 10/9b414dc5e0b6c6f1ea4b1635b3568c58707357f68076df9e7cd33194747b7d1716d5189c0dbdd68c8d2521b148e88184cf881bac7429eb0e5c989b001539ed31
+  checksum: 10/950d13b762fc7c092a0fc1450c41229a1d41abb93cb72251068885bd46fa4bbcf461c00df2e77de3f7a547371998b650a720ed90417562af0772b14a8a009dec
   languageName: node
   linkType: hard
 
@@ -6530,10 +6403,10 @@ __metadata:
   languageName: node
   linkType: hard
 
-"ace-builds@npm:^1.4.12":
-  version: 1.35.1
-  resolution: "ace-builds@npm:1.35.1"
-  checksum: 10/4b3c09d56635ba7e43fd7c6cb06e94ae2a45bc70d63c6bd3024291eadbba0e3178976ba2551e2b72dcc60f0b751e19e1ddf47a2907e39777ac1769e26459f675
+"ace-builds@npm:^1.33.2":
+  version: 1.35.2
+  resolution: "ace-builds@npm:1.35.2"
+  checksum: 10/dca440312d85e85cf3e0cac5ee1ffad2d282b31fbcffbd5b6d72cfdd5037cdb85b43d41ef3e3557ab5d446009233c37a4b26b99f7b1cf1f043210d27a8abf571
   languageName: node
   linkType: hard
 
@@ -6575,11 +6448,11 @@ __metadata:
   linkType: hard
 
 "acorn@npm:^8.0.4, acorn@npm:^8.1.0, acorn@npm:^8.11.0, acorn@npm:^8.7.1, acorn@npm:^8.8.1, acorn@npm:^8.8.2, acorn@npm:^8.9.0":
-  version: 8.12.0
-  resolution: "acorn@npm:8.12.0"
+  version: 8.12.1
+  resolution: "acorn@npm:8.12.1"
   bin:
     acorn: bin/acorn
-  checksum: 10/550cc5033184eb98f7fbe2e9ddadd0f47f065734cc682f25db7a244f52314eb816801b64dec7174effd978045bd1754892731a90b1102b0ede9d17a15cfde138
+  checksum: 10/d08c2d122bba32d0861e0aa840b2ee25946c286d5dc5990abca991baf8cdbfbe199b05aacb221b979411a2fea36f83e26b5ac4f6b4e0ce49038c62316c1848f0
   languageName: node
   linkType: hard
 
@@ -6674,14 +6547,14 @@ __metadata:
   linkType: hard
 
 "ajv@npm:^8.0.0, ajv@npm:^8.6.0, ajv@npm:^8.9.0":
-  version: 8.16.0
-  resolution: "ajv@npm:8.16.0"
+  version: 8.17.1
+  resolution: "ajv@npm:8.17.1"
   dependencies:
     fast-deep-equal: "npm:^3.1.3"
+    fast-uri: "npm:^3.0.1"
     json-schema-traverse: "npm:^1.0.0"
     require-from-string: "npm:^2.0.2"
-    uri-js: "npm:^4.4.1"
-  checksum: 10/9b4b380efaf8be2639736d535662bd142a6972b43075b404380165c37ab6ceb72f01c7c987536747ff3e9e21eb5cd2e2a194f1e0fa8355364ea6204b1262fcd1
+  checksum: 10/ee3c62162c953e91986c838f004132b6a253d700f1e51253b99791e2dbfdb39161bc950ebdc2f156f8568035bb5ed8be7bd78289cd9ecbf3381fe8f5b82e3f33
   languageName: node
   linkType: hard
 
@@ -6896,15 +6769,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"ast-types@npm:^0.16.1":
-  version: 0.16.1
-  resolution: "ast-types@npm:0.16.1"
-  dependencies:
-    tslib: "npm:^2.0.1"
-  checksum: 10/f569b475eb1c8cb93888cb6e7b7e36dc43fa19a77e4eb132cbff6e3eb1598ca60f850db6e60b070e5a0ee8c1559fca921dac0916e576f2f104e198793b0bdd8d
-  languageName: node
-  linkType: hard
-
 "async@npm:^3.2.3":
   version: 3.2.5
   resolution: "async@npm:3.2.5"
@@ -6971,17 +6835,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"axios@npm:^1.6.0":
-  version: 1.7.2
-  resolution: "axios@npm:1.7.2"
-  dependencies:
-    follow-redirects: "npm:^1.15.6"
-    form-data: "npm:^4.0.0"
-    proxy-from-env: "npm:^1.1.0"
-  checksum: 10/6ae80dda9736bb4762ce717f1a26ff997d94672d3a5799ad9941c24d4fb019c1dff45be8272f08d1975d7950bac281f3ba24aff5ecd49ef5a04d872ec428782f
-  languageName: node
-  linkType: hard
-
 "b4a@npm:^1.6.4":
   version: 1.6.6
   resolution: "b4a@npm:1.6.6"
@@ -7542,17 +7395,17 @@ __metadata:
   languageName: node
   linkType: hard
 
-"browserslist@npm:^4.0.0, browserslist@npm:^4.21.10, browserslist@npm:^4.21.4, browserslist@npm:^4.22.2, browserslist@npm:^4.23.0":
-  version: 4.23.1
-  resolution: "browserslist@npm:4.23.1"
+"browserslist@npm:^4.0.0, browserslist@npm:^4.21.10, browserslist@npm:^4.21.4, browserslist@npm:^4.23.0, browserslist@npm:^4.23.1":
+  version: 4.23.2
+  resolution: "browserslist@npm:4.23.2"
   dependencies:
-    caniuse-lite: "npm:^1.0.30001629"
-    electron-to-chromium: "npm:^1.4.796"
+    caniuse-lite: "npm:^1.0.30001640"
+    electron-to-chromium: "npm:^1.4.820"
     node-releases: "npm:^2.0.14"
-    update-browserslist-db: "npm:^1.0.16"
+    update-browserslist-db: "npm:^1.1.0"
   bin:
     browserslist: cli.js
-  checksum: 10/91da59f70a8e01ece97133670f9857d6d7e96be78e1b7ffa54b869f97d01d01c237612471b595cee41c1ab212e26e536ce0b6716ad1d6c4368a40c222698cac1
+  checksum: 10/326a98b1c39bcc9a99b197f15790dc28e122b1aead3257c837421899377ac96239123f26868698085b3d9be916d72540602738e1f857e86a387e810af3fda6e5
   languageName: node
   linkType: hard
 
@@ -7673,8 +7526,8 @@ __metadata:
   linkType: hard
 
 "cacache@npm:^18.0.0":
-  version: 18.0.3
-  resolution: "cacache@npm:18.0.3"
+  version: 18.0.4
+  resolution: "cacache@npm:18.0.4"
   dependencies:
     "@npmcli/fs": "npm:^3.1.0"
     fs-minipass: "npm:^3.0.0"
@@ -7688,7 +7541,7 @@ __metadata:
     ssri: "npm:^10.0.0"
     tar: "npm:^6.1.11"
     unique-filename: "npm:^3.0.0"
-  checksum: 10/d4c161f071524bb636334b8cf94780c014e29c180a886b8184da8f2f44d2aca88d5664797c661e9f74bdbd34697c2f231ed7c24c256cecbb0a0563ad1ada2219
+  checksum: 10/ca2f7b2d3003f84d362da9580b5561058ccaecd46cba661cbcff0375c90734b610520d46b472a339fd032d91597ad6ed12dde8af81571197f3c9772b5d35b104
   languageName: node
   linkType: hard
 
@@ -7748,10 +7601,10 @@ __metadata:
   languageName: node
   linkType: hard
 
-"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001599, caniuse-lite@npm:^1.0.30001629":
-  version: 1.0.30001638
-  resolution: "caniuse-lite@npm:1.0.30001638"
-  checksum: 10/f30c80a5a33e659c990909046d5299af1584441059785460b012d10a58f0885da25fde08ab655ed0cf76b2695d0b3a32c41875bb9b7a730b34f992ec2512d430
+"caniuse-lite@npm:^1.0.0, caniuse-lite@npm:^1.0.30001599, caniuse-lite@npm:^1.0.30001640":
+  version: 1.0.30001642
+  resolution: "caniuse-lite@npm:1.0.30001642"
+  checksum: 10/8d80ea82be453ae0fdfea8766d82740a4945c1b99189650f29bfc458d4e235d7e99027a8f8bc5a4228d8c4457ba896315284b0703f300353ad5f09d8e693de10
   languageName: node
   linkType: hard
 
@@ -7783,6 +7636,15 @@ __metadata:
   languageName: node
   linkType: hard
 
+"centra@npm:^2.7.0":
+  version: 2.7.0
+  resolution: "centra@npm:2.7.0"
+  dependencies:
+    follow-redirects: "npm:^1.15.6"
+  checksum: 10/59ec76d9ba7086b76e9594129b9843856fe7293400b89cb8b133f444a62ca5d4c536df0d4722374b0c16d86dd4e0baba1fc9722640b7d3b532865bebdec2b1a2
+  languageName: node
+  linkType: hard
+
 "cfb@npm:~1.2.1":
   version: 1.2.2
   resolution: "cfb@npm:1.2.2"
@@ -8223,13 +8085,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"commander@npm:^11.1.0":
-  version: 11.1.0
-  resolution: "commander@npm:11.1.0"
-  checksum: 10/66bd2d8a0547f6cb1d34022efb25f348e433b0e04ad76a65279b1b09da108f59a4d3001ca539c60a7a46ea38bcf399fc17d91adad76a8cf43845d8dcbaf5cda1
-  languageName: node
-  linkType: hard
-
 "commander@npm:^8.3.0":
   version: 8.3.0
   resolution: "commander@npm:8.3.0"
@@ -8441,7 +8296,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"core-js-compat@npm:^3.31.0, core-js-compat@npm:^3.36.1":
+"core-js-compat@npm:^3.36.1, core-js-compat@npm:^3.37.1":
   version: 3.37.1
   resolution: "core-js-compat@npm:3.37.1"
   dependencies:
@@ -9218,9 +9073,9 @@ __metadata:
   linkType: hard
 
 "dayjs@npm:1.x, dayjs@npm:^1.10.4, dayjs@npm:^1.10.7, dayjs@npm:^1.8.36":
-  version: 1.11.11
-  resolution: "dayjs@npm:1.11.11"
-  checksum: 10/f03948b172fbeed229837965988d1d5bac99c72a31c28731a457303259439f2f36289186489ae140adbeb10f591a926908c8de5d81eb449a2edbf5cbd6e9e30c
+  version: 1.11.12
+  resolution: "dayjs@npm:1.11.12"
+  checksum: 10/8ee7c1e14961fd08d40b788d0c0e930dc6288b3d32911bb911b2fb31bb703c262788164fbe678ee9e50e2a35268d667b8c8ba43fd1806771c1f404c300a2b428
   languageName: node
   linkType: hard
 
@@ -9594,16 +9449,9 @@ __metadata:
   linkType: hard
 
 "dompurify@npm:^2.2.0":
-  version: 2.5.5
-  resolution: "dompurify@npm:2.5.5"
-  checksum: 10/4429b9b22a0e67391c27b497b77d6417dd434b63e4d96de6470b6bc37faf2db8669a81aa05b012fbccb6c4ac694e7d8008204cf560b321cd23b97d79611cdc16
-  languageName: node
-  linkType: hard
-
-"dompurify@npm:^3.1.5":
-  version: 3.1.5
-  resolution: "dompurify@npm:3.1.5"
-  checksum: 10/4ea935df48b49a0a76c66b6eee8522ca12783f2643119482b8329867f1e8adb34ff1d2dd56973927be9de5f01079948556907f22e882b06fa7b0c0ba281bf14a
+  version: 2.5.6
+  resolution: "dompurify@npm:2.5.6"
+  checksum: 10/ef5fdc075ee448246b2b54bf8c7e2608dbaa176d9366137d2ff4e4ed4e580a2e913d5a58f1d3609f63d67871574e5fdcce534b185a1b1efdd8b931cd843b045a
   languageName: node
   linkType: hard
 
@@ -9646,7 +9494,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"dotenv@npm:^16.0.3, dotenv@npm:^16.3.1":
+"dotenv@npm:^16.0.3":
   version: 16.4.5
   resolution: "dotenv@npm:16.4.5"
   checksum: 10/55a3134601115194ae0f924e54473459ed0d9fc340ae610b676e248cca45aa7c680d86365318ea964e6da4e2ea80c4514c1adab5adb43d6867fb57ff068f95c8
@@ -9668,6 +9516,21 @@ __metadata:
   languageName: node
   linkType: hard
 
+"downshift@npm:8.3.1":
+  version: 8.3.1
+  resolution: "downshift@npm:8.3.1"
+  dependencies:
+    "@babel/runtime": "npm:^7.22.15"
+    compute-scroll-into-view: "npm:^3.0.3"
+    prop-types: "npm:^15.8.1"
+    react-is: "npm:^18.2.0"
+    tslib: "npm:^2.6.2"
+  peerDependencies:
+    react: ">=16.12.0"
+  checksum: 10/b616da957802bd80bc8d909d36bff851d9701e743d800be6443514f24deeaf0ce22ae56e6802c386c769328d8442969c6629c6f94d99ff12bea8d07e11c86cee
+  languageName: node
+  linkType: hard
+
 "downshift@npm:8.5.0":
   version: 8.5.0
   resolution: "downshift@npm:8.5.0"
@@ -9727,10 +9590,10 @@ __metadata:
   languageName: node
   linkType: hard
 
-"electron-to-chromium@npm:^1.4.796":
-  version: 1.4.814
-  resolution: "electron-to-chromium@npm:1.4.814"
-  checksum: 10/cd411bd8d79333daf8695f495b30e0092489a79f5307344e4ac75d48eca2b3fc488f4f4acac8e2651fd2fe8b857e52b0c2f87d352bbf426ce7670766b88b4a27
+"electron-to-chromium@npm:^1.4.820":
+  version: 1.4.829
+  resolution: "electron-to-chromium@npm:1.4.829"
+  checksum: 10/43279561337582ff47bb3486439efbc7c1f2192455c76ebc7374754fca61334380025af9e5da7646b4d8c007d9dc6c25d8f6059dffb2207dc39d2f79287a296a
   languageName: node
   linkType: hard
 
@@ -10061,11 +9924,11 @@ __metadata:
   linkType: hard
 
 "eslint-plugin-prettier@npm:^5.0.1":
-  version: 5.1.3
-  resolution: "eslint-plugin-prettier@npm:5.1.3"
+  version: 5.2.1
+  resolution: "eslint-plugin-prettier@npm:5.2.1"
   dependencies:
     prettier-linter-helpers: "npm:^1.0.0"
-    synckit: "npm:^0.8.6"
+    synckit: "npm:^0.9.1"
   peerDependencies:
     "@types/eslint": ">=8.0.0"
     eslint: ">=8.0.0"
@@ -10076,7 +9939,7 @@ __metadata:
       optional: true
     eslint-config-prettier:
       optional: true
-  checksum: 10/4f26a30444adc61ed692cdb5a9f7e8d9f5794f0917151051e66755ce032a08c3cc72c8b5d56101412e90f6d77035bd8194ea8731e9c16aacdd5ae345a8dae188
+  checksum: 10/10ddf68215237e327af09a47adab4c63f3885fda4fb28c4c42d1fc5f47d8a0cc45df6484799360ff1417a0aa3c77c3aaac49d7e9dfd145557b17e2d7ecc2a27c
   languageName: node
   linkType: hard
 
@@ -10175,7 +10038,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"esprima@npm:^4.0.0, esprima@npm:^4.0.1, esprima@npm:~4.0.0":
+"esprima@npm:^4.0.0, esprima@npm:^4.0.1":
   version: 4.0.1
   resolution: "esprima@npm:4.0.1"
   bin:
@@ -10186,11 +10049,11 @@ __metadata:
   linkType: hard
 
 "esquery@npm:^1.4.2":
-  version: 1.5.0
-  resolution: "esquery@npm:1.5.0"
+  version: 1.6.0
+  resolution: "esquery@npm:1.6.0"
   dependencies:
     estraverse: "npm:^5.1.0"
-  checksum: 10/e65fcdfc1e0ff5effbf50fb4f31ea20143ae5df92bb2e4953653d8d40aa4bc148e0d06117a592ce4ea53eeab1dafdfded7ea7e22a5be87e82d73757329a1b01d
+  checksum: 10/c587fb8ec9ed83f2b1bc97cf2f6854cc30bf784a79d62ba08c6e358bf22280d69aee12827521cf38e69ae9761d23fb7fde593ce315610f85655c139d99b05e5a
   languageName: node
   linkType: hard
 
@@ -10439,6 +10302,13 @@ __metadata:
   languageName: node
   linkType: hard
 
+"fast-uri@npm:^3.0.1":
+  version: 3.0.1
+  resolution: "fast-uri@npm:3.0.1"
+  checksum: 10/e8ee4712270de0d29eb0fbf41ffad0ac80952e8797be760e8bb62c4707f08f50a86fe2d7829681ca133c07d6eb4b4a75389a5fc36674c5b254a3ac0891a68fc7
+  languageName: node
+  linkType: hard
+
 "fastest-levenshtein@npm:^1.0.12":
   version: 1.0.16
   resolution: "fastest-levenshtein@npm:1.0.16"
@@ -10498,16 +10368,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"file-system-cache@npm:2.3.0":
-  version: 2.3.0
-  resolution: "file-system-cache@npm:2.3.0"
-  dependencies:
-    fs-extra: "npm:11.1.1"
-    ramda: "npm:0.29.0"
-  checksum: 10/8f0530aaa8bed115ef1b00f69accde8d1311d0eaffc6e37bb0b5057b8be79e6e960823025ea3c980a58147eed0ba690b9906c2229e132f5d96158e9b635a052c
-  languageName: node
-  linkType: hard
-
 "file-type@npm:^16.5.4":
   version: 16.5.4
   resolution: "file-type@npm:16.5.4"
@@ -10717,7 +10577,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"formik@npm:^2.1.5, formik@npm:^2.2.6, formik@npm:^2.4.6":
+"formik@npm:^2.1.5, formik@npm:^2.4.6":
   version: 2.4.6
   resolution: "formik@npm:2.4.6"
   dependencies:
@@ -10763,17 +10623,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"fs-extra@npm:11.1.1":
-  version: 11.1.1
-  resolution: "fs-extra@npm:11.1.1"
-  dependencies:
-    graceful-fs: "npm:^4.2.0"
-    jsonfile: "npm:^6.0.1"
-    universalify: "npm:^2.0.0"
-  checksum: 10/c4e9fabf9762a70d1403316b7faa899f3d3303c8afa765b891c2210fdeba368461e04ae1203920b64ef6a7d066a39ab8cef2160b5ce8d1011bb4368688cd9bb7
-  languageName: node
-  linkType: hard
-
 "fs-extra@npm:^10.0.0":
   version: 10.1.0
   resolution: "fs-extra@npm:10.1.0"
@@ -10785,17 +10634,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"fs-extra@npm:^11.1.0":
-  version: 11.2.0
-  resolution: "fs-extra@npm:11.2.0"
-  dependencies:
-    graceful-fs: "npm:^4.2.0"
-    jsonfile: "npm:^6.0.1"
-    universalify: "npm:^2.0.0"
-  checksum: 10/0579bf6726a4cd054d4aa308f10b483f52478bb16284f32cf60b4ce0542063d551fca1a08a2af365e35db21a3fa5a06cf2a6ed614004b4368982bc754cb816b3
-  languageName: node
-  linkType: hard
-
 "fs-extra@npm:^8.0.1, fs-extra@npm:^8.1.0":
   version: 8.1.0
   resolution: "fs-extra@npm:8.1.0"
@@ -11134,8 +10972,8 @@ __metadata:
   linkType: hard
 
 "glob@npm:^10.2.2, glob@npm:^10.3.10":
-  version: 10.4.2
-  resolution: "glob@npm:10.4.2"
+  version: 10.4.5
+  resolution: "glob@npm:10.4.5"
   dependencies:
     foreground-child: "npm:^3.1.0"
     jackspeak: "npm:^3.1.2"
@@ -11145,7 +10983,7 @@ __metadata:
     path-scurry: "npm:^1.11.1"
   bin:
     glob: dist/esm/bin.mjs
-  checksum: 10/e412776b5952a818eba790c830bea161c9a56813fd767d8c4c49f855603b1fb962b3e73f1f627a47298a57d2992b9f0f2fe15cf93e74ecaaa63fb45d63fdd090
+  checksum: 10/698dfe11828b7efd0514cd11e573eaed26b2dff611f0400907281ce3eab0c1e56143ef9b35adc7c77ecc71fba74717b510c7c223d34ca8a98ec81777b293d4ac
   languageName: node
   linkType: hard
 
@@ -12131,11 +11969,11 @@ __metadata:
   linkType: hard
 
 "is-core-module@npm:^2.13.0, is-core-module@npm:^2.8.1":
-  version: 2.14.0
-  resolution: "is-core-module@npm:2.14.0"
+  version: 2.15.0
+  resolution: "is-core-module@npm:2.15.0"
   dependencies:
     hasown: "npm:^2.0.2"
-  checksum: 10/1e0d1a16cb3a94746f6a28db09ccab4562860c94c74bacedb3a6729736d61cfb97001d2052f9622637aa7ea8e0643a3f0f4f16965c70ba6ce30a8ccfe8074af8
+  checksum: 10/70e962543e5d3a97c07cb29144a86792d545a21f28e67da5401d85878a0193d46fbab8d97bc3ca680e2778705dca66e7b6ca840c493497a27ca0e8c5f3ac3d1d
   languageName: node
   linkType: hard
 
@@ -12566,15 +12404,15 @@ __metadata:
   linkType: hard
 
 "istanbul-lib-instrument@npm:^6.0.0":
-  version: 6.0.2
-  resolution: "istanbul-lib-instrument@npm:6.0.2"
+  version: 6.0.3
+  resolution: "istanbul-lib-instrument@npm:6.0.3"
   dependencies:
     "@babel/core": "npm:^7.23.9"
     "@babel/parser": "npm:^7.23.9"
     "@istanbuljs/schema": "npm:^0.1.3"
     istanbul-lib-coverage: "npm:^3.2.0"
     semver: "npm:^7.5.4"
-  checksum: 10/3aee19be199350182827679a137e1df142a306e9d7e20bb5badfd92ecc9023a7d366bc68e7c66e36983654a02a67401d75d8debf29fc6d4b83670fde69a594fc
+  checksum: 10/aa5271c0008dfa71b6ecc9ba1e801bf77b49dc05524e8c30d58aaf5b9505e0cd12f25f93165464d4266a518c5c75284ecb598fbd89fec081ae77d2c9d3327695
   languageName: node
   linkType: hard
 
@@ -12611,15 +12449,15 @@ __metadata:
   linkType: hard
 
 "jackspeak@npm:^3.1.2":
-  version: 3.4.0
-  resolution: "jackspeak@npm:3.4.0"
+  version: 3.4.3
+  resolution: "jackspeak@npm:3.4.3"
   dependencies:
     "@isaacs/cliui": "npm:^8.0.2"
     "@pkgjs/parseargs": "npm:^0.11.0"
   dependenciesMeta:
     "@pkgjs/parseargs":
       optional: true
-  checksum: 10/5032c43c0c1fb92e72846ce496df559214253bc6870c90399cbd7858571c53169d9494b7c152df04abcb75f2fb5e9cffe65651c67d573380adf3a482b150d84b
+  checksum: 10/96f8786eaab98e4bf5b2a5d6d9588ea46c4d06bbc4f2eb861fdd7b6b182b16f71d8a70e79820f335d52653b16d4843b29dd9cdcf38ae80406756db9199497cf3
   languageName: node
   linkType: hard
 
@@ -13507,18 +13345,18 @@ __metadata:
   linkType: hard
 
 "load-bmfont@npm:^1.3.1, load-bmfont@npm:^1.4.0":
-  version: 1.4.1
-  resolution: "load-bmfont@npm:1.4.1"
+  version: 1.4.2
+  resolution: "load-bmfont@npm:1.4.2"
   dependencies:
     buffer-equal: "npm:0.0.1"
     mime: "npm:^1.3.4"
     parse-bmfont-ascii: "npm:^1.0.3"
     parse-bmfont-binary: "npm:^1.0.5"
     parse-bmfont-xml: "npm:^1.1.4"
-    phin: "npm:^2.9.1"
+    phin: "npm:^3.7.1"
     xhr: "npm:^2.0.1"
     xtend: "npm:^4.0.0"
-  checksum: 10/15d067360875df5a3e5f331044706c1c44ad24f7233306d3ca8e4728796d639c646e2997839e31051281813a0af50fc263cbe25f683dd6fecceea8ece2701a78
+  checksum: 10/73d80e9d5bd3ba12ba1174a33a6dfdc90a635106bb9a040b375060f24a9e15f757f06f3adfbcaa1f6effd93e380ef8c51f2b946dc6d976037f7119f0dd5266bf
   languageName: node
   linkType: hard
 
@@ -13679,9 +13517,9 @@ __metadata:
   linkType: hard
 
 "lru-cache@npm:^10.0.1, lru-cache@npm:^10.2.0":
-  version: 10.3.0
-  resolution: "lru-cache@npm:10.3.0"
-  checksum: 10/37e921aedbd1f4062475d9fa6760391fa7adfaaee3a5a6cbedd1d6d0b46705c14012312c1edb2b13f119eae6584a48f73c158d118828d42475b44a7abf7d05ab
+  version: 10.4.3
+  resolution: "lru-cache@npm:10.4.3"
+  checksum: 10/e6e90267360476720fa8e83cc168aa2bf0311f3f2eea20a6ba78b90a885ae72071d9db132f40fda4129c803e7dcec3a6b6a6fbb44ca90b081630b810b5d6a41a
   languageName: node
   linkType: hard
 
@@ -13811,13 +13649,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"map-or-similar@npm:^1.5.0":
-  version: 1.5.0
-  resolution: "map-or-similar@npm:1.5.0"
-  checksum: 10/3cf43bcd0e7af41d7bade5f8b5be6bb9d021cc47e6008ad545d071cf3a709ba782884002f9eec6ccd51f572fc17841e07bf74628e0bc3694c33f4622b03e4b4c
-  languageName: node
-  linkType: hard
-
 "marked@npm:^4.0.16":
   version: 4.3.0
   resolution: "marked@npm:4.3.0"
@@ -13935,15 +13766,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"memoizerific@npm:^1.11.3":
-  version: 1.11.3
-  resolution: "memoizerific@npm:1.11.3"
-  dependencies:
-    map-or-similar: "npm:^1.5.0"
-  checksum: 10/72b6b80699777d000f03db6e15fdabcd4afe77feb45be51fe195cb230c64a368fcfcfbb976375eac3283bd8193d6b1a67ac3081cae07f64fca73f1aa568d59e3
-  languageName: node
-  linkType: hard
-
 "merge-descriptors@npm:1.0.1":
   version: 1.0.1
   resolution: "merge-descriptors@npm:1.0.1"
@@ -14218,13 +14040,20 @@ __metadata:
   languageName: node
   linkType: hard
 
-"mime-db@npm:1.52.0, mime-db@npm:>= 1.43.0 < 2":
+"mime-db@npm:1.52.0":
   version: 1.52.0
   resolution: "mime-db@npm:1.52.0"
   checksum: 10/54bb60bf39e6f8689f6622784e668a3d7f8bed6b0d886f5c3c446cb3284be28b30bf707ed05d0fe44a036f8469976b2629bbea182684977b084de9da274694d7
   languageName: node
   linkType: hard
 
+"mime-db@npm:>= 1.43.0 < 2":
+  version: 1.53.0
+  resolution: "mime-db@npm:1.53.0"
+  checksum: 10/82409c568a20254cc67a763a25e581d2213e1ef5d070a0af805239634f8a655f5d8a15138200f5f81c5b06fc6623d27f6168c612d447642d59e37eb7f20f7412
+  languageName: node
+  linkType: hard
+
 "mime-types@npm:^2.1.12, mime-types@npm:^2.1.27, mime-types@npm:^2.1.31, mime-types@npm:~2.1.17, mime-types@npm:~2.1.24, mime-types@npm:~2.1.34":
   version: 2.1.35
   resolution: "mime-types@npm:2.1.35"
@@ -14328,7 +14157,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"minimatch@npm:^9.0.0, minimatch@npm:^9.0.3, minimatch@npm:^9.0.4":
+"minimatch@npm:^9.0.0, minimatch@npm:^9.0.4":
   version: 9.0.5
   resolution: "minimatch@npm:9.0.5"
   dependencies:
@@ -14619,8 +14448,8 @@ __metadata:
   linkType: hard
 
 "node-gyp@npm:latest":
-  version: 10.1.0
-  resolution: "node-gyp@npm:10.1.0"
+  version: 10.2.0
+  resolution: "node-gyp@npm:10.2.0"
   dependencies:
     env-paths: "npm:^2.2.0"
     exponential-backoff: "npm:^3.1.1"
@@ -14628,13 +14457,13 @@ __metadata:
     graceful-fs: "npm:^4.2.6"
     make-fetch-happen: "npm:^13.0.0"
     nopt: "npm:^7.0.0"
-    proc-log: "npm:^3.0.0"
+    proc-log: "npm:^4.1.0"
     semver: "npm:^7.3.5"
-    tar: "npm:^6.1.2"
+    tar: "npm:^6.2.1"
     which: "npm:^4.0.0"
   bin:
     node-gyp: bin/node-gyp.js
-  checksum: 10/89e105e495e66cd4568af3cf79cdeb67d670eb069e33163c7781d3366470a30367c9bd8dea59e46db16370020139e5bf78b1fbc03284cb571754dfaa59744db5
+  checksum: 10/41773093b1275751dec942b985982fd4e7a69b88cae719b868babcef3880ee6168aaec8dcaa8cd0b9fa7c84873e36cc549c6cac6a124ee65ba4ce1f1cc108cfe
   languageName: node
   linkType: hard
 
@@ -14646,9 +14475,9 @@ __metadata:
   linkType: hard
 
 "node-releases@npm:^2.0.14":
-  version: 2.0.14
-  resolution: "node-releases@npm:2.0.14"
-  checksum: 10/0f7607ec7db5ef1dc616899a5f24ae90c869b6a54c2d4f36ff6d84a282ab9343c7ff3ca3670fe4669171bb1e8a9b3e286e1ef1c131f09a83d70554f855d54f24
+  version: 2.0.17
+  resolution: "node-releases@npm:2.0.17"
+  checksum: 10/199e4128db3c415368abf344c0bff527c1300c67094b2d5592a67f9388b434cdad8bf76829dace65c9318fbb27cda8ecb91c5758057bbdf0b59e9408ab92408b
   languageName: node
   linkType: hard
 
@@ -14857,9 +14686,9 @@ __metadata:
   linkType: hard
 
 "nwsapi@npm:^2.2.2":
-  version: 2.2.10
-  resolution: "nwsapi@npm:2.2.10"
-  checksum: 10/b310e9dd0886da338cbbb1be9fec473a50269e2935d537f95a03d0038f7ea831ce12b4816d97f42e458e5273158aea2a6c86bc4bb60f79911226154aa66740f7
+  version: 2.2.12
+  resolution: "nwsapi@npm:2.2.12"
+  checksum: 10/172119e9ef492467ebfb337f9b5fd12a94d2b519377cde3f6ec2f74a86f6d5c00ef3873539bed7142f908ffca4e35383179be2319d04a563071d146bfa3f1673
   languageName: node
   linkType: hard
 
@@ -14983,12 +14812,12 @@ __metadata:
   languageName: node
   linkType: hard
 
-"openmrs@npm:^5.6.1-pre.2075":
-  version: 5.6.1-pre.2075
-  resolution: "openmrs@npm:5.6.1-pre.2075"
+"openmrs@npm:^5.7.1-pre.2076":
+  version: 5.7.1-pre.2076
+  resolution: "openmrs@npm:5.7.1-pre.2076"
   dependencies:
-    "@openmrs/esm-app-shell": "npm:5.6.1-pre.2075"
-    "@openmrs/webpack-config": "npm:5.6.1-pre.2075"
+    "@openmrs/esm-app-shell": "npm:5.7.1-pre.2076"
+    "@openmrs/webpack-config": "npm:5.7.1-pre.2076"
     "@pnpm/npm-conf": "npm:^2.1.0"
     "@swc/core": "npm:^1.3.58"
     autoprefixer: "npm:^10.4.2"
@@ -15020,7 +14849,7 @@ __metadata:
     yargs: "npm:^17.6.2"
   bin:
     openmrs: ./dist/cli.js
-  checksum: 10/9d4c6f714fddd5b1c39e00f17466793b2c71abff7ac36ed7dd2cdaa67e5f46660e2ac6151082ce2b999dc90484ca6a9ff5ba52111027b718426e33b4a7ae6322
+  checksum: 10/6d52a9884b6a594c330925a56623960a9c910d5ea3453ffe9c6a4d9934997dcd464c592a396b1eeff7d0b1e2e67077c274dc419c55d6ea6593024cc9bb895b6b
   languageName: node
   linkType: hard
 
@@ -15409,6 +15238,15 @@ __metadata:
   languageName: node
   linkType: hard
 
+"phin@npm:^3.7.1":
+  version: 3.7.1
+  resolution: "phin@npm:3.7.1"
+  dependencies:
+    centra: "npm:^2.7.0"
+  checksum: 10/eebbfb0ab63d90f1513a2da05ef5ccc4bfb17216567fe62e9f0b8a4da27ff301b6409da8dcada6a66711c040b318ffb456e1adf24e8d261e24a916d30d91aadf
+  languageName: node
+  linkType: hard
+
 "picocolors@npm:^1.0.0, picocolors@npm:^1.0.1":
   version: 1.0.1
   resolution: "picocolors@npm:1.0.1"
@@ -15875,12 +15713,12 @@ __metadata:
   linkType: hard
 
 "postcss-selector-parser@npm:^6.0.2, postcss-selector-parser@npm:^6.0.4, postcss-selector-parser@npm:^6.0.5, postcss-selector-parser@npm:^6.0.9":
-  version: 6.1.0
-  resolution: "postcss-selector-parser@npm:6.1.0"
+  version: 6.1.1
+  resolution: "postcss-selector-parser@npm:6.1.1"
   dependencies:
     cssesc: "npm:^3.0.0"
     util-deprecate: "npm:^1.0.2"
-  checksum: 10/2f9e5045b8bbe674fed3b79dbcd3daf21f5188cd7baf179beac513710ec3d75a8fc8184a262c3aec1c628ad3fd8bdb29c5d8530f1c9c5a61a18e1980bb000945
+  checksum: 10/ce2af36b56d9333a6873498d3b6ee858466ceb3e9560f998eeaf294e5c11cafffb122d307f3c2904ee8f87d12c71c5ab0b26ca4228b97b6c70b7d1e7cd9b5737
   languageName: node
   linkType: hard
 
@@ -15915,13 +15753,13 @@ __metadata:
   linkType: hard
 
 "postcss@npm:^8.2.15, postcss@npm:^8.4.33, postcss@npm:^8.4.6":
-  version: 8.4.38
-  resolution: "postcss@npm:8.4.38"
+  version: 8.4.39
+  resolution: "postcss@npm:8.4.39"
   dependencies:
     nanoid: "npm:^3.3.7"
-    picocolors: "npm:^1.0.0"
+    picocolors: "npm:^1.0.1"
     source-map-js: "npm:^1.2.0"
-  checksum: 10/6e44a7ed835ffa9a2b096e8d3e5dfc6bcf331a25c48aeb862dd54e3aaecadf814fa22be224fd308f87d08adf2299164f88c5fd5ab1c4ef6cbd693ceb295377f4
+  checksum: 10/ad9c1add892c96433b9a5502878201ede4a20c4ce02d056251f61f8d9a3e5426dab3683fe5a086edfa78a1a19f2b4988c8cea02c5122136d29758cb5a17e2621
   languageName: node
   linkType: hard
 
@@ -15941,12 +15779,12 @@ __metadata:
   languageName: node
   linkType: hard
 
-"prettier@npm:^3.1.1, prettier@npm:^3.2.4":
-  version: 3.3.2
-  resolution: "prettier@npm:3.3.2"
+"prettier@npm:^3.1.1":
+  version: 3.3.3
+  resolution: "prettier@npm:3.3.3"
   bin:
     prettier: bin/prettier.cjs
-  checksum: 10/83214e154afa5aa9b664c2506640212323eb1376b13379b2413dc351b7de0687629dca3f00ff2ec895ebd7e3a2adb7d7e231b6c77606e2358137f2150807405b
+  checksum: 10/5beac1f30b5b40162532b8e2f7c3a4eb650910a2695e9c8512a62ffdc09dae93190c29db9107fa7f26d1b6c71aad3628ecb9b5de1ecb0911191099be109434d7
   languageName: node
   linkType: hard
 
@@ -15996,7 +15834,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"proc-log@npm:^4.2.0":
+"proc-log@npm:^4.1.0, proc-log@npm:^4.2.0":
   version: 4.2.0
   resolution: "proc-log@npm:4.2.0"
   checksum: 10/4e1394491b717f6c1ade15c570ecd4c2b681698474d3ae2d303c1e4b6ab9455bd5a81566211e82890d5a5ae9859718cc6954d5150bb18b09b72ecb297beae90a
@@ -16093,13 +15931,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"proxy-from-env@npm:^1.1.0":
-  version: 1.1.0
-  resolution: "proxy-from-env@npm:1.1.0"
-  checksum: 10/f0bb4a87cfd18f77bc2fba23ae49c3b378fb35143af16cc478171c623eebe181678f09439707ad80081d340d1593cd54a33a0113f3ccb3f4bc9451488780ee23
-  languageName: node
-  linkType: hard
-
 "psl@npm:^1.1.33":
   version: 1.9.0
   resolution: "psl@npm:1.9.0"
@@ -16151,15 +15982,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"qs@npm:^6.10.0":
-  version: 6.12.1
-  resolution: "qs@npm:6.12.1"
-  dependencies:
-    side-channel: "npm:^1.0.6"
-  checksum: 10/035bcad2a1ab0175bac7a74c904c15913bdac252834149ccff988c93a51de02642fe7be10e43058ba4dc4094bb28ce9b59d12b9e91d40997f445cfde3ecc1c29
-  languageName: node
-  linkType: hard
-
 "querystringify@npm:^2.1.1":
   version: 2.2.0
   resolution: "querystringify@npm:2.2.0"
@@ -16201,13 +16023,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"ramda@npm:0.29.0":
-  version: 0.29.0
-  resolution: "ramda@npm:0.29.0"
-  checksum: 10/b156660f2c58b4a13bcc4f1a0eabc1145d8db11d33d26a2fb03cd6adf3983a1c1f2bbaaf708c421029e9b09684262d056752623f7e62b79a503fb9217dec69d4
-  languageName: node
-  linkType: hard
-
 "ramda@npm:^0.26.1":
   version: 0.26.1
   resolution: "ramda@npm:0.26.1"
@@ -16352,7 +16167,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"react-error-boundary@npm:^4.0.11":
+"react-error-boundary@npm:^4.0.13":
   version: 4.0.13
   resolution: "react-error-boundary@npm:4.0.13"
   dependencies:
@@ -16371,11 +16186,11 @@ __metadata:
   linkType: hard
 
 "react-hook-form@npm:^7.46.2":
-  version: 7.52.0
-  resolution: "react-hook-form@npm:7.52.0"
+  version: 7.52.1
+  resolution: "react-hook-form@npm:7.52.1"
   peerDependencies:
     react: ^16.8.0 || ^17 || ^18 || ^19
-  checksum: 10/fc4f92008acc22bcdabf7f472529b29dd29f6305f2b66c8e993c72cbc43eb03b761dd55d5dcb339382fe4bfdd81c4521d3ddcc380d43a3c9a8501aec121e4e7d
+  checksum: 10/5d117cb767114749163f3c52cc09e6dbefca8b450c91abe9958884b4df505a44f0b088046d1c98504bfcd5d4104126cfeb8917c25cb25b0610d89f713b4b2080
   languageName: node
   linkType: hard
 
@@ -16418,7 +16233,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"react-markdown@npm:^7.1.0":
+"react-markdown@npm:^7.1.2":
   version: 7.1.2
   resolution: "react-markdown@npm:7.1.2"
   dependencies:
@@ -16444,26 +16259,26 @@ __metadata:
   linkType: hard
 
 "react-router-dom@npm:^6.3.0":
-  version: 6.24.0
-  resolution: "react-router-dom@npm:6.24.0"
+  version: 6.25.1
+  resolution: "react-router-dom@npm:6.25.1"
   dependencies:
-    "@remix-run/router": "npm:1.17.0"
-    react-router: "npm:6.24.0"
+    "@remix-run/router": "npm:1.18.0"
+    react-router: "npm:6.25.1"
   peerDependencies:
     react: ">=16.8"
     react-dom: ">=16.8"
-  checksum: 10/a6622bc53dd7652bbfb9f5c6f2c1bff4aa93a24cc91e048aa2908d096f7106de3707b5d4cf4bd9cf0b67d4475c7718add7fd96045430f7435c7d78da04708a30
+  checksum: 10/583a0907156f8f0687817e2cd6fa2678284729fc9cf883acb0bc0a4ade1f76fc68dd771258f6b30a2fdc378a5608b973f7ecb1f7fc752295ad4eba8b2f156a82
   languageName: node
   linkType: hard
 
-"react-router@npm:6.24.0":
-  version: 6.24.0
-  resolution: "react-router@npm:6.24.0"
+"react-router@npm:6.25.1":
+  version: 6.25.1
+  resolution: "react-router@npm:6.25.1"
   dependencies:
-    "@remix-run/router": "npm:1.17.0"
+    "@remix-run/router": "npm:1.18.0"
   peerDependencies:
     react: ">=16.8"
-  checksum: 10/71d750e4422d74e1981b38f54c0dd02a7af7b1059cab471d96e4dc3374824557f6eec8449fe557c0ed8af18569554de8d565bbfd708c1fc90d3421b3d6c6ac82
+  checksum: 10/3bfb9754cff279cabcb247f13e66315d02333dae7e251fa8975d0e5cf68ee61793ad040594d2d490a5c995efc542739e7ef80462a69bd3209f64c69086fc7786
   languageName: node
   linkType: hard
 
@@ -16524,7 +16339,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"react-webcam@npm:^7.1.1":
+"react-webcam@npm:^7.2.0":
   version: 7.2.0
   resolution: "react-webcam@npm:7.2.0"
   peerDependencies:
@@ -16620,19 +16435,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"recast@npm:^0.23.1":
-  version: 0.23.9
-  resolution: "recast@npm:0.23.9"
-  dependencies:
-    ast-types: "npm:^0.16.1"
-    esprima: "npm:~4.0.0"
-    source-map: "npm:~0.6.1"
-    tiny-invariant: "npm:^1.3.3"
-    tslib: "npm:^2.0.1"
-  checksum: 10/d60584be179d81a82fbe58b5bbe009aa42831ee114a21a3e3a22bda91334e0b8a1a4610dca8ecb7f9ea1426da4febc08134d3003085ad6ecee478d1808eb8796
-  languageName: node
-  linkType: hard
-
 "rechoir@npm:^0.7.0":
   version: 0.7.1
   resolution: "rechoir@npm:0.7.1"
@@ -17188,15 +16990,15 @@ __metadata:
   linkType: hard
 
 "sass@npm:^1.29.0":
-  version: 1.77.6
-  resolution: "sass@npm:1.77.6"
+  version: 1.77.8
+  resolution: "sass@npm:1.77.8"
   dependencies:
     chokidar: "npm:>=3.0.0 <4.0.0"
     immutable: "npm:^4.0.0"
     source-map-js: "npm:>=0.6.2 <2.0.0"
   bin:
     sass: sass.js
-  checksum: 10/695f9864e4a32a68eaf69c4675eccaf7feef25b5656dff72f896901d37580bdfc1fd84dae81e176dc4f6b40536b89cb8f7d7e00a33e919caad8a547cbce098f3
+  checksum: 10/4bf6e3007fef62dd6dfc657c89c2890872a6b5dc43e2dc4d61bcf9ae1bdc2dd95b59454a3cbd3c8363c98b673b028e1578b26135190d0f2a8a184a38ab41e99b
   languageName: node
   linkType: hard
 
@@ -17304,11 +17106,11 @@ __metadata:
   linkType: hard
 
 "semver@npm:^7.1.1, semver@npm:^7.3.2, semver@npm:^7.3.4, semver@npm:^7.3.5, semver@npm:^7.5.3, semver@npm:^7.5.4":
-  version: 7.6.2
-  resolution: "semver@npm:7.6.2"
+  version: 7.6.3
+  resolution: "semver@npm:7.6.3"
   bin:
     semver: bin/semver.js
-  checksum: 10/296b17d027f57a87ef645e9c725bff4865a38dfc9caf29b26aa084b85820972fbe7372caea1ba6857162fa990702c6d9c1d82297cecb72d56c78ab29070d2ca2
+  checksum: 10/36b1fbe1a2b6f873559cd57b238f1094a053dbfd997ceeb8757d79d1d2089c56d1321b9f1069ce263dc64cfa922fa1d2ad566b39426fe1ac6c723c1487589e10
   languageName: node
   linkType: hard
 
@@ -17946,13 +17748,13 @@ __metadata:
   linkType: hard
 
 "string-width@npm:^7.0.0":
-  version: 7.1.0
-  resolution: "string-width@npm:7.1.0"
+  version: 7.2.0
+  resolution: "string-width@npm:7.2.0"
   dependencies:
     emoji-regex: "npm:^10.3.0"
     get-east-asian-width: "npm:^1.0.0"
     strip-ansi: "npm:^7.1.0"
-  checksum: 10/a183573fe7209e0d294f661846d33f8caf72aa86d983e5b48a0ed45ab15bcccb02c6f0344b58b571988871105457137b8207855ea536827dbc4a376a0f31bf8f
+  checksum: 10/42f9e82f61314904a81393f6ef75b832c39f39761797250de68c041d8ba4df2ef80db49ab6cd3a292923a6f0f409b8c9980d120f7d32c820b4a8a84a2598a295
   languageName: node
   linkType: hard
 
@@ -18262,13 +18064,13 @@ __metadata:
   languageName: node
   linkType: hard
 
-"synckit@npm:^0.8.6":
-  version: 0.8.8
-  resolution: "synckit@npm:0.8.8"
+"synckit@npm:^0.9.1":
+  version: 0.9.1
+  resolution: "synckit@npm:0.9.1"
   dependencies:
     "@pkgr/core": "npm:^0.1.0"
     tslib: "npm:^2.6.2"
-  checksum: 10/2864a5c3e689ad5b991bebbd8a583c5682c4fa08a4f39986b510b6b5d160c08fc3672444069f8f96ed6a9d12772879c674c1f61e728573eadfa90af40a765b74
+  checksum: 10/bff3903976baf8b699b5483228116d70223781a93b17c70e685c277ee960cdfd1a09cb5a741e6a9ec35e2428f14f4664baec41ccc99a598f267608b2a54f529b
   languageName: node
   linkType: hard
 
@@ -18309,7 +18111,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"tar@npm:^6.0.5, tar@npm:^6.1.11, tar@npm:^6.1.2":
+"tar@npm:^6.0.5, tar@npm:^6.1.11, tar@npm:^6.1.2, tar@npm:^6.2.1":
   version: 6.2.1
   resolution: "tar@npm:6.2.1"
   dependencies:
@@ -18332,15 +18134,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"telejson@npm:^7.2.0":
-  version: 7.2.0
-  resolution: "telejson@npm:7.2.0"
-  dependencies:
-    memoizerific: "npm:^1.11.3"
-  checksum: 10/6e89b3d3c45b5a2aced9132f6a968fcdf758c00be4c3acb115d7d81e95c9e04083a7a4a9b43057fcf48b101156c1607a38f5491615956acb28d4d1f78a4bda20
-  languageName: node
-  linkType: hard
-
 "temp-dir@npm:^2.0.0":
   version: 2.0.0
   resolution: "temp-dir@npm:2.0.0"
@@ -18383,8 +18176,8 @@ __metadata:
   linkType: hard
 
 "terser@npm:^5.0.0, terser@npm:^5.10.0, terser@npm:^5.26.0":
-  version: 5.31.1
-  resolution: "terser@npm:5.31.1"
+  version: 5.31.3
+  resolution: "terser@npm:5.31.3"
   dependencies:
     "@jridgewell/source-map": "npm:^0.3.3"
     acorn: "npm:^8.8.2"
@@ -18392,7 +18185,7 @@ __metadata:
     source-map-support: "npm:~0.5.20"
   bin:
     terser: bin/terser
-  checksum: 10/4b22b62e762aebcd538dc3f5d5323fb3b51786e9294f7069d591cb61401a1161778039fdf283bbaf06244f500ee8563e0c49fc3c64176310556f34cc6637d463
+  checksum: 10/7f66d93a1157f66f5eda16515ed45e6eb485d3c4acbc46e78a5e62922f5b4643d9212abc586f791021fafc71563a93475a986c52f4270a5e0b3ee50a70507d9e
   languageName: node
   linkType: hard
 
@@ -18408,11 +18201,11 @@ __metadata:
   linkType: hard
 
 "text-decoder@npm:^1.1.0":
-  version: 1.1.0
-  resolution: "text-decoder@npm:1.1.0"
+  version: 1.1.1
+  resolution: "text-decoder@npm:1.1.1"
   dependencies:
     b4a: "npm:^1.6.4"
-  checksum: 10/4c0c9997a59f5531e604d80f0e5a8a2206e25adc11bdd090d0a01190467134383dfe27d13c834b31966e411a358c6bf8c97e96098573a7080a2e205fa49fd050
+  checksum: 10/c6981b93850daeafc8bd1dbd8f984d4fb2d14632f450de0892692b5bbee2d2f4cbef8a807142527370649fd357f58491ede4915d43669eca624cb52b8dd247b6
   languageName: node
   linkType: hard
 
@@ -18489,13 +18282,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"tiny-invariant@npm:^1.3.1, tiny-invariant@npm:^1.3.3":
-  version: 1.3.3
-  resolution: "tiny-invariant@npm:1.3.3"
-  checksum: 10/5e185c8cc2266967984ce3b352a4e57cb89dad5a8abb0dea21468a6ecaa67cd5bb47a3b7a85d08041008644af4f667fb8b6575ba38ba5fb00b3b5068306e59fe
-  languageName: node
-  linkType: hard
-
 "tiny-warning@npm:^1.0.2":
   version: 1.0.3
   resolution: "tiny-warning@npm:1.0.3"
@@ -18667,13 +18453,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"ts-dedent@npm:^2.0.0":
-  version: 2.2.0
-  resolution: "ts-dedent@npm:2.2.0"
-  checksum: 10/93ed8f7878b6d5ed3c08d99b740010eede6bccfe64bce61c5a4da06a2c17d6ddbb80a8c49c2d15251de7594a4f93ffa21dd10e7be75ef66a4dc9951b4a94e2af
-  languageName: node
-  linkType: hard
-
 "tslib@npm:^1.11.1, tslib@npm:^1.9.0":
   version: 1.14.1
   resolution: "tslib@npm:1.14.1"
@@ -18681,7 +18460,7 @@ __metadata:
   languageName: node
   linkType: hard
 
-"tslib@npm:^2.0.0, tslib@npm:^2.0.1, tslib@npm:^2.0.3, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.6.2, tslib@npm:^2.6.3":
+"tslib@npm:^2.0.0, tslib@npm:^2.0.3, tslib@npm:^2.3.0, tslib@npm:^2.4.0, tslib@npm:^2.6.2, tslib@npm:^2.6.3":
   version: 2.6.3
   resolution: "tslib@npm:2.6.3"
   checksum: 10/52109bb681f8133a2e58142f11a50e05476de4f075ca906d13b596ae5f7f12d30c482feb0bff167ae01cfc84c5803e575a307d47938999246f5a49d174fc558c
@@ -18900,16 +18679,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"typescript@npm:5.4.2":
-  version: 5.4.2
-  resolution: "typescript@npm:5.4.2"
-  bin:
-    tsc: bin/tsc
-    tsserver: bin/tsserver
-  checksum: 10/f8cfdc630ab1672f004e9561eb2916935b2d267792d07ce93e97fc601c7a65191af32033d5e9c0169b7dc37da7db9bf320f7432bc84527cb7697effaa4e4559d
-  languageName: node
-  linkType: hard
-
 "typescript@npm:^4.0.3, typescript@npm:^4.2.4, typescript@npm:^4.6.4":
   version: 4.9.5
   resolution: "typescript@npm:4.9.5"
@@ -18920,16 +18689,6 @@ __metadata:
   languageName: node
   linkType: hard
 
-"typescript@patch:typescript@npm%3A5.4.2#optional!builtin<compat/typescript>":
-  version: 5.4.2
-  resolution: "typescript@patch:typescript@npm%3A5.4.2#optional!builtin<compat/typescript>::version=5.4.2&hash=5adc0c"
-  bin:
-    tsc: bin/tsc
-    tsserver: bin/tsserver
-  checksum: 10/f5f9a4133c2670761f0166eae5b3bafbc4a3fc24f0f42a93c9c893d9e9d6e66ea066969c5e7483fa66b4ae0e99125592553f3b92fd3599484de8be13b0615176
-  languageName: node
-  linkType: hard
-
 "typescript@patch:typescript@npm%3A^4.0.3#optional!builtin<compat/typescript>, typescript@patch:typescript@npm%3A^4.2.4#optional!builtin<compat/typescript>, typescript@patch:typescript@npm%3A^4.6.4#optional!builtin<compat/typescript>":
   version: 4.9.5
   resolution: "typescript@patch:typescript@npm%3A4.9.5#optional!builtin<compat/typescript>::version=4.9.5&hash=289587"
@@ -19176,9 +18935,9 @@ __metadata:
   languageName: node
   linkType: hard
 
-"update-browserslist-db@npm:^1.0.16":
-  version: 1.0.16
-  resolution: "update-browserslist-db@npm:1.0.16"
+"update-browserslist-db@npm:^1.1.0":
+  version: 1.1.0
+  resolution: "update-browserslist-db@npm:1.1.0"
   dependencies:
     escalade: "npm:^3.1.2"
     picocolors: "npm:^1.0.1"
@@ -19186,11 +18945,11 @@ __metadata:
     browserslist: ">= 4.21.0"
   bin:
     update-browserslist-db: cli.js
-  checksum: 10/071bf0b2fb8568db6cd42ee2598ac9b87c794a7229fcbf1b035ae7f883e770c07143f16a5371525d5bcb94b99f9a1b279036142b0195ffd4cf5a0008fc4a500e
+  checksum: 10/d70b9efeaf4601aadb1a4f6456a7a5d9118e0063d995866b8e0c5e0cf559482671dab6ce7b079f9536b06758a344fbd83f974b965211e1c6e8d1958540b0c24c
   languageName: node
   linkType: hard
 
-"uri-js@npm:^4.2.2, uri-js@npm:^4.4.1":
+"uri-js@npm:^4.2.2":
   version: 4.4.1
   resolution: "uri-js@npm:4.4.1"
   dependencies:
@@ -19708,8 +19467,8 @@ __metadata:
   linkType: hard
 
 "webpack@npm:^5.74.0, webpack@npm:^5.88.0":
-  version: 5.92.1
-  resolution: "webpack@npm:5.92.1"
+  version: 5.93.0
+  resolution: "webpack@npm:5.93.0"
   dependencies:
     "@types/eslint-scope": "npm:^3.7.3"
     "@types/estree": "npm:^1.0.5"
@@ -19740,7 +19499,7 @@ __metadata:
       optional: true
   bin:
     webpack: bin/webpack.js
-  checksum: 10/76fcfbebcc0719c4734c65a01dcef7a0f18f3f2647484e8a7e8606adbd128ac42756bb3a8b7e2d486fe97f6286ebdc7b937ccdf3cf1d21b4684134bb89bbed89
+  checksum: 10/a48bef7a511d826db7f9ebee2c84317214923ac40cb2aabe6a649546c54a76a55fc3b91ff03c05fed22a13a176891c47bbff7fcc644c53bcbe5091555863641b
   languageName: node
   linkType: hard
 
@@ -20210,8 +19969,8 @@ __metadata:
   linkType: hard
 
 "ws@npm:^8.11.0, ws@npm:^8.13.0":
-  version: 8.17.1
-  resolution: "ws@npm:8.17.1"
+  version: 8.18.0
+  resolution: "ws@npm:8.18.0"
   peerDependencies:
     bufferutil: ^4.0.1
     utf-8-validate: ">=5.0.2"
@@ -20220,7 +19979,7 @@ __metadata:
       optional: true
     utf-8-validate:
       optional: true
-  checksum: 10/4264ae92c0b3e59c7e309001e93079b26937aab181835fb7af79f906b22cd33b6196d96556dafb4e985742dd401e99139572242e9847661fdbc96556b9e6902d
+  checksum: 10/70dfe53f23ff4368d46e4c0b1d4ca734db2c4149c6f68bc62cb16fc21f753c47b35fcc6e582f3bdfba0eaeb1c488cddab3c2255755a5c3eecb251431e42b3ff6
   languageName: node
   linkType: hard