/// <summary>
        /// Добавляет пациента в план.
        /// </summary>
        /// <param name="srzPatientId">Id пациента в СРЗ</param>
        /// <param name="examinationType">Вид осмотра</param>
        /// <param name="year">Год осмотра</param>
        /// <exception cref="WebServiceOperationException">Возникает если не удалось добавить пациента в план.</exception>
        protected async Task AddPatientToPlanAsync(int srzPatientId, ExaminationKind examinationType, int year)
        {
            ThrowExceptionIfNotAuthorized();

            var contentParameters = new Dictionary <string, string>
            {
                { "personId", srzPatientId.ToString() },
                { "yearId", GetYearId(year).ToString() },
                { "dispType", ((int)examinationType).ToString() },
            };

            var responseText = await SendPostAsync(@"disp/AddToDisp", contentParameters);

            var response = JsonConvert.DeserializeObject <WebResponse>(responseText);

            if (response.IsError)
            {
                throw new WebServiceOperationException("Ошибка при добавлении пациента в план.");
            }
        }
示例#2
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="insuranceNumber">Серия и номер полиса ОМС</param>
 /// <param name="year">Год прохождения профилактического осмотра</param>
 /// <param name="examinationKind">Вид профилактического осмотра</param>
 public PatientExaminations(string insuranceNumber, int year, ExaminationKind examinationKind)
 {
     InsuranceNumber = insuranceNumber;
     Year            = year;
     Kind            = examinationKind;
 }
        /// <summary>
        /// Получает информацию о прохождении пациентом профилактического осмотра из плана.
        /// </summary>
        /// <param name="srzPatientId">Id пациента в СРЗ</param>
        /// <param name="insuranceNumber">Серия и/или номер полиса ОМС</param>
        /// <param name="examinationType">Вид осмотра</param>
        /// <param name="year">Год осмотра</param>
        /// <returns>Экземпляр WebPatientData если пациент найден в плане, иначе null.</returns>
        /// <exception cref="WebServiceOperationException">Возникает если веб-сервер вернул пустой ответ.</exception>
        protected async Task <WebPatientData> GetPatientDataFromPlanAsync(int?srzPatientId, string insuranceNumber, ExaminationKind examinationType, int year)
        {
            ThrowExceptionIfNotAuthorized();

            var uriParameters = new Dictionary <string, string> {
                { "Filter.Year", GetYearId(year).ToString() },
                { "Filter.PolisNum", insuranceNumber ?? string.Empty },
                { "Filter.PersonId", srzPatientId?.ToString() ?? string.Empty },
                { "Filter.DispType", ((int)examinationType).ToString() },
            };

            var uriParamentersString = new FormUrlEncodedContent(uriParameters).ReadAsStringAsync().Result;
            var urn = $@"disp/GetDispData?{uriParamentersString}";

            var contentParameters = new Dictionary <string, string> {
                { "columns[0][data]", "PersonId" },
                { "order[0][column]", "0" },
                { "length", "25" },
            };

            var responseText = await SendPostAsync(urn, contentParameters);

            var planResponse = JsonConvert.DeserializeObject <PlanResponse>(responseText);

            if (planResponse == null)
            {
                throw new WebServiceOperationException("Ошибка получения информации из плана.");
            }

            return(planResponse.Data?.FirstOrDefault());
        }
 /// <summary>
 /// Получает информацию о прохождении пациентом профилактического осмотра из плана.
 /// </summary>
 /// <param name="insuranceNumber">Серия и/или номер полиса ОМС</param>
 /// <param name="examinationType">Вид осмотра</param>
 /// <param name="year">Год осмотра</param>
 /// <returns>Экземпляр WebPatientData если пациент найден в плане, иначе null.</returns>
 protected async Task <WebPatientData> GetPatientDataFromPlanAsync(string insuranceNumber, ExaminationKind examinationType, int year)
 => await GetPatientDataFromPlanAsync(null, insuranceNumber, examinationType, year);
 /// <summary>
 /// Получает информацию о прохождении пациентом профилактического осмотра из плана.
 /// </summary>
 /// <param name="srzPatientId">Id пациента в СРЗ</param>
 /// <param name="examinationType">Вид осмотра</param>
 /// <param name="year">Год осмотра</param>
 /// <returns>Экземпляр WebPatientData если пациент найден в плане, иначе null.</returns>
 protected async Task <WebPatientData> GetPatientDataFromPlanAsync(int srzPatientId, ExaminationKind examinationType, int year)
 => await GetPatientDataFromPlanAsync(srzPatientId, null, examinationType, year);