A made-to-order Odoo module that turns prescriptions into dispensing records with formulary control, FEFO lot/expiry, interaction alerts, and pharmacy billing. ECOSIRE scopes, builds, installs, and supports it for your pharmacy. Built to order by ECOSIRE for Odoo 17, 18, 19 — indicative price from $499.00 USD; request a quote for a scoped proposal.

A made-to-order Odoo module that turns prescriptions into dispensing records with formulary control, FEFO lot/expiry, interaction alerts, and pharmacy billing. ECOSIRE scopes, builds, installs, and supports it for your pharmacy.
今すぐのお支払いはありません。これはチームへの見積もり依頼を送信します。価格と次のステップをメールでご案内します。
Hospital and retail pharmacies live in the gap between a prescription and a dispensed pack. Odoo core gives you product, stock, lots and expiry dates, and account for invoicing — but it has no concept of a formulary, no prescription-to-dispense workflow, no drug-drug or allergy checking at the point of dispense, and no controlled-substance balance register. Pharmacists end up keying quantities into a sales order, tracking expiry on spreadsheets, and reconciling narcotics by hand. Out of the box, stock picks by whatever removal strategy is configured; it does not reason about "dispense the earliest-expiring lot for this Rx line and warn me about the interaction with the patient's other active medication." That clinical layer is exactly where native runs out of road.
Drug formulary model (`pharmacy.formulary`) mapping generic to brand, strength, dosage form, pack size, and price, linked one-to-one with `product.product`
Prescription-to-dispense workflow that reads Rx lines directly from `clinical-core-his-emr` and pre-fills a `pharmacy.dispense` document with drug, dose, and quantity
FEFO lot selection computed via `@api.depends` on `stock.lot` expiration dates, proposing the earliest-expiring batch and blocking expired stock
Drug-drug and allergy interaction alerts evaluated at dispense confirmation against the patient's active medication and allergy list, with mandatory pharmacist acknowledgement
Automatic stock deduction on confirm via native `stock.move`, keeping on-hand and lot traceability accurate without a separate sales order
Per-drug reorder point and low-stock trigger using Odoo's `orderpoint` mechanics, with configurable min/max per pharmacy location
We build a dedicated Clinical Pharmacy Dispensing module on top of your existing Odoo. A new pharmacy.formulary model maps generic to brand, strength, dosage form, and price, linked to product.product so every dispensable item stays a real stock-tracked product with a unit of measure from uom. Prescriptions flow in from the EMR: the module reads Rx lines from clinical-core-his-emr and opens a pharmacy.dispense document pre-filled with drug, quantity, and dosage instructions. A @api.depends-driven compute proposes lots by FEFO — earliest expiration_date first — using Odoo's native lot/serial tracking so stock stays accurate and traceable. At dispense time an automated check runs drug-drug and allergy rules against the patient's active medication and allergy list, surfacing alerts the pharmacist must acknowledge before confirming. Confirming the dispense posts the stock move (automatic deduction), triggers the reorder-point logic per drug, and generates a QWeb drug label with dosage instructions ready for the counter printer.
The workflow handles the messy reality of a pharmacy counter, not just the happy path. Partial dispense and generic substitution are first-class: a pharmacist can dispense part of an Rx line, swap a brand for an approved generic from the formulary, and the module tracks remaining refills so the next visit knows what is left. Regulated drugs post to a pharmacy.controlled.register with a running balance log — every issue and receipt writes an immutable ledger row for inspection. Billing is flexible: a counter dispense either posts to the patient's account.move invoice for hospital in-patients or rings up as a walk-in sale, respecting your existing chart of accounts and tax configuration. Security is enforced with ir.model.access.csv plus record rules so pharmacy technicians, pharmacists, and auditors see only what their role allows, and near-expiry and slow-moving stock reports give the pharmacy in-charge a weekly view of what to return or discount before it dies on the shelf. Everything is reachable over the standard XML-RPC / JSON-RPC API for integration with external label printers or POS hardware, and the build targets Odoo 17.0, 18.0, and 19.0 on Community or Enterprise (Enterprise adds native studio/e-sign niceties we wire to where relevant).
Because this is build-to-order, nothing ships until we agree the scope. We start with a short scoping call, confirm which formulary structure, interaction ruleset, controlled-substance regulations, and billing flow apply to your pharmacy, then build on a staging environment you can test against real prescriptions. Typical delivery is 2-4 weeks from confirmed scope; you get UAT on staging, a rollback plan, and a defined go-live. Pricing starts from $499 (indicative, single-company base scope); multi-company or multi-branch pharmacy networks, deeper localization of controlled-substance reporting, and the volume of legacy drug/stock data to migrate increase the quoted scope.
Runs an in-patient and out-patient pharmacy where prescriptions originate in the EMR. Needs dispensing tied to the patient record, FEFO expiry control, interaction checking, and controlled-substance balances that survive an inspection — all inside the same Odoo the hospital already runs.
Operates one or more retail counters and wants prescriptions, walk-in sales, batch/expiry, and reorder points in Odoo instead of a disconnected POS. Cares about counter billing speed, near-expiry returns, and refill tracking for repeat customers.
Dispenses at the counter and is accountable for interaction alerts, allergy checks, and correct substitution. Needs the workflow to surface warnings before confirming and to record every substitution and partial dispense for clinical audit.
Reviews controlled-substance movements and expiry write-offs. Needs an append-only balance register, role-scoped read access, and reports that reconcile physical stock against the ledger without manual spreadsheets.
ecosire.com でライセンスを購入し、アカウント ダッシュボードから Clinical Pharmacy Dispensing モジュールの ZIP をダウンロードします。
ZIP をサーバー上の Odoo カスタム アドオン フォルダーに抽出します (または、[アプリ] > [Odoo.sh / runbot のファイルからインストール] を介してアップロードします)。
開発者モードをアクティブにし、アプリを開き、「アプリリストの更新」をクリックして、「Clinical Pharmacy Dispensing」を検索し、「インストール」を押します。
新しいメニューを開き、ECOSIRE ライセンス キーを貼り付け、外部認証情報 (Shopify、Amazon、Stripe など) を接続して保存します。
組み込みの接続テストを実行し、最初の 10 レコードを同期し、定期的な cron をスケジュールします。何か問題が発生した場合はサポートにお問い合わせください。
| 基準 | エコシエール | カスタムビルド | 競合他社 | オドゥー ネイティブ |
|---|---|---|---|---|
| Prescription-to-dispense workflow | Rx lines pulled from EMR into a dispense document | Possible but you specify and build every rule | Generic dispensing screen, limited EMR link | |
| FEFO batch/expiry dispensing | Earliest-expiry lot proposed, expired stock blocked | Buildable on stock lots with effort | Lot tracking, FEFO logic varies | |
| Interaction & allergy alerts | Checked at dispense against patient meds/allergies | Fully custom ruleset to design and code | Basic or absent, rarely patient-aware | |
| Controlled-substance register | Append-only balance ledger tailored to jurisdiction | Bespoke build and compliance mapping | Sometimes a basic register | |
| Refills & substitution | Remaining-refill tracking and audited generic swap | Design and implement from scratch | Partial, product-dependent | |
| Counter billing | Posts to patient invoice or walk-in sale | Wire to account yourself | Own billing, may not match your accounts | |
| Odoo 17/18/19 + Community/Enterprise | Built and tested for your version and edition | You maintain version compatibility | Depends on vendor's supported versions | |
| Support & ownership | Support window plus full git repo handover | In-house team owns all maintenance | Vendor licence and support terms |
No. Clinical Pharmacy Dispensing is build-to-order. ECOSIRE builds it for your specific formulary, interaction rules, controlled-substance regulations, and billing flow, then installs and supports it. It is not a pre-packaged apps.odoo.com download.
Typical delivery is 2-4 weeks from confirmed scope. After the scoping call we build on a staging environment, run UAT against your real prescriptions, and agree a go-live date. Larger multi-branch networks or heavy data migration can extend that timeline, which we confirm in writing during scoping.
Pricing starts from $499, indicative for a single-company base scope. The from-price is not a fixed quote — after a short scoping call we send a fixed quote reflecting your exact requirements. Multi-company networks, deeper controlled-substance localization, and legacy data migration volume increase the quoted scope.
Every build includes a post-go-live support window for defect fixes and configuration tweaks. Because we hand over the full git repository, you own the code. We also offer version-upgrade support to move the module across Odoo 17/18/19 as you upgrade your platform.
Yes. The module reads prescription lines from `clinical-core-his-emr` and dispenses through native Odoo `stock` lots and `product`, so on-hand, lot traceability, and expiry stay in Odoo's standard inventory engine. Billing posts to your existing `account` chart of accounts and tax setup.
Yes. Regulated drugs post to an append-only controlled-substance register with a running balance per drug and per issue/receipt event, designed to reconcile against physical counts for inspection. We tailor the register fields and reporting to your jurisdiction's requirements during scoping.
The module runs on both Odoo Community and Enterprise for versions 17.0, 18.0, and 19.0. Core dispensing, FEFO, interaction alerts, and billing work on Community. Enterprise-only conveniences (such as Studio or e-sign touchpoints) are wired in where relevant if you run Enterprise.
A made-to-order Odoo module that turns prescriptions into dispensing records with formulary control, FEFO lot/expiry, interaction alerts, and pharmacy billing. ECOSIRE scopes, builds, installs, and supports it for your pharmacy.