Dental Chart Selector | Teeth Widget | Tooth select widget | Odoo Tooth select widget | Tooth Chart
by AVERIANS https://www.averians.com$ 157.17
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Purchase (purchase)
• Sales (sale_management) • Invoicing (account) • Discuss (mail) |
| Lines of code | 727 |
| Technical Name |
ais_tooth_select_widget |
| License | See License tab |
| Website | https://www.averians.com |
| Availability |
Odoo Online
Odoo.sh
On Premise
|
| Odoo Apps Dependencies |
•
Purchase (purchase)
• Sales (sale_management) • Invoicing (account) • Discuss (mail) |
| Lines of code | 727 |
| Technical Name |
ais_tooth_select_widget |
| License | See License tab |
| Website | https://www.averians.com |
Dental Chart Selector | Teeth Widget | Tooth select widget | Odoo Tooth select widget | Tooth Chart
This module enables Odoo users to show dental chart widget for tooth selection with multiple numbering systems.
Key Features
- Support for FDI (ISO 3950) and Universal (ADA) numbering systems
- Adult (32 teeth) and child (20 teeth) dentition support
- Multiple and single tooth selection modes
- Realistic tooth images with occlusal view
- Easy integration with any model using a mixin
- Computed fields for tooth count and display names
- JSON-based storage for efficient data handling
- Responsive design with hover effects
01
How to Use the Mixin with Your Model.
Step 1: Inherit the Dental Chart Mixin
Add the mixin to your model to automatically get all tooth selection fields and methods:
from odoo import models, fields
class YourModel(models.Model):
_name = 'your.model'
_description = 'Your Model Description'
_inherit = ['dental.chart.mixin']
# Your other fields here
patient_name = fields.Char(string='Patient Name')
treatment_date = fields.Date(string='Treatment Date')
notes = fields.Text(string='Notes')
02
Use the 'dental_chart_selector' widget in your XML view.
Step 1: Inherit the Dental Chart Mixin
Add the mixin to your model to automatically get all tooth selection fields and methods:
<record id="view_your_model_form" model="ir.ui.view">
<field name="name">your.model.form</field>
<field name="model">your.model</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="patient_name"/>
<field name="treatment_date"/>
</group>
<!-- Dental Chart Widget -->
<field name="selected_teeth_data"
widget="dental_chart_selector"/>
<!-- Display selected teeth info -->
<group>
<field name="selected_teeth_display"/>
<field name="selected_teeth_count"/>
</group>
<field name="notes"/>
</sheet>
</form>
</field>
</record>
03
The mixin provides helper methods to work with selected teeth.
Step 1: Inherit the Dental Chart Mixin
Add the mixin to your model to automatically get all tooth selection fields and methods:
# In your Python code
# Get list of selected tooth numbers
tooth_list = record.get_selected_teeth_list()
# Returns: ['11', '12', '21', '22']
# Check if specific tooth is selected
is_selected = record.is_tooth_selected('11')
# Returns: True or False
# Add teeth to selection
record.add_teeth_to_selection(['13', '14'])
# Remove teeth from selection
record.remove_teeth_from_selection(['12'])
# Clear all selected teeth
record.clear_teeth_selection()
04
Widget Configuration Options.
Step 1: Inherit the Dental Chart Mixin
Add the mixin to your model to automatically get all tooth selection fields and methods:
The widget automatically inherits settings from the model. Available fields from the mixin:
- selected_teeth_data - JSON field storing selected teeth (main widget field)
- tooth_notation_system - Choice between 'fdi' or 'universal'
- dentition_type - Choice between 'permanent' or 'primary'
- selection_mode - Choice between 'multiple' or 'single'
- selected_teeth_display - Computed field showing selected teeth as text
- selected_teeth_count - Computed field with count of selected teeth
05
Demo Model Example.
The module includes a demo model that shows best practices. Access it from:
Dental Chart Demo â Patient Treatments
The widget automatically inherits settings from the model. Available fields from the mixin:
- selected_teeth_data - JSON field storing selected teeth (main widget field)
- tooth_notation_system - Choice between 'fdi' or 'universal'
- dentition_type - Choice between 'permanent' or 'primary'
- selection_mode - Choice between 'multiple' or 'single'
- selected_teeth_display - Computed field showing selected teeth as text
- selected_teeth_count - Computed field with count of selected teeth
Features Shown in Demo
- Interactive tooth selection with visual feedback
- Switch between FDI and Universal notation systems
- Toggle between adult and child dentition
- Real-time tooth count updates
- Selected teeth display in human-readable format
06
Advanced Usage Examples.
The module includes a demo model that shows best practices. Access it from:
Dental Chart Demo â Patient Treatments
# Example: Dental Treatment Record
class DentalTreatment(models.Model):
_name = 'dental.treatment'
_inherit = ['dental.chart.mixin']
patient_id = fields.Many2one('res.partner', string='Patient')
treatment_type = fields.Selection([
('filling', 'Filling'),
('extraction', 'Extraction'),
('crown', 'Crown'),
('root_canal', 'Root Canal'),
], string='Treatment Type')
def action_apply_treatment(self):
"""Apply treatment to selected teeth"""
teeth = self.get_selected_teeth_list()
for tooth in teeth:
# Your treatment logic here
self.env['treatment.log'].create({
'patient_id': self.patient_id.id,
'tooth_number': tooth,
'treatment_type': self.treatment_type,
})
Get Help From Us!
Odoo Proprietary License v1.0 This software and associated files (the "Software") may only be used (executed, modified, executed after modifications) if you have purchased a valid license from the authors, typically via Odoo Apps, or if you have received a written agreement from the authors of the Software (see the COPYRIGHT file). You may develop Odoo modules that use the Software as a library (typically by depending on it, importing it and using its resources), but without copying any source code or material from the Software. You may distribute those modules under the license of your choice, provided that this license is compatible with the terms of the Odoo Proprietary License (For example: LGPL, MIT, or proprietary licenses similar to this one). It is forbidden to publish, distribute, sublicense, or sell copies of the Software or modified copies of the Software. The above copyright notice and this permission notice must be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
Please log in to comment on this module