コード例 #1
0
        public async Task <List <Surgery> > SearchSurgeryBuilder(string input)
        {
            if (string.IsNullOrEmpty(input))
            {
                return(new List <Surgery>());
            }

            var surgeriers = JsonConvert.DeserializeObject <List <Surgery> >(await _restfulHelper.GetAsync(string.Format(_configuration.GPSearchApiUrl, input)));

            return(surgeriers);
        }
コード例 #2
0
        public async Task <OutcomeViewModel> SearchSurgeryBuilder(string input)
        {
            var model = new OutcomeViewModel();

            if (!string.IsNullOrEmpty(input))
            {
                var surgeriers = JsonConvert.DeserializeObject <List <Surgery> >(await _restfulHelper.GetAsync(string.Format(_configuration.GPSearchByIdUrl, input)));
                model.SurgeryViewModel.Surgeries = surgeriers;
            }

            return(model);
        }
コード例 #3
0
        public async Task <JourneyViewModel> BuildSlider(JourneyViewModel model)
        {
            var pathway = JsonConvert.DeserializeObject <Pathway>(await _restfulHelper.GetAsync(string.Format(_configuration.BusinessApiPathwayIdUrl, model.PathwayNo, model.UserInfo.Gender, model.UserInfo.Age)));

            model.PathwayId    = pathway.Id;
            model.PathwayTitle = pathway.Title;
            model.PathwayNo    = pathway.PathwayNo;
            model.State.Add("PATIENT_AGE", model.UserInfo.Age.ToString());
            model.State.Add("PATIENT_GENDER", string.Format("\"{0}\"", model.UserInfo.Gender.First().ToString().ToUpper()));
            model.State.Add("PATIENT_PARTY", "1");
            model.StateJson = JsonConvert.SerializeObject(model.State);
            return(model);
        }
コード例 #4
0
        public async Task <Tuple <string, QuestionViewModel> > JustToBeSafeFirstBuilder(JustToBeSafeViewModel model)
        {
            if (model.PathwayId != null)
            {
                model = await DoWorkPreviouslyDoneInQuestionBuilder(model); //todo refactor away
            }
            var identifiedModel = await BuildIdentifiedModel(model);

            var questionsJson = await _restfulHelper.GetAsync(_configuration.GetBusinessApiJustToBeSafePartOneUrl(identifiedModel.PathwayId));

            var questionsWithAnswers = JsonConvert.DeserializeObject <List <QuestionWithAnswers> >(questionsJson);

            if (!questionsWithAnswers.Any())
            {
                var questionViewModel = new QuestionViewModel
                {
                    PathwayId         = identifiedModel.PathwayId,
                    PathwayNo         = identifiedModel.PathwayNo,
                    PathwayTitle      = identifiedModel.PathwayTitle,
                    DigitalTitle      = string.IsNullOrEmpty(identifiedModel.DigitalTitle) ? identifiedModel.PathwayTitle : identifiedModel.DigitalTitle,
                    UserInfo          = identifiedModel.UserInfo,
                    JourneyJson       = identifiedModel.JourneyJson,
                    State             = JsonConvert.DeserializeObject <Dictionary <string, string> >(identifiedModel.StateJson),
                    StateJson         = identifiedModel.StateJson,
                    CollectedKeywords = identifiedModel.CollectedKeywords,
                    Journey           = JsonConvert.DeserializeObject <Journey>(identifiedModel.JourneyJson),
                    SessionId         = model.SessionId,
                    JourneyId         = Guid.NewGuid(),
                    FilterServices    = model.FilterServices,
                    Campaign          = model.Campaign,
                    Source            = model.Source,
                    CurrentPostcode   = model.CurrentPostcode,
                    EntrySearchTerm   = model.EntrySearchTerm
                };

                var question = JsonConvert.DeserializeObject <QuestionWithAnswers>(await _restfulHelper.GetAsync(_configuration.GetBusinessApiFirstQuestionUrl(identifiedModel.PathwayId, identifiedModel.StateJson)));
                _mappingEngine.Mapper.Map(question, questionViewModel);

                _userZoomDataBuilder.SetFieldsForQuestion(questionViewModel);

                return(new Tuple <string, QuestionViewModel>("../Question/Question", questionViewModel));
            }
            identifiedModel.Part           = 1;
            identifiedModel.JourneyId      = Guid.NewGuid();
            identifiedModel.Questions      = questionsWithAnswers;
            identifiedModel.QuestionsJson  = questionsJson;
            identifiedModel.JourneyJson    = string.IsNullOrEmpty(identifiedModel.JourneyJson) ? JsonConvert.SerializeObject(new Journey()) : identifiedModel.JourneyJson;
            identifiedModel.FilterServices = model.FilterServices;
            return(new Tuple <string, QuestionViewModel>("../JustToBeSafe/JustToBeSafe", identifiedModel));
        }
コード例 #5
0
        public async Task <IEnumerable <CareAdvice> > FillCareAdviceBuilder(int age, string gender, IList <string> careAdviceMarkers)
        {
            if (!careAdviceMarkers.Any())
            {
                return(Enumerable.Empty <CareAdvice>());
            }

            var businessApiCareAdviceUrl = _configuration.GetBusinessApiCareAdviceUrl(age, gender,
                                                                                      string.Join(",", careAdviceMarkers));
            var response = await _restfulHelper.GetAsync(businessApiCareAdviceUrl);

            var careAdvices = JsonConvert.DeserializeObject <List <CareAdvice> >(response);

            return(careAdvices);
        }
コード例 #6
0
        public async Task <Tuple <string, JourneyViewModel> > JustToBeSafeFirstBuilder(JustToBeSafeViewModel model)
        {
            var questionsJson = await _restfulHelper.GetAsync(string.Format(_configuration.BusinessApiJustToBeSafePartOneUrl, model.PathwayId));

            var questionsWithAnswers = JsonConvert.DeserializeObject <List <QuestionWithAnswers> >(questionsJson);

            if (!questionsWithAnswers.Any())
            {
                var journeyViewModel = new JourneyViewModel
                {
                    PathwayId    = model.PathwayId,
                    PathwayNo    = model.PathwayNo,
                    PathwayTitle = model.PathwayTitle,
                    UserInfo     = model.UserInfo,
                    JourneyJson  = model.JourneyJson,
                    State        = JsonConvert.DeserializeObject <Dictionary <string, string> >(model.StateJson)
                };
                var question = JsonConvert.DeserializeObject <QuestionWithAnswers>(await _restfulHelper.GetAsync(string.Format(_configuration.BusinessApiFirstQuestionUrl, model.PathwayId, model.StateJson)));
                _mappingEngine.Map(question, journeyViewModel);
                return(new Tuple <string, JourneyViewModel>("../Question/Question", journeyViewModel));
            }
            model.Part          = 1;
            model.Questions     = questionsWithAnswers;
            model.QuestionsJson = questionsJson;
            model.JourneyJson   = string.IsNullOrEmpty(model.JourneyJson) ? JsonConvert.SerializeObject(new Journey()) : model.JourneyJson;
            return(new Tuple <string, JourneyViewModel>("../JustToBeSafe/JustToBeSafe", model));
        }
コード例 #7
0
        public async Task <List <AddressInfoViewModel> > SearchPostcodeBuilder(string input)
        {
            input = HttpUtility.UrlDecode(input);
            var listPaf = JsonConvert.DeserializeObject <List <PAF> >(await _restfulHelper.GetAsync(string.Format(_configuration.PostcodeSearchByIdApiUrl, input)));

            return(_mappingEngine.Mapper.Map <List <AddressInfoViewModel> >(listPaf));
        }
コード例 #8
0
        public async Task <Tuple <string, JourneyViewModel> > JustToBeSafeNextBuilder(JustToBeSafeViewModel model)
        {
            model.State = JsonConvert.DeserializeObject <Dictionary <string, string> >(model.StateJson);
            var questionsWithAnswers = JsonConvert.DeserializeObject <List <QuestionWithAnswers> >(model.QuestionsJson);
            var selectedQuestion     = questionsWithAnswers.FirstOrDefault(q => q.Question.Id == model.SelectedQuestionId);

            var selectedAnswer = model.SelectedNoneApply()
                ? new Answer()
                : selectedQuestion.Answers.FirstOrDefault(a => a.Title.ToLower().StartsWith("yes")) ?? new Answer();

            var journey = JsonConvert.DeserializeObject <Journey>(model.JourneyJson).Add(
                new Journey
            {
                Steps = questionsWithAnswers.
                        Select(q => new JourneyStep
                {
                    QuestionId    = q.Question.Id,
                    QuestionNo    = q.Question.QuestionNo,
                    QuestionTitle = q.Question.Title,
                    Answer        = q.Question.Id == model.SelectedQuestionId
                                ? selectedAnswer
                                : q.Answers.First(a => a.Title.ToLower().StartsWith("no")),
                    IsJustToBeSafe = true
                }).ToList()
            });

            var questionsJson = await _restfulHelper.GetAsync(string.Format(_configuration.BusinessApiJustToBeSafePartTwoUrl, model.PathwayId,
                                                                            model.SelectedQuestionId ?? "", String.Join(",", questionsWithAnswers.Select(question => question.Question.Id)), selectedQuestion != null && selectedQuestion.Answers.Count > 3));

            var questions = JsonConvert.DeserializeObject <List <QuestionWithAnswers> >(questionsJson);

            journey.Steps = journey.Steps.Where(step => !questions.Exists(question => question.Question.Id == step.QuestionId)).ToList();

            return(await BuildNextAction(questions, journey, model, selectedAnswer, selectedQuestion, questionsJson));
        }
コード例 #9
0
        public async Task <IEnumerable <CareAdvice> > FillCareAdviceBuilder(int age, string gender, IList <string> careAdviceMarkers)
        {
            var careAdvices = careAdviceMarkers.Any()
                 ? JsonConvert.DeserializeObject <List <CareAdvice> >(await _restfulHelper.GetAsync(string.Format(_configuration.BusinessApiCareAdviceUrl, age, gender, string.Join(",", careAdviceMarkers))))
                 : Enumerable.Empty <CareAdvice>();

            return(careAdvices);
        }
コード例 #10
0
ファイル: Monitor.cs プロジェクト: nicksp1/nhs111-online
 public override async Task <bool> Health()
 {
     try
     {
         return(JsonConvert.DeserializeObject <bool>(await _restfulHelper.GetAsync(_configuration.DOSIntegrationMonitorHealthUrl)));
     }
     catch (Exception ex)
     {
         return(false);
     }
 }
コード例 #11
0
        public async Task <HttpResponseMessage> ServicesByClinicalTerm(HttpRequestMessage request)
        {
            var requestObj = JsonConvert.DeserializeObject <DosServicesByClinicalTermRequest>(request.Content.ReadAsStringAsync().Result);

            var urlWithRequest = string.Format(_configuration.DOSMobileServicesByClinicalTermUrl, requestObj.CaseId, requestObj.Postcode, requestObj.SearchDistance, requestObj.GpPracticeId, requestObj.Age, requestObj.Gender, requestObj.Disposition, requestObj.SymptomGroupDiscriminatorCombos, requestObj.NumberPerType);

            var usernamePassword = Convert.ToBase64String(Encoding.ASCII.GetBytes(_configuration.DOSMobileUsername + ":" + _configuration.DOSMobilePassword));
            var headers          = new Dictionary <string, string>()
            {
                { HttpRequestHeader.Authorization.ToString(), string.Format("Basic {0}", usernamePassword) }
            };
            var result = await _restfulHelper.GetAsync(urlWithRequest, headers);

            return(result.AsHttpResponse());
        }
コード例 #12
0
        private async Task <Surgery> GetSelectedSurgery(DosViewModel model)
        {
            var surgery = new Surgery();

            if (!string.IsNullOrEmpty(model.SelectedSurgery))
            {
                surgery =
                    JsonConvert.DeserializeObject <Surgery>(
                        await _restfulHelper.GetAsync(string.Format(_configuration.GPSearchApiUrl, model.SelectedSurgery)));
            }
            else
            {
                surgery.SurgeryId = "UKN";
            }
            return(surgery);
        }
コード例 #13
0
        public async Task <SurveyLinkViewModel> SurveyLinkBuilder(OutcomeViewModel model)
        {
            var jsonParser            = new JourneyJsonParser(model.JourneyJson);
            var businessApiPathwayUrl = _configuration.GetBusinessApiPathwayIdUrl(jsonParser.LastPathwayNo, model.UserInfo.Demography.Gender, model.UserInfo.Demography.Age);
            var response = await _restfulHelper.GetAsync(businessApiPathwayUrl);

            var pathway = JsonConvert.DeserializeObject <Pathway>(response);

            return(new SurveyLinkViewModel()
            {
                DispositionCode = model.Id,
                DispositionDateTime = model.DispositionTime,
                EndPathwayNo = (pathway != null) ? pathway.PathwayNo : string.Empty,
                EndPathwayTitle = (pathway != null) ? pathway.Title : string.Empty,
                JourneyId = model.JourneyId.ToString(),
                PathwayNo = model.PathwayNo,
                DigitalTitle = model.DigitalTitle
            });
        }
コード例 #14
0
        public async Task <PageDataViewModel> PageDataBuilder(PageDataViewModel model)
        {
            model.Date = DateTime.Now.Date.ToShortDateString();
            model.Time = DateTime.Now.ToString("HH:mm:ss");

            Pathway currentPathway = null;

            if (!string.IsNullOrEmpty(model.QuestionId) && model.QuestionId.Contains("."))
            {
                var currentPathwayNo = model.QuestionId.Split('.')[0];
                if (!currentPathwayNo.Equals(model.StartingPathwayNo))
                {
                    var businessApiPathwayUrl =
                        _configuration.GetBusinessApiPathwayIdUrl(currentPathwayNo, model.Gender, new AgeCategory(model.Age).MinimumAge);
                    var response = await _restfulHelper.GetAsync(businessApiPathwayUrl);

                    currentPathway = JsonConvert.DeserializeObject <Pathway>(response);
                }
            }
            model.PathwayNo    = (currentPathway != null) ? currentPathway.PathwayNo : string.Empty;
            model.PathwayTitle = (currentPathway != null) ? currentPathway.Title : string.Empty;

            return(model);
        }
コード例 #15
0
 public async Task <string> GetCategoriesWithPathways()
 {
     return(await _restfulHelper.GetAsync(_configuration.GetCategoriesWithPathwaysUrl()));
 }
コード例 #16
0
 public async Task <string> GetQuestion(string id)
 {
     return(await _restfulHelper.GetAsync(_configuration.GetDomainApiQuestionUrl(id)));
 }
コード例 #17
0
 public async Task <string> GetVersionInfo()
 {
     return(await _restfulHelper.GetAsync(_configuration.GetDomainApiVersionUrl()));
 }
コード例 #18
0
 public async Task <string> GetPathways(bool grouped, bool startingOnly)
 {
     return(await _restfulHelper.GetAsync(_configuration.GetDomainApiPathwaysUrl(grouped, startingOnly)));
 }
コード例 #19
0
 public async Task <string> GetCareAdvice(int age, string gender, IEnumerable <string> markers)
 {
     return(await _restfulHelper.GetAsync(_configuration.GetDomainApiCareAdviceUrl(age, gender, markers)));
 }
コード例 #20
0
        public async Task <List <LocationResult> > LocationResultByPostCodeBuilder(string postCode)
        {
            if (string.IsNullOrEmpty(postCode))
            {
                return(new List <LocationResult>());
            }
            var headers = new Dictionary <string, string>()
            {
                { SubscriptionKey, _configuration.PostcodeSubscriptionKey }
            };
            var locationResults = JsonConvert.DeserializeObject <List <LocationResult> >(await _restfulHelper.GetAsync(string.Format(_configuration.PostcodeSearchByIdApiUrl, postCode), headers));

            return(locationResults);
        }