Repository
OCA/vertical-medical · module folder · Try on Runboat
Module version
1.0.0
Category
Medical
Folder size
0.06 MB
License
GPL-3
Application
No
Auto-installable
No
Website
https://laslabs.com
Last tracking update
2026-08-07 07:17:46
Authors
Odoo Community Association (OCA), LasLabs, Odoo Medical Team
Maintainers
Odoo Community Association (OCA), LasLabs, Odoo Medical Team
Committers
Pedro M. Baeza, Jordi Ballester, Dave Lasley
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
None
Description

Code Analysis

Views touched (7)
XML IDNameModelTypeStatus
crm_case_form_view_oppor crm.lead.form crm.lead form Inherits crm.crm_case_form_view_oppor
medical_prescription_order_line_form_view Prescription Order Line medical.prescription.order.line form Inherits medical_prescription.medical_prescription_order_line_form_view
medical_prescription_order_line_search_view Prescription Order Line Search medical.prescription.order.line search Inherits medical_prescription.medical_prescription_order_line_search_view
medical_prescription_order_line_tree_view Prescription Order Lines medical.prescription.order.line tree Inherits medical_prescription.medical_prescription_order_line_tree_view
medical_rx_sale_wizard_view_form medical.rx.sale.wizard.view.form rx.sale.wizard form New
medical_sale_wizard_view_form medical.sale.wizard.view.form medical.sale.wizard form New
view_order_form sale.order.form sale.order form Inherits sale.view_order_form
HTTP endpoints (0)

No HTTP endpoints found for this module.

Models touched (10)

New fields (5)
  • is_prescription Boolean
    compute='_compute_prescription_order_and_patient_ids' default=False readonly=True
  • patient_ids Many2many → medical.patient
    comodel_name='medical.patient' compute='_compute_prescription_order_and_patient_ids' readonly=True string='Patients'
  • pharmacy_id Many2one → medical.pharmacy
    comodel_name='medical.pharmacy' string='Pharmacy'
  • prescription_order_ids Many2many → medical.prescription.order
    comodel_name='medical.prescription.order' compute='_compute_prescription_order_and_patient_ids' readonly=True string='Prescriptions'
  • prescription_order_line_ids Many2many → medical.prescription.order.line
    comodel_name='medical.prescription.order.line' string='Prescription Lines'
Public methods (0)

No public methods.

New fields (1)
  • is_prescription Boolean
    default=_compute_default_is_prescription readonly=True
Public methods (1)
  • makeOrder(self)
    @api.multi
    This function creates Quotation on given case. :return: Dictionary value of created sales order. :rtype: dict

New fields (2)
  • is_controlled Boolean
    help='Check this if the medicament is a controlled substance' string='Controlled Substance'
  • is_prescription Boolean
    help='Check this if a prescription is required for this medicament' string='Prescription Required'
Public methods (0)

No public methods.

New fields (3)
  • receive_date Datetime
    default=fields.Datetime.now help='When the Rx was received' string='Receipt Date'
  • receive_method Selection
    default='fax' help='How the Rx was received' string='Receipt Method' args: [('online', 'E-Prescription'), ('phone', 'Phoned In'), ('fax', 'Fax'), ('mail', 'Physical Mail'), ('transfer', 'Transferred In')]
  • verify_method Selection
    default='none' help='Method of Rx verification' args: [('none', 'Not Verified'), ('doctor_phone', 'Called Doctor')]
Public methods (0)

No public methods.

New fields (12)
  • can_dispense Boolean
    compute='_compute_can_dispense_and_qty' default=False help='Can this prescription be dispensed?' readonly=True
  • can_dispense_qty Float
    compute='_compute_can_dispense_and_qty' default=0.0 help='Amount that can be dispensed (using medicine dosage)'
  • cancelled_dispense_qty Float
    compute='_compute_dispensings_and_orders' default=0.0 help='Dispense qty cancelled (using medicine dosage)' readounly=True
  • dispensed_ids One2many → procurement.order
    compute='_compute_dispensings_and_orders' readonly=True args: 'procurement.order'
  • dispensed_qty Float
    compute='_compute_dispensings_and_orders' default=0.0 help='Amount already dispensed (using medicine dosage)' readonly=True
  • exception_dispense_qty Float
    compute='_compute_dispensings_and_orders' default=0.0 help='Qty of dispense exceptions (using medicine dosage)' readounly=True
  • pending_dispense_qty Float
    compute='_compute_dispensings_and_orders' default=0.0 help='Amount pending dispense (using medicine dosage)' readounly=True
  • receive_date Datetime
    default=fields.Datetime.now help='When the Rx was received' string='Receipt Date'
  • receive_method Selection
    default='fax' help='How the Rx was received' string='Receipt Method' args: [('online', 'E-Prescription'), ('phone', 'Phoned In'), ('fax', 'Fax'), ('mail', 'Physical Mail'), ('transfer', 'Transferred In')]
  • sale_order_ids Many2many → sale.order
    comodel_name='sale.order' compute='_compute_dispensings_and_orders' readonly=True
  • sale_order_line_ids One2many → sale.order.line
    comodel_name='sale.order.line' inverse_name='prescription_order_line_id' readonly=True
  • verify_method Selection
    default='none' help='Method of Rx verification' args: [('none', 'Not Verified'), ('doctor_phone', 'Called Doctor')]
Public methods (0)

No public methods.

New fields (8)
  • order_id Many2one → medical.sale.wizard
    comodel_name='medical.sale.wizard' readonly=True required=True string='Order'
  • prescription_order_line_id Many2one → medical.prescription.order.line
    comodel_name='medical.prescription.order.line' string='Prescription Line'
  • price_subtotal Float
    compute='_compute_all_amounts' digits_compute=dp.get_precision('Account') required=True
  • price_unit Float
    digits_compute=dp.get_precision('Product Price') required=True args: 'Unit Price'
  • product_id Many2one → product.product
    comodel_name='product.product' string='Product'
  • product_uom Many2one → product.uom
    comodel_name='product.uom' string='Unit of Measure'
  • product_uom_qty Float
    digits_compute=dp.get_precision('Product UoM') required=True args: 'Quantity'
  • sequence Integer
Public methods (0)

No public methods.

New fields (24)
  • amount_untaxed Float
    compute='_compute_all_amounts' digits_compute=dp.get_precision('Account')
  • client_order_ref Char
    string='Order Reference'
  • company_id Many2one → res.company
    comodel_name='res.company' required=True string='Company'
  • currency_id Many2one → res.currency
    comodel_name='res.currency' string='Currency'
  • date_order Date
    string='Order Date'
  • fiscal_position Many2one → account.fiscal.position
    comodel_name='account.fiscal.position' string='Fiscal Position'
  • line_cnt Integer
    compute='_compute_line_cnt' string='Order Line Count'
  • note Text
  • order_line One2many → medical.sale.line.wizard
    comodel_name='medical.sale.line.wizard' inverse_name='order_id' required=True string='Order Lines'
  • origin Char
  • partner_id Many2one → res.partner
    comodel_name='res.partner' required=True string='Customer'
  • partner_invoice_id Many2one → res.partner
    comodel_name='res.partner' string='Invoice Partner'
  • partner_shipping_id Many2one → res.partner
    comodel_name='res.partner' string='Ship To'
  • patient_id Many2one → medical.patient
    comodel_name='medical.patient' help='Patient (used for defaults when creating sale lines)' required=True string='Patient'
  • payment_term Many2one → account.payment.term
    comodel_name='account.payment.term' string='Payment Term'
  • pharmacy_id Many2one → medical.pharmacy
    comodel_name='medical.pharmacy' required=True string='Pharmacy'
  • prescription_order_id Many2one → medical.prescription.order
    comodel_name='medical.prescription.order' readonly=True required=True string='Prescription'
  • prescription_wizard_id Many2one → medical.rx.sale.wizard
    comodel_name='medical.rx.sale.wizard' default=_compute_default_session inverse_name='sale_wizard_ids' readonly=True
  • pricelist_id Many2one → product.pricelist
    comodel_name='product.pricelist' required=True string='Pricelist'
  • project_id Many2one → account.analytic.account
    comodel_name='account.analytic.account' string='Project'
  • section_id Many2one → crm.case.section
    comodel_name='crm.case.section' string='Sales Team'
  • state Selection
    default='new' readonly=True args: [('new', _('Not Started')), ('start', _('Started')), ('done', _('Completed'))]
  • user_id Many2one → res.users
    comodel_name='res.users' readonly=True required=True string='Salesperson'
  • warehouse_id Many2one → stock.warehouse
    comodel_name='stock.warehouse' required=True string='Warehouse'
Public methods (1)
  • next_wizard(self)
    @api.multi

New fields (7)
  • date_order Datetime
    default=fields.Datetime.now help=_('Date for the new orders') required=True
  • pharmacy_id Many2one → medical.pharmacy
    comodel_name='medical.pharmacy' help=_('Pharmacy to dispense orders from') required=True string='Pharmacy'
  • prescription_line_ids Many2many → medical.prescription.order.line
    comodel_name='medical.prescription.order.line' default=_compute_default_session readonly=True required=True string='Prescription'
  • sale_wizard_ids One2many → medical.sale.wizard
    comodel_name='medical.sale.wizard' help=_('Orders to create when wizard is completed') inverse_name='prescription_wizard_id' string='Orders'
  • split_orders Selection
    default='patient' help=_('How to split the new orders') required=True args: [('partner', 'By Customer'), ('patient', 'By Patient'), ('all', 'By Rx Line')]
  • state Selection
    default='new' readonly=True args: [('new', _('Not Started')), ('start', _('Started')), ('partial', _('Open')), ('done', _('Completed'))]
  • warehouse_id Many2one → stock.warehouse
    comodel_name='stock.warehouse' required=True string='Warehouse'
Public methods (3)
  • create_sale_wizards(self)
    @api.multi
  • do_rx_sale_conversions(self)
    @api.multi
  • next_wizard(self)
    @api.model

New fields (4)
  • patient_ids Many2many → medical.patient
    comodel_name='medical.patient' compute='_compute_patient_ids' readonly=True string='Patients'
  • pharmacy_id Many2one → medical.pharmacy
    comodel_name='medical.pharmacy' string='Pharmacy'
  • prescription_order_ids Many2many → medical.prescription.order
    comodel_name='medical.prescription.order' compute='_compute_prescription_order_ids' readonly=True string='Prescriptions'
  • prescription_order_line_ids Many2many → medical.prescription.order.line
    comodel_name='medical.prescription.order.line' compute='_compute_prescription_order_ids' readonly=True string='Prescription Lines'
Public methods (0)

No public methods.

New fields (4)
  • dispense_qty Float
    compute='_compute_dispense_qty' default=0.0 readonly=True
  • medication_id Many2one → medical.patient.medication
    comodel_name='medical.patient.medication' related='prescription_order_line_id.medical_medication_id' string='Medication'
  • patient_id Many2one → medical.patient
    comodel_name='medical.patient' related='prescription_order_line_id.patient_id' string='Patient'
  • prescription_order_line_id Many2one → medical.prescription.order.line
    comodel_name='medical.prescription.order.line' string='Prescription Line'
Public methods (0)

No public methods.