Document content package configuration in the README - #191
Conversation
ad728f0 to
05fa43e
Compare
Replace the Installation and Configuration sections with content package setup covering the globalproperties, billableservices, paymentmodes, cashpoints and cashieritemprices Initializer domains. Correct the requirements list: fhir2 and event are required modules, not optional. Add the undocumented billing.currencySymbol property and fix the declared default for billing.patientDashboard2BillCount.
05fa43e to
c655f17
Compare
|
| - `billing.defaultReceiptReportId`: Jasper report ID for receipt generation | ||
| - `billing.defaultShiftReportId`: Jasper report ID for shift reports | ||
| - `billing.receipt.logoPath`: Path to receipt logo image | ||
| - `billing.systemReceiptNumberGenerator`: Class name for receipt number generator (default: `org.openmrs.module.billing.api.SequentialReceiptNumberGenerator`) | ||
| - `billing.sequenceBlockSize`: Number of receipt sequence values reserved per database round-trip (default: 100). Larger blocks reduce database contention; smaller blocks reduce the sequence values skipped on restart (up to blockSize - 1 per group). Receipt numbers are always unique but may skip values. |
There was a problem hiding this comment.
Do we need this, since we're repeating it later on line 200+?
wikumChamith
left a comment
There was a problem hiding this comment.
Just noticed some minor nits :)
| ### Receipt numbering | ||
|
|
||
| The default generator hands out sequential receipt numbers. To avoid a database round-trip per bill it reserves a block | ||
| of `billing.sequenceBlockSize` values at a time and serves them from memory. Receipt numbers are always unique, but | ||
| values can be skipped: restarting the server discards whatever is left of the current block, losing up to | ||
| `blockSize - 1` values per sequence group. Larger blocks reduce contention under load; smaller blocks reduce the gaps. | ||
|
|
||
| To use your own numbering scheme, implement `org.openmrs.module.billing.api.IReceiptNumberGenerator` in another module | ||
| and set `billing.systemReceiptNumberGenerator` to its fully-qualified class name. | ||
|
|
||
| ### Patient payment status | ||
|
|
||
| `billing.patientPaymentStatusResolver` selects how a patient's overall payment status is derived. Leave it blank to use | ||
| the built-in resolver, which reads existing bill records. To override it, implement | ||
| `org.openmrs.module.billing.api.PatientPaymentStatusResolver`, register your implementation as a Spring component in | ||
| your own module so it is discoverable, and set the property to its fully-qualified class name. |
There was a problem hiding this comment.
Shouldn't these be outside the "Global properties reference" topic?
denniskigen
left a comment
There was a problem hiding this comment.
Nice work, @NethmiRodrigo. I checked the defaults and the four CSV contracts against config.xml and the Initializer line processors and they all hold up. A few nits below.
Outside the diff, but now that fhir2 and event are required modules, step 2 of Installation still only lists webservices.rest and stockmanagement. We should add them there since the module won't start without them.
| ## Configuration | ||
|
|
||
| ### Global Properties | ||
| The billing module can be configured through a **content package** that the [Initializer module](https://github.com/mekomsolutions/openmrs-module-initializer) applies when the server starts. |
There was a problem hiding this comment.
Should we name the minimum Initializer version here? These four domains only landed in 2.12.0, and on anything older Initializer skips the folders silently.
| The billing module can be configured through a **content package** that the [Initializer module](https://github.com/mekomsolutions/openmrs-module-initializer) applies when the server starts. | |
| The billing module can be configured through a **content package** that the [Initializer module](https://github.com/mekomsolutions/openmrs-module-initializer) 2.12.0 or later applies when the server starts. |
| └── cashieritemprices/cashierItemPrices.csv | ||
| ``` | ||
|
|
||
| **Please make sure that the folder names are named correctly.** |
There was a problem hiding this comment.
Nit: "folder names are named" reads a bit oddly, and the tree above already shows them.
| **Please make sure that the folder names are named correctly.** | |
| **The folder names must match exactly.** |
|
|
||
| **Please make sure that the folder names are named correctly.** | ||
|
|
||
| #### Global properties |
There was a problem hiding this comment.
| #### Global properties | |
| ### Global properties |
These are #### but ### Assign privileges below is ###. Ditto for the four sections after this one.
| - `billing.sequenceBlockSize`: Number of receipt sequence values reserved per database round-trip (default: 100). Larger blocks reduce database contention; smaller blocks reduce the sequence values skipped on restart (up to blockSize - 1 per group). Receipt numbers are always unique but may skip values. | ||
| Every `billing.*` property which you can find defined in the `config.xml` file in this repository inside a `<globalProperty>` tag, goes in `globalproperties/billing.xml` |
There was a problem hiding this comment.
| - `billing.sequenceBlockSize`: Number of receipt sequence values reserved per database round-trip (default: 100). Larger blocks reduce database contention; smaller blocks reduce the sequence values skipped on restart (up to blockSize - 1 per group). Receipt numbers are always unique but may skip values. | |
| Every `billing.*` property which you can find defined in the `config.xml` file in this repository inside a `<globalProperty>` tag, goes in `globalproperties/billing.xml` | |
| - `billing.sequenceBlockSize`: Number of receipt sequence values reserved per database round-trip (default: 100). Larger blocks reduce database contention; smaller blocks reduce the sequence values skipped on restart (up to blockSize - 1 per group). Receipt numbers are always unique but may skip values. | |
| Every `billing.*` property defined inside a `<globalProperty>` tag in this repository's `config.xml` goes in `globalproperties/billing.xml`. |
The indent makes this render inside the sequenceBlockSize bullet. If the list goes per @wikumChamith's comment, this sentence should stay.



Replaces the Installation and Configuration sections with content package setup, covering the
globalproperties,billableservices,paymentmodes,cashpointsandcashieritempricesInitializer domains with example files for each. Also corrects the requirements list — fhir2 and event are required modules rather than optional — adds the undocumentedbilling.currencySymbolproperty, and fixes the declared default forbilling.patientDashboard2BillCount.