- Shipped
- August 26, 2026 at 9:26 PM UTC
- Author
- Kamo
- Commit
- 909ce42
The last four rights that named operations which did not exist. EDIT_PATIENT_DEMOGRAPHICS: a patient's details could be entered once and never corrected. A field the caller omits is left alone rather than cleared, because the alternative empties a birth date when somebody fixes a surname — and a name or date change re-indexes the identity, without which a married name leaves the patient findable only under the name they no longer use and creates a duplicate the next time anybody registers them. MANAGE_SCHEDULE_TEMPLATES: visit types and working hours are the two things that must exist before anything can be booked, and both tables were readable and neither writable. A new practice's booking screen offered nothing and there was no way to change that from inside the product. A visit type is retired rather than deleted — appointments and claims reference the code, and a code that vanishes turns a year of history into rows nobody can label. Working hours require a time zone, because availability is computed against it and a block without one is read in whoever is looking's zone. MANAGE_CLAIMS and POST_INSURANCE_PAYMENTS: the revenue cycle could read seven queues and raise no claim. Creating and sending are separate calls because they are separate decisions — a create that could submit is how an unchecked claim reaches a clearinghouse. Payments post line by line, which is how a payer adjudicates and the only way to answer "which procedure was denied and why". The claim header is summed from its lines rather than taken from the caller: a header disagreeing with its own lines is the state that produces a balance nobody can explain to a patient. Every line settled at zero with adjustments is a denial, not a payment — different worklist, different deadline. The self-pay restriction moved from a banner to a refusal. §164.522(a)(1)(vi) is a patient's right, and until now the only thing between a restricted patient and a claim to their plan was a red panel on one screen, which does nothing about a claim raised from anywhere else. Checked when the claim is raised AND again when it is sent, because it may have been recorded in between and sending is the call that actually discloses. Amounts are read through their decimal string, never a double: 0.1 + 0.2 on a claim line is a balance a patient is asked to pay and cannot be told the reason for. 24 tests.