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