Ejemplo n.º 1
0
        public PatientLabTracker GetPatientLastVL(int patientId)
        {
            lock (this)
            {
                ClsObject PatientEncounter = new ClsObject();
                ClsUtility.Init_Hashtable();
                ClsUtility.AddParameters("@PatientId", SqlDbType.Int, patientId.ToString());

                DataTable theDT = (DataTable)PatientEncounter.ReturnObject(ClsUtility.theParams, "sp_getAllViralLoads", ClsUtility.ObjectEnum.DataTable);

                PatientLabTracker lastVL = new PatientLabTracker();

                if (theDT.Rows.Count > 0)
                {
                    lastVL.ResultValues = Convert.ToDecimal(theDT.Rows[0]["resultvalue"]);
                    lastVL.CreateDate   = Convert.ToDateTime(theDT.Rows[0]["resultdate"]);
                    lastVL.Results      = theDT.Rows[0]["orderstatus"].ToString();
                    lastVL.SampleDate   = Convert.ToDateTime(theDT.Rows[0]["orderdate"]);
                    lastVL.LabTestId    = Convert.ToInt32(theDT.Rows[0]["parameterid"]);
                }


                return(lastVL);
            }
        }
Ejemplo n.º 2
0
        public List <PatientLabTracker> GetAllPatientVLs(int patientId)
        {
            lock (this)
            {
                ClsObject PatientEncounter = new ClsObject();
                ClsUtility.Init_Hashtable();
                ClsUtility.AddParameters("@PatientId", SqlDbType.Int, patientId.ToString());

                DataTable theDT = (DataTable)PatientEncounter.ReturnObject(ClsUtility.theParams, "sp_getAllViralLoads", ClsUtility.ObjectEnum.DataTable);

                List <PatientLabTracker> list = new List <PatientLabTracker>();

                for (int i = 0; i < theDT.Rows.Count; i++)
                {
                    PatientLabTracker vl = new PatientLabTracker();
                    if (theDT.Rows[i]["resultvalue"] == null || theDT.Rows[i]["resultvalue"] == DBNull.Value)
                    {
                        vl.ResultValues = null;
                    }
                    else
                    {
                        vl.ResultValues = Convert.ToDecimal(theDT.Rows[i]["resultvalue"]);
                    }
                    vl.CreateDate = Convert.ToDateTime(theDT.Rows[i]["resultdate"]);

                    list.Add(vl);
                }

                return(list);
            }
        }
Ejemplo n.º 3
0
 public int UpdatePatientLabOrder(PatientLabTracker patientLabTracker)
 {
     using (UnitOfWork _unitOfWork = new UnitOfWork(new GreencardContext()))
     {
         _unitOfWork.PatientLabTrackerRepository.Update(patientLabTracker);
         Result = _unitOfWork.Complete();
         _unitOfWork.Dispose();
         return(Result);
     }
 }
        public async Task <Result <AddLabOrderResponse> > Handle(AddLabOrderCommand request, CancellationToken cancellationToken)
        {
            using (var transaction = _labUnitOfWork.BeginTransaction(IsolationLevel.ReadCommitted))
            {
                try
                {
                    if (request.LabTests == null)
                    {
                        throw new ArgumentException("LabTests details not found");
                    }

                    var labOrder = _mapper.Map <LabOrder>(request);
                    await _labUnitOfWork.Repository <LabOrder>().AddAsync(labOrder);

                    await _labUnitOfWork.SaveAsync();

                    var labOrderTests = request.LabTests
                                        .Select(x => new LabOrderTest(labOrder.Id, x.Id, x.Notes, request.UserId, false))
                                        .ToList();

                    await _labUnitOfWork.Repository <LabOrderTest>().AddRangeAsync(labOrderTests);

                    await _labUnitOfWork.SaveAsync();

                    var patientLabTrackers = new List <PatientLabTracker>();

                    foreach (var labOrderTest in labOrderTests)
                    {
                        var labName = request.LabTests.FirstOrDefault(x => x.Id == labOrderTest.LabTestId)?.LabTestName;

                        var parameterCount = _labUnitOfWork.Repository <LabTest>().Get(x => x.Id == labOrderTest.LabTestId)
                                             .SingleOrDefault()?.ParameterCount;

                        if (parameterCount == 0)
                        {
                            continue;
                        }

                        var orderReason = request.LabTests.SingleOrDefault(x => x.Id == labOrderTest.LabTestId)
                                          ?.OrderReason;

                        var patientLabTacker = new PatientLabTracker(request.PatientId, labName,
                                                                     request.PatientMasterVisitId, labOrderTest.LabTestId,
                                                                     labOrder.Id, labOrderTest.Id, request.LocationId, request.OrderDate, request.UserId,
                                                                     orderReason, null);

                        patientLabTrackers.Add(patientLabTacker);
                    }

                    await _labUnitOfWork.Repository <PatientLabTracker>().AddRangeAsync(patientLabTrackers);

                    await _labUnitOfWork.SaveAsync();

                    transaction.Commit();

                    return(Result <AddLabOrderResponse> .Valid(new AddLabOrderResponse
                    {
                        LabOrderId = labOrder.Id
                    }));
                }
                catch (Exception ex)
                {
                    string message = $"An error occured while saving lab order request for patientId {request.PatientId}";
                    Log.Error(ex, message);
                    transaction.Rollback();

                    return(Result <AddLabOrderResponse> .Invalid(message));
                }
            }
        }
Ejemplo n.º 5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var patientTransfer   = new PatientTransferInmanager();
            var patientDiagnosis  = new PatientHivDiagnosisManager();
            var patientEntryPoint = new PatientEntryPointManager();
            PatientLookupManager patientLookup = new PatientLookupManager();

            Session["TechnicalAreaId"] = 203;
            var objTransfer          = patientTransfer.GetPatientTransferIns(PatientId);
            var objDiagnosis         = patientDiagnosis.GetPatientHivDiagnosisList(PatientId);
            var objEntryPoint        = patientEntryPoint.GetPatientEntryPoints(Convert.ToInt32(Session["PatientPK"]));
            var patientDetailSummary = patientLookup.GetPatientDetailSummary(Convert.ToInt32(Session["PatientPK"]));

            if (patientDetailSummary != null)
            {
                this.ptnPk = patientDetailSummary.ptn_pk.HasValue ? patientDetailSummary.ptn_pk.Value : 0;
            }


            if (objTransfer.Count > 0)
            {
                foreach (var item in objTransfer)
                {
                    lblTransferinDate.Text     = "<h6>" + item.TransferInDate.ToString("dd-MMM-yyyy") + "</h6>";
                    lblTreatmentStartDate.Text = "<h6>" + item.TreatmentStartDate.ToString("dd-MMM-yyyy") + "</h6>";;
                    //lblTIRegimen.Text = "<h6>" + LookupLogic.GetLookupNameById(Convert.ToInt32(item.CurrentTreatment)).ToString() + "</h6>"; ;
                    lblFacilityFrom.Text = "<h6>" + item.FacilityFrom.ToString() + "</h6>";;
                }
            }
            else
            {
                lblTransferinDate.Text     = "N/A";
                lblTreatmentStartDate.Text = "N/A";
                lblTIRegimen.Text          = "N/A";
                lblFacilityFrom.Text       = "N/A";
            }

            if (objDiagnosis.Count > 0)
            {
                foreach (var item in objDiagnosis)
                {
                    if (item.HivDiagnosisDate.HasValue)
                    {
                        DateTime HivDiagnosisDate = item.HivDiagnosisDate.Value;
                        lblDateOfHivDiagnosis.Text = HivDiagnosisDate.ToString("dd-MMM-yyyy");
                    }
                    else
                    {
                        lblDateOfHivDiagnosis.Text = "Not Taken";
                    }

                    if (item.EnrollmentDate.HasValue)
                    {
                        lblDateOfEnrollment.Text = item.EnrollmentDate.Value.ToString("dd-MMM-yyyy");
                    }
                    else
                    {
                        lblDateOfEnrollment.Text = "Not Taken";
                    }

                    // lblWhoStage.Text = LookupLogic.GetLookupNameById(item.EnrollmentWhoStage).ToString();
                    //lblDateOfHivDiagnosis.Text = item.HivDiagnosisDate.ToString("dd-MMM-yyyy");
                    lblARTInitiationDate.Text = Convert.ToString(item.ArtInitiationDate);
                }
            }
            else
            {
                lblDateOfHivDiagnosis.Text = "Not Taken";
                lblDateOfEnrollment.Text   = "Not Taken";
                lblWhoStage.Text           = "Not Taken";
                lblARTInitiationDate.Text  = "Not Taken";
            }

            if (objEntryPoint.Count > 0)
            {
                foreach (var item in objEntryPoint)
                {
                    lblEntryPoint.Text = LookupLogic.GetLookupNameById(item.EntryPointId);
                }
            }
            else
            {
                lblEntryPoint.Text = "missing";
            }

            if (!IsPostBack)
            {
                ILookupManager mgr =
                    (ILookupManager)
                    ObjectFactory.CreateInstance("BusinessProcess.CCC.BLookupManager, BusinessProcess.CCC");

                List <LookupItemView> keyPopulationList = mgr.GetLookItemByGroup("PopulationType");
                if (keyPopulationList != null && keyPopulationList.Count > 0)
                {
                    bioPatientPopulation.Items.Add(new ListItem("select", "0"));
                    foreach (var item in keyPopulationList)
                    {
                        bioPatientPopulation.Items.Add(new ListItem(item.ItemDisplayName, item.ItemId.ToString()));
                    }
                }

                List <LookupCounty> ct = mgr.GetLookupCounties();

                if (ct != null && ct.Count > 0)
                {
                    smrCounty.Items.Add(new ListItem("select", "0"));
                    foreach (var item in ct)
                    {
                        smrCounty.Items.Add(new ListItem(item.CountyName, item.CountyId.ToString()));
                    }
                }

                List <LookupItemView> vw = mgr.GetGenderOptions();
                if (vw != null && vw.Count > 0)
                {
                    trtGender.Items.Add(new ListItem("select", "0"));

                    foreach (var item in vw)
                    {
                        trtGender.Items.Add(new ListItem(item.ItemName, item.ItemId.ToString()));
                    }
                }

                if (vw != null && vw.Count > 0)
                {
                    Gender.Items.Add(new ListItem("select", "0"));

                    foreach (var item in vw)
                    {
                        Gender.Items.Add(new ListItem(item.ItemName, item.ItemId.ToString()));
                    }
                }

                List <LookupItemView> keyPopList = mgr.GetLookItemByGroup("KeyPopulation");
                if (keyPopList != null && keyPopList.Count > 0)
                {
                    var    patientLookUp = new PatientLookupManager();
                    int    sex           = patientLookUp.GetPatientSexId(Convert.ToInt32(Session["PatientPK"]));
                    string gender        = LookupLogic.GetLookupNameById(sex);
                    //bioPatientKeyPopulation.Items.Add(new ListItem("select", "0"));
                    foreach (var item in keyPopList)
                    {
                        if (gender == "Female" && item.DisplayName == "Men having Sex with Men")
                        {
                        }
                        else if (gender == "Male" && item.DisplayName == "Female Sex Worker")
                        {
                        }
                        else
                        {
                            bioPatientKeyPopulation.Items.Add(new ListItem(item.ItemDisplayName, item.ItemId.ToString()));
                        }
                    }
                }

                // Get Patient Regimen Map:
                IPatientTreatmentTrackerManager patientTreatmentTrackerManager = (IPatientTreatmentTrackerManager)ObjectFactory.CreateInstance("BusinessProcess.CCC.Lookup.BPatientTreatmentTrackerManager, BusinessProcess.CCC");
                var curentRegimen = patientTreatmentTrackerManager.GetCurrentPatientRegimen(PatientId);

                if (curentRegimen != null)
                {
                    if (curentRegimen.RegimenId > 0)
                    {
                        //lblCurrentRegimen.Text = "<span class='label label-success'>" + curentRegimen.Regimen.ToString() + " started on : " + Convert.ToDateTime(curentRegimen.DispensedByDate).ToString("dd-MMM-yyyy") + "</span>";
                        lblCurrentRegimen.Text = "<span class='label label-success'>" + curentRegimen.Regimen.ToString() + " | " + Convert.ToDateTime(curentRegimen.DispensedByDate).ToString("dd-MMM-yyyy") + "</span>";
                    }
                    else
                    {
                        lblCurrentRegimen.Text = "<span class='label label-danger'>Patient NOT on ARVs</span>";
                    }
                }
                else
                {
                    lblCurrentRegimen.Text = "<span class='label label-danger'>Patient NOT on ARVs</span>";
                }

                //Get Adherance Status
                ILookupManager patientAdheLookupManager = (ILookupManager)ObjectFactory.CreateInstance("BusinessProcess.CCC.BLookupManager, BusinessProcess.CCC");
                var            adherenceList            = LookupLogic.GetLookItemByGroup("ARVAdherence");
                int            adherenceType            = 34;
                if (adherenceList.Count > 0)
                {
                    adherenceType = adherenceList[0].MasterId;
                }

                var adheranceStatus = patientAdheLookupManager.GetPatientAdherence(PatientId, adherenceType);

                if (adheranceStatus != null)
                {
                    string adheranceString = LookupLogic.GetLookupNameById(adheranceStatus.Score);
                    switch (adheranceString)
                    {
                    case "Poor":
                        lblAdheranceStatus.Text = "<span class='label label-danger'> Poor [Offer Adherence Interventions]</span>";
                        break;

                    case "Good":
                        lblAdheranceStatus.Text = "<span class='label label-success'> Good </span>";
                        break;

                    case "Fair":
                        lblAdheranceStatus.Text = "<span class='label label-warning'> Fair [Consider Adherence Intervetion]</span>";
                        break;
                    }
                }
                else
                {
                    lblAdheranceStatus.Text = "<span class='label label-danger'>Adherance Assessment Not Done</span>";
                }

                /*update Treatment Initiation for New Patients */
                if (PatientType == "New")
                {
                    var patientTreatmentManager = new PatientTreatmentTrackerManager();
                    var ptnTreatmentInitiation  = patientTreatmentManager.GetCurrentPatientRegimen(PatientId);
                    var ptnTreatmentBaseline    = patientTreatmentManager.GetPatientbaselineRegimenLookup(PatientId);
                    if (ptnTreatmentInitiation != null)
                    {
                        if (ptnTreatmentBaseline != null)
                        {
                            if (ptnTreatmentBaseline.DispensedByDate.HasValue)
                            {
                                DateTime DispensedByDate = (DateTime)ptnTreatmentBaseline.DispensedByDate;

                                lblFirstline.Text = DispensedByDate.ToString("dd-MMM-yyyy");
                                lblcohort.Text    = DispensedByDate.ToString("MMM") + "-" + DispensedByDate.Year;
                            }

                            lblRegimenName.Text = ptnTreatmentInitiation.Regimen.ToString();
                            //lblCurrentRegimen.Text = "<span class='label label-success'>" + ptnTreatmentBaseline.Regimen.ToString() + "</span>";
                            lblARTInitiationDate.Text = ptnTreatmentBaseline.CreateDate.ToString("dd-MMM-yyyy");

                            // lblRegimenName.Text = ptnTreatmentInitiation.Regimen.ToString();
                            //lblCurrentRegimen.Text = "<span class='label label-success'>" + ptnTreatmentBaseline.Regimen.ToString() + "</span>";
                            //lblARTInitiationDate.Text = ptnTreatmentBaseline.CreateDate.ToString("dd-MMM-yyyy");
                        }
                    }
                    else
                    {
                        lblDateOfARTInitiation.Text = "<span class='label'> Not dispensed</span>";
                        lblcohort.Text = "<span class='label label-danger'>N/A</span>";
                        // lblCurrentRegimen.Text = "<span class='label label-danger'>PATIENT NOT ON ARVs</span>";
                    }
                }

                // viral Load Alerts

                //PatientLabTracker vltestId = _lookupData.GetPatientLabTestId(PatientId);  //check patient has vl lab
                PatientLabTracker lastVL = _lookupData.GetPatientLastVL(PatientId);

                //if (lastVL != null)
                //{
                //    labTestId = lastVL.LabTestId;
                //}
                if (lastVL != null)
                {
                    //var labOrder = _lookupData.GetPatientCurrentviralLoadInfo(PatientId);  //get vl lab details for patient

                    //if (lastVL != null)
                    //{
                    //foreach (var item in _lookupData.GetPatientVlById(labOrder.Id))
                    //{
                    //    vlValue = item.ResultValues;
                    //}

                    // vlValue = Convert.ToDecimal(_lookupData.GetPatientVL(LabOrder.Id));
                    if (PatientType == "New")
                    {
                        //lblbaselineVL.Text = Convert.ToString(vlValue);
                        DateTime x = Convert.ToDateTime(lastVL.SampleDate);
                        lblBlDate.Text = x.ToString("dd-MMM-yyyy");
                    }
                    else
                    {
                        lblbaselineVL.Text = "<span class='label label-danger'>Not Taken</span>";
                        lblBlDate.Text     = "<span class='label label-danger'>N/A</span>";
                    }
                    if (lastVL.Results != null)
                    {
                        switch (lastVL.Results.ToLower().Trim())
                        {
                        case "pending":
                            var      pendingDueDate = Convert.ToDateTime(lastVL.SampleDate);
                            DateTime sampleDate     = Convert.ToDateTime(lastVL.SampleDate.ToString());

                            if ((DateTime.Today.Subtract(sampleDate).Days > 30))
                            {
                                lblVL.Text        = "<span class='label label-danger' > Overdue | Ordered On: " + ((DateTime)lastVL.SampleDate).ToString("dd-MMM-yyyy") + "</span>";
                                lblvlDueDate.Text = "<span class='label label-success'> " + pendingDueDate.AddMonths(6).ToString("dd-MMM-yyy") + " </span>";
                            }
                            else if ((lastVL.Results == "Pending") && (DateTime.Today.Subtract(sampleDate).Days < 30))
                            {
                                lblVL.Text        = "<span class='label label-warning'> Pending | Ordered On: " + ((DateTime)lastVL.SampleDate).ToString("dd-MMM-yyyy") + "</span>";
                                lblvlDueDate.Text = "<span class='label label-success'> " + pendingDueDate.AddMonths(6).ToString("dd-MMM-yyy") + " </span>";
                            }
                            else
                            {
                                lblVL.Text         = "<span class='label label-warning'>" + lastVL.Results + "| Date: " + ((DateTime)lastVL.SampleDate).ToString("dd-MMM-yyyy") + "</span>";
                                lblbaselineVL.Text = "<span class='label label-warning'>" + lastVL.Results + "| Date: " + ((DateTime)lastVL.SampleDate).ToString("dd-MMM-yyyy") + "</span>";
                            }
                            break;

                        case "complete":
                        case "completed":
                            if (lastVL.ResultValues >= 1000)
                            {
                                lblVL.Text        = "<span class='label label-danger'>" + lastVL.ResultValues + " copies/ml (" + Convert.ToDateTime(lastVL.SampleDate).ToString("dd-MMM-yyyy") + ")</span>";
                                lblvlDueDate.Text = "<span class='label label-success' > " + ((DateTime)lastVL.SampleDate).AddMonths(3).ToString("dd-MMM-yyyy") + "</span>";
                            }
                            else if (lastVL.ResultValues <= 50)
                            {
                                lblVL.Text        = "<span class='label label-success'> Undetectable VL (" + Convert.ToDateTime(lastVL.SampleDate).ToString("dd-MMM-yyyy") + ")</span>";
                                lblvlDueDate.Text = "<span class='label label-success' > " + ((DateTime)lastVL.SampleDate).AddMonths(12).ToString("dd-MMM-yyyy") + "</span>";
                            }
                            else
                            {
                                lblVL.Text        = "<span class='label label-success' > Complete | Results : " + lastVL.ResultValues + " copies/ml</span>";
                                lblvlDueDate.Text = "<span class='label label-success' > " + ((DateTime)lastVL.SampleDate).AddMonths(12).ToString("dd-MMM-yyyy") + "</span>";
                            }
                            break;

                        default:
                            var patientEnrollment = new PatientEnrollmentManager();
                            var enrolDate         = patientEnrollment.GetPatientEnrollmentDate(PatientId);

                            var treatmentTrackerManager = new PatientTreatmentTrackerManager();

                            var patientBaseline = treatmentTrackerManager.GetPatientbaselineRegimenLookup(PatientId);

                            DateTime today = DateTime.Today;
                            // TimeSpan difference = today.Date - enrolDate.Date;
                            TimeSpan difference = today.Date - patientBaseline.CreateDate;
                            int      days       = (int)difference.TotalDays;

                            if (patientBaseline != null)
                            {
                                if (patientBaseline.RegimenId > 0)
                                {
                                    if (days < 180)
                                    {
                                        lblvlDueDate.Text = "<span class='label label-success'>" + patientBaseline.CreateDate.AddMonths(6).ToString("dd-MMM-yyyy") + "</span>";
                                        lblVL.Text        = "<span class='label label-success fa fa-exclamation'><strong>  VL Not Requested  </strong></span>";
                                    }
                                    else
                                    {
                                        lblVL.Text        = "<span class='label label-danger'> Not Done </span>";
                                        lblvlDueDate.Text = "<span class='label label-danger'><strong> Overdue Since | " + patientBaseline.CreateDate.AddMonths(6).ToString("dd-MMM-yyyy") + " </strong></span>";
                                    }
                                }
                                else
                                {
                                    lblVL.Text        = "<span class='label label-danger'> Not Available </span>";
                                    lblvlDueDate.Text = "<span class='label label-danger'><strong> unknown </strong></span>";
                                }
                            }
                            else
                            {
                                lblVL.Text        = "<span class='label label-danger'> Not Done </span>";
                                lblvlDueDate.Text = "<span class='label label-danger'><strong>  Overdue Since | " + patientBaseline.CreateDate.AddMonths(6).ToString("dd-MMM-yyyy") + " </strong></span>";
                            }


                            break;
                        }
                    }
                    else
                    {
                        //var patientEnrollment = new PatientEnrollmentManager();
                        //var enrolDate = patientEnrollment.GetPatientEnrollmentDate(PatientId);

                        var treatmentTrackerManager = new PatientTreatmentTrackerManager();
                        var patientBaseline         = treatmentTrackerManager.GetPatientbaselineRegimenLookup(PatientId);

                        if (patientBaseline != null)
                        {
                            if (patientBaseline.RegimenId > 0)
                            {
                                DateTime today = DateTime.Today;
                                //TimeSpan difference = today.Date - enrolDate.Date;
                                TimeSpan difference = today.Date - patientBaseline.CreateDate;
                                int      days       = (int)difference.TotalDays;

                                if (days < 180)
                                {
                                    lblvlDueDate.Text = "<span class='label label-success'>" + patientBaseline.CreateDate.AddMonths(6).ToString("dd-MMM-yyyy") + "</span>";
                                    lblVL.Text        = "<span class='label label-success fa fa-exclamation'><strong>  VL Not Requested  </strong></span>";
                                }
                                else
                                {
                                    lblVL.Text        = "<span class='label label-danger'> Not Done </span>";
                                    lblvlDueDate.Text = "<span class='label label-danger'><strong>  Overdue Since | " + patientBaseline.CreateDate.AddMonths(6).ToString("dd-MMM-yyyy") + " </strong></span>";
                                }
                            }
                            else
                            {
                                lblVL.Text        = "<span class='label label-danger'> Not Done</span>";
                                lblvlDueDate.Text = "<span class='label label-danger'><strong> unknown </strong></span>";
                            }
                        }
                        else
                        {
                            lblVL.Text        = "<span class='label label-danger'> Not Done </span>";
                            lblvlDueDate.Text = "<span class='label label-danger'><strong> unknown </strong></span>";
                        }
                    }
                    //}
                }
                else
                {
                    //var patientEnrollment = new PatientEnrollmentManager();
                    //var enrolDate = patientEnrollment.GetPatientEnrollmentDate(PatientId);

                    var treatmentTrackerManager = new PatientTreatmentTrackerManager();
                    var patientBaseline         = treatmentTrackerManager.GetPatientbaselineRegimenLookup(PatientId);

                    DateTime today = DateTime.Today;
                    //TimeSpan difference = today.Date - enrolDate.Date;
                    TimeSpan difference = today.Date - patientBaseline.CreateDate;

                    if (patientBaseline != null)
                    {
                        if (patientBaseline.RegimenId > 0)
                        {
                            int days = (int)difference.TotalDays;

                            if (days < 180)
                            {
                                lblvlDueDate.Text = "<span class='label label-success'>" + patientBaseline.CreateDate.AddMonths(6).ToString("dd-MMM-yyyy") + "</span>";
                                lblVL.Text        = "<span class='label label-success fa fa-exclamation'><strong>  VL Not Requested  </strong></span>";
                            }
                            else
                            {
                                lblVL.Text        = "<span class='label label-danger'> Not Available </span>";
                                lblvlDueDate.Text = "<span class='label label-danger'><strong> Overdue </strong></span>";
                            }
                        }
                        else
                        {
                            lblVL.Text        = "<span class='label label-danger'> Not Done </span>";
                            lblvlDueDate.Text = "<span class='label label-danger'><strong> unknown </strong></span>";
                        }
                    }
                    else
                    {
                        lblVL.Text        = "<span class='label label-danger'> Not Done </span>";
                        lblvlDueDate.Text = "<span class='label label-danger'><strong> unknown </strong></span>";
                    }
                }

                PharmacyHistoryDrugSubstitutionsManager pharmacyHistoryDrug = new PharmacyHistoryDrugSubstitutionsManager();
                var pharmacyDrugsSubstitutionsSwitchesData = pharmacyHistoryDrug.GetPharmacyDrugsSubstitutionsSwitchesData(this.ptnPk);

                if (pharmacyDrugsSubstitutionsSwitchesData.Count > 0)
                {
                    for (int p = 0; p < pharmacyDrugsSubstitutionsSwitchesData.Count; p++)
                    {
                        HtmlTableRow  tableRow = new HtmlTableRow();
                        HtmlTableCell idcell   = new HtmlTableCell();
                        idcell.InnerHtml = (p + 1).ToString();
                        tableRow.Controls.Add(idcell);

                        HtmlTableCell cell = new HtmlTableCell();
                        cell.InnerHtml = pharmacyDrugsSubstitutionsSwitchesData[p].regimentype;
                        tableRow.Controls.Add(cell);

                        HtmlTableCell cell2 = new HtmlTableCell();
                        cell2.InnerHtml = pharmacyDrugsSubstitutionsSwitchesData[p].DispensedByDate.HasValue
                            ? pharmacyDrugsSubstitutionsSwitchesData[p].DispensedByDate.Value.ToString("dd-MMM-yyyy")
                            : "not dispensed";
                        tableRow.Controls.Add(cell2);

                        tblPharmacyHistory.Rows.Add(tableRow);
                    }
                }
            }
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Saves the patient lab order.
        /// </summary>
        /// <param name="patientID">The patient identifier.</param>
        /// <param name="patient_Pk">The patient pk.</param>
        /// <param name="userId">The user identifier.</param>
        /// <param name="facilityID">The facility identifier.</param>
        /// <param name="moduleId">The module identifier.</param>
        /// <param name="patientMasterVisitId">The patient master visit identifier.</param>
        /// <param name="labOrderDate">The lab order date.</param>
        /// <param name="orderNotes">The order notes.</param>
        /// <param name="patientLabOrder">The patient lab order.</param>
        /// <param name="orderStatus">The order status.</param>
        /// <returns>order Id</returns>
        public int savePatientLabOrder(int patientID, int patient_Pk, int userId, int facilityID, int moduleId, int patientMasterVisitId, string labOrderDate, string orderNotes, string patientLabOrder, string orderStatus)
        {
            int visitId = 0;
            int orderId = 0;
            int testId  = 0;
            //int _paramId = 0;
            DateTime orderDate = Convert.ToDateTime(labOrderDate);
            // DateTime orderDate = DateTime.Now;
            //DateTime orderDate = DateTime.Parse(labOrderDate);
            var jss = new JavaScriptSerializer();
            IList <ListLabOrder> data = jss.Deserialize <IList <ListLabOrder> >(patientLabOrder);

            if (patientID > 0)
            {
                PatientVisit visit = new PatientVisit()
                {
                    Ptn_Pk      = patient_Pk,
                    LocationID  = facilityID,
                    UserID      = userId,
                    TypeofVisit = 70, //Self (70) 71 (Treatmentsupporter)
                    VisitDate   = orderDate,
                    ModuleId    = moduleId,
                    VisitType   = 6
                };
                visitId = _visitManager.AddPatientVisit(visit);

                LabOrderEntity labOrder = new LabOrderEntity()
                {
                    Ptn_pk               = patient_Pk,
                    PatientId            = patientID,
                    LocationId           = facilityID,
                    VisitId              = visitId,
                    ModuleId             = moduleId,
                    OrderedBy            = userId,
                    ClinicalOrderNotes   = orderNotes,
                    PatientMasterVisitId = patientMasterVisitId,
                    OrderStatus          = orderStatus,
                    OrderDate            = orderDate,
                    UserId               = userId
                };
                orderId = _mgr.AddPatientLabOrder(labOrder);
                // DateTime? nullDate = null;
                foreach (ListLabOrder t in data)
                {
                    LabDetailsEntity labDetails = new LabDetailsEntity()
                    {
                        LabOrderId = orderId,
                        LabTestId  = t.LabNameId,
                        TestNotes  = t.LabNotes,
                        UserId     = userId,
                        CreatedBy  = userId,
                        StatusDate = DateTime.Now,
                        ResultDate = t.ResultDate
                    };
                    testId = _mgr.AddLabOrderDetails(labDetails);

                    PatientLabTracker labTracker = new PatientLabTracker()
                    {
                        PatientId            = patientID,
                        PatientMasterVisitId = patientMasterVisitId,
                        LabName    = t.LabName,
                        SampleDate = orderDate,
                        Reasons    = t.OrderReason,

                        CreatedBy      = userId,
                        Results        = orderStatus,
                        LabOrderId     = orderId,
                        LabTestId      = t.LabNameId, //parameter
                        LabOrderTestId = testId,      //uniquely identifies a particular test
                        FacilityId     = facilityID,
                        ResultDate     = t.ResultDate
                    };

                    Result = _mgr.AddPatientLabTracker(labTracker);
                    if (Result > 0)
                    {
                        Id = _patientEncounterManager.AddpatientEncounter(patientID, patientMasterVisitId, _patientEncounterManager.GetPatientEncounterId("EncounterType", "lab-encounter".ToLower()), 205, userId);
                    }
                    //add to dtlresults

                    List <LookupTestParameter> _parameters = _lookupTest.GetTestParameter(t.LabNameId);
                    if (_parameters != null)
                    {
                        foreach (LookupTestParameter p in _parameters)
                        {
                            LabResultsEntity labresults = new LabResultsEntity()
                            {
                                LabOrderId     = orderId,
                                LabTestId      = t.LabNameId,
                                LabOrderTestId = testId,
                                ParameterId    = p.Id,
                                UserId         = userId,
                                CreatedBy      = userId,
                                StatusDate     = DateTime.Now
                            };
                            _mgr.AddPatientLabResults(labresults);
                        }
                    }
                }
            }
            return(orderId);
        }