The OpenMRS Billing Module is designed to streamline the financial operations within healthcare settings by facilitating the management of patient billing, payments, and service pricing. This module integrates seamlessly with the OpenMRS platform, allowing healthcare providers to generate bills, track payments, and manage various billable services. It is an essential tool for ensuring transparency and accuracy in financial transactions within healthcare facilities, contributing to efficient service delivery.
The Billing ESM is a microfrontend for OpenMRS 3.x designed to manage healthcare billing workflows. It allows users to:
- Generate and manage bills
- Capture payments and insurance details
- Configure billable services and categories
- Integrate with visits and patient dashboards
Dependency: Note that this frontend module depends on the backend module called "Billing Module": https://github.com/openmrs/openmrs-module-billing
For more information, please see the OpenMRS Frontend Developer Documentation.
Check out the developer documentation in the OpenMRS Wiki.
This monorepo uses yarn.
To install the dependencies, run:
yarnTo start a dev server, run:
yarn startOnce the dev server launches, log in and select a location. You will get redirected to the home page. Once there:
- Navigate to the Billing dashboard on the left panel to view the billing history. Additional billing functionality exists in the Patient Chart. You'll also find the Billable Services dashboard in the System Administration page.
- For more information on how to navigate and use the billing module, please refer to this documentation
To run tests for all packages, run:
yarn turbo run testTo run tests in watch mode, run:
yarn turbo run test:watchTo run a specific test file, run:
yarn turbo run test -- visit-notes-formThe above command will only run tests in the file or files that match the provided string.
You can also run the matching tests from above in watch mode by running:
yarn turbo run test:watch -- visit-notes-formTo generate a coverage report, run:
yarn turbo run coverageBy default, turbo will cache test runs. This means that re-running tests wihout changing any of the related files will return the cached logs from the last run. To bypass the cache, run tests with the force flag, as follows:
yarn turbo run test --forceTo run end-to-end tests, run:
yarn test-e2eRead the e2e testing guide to learn more about End-to-End tests in this project.
The Playwright version in the Bamboo e2e Dockerfile and the package.json file must match. If you update the Playwright version in one place, you must update it in the other.
You can customize billing behavior using OpenMRS frontend config overrides.
{
"openmrs": {
"config": {
"billing": {
"defaultCurrency": "UGX",
"pageSize": 20,
"patientCategory": {
"paymentDetails": "fbc0702d-...",
"insuranceScheme": "aac48226-..."
},
"nonPayingPatientCategories": {
"childUnder5": "1528AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"
}
}
}
}
}📌 Ensure all UUIDs used here exist in your OpenMRS instance.
🧩 Configuration can be managed via your MF shell app or import-map-deployerIf you notice that your local version of the application is not working or that there's a mismatch between what you see locally versus what's in dev3, you likely have outdated versions of core libraries. To update core libraries, run the following commands:
# Upgrade core libraries
yarn up openmrs@next @openmrs/esm-framework@nextgit checkout package.jsonyarnFor documentation about our design patterns, please visit our design system documentation website.
Please see the Implementer Documentation for information about configuring modules.
See Creating a Distribution for information about adding microfrontends to a distribution.
For more information on how to get started, please refer to OpenMRS Frontend Developer Documentation.
Detailed documentation on Billing Module can be found in the OpenMRS Wiki