private void butOk_Click(object sender, EventArgs e) { if (textDateTimeTest.Text == "") { MessageBox.Show("Please input a valid date."); return; } try { LabCur.DateTimeTest = DateTime.Parse(textDateTimeTest.Text); } catch { MessageBox.Show("Please input a valid date."); return; } LabCur.TestID = textTestID.Text; LabCur.TestName = textTestName.Text; LabCur.ObsValue = textObsValue.Text; LabCur.ObsUnits = textObsUnits.Text; LabCur.ObsRange = textObsRange.Text; LabCur.AbnormalFlag = (LabAbnormalFlag)comboAbnormalFlag.SelectedIndex; if (IsNew) { LabResults.Insert(LabCur); } else { LabResults.Update(LabCur); } DialogResult = DialogResult.OK; }
private void CreateLabPanel() { MedicalOrder order = listLabOrders[gridMain.GetSelectedIndex()]; MessageHL7 msg = new MessageHL7(textHL7Raw.Text); //SegmentHL7 segOBR=null; //SegmentHL7 segOBX=null; //int idxPanel=0; //int idxResult=0; LabPanel panel = null; LabResult result = null; //loop through all message segments. for (int i = 0; i < msg.Segments.Count; i++) { if (msg.Segments[i].Name == SegmentNameHL7.OBR) //if this is the start of a new panel { panel = new LabPanel(); panel.PatNum = order.PatNum; panel.MedicalOrderNum = order.MedicalOrderNum; panel.RawMessage = textHL7Raw.Text; panel.LabNameAddress = msg.Segments[i].GetFieldFullText(20); panel.SpecimenSource = msg.Segments[i].GetFieldFullText(15); panel.SpecimenCondition = msg.Segments[i].GetFieldFullText(13); panel.ServiceId = msg.Segments[i].GetFieldComponent(4, 0); panel.ServiceName = msg.Segments[i].GetFieldComponent(4, 1); LabPanels.Insert(panel); } if (msg.Segments[i].Name == SegmentNameHL7.OBX) //if this is a result within a panel { result = new LabResult(); result.LabPanelNum = panel.LabPanelNum; result.DateTimeTest = msg.Segments[i].GetDateTime(14); result.TestID = msg.Segments[i].GetFieldComponent(3, 0); result.TestName = msg.Segments[i].GetFieldComponent(3, 1); result.ObsValue = msg.Segments[i].GetFieldFullText(5); result.ObsUnits = msg.Segments[i].GetFieldFullText(6); result.ObsRange = msg.Segments[i].GetFieldFullText(7); LabResults.Insert(result); } //any other kind of segment, continue. } //order.IsLabPending=false; //MedicalOrders.Update(order); //return true;//I guess it's always true? }