public void PatientInforTest() { try { var newHeader = new CobasE411PatientInformationRecord(@"P|1|||||||M||||||35^Y"); var tempP = new CobasE411PatientInformationRecord(@"P|1|||||||M||||||35^Y||||||||||||||||||||"); Debug.WriteLine(tempP.Create()); Debug.WriteLine(newHeader.Create()); } catch (Exception ex) { Debug.WriteLine(ex.ToString()); } }
public Cobase411TcpIpManager() { try { //if (DateTime.Now > new DateTime(2013, 06, 06)) throw new Exception("XXX"); _clsHRecord = new CobasE411HeaderRecord(); _clsPRecord = new CobasE411PatientInformationRecord(); _clsORecord = new CobasE411TestOrderRecord(); _clsQRecord = new CobasE411RequestInformationRecord(); _clsRRecord = new CobasE411ResultRecord(); _clsTRecord = new CobasE411TerminationRecord(); } catch (Exception ex) { Log.Error("Fatal Error: {0}", ex); } }
public Cobase411_Bi() { try { _clsHRecord = new CobasE411HeaderRecord(); _clsPRecord = new CobasE411PatientInformationRecord(); _clsORecord = new CobasE411TestOrderRecord(); _clsQRecord = new CobasE411RequestInformationRecord(); _clsRRecord = new CobasE411ResultRecord(); _clsTRecord = new CobasE411TerminationRecord(); _prvRequestArray = new Queue <List <string> >(); _objService = new ExternalDataExchangeService(); _instanceId = Guid.NewGuid(); _objWorkFlowRuntime.AddService(_objService); _objAstm = new ClsAstm(); _objService.AddService(_objAstm); _objAstm.SendACKEvent += objASTM_SendACKEvent; _objAstm.SendNAKEvent += objASTM_SendNAKEvent; _objAstm.SendENQEvent += objASTM_SendENQEvent; _objAstm.SendEOTEvent += objASTM_SendEOTEvent; _objWorkFlowInstance = _objWorkFlowRuntime.CreateWorkflow(typeof(ASTMWorkflow), null, _instanceId); _objWorkFlowInstance.Start(); Console.WriteLine(@"Work flow started"); _objDataEventArgs = new ExternalDataEventArgs(_instanceId) { WaitForIdle = true }; DumpStateMachine(_objWorkFlowRuntime, _instanceId); } catch (Exception ex) { Log.Error("Fatal Error: {0}", ex); } }
public override bool ProcessData(string inputBuffer, ref List <string> orderList) { try { var arrRecords = new string[] {}; if (inputBuffer != string.Empty) { arrRecords = inputBuffer.Split(new[] { _clsRRecord.Rules.EndOfRecordCharacter }, StringSplitOptions.RemoveEmptyEntries); } int i = 0; bool _newResult = false; while (i < arrRecords.Length) { string[] arrFields = arrRecords[i].Split(_clsPRecord.Rules.FieldDelimiter); if (arrFields[0].Equals(_clsRRecord.RecordType.Data)) { _clsRRecord = new CobasE411ResultRecord(arrRecords[i]); AddResult(_clsRRecord.GetResult()); _newResult = true; } if (arrFields[0].StartsWith(_clsPRecord.RecordType.Data)) { _clsPRecord = new CobasE411PatientInformationRecord(arrRecords[i]); } else if (arrFields[0].StartsWith(_clsORecord.RecordType.Data)) { _clsORecord = new CobasE411TestOrderRecord(arrRecords[i]); TestResult.Barcode = _clsORecord.SpecimenId.Data.Trim(); string tempDate = _clsORecord.DateTimeResultReportedOrLastModified.Data; //TestResult.TestDate = string.Format("{0}/{1}/{2}", tempDate.Substring(6, 2), // tempDate.Substring(4, 2), tempDate.Substring(0, 4)); } else if (arrFields[0].Equals(_clsQRecord.RecordType.Data)) { _clsQRecord = new CobasE411RequestInformationRecord(arrRecords[i]); _sQBarcode = _clsQRecord.GetOrderBarcode(); List <string> regList = GetRegList(_sQBarcode); if (regList != null) { if (regList.Count > 0) { Log.Debug(string.Format("So order: {0}", regList.Count)); foreach (string s in regList) { Log.Debug(string.Format("{0}\r\n", s)); } } else { Log.Debug("No order!"); } } else { Log.Debug("No order!"); } orderList = CreateOrderFrame(regList); return(true); } else if (arrFields[0].Equals(_clsHRecord.RecordType.Data)) { _clsHRecord = new CobasE411HeaderRecord(arrRecords[i]); } i++; } if (_newResult) { Log.Debug("Begin Import Result"); Log.Debug(ImportResults() ? "Import Result Success" : "Error While Import Result"); return(false); } } catch (Exception ex) { Log.Error("Fatal Error:{0}", ex.ToString()); } return(false); }
private List <string> CreateOrderFrame(List <string> orderList) { var retList = new List <string>(); //Tạo Header mới var newHeaderRecord = (CobasE411HeaderRecord)_clsHRecord.Clone(); newHeaderRecord.CommentOrSpecialInstructions.Data = "TSDWN^REPLY"; newHeaderRecord.SenderNameOrId = _clsHRecord.ReveiverId; newHeaderRecord.ReveiverId = _clsHRecord.SenderNameOrId; string sTemp = string.Format("{0}{1}{2}{3}", DeviceHelper.STX, "1", newHeaderRecord.Create(), DeviceHelper.ETB); string checksum = DeviceHelper.GetCheckSumValue(sTemp); retList.Add(string.Format("{0}{1}{2}", sTemp, checksum, DeviceHelper.CRLF)); //Tạo P mới var newPatientRecord = new CobasE411PatientInformationRecord(); newPatientRecord.SequenceNumber.Data = "1"; sTemp = string.Format("{0}{1}{2}{3}", DeviceHelper.STX, "2", newPatientRecord.Create(), DeviceHelper.ETB); checksum = DeviceHelper.GetCheckSumValue(sTemp); retList.Add(string.Format("{0}{1}{2}", sTemp, checksum, DeviceHelper.CRLF)); //Xử lý kết quả if ((orderList != null) && (orderList.Count != 0)) { //Add OrderRecord _clsORecord = new CobasE411TestOrderRecord(); _clsORecord.SequenceNumber.Data = "1"; _clsORecord.SpecimenId.Data = _sQBarcode; string[] tempIsId = _clsQRecord.StartingRangeIdNumber.Data.Split(_clsQRecord.Rules.ComponentDelimiter); _clsORecord.InstrumentSpecimenId.Data = string.Join(_clsORecord.Rules.ComponentDelimiter.ToString(), new[] { tempIsId[3], tempIsId[4], tempIsId[5], tempIsId[6], tempIsId[7], tempIsId[8] }); _clsORecord.UniversalTestId.Data = _clsORecord.CreateUniversalTestid(orderList); _clsORecord.Priority.Data = "R"; _clsORecord.SpecimenCollectionDateAndTime.Data = DateTime.Now.ToString("yyyyMMddHHmmss"); _clsORecord.DateTimeResultReportedOrLastModified.Data = DateTime.Now.ToString("yyyyMMddHHmmss"); _clsORecord.ActionCode.Data = "A"; _clsORecord.SpecimenDescriptor.Data = "1"; _clsORecord.ReportTypes.Data = "O"; sTemp = string.Format("{0}{1}{2}{3}", DeviceHelper.STX, "3", _clsORecord.Create(), DeviceHelper.ETB); checksum = DeviceHelper.GetCheckSumValue(sTemp); retList.Add(string.Format("{0}{1}{2}", sTemp, checksum, DeviceHelper.CRLF)); _clsTRecord = new CobasE411TerminationRecord(); sTemp = String.Concat(DeviceHelper.STX, "4", _clsTRecord.Create(), DeviceHelper.ETX); checksum = DeviceHelper.GetCheckSumValue(sTemp); retList.Add(string.Format("{0}{1}{2}", sTemp, checksum, DeviceHelper.CRLF)); } else { //Add OrderRecord _clsORecord = new CobasE411TestOrderRecord(); _clsORecord.SequenceNumber.Data = "1"; _clsORecord.SpecimenId.Data = _sQBarcode; _clsORecord.Priority.Data = "R"; //_clsORecord.SpecimenCollectionDateAndTime.Data = DateTime.Now.ToString("yyyyMMddHHmmss"); //_clsORecord.DateTimeResultReportedOrLastModified.Data = DateTime.Now.ToString("yyyyMMddHHmmss"); _clsORecord.ActionCode.Data = "A"; _clsORecord.SpecimenDescriptor.Data = "1"; _clsORecord.ReportTypes.Data = "O"; sTemp = string.Format("{0}{1}{2}{3}", DeviceHelper.STX, "3", _clsORecord.Create(), DeviceHelper.ETB); checksum = DeviceHelper.GetCheckSumValue(sTemp); retList.Add(string.Format("{0}{1}{2}", sTemp, checksum, DeviceHelper.CRLF)); _clsTRecord = new CobasE411TerminationRecord { TerminationCode = { Data = "I" } }; sTemp = String.Concat(DeviceHelper.STX, "4", _clsTRecord.Create(), DeviceHelper.ETX); checksum = DeviceHelper.GetCheckSumValue(sTemp); retList.Add(string.Format("{0}{1}{2}", sTemp, checksum, DeviceHelper.CRLF)); } return(retList); }
private void ProcessData() { try { var arrRecords = new string[] {}; if (_bufferData != string.Empty) { arrRecords = _bufferData.Split(new[] { _clsRRecord.Rules.EndOfRecordCharacter }, StringSplitOptions.RemoveEmptyEntries); } int i = 0; while (i < arrRecords.Length) { string[] arrFields = arrRecords[i].Split(_clsPRecord.Rules.FieldDelimiter); if (arrFields[0].Equals(_clsRRecord.RecordType.Data)) { _clsRRecord = new CobasE411ResultRecord(arrRecords[i]); AddResult(_clsRRecord.GetResult()); _newResult = true; } else if (arrFields[0].StartsWith(_clsPRecord.RecordType.Data)) { _clsPRecord = new CobasE411PatientInformationRecord(arrRecords[i]); } else if (arrFields[0].StartsWith(_clsORecord.RecordType.Data)) { _clsORecord = new CobasE411TestOrderRecord(arrRecords[i]); TestResult.Barcode = _clsORecord.SpecimenId.Data.Trim(); string tempDate = _clsORecord.SpecimenCollectionDateAndTime.Data; TestResult.TestDate = string.Format("{0}/{1}/{2}", tempDate.Substring(6, 2), tempDate.Substring(4, 2), tempDate.Substring(0, 4)); } else if (arrFields[0].Equals(_clsQRecord.RecordType.Data)) { _clsQRecord = new CobasE411RequestInformationRecord(arrRecords[i]); _sQBarcode = _clsQRecord.GetOrderBarcode(); _newQuery = true; List <string> regList = GetRegList(_sQBarcode); _prvRequestArray.Enqueue(CreateOrderFrame(regList)); } else if (arrFields[0].Equals(_clsHRecord.RecordType.Data)) { _clsHRecord = new CobasE411HeaderRecord(arrRecords[i]); } i++; } if (_newQuery) { //Send((int)EventID.OpenNewOutputSession, _sQBarcode); _objAstm.CallGetQuery(_objDataEventArgs); if ((_prvRequestArray != null) && (_prvRequestArray.Count != 0)) { _currentOrder.Clear(); _currentOrder = _prvRequestArray.Dequeue(); _currentOrderIdx = 0; } //SendByte((byte)DeviceHelper.ENQ); _newQuery = false; } if (_newResult) { Log.Debug("Begin Import Result"); Log.Debug(ImportResults() ? "Import Result Success" : "Error While Import Result"); _newResult = false; } } catch (Exception ex) { Log.Error("Fatal Error:{0}", ex.ToString()); } }