Exemplo n.º 1
0
        public async Task <Result <List <PharmacyVisit> > > Handle(GetPatientPharmacyVisitCommand request, CancellationToken cancellationToken)
        {
            using (_pharmUnitOfWork)
            {
                try
                {
                    var visit = await _pharmUnitOfWork.Repository <PharmacyVisit>().Get(x => x.PatientId == request.PatientId).OrderByDescending(x => x.VisitID).ToListAsync();

                    return(Result <List <PharmacyVisit> > .Valid(visit));
                }
                catch (Exception ex)
                {
                    return(Result <List <PharmacyVisit> > .Invalid("Error retrieving Visit Details " + ex.Message));
                }
            }
        }
        public async Task <Result <GetLookupFrequencyResponse> > Handle(GetLookupFrequencyCommand request, CancellationToken cancellationToken)
        {
            try
            {
                var results = await _unitOfWork
                              .Repository <Frequency>()
                              .Get(x => x.DeleteFlag == 0)
                              .ToListAsync();

                _unitOfWork.Dispose();

                return(Result <GetLookupFrequencyResponse> .Valid(new GetLookupFrequencyResponse
                {
                    FrequencyItems = results
                }));
            }
            catch (Exception ex)
            {
                return(Result <GetLookupFrequencyResponse> .Invalid(ex.Message));
            }
        }
Exemplo n.º 3
0
        public async Task <bool> HasPatientTreatmentStarted(int patientId)
        {
            try
            {
                var treatmentstarted = await _unitOfWork.Repository <PatientTreamentTrackerLookup>().Get(x => x.PatientId == patientId && x.Regimen != null).AnyAsync();

                return(treatmentstarted);
            }
            catch (Exception e)

            {
                Log.Error(e.Message + " " + e.InnerException);
                throw e;
            }
        }
        public Task <Result <List <FacilityModule> > > Handle(GetFacilityModuleQuery request, CancellationToken cancellationToken)
        {
            try
            {
                var FacilityModuleResults = _pharmUnitOfWork.Repository <lnk_FacilityModule>().Get(x => x.FacilityID == request.LocationId).Include(x => x.Facility)
                                            .Include(x => x.Module).Where(x => x.Module.Status == 2);
                List <FacilityModule> facilityList = FacilityModuleResults.Where(x => x.Module.ModuleID == 203 && x.ModuleID == 203).Select(t => new FacilityModule()
                {
                    FacilityID     = t.FacilityID,
                    ModuleID       = t.ModuleID,
                    DisplayName    = t.Module.DisplayName,
                    ModuleName     = t.Module.ModuleName,
                    CanEnroll      = t.Module.CanEnroll,
                    ExpPwdFlag     = t.Facility.ExpPwdFlag,
                    ExpPwdDays     = t.Facility.ExpPwdDays,
                    ModuleFlag     = t.Module.ModuleFlag,
                    PharmacyFlag   = t.Module.PharmacyFlag,
                    StrongPassFlag = t.Facility.StrongPassFlag
                }).ToList();

                List <FacilityModule> facilitygreencard = FacilityModuleResults.Where(x => x.Module.ModuleID == 203 && x.ModuleID == 203).Select(t => new FacilityModule()
                {
                    FacilityID     = t.FacilityID,
                    ModuleID       = t.ModuleID,
                    DisplayName    = "Green Card (2016)",
                    ModuleName     = "CCC",
                    CanEnroll      = t.Module.CanEnroll,
                    ExpPwdFlag     = t.Facility.ExpPwdFlag,
                    ExpPwdDays     = t.Facility.ExpPwdDays,
                    ModuleFlag     = t.Module.ModuleFlag,
                    PharmacyFlag   = t.Module.PharmacyFlag,
                    StrongPassFlag = t.Facility.StrongPassFlag
                }).ToList();

                List <FacilityModule> facilityUniversalPortal = FacilityModuleResults.Where(x => x.Module.ModuleID == 203 && x.ModuleID == 203).Select(t => new FacilityModule()
                {
                    FacilityID     = t.FacilityID,
                    ModuleID       = t.ModuleID,
                    DisplayName    = "'Universal Service Portal'",
                    ModuleName     = "HTS",
                    CanEnroll      = true,
                    ExpPwdFlag     = t.Facility.ExpPwdFlag,
                    ExpPwdDays     = t.Facility.ExpPwdDays,
                    ModuleFlag     = true,
                    PharmacyFlag   = t.Module.PharmacyFlag,
                    StrongPassFlag = t.Facility.StrongPassFlag
                }).ToList();

                if (facilityList != null && facilityList.Count > 0)
                {
                    FacilityModuleList.AddRange(facilityList);
                }

                if (facilitygreencard != null && facilitygreencard.Count > 0)
                {
                    FacilityModuleList.AddRange(facilitygreencard);
                }
                if (facilityUniversalPortal != null && facilityUniversalPortal.Count > 0)
                {
                    FacilityModuleList.AddRange(facilityUniversalPortal);
                }



                return(Task.FromResult(Result <List <FacilityModule> > .Valid(FacilityModuleList)));
            }
            catch (Exception ex)
            {
                return(Task.FromResult(Result <List <FacilityModule> > .Invalid(ex.Message.ToString())));
            }
        }
        public async Task <Result <GetPatientPharmacyResponse> > Handle(GetPatientPharmacyDetailsCommand request, CancellationToken cancellationToken)
        {
            using (_pharmunitOfWork)
            {
                try
                {
                    //StringBuilder sql = new StringBuilder();
                    //sql.Append($"select * from [dbo].[PharmacyDrugVisitDetailsView] where PatientMasterVisitId='{request.PatientMasterVisitId }'");



                    /* StringBuilder sqldel = new StringBuilder();
                     * sqldel.Append("[dbo].[pr_Pharmacy_GetExistPharmacyDrugVisitDetails]  @PatientMasterVisitId");
                     * var patientmastervisitid = new SqlParameter();
                     * patientmastervisitid.SqlDbType = SqlDbType.Int;
                     * patientmastervisitid.ParameterName = "@PatientMasterVisitId";
                     * patientmastervisitid.Size = -1;
                     * patientmastervisitid.Value = Convert.ToInt32(request.PatientMasterVisitId); */
                    //var patientmastervisitid = new SqlParameter("@PatientMasterVisitId", request.PatientMasterVisitId);

                    /*  var pharmacyvisit = await _pharmunitOfWork.Repository<PharmacyDrugVisitDetails>().FromSql(sqldel.ToString(), parameters: new[] {
                     * patientmastervisitid
                     * });*/
                    var pharmacyorder = await _pharmunitOfWork.Repository <PatientPharmacyOrder>().Get(x => x.PatientMasterVisitId == request.PatientMasterVisitId).ToListAsync();

                    if (pharmacyorder.Count > 0)
                    {
                        dispensedDate = pharmacyorder[0].DispensedByDate;
                        orderedDate   = pharmacyorder[0].OrderedbyDate;

                        StringBuilder sql = new StringBuilder();
                        sql.Append($"SELECT  [Visit_Id],[Ptn_Pk],[LocationID],[VisitDate], Convert(Int,[VisitType]) as VisitType, DataQuality,[DeleteFlag],[UserID] ,[CreateDate] ,[CreatedBy] FROM [dbo].[ord_Visit] where Visit_Id='{pharmacyorder[0].VisitId}' and (DeleteFlag is null or DeleteFlag=0) ");

                        var visit = await _pharmunitOfWork.Repository <PatientVisit>().FromSql(sql.ToString());

                        if (visit != null)
                        {
                            if (visit.Count > 0)
                            {
                                visitDate = visit[0].VisitDate;
                            }
                        }
                        foreach (var phar in pharmacyorder)
                        {
                            StringBuilder sqlptn = new StringBuilder();
                            sqlptn.Append($"select * from PharmacyDrugVisitDetailsView where ptn_pharmacy_pk='{phar.ptn_pharmacy_pk}'");
                            var pharmacylist = _pharmunitOfWork.Repository <PharmacyDrugVisitDetails>().Get(x => x.ptn_pharmacy_pk == phar.ptn_pharmacy_pk).ToList();


                            if (pharmacylist != null)
                            {
                                if (pharmacylist.Count > 0)
                                {
                                    pharmacylist.ForEach(x =>
                                    {
                                        DrugDetails pds          = new DrugDetails();
                                        pds.ptn_pharmacy_pk      = x.ptn_pharmacy_pk;
                                        pds.DrugName             = x.DrugName;
                                        pds.DrugId               = Convert.ToString(x.Drug_pk);
                                        pds.DrugAbb              = x.Abbreviation;
                                        pds.batchId              = Convert.ToString(x.BatchNo);
                                        pds.batchText            = x.BatchName;
                                        pds.Dose                 = Convert.ToString(x.SingleDose);
                                        pds.Freq                 = Convert.ToString(x.FrequencyID);
                                        pds.FreqText             = x.FrequencyName;
                                        pds.Duration             = Convert.ToString(x.Duration);
                                        pds.QUantityDisp         = Convert.ToString(x.DispensedQuantity);
                                        pds.QuantityPres         = Convert.ToString(x.OrderedQuantity);
                                        pds.Reason               = Convert.ToString(x.TreatmentPlanReasonId);
                                        pds.ReasonText           = Convert.ToString(x.TreatmentPlanReason);
                                        pds.Regimen              = Convert.ToString(x.RegimenId);
                                        pds.Regimentext          = Convert.ToString(x.Regimen);
                                        pds.Regimenline          = Convert.ToString(x.RegimenLineId);
                                        pds.Regimenlinetext      = Convert.ToString(x.RegimenLine);
                                        pds.TreatmentPlan        = Convert.ToString(x.TreatmentPlan);
                                        pds.TreatmentPlantext    = Convert.ToString(x.TreatmentPlanText);
                                        pds.TreatmentProgram     = Convert.ToString(x.ProgID);
                                        pds.TreatmentProgramText = Convert.ToString(x.TreatmentProgram);
                                        pds.Morning              = Convert.ToString(x.MorningDose);
                                        pds.Evening              = Convert.ToString(x.EveningDose);
                                        pds.Night                = Convert.ToString(x.EveningDose);
                                        pds.Midday               = Convert.ToString(x.MiddayDose);
                                        pds.Night                = Convert.ToString(x.NightDose);
                                        pds.Period               = Convert.ToString(x.PeriodTaken);
                                        pds.PeriodTakentext      = Convert.ToString(x.PeriodTakenText);
                                        pds.Prophylaxis          = Convert.ToString(x.Prophylaxis);

                                        presc.Add(pds);
                                    });
                                }
                            }
                        }
                    }
                    //   var pharmacylist = await _pharmunitOfWork.Repository<PharmacyDrugVisitDetails>().GetAllAsync();
                    //var pharmacyvisit = pharmacylist.Where(x => x.PatientMasterVisitId == request.PatientMasterVisitId  && x.ptn_pharmacy_pk.ToString() == "156872").ToList();
                    //var pharmacyvisit = await _pharmunitOfWork.Repository<PharmacyDrugVisitDetails>().FromSql(sql.ToString());

                    /*  if (pharmacyvisit.Count > 0)
                     * {
                     *
                     *    dispensedDate = pharmacyvisit[0].DispensedByDate;
                     *    orderedDate = pharmacyvisit[0].OrderedByDate;
                     *    visitDate = pharmacyvisit[0].VisitDate;
                     *
                     *    pharmacyvisit.ForEach(  x =>
                     *    {
                     *        DrugDetails pds = new DrugDetails();
                     *        pds.ptn_pharmacy_pk = x.ptn_pharmacy_pk;
                     *        pds.DrugName = x.DrugName;
                     *        pds.DrugId = Convert.ToString(x.Drug_pk);
                     *        pds.DrugAbb = x.Abbreviation;
                     *        pds.batchId = Convert.ToString(x.BatchNo);
                     *        pds.batchText = x.BatchName;
                     *        pds.Dose = Convert.ToString(x.SingleDose);
                     *        pds.Freq = Convert.ToString(x.FrequencyID);
                     *        pds.FreqText = x.FrequencyName;
                     *        pds.Duration = Convert.ToString(x.Duration);
                     *        pds.QUantityDisp = Convert.ToString(x.DispensedQuantity);
                     *        pds.QuantityPres = Convert.ToString(x.OrderedQuantity);
                     *        pds.Reason = Convert.ToString(x.TreatmentPlanReasonId);
                     *        pds.ReasonText = Convert.ToString(x.TreatmentPlanReason);
                     *        pds.Regimen = Convert.ToString(x.RegimenId);
                     *        pds.Regimentext = Convert.ToString(x.Regimen);
                     *        pds.Regimenline = Convert.ToString(x.RegimenLineId);
                     *        pds.Regimenlinetext = Convert.ToString(x.RegimenLine);
                     *        pds.TreatmentPlan = Convert.ToString(x.TreatmentPlan);
                     *        pds.TreatmentPlantext = Convert.ToString(x.TreatmentPlanText);
                     *        pds.TreatmentProgram = Convert.ToString(x.ProgID);
                     *        pds.TreatmentProgramText = Convert.ToString(x.TreatmentProgram);
                     *        pds.Morning = Convert.ToString(x.MorningDose);
                     *        pds.Evening = Convert.ToString(x.EveningDose);
                     *        pds.Night = Convert.ToString(x.EveningDose);
                     *        pds.Midday = Convert.ToString(x.MiddayDose);
                     *        pds.Night = Convert.ToString(x.NightDose);
                     *        pds.Period = Convert.ToString(x.PeriodTaken);
                     *        pds.PeriodTakentext = Convert.ToString(x.PeriodTakenText);
                     *        pds.Prophylaxis = Convert.ToString(x.Prophylaxis);
                     *
                     *        presc.Add(pds);
                     *    });
                     *
                     *
                     *
                     * }*/

                    return(Result <GetPatientPharmacyResponse> .Valid(new GetPatientPharmacyResponse()
                    {
                        PatientMasterVisitId = request.PatientMasterVisitId,
                        PatientId = request.PatientId,
                        DispensedDate = dispensedDate,
                        VisitDate = visitDate,
                        OrderedByDate = orderedDate,
                        DrugDetails = presc
                    }));
                }
                catch (Exception ex)
                {
                    return(Result <GetPatientPharmacyResponse> .Invalid("Error getting the drug records for this visit " + ex.Message));
                }
            }
        }