diff --git a/lims_management/__manifest__.py b/lims_management/__manifest__.py
index 71c4ec4..e3116fd 100644
--- a/lims_management/__manifest__.py
+++ b/lims_management/__manifest__.py
@@ -20,6 +20,7 @@
'data': [
'security/lims_security.xml',
'security/ir.model.access.csv',
+ 'data/ir_sequence.xml',
'views/menus.xml',
'views/partner_views.xml',
],
diff --git a/lims_management/data/ir_sequence.xml b/lims_management/data/ir_sequence.xml
new file mode 100644
index 0000000..1bb0b3c
--- /dev/null
+++ b/lims_management/data/ir_sequence.xml
@@ -0,0 +1,13 @@
+
+
+
+
+
+ Patient Identifier Sequence
+ res.partner.patient_identifier
+ P
+ 6
+
+
+
+
diff --git a/lims_management/data/lims_demo.xml b/lims_management/data/lims_demo.xml
index c373c56..145c6d7 100644
--- a/lims_management/data/lims_demo.xml
+++ b/lims_management/data/lims_demo.xml
@@ -6,7 +6,8 @@
Ana Torres
- P0001
+ P-A87B01
+ Carga Inicial
1985-05-15
female
+1-202-555-0174
@@ -16,7 +17,8 @@
Carlos Ruiz
- P0002
+ P-C45D02
+ Carga Inicial
1992-11-20
male
+1-202-555-0192
diff --git a/lims_management/models/partner.py b/lims_management/models/partner.py
index e691ffe..f90bc73 100644
--- a/lims_management/models/partner.py
+++ b/lims_management/models/partner.py
@@ -6,6 +6,11 @@ class ResPartner(models.Model):
is_patient = fields.Boolean(string="Es Paciente")
patient_identifier = fields.Char(string="Identificador de Paciente", copy=False)
+ origin = fields.Char(
+ string="Origen",
+ default='Manual',
+ help="Este campo indica el origen del registro del paciente (ej. Manual, Carga Inicial)."
+ )
birthdate_date = fields.Date(string="Fecha de Nacimiento")
gender = fields.Selection([
('male', 'Masculino'),
@@ -20,3 +25,10 @@ class ResPartner(models.Model):
('patient_identifier_unique', 'unique(patient_identifier)', 'El identificador del paciente debe ser único.'),
('doctor_license_unique', 'unique(doctor_license)', 'La licencia médica debe ser única.')
]
+
+ @api.model_create_multi
+ def create(self, vals_list):
+ for vals in vals_list:
+ if vals.get('is_patient') and not vals.get('patient_identifier'):
+ vals['patient_identifier'] = self.env['ir.sequence'].next_by_code('res.partner.patient_identifier')
+ return super(ResPartner, self).create(vals_list)
diff --git a/lims_management/views/partner_views.xml b/lims_management/views/partner_views.xml
index de3e73b..4610484 100644
--- a/lims_management/views/partner_views.xml
+++ b/lims_management/views/partner_views.xml
@@ -12,7 +12,8 @@
-
+
+