Page tree
Skip to end of metadata
Go to start of metadata

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

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

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

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

Права ячеек

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

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

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

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

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

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

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

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

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

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

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

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

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

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

МИС*

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

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

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

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

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

Значения флагов
Регистратура = 1,
Врач = 2,
Интернет = 4,
Другая МО = 8,
Инфомат = 32,
Кол-центр = 64
Запрос получения прав клиентов (ЦОД НСИ)
select 
ca.Mnem as [ClientApplicationName],
ca.ClientApplicationGuid as [ClientApplicationGuid],
cf.Name as [Function],
cp.Access as [Access],
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

Важно

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

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

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

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

Типы приема

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

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


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

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

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

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

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


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

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


209Прием здорового ребенкаВозраст пациента < 18 и нет открытых ТАПов по заболеваниюBusyType_HealthyChildAPI-1564 - подробное описание валидации

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

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


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


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


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


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

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

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


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


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


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


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


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


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


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


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


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


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


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


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


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

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


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



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



  • No labels