def parse_parts_to_dc(parts)
      case parts.length
      when 1
        # If there is only one part, it is a reference to an existing data criteria's value
        @doc.find_criteria_by_lvn(parts.first.strip.split('.')[0])
      when 2
        # If there are two parts, there is a computation performed, specifically time difference, on the two criteria
        children = parts.collect { |p| @doc.find_criteria_by_lvn(p.strip.split('.')[0]).id }
        id = "GROUP_TIMEDIFF_#{@id_generator.next_id}"
        HQMF2::DataCriteriaWrapper.new(id: id,
                                       title: id,
                                       subset_operators: [HQMF::SubsetOperator.new('DATETIMEDIFF', nil)],
                                       children_criteria: children,
                                       derivation_operator: HQMF::DataCriteria::XPRODUCT,
                                       type: 'derived',
                                       definition: 'derived',
                                       negation: false,
                                       source_data_criteria: id
                                      )
      else
        # If there are neither one or 2 parts, the code should fail
        fail "No defined extraction method to handle #{parts.length} parts"
      end
    end
def parse_parts_to_dc(parts)
      case parts.length
      when 1
        # If there is only one part, it is a reference to an existing data criteria's value
        @doc.find_criteria_by_lvn(parts.first.strip.split('.')[0])
      when 2
        # If there are two parts, there is a computation performed, specifically time difference, on the two criteria
        children = parts.collect { |p| @doc.find_criteria_by_lvn(p.strip.split('.')[0]).id }
        id = "GROUP_TIMEDIFF_#{@id_generator.next_id}"
        HQMF2::DataCriteriaWrapper.new(id: id,
                                       title: id,
                                       subset_operators: [HQMF::SubsetOperator.new('DATETIMEDIFF', nil)],
                                       children_criteria: children,
                                       derivation_operator: HQMF::DataCriteria::XPRODUCT,
                                       type: 'derived',
                                       definition: 'derived',
                                       negation: false,
                                       source_data_criteria: id
                                      )
      else
        # If there are neither one or 2 parts, the code should fail
        fail "No defined extraction method to handle #{parts.length} parts"
      end
    end
generates the value given in an expression based on the number of criteria it references.