Esempio n. 1
0
 public int AddLabOrderDetails(LabDetailsEntity labDetailsEntity)
 {
     using (UnitOfWork _unitOfWork = new UnitOfWork(new GreencardContext()))
     {
         _unitOfWork.PatientLabDetailsRepository.Add(labDetailsEntity);
         Result = _unitOfWork.Complete();
         _unitOfWork.Dispose();
         return(labDetailsEntity.Id);
     }
 }
Esempio n. 2
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);
        }