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
          values = {}
          remark = ''
          date = ''
          resid = ''
          for idx, result in enumerate(sline):
              if self._columns[idx] == 'Date':
                  date = self.csvDate2BikaDate(result)
              elif self._columns[idx] == 'Patient no.':
                  resid = result
              elif self._columns[idx] == 'Customer no.':
                  remark = result
              elif self._columns[idx] != '':
                  values[self._columns[idx]] = {
                      'result': result,
                      'DefaultResult': 'result',
                      'Remarks': remark,
                      'DateTime': date,
                  }
          self._addRawResult(resid, values, 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