Example #1
0
 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?
        }