diff --git a/lims_diagnosis/locale/es.po b/lims_diagnosis/locale/es.po
index 95f1640c..f1d6f235 100644
--- a/lims_diagnosis/locale/es.po
+++ b/lims_diagnosis/locale/es.po
@@ -268,6 +268,10 @@ msgctxt "model:ir.message,text:lbl_line_acceptance"
msgid "Notebook Line Acceptance"
msgstr "Aceptación de Línea de cuaderno"
+msgctxt "model:ir.message,text:msg_invalid_diagnosis_state"
+msgid "Missing diagnosis states"
+msgstr "Faltan estados de diagnóstico"
+
msgctxt "model:ir.ui.menu,name:lims_open_samples_comparator_menu"
msgid "Samples Comparator"
msgstr "Comparador de muestras"
@@ -288,6 +292,10 @@ msgctxt "model:lims.diagnosis.state,name:"
msgid "Diagnosis State"
msgstr "Estado de Diagnóstico"
+msgctxt "model:lims.diagnosis.state.image,name:"
+msgid "Diagnosis State Image"
+msgstr "Imagen de Estado de diagnóstico"
+
msgctxt "model:lims.diagnosis.template,name:"
msgid "Diagnosis Template"
msgstr "Plantilla de Diagnóstico"
diff --git a/lims_diagnosis/message.xml b/lims_diagnosis/message.xml
index bf1b8599..4a108aed 100644
--- a/lims_diagnosis/message.xml
+++ b/lims_diagnosis/message.xml
@@ -4,5 +4,8 @@
Notebook Line Acceptance
+
+ Missing diagnosis states
+
diff --git a/lims_diagnosis/results_report.py b/lims_diagnosis/results_report.py
index af3a9a3d..c2ec3f1a 100644
--- a/lims_diagnosis/results_report.py
+++ b/lims_diagnosis/results_report.py
@@ -8,6 +8,7 @@ from trytond.wizard import Wizard, StateTransition, StateView, StateAction, \
from trytond.pool import Pool, PoolMeta
from trytond.pyson import Eval, Not, Bool
from trytond.transaction import Transaction
+from trytond.exceptions import UserError
from trytond.i18n import gettext
@@ -37,8 +38,20 @@ class ResultsReportVersionDetail(metaclass=PoolMeta):
@classmethod
@ModelView.button
def diagnose(cls, details):
+ cls.check_diagnosis_states(details)
cls.write(details, {'state': 'diagnosed'})
+ @classmethod
+ def check_diagnosis_states(cls, details):
+ for detail in details:
+ for sample in detail.samples:
+ if not sample.diagnosis_states:
+ continue
+ for state in sample.diagnosis_states.values():
+ if state == '*':
+ raise UserError(gettext(
+ 'lims_diagnosis.msg_invalid_diagnosis_state'))
+
@fields.depends('template', '_parent_template.diagnosis_template',
methods=['on_change_diagnosis_template'])
def on_change_template(self):