def specimen_compatible?(target, source)
      target.class === source and
      specimen_parent_compatible?(target, source) and
      (target.specimen_type == source.specimen_type or source.specimen_type == 'Not Specified') and
      (target.pathological_status == source.pathological_status or source.pathological_status == 'Not Specified')
    end
def specimen_compatible?(target, source)
      target.class === source and
      specimen_parent_compatible?(target, source) and
      (target.specimen_type == source.specimen_type or source.specimen_type == 'Not Specified') and
      (target.pathological_status == source.pathological_status or source.pathological_status == 'Not Specified')
    end
Returns whether the given specimens are compatible. The target is compatible with the source
 if each of the following conditions hold:
 * The specimen types are equal or the source specimen type is +Not Specified+
 * The specimen pathological statuses are equal or the source pathological status is +Not Specified+
 * The parent specimens are compatible, if they exist

 @param [Resource] target the mnerge target specimen
 @param [Resource] source the mnerge source specimen
 @return [Boolean] whether the specimens are compatible