Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        //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);
            }
        }
Ejemplo n.º 3
0
        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 { }
        }
Ejemplo n.º 4
0
        //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();
            }
        }
Ejemplo n.º 5
0
        /// <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);
        }
Ejemplo n.º 6
0
        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));
            }
        }
Ejemplo n.º 7
0
        /// <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);
        }
Ejemplo n.º 8
0
        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));
            }
        }
Ejemplo n.º 9
0
        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;
                }
            }
        }
Ejemplo n.º 10
0
        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);
                }
            }
        }
Ejemplo n.º 11
0
        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);
        }
Ejemplo n.º 12
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();
            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();
        }
Ejemplo n.º 13
0
        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);
        }
Ejemplo n.º 14
0
        /// <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();
        }
Ejemplo n.º 15
0
        /// <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();
        }
Ejemplo n.º 16
0
        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();
                }
            }
        }
Ejemplo n.º 17
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();
        }