protected void gridTestRequested_RowCommand(object sender, GridViewCommandEventArgs e) { try { if (e.CommandName == "Remove") { string testId = (e.CommandArgument.ToString()); LabOrder orders = this.OrderedLabs; LabOrderTest orderedTest = orders.OrderedTest.FirstOrDefault(w => w.TestId.ToString() == testId); if (orderedTest != null) { if (orderedTest.Id > 0) { orders.OrderedTest.FirstOrDefault(w => w.TestId.ToString() == testId).DeleteFlag = true; } else { orders.OrderedTest.Remove(orderedTest); } } this.OrderedLabs = orders; this.BindLabTest(); } } catch (Exception ex) { this.ShowErrorMessage(ref ex); } }
//Control Update Process protected void UpdateButton_Click(object sender, EventArgs e) { if (IsValid) { System.Threading.Thread.Sleep(3000); var editedRowIndex = LabOrderList.EditIndex; var lblId = LabOrderList.Rows[editedRowIndex].FindControl("EditId") as Label; var txtbDName = LabOrderList.Rows[editedRowIndex].FindControl("EditDName") as TextBox; var txtbDate = LabOrderList.Rows[editedRowIndex].FindControl("EditDate") as TextBox; var id = long.Parse(lblId.Text); var doctorId = GetGroupId(txtbDName.Text)[0]; var date = Convert.ToDateTime(txtbDate.Text); var labOrder = new LabOrder() { labOrderId = id, doctorId = doctorId, dateVisit = date }; _dataContext.LabOrders.Attach(labOrder); _dataContext.Refresh(RefreshMode.KeepCurrentValues, labOrder); _dataContext.SubmitChanges(); LabOrderList.EditIndex = -1; //Use For Debug passed value //Debug.WriteLine("id: " + id); //Debug.WriteLine("DName: " + doctorId); //Debug.WriteLine("Date: " + date); } }
private void BindLabTests() { LabOrder order = this.OrderedLabs; List <LabOrderTest> _test = new List <LabOrderTest>(); if (null != order && null != order.OrderedTest && order.OrderedTest.Count > 0) { _test = order.OrderedTest.Where(o => o.DeleteFlag == false).ToList(); } else { _test = new List <LabOrderTest>(); _test.Add(new LabOrderTest() { DeleteFlag = true, Id = -1, TestNotes = "", Test = new LabTest() } ); }; gridTestRequested.DataSource = _test.Where(o => o.DeleteFlag == false).ToList(); gridTestRequested.DataBind(); try { gridTestRequested.HeaderRow.TableSection = TableRowSection.TableHeader; } catch { } }
//Submit Add Form protected void AddLabOrderGroupButton_Click(object sender, EventArgs e) { Button btn = (Button)sender; String btnId = btn.ID; if (btnId.Equals("AddLabOrderButton")) { if (IsValid) { System.Threading.Thread.Sleep(3000); var doctorName = NameTextBox.Text; var doctorId = GetGroupId(doctorName)[0]; var dateVisited = Convert.ToDateTime(VisitedDateTextBox.Text); var labOrder = new LabOrder() { doctorId = doctorId, dateVisit = dateVisited }; _dataContext.LabOrders.InsertOnSubmit(labOrder); _dataContext.SubmitChanges(); LabOrderList.DataBind(); //USe for Testing //Debug.WriteLine("Doctor Name: " + doctorId); //Debug.WriteLine("Date Visisted: " + dateVisited); ResetInputField(); } } else if (btnId.Equals("ResetLabOrderGroupButton")) { ResetInputField(); } }
/// <summary> /// /// </summary> /// <param name="labOrderId"></param> /// <param name="userId"></param> /// <param name="deleteReason"></param> public void DeleteLabOrder(int labOrderId, int userId, string deleteReason) { LabOrderRepository repo = new LabOrderRepository(); LabOrder order = repo.Find(labOrderId); order.DeletedBy = userId; order.DeleteReason = deleteReason; repo.Delete(order); }
protected void btnSave_Click(object sender, EventArgs e) { string labtobedone = txtLabtobeDone.Text; string laborder = ddlaborderedbyname.SelectedValue; string laborderdate = txtlaborderedbydate.Text; string laborderResultBy = ddlLabReportedbyName.SelectedValue; string laborderResultdate = txtlabReportedbyDate.Text; string appcurrdate = hdappcurrentdate.Value; string strClinicalNotes = txtClinicalNotes.Text; if (FieldValidation(labtobedone, laborderdate, laborder, appcurrdate, laborderResultdate, laborderResultBy) == false) { return; } ILabRequest requestMgr = (ILabRequest)ObjectFactory.CreateInstance("BusinessProcess.Laboratory.BLabRequest, BusinessProcess.Laboratory"); if (LabOrderId > 0) //update { // } else { DateTime?nullDatetime = null; LabOrder order = this.OrderedLabs; order.LocationId = this.LocationId; order.PatientPk = this.PatientPk; order.ModuleId = this.ModuleId; order.DeleteFlag = false; order.CreateDate = DateTime.Now; order.PreClinicDate = labtobedone == "" ? nullDatetime : Convert.ToDateTime(labtobedone); order.OrderDate = Convert.ToDateTime(laborderdate); order.OrderedBy = Convert.ToInt32(ddlaborderedbyname.SelectedValue); order.ClinicalNotes = strClinicalNotes; order.UserId = this.UserId; order.OrderedTest.ForEach(o => { o.ResultBy = Convert.ToInt32(ddlLabReportedbyName.SelectedValue); o.ResultDate = Convert.ToDateTime(txtlabReportedbyDate.Text); //o.ParameterResults.ForEach(p => //{ //}); }); LabOrder _saveOrder = requestMgr.SaveLabOrder(order, this.UserId, this.LocationId); this.OrderedLabs = _saveOrder; IQCareMsgBox.NotifyAction(string.Format("Lab Order number {0}, saved successfully", _saveOrder.OrderNumber), "Lab Order", false, this, string.Format("javascript:window.location='{0}'; return false;", this.RedirectUrl)); } }
/// <summary> /// /// </summary> /// <param name="labOrderId"></param> /// <param name="userId"></param> /// <param name="deleteReason"></param> public void DeleteLabOrder(int labOrderId, int userId, string deleteReason) { LabOrderRepository repo = new LabOrderRepository(); LabOrder order = repo.Find(labOrderId); order.DeletedBy = userId; order.DeleteReason = deleteReason; repo.Delete(order); ClsObject obj = new ClsObject(); ClsUtility.Init_Hashtable(); ClsUtility.AddExtendedParameters("@LabOrderId", SqlDbType.Int, labOrderId); int rowCount = (int)obj.ReturnObject(ClsUtility.theParams, "PatientLabTracker_Delete_LabOrder", ClsUtility.ObjectEnum.ExecuteNonQuery); }
protected void btnSave_Click(object sender, EventArgs e) { string labtobedone = txtLabtobeDone.Text; string laborder = ddlaborderedbyname.SelectedValue; string laborderdate = txtlaborderedbydate.Text; string appcurrdate = hdappcurrentdate.Value; string strClinicalNotes = txtClinicalNotes.Text; if (FieldValidation(labtobedone, laborderdate, laborder, appcurrdate) == false) { return; } ILabRequest requestMgr = (ILabRequest)ObjectFactory.CreateInstance("BusinessProcess.Laboratory.BLabRequest, BusinessProcess.Laboratory");; if (LabOrderId > 0) //update { // } else { DateTime?nullDatetime = null; LabOrder order = this.OrderedLabs; order.PatientId = this.PatientId; order.LocationId = this.LocationId; order.ModuleId = this.ModuleId; order.DeleteFlag = false; order.OrderDate = Convert.ToDateTime(laborderdate); order.CreateDate = DateTime.Now; order.PreClinicDate = (labtobedone != null && String.IsNullOrEmpty(labtobedone)) ? nullDatetime : Convert.ToDateTime(labtobedone); order.OrderedBy = Convert.ToInt32(ddlaborderedbyname.SelectedValue); order.UserId = this.UserId; order.ClinicalNotes = strClinicalNotes; if (order.OrderedTest.Count == 0) { IQCareMsgBox.NotifyAction("No lab test selected", "Error saving lab order", true, this, ""); return; } LabOrder _saveOrder = requestMgr.SaveLabOrder(order, this.UserId, this.LocationId); IQCareMsgBox.NotifyAction(string.Format("Lab Order number {0}, saved successfully", _saveOrder.OrderNumber), "Lab Order", false, this, string.Format("javascript:window.location='{0}'; return true;", this.RedirectUrl)); } }
protected void LabNameChanged(object sender, EventArgs e) { LabOrder _order = this.OrderedLabs; int _testId; string _testname = ""; string _refId = ""; string _testDepartmentId = ""; string _testDepartment = ""; string _group = ""; int _paramCount; if (!(hdCustID.Value != null && String.IsNullOrEmpty(hdCustID.Value))) { String[] itemCodes = hdCustID.Value.Split(';'); if (itemCodes.Length == 7) { _testId = Convert.ToInt32(itemCodes[0]); _testname = itemCodes[1].ToString(); _refId = itemCodes[2].ToString(); _paramCount = Convert.ToInt32(itemCodes[3]); _group = itemCodes[4].ToString(); _testDepartmentId = itemCodes[5].ToString(); _testDepartment = itemCodes[6].ToString(); bool proceed = false; proceed = (null == _order.OrderedTest || _order.OrderedTest.Count == 0 || !_order.OrderedTest.Exists(o => o.TestId == _testId)); if (!proceed || _paramCount == 0) { ((TextBox)sender).Text = ""; hdCustID.Value = ""; this.isDataEntry = false; return; } this.LabTestId = _testId; this.LabTestName = _testname; this.DepartmentId = Convert.ToInt32(_testDepartmentId); this.Department = _testDepartment; this.TestReferenceId = _refId; this.ParameterCount = _paramCount; this.IsGroup = bool.Parse(_group); this.isDataEntry = true; } } }
protected void grdPatienOrder_RowDataBound(object sender, GridViewRowEventArgs e) { if (e.Row.RowType == DataControlRowType.DataRow) { e.Row.Attributes["onclick"] = Page.ClientScript.GetPostBackClientHyperlink(grdPatienOrder, "Select$" + e.Row.RowIndex); Label labelName = e.Row.FindControl("labelName") as Label; LabOrder row = ((LabOrder)e.Row.DataItem); if (labelName != null) { labelName.Text = string.Format("{0} {1} {2}", row.Client.FirstName, row.Client.MiddleName, row.Client.LastName); } Label labelOrderedBy = e.Row.FindControl("labelOrderedBy") as Label; if (labelOrderedBy != null) { labelOrderedBy.Text = GetUserFullName(row.OrderedBy); } } }
public LabOrder GetLabOrder(int locationId, int LabOrderId) { ClsObject obj = new ClsObject(); ClsUtility.Init_Hashtable(); PatientCore.PatientCoreServices pt = new PatientCore.PatientCoreServices(); ClsUtility.AddExtendedParameters("@LabOrderId", SqlDbType.Int, LabOrderId); DataTable dt = (DataTable)obj.ReturnObject(ClsUtility.theParams, "Laboratory_GetLabOrder", ClsUtility.ObjectEnum.DataTable); DateTime?nullDate = null; LabOrder order = null; if (null != dt && dt.Rows.Count > 0) { DataRow rowView = dt.Rows[0]; order = new LabOrder() { Id = Convert.ToInt32(rowView["LabOrderId"]), ClinicalNotes = rowView["ClinicalNotes"].ToString(), CreateDate = Convert.ToDateTime(rowView["CreateDate"]), DeleteFlag = Convert.ToBoolean(rowView["DeleteFlag"]), LocationId = Convert.ToInt32(rowView["LocationId"]), ModuleId = Convert.ToInt32(rowView["ModuleId"]), OrderDate = Convert.ToDateTime(rowView["OrderDate"]), OrderedBy = Convert.ToInt32(rowView["OrderedBy"]), OrderNumber = rowView["OrderNumber"].ToString(), PreClinicDate = rowView["PreClinicLabDate"] == DBNull.Value ? nullDate : Convert.ToDateTime(rowView["PreClinicLabDate"]), PatientPk = Convert.ToInt32(rowView["PatientPk"]), Client = pt.GetPatient(Convert.ToInt32(rowView["PatientPk"])), UserId = Convert.ToInt32(rowView["UserId"]), VisitId = Convert.ToInt32(rowView["VisitId"]), OrderStatus = rowView["OrderStatus"].ToString(), OrderedTest = this.GetOrderedTests(Convert.ToInt32(rowView["LabOrderId"])) }; } return(order); }
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(); 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 = this.IsGroup, DeleteFlag = false, UserId = this.UserId }; thisTest.Id = -1; thisTest.TestId = this.LabTestId; thisTest.TestNotes = txtTestNotes.Text; _order.OrderedTest.Add(thisTest); this.OrderedLabs = _order; hdCustID.Value = textSelectLab.Text = txtTestNotes.Text = ""; this.isDataEntry = false; this.BindLabTests(); }
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> /// Populates the request. /// </summary> /// <param name="labOrderId">The lab order identifier.</param> private void PopulateRequest(int labOrderId) { if (null == Session["PatientInformation"]) { IPatientHome PatientManager; PatientManager = (IPatientHome)ObjectFactory.CreateInstance("BusinessProcess.Clinical.BPatientHome, BusinessProcess.Clinical"); DataSet theDS = PatientManager.GetPatientDetails(Convert.ToInt32(Session["PatientId"]), Convert.ToInt32(Session["SystemId"]), Convert.ToInt32(Session["TechnicalAreaId"])); PatientManager = null; Session["PatientInformation"] = theDS.Tables[0]; } int patientId = Convert.ToInt32(HttpContext.Current.Session["patientId"]); this.thisLabOrder = requestMgr.GetLabOrder(this.LocationId, labOrderId); if (this.thisLabOrder.ModuleId <= 0) { EnrollmentService es = new EnrollmentService(PatientId); List <PatientEnrollment> pe = es.GetPatientEnrollment(CurrentSession.Current); if (pe != null) { Session["TechnicalAreaId"] = this.thisLabOrder.ModuleId = pe.FirstOrDefault().ServiceAreaId; base.Session["TechnicalAreaName"] = pe.FirstOrDefault().ServiceArea.Name; } } else { Session["TechnicalAreaId"] = this.thisLabOrder.ModuleId; } CurrentSession session = CurrentSession.Current.ResetCurrentModule(); PatientService service = new PatientService(session, this.PatientId, this.ModuleId); // CurrentSession.Current.SetCurrentModule(this.ModuleId); CurrentSession.Current.SetCurrentPatient(this.PatientId, this.ModuleId); this.LabOrderId = this.thisLabOrder.Id; labelClinicalNotes.Text = this.thisLabOrder.ClinicalNotes; //dt.Rows[0]["ClinicalNotes"].ToString(); // labellaborderedbydate.Text = this.thisLabOrder.OrderDate.ToString("dd-MMM-yyyy"); labelLabtobeDone.Text = this.thisLabOrder.PreClinicDate.HasValue ? this.thisLabOrder.PreClinicDate.Value.ToString("dd-MMM-yyyy") : ""; labelOrderNumber.Text = string.Format("Order Number : {0} | Status : {1} | Ordered by {2} on {3}", thisLabOrder.OrderNumber, thisLabOrder.OrderStatus, this.GetUserFullName(this.thisLabOrder.OrderedBy), this.thisLabOrder.OrderDate.ToString("dd-MMM-yyyy")); // labelOrderedbyname.Text = this.GetEmployeeName(this.thisLabOrder.OrderedBy); LabOrder order = this.thisLabOrder; List <LabOrderTest> _test = new List <LabOrderTest>(); if (null != order && null != order.OrderedTest && order.OrderedTest.Count > 0) { _test = order.OrderedTest.Where(o => o.DeleteFlag == false).ToList(); } else { _test = new List <LabOrderTest>(); _test.Add(new LabOrderTest() { DeleteFlag = true, Id = -1, TestNotes = "", Test = new LabTest() } ); }; repeaterLabTest.DataSource = _test.Where(o => o.DeleteFlag == false && o.Test.IsGroup == false); repeaterLabTest.DataBind(); }
/// <summary> /// Populates the request. /// </summary> /// <param name="labOrderId">The lab order identifier.</param> private void PopulateRequest(int labOrderId) { if (null == Session["PatientInformation"]) { IPatientHome PatientManager; PatientManager = (IPatientHome)ObjectFactory.CreateInstance("BusinessProcess.Clinical.BPatientHome, BusinessProcess.Clinical"); DataSet theDS = PatientManager.GetPatientDetails(Convert.ToInt32(Session["PatientId"]), Convert.ToInt32(Session["SystemId"]), Convert.ToInt32(Session["TechnicalAreaId"])); PatientManager = null; Session["PatientInformation"] = theDS.Tables[0]; } this.thisLabOrder = requestMgr.GetLabOrder(this.LocationId, labOrderId); if (this.thisLabOrder.ModuleId <= 0) { EnrollmentService es = new EnrollmentService(PatientId); List <PatientEnrollment> pe = es.GetPatientEnrollment(CurrentSession.Current); if (pe != null) { Session["TechnicalAreaId"] = this.thisLabOrder.ModuleId = pe.FirstOrDefault().ServiceAreaId; base.Session["TechnicalAreaName"] = pe.FirstOrDefault().ServiceArea.Name; } } else { Session["TechnicalAreaId"] = this.thisLabOrder.ModuleId; } CurrentSession session = CurrentSession.Current.ResetCurrentModule(); PatientService service = new PatientService(session, this.PatientId, this.ModuleId); // CurrentSession.Current.SetCurrentModule(this.ModuleId); CurrentSession.Current.SetCurrentPatient(this.PatientId, this.ModuleId); this.LabOrderId = this.thisLabOrder.Id; labelClinicalNotes.Text = this.thisLabOrder.ClinicalNotes; //dt.Rows[0]["ClinicalNotes"].ToString(); // labellaborderedbydate.Text = this.thisLabOrder.OrderDate.ToString("dd-MMM-yyyy"); labelLabtobeDone.Text = this.thisLabOrder.PreClinicDate.HasValue ? this.thisLabOrder.PreClinicDate.Value.ToString("dd-MMM-yyyy") : ""; labelOrderNumber.Text = string.Format("Order Number : {0} | Status : {1} | Ordered by {2} on {3}", thisLabOrder.OrderNumber, thisLabOrder.OrderStatus, this.GetUserFullName(this.thisLabOrder.OrderedBy), this.thisLabOrder.OrderDate.ToString("dd-MMM-yyyy")); // labelOrderedbyname.Text = this.GetEmployeeName(this.thisLabOrder.OrderedBy); LabOrder order = this.thisLabOrder; List <LabOrderTest> _test = new List <LabOrderTest>(); if (null != order && null != order.OrderedTest && order.OrderedTest.Count > 0) { _test = order.OrderedTest.Where(o => o.DeleteFlag == false).ToList(); } else { _test = new List <LabOrderTest>(); _test.Add(new LabOrderTest() { DeleteFlag = true, Id = -1, TestNotes = "", Test = new LabTest() } ); }; /* * XmlDocument reportXML = new XmlDocument(); * XmlDeclaration newChild = reportXML.CreateXmlDeclaration("1.0", "UTF-8", null); * reportXML.AppendChild(newChild); * XmlElement element = reportXML.CreateElement("Root"); * reportXML.AppendChild(element); * XmlElement rootElement = reportXML.DocumentElement; * * //XmlNode reportNode = reportXML.CreateNode(XmlNodeType.Element, "Order", string.Empty); * //reportNode.InnerXml = * // new XElement("orderid", this.thisLabOrder.Id).ToString() + * // new XElement("ordernumber", this.thisLabOrder.OrderNumber).ToString() + * // new XElement("orderdate", thisLabOrder.OrderDate.ToString("o")).ToString() + * // new XElement("orderby", this.GetUserFullName(thisLabOrder.OrderedBy)).ToString() + * // new XElement("servicearea", this.GetModuleName(thisLabOrder.ModuleId)).ToString() + * // new XElement("patientname", string.Format("{0} {1}", thisLabOrder.Client.FirstName, thisLabOrder.Client.LastName)).ToString() + * // new XElement("patientgender", thisLabOrder.Client.Sex).ToString() + * // new XElement("patientdob", thisLabOrder.Client.DateOfBirth.ToString("o")) + * // new XElement("patientnumber", thisLabOrder.Client.UniqueFacilityId).ToString(); * //rootElement.AppendChild(reportNode); * DateTime? nulldate = null; * bool? nullBit = null; * Double? nullDouble = null; * XElement orderE = new XElement("Order", * new XElement("orderid", this.thisLabOrder.Id), * new XElement("ordernumber", this.thisLabOrder.OrderNumber), * new XElement("orderstatus", this.thisLabOrder.OrderStatus), * new XElement("orderdate", thisLabOrder.OrderDate.ToString("o")), * new XElement("ordernotes", thisLabOrder.ClinicalNotes), * new XElement("orderby", this.GetUserFullName(thisLabOrder.OrderedBy)), * new XElement("servicearea", this.GetModuleName(thisLabOrder.ModuleId)), * new XElement("patientname", string.Format("{0} {1}", thisLabOrder.Client.FirstName, thisLabOrder.Client.LastName)), * new XElement("patientgender", thisLabOrder.Client.Sex), * new XElement("patientdob", thisLabOrder.Client.DateOfBirth.ToString("o")) , * new XElement("patientnumber", thisLabOrder.Client.UniqueFacilityId).ToString()); * XmlDocumentFragment orderNode = reportXML.CreateDocumentFragment(); * orderNode.InnerXml = orderE.ToString(); * rootElement.AppendChild(orderNode); * * * foreach (LabOrderTest orderedTest in thisLabOrder.OrderedTest.Where(o => o.ParentLabTestId == null)) * { * //XElement c = new XElement("Test", * // new XElement("ordertestid", orderedTest.Id), * // new XElement("testid", orderedTest.Test.Id), * // new XElement("testname", orderedTest.Test.Name), * // new XElement("department", orderedTest.Test.DepartmentName), * // new XElement("testnote", orderedTest.TestNotes), * // new XElement("resultnote", orderedTest.ResultNotes), * // new XElement("orderstatus", orderedTest.TestOrderStatus), * // new XElement("resultdate", orderedTest.ResultDate.HasValue ? orderedTest.ResultDate.Value.ToString("o") : ""), * //new XElement("resultby", orderedTest.ResultBy.HasValue ? this.GetUserFullName(orderedTest.ResultBy.Value) : "")); * foreach (LabTestParameterResult result in orderedTest.ParameterResults) * { * XElement r = new XElement("Result", * new XElement("id", result.LabOrderTestId), * new XElement("orderedtestid", orderedTest.Id), * new XElement("orderid", result.LabOrderId), * new XElement("testid", orderedTest.Id), * new XElement("testname", orderedTest.TestName), * new XElement("department", orderedTest.Test.DepartmentName), * new XElement("testnote", orderedTest.TestNotes), * new XElement("resultnote", orderedTest.ResultNotes), * new XElement("teststatus", orderedTest.TestOrderStatus), * new XElement("parameterid", result.ParameterId), * new XElement("parametername", result.ParameterName), * new XElement("datatype", result.ResultDataType), * new XElement("hasresult", result.HasResult), * new XElement("resultdate", orderedTest.ResultDate.HasValue ? orderedTest.ResultDate.Value : nulldate), * new XElement("resultby", orderedTest.ResultBy.HasValue ? this.GetUserFullName(orderedTest.ResultBy.Value) : ""), * new XElement("unit", result.ResultUnitName), * new XElement("undetectable", result.Undetectable.HasValue ? result.Undetectable.Value : nullBit), * new XElement("detectionlimit", result.DetectionLimit.HasValue ? result.DetectionLimit.Value : nullDouble), * new XElement("resultvalue", result.ResultDataType == "NUMERIC" ? (result.ResultValue.HasValue? result.ResultValue.Value.ToString(): "") : (result.ResultDataType == "SELECTLIST" ? result.ResultOption : result.ResultText)) , * new XElement("maxboundary", (result.Config != null && result.Config.MaxBoundary.HasValue) ? result.Config.MaxBoundary.Value.ToString() : ""), * new XElement("minboundary", (result.Config != null && result.Config.MinBoundary.HasValue) ? result.Config.MinBoundary.Value.ToString() : ""), * new XElement("maxnormalboundary", (result.Config != null && result.Config.MaxNormalRange.HasValue) ? result.Config.MaxNormalRange.Value.ToString() : ""), * new XElement("minnormalboundary", (result.Config != null && result.Config.MinNormalRange.HasValue) ? result.Config.MinNormalRange.Value.ToString() : "") * * ); * XmlDocumentFragment resultNode = reportXML.CreateDocumentFragment(); * resultNode.InnerXml = r.ToString(); * rootElement.AppendChild(resultNode); * } * * //XmlDocumentFragment testNode = reportXML.CreateDocumentFragment(); * //testNode.InnerXml = c.ToString(); * //rootElement.AppendChild(testNode); * } * * reportXML.Save(@"C:\apps\labresult.xml"); * * DataSet ds = new DataSet("Report"); * using (System.IO.TextReader txR = new System.IO.StringReader(reportXML.InnerXml)) * { * ds.ReadXml(txR); * txR.Close(); * } * ds.WriteXml(@"C:\apps\labresultschema.xml", XmlWriteMode.WriteSchema);*/ repeaterLabTest.DataSource = _test.Where(o => o.DeleteFlag == false && o.Test.IsGroup == false); repeaterLabTest.DataBind(); }
protected void LabNameChanged(object sender, EventArgs e) { // textSelectLab.Text = ""; // DataSet ds = this.RequestedTests; //DataTable dt = ds.Tables["LabTest"]; LabOrder _order = this.OrderedLabs; int _testId; string _testname = ""; string _refId = ""; string _testDepartmentId = ""; string _testDepartment = ""; string _group = ""; this.isDataEntry = false; int _paramCount; if (hdCustID.Value != "") { String[] itemCodes = hdCustID.Value.Split(';'); if (itemCodes.Length == 7) { _testId = Convert.ToInt32(itemCodes[0]); _testname = itemCodes[1].ToString(); _refId = itemCodes[2].ToString(); _paramCount = Convert.ToInt32(itemCodes[3]); _group = itemCodes[4].ToString(); _testDepartmentId = itemCodes[5].ToString(); _testDepartment = itemCodes[6].ToString(); bool proceed = false; proceed = (null == _order.OrderedTest || _order.OrderedTest.Count == 0 || !_order.OrderedTest.Exists(o => o.TestId == _testId)); //DataRow thisRow = null; //if (dt.Rows.Count > 0) //{ // thisRow = dt.AsEnumerable() // .DefaultIfEmpty(null) // .FirstOrDefault(r => r["TestId"].ToString() == _testId.ToString()); //} if (!proceed || _paramCount == 0) { ((TextBox)sender).Text = ""; hdCustID.Value = ""; this.isDataEntry = false; return; } this.LabTestId = _testId; this.LabTestName = _testname; this.DepartmentId = Convert.ToInt32(_testDepartmentId); this.Department = _testDepartment; this.TestReferenceId = _refId; this.ParameterCount = _paramCount; List <TestParameter> parameters = labMgr.GetLabTestParameters(_testId); DataTable thisTest = this.SelectedTestParameters; thisTest.Rows.Clear(); parameters.ForEach(p => { DataRow paramRow = thisTest.NewRow(); paramRow.SetField("TestOrderId", -1); paramRow.SetField("ResultId", -1); paramRow.SetField("LabOrderId", -1); paramRow.SetField("TestId", _testId); paramRow.SetField("ParameterId", p.Id); paramRow.SetField("UserId", this.UserId); paramRow.SetField("ResultDate", DBNull.Value); paramRow.SetField("ParameterName", p.Name); paramRow.SetField("TestName", _testname); paramRow.SetField("DataType", p.DataType); thisTest.Rows.Add(paramRow); }); thisTest.AcceptChanges(); this.SelectedTestParameters = thisTest; this.isDataEntry = true; this.BindTestParameterResults(); } } }
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(); }