code: def add_defaults_local
        super
        self.specimen_collection_group ||= parent.specimen_collection_group if parent
        add_default_event_parameters if collected?
        
        # The default available quantity is the initial quantity.
        self.available_quantity ||= is_available ? initial_quantity : 0
        
        if is_available.nil? then
          self.is_available = default_availablility
        elsif is_available == false then
          # Reset is_available value from false to nil to work around caTissue bug but described in
          # the method rubydoc above.
          self.is_available = nil
        end
      end
docs: Adds this Specimen's defaults, as follows:
   * The default specimen_collection_group is the parent specimen_collection_group.
   * Add default collection and received event parameters if this Specimen is collected.
   * If the is_available flag is set to false then the default available quantity is
     zero, otherwise the default available quantity is the initial quantity.
   * The default is_available flag is true if the available quantity is greater than zero.
  
   The motivation for the is_available flag default is that an initial quantity of zero can indicate
   unknown amount as well a known zero amount, and therefore the available flag should be set to
   false only if it is known that there was an amount but that amount is exhausted.
  
   @quirk caTissue initial_quantity cannot be null (cf. Bug #160).
  
   @quirk caTissue the available status cannot be set to to false. The status must be set to nil
   instead. caTissue allows a nil available status on insert but not a false value, even though a
   nil status is set to false (0 database value) when the record is inserted.
  
   @quirk caTissue a collected Specimen without a collection and received event parameters
   results in the dreaded 'Severe Error' caTissue server message. Create default SEPs if necessary.