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); } } }
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); }
/// <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; } } } }
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(); }
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, ""); } }