/// <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("Ошибка при добавлении пациента в план."); } }
/// <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);