code: def parse_data_line(self, sline):
          
          # if there are less values founded than headers, it's an error
          if len(sline) != len(self._columns):
              self.err("One data line has the wrong number of items")
              return -1
          rawdict = {}
          for idx, result in enumerate(sline):
              rawdict[self._columns[idx]] = result.replace(' ', '')
  
          resid = rawdict['Sample ID'].replace('.', '')
          rawdict['DefaultResult'] = 'Result'
          rawdict['Remarks'] = rawdict['Sample Details']
          del rawdict['Sample Details']
          name = rawdict['Test Name'].replace('.', '')
          del rawdict['Test Name']
          self._addRawResult(resid, {name: rawdict}, False)
          return 0
docs: Parses the data line and builds the dictionary.
          :param sline: a split data line to parse
          :returns: the number of rows to jump and parse the next data line or return the code error -1