npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@clinicemr/esm-patient-payment-manager-app

v1.5.0

Published

Role-aware payment manager for OpenMRS CLINICEMR distro: tabbed cashier workspace (register new patient + pending provider payment requests), searchable Billing/Cashier-API service picker, corporate/private payer selection, printable receipts & invoices,

Readme

ESM Patient Payment Manager App

Role-aware payment manager for the OpenMRS CLINICEMR distro. Built on top of the OpenMRS billing/cashier module (/ws/rest/v1/cashier/*).

Features

  1. Unified order/item search with prices — a single debounced search (OrderSearch) spanning billable services/items, drugs (REST drug resource) and lab tests (configured orderable concept sets). Each result shows its resolved price and is selectable on the consultation payment gate and the quick-bill modal. Categories are controlled by orderSearchCategories, and lab tests require labOrderableConcepts to be configured.
  2. Consultation payment gate before registration — Cashier / Receptionist / Organisation Nurse roles must record a consultation payment before they can register a patient. The payment-manager-lockdown guard redirects them to payment-manager/consultation if they hit patient-registration without a recorded payment. The fee is settled against the new patient automatically in the post-registration step.
  3. Provider lockdown — Doctors, Pharmacists and Laboratory roles are blocked from patient-registration and all payment-manager/* pages.
  4. Pending payments queue — Cashiers see all PENDING bills at payment-manager/pending and settle them with the Receive Payment modal.
  5. Order-basket payment requests — when a clinician adds a drug/lab order, the order-payment-panel (in order-basket-slot) shows the matched price and a "Send for payment" button that creates a PENDING bill for the cashier queue. The order is intended to be completed after the patient pays.

Roles

Configured via cashierRoleNames and providerRoleNames (see config-schema.ts). Defaults: cashier roles = Organizational: Nurse, Cashier, Receptionist; provider roles = Doctor / Pharmacist / Laboratory variants.

Distro wiring

This app registers the post-registration page route and expects the registration app's submitButton link to be ${openmrsSpaBase}/post-registration/${patientUuid}.

Important: @clinicemr/esm-post-registration-redirect-app also registers the post-registration route. Do not enable both in the same distro — this app supersedes the redirect app. Remove the redirect app from spa-assemble-config.json (or exclude it) when enabling the payment manager.

Example config-core_demo.json block:

"@clinicemr/esm-patient-payment-manager-app": {
  "cashierRoleNames": ["Organizational: Nurse", "Cashier", "Receptionist"],
  "providerRoleNames": ["Doctor", "Pharmacist", "Laboratory"],
  "consultationBillableServiceUuid": "<uuid-of-consultation-service>",
  "cashPointUuid": "<uuid-of-cash-point>",
  "defaultCurrency": "UGX"
}

Build

NODE_OPTIONS="--max-old-space-size=3072" ../../node_modules/.bin/webpack --mode production