/// <summary> /// Xử lý sau kkhi nhận được dữ liệu /// </summary> private void ProcessData() { try { var arrRecords = new string[] {}; if (BufferData != string.Empty) { arrRecords = BufferData.Split(new[] { _clsRRecord.RecordDelimiter }, StringSplitOptions.RemoveEmptyEntries); } int i = 0; while (i < arrRecords.Length) { if (arrRecords[i].StartsWith("R")) { Log.Trace(arrRecords[i]); _clsRRecord = new ADVIA1650ResultRecord(arrRecords[i]); TestResult.TestDate = string.Concat(_clsRRecord.DateTestCompleted.Substring(6, 2), "/", _clsRRecord.DateTestCompleted.Substring(4, 2), "/", _clsRRecord.DateTestCompleted.Substring(0, 4)); TestResult.Barcode = _clsRRecord.Barcode; foreach (DictionaryEntry entry in _clsRRecord.htResult) { AddResult(new ResultItem(entry.Key.ToString(), entry.Value.ToString())); } Log.Debug(ImportResults() ? "Import Result Success" : "Import Result Error"); } if (arrRecords[i].StartsWith("q") || arrRecords[i].StartsWith("Q")) { Log.Trace(arrRecords[i]); _clsQRecord = new ADVIA1650QueryRecord(arrRecords[i]); _clsORecord = new ADVIA1650OrderRecord(); Log.Debug("Request for barcode: {0}", _clsQRecord.QueryBarcode); for (int index = 0; index < _clsQRecord.QueryBarcode.Count; index++) { string barcode = _clsQRecord.QueryBarcode[index]; List <string> reglist = GetRegList(barcode); Log.Debug("Reglist for barcode: {0}", string.Join(",", reglist.ToArray())); _newQuery = true; if ((reglist == null) || (reglist.Count == 0)) { continue; } string data = _clsORecord.CreateData(index, barcode, reglist); PrvRequestArray.Add(data); Log.Trace(data); } } ++i; } if (_newQuery) { objASTM.CallGetQuery(objDataEventArgs); _newQuery = false; } } catch (Exception ex) { Log.Error(String.Format("Error While Process Data: {0}", ex)); } }