Skip to content

Commit

Permalink
[IMP] dental: implemented various functionalities
Browse files Browse the repository at this point in the history
Implemented patient details page for Dental module. Added controller route to di
splay patient-specific information with sections for Personal, Medical History,
Medical Aid, and Dental History. Integrated responsive design with Bootstrap car
ds and breadcrumbs navigation.
  • Loading branch information
akya-odoo committed Sep 6, 2024
1 parent b81da5f commit bcf2156
Show file tree
Hide file tree
Showing 58 changed files with 499 additions and 1,423 deletions.
3 changes: 2 additions & 1 deletion dental/__init__.py
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
from . import models
from . import models
from . import controller
54 changes: 31 additions & 23 deletions dental/__manifest__.py
Original file line number Diff line number Diff line change
@@ -1,25 +1,33 @@
{
'name': 'Dental',
'version': '1.0',
'summary': 'Manage dental history and appointments',
'description': 'Module to manage medical history and appointments',
'author': 'Akya',
'sequence': '15',
'depends': ['base', 'mail', 'account'],
'data': [
'security/ir.model.access.csv',
'views/dental_patient_view.xml',
'views/dental_medication_view.xml',
'views/dental_chronic_diseases_view.xml',
'views/dental_allergies_view.xml',
'views/dental_habits_view.xml',
'views/dental_medical_aid_view.xml',
'views/dental_history_view.xml',
'views/dental_menus.xml',
'report/dental_patient_report.xml',
'report/dental_patient_report_template.xml'
],
'installable': True,
'application': True,
'license': 'AGPL-3'
"name": "Dental",
"version": "1.0",
"summary": "Manage dental history and appointments",
"description": "Module to manage medical history and appointments",
"author": "Akya",
"sequence": "15",
"depends": ["base", "mail", "account", "website"],
"data": [
"security/ir.model.access.csv",
"views/dental_patient_view.xml",
"views/dental_medication_view.xml",
"views/dental_chronic_diseases_view.xml",
"views/dental_allergies_view.xml",
"views/dental_habits_view.xml",
"views/dental_medical_aid_view.xml",
"views/dental_history_view.xml",
"views/dental_menus.xml",
"views/dental_controller_view.xml",
"report/dental_patient_report.xml",
"report/dental_patient_report_template.xml",
],
"images": [
"static/description/icon.png",
"static/description/bag.svg",
"static/description/folder.svg",
"static/description/task.svg",
"static/description/Bill.svg",
],
"installable": True,
"application": True,
"license": "AGPL-3",
}
1 change: 1 addition & 0 deletions dental/controller/__init__.py
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
from . import dental_controller
66 changes: 66 additions & 0 deletions dental/controller/dental_controller.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
from odoo import http
from odoo.http import request


class DentalController(http.Controller):

@http.route("/dental", auth="public", website=True)
def display_patients(self):
current_user = request.env.user
patients = request.env["dental.patient"].search(
[("guarantor_id", "=", current_user.partner_id.id)]
)
return request.render("dental.dental_patient_page", {"patients": patients})

@http.route("/dental/<string:patient_name>", auth="public", website=True)
def display_patient_details(self, patient_name):
patient = (
request.env["dental.patient"]
.sudo()
.search([("name", "=", patient_name)], limit=1)
)

if not patient:
return request.not_found()

return request.render(
"dental.dental_patient_details_page", {"patient": patient}
)

@http.route(
"/dental/<string:patient_name>/personal",
type="http",
auth="public",
website=True,
)
def render_dental_patient_form(self, patient_name):
patient = (
request.env["dental.patient"]
.sudo()
.search([("name", "=", patient_name)], limit=1)
)
return request.render(
"dental.dental_patient_form_template",
{
"patient": patient,
},
)

@http.route(
"/dental/<string:patient_name>/medical_history",
type="http",
auth="public",
website=True,
)
def dental_history_list_view(self, patient_name):
patient = (
request.env["dental.patient"]
.sudo()
.search([("name", "=", patient_name)], limit=1)
)
return request.render(
"dental.patient_details_controller_appointment",
{
"patients": patient.history_ids,
},
)
2 changes: 1 addition & 1 deletion dental/models/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,4 +4,4 @@
from . import dental_allergies
from . import dental_habits
from . import dental_medical_aid
from . import dental_history
from . import dental_history
8 changes: 4 additions & 4 deletions dental/models/dental_allergies.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@


class DentalAllergies(models.Model):
_name = 'dental.allergies'
_description = 'Dental Allergies list '
_order = 'name'
_name = "dental.allergies"
_description = "Dental Allergies list "
_order = "name"

name = fields.Char(string="Allergies", required=True)
sequence = fields.Integer(string='Sequence', default=10)
sequence = fields.Integer(string="Sequence", default=10)
8 changes: 4 additions & 4 deletions dental/models/dental_chronic_diseases.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@


class DentalChronicDiseases(models.Model):
_name = 'dental.chronic.diseases'
_description = 'Dental chronic diseases list'
_order = 'name'
_name = "dental.chronic.diseases"
_description = "Dental chronic diseases list"
_order = "name"

name = fields.Char(string="Chronic Condition", required=True)
sequence = fields.Integer(string='Sequence', default=10)
sequence = fields.Integer(string="Sequence", default=10)
8 changes: 4 additions & 4 deletions dental/models/dental_habits.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@


class DentalHabits(models.Model):
_name = 'dental.habits'
_description = 'Dental habits and substance abuse list'
_order = 'name'
_name = "dental.habits"
_description = "Dental habits and substance abuse list"
_order = "name"

name = fields.Char(string="Habits/Substance Abuse", required=True)
sequence = fields.Integer(string='Sequence', default=10)
sequence = fields.Integer(string="Sequence", default=10)
88 changes: 47 additions & 41 deletions dental/models/dental_history.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,18 +3,18 @@


class DentalHistory(models.Model):
_name = 'dental.history'
_description = 'Dental history of patient'
_name = "dental.history"
_description = "Dental history of patient"

history_id = fields.Many2one('dental.patient')
date = fields.Date(string="Date", default= date.today())
history_id = fields.Many2one("dental.patient")
date = fields.Date(string="Date", default=date.today())
name = fields.Char(string="Name", required=True)
description = fields.Char(string="Description")
tags = fields.Char(string="Tags")
patient = fields.Char()
attend = fields.Boolean(string="Did not attend", required=True)
responsible = fields.Char()
company = fields.Many2one('res.company', string="Company")
company = fields.Many2one("res.company", string="Company")
history = fields.Text(string="History")
xray_file1 = fields.Binary(string="X-ray file 1")
xray_file2 = fields.Binary(string="X-ray file 2")
Expand All @@ -26,52 +26,58 @@ class DentalHistory(models.Model):
consulatation = fields.Selection(
copy=False,
selection=[
("full_consultation_and_scan", "Full Consultation with bite-wings and scan"),
(
"full_consultation_and_scan",
"Full Consultation with bite-wings and scan",
),
("basic_consultation", "Basic Consultation"),
("no_consultation", "No Consultation"),
],string="Consultation Type")
],
string="Consultation Type",
)
call_out = fields.Boolean(string="Call out")
scale_and_polish = fields.Boolean(string="Scale and Push")
flouride = fields.Boolean(string="Flouride")
filling_description = fields.Text(string="Filling Description")
aligner_attachment = fields.Boolean(string="Alligner delivery and attachment placed")
aligner_attachment = fields.Boolean(
string="Alligner delivery and attachment placed"
)
whitening = fields.Boolean(string="Whitening")
fissure_sealant_quantity = fields.Float(string="Fissure Sealant-Quantity")
remove_attachment = fields.Boolean(string="Attachment Removed")
alligner_follow_up_scan = fields.Boolean(string="Alligner Follow-up Scan")
other = fields.Text(string="Other")
upper_18_staining = fields.Boolean(string='18 Staining')
upper_17_staining = fields.Boolean(string='17 Staining')
upper_16_staining = fields.Boolean(string='16 Staining')
upper_15_staining = fields.Boolean(string='15 Staining')
upper_14_staining = fields.Boolean(string='14 Staining')
upper_13_staining = fields.Boolean(string='13 Staining')
upper_12_staining = fields.Boolean(string='12 Staining')
upper_11_staining = fields.Boolean(string='11 Staining')
upper_28_staining = fields.Boolean(string='28 Staining')
upper_27_staining = fields.Boolean(string='27 Staining')
upper_26_staining = fields.Boolean(string='26 Staining')
upper_25_staining = fields.Boolean(string='25 Staining')
upper_24_staining = fields.Boolean(string='24 Staining')
upper_23_staining = fields.Boolean(string='23 Staining')
upper_22_staining = fields.Boolean(string='22 Staining')
upper_21_staining = fields.Boolean(string='21 Staining')
lower_31_staining = fields.Boolean(string='31 Staining')
lower_32_staining = fields.Boolean(string='32 Staining')
lower_33_staining = fields.Boolean(string='33 Staining')
lower_34_staining = fields.Boolean(string='34 Staining')
lower_35_staining = fields.Boolean(string='35 Staining')
lower_36_staining = fields.Boolean(string='36 Staining')
lower_37_staining = fields.Boolean(string='37 Staining')
lower_38_staining = fields.Boolean(string='38 Staining')
lower_41_staining = fields.Boolean(string='41 Staining')
lower_42_staining = fields.Boolean(string='42 Staining')
lower_43_staining = fields.Boolean(string='43 Staining')
lower_44_staining = fields.Boolean(string='44 Staining')
lower_45_staining = fields.Boolean(string='45 Staining')
lower_46_staining = fields.Boolean(string='46 Staining')
lower_47_staining = fields.Boolean(string='47 Staining')
lower_48_staining = fields.Boolean(string='48 Staining')
upper_18_staining = fields.Boolean(string="18 Staining")
upper_17_staining = fields.Boolean(string="17 Staining")
upper_16_staining = fields.Boolean(string="16 Staining")
upper_15_staining = fields.Boolean(string="15 Staining")
upper_14_staining = fields.Boolean(string="14 Staining")
upper_13_staining = fields.Boolean(string="13 Staining")
upper_12_staining = fields.Boolean(string="12 Staining")
upper_11_staining = fields.Boolean(string="11 Staining")
upper_28_staining = fields.Boolean(string="28 Staining")
upper_27_staining = fields.Boolean(string="27 Staining")
upper_26_staining = fields.Boolean(string="26 Staining")
upper_25_staining = fields.Boolean(string="25 Staining")
upper_24_staining = fields.Boolean(string="24 Staining")
upper_23_staining = fields.Boolean(string="23 Staining")
upper_22_staining = fields.Boolean(string="22 Staining")
upper_21_staining = fields.Boolean(string="21 Staining")
lower_31_staining = fields.Boolean(string="31 Staining")
lower_32_staining = fields.Boolean(string="32 Staining")
lower_33_staining = fields.Boolean(string="33 Staining")
lower_34_staining = fields.Boolean(string="34 Staining")
lower_35_staining = fields.Boolean(string="35 Staining")
lower_36_staining = fields.Boolean(string="36 Staining")
lower_37_staining = fields.Boolean(string="37 Staining")
lower_38_staining = fields.Boolean(string="38 Staining")
lower_41_staining = fields.Boolean(string="41 Staining")
lower_42_staining = fields.Boolean(string="42 Staining")
lower_43_staining = fields.Boolean(string="43 Staining")
lower_44_staining = fields.Boolean(string="44 Staining")
lower_45_staining = fields.Boolean(string="45 Staining")
lower_46_staining = fields.Boolean(string="46 Staining")
lower_47_staining = fields.Boolean(string="47 Staining")
lower_48_staining = fields.Boolean(string="48 Staining")


notes = fields.Text()
16 changes: 8 additions & 8 deletions dental/models/dental_medical_aid.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,13 @@


class DentalMedication(models.Model):
_name = 'dental.medical.aid'
_description = 'Medications'
_order = 'name'
_name = "dental.medical.aid"
_description = "Medications"
_order = "name"

name = fields.Char(string='Medical Aid Name', required=True)
contact_name = fields.Char(string='Contact')
phone = fields.Char(string='Phone')
email = fields.Char(string='Email')
company = fields.Many2one('res.company',string='Company')
name = fields.Char(string="Medical Aid Name", required=True)
contact_name = fields.Char(string="Contact")
phone = fields.Char(string="Phone")
email = fields.Char(string="Email")
company = fields.Many2one("res.company", string="Company")
notes = fields.Text()
7 changes: 3 additions & 4 deletions dental/models/dental_medication.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,8 @@


class DentalMedication(models.Model):
_name = 'dental.medication'
_description = 'Medications'
_order = 'name'
_name = "dental.medication"
_description = "Medications"
_order = "name"

name = fields.Char(string="Medication", required=True)

Loading

0 comments on commit bcf2156

Please sign in to comment.