code: def check_field_cohesion(self, present_label_fields):
          
          # Ensure all written annotation fields have the same length
          nannots = len(self.sample)
  
          for field in ['sample', 'num', 'subtype', 'chan', 'aux_note']+present_label_fields:
              if getattr(self, field) is not None:
                  if len(getattr(self, field)) != nannots:
                      raise ValueError("The lengths of the 'sample' and '"+field+"' fields do not match")
  
          # Ensure all label fields are defined by the label map. This has to be checked because
          # it is possible the user defined (or lack of) custom_labels does not capture all the
          # labels present.
          for field in present_label_fields:
              defined_values = self.__label_map__[field].values
  
              if set(getattr(self, field)) - set(defined_values) != set():
                  raise ValueError('\n'.join(['\nThe '+field+' field contains elements not encoded in the stardard WFDB annotation labels, or this object\'s custom_labels field',
                                        '- To see the standard WFDB annotation labels, call: show_ann_labels()',
                                        '- To transfer non-encoded symbol items into the aux_note field, call: self.sym_to_aux()',
                                        '- To define custom labels, set the custom_labels field as a list of tuple triplets with format: (label_store, symbol, description)']))
  
          return
docs: Check that the content and structure of different fields are consistent
          with one another.