2025-12-11 to 2026-01-06
December 11, 2025 - January 6, 2026
Breaking Changes
Bucket Functionality Removed
Completely removed the bucket functionality from the application
Deleted all bucket-related models, controllers, views, tests, and database migrations
Any workflows depending on buckets will need to be updated
New Features
B2B Company Payment Bypass
Orders with B2B company payors no longer require a payment method
Automatic invoice generation when B2B orders move past PendingPayment
Email invoices sent automatically for companies with
SEND_EVERY_INVOICEstatement typeInvoice template updated to only show prescription order items (excludes shipping services)
NetSuite Integration Enhancements
Company Sync to NetSuite
Companies can now be synced to NetSuite as customers
Introduced
NetSuiteCustomercontract andSyncsCustomerWithNetSuitetraitUnified sync mechanism for both Patients and Companies
Added manual sync button in Company UI
New NetSuite fields added to Company model
Formula Assembly Item Sync
Formulas now automatically sync as Assembly Items to NetSuite when first formula log is finalized
SyncNetSuiteAssemblyevent dispatched on formula log finalization
Chemical Item ID Naming
New naming convention for chemicals in NetSuite:
Primary NDC → use NDC directly
Multiple NDCs with primary set → use primary NDC
Multiple NDCs without primary → use first NDC
No NDC but has UPC → prefix with
UPC-No NDC/UPC but has OTHER identifier → prefix with
OTHER-No identifiers → fallback to
Chemical-<internal-key>
Order Locking for Fill Views
Added lock status indicators to PV verification, dispensing, shipping, and pickup pages
Action buttons disabled/hidden when order is locked by another user
New
OrderIsLockedmiddleware for fill routesNew fill sub-layout component for consistent lock status display
Pricing Engine Refactor
Introduced
PricingContextDTO to replace loose arraysEnhanced rule and discount matching logic
Comprehensive unit tests for rule resolution, inheritance, discount stacking, and min price enforcement
Fixed pricing discount caching issue in applies-to dropdown
Pharmacist Consultation Tab Enhancements
Added alert message to consultation page
Added bill_to contact details
Added PrescriptionItem list with order items and fills
"New Rx/Refill" badge now visible in all modes
Chemical Identifier Requirements
At least one identifier now required when creating a chemical
Only one primary identifier allowed per chemical
Inventory Validation for Expired/Zero Stock
Prevents using expired or zero-stock inventory for:
Chemical, device, or formula lot inventories during compounding
Formula lots during fill dispensing
Two-level validation: UI error on scan + backend validation
Inventory adjustment dialog now reopens on validation errors
Improvements
RBAC & Permissions
Corporate User RBAC fixes
Global roles can no longer be edited
Fixed protected group permissions
Pharmacy Settings Reorganization
NetSuite fields relocated to Integrations section
Integrations organized by service categories
Added "NetSuite Enabled" field
Preset Queues Consolidation
PR: #2505 | ClickUp: 868gwcde0, 868gwcc0j, 868gwcc5g, 868gwcckz
All preset queue functionality consolidated under Pharmacy Settings
Removed duplicate controllers and routes
Pre-seeded queues no longer show delete option
Number Formatting Standardization
Created
FormatsTotalInStocktraitNew
numberFormatterPHP helper matching frontend utilityStandardized number display across table columns and UIs
Activity Log Improvements
Fixed activity tracking for bulk updates
Date fields now properly formatted
Improved field display labels
Vendor Feature Flags
Added feature flags for vendor edit, delete, and restore operations
UI actions hidden when features are disabled
Shipping Service Improvements
Preset shipping services now fetched from ShipEngine API
Resolves carrier ID mismatch issues
Rx Origin Options Cleanup
Removed Surescripts and Prescriber Portal options
E-Fax orders now auto-select E-Fax as Rx Origin (read-only)
Formula Rx Last Date Used
Company Resource Address Structure
Simplified company address to singular
addresskeyOptimized eager loading
Bug Fixes
Order Management
PR | Description | ClickUp |
|---|---|---|
Fixed unlinking Order Groups removing all linked orders | ||
Fixed linked orders scope always classified as shipping | ||
Made cancellation reason field required | ||
Disabled payment page in view mode | ||
Fixed patient search by complete DOB |
Prescription & Medication
PR | Description | ClickUp |
|---|---|---|
Prevented duplicate prescriptions with same medication | ||
Fixed prescription image upload display | ||
Auto-populate quantity owed in dispensing | ||
Fixed HTML tags showing in medication instructions |
Patient & Clinical Info
PR | Description | ClickUp |
|---|---|---|
Fixed clinical info page crash on patient removal | ||
Added activate/deactivate for patient allergies and medications | ||
Fixed null middle name display in payment tab |
Verification & Dispensing
PR | Description | ClickUp |
|---|---|---|
Fixed pharmacist checks | ||
Fixed hidden checklist items still being validated | ||
Added type field to checklist items form |
Inventory & Compounding
PR | Description | ClickUp |
|---|---|---|
Fixed newly created storage location not appearing until refresh |
UI & Search Issues
PR | Description | ClickUp |
|---|---|---|
Fixed advanced search badge glitch on clear all | ||
Fixed missing package size in medication search results | ||
Fixed false "unsaved changes" warnings | ||
Made activation labels consistent across interfaces | ||
Fixed Order/Fill ID label inconsistency in queues |
Table Sorting Issues
PR | Description | ClickUp |
|---|---|---|
Fixed PV2 memo column sorting | ||
Fixed sig codes language column sorting | ||
Fixed shipping methods price column sorting | ||
Fixed permissions page sorting |
Form Validation
PR | Description | ClickUp |
|---|---|---|
Fixed shipping methods form validation display | ||
Fixed sig code duplicate validation error | ||
Fixed sig code import validation for empty files |
Pharmacy & Prescriber
PR | Description | ClickUp |
|---|---|---|
Fixed carrier name search in pharmacy settings | ||
Fixed empty user count in pharmacies table | ||
Fixed company fields editable in view mode on prescriber form | ||
Fixed "Prescriber Portal" label inconsistency |
Transactions
PR | Description | ClickUp |
|---|---|---|
Removed pharmacy search from transactions (was causing errors) | ||
Added user-friendly labels for transaction status |
Other Fixes
PR | Description | ClickUp |
|---|---|---|
Fixed userback initialization error | - | |
Fixed pricing engine data resolution | - | |
Fixed table header spacing | - |