Описание правил и логики вывода расписания.

Количество дней расписания для вывода

Определяет на сколько максимум дней сервис отдает расписание клиентам для отображения.

Устанавливается сервисной настройкой "Schedule.Days" при запуске сервиса.

Права ячеек

Права ячеек расписания определяют, какому сервису будет доступна та или иная ячейка.

Существует следующие уровни прав:

  • Регистратура - Registry — записать пациента может пользователь Системы с ролью «Регистратура».
  • Врач - Doctor — записать пациента может пользователь Системы с ролью «Врач»; оператор КЦ/пациент с РПГУ, если есть направление на консультацию/пациент на Д-учете.
  • Интернет - Internet — пациент может самостоятельно записаться на РПГУ к врачу.
  • Другая МО - DoctorOtherLpu — записать пациента может врач из другой медицинской организации через сервис врач-врач по направлению.
  • Доступ по квоте - Quota — не используется в текущей версии.
  • Инфомат - Infomat — пациент может самостоятельно записаться через Инфомат к врачу.
  • Колл-центр - CallCenter — записать пациента может оператор КЦ.

Права могут пересекаться. К примеру, ячейка может быть с правами самозаписи и регистратуры одновременно или вообще иметь все права одновременно.

Является битовым флагом. Ссылка на правила построения флагов.

Существует механизм открытия ячеек расписания, который добавляет дополнительные права.

Права клиентов

Методы получения текущих прав по клиентам

Получение данных по всем клиентам

Получение данных по клиенту

Текущие права клиентов

КлиентТип записи

Права**. 1 этап - 2DR API 2.17

Права**. План 2 этап - 2DR API 2.28 - Текущие
1Кол-центр, робот КЦОбычная записьКол-центр | Регистратура | Интернет | ИнфоматКол-центр
2Кол-центр, робот КЦЗапись по направлениюКол-центр | Регистратура | Интернет | Врач | Инфомат | Другая МОКол-центр | Другая МО
3Кол-центр, робот КЦЗапись по направлению в другую МОКол-центр | Регистратура | Интернет | Инфомат | Другая МОКол-центр | Другая МО
4ИнфоматОбычная записьИнфомат | ИнтернетИнфомат
5ИнфоматЗапись по направлениюКол-центр | Регистратура | Интернет | Врач | Инфомат | Другая МОИнфомат | Другая МО
6ИнфоматЗапись по направлению в другую МОКол-центр | Регистратура | Интернет | Инфомат | Другая МОИнфомат | Другая МО
7Интернет, 2др, другие порталы самозаписиОбычная записьИнфомат | ИнтернетИнтернет
8

Интернет, 2др, другие порталы самозаписи

Запись по направлениюКол-центр | Регистратура | Интернет | Врач | Инфомат | Другая МОИнтернет | Другая МО
9

Интернет, 2др, другие порталы самозаписи

Запись по направлению в другую МОКол-центр | Регистратура | Интернет | Инфомат | Другая МОИнтернет | Другая МО
10ГосуслугиОбычная запись

Регистратура | Интернет | Инфомат | Кол-центр

11ГосуслугиЗапись по направлению
Регистратура | Интернет | Инфомат | Кол-центр | Другая МО
12ГосуслугиЗапись по направлению в другую МО
Регистратура | Интернет | Инфомат | Кол-центр | Другая МО
13

МИС*

Обычная записьРегистратура | Интернет | Врач | ИнфоматРегистратура | Врач
14МИС*Запись по направлениюКол-центр | Регистратура | Интернет | Врач | Инфомат | Другая МОРегистратура | Врач
15МИС*Запись по направлению в другую МОКол-центр | Регистратура | Интернет | Инфомат | Другая МОДругая МО***
16Врач-врачВсеДругая МОДругая МО

Если клиентское приложение себя не идентифицирует, то по умолчанию ему будет отдано расписание с правом доступа Интернет.

Если клиентское приложение отсутствует в списке выше, то это значит что у него права Интернет.

*- когда МИС использует методы API 2др.

**- Уровень доступа формируется на основе флагов

***- Сначала провели в Белгородской области , затем в остальных также убрали Регистратуру. Скрипт в задаче API-2382 - Получение подробных данных проблемы... СТАТУС

Значения флагов
Регистратура = 1,
Врач = 2,
Интернет = 4,
Другая МО = 8,
Инфомат = 32,
Кол-центр = 64
Запрос получения прав клиентов (ЦОД НСИ)
select 
ca.Mnem as [ClientApplicationName],
ca.ClientApplicationGuid as [ClientApplicationGuid],
cf.Name as [Function],
cp.Access as [Access],
cp.ScheduleDays as [ScheduleDays],
case when cp.Access & 1 > 0 then 1 else 0 end as [Регистратура],
case when cp.Access & 2 > 0 then 1 else 0 end as [Врач],
case when cp.Access & 4 > 0 then 1 else 0 end as [Интернет],
case when cp.Access & 8 > 0 then 1 else 0 end as [Другая МО],
case when cp.Access & 32 > 0 then 1 else 0 end as [Инфомат],
case when cp.Access & 64 > 0 then 1 else 0 end as [Кол-центр]
from oms_ClientPermission cp
join oms_ClientFunction cf on cp.rf_ClientFunctionId = cf.ClientFunctionId
join oms_ClientApplication ca on cp.rf_ClientApplicationId = ca.ClientApplicationId
where cp.ClientPermissionId > 0
Скрипт для разложения числа на права
declare @access int = 103
select
case when @access & 1 > 0 then 1 else 0 end as [Регистратура],
case when @access & 2 > 0 then 1 else 0 end as [Врач],
case when @access & 4 > 0 then 1 else 0 end as [Интернет],
case when @access & 8 > 0 then 1 else 0 end as [Другая МО],
case when @access & 32 > 0 then 1 else 0 end as [Инфомат],
case when @access & 64 > 0 then 1 else 0 end as [Кол-центр]


Сервис определения прав(распространяется нугетом) http://bitbucket.softrust.ru/projects/TODR/repos/2dr-schedule-api/browse/src/Schedule/SofTrust.WebApi.Schedule.Library/Services/ClientAccess/ClientAccessService.cs

Перед проведением любых скриптов со страницы необходимо проверить таблицу "oms_ClientFunction" на наличие данных: VisitDoctor, VisitDirection, VisitDirectionOtherLpu

Скрипты для применения прав доступа(выполнять на базе ЦОД НСИ):

Обновление права доступа к ячейкам расписания клиентских приложений. 1 этап.sql - Применяет права согласно 1 этапу

Обновление права доступа к ячейкам расписания клиентских приложений. 2 этап.sql - Применяет права согласно 2 этапу

Новые права для робота КЦ.sql - делает права робота КЦ как у самого КЦ

Справочники. (API-3045). Расширение прав ЕПГУ на все кроме Врач и Врач другой ЛПУ.sql - дает Госуслугам расширенные права

Скрипты для добавления новых клиентов и добавления их прав:

Справочники (API-2458) Добавление нового клиента 'Стационар'.sql - добавляет новый клиент "Стационар" и права к нему.

Справочники (API-2397) Добавление нового клиента Робот Полимедика.sql - добавляет новый клиент "Робот Полимедика" и права к нему

Справочники(API-2219) Добавление нового клиента Социальная защита населения.sql - добавляет новый клиент "СоцЗащита" и права к нему



Типы приема

Тип приема определяет назначение ячейки и доступна ли она для записи.

Ограничения в таблице ниже описаны для клиентов апи 2др: РПГУ, КЦ, 2др и прочие.

Для записи через Госуслуги средствами ФЭР и Витрина ФЭР имеются свои настраиваемые белые списки доступных типов.

Доступность на уровне бдКодТип приемаПравило валидации в сервисе записиКод настройкиКомментарий
Приемные4Прием по очередиБез ограничений


201Прием беременныхУ пациента есть карта беременныхBusyType_PregnancyПроверка происходит по наличию незакрытой карты беременных(hlt_mkp_card)

202Прием детей до 1 годаВозраст пациента < 1CellAgeType

203Прием пациентов до 18 летВозраст пациента < 18CellAgeType

204Прием пациентов с 18 летВозраст пациента >= 18CellAgeType

205МедосмотрБез ограничений


206ДиспансеризацияЗапись только по мероприятию диспансеризации
Запрет в Московской Области

207Платный приемБез ограничений


209Прием здорового ребенкаВозраст пациента < 18 и нет открытых ТАПов по заболеванию по отдельным специальностям(Педиатрия, Общая врачебная практика (семейная медицина), Инфекционные болезни) за ограниченный период(60 дней).BusyType_HealthyChild

API-1564 - подробное описание валидации.

Специальности для отбора указываются через настройку ValidationRules:Visit:BusyType_HealthyChild_Check_Speciality.

Период поиска открытых тап указывается через настройку ValidationRules:Visit:BusyType_HealthyChild_Check_Days


210Прием инвалидовПациент инвалидBusyType_DisabilityПроверка происходит по таблице hlt_INV

211Дежурный врачБез ограничений


212Выездной профосмотрБез ограничений


213Организационные мероприятияБез ограничений


214Консультационный приемБез ограничений


215ДиагностикаЗапись только по направлениюУказывается через настройки слотов в поле BlockBusyЗапрет в Московской Области

320ОнкологияЗапрет обычной записи. Ограничение записи по направлению - записать может только врач со специальностью, входящей в список настройки "Коды специальности Онкология" (setting)BusyType_Onco

315ТМК врач-пациент Без ограничений


322ТМК врач-врач Без ограничений


323ТМК консилиумБез ограничений


319Диспансерное наблюдениеБез ограничений


324Приём пациентов 60+



325Мобильный ФАП
MobileBrigade
Неприемные2Выходной деньЗапретCheckDocBusyОчень сомнительная настройка. Если ее убрать, то можно будет записываться на нериемные ячейки. Считаю, что нужно будет ее убрать совсем и проверять это правило по умолчанию.

3Врач на больничномЗапрет


1Врач в отпускеЗапрет


6Врач на учебеЗапрет


7Дежурный врачЗапрет


8ПрочееЗапрет


304Неприемное времяЗапрет


305МедосмотрЗапрет


306ДиспансеризацияЗапрет


307КомандировкаЗапрет


308Административная работаЗапрет


309Организационные мероприятияЗапрет


310Форс-мажорЗапрет


311Прием в другом подразделенииЗапрет


312Ремонт оборудованияЗапрет

Другие5Живая очередьЗапрет


17Прием на дому (вызов на дом)Запись только в рамках вызова на дом



Если у врача в течение дня нет ни одной ячейки, то сервис заполняет пробел не приёмным днем с типом "Нет приема". Такого типа нет в бд.



  • Нет меток