예제 #1
0
        public GetPatientMedFrequenciesResponse Get(GetPatientMedFrequenciesRequest request)
        {
            GetPatientMedFrequenciesResponse response = new GetPatientMedFrequenciesResponse();
            ValidateTokenResponse            result   = null;

            try
            {
                if (base.Request != null)
                {
                    request.Token = base.Request.Headers["Token"] as string;
                }
                result = Security.IsUserValidated(request.Version, request.Token, request.ContractNumber);
                if (result.UserId.Trim() != string.Empty)
                {
                    request.UserId = result.UserId;
                    response.PatientMedFrequencies = MedicationManager.GetPatientMedFrequencies(request);
                }
                else
                {
                    throw new UnauthorizedAccessException();
                }
            }
            catch (Exception ex)
            {
                CommonFormatter.FormatExceptionResponse(response, base.Response, ex);
                if ((ex is WebServiceException) == false)
                {
                    MedicationManager.LogException(ex);
                }
            }
            finally
            {
                List <string> patientIds = new List <string>();
                patientIds.Add(request.PatientId);
                if (result != null)
                {
                    string browser     = (base.Request != null) ? base.Request.UserAgent : unknownBrowserType;
                    string hostAddress = (base.Request != null) ? base.Request.UserHostAddress : unknownUserHostAddress;
                    AuditUtil.LogAuditData(request, result.SQLUserId, patientIds, browser, hostAddress, request.GetType().Name);
                }
            }
            return(response);
        }
예제 #2
0
        public List <PatientMedFrequency> GetPatientMedFrequencies(GetPatientMedFrequenciesRequest request)
        {
            List <PatientMedFrequency> patientMedFreqs = null;

            try
            {
                List <PatientMedFrequencyData> data = EndpointUtil.GetPatientMedFrequencies(request);
                if (data != null && data.Count > 0)
                {
                    patientMedFreqs = new List <PatientMedFrequency>();
                    data.ForEach(a =>
                                 patientMedFreqs.Add(new PatientMedFrequency {
                        Id = a.Id, Name = a.Name
                    }));
                }
                return(patientMedFreqs);
            }
            catch (Exception ex) { throw ex; }
        }
예제 #3
0
        public List <PatientMedFrequencyData> GetPatientMedFrequencies(GetPatientMedFrequenciesRequest request)
        {
            try
            {
                List <PatientMedFrequencyData> result = null;
                IRestClient client = new JsonServiceClient();
                //[Route("/{Context}/{Version}/{ContractNumber}/PatientMedSupp/Frequency/{PatientId}", "GET")]
                var url = Common.Helper.BuildURL(string.Format("{0}/{1}/{2}/{3}/PatientMedSupp/Frequency/{4}",
                                                               DDMedicationUrl,
                                                               "NG",
                                                               request.Version,
                                                               request.ContractNumber,
                                                               request.PatientId), request.UserId);

                GetPatientMedFrequenciesDataResponse dataDomainResponse = client.Get <GetPatientMedFrequenciesDataResponse>(url);

                if (dataDomainResponse != null)
                {
                    result = dataDomainResponse.PatientMedFrequenciesData;
                }
                return(result);
            }
            catch (Exception ex) { throw ex; }
        }
예제 #4
0
        public string CalculateSigCode(PostPatientMedSuppRequest request)
        {
            DateTime?startDate      = request.PatientMedSupp.StartDate;
            DateTime?endDate        = request.PatientMedSupp.EndDate;
            string   quantity       = request.PatientMedSupp.FreqQuantity;
            string   strength       = request.PatientMedSupp.Strength;
            string   form           = request.PatientMedSupp.Form;
            string   route          = request.PatientMedSupp.Route;
            string   frequencyId    = request.PatientMedSupp.FrequencyId;
            string   patientId      = request.PatientMedSupp.PatientId;
            string   contractNumber = request.ContractNumber;
            string   token          = request.Token;
            string   userId         = request.UserId;
            double   version        = request.Version;

            string sigCode   = "";
            string dateRange = "";

            if (startDate != null && endDate != null)
            {
                startDate = (DateTime)startDate.Value.ToUniversalTime();
                endDate   = (DateTime)endDate.Value.ToUniversalTime();
                TimeSpan ts   = endDate.Value - startDate.Value;
                int      days = (int)Math.Round(ts.TotalDays); // daylight savings adjustments: just round it
                if (days > 0)
                {
                    dateRange = "for " + days.ToString() + (days == 1 ? " day" : " days");
                }
            }
            if (quantity == null)
            {
                quantity = "";
            }
            quantity = quantity.Trim();
            if (strength == null)
            {
                strength = "";
            }
            strength = strength.Trim();
            if (form == null)
            {
                form = "";
            }
            form = form.Trim();
            if (route == null)
            {
                route = "";
            }
            route = route.Trim();

            if (string.IsNullOrEmpty(quantity.Trim()) && string.IsNullOrEmpty(strength.Trim()) && string.IsNullOrEmpty(form.Trim()) &&
                string.IsNullOrEmpty(route.Trim()) && string.IsNullOrEmpty(frequencyId) && string.IsNullOrEmpty(dateRange))
            {
                sigCode = "-";
            }
            else
            {
                string howOften = "";
                if (!string.IsNullOrEmpty(frequencyId))
                {
                    //get the frequency name (how often) from frequencyId:


                    NGManager         ngManager         = new NGManager();
                    GetLookUpsRequest getLookupsRequest = new GetLookUpsRequest
                    {
                        ContractNumber = contractNumber,
                        Token          = token,
                        TypeName       = "Frequency",
                        UserId         = userId,
                        Version        = version
                    };
                    List <IdNamePair> frequencies = ngManager.GetLookUps(getLookupsRequest);

                    //GetLookUpDetailsRequest lookupRequest = new GetLookUpDetailsRequest
                    //{
                    //    ContractNumber = contractNumber,
                    //    Token = token,
                    //    TypeName = "Frequency",
                    //    UserId = userId,
                    //    Version = version
                    //};
                    //List<LookUpDetails> lookups = ngManager.GetLookUpDetails(lookupRequest); //this has error in the implementation code!
                    if (frequencies != null && frequencies.Count() > 0)
                    {
                        IdNamePair aLookup = frequencies.Where(l => l.Id.Equals(frequencyId)).FirstOrDefault();
                        if (aLookup != null)
                        {
                            howOften = aLookup.Name;
                        }
                        else
                        {
                            GetPatientMedFrequenciesRequest freqRequest = new GetPatientMedFrequenciesRequest();
                            freqRequest.PatientId      = request.PatientMedSupp.PatientId;
                            freqRequest.ContractNumber = contractNumber;
                            freqRequest.UserId         = userId;
                            freqRequest.Token          = token;
                            freqRequest.Version        = version;
                            List <PatientMedFrequency> patientFrequencies = GetPatientMedFrequencies(freqRequest);
                            if (frequencies != null && (frequencies.Count() > 0))
                            {
                                PatientMedFrequency theFrequency = patientFrequencies.Where(f => f.Id.Equals(frequencyId)).FirstOrDefault();
                                if (theFrequency != null)
                                {
                                    howOften = theFrequency.Name;
                                    howOften = howOften.Trim();
                                }
                            }
                        }
                    }
                }
                sigCode = AddSigSubCode(sigCode, quantity);
                sigCode = AddSigSubCode(sigCode, strength);
                sigCode = AddSigSubCode(sigCode, form);
                sigCode = AddSigSubCode(sigCode, route);
                sigCode = AddSigSubCode(sigCode, howOften);
                sigCode = AddSigSubCode(sigCode, dateRange);
            }
            return(sigCode);
        }