Claims office — 837P files for the clearinghouse portal, acknowledgements, 835 review and posting, claim-billing setup
- /patients Claims section (VIEW_CLAIMS / MANAGE_CLAIMS / POST_INSURANCE_PAYMENTS): ready claims → check (problems grouped by where they are fixed, with the ...
Terminology store can hold loaded releases — load state, picker columns, ingredient links, search words
term_code_system_release gains **************** so only a COMPLETE release answers a lookup. term_concept gains concept_class (RxNorm TTY), short_display, billa...
837P claim files for hand upload, 999/277CA acknowledgements and 835 ERA review and posting
No clearinghouse contract exists, so practices upload X12 files to a portal by hand. This builds that path end to end: - 837P (005010X222A1) for one or many re...
X12 claim-file entities — billing profile, clearinghouses, billing clinicians, payer plan types, control counter, 837 batches, imports
The tables behind hand-uploaded 837P files and 999/277CA/835 imports. RemittanceAdvice.raw835 is now @JsonIgnore (an 835 names every patient it pays and the rem...
Coded pickers — RxNorm, ICD-10-CM, CVX, HCPCS
One keyboard-accessible combobox (ARIA 1.2: activedescendant, arrows, Home/End, Enter, Escape, Tab) behind four thin pickers. 250ms debounce, two-character mini...
One coherent chart — recalls, desk payments, card images, prescription print, video walk-ins
- Chart tabs in clinic order (Summary, Clinical, Visits, Monitoring, Documents, Insurance, Billing, Appointments, Messages, Records), gated per right in both ...
Billing can read a patient's desk payments and reprint a receipt
Voiding a desk payment needs MANAGE_CLAIMS or POST_INSURANCE_PAYMENTS, but listing them and reading a receipt needed BOOK_APPOINTMENTS — a biller could void a p...
Rename the chart's visit-history fetcher — the schedule already exports fetchPatientAppointments
The front desk can open, register, correct and insure a patient
- Chart page: a front-desk view (Summary, Insurance, Appointments, Messages) for members with a registration/scheduling/billing right and no care relationship...
Room-and-start passes the request so visit grants are audited with the caller
Visits and notes a doctor's office can run on — documents, printouts
Notes (P0 data loss fixed) - A reopened draft re-reads its text before the editor unlocks; if it cannot be read the editor never opens over it. Signed notes r...
Claims on the chart, honest claim sending, emergency-access review, records office that never reads a failure as empty
- Clinical proxy keeps upstream status codes, Prefer, Content-Location, Retry-After and X-Progress, and streams non-JSON bodies: CCD XML and bulk NDJSON dow...
Visits and notes a practice can run on — safe autosave contract, walk-ins, documents, printouts
Notes - Reads return the current text (original after addenda), author/cosigner names and exact id keys; GET /notes/{id} re-reads one note, audited. - Only th...
A front desk that runs a real clinic day
- Practice clock: every day, 'today' and time is the practice's own zone (no UTC days, no browser dates); turns over at the practice's midnight - Day schedule...
Front-desk registration tier, contact details, MRN assignment, search, coverage writes
- **************** members holding CREATE_PATIENTS, EDIT_PATIENT_DEMOGRAPHICS, BOOK_APPOINTMENTS or MANAGE_CLAIMS open a patient's REGISTRATION record without...
A patient's care gaps carry the measure's name and when it was computed
The chart's care-gap card shows 'Breast Cancer Screening', never a measure id, and keeps the newest result per measure.
Note author and cosigner ids as text for browsers
Member ids are int64 beyond JavaScript's exact integer range; the transient authorMemberKey / cosignerMemberKey let the chart compare "is this my note" and pre-...
The clinical tab reads like a chart — allergies, problems, medications, vitals, immunizations, orders and results, each with inline add
- ClinicalWorkspace: names the visit writes attach to (the patient's open encounter, the member's own first; picker when several; says so when none) and passe...
Chart write paths — allergies/NKDA/review, problems, visit diagnoses, vitals, outside meds, results and review; order loop closure fixes
- ChartEntryController/Service: add allergy (reaction, severity, criticality, onset), record NKDA, mark allergy list reviewed (ClinicalListReview), **********...
A front desk that runs a real clinic day
- Practice clock (practice time zone, else the organization's): every day window is the practice's, never UTC; settings + rooms endpoints (/schedule/practice)...
Chart list reviews, allergy reaction/severity, status reasons, order diagnoses, result review note
- ClinicalListReview (fhir_chart_list_review): a real reviewed-at record for the allergy and medication lists, so 'reviewed' stops meaning 'at least one row e...
Schedule entities for the practice's clock, rooms, desk payments and recall outreach
- PracticeSettings (ehr_practice_settings): the practice's time zone and default visit length - PracticeRoom (ehr_practice_room): rooms a patient is put in; ret...
Front-desk registration record — contact details, emergency contacts, MRN counter, coverage write fields
Patient gains preferred contact method, primary care member and preferred pharmacy; emergency contacts are FHIR Patient.contact (fhir_patient_contact, retired n...
Chart documents, practice note templates, note read-side text and withdrawal record
- PatientDocument (ehr_patient_document): category, title, document date, content type, size, SHA-256, imaging Img id + storage key, uploader, entered-in-erro...
Real refusals, break-glass review decisions, honest claim sending, hand-keyed EOBs
- EhrRuleViolationException: a business-rule refusal (unsigned note at close, double booking, not the author/cosigner, self-cosign, already signed, restrict...
Record how a claim was sent, and list reviewed emergency accesses
A claim gains ready_at, submission_channel, submitted_by_member_id and submission_note, so a claim sent by hand through a payer portal or on paper is recorded h...
Invoice links keep working after a resend or reminder; a late-sent invoice is not chased the same hour
Every send and reminder minted a new view-online token and replaced the old one, so the link in the first email Harmony received read "no longer available" once...
The invoice shows the Receivables remittance block, as quotes do
The invoice dialog renders the same QuoteRemittanceBlock the quote preview uses, from the seller's Receivables details, while anything is owed. The Receivables ...
The invoice's remittance block reads exactly as the quote's
Same heading, labels and ACH Credit Only notice (signer.quote.remit), with the invoice-number reference kept beneath it.
Invoices print the Receivables ACH details exactly as quotes do
The PDF and the email now carry the quote's remittance block, word for word: - Remit payment to - payee (legal name) - bank - routing number (ABA) - account num...
Rebuild - the previous run could not reach data.forgejo.org to fetch actions/checkout
Change seats and licenses from a date, with the prorated charge previewed
Change seats & licenses opens a dialog to set: - seats and each add-on's licenses (per-user licenses follow the seats until typed over); - the date it takes e...
Endpoints for dated, prorated seat and license changes; the job applies them
New endpoints: - POST **************** - POST /subscriptions/{uid}/changes - GET /subscriptions/{uid}/changes - POST **************** The hourly billing job ap...
Seat and add-on license changes mid-period, on a chosen date, prorated
SubscriptionChangeService records a change to a live subscription's seats and add-on licenses effective on any date from today. It previews the exact prorated c...
Plain-language statuses everywhere; agreed add-on prices and a monthly discount in the order wizard
StatusChip (89 call sites) showed raw codes such as PENDING_APPROVAL; it now shows the dictionary's words (common.statusCodes), or the code read aloud for one i...
Pay by card on the invoice page
When the server offers it (platform-sold invoices with a balance), the invoice page shows Pay by card. It posts to /<locale>/i/<token>/pay, which sends the cust...
Invoice checkout sessions are unkeyed, like every checkout Session
A stable idempotency key would hand a returning customer the same, possibly expired, payment page ****************
Customers pay invoices by card online; a bank's SCA request reaches the customer
On invoices sold by the platform org (the only seller whose Stripe account it is): - the public invoice offers Pay by card: POST **************** opens a Stri...
Pay a subscription invoice by card on a Stripe-hosted page
Internal POST **************** creates a payment-mode Checkout session for the amount owed. It saves the card for future automatic charges when the customer has...
Track an invoice's pending online card payment
New nullable column **************** plus helpers to list and settle pending sessions idempotently (a payment carrying the same processor reference is never rec...
Negotiated add-on prices and a quote's discount carry into the subscription
Converting a quote now carries: - each add-on's agreed per-license price (when it differs from the catalog's) - the quote's or accepted option's discount, as a ...
Auto-renew and notes work on live subscriptions; card on file and charge card now
- The auto-renew switch sets the subscription's own renewal (it posted a field the draft-only order update ignored) and says when a non-renewing one ends. - N...
Cap only add-ons the organization holds
An add-on it does not hold is left to the existing entitlement gates, as before caps existed - paying organizations running a phone server without the add-on co...
The owners' invoice link opens on the workspace host the org can actually reach
Built internal.<domain> by hand, which OrgDomainRuleGuardTest forbids: an org whose own domain is not finished would get a link to a host that answers nothing. ...
Show licenses held and in use where mailboxes and extensions are assigned
Owner rule 2026-10-22: per-user add-ons bill the licenses purchased, and the licenses are the only limit on what may be in use. A LicenseUsageMeter ("4 of 10 li...
Quotes start subscriptions; offline acceptance; tenant orders; plain-language billing
- Quotes: "Add from subscription catalog" fills a row from the live plans/add-ons (name, monthly price, "per user / month" / "per 10 GB block / month") and ke...
Refuse a department or contact mailbox past the email licenses
Owner rule 2026-10-22: per-user add-ons bill the licenses purchased; how many mailboxes may be in use is limited only by them. Under a 3rd-party provider a depa...
Like what you see shipping?
All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.
