diff -r 0c61f1c4e6ba tryton/health/health.py
--- a/tryton/health/health.py	Sun Sep 20 10:40:40 2015 +0100
+++ b/tryton/health/health.py	Sun Sep 20 11:23:45 2015 -0500
@@ -1323,14 +1323,23 @@
     'Health Professional Specialties'
     __name__ = 'gnuhealth.hp_specialty'
 
-    name = fields.Many2One('gnuhealth.healthprofessional', 'Health Professional')
+    name = fields.Many2One('gnuhealth.healthprofessional', 'Health Professional',
+                           required=True, ondelete='CASCADE')
 
     specialty = fields.Many2One(
-        'gnuhealth.specialty', 'Specialty', help='Specialty Code')
+        'gnuhealth.specialty', 'Specialty', help='Specialty Code',
+        required=True, ondelete='CASCADE')
 
     def get_rec_name(self, name):
         return self.specialty.name
 
+    @classmethod
+    def __setup__(cls):
+        super(HealthProfessionalSpecialties, cls).__setup__()
+        cls._sql_constraints.append(('name_specialty_uniq',
+                                     'UNIQUE(name, specialty)',
+                                     'Duplicate specialty assignment'))
+
 
 class PhysicianSP(ModelSQL, ModelView):
     # Add Main Specialty field after from the Health Professional Speciality
