コード例 #1
0
        protected void repeaterResult_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                LabTestParameterResult rowView = (LabTestParameterResult)e.Item.DataItem;
                string  strDataType            = rowView.ResultDataType;
                decimal?strResultValue         = rowView.ResultValue;
                string  strResultText          = rowView.ResultText;
                decimal?strLimit       = rowView.DetectionLimit;
                int     strParameterId = rowView.ParameterId;

                bool hasResult = rowView.HasResult;
                FilteredTextBoxExtender fteLimit      = e.Item.FindControl("fteLimit") as FilteredTextBoxExtender;
                FilteredTextBoxExtender fteValue      = e.Item.FindControl("fteValue") as FilteredTextBoxExtender;
                DropDownList            ddlResultUnit = e.Item.FindControl("ddlResultUnit") as DropDownList;
                DropDownList            ddlResultList = e.Item.FindControl("ddlResultList") as DropDownList;
                TextBox txtResultText = e.Item.FindControl("textResultText") as TextBox;
                //Label labelResultText = e.Item.FindControl("labelResultText") as Label;
                CheckBox cBox           = e.Item.FindControl("checkUndetectable") as CheckBox;
                TextBox  txtLimit       = e.Item.FindControl("textDetectionLimit") as TextBox;
                TextBox  txtResultValue = e.Item.FindControl("textResultValue") as TextBox;

                fteLimit.Enabled = fteValue.Enabled =
                    cBox.Enabled = ddlResultUnit.Enabled =
                        txtResultValue.Enabled = strDataType == "NUMERIC";
                if (strDataType == "NUMERIC")
                {
                    txtLimit.Attributes.Add("disabled", "disabled");

                    if (null != cBox)
                    {
                        this.InjectScript(ref cBox, ref txtLimit, ref txtResultValue);
                    }

                    this.PopulateUnits(ref ddlResultUnit, ref txtLimit, strParameterId);
                }
                else if (strDataType == "SELECTLIST")
                {
                    this.PopulateSelectList(ref ddlResultList, strParameterId);
                }
            }
        }
コード例 #2
0
ファイル: BLabRequest.cs プロジェクト: kwatuha/IQCareKe
        public LabOrder SaveLabOrder(LabOrder labOrder, int UserId, int LocationId)
        {
            // this.Connection = DataMgr.GetConnection();
            // this.Transaction = DataMgr.BeginTransaction(this.Connection);

            ClsObject obj = new ClsObject();

            //  obj.Connection = this.Connection;
            // obj.Transaction = this.Transaction;

            ClsUtility.Init_Hashtable();
            //  Decimal? nullDecimal = null;
            if (labOrder.Id > -1)
            {
                ClsUtility.AddExtendedParameters("@LabOrderId", SqlDbType.Int, labOrder.Id);
            }
            ClsUtility.AddExtendedParameters("@UserId", SqlDbType.Int, UserId);
            ClsUtility.AddExtendedParameters("@PatientPk", SqlDbType.Int, labOrder.PatientPk);
            ClsUtility.AddExtendedParameters("@LocationId", SqlDbType.Int, LocationId);
            ClsUtility.AddExtendedParameters("@OrderedBy", SqlDbType.Int, labOrder.OrderedBy);
            ClsUtility.AddExtendedParameters("@OrderDate", SqlDbType.DateTime, labOrder.OrderDate);
            ClsUtility.AddParameters("@ClinicalNotes", SqlDbType.VarChar, labOrder.ClinicalNotes);
            ClsUtility.AddExtendedParameters("@ModuleId", SqlDbType.Int, labOrder.ModuleId);
            if (labOrder.PreClinicDate.HasValue)
            {
                ClsUtility.AddExtendedParameters("@PreClinicDate", SqlDbType.DateTime, labOrder.PreClinicDate);
            }
            XDocument docX = new XDocument(
                new XElement("root", (from test in labOrder.OrderedTest
                                      select new XElement("request",
                                                          new XElement("testid", test.TestId),
                                                          new XElement("testnotes", test.TestNotes),
                                                          new XElement("isgroup", test.Test.IsGroup)

                                                          ))));

            ClsUtility.AddParameters("@itemList", SqlDbType.VarChar, docX.ToString());

            DataTable dt = (DataTable)obj.ReturnObject(ClsUtility.theParams, "Laboratory_SaveLabOrder", ClsUtility.ObjectEnum.DataTable);

            ClsUtility.Init_Hashtable();
            obj = null;

            labOrder.Id          = Convert.ToInt32(dt.Rows[0]["LabOrderId"]);
            labOrder.OrderNumber = dt.Rows[0]["OrderNumber"].ToString();
            labOrder.VisitId     = Convert.ToInt32(dt.Rows[0]["VisitId"]);
            labOrder.CreateDate  = Convert.ToDateTime(dt.Rows[0]["CreateDate"]);
            labOrder.UserId      = Convert.ToInt32(dt.Rows[0]["UserId"]);;
            labOrder.LocationId  = Convert.ToInt32(dt.Rows[0]["LocationId"]);

            List <LabOrderTest> orderedTests = GetOrderedTests(labOrder.Id);

            foreach (LabOrderTest testSaved in orderedTests)
            {
                LabOrderTest submittedTest = labOrder.OrderedTest.Where(t => t.TestId == testSaved.TestId).FirstOrDefault();

                if (null != submittedTest && null != submittedTest.ParameterResults && submittedTest.ResultBy.HasValue && submittedTest.ResultDate.HasValue &&
                    submittedTest.ParameterResults.Count > 0 && submittedTest.ParameterResults.Count(p => p.HasResult) > 0)
                {
                    List <LabTestParameterResult> results = testSaved.ParameterResults;

                    foreach (LabTestParameterResult result in results)
                    {
                        LabTestParameterResult submittedParam = submittedTest.ParameterResults.Where(p => p.ParameterId == result.ParameterId && p.HasResult).DefaultIfEmpty(null).FirstOrDefault();
                        if (null != submittedParam)
                        {
                            result.ResultOption   = submittedParam.ResultOption;
                            result.ResultOptionId = submittedParam.ResultOptionId;
                            result.ResultText     = submittedParam.ResultText;
                            result.ResultValue    = submittedParam.ResultValue;
                            result.ResultUnit     = submittedParam.ResultUnit;
                            result.Config         = submittedParam.Config;
                            result.DetectionLimit = submittedParam.DetectionLimit;
                            result.Undetectable   = submittedParam.Undetectable;
                        }
                    }

                    this.SaveLabResults(results, testSaved.Id, submittedTest.ResultNotes, UserId, submittedTest.ResultBy.Value, submittedTest.ResultDate.Value);
                }
            }


            return(labOrder);
        }
コード例 #3
0
        /// <summary>
        /// Handles the ItemDataBound event of the repeaterResult control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="e">The <see cref="RepeaterItemEventArgs"/> instance containing the event data.</param>
        protected void repeaterResult_ItemDataBound(object sender, RepeaterItemEventArgs e)
        {
            if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
            {
                LabTestParameterResult rowView = (LabTestParameterResult)e.Item.DataItem;
                string strName     = rowView.ParameterName;
                int    strParamId  = rowView.ParameterId;
                int    strResultId = rowView.Id;
                bool   hasResult   = rowView.HasResult;
                string strDataType = rowView.ResultDataType;

                Label labelResultText     = e.Item.FindControl("labelResultText") as Label;
                Label labelDetectionLimit = e.Item.FindControl("labelDetectionLimit") as Label;
                Label labelResultOption   = e.Item.FindControl("labelResultOption") as Label;

                Label labelResultValue = e.Item.FindControl("labelResultValue") as Label;

                Label labelRanges = e.Item.FindControl("labelRanges") as Label;

                labelResultValue.Visible = labelDetectionLimit.Visible = hasResult;



                if (strDataType == "NUMERIC")
                {
                    if (hasResult)
                    {
                        labelDetectionLimit.Visible = false;

                        if (rowView.Undetectable != null && rowView.Undetectable.Value)
                        {
                            // labelResultValue.Text = "Undetectable";
                            labelResultValue.Visible    = false;
                            labelDetectionLimit.Visible = true;
                            labelDetectionLimit.Text    = string.Format("Undetectable  (detection limit = {0}) {1}", rowView.DetectionLimit, rowView.ResultUnitName);
                        }
                        else
                        {
                            labelResultValue.Visible = true;
                            labelResultValue.Text    = string.Format("{0} {1}", rowView.ResultValue, rowView.ResultUnitName);
                            if (null != rowView.Config)
                            {
                                labelRanges.Text = string.Format("{0} - {1} {2}", rowView.Config.MinNormalRange, rowView.Config.MaxNormalRange, rowView.ResultUnitName);
                            }
                        }
                    }
                }
                else if (strDataType == "SELECTLIST")
                {
                    if (hasResult)
                    {
                        labelResultOption.Visible = true;
                        labelResultOption.Text    = rowView.ResultOption;
                        // ddlResultList.Visible = false;
                    }
                    else
                    {
                        // ddlResultList.Visible = true;
                        labelResultOption.Visible = false;
                        // this.PopulateSelectList(ref ddlResultList, strParamId);
                    }
                }
                else if (strDataType == "TEXT")
                {
                    if (hasResult)
                    {
                        labelResultText.Text = rowView.ResultText;
                        //txtResultText.Visible = false;
                    }
                    else
                    {
                        labelResultText.Visible = false;
                        // txtResultText.Visible = true;
                    }
                }
            }
        }
コード例 #4
0
        protected void AddLabRecord(object sender, EventArgs e)
        {
            LabOrderTest thisTest = null;
            LabOrder     _order   = this.OrderedLabs;

            if (null != _order && null != _order.OrderedTest && _order.OrderedTest.Count > 0 && _order.OrderedTest.Exists(o => o.TestId == this.LabTestId))
            {
                this.isDataEntry = false;
                return;
            }
            if (null == _order.OrderedTest)
            {
                _order.OrderedTest = new List <LabOrderTest>();
            }
            thisTest = new LabOrderTest()
            {
                TestId = this.LabTestId
            };
            thisTest.Test = new LabTest()
            {
                Id         = this.LabTestId,
                Name       = this.LabTestName,
                Department = new TestDepartment()
                {
                    Id = this.DepartmentId, Name = this.Department, DeleteFlag = false
                },
                ParameterCount = this.ParameterCount,
                ReferenceId    = this.TestReferenceId,
                IsGroup        = false,
                DeleteFlag     = false,
                UserId         = this.UserId
            };
            // List<ParameterResultConfig) _params  thisTest.ParameterResults
            foreach (RepeaterItem dataItem in repeaterResult.Items)
            {
                string _dataType = "";


                bool hasResult = false;
                int  paramId;

                HiddenField hdataType = dataItem.FindControl("HResultDataType") as HiddenField;
                string      resultId  = (dataItem.FindControl("HResultId") as HiddenField).Value;
                _dataType = hdataType.Value.ToUpper();
                paramId   = Convert.ToInt32((dataItem.FindControl("hParameterId") as HiddenField).Value);
                string testOrderId = (dataItem.FindControl("hTestOrderId") as HiddenField).Value;

                RadComboBox  ddlResultUnit   = dataItem.FindControl("ddlResultUnit") as RadComboBox;
                DropDownList ddlResultList   = dataItem.FindControl("ddlResultList") as DropDownList;
                TextBox      txtResultText   = dataItem.FindControl("textResultText") as TextBox;
                Label        labelResultText = dataItem.FindControl("labelResultText") as Label;
                string       parameterName   = (dataItem.FindControl("labelParameterName") as Label).Text;
                CheckBox     cBox            = dataItem.FindControl("checkUndetectable") as CheckBox;
                TextBox      txtLimit        = dataItem.FindControl("textDetectionLimit") as TextBox;
                TextBox      txtResultValue  = dataItem.FindControl("textResultValue") as TextBox;

                hasResult = (cBox.Checked) || txtResultValue.Text.Trim() != "" || (ddlResultList.SelectedValue != "" && Convert.ToInt32(ddlResultList.SelectedValue) > 0) || txtResultText.Text.Trim() != "";
                if (!hasResult)
                {
                    this.isDataEntry = true;
                    continue;
                }


                LabTestParameterResult _result = new LabTestParameterResult()
                {
                    LabOrderId     = this.LabOrderId,
                    LabOrderTestId = this.LabOrderTestId,
                    UserId         = this.UserId,
                    DeleteFlag     = false,
                    ParameterId    = paramId
                };
                _result.Parameter = new TestParameter()
                {
                    Id         = paramId,
                    Name       = parameterName,
                    DataType   = _dataType,
                    LabTestId  = this.LabTestId,
                    DeleteFlag = false
                };
                if (_dataType == "NUMERIC")
                {
                    _result.ResultValue    = string.IsNullOrEmpty(txtResultValue.Text) ? nullDecimal : Convert.ToDecimal(txtResultValue.Text.Trim());
                    _result.Undetectable   = cBox.Checked;
                    _result.DetectionLimit = string.IsNullOrEmpty(txtLimit.Text) ? nullDecimal : Convert.ToDecimal(txtLimit.Text.Trim());
                    try
                    {
                        if (ddlResultUnit.SelectedIndex > -1)
                        {
                            _result.ResultUnit = new ResultUnit()
                            {
                                Id = Convert.ToInt32(ddlResultUnit.SelectedValue), Text = ddlResultUnit.SelectedItem.Text
                            };
                        }

                        RadComboBoxItem item = ddlResultUnit.SelectedItem;

                        string min_value       = item.Attributes["min"].ToString();
                        string max_value       = item.Attributes["max"].ToString();
                        string min_normal      = item.Attributes["min_normal"].ToString();
                        string max_normal      = item.Attributes["max_normal"].ToString();
                        string detection_limit = item.Attributes["detection_limit"].ToString();
                        _result.DetectionLimit = string.IsNullOrEmpty(txtLimit.Text) ? Convert.ToDecimal(detection_limit) : Convert.ToDecimal(txtLimit.Text.Trim());
                        string config_id = item.Attributes["config_id"].ToString();
                        _result.Config = new ParameterResultConfig()
                        {
                            Id             = Convert.ToInt32(config_id),
                            DetectionLimit = Convert.ToDecimal(detection_limit),
                            MinBoundary    = Convert.ToDecimal(min_value),
                            MaxBoundary    = Convert.ToDecimal(max_value),
                            MinNormalRange = Convert.ToDecimal(min_normal),
                            MaxNormalRange = Convert.ToDecimal(max_normal)
                        };
                        //_result.ResultUnitId = _result.ResultUnit.Id;
                        //_result.ResultOptionId = _result.ResultUnit.Id;
                    }
                    catch { }
                }
                else if (_dataType == "TEXT")
                {
                    _result.ResultText = txtResultText.Text.Trim();
                }
                else if (_dataType == "SELECTLIST")
                {
                    _result.ResultOptionId = Convert.ToInt32(ddlResultList.SelectedValue);
                    _result.ResultOption   = ddlResultList.SelectedItem.Text;
                }
                if (null != thisTest.ParameterResults)
                {
                    thisTest.ParameterResults.Add(_result);
                }
                else
                {
                    thisTest.ParameterResults = new List <LabTestParameterResult>();
                    thisTest.ParameterResults.Add(_result);
                }
            }
            thisTest.TestNotes = txtTestNotes.Text;
            _order.OrderedTest.Add(thisTest);
            this.OrderedLabs = _order;
            hdCustID.Value   = textSelectLab.Text = txtTestNotes.Text = "";
            this.isDataEntry = false;
            //base.Session["LAB_REQTEST"] = null;
            //base.Session["OrderedLabs"] = null;
            this.BindLabTest();
        }
コード例 #5
0
        protected void SaveResults(object sender, EventArgs e)
        {
            LabOrderTest thisTest = this.thisTestOrder;
            List <LabTestParameterResult> paramToSave = new List <LabTestParameterResult>();
            // testToSave.ParameterResults = new List<LabTestParameterResult>();
            string laborderResultBy   = ddlLabReportedbyName.SelectedValue;
            string laborderResultdate = txtlabReportedbyDate.Text;
            string appcurrdate        = hdappcurrentdate.Value;

            if (!this.FieldValidation(appcurrdate, laborderResultdate, laborderResultBy))
            {
                return;
            }
            int withResult = 0;

            foreach (RepeaterItem dataItem in repeaterResult.Items)
            {
                string _dataType = "";


                bool hasResult = false;
                int  paramId;

                HiddenField hdataType = dataItem.FindControl("HResultDataType") as HiddenField;
                int         resultId  = Convert.ToInt32((dataItem.FindControl("HResultId") as HiddenField).Value);
                _dataType = hdataType.Value.ToUpper();
                paramId   = Convert.ToInt32((dataItem.FindControl("hParameterId") as HiddenField).Value);
                string testOrderId = (dataItem.FindControl("hTestOrderId") as HiddenField).Value;

                DropDownList ddlResultUnit   = dataItem.FindControl("ddlResultUnit") as DropDownList;
                DropDownList ddlResultList   = dataItem.FindControl("ddlResultList") as DropDownList;
                TextBox      txtResultText   = dataItem.FindControl("textResultText") as TextBox;
                Label        labelResultText = dataItem.FindControl("labelResultText") as Label;
                // string parameterName = (dataItem.FindControl("labelParameterName") as Label).Text;
                CheckBox cBox           = dataItem.FindControl("checkUndetectable") as CheckBox;
                TextBox  txtLimit       = dataItem.FindControl("textDetectionLimit") as TextBox;
                TextBox  txtResultValue = dataItem.FindControl("textResultValue") as TextBox;
                switch (_dataType)
                {
                case "NUMERIC":
                    hasResult = txtResultValue.Text.Trim() != "" || cBox.Checked;
                    break;

                case "SELECTLIST":
                    try { hasResult = Convert.ToInt32(ddlResultList.SelectedValue) > 0; }
                    catch { }
                    break;

                case "TEXT":
                    hasResult = txtResultText.Text.Trim() != "";
                    break;
                }
                //  hasResult = txtResultValue.Text.Trim() != "" || Convert.ToInt32(ddlResultList.SelectedValue) > 0 || txtResultText.Text.Trim() != "";
                LabTestParameterResult thisParam = thisTest.ParameterResults.Where(pr => pr.Id == resultId).DefaultIfEmpty(null).FirstOrDefault();
                if (!hasResult || null == thisParam)
                {
                    //isDataEntry = true;
                    continue;
                }
                withResult += 1;
                if (_dataType == "NUMERIC")
                {
                    thisParam.ResultValue    = string.IsNullOrEmpty(txtResultValue.Text) ? nullDecimal : Convert.ToDecimal(txtResultValue.Text.Trim());
                    thisParam.Undetectable   = cBox.Checked;
                    thisParam.DetectionLimit = string.IsNullOrEmpty(txtLimit.Text) ? nullDecimal : Convert.ToDecimal(txtLimit.Text.Trim());
                    try
                    {
                        thisParam.ResultUnit = new ResultUnit()
                        {
                            Id = Convert.ToInt32(ddlResultUnit.SelectedValue), Text = ddlResultUnit.SelectedItem.Text
                        };

                        ListItem item            = ddlResultUnit.SelectedItem;
                        string   min_value       = item.Attributes["min"].ToString();
                        string   max_value       = item.Attributes["max"].ToString();
                        string   min_normal      = item.Attributes["min_normal"].ToString();
                        string   max_normal      = item.Attributes["max_normal"].ToString();
                        string   detection_limit = item.Attributes["detection_limit"].ToString();
                        thisParam.DetectionLimit = string.IsNullOrEmpty(txtLimit.Text) ? Convert.ToDecimal(detection_limit) : Convert.ToDecimal(txtLimit.Text.Trim());
                        string config_id = item.Attributes["config_id"].ToString();
                        thisParam.Config = new ParameterResultConfig()
                        {
                            Id             = Convert.ToInt32(config_id),
                            DetectionLimit = detection_limit == "" ? nullDecimal : Convert.ToDecimal(detection_limit),
                            MinBoundary    = min_value == "" ? nullDecimal : Convert.ToDecimal(min_value),
                            MaxBoundary    = max_value == "" ? nullDecimal : Convert.ToDecimal(max_value),
                            MinNormalRange = min_normal == "" ? nullDecimal : Convert.ToDecimal(min_normal),
                            MaxNormalRange = max_normal == "" ? nullDecimal : Convert.ToDecimal(max_normal)
                        };
                    }
                    catch { thisParam.ResultUnit = null; }
                }
                else if (_dataType == "TEXT")
                {
                    thisParam.ResultText = txtResultText.Text.Trim();
                }
                else if (_dataType == "SELECTLIST")
                {
                    thisParam.ResultOptionId = Convert.ToInt32(ddlResultList.SelectedValue);
                    thisParam.ResultOption   = ddlResultList.SelectedItem.Text;
                }
                paramToSave.Add(thisParam);
            }
            if (withResult > 0)
            {
                requestMgr.SaveLabResults(
                    paramToSave,
                    thisTest.Id,
                    txtResultNotes.Text,
                    this.UserId, Convert.ToInt32(ddlLabReportedbyName.SelectedValue), Convert.ToDateTime(txtlabReportedbyDate.Text));

                base.Session["thisTestOrder"]            = null;
                Session[SessionKey.SelectedLabTestOrder] = null;
                base.Session["LAB_REQTEST"] = null;
                IQCareMsgBox.NotifyAction("Result saved successfully", "Success", false, this,
                                          string.Format("javascript:window.location='{0}'; return false;", this.RedirectUrl));
            }
            else
            {
                IQCareMsgBox.NotifyAction("Nothing was saved", "Failure", true, this, "");
            }
        }