Санаторий (Руководство разработчика)

Материал из GedeminWiki
Перейти к: навигация, поиск

Содержание

Введение

Приложение «Санаторий» разрабатывалось специально для санатория «Берёзка» ОАО «Беларуськалий». То есть принцип работы ведомственного санатория изучался на примере работы «Берёзки». Впоследствии была разработана эталонная база по автоматизации работы санатория, где установлены все необходимые пространства имен (ПИ) (эти ПИ также можно найти здесь [1], ветка «Санаторий»).

Приложение «Санаторий» спроектировано на основе имеющегося приложения «Гостиница». Так как предполагалось использовать имеющийся механизм работы с номерным фондом (заселение/переселение/выселение), а разрабатывать только медицинскую часть.

Однако в процессе разработки были выявлены ситуации несоответствия терминологии и механизмов работы Гостиницы и Санатория. Поэтому было принято решение сделать эти приложения независимыми друг от друга и развивать их каждый в своем направлении. При этом общие моменты всё же остались (о таких объектах свидетельствует префикс «HT» - по названию ПИ Гостиница - Hotel). Объекты, удаленные из приложения Санаторий, которые характерны для Гостиницы, описаны в приложении 1. Этот перечень может быть полезен при добавлении нового функционала в приложение: во-первых, если объект имеется в перечне, его всегда можно проанализировать в контексте Гостиницы (так как он там точно присутствует), а во-вторых, объяснение отсутствия данного объекта может убедить отказаться от него и в этот раз. В данном руководстве будет представлена структура ПИ «Санаторий» с описанием функционала и используемых объектов.

Общая структура ПИ «Санаторий»

ПИ GS.Санаторий зависит только от ПИ Общие данные. На рисунке 1 (Рисунок 1 – Общая схема ПИ «Санаторий») представлена общая схема ПИ GS.Санаторий.

Как видно из рисунка 1, «Санаторий» состоит из следующих подсистем:

  • Общее (содержит общие метаданные, общие справочники и документы, вспомогательные функции и пользовательские формы);
  • Тариф (содержит документ тарифа и справочники, необходимые для создания нового тарифа);
  • Номерной фонд(здесь собраны все справочники для номерного фонда);  
  • Путевка (содержит всё, что относится к созданию документа Путевки или Бронирования Путевки);
  • Учет путевок (содержит документы по манипуляциям над путевками);
  • Медицинские услуги (здесь всё, что касается медицинской части Санатория + связующая часть между Путевками и медицинской частью);
  • Санаторное питание (здесь всё, что связано со столовой в плане взаимодействия с отдыхающими, например, рассаживание в зале, назначения диет);
  • Форма менеджера (содержит основную форму приложения и обработчики её событий);
  • Форма Администратора (TODO! Опциональная подсистема, требует доработок)
  • Импорт из Оракла (содержит функции по импорту данных о сотрудниках предприятия из базы данных Оракл в Гедымин) – эта подсистема опциональна;
  • Санаторный общепит (здесь всё, что связано со столовой в плане калькуляций блюд, формирования заказов, составления меню и т.д.) – эта подсистема зависит от стандартного ПИ «Общепит»;
  • Глобальные объекты (TODO).

На рисунке стрелками показаны зависимости внутри подсистемы. Стрелка, указывающая на группу подсистем, означает, что подсистема зависит от каждой подсистемы в этой группе. Рассмотрим каждую подсистему в отдельности.

Подсистема «Общее»

Структура подсистемы представлена на рисунке 2 (Рисунок 2 – Структура ПИ GS.Санаторий.Общее).

На рисунке здесь и далее красными стрелками представлены зависимости внутри подсистемы, желтые блоки - группы объектов, которые отсутствуют как ПИ, но для наглядности выделены на схеме.

Состоит из:

  • GS.Санаторий.Общее.Метаданные;
  • GS.Санаторий.Общее.Справочники;
  • GS.Санаторий.Общее.Документы;
  • GS.Санаторий.Общее.Скрипты;
  • GS.Санаторий.Общее.Формы.

Зависит от: «Общие данные».

От данного ПИ зависят: все ПИ из приложения «Санаторий».

Описание: ПИ GS.Санаторий.Общее предназначено для хранения общих данных, таких как домены, справочники, документы, вспомогательные пользовательские формы и функции. Такие объекты могут использоваться в любой другой подсистеме приложения Санаторий.

Ночной аудит

От приложения Гостиница сохранился функционал Ночного Аудита. Это функция, запускаемая менеджером в конце рабочего дня. Её основное предназначение – контроль над оплатой бронирований, контроль над выселением гостей, у которых подошёл день выезда и т.д. Только при выполненных действиях логическая дата системы может быть переведена на следующий день. Информация о логической дате и дате последнего аудита содержится в документе «Служебное» (HT_SETTING): поля LOGICDATE и LASTAUDITDATE соответственно. В приложении Санаторий возможность использования этого функционала сохранена, однако он не используется в данный момент. Логическая дата соответствует текущей дате, установленной на компьютере.

Настройки приложения

Окно настроек (форма ht_options) вызывается из Формы Менеджера, раздел Менеджер. В настройках указываются основные объекты из справочников для правильной работы выпадающих списков в документах и правильного построения отчётов. Кроме того, настраиваются округления сумм (округляются все цены в приложении до указанных здесь значений), нумерация документов и права доступа. Для реализации прав доступа в событии формы настроек OnCreate в элемент управления usrg_clbRights добавляются записи с уникальными идентификаторами, которые описаны в файле констант htConst. Затем в скриптах, используя объект класса разграничения прав доступа (#Класс THT_RightsHelper) и его метод CanExecuteAction, происходит проверка этого уникального идентификатора как возможность использовать ту или иную функцию. Если результат выполнения метода True – пользователю разрешается доступ к функции.

Описание вспомогательных функций представлено в приложении 2.

Описание всех классов – приложении 3.

Описание всех хранимых процедур – приложении 4.

Подсистема «Тариф»

Структура ПИ GS.Санаторий.Тариф отображено на рисунке 3 (Рисунок 3 – Структура ПИ GS.Санаторий.Тариф).

Состоит из: внутренних ПИ не имеет.

Зависит от: подсистемы Общее

От данного ПИ зависят:

Описание: ПИ GS.Санаторий.Тариф предназначено для хранения документа Тарифов и всех справочников, которые с ним связаны.

Типовой документ «04.Тариф» предназначен для внесения информации о стоимости путевок. Стоимость путевок варьируется в зависимости от следующих значений:

  • категория отдыхающего (справочник SAN_CLIENTCATEGORY: работник предприятия, ребенок работника предприятия, участник ВОВ и т.д.),
  • тип тарифа (справочник HT_TARRIFTYPE: разделение отдыхающих по возрасту: от 0 до 6 лет, от 6 до 18 лет, старше 18 лет);
  • категория номера (справочник HT_NUMBERTYPE: блочный с двумя комнатами, люкс и т.д.);
  • дополнительное ли место в номере (за этот выбор сейчас отвечают услуги «Путевка» и «Путевка (доп.место)»). TODO: переделать так: на форме настроек добавить 2 выпадающих списка для указания из списка услуг тех, которые будем считать за «Путевку» и «Путевку на доп. Место». Там, где переменная класса HT_Options заполняется id по руиду брать вместо руида значения из этих Lookup-ов.

Кроме того в позициях документа Тариф есть возможность указать скидку на путевку, она указывается путем ввода процента скидки, количества дней проживания по этой скидки и периода действия скидки. Например, сотрудникам предприятия предоставляется скидка 25% на 21 день в течение двух лет.

Процесс расчета стоимости Путевки описан в разделе Подсистема «Путевка».

Доступ к документу Тариф осуществляется из раздела Менеджер (Формы Менеджера). Права на доступ к этому документу настраиваются в Настройках приложения (Подсистема «Общее»). Пользовательская форма usrf_ht_tarrif_grid применяется для указания нужного тарифа вручную. Пока в её использовании не было необходимости, так как цена у путевки строго определяется её параметрами, однако при желании можно использовать эту форму.

Подсистема «Номерной фонд»

Содержание ПИ GS.Санаторий.Номерной фонд отображено на рисунке 4 (Рисунок 4 – Структура ПИ GS.Санаторий.Номерной фонд).

Состоит из: внутренних ПИ не имеет.

Зависит от:

От данного ПИ зависят:

Описание: ПИ GS.Санаторий.Номерной фонд предназначено для хранения справочных объектов для работы с номерным фондом.

Подсистема включает в себя такие справочники как «Корпуса», «Этажи», «Номера», «Места в номерах». Заселение происходит на конкретное место в номере с возможностью подселения гостей в номера. У места может быть установлен признак «дополнительное место». Такие места не отображаются в таблицах состояния мест (например, при просмотре состояния номерного фонда на дату или при заселении гостя в номер), но информация о них отображается пользователю и при отсутствии свободных «основных» мест заселение может быть произведено на дополнительное место.

В подсистеме также имеется справочник состояния номеров (USR$HT_NUMBERSTATEDICT). В нем хранятся статусы двух видов: состояние занятости (свободен, занят, бронь) и состояние уборки номера (грязный, чистый, в процессе уборки, на ремонте и т.д.). Первый вид характерен для мест в номерах, в то время как второй – для номера в целом.

Учет состояний мест номеров ведется в журнале занятости мест номеров (USR$HT_RES_NUMBERSTATE), состояния уборки номера – в документе «Состояние номера» (USR$HT_NUMBERSTATEDOC). Они будут рассмотрены в далее (Подсистема «Путевка»)

Надо отметить, что данные справочников доступны из глобального объекта класса справочников (Класс THT_Dict).

Подсистема «Путевка»

Структура ПИ Путевка отображена на рисунке 5 (Рисунок 5 – Структура ПИ GS.Санаторий.Путевка).

Состоит из:

  • GS.Санаторий.П.Справочники
  • GS.Санаторий.П.Документы
  • GS.Санаторий.П.Отчеты
  • GS.Санаторий.П.Формы

Зависит от:

От данного ПИ зависят:

Описание: ПИ GS.Санаторий.Путевка включает в себя все объекты, необходимые для создания документа Путевки.

Документ Путевка является базовой единицей работы санатория. Путевку выписывают, оплачивают, заселяют, по ней создают Санаторную Книжку и Историю Болезни (#Подсистема «Медицинские услуги»), выселяют и по путевкам просматривают историю посещений гостем санатория.

Для хранения Путевок используется таблица HT_RESERVATION (используемая в приложении Гостиница как «Бронирование»). Кроме того, в санатории можно создать бронирование путевки. Бронирование путевки по хранимым данным очень похоже на саму Путевку с небольшими отличиями, поэтому Бронирования Путевок также хранятся в таблице HT_RESERVATION.

Различаются эти документы по статусу (справочник HT_RES_STATEDICT, доступен через глобальный объект класса справочников – #Класс THT_Dict). Для бронирования статус заполняется значением «Бронирование», для Путевки характерны статусы:

  • «Не сохранено» - используется при отмене только что созданной Путевки для информации в журнал событий (глобальный объект Класс THT_ReservationLog, таблица HT_RES_LOG)
  • «Новая путевка» - документ заполняется этим значением сразу при создании
  • «Ожидание заезда» - статус, в который переводится любая успешно созданная Путевка
  • «Отменено» - отмененная Путевка (удаление Путевки не производится)
  • «Заселено» - статус, который получает путевка при назначении ей места в номере
  • «На выезд» (не используется) – статус, который получает путевка в день окончания периода пребывания в санатории
  • «Выселено» - статус, который получает путевка, когда текущая дата больше даты выезда, указанной в документе

Общими признаками (свойствами) Путевки и Бронирования являются следующие:

  • Заезд (ссылка на справочник SAN_RACE)
  • Гость (ссылка на справочник гостей GD_CONTACT)
  • Тип номер (ссылка на справочник HT_NUMBERTYPE)
  • Признак дополнительное ли место

Каждый документ имеет свой номер. Причем нумерация различна для Бронирований и Путевок, она задается в Настройках Санатория (#Подсистема «Общее»). Для документа Путевка дополнительно характерны свойства:

  • Заявка (ссылка на документ SAN_PERSONAL_APPLICATION)
  • Бронирование (ссылка на самого себя, таблица HT_RESERVATION)
  • Категория отдыхающего (ссылка на справочник SAN_CLIENTCATEGORY)
  • Место продажи (выписки) (ссылка на GD_CONTACT)
  • Валюта
  • Тип тарифа (ссылка на HT_TARRIFTYPE – это значение заполняется автоматически и скрыто от пользователя)

При указании Заявки или Бронирования некоторая информация автоматически заполняется значениями из этих документов.

Для документа Бронирования характерны свойства:

  • Дата подтверждения брони
  • Номер (ссылка на справочник HT_NUMBER)

Дата подтверждения брони путевки автоматически заполняется значением даты создания документа + 5 дней. Каждый раз при открытии формы менеджера (#Подсистема «Форма менеджера») осуществляется проверка, дат подтверждения бронирований и если они меньше текущей даты, то бронь снимается.

Расчет стоимости Путевки (производится автоматически):

  1. При изменении данных гостя (CONTACTKEY), заезда (RACEKEY), категории отдыхающего (CLIENTCATEGORYKEY), категории номера (NUMBERTYPEKEY) и признака дополнительного места (ISADDITIONALPLACE) происходит поиск актуального тарифа (это определяется по соотношению дат создания путевки и дат действия тарифа, при этом, если дата окончания действия не указана, тариф считается действительным) - #Подсистема «Тариф».
  2. Если тариф найден, в Путевке заполняются следующие поля:
    1. DAYRATE – стоимость одного дня проживания (соответствует значению одного из полей COSTNCU, COSTEUR, COSTRUR, COSTUSD позиции тарифа в зависимости от указанной в Путевке валюты);
    2. DAYRATEPART – стоимость одного дня проживания с учетом скидки, указанной в позиции документа тарифа (если скидки не предоставляется, это значение совпадает с DAYRATE);
    3. DAYRATESUM – стоимость всего периода проживания (соответствует значению DAYRATE, умноженному на количество дней, рассчитанное по дням заезда);
    4. TOTALPARTSUM – стоимость всего периода проживания с учетом скидки (рассчитывается процент от DAYRATESUM);
    5. PARTPRICEDAYNUMBER – количество дней, рассчитанных по скидке.

К примеру, путевка может быть выписана на 14 дней проживания, а скидка предоставляется на 21 день. Тогда при выписке путевки количество дней по скидке заполнится значением «14». При последующей выписке путевки, попадающей в период предоставления скидки (например, скидка предоставляется 1 раз за 2 года) эти 14 дней будут учтены и скидка будет предоставлена только на 7 дней, а остальные 7 дней (если заезд новой путевки также составляет 14 дней) будут рассчитаны по полной цене.

При сохранении только что созданной Путевки её стоимость автоматически заносится в документ Оплаты (#Подсистема «Учет путевок»). В Путевке также имеется поле INCOMETAX, оно заполняется пользователем вручную и если оно отлично от нуля, оно заносится в документ Оплаты отдельной записью.

Создание Путевки/Бронирования осуществляется из формы менеджера (#Подсистема «Форма менеджера»), раздел Гости, пункт Действия на панели инструментов.

Изменения в Путевке

В случаях, когда в выписанную (оплаченную) путевку необходимо внести изменения, предусмотрена функция «Внести изменения в путевку» (Форма Менеджера – раздел Гости – пункт Доп.действия) – создается запись в таблице SAN_PERMITCHANGES. С помощью этой функции можно:

  • уменьшить или увеличить период пребывания гостя в санатории
  • сменить категорию номера проживания
  • сменить основное место в номере на дополнительное и наоборот
  • оформить частичное выселение (например, гость находился в больнице в течение трех дней в середине своего пребывания в санатории)
  • оформить «продление частичного выселения» - в случае, если гость был «частично» выселен, но после окончания своего заезда планирует «добыть» то количество дней, которое отсутствовал

Изменения необходимы для расчета суммы к доплате/возврату (сумма заносится в документ оплат – SAN_PAYMENT), для корректного отображения свободных мест в номерах и салфеток в столовой, а также для корректного отображения состояния путевки (важно сохранять все данные путевки на протяжении всех изменений). Для получения последних актуальных изменений предназначена хранимая процедура SAN_P_LASTPERMITCHANGES.

Примеры задач, которые решаются с помощью документа «Изменения в путевке»:

  1. Гость заезжает на 2 дня позже даты заезда своей путевки (по уважительной причине), а в середине заезда на 4 дня меняет номер проживания на категорию дороже той, что была указана в путевке изначально. Необходимо рассчитать сумму разницы между стоимостями исходной путевки и необходимых изменений, а также освободить занятость места в номере и салфетки в столовой, закрепленных за гостем с начала заезда.
  2. Гость по состоянию здоровья во время заезда попадает в больницу на 6 дней, деньги за это отсутствие не возвращаются, а через месяц после окончания заезда по этой путевке гость возвращается в санаторий на эти 6 дней. Необходимо рассчитать сумму к возврату (или доплате) после изменений, а также освободить занятость места в номере и салфетки в столовой, закрепленных за гостем на период отсутствия его в санатории.

Операции над Путевкой (заселение/переселение/выселение) Путевку со статусом «Ожидание заезда» можно заселить, со статусом «Заселено» - переселить или выселить, используя соответствующие функции на форме менеджера. Переселение и выселение можно осуществить «на будущее», указав дату переселения/выселения. При описанных действиях изменяется статусы мест номеров в журнале (HT_RES_NUMBERSTATE) Телефонные переговоры Функционал остался от приложения Гостиница, однако в Санатории пока не используется. Для учета переговоров предполагается использовать документ HT_PHONEDOC, для хранения внешних телефонов - справочник HT_PHONEDICT. Список услуг Функционал остался от приложения Гостиница, однако в Санатории пока не используется. Может быть полезным при работе с дополнительными платными услугами. Для учета услуг для путевки предполагается использовать документ HT_RES_SERVICELIST. Учет состояние номеров (чистый/грязный/на ремонте) Функционал остался от приложения Гостиница, однако в Санатории пока не используется. Для учета состояний номеров предполагается использовать документ HT_NUMBERSTATEDOC и для изменения статусов рекомендуется работать из формы менеджера – Подсистема «Форма менеджера» (раздел Статусы Номеров, смотреть скрытые элементы управления).

Операции над Путевкой (заселение/переселение/выселение)

Путевку со статусом «Ожидание заезда» можно заселить, со статусом «Заселено» - переселить или выселить, используя соответствующие функции на форме менеджера. Переселение и выселение можно осуществить «на будущее», указав дату переселения/выселения. При описанных действиях изменяется статусы мест номеров в журнале (HT_RES_NUMBERSTATE)

Телефонные переговоры

Функционал остался от приложения Гостиница, однако в Санатории пока не используется. Для учета переговоров предполагается использовать документ HT_PHONEDOC, для хранения внешних телефонов - справочник HT_PHONEDICT.

Список услуг

Функционал остался от приложения Гостиница, однако в Санатории пока не используется. Может быть полезным при работе с дополнительными платными услугами. Для учета услуг для путевки предполагается использовать документ HT_RES_SERVICELIST.

Учет состояние номеров (чистый/грязный/на ремонте)

Функционал остался от приложения Гостиница, однако в Санатории пока не используется. Для учета состояний номеров предполагается использовать документ HT_NUMBERSTATEDOC и для изменения статусов рекомендуется работать из формы менеджера – #Подсистема «Форма менеджера» (раздел Статусы Номеров, смотреть скрытые элементы управления).

Подсистема «Учет путевок»

Структура ПИ Учет Путевок отображена на рисунке 6 (Рисунок 6 – Структура подсистемы «Учет путевок»).

Состоит из:

  • GS.Санаторий.УП.Справочники
  • GS.Санаторий.УП.Документы
  • GS.Санаторий.УП.Отчеты

Зависит от:

От данного ПИ зависит: #Подсистема «Форма менеджера»

Описание: ПИ GS.Санаторий.Учет Путевок содержит документы по работе с путевками.

Заявки на путевки

Персональные путевки (типовой документ SAN_PERSONAL_APPLICATION) в основном создают для пенсионеров, в то время как сводные (типовой документ SAN_APP) – на подразделение предприятия. По персональной заявке может быть выписана путевка. На форме менеджера (раздел Гости) в списке персональных путевок выделяются заявки-дубликаты за год (поле IYEARDUPLICATE).

Для работы над путевками разработаны документы (вызов из Формы Менеджера, раздел Менеджер):

  • Договоры (типовой документ SAN_CONTRACT)
  • Счета-фактуры (типовой документ SAN_INVOICE)
  • Сведения по иностранцу (типовой документ SAN_FOREIGNERINFO) – этот документ содержит всего два поля: номер сведения и ссылку на путевку. Документ был разработан для печати отчета, но вводить каждый раз номер сведений вручную ненадежно, к тому же со временем документ можно расширить данными;
  • Товарные накладные (типовой документ SAN_WAYBILL)
  • Оплаты (типовой документ SAN_PAYMENT)

Для построения некоторых отчетов (отчеты о сумме помощи) из данной подсистемы разработан вспомогательный документ (таблица SAN_ACCOUNTANTDEPARTMENT), где указаны бухгалтеры и подразделения, за которые они несут ответственность (то есть по которым строят отчеты). Указав в параметрах отчета нужного бухгалтера, он построится только по необходимым подразделениям, указанным в этой таблице (альтернатива ссылки на множество).

Кроме того в отчетах о сумме помощи учитываются скидки 1 раз в месяц и в год, предоставляемые санаторием в определенной сумме. Эти суммы хранятся в константах системы Гедымин и могут быть изменены по необходимости с определенной даты. Эти константы (обращение к ним из скриптов производится по их РУИДам):

  • Льготы по подоходному налогу 1 р/мес
  • Льготы по подоходному налогу 1 р/год

Подсистема «Санаторное питание»

Структура ПИ GS.Санаторий.Санаторное питание отображена на рисунке 7 (Рисунок 7 – Структура подсистемы «Санаторное питание»).

Состоит из:

  • GS.Санаторий.СП.Справочники
  • GS.Санаторий.СП.Документы
  • GS.Санаторий.СП.Формы
  • GS.Санаторий.СП.Отчеты

Зависит от:

От данного ПИ зависит: #Подсистема «Форма менеджера»

Описание: ПИ GS.Санаторий.Санаторное Питание объединяет в себе объекты, относящиеся к административной работе со столовой: назначение диеты, рассаживание отдыхающих в зале питания, печать соответствующих отчетов.

Для работы со столовой предусмотрены справочники:

  • Смена питания (HT_SHIFT)
  • Стол в зале (HT_TABLE)
  • Салфетка – место за столом (HT_DININGROOMPLACE)

А также два документа:

  • Столовая (таблица SAN_DINNING)
  • Журнал столовой (таблица HT_RES_CANTEEN)

При успешном заселении гостя в санаторий (оформление заселения путевки), в документе столовой (SAN_DINNING) создается запись со ссылкой на эту путевку. В документе также имеется ссылка на диету (поле DIETKEY – ссылка на справочник диет SAN_DIET) и ссылка на салфетку в зале питания (поле DININGPLACE – ссылка на справочник салфеток HT_DININGROOMPLACE). Это поле отображает актуальную салфетку для гостя на текущую дату. Все пересаживания (пересадить за другую салфетку могут «на будущее» - датой, которая ещё не наступила, пересаживания могут быть несколько раз за период пребывания) хранятся в журнале столовой (HT_RES_CANTEEN).

Работа со столовой осуществляется из Формы Менеджера, раздел «Санаторное питание» чаще всего диет-сестрой. Она указывает необходимую гостю диету и назначает салфетку. Она же может очистить назначения и оформить «пересаживание» на другое место. Чаще всего рассаживание в зале питания осуществляется в соответствии с назначенными диетами.

В подсистеме используются следующие отчеты:

  • Карточка гостя (личные данные гостя, на путевке которого установлен курсор)
  • Справка на питание (отчет строится за период и представляет собой запись о количестве проживающих на каждую дату из периода)
  • Состояние мест в столовой (печатается схема зала питания на указанный день: номера столов и даты, до которой занято каждое место, а также указываются места со строгими диетами - № 9 и 15). В шапке этого отчета указывается период, в течение которого отчет действителен. Действительным он считается до ближайшей даты изменения в состоянии хотя бы одно места и эта дата рассчитывается как минимальная дата из всех дат, до которой заняты места в зале.

Бывают ситуации непредвиденных изменений в проживании путевки (оформление частичного выселения или изменение дат заезда администратором санатория). В этом случае необходимо сообщить работникам столовой, что их отчеты могли устареть, так как были изменения в проживании гостей. Для этого в журнал HT_RES_LOG заносится сообщение с информацией о салфетке и причине изменений дат, а также у такой записи заполняется поле-флаг отображения для диет-сестры (поле ISDININGROOMSHOW). При каждом обновлении данных в разделе «Столовая» Формы Менеджера вызывается функция (ShowDinningRoomMessage) отображения сведений об изменениях для диет-сестры. Когда диет-сестра приняла к сведению предназначенное для неё сообщение (распечатала отчеты или просто запомнила изменения) она больше не нуждается в нем и по нажатию на кнопку «ОК», расположенную справа от сообщения поле отображения очищается, а флаг отображения в журнале HT_RES_LOG сбрасывается и в дальнейшем сообщения не отображаются.

Весь перечень событий, о которых сообщается диет-сестре:

  • Отмена заселения (очищаются все занятости мест номеров в журнале, статус путевки становится «Ожидание Заезда»)
  • Частичное выселение
  • Отмена частичного выселения (очищаются все занятости мест номеров в журнале, статус путевки становится «Ожидание Заезда»)
  • Выселение (выселение оформляется на дату, то есть может быть раньше даты выезда по заезду)
  • Отмена выселения (очищаются все занятости мест номеров в журнале, статус путевки становится «Ожидание Заезда»)

Подсистема «Медицинские услуги»

Структура ПИ GS.Санаторий.Медицинские услуги отображена на рисунке 8 (Рисунок 8 – Структура подсистемы «Медицинские услуги»).

Состоит из:

  • GS.Санаторий.МУ.Лечащие врачи
  • GS.Санаторий.МУ.Процедурные аппараты
    • GS.Санаторий.МУ.ПА.Справочники
    • GS.Санаторий.МУ.ПА.Документы
  • GS.Санаторий.МУ.Учет талонов
  • GS.Санаторий.МУ.План лечения
    • GS.Санаторий.МУ.ПЛ.Справочники
    • GS.Санаторий.МУ.ПЛ.Документы
  • GS.Санаторий.МУ.История болезни
    • GS.Санаторий.МУ.ИБ.Справочники.Диагнозы
    • GS.Санаторий.МУ.ИБ.Справочники.Обследования
    • GS.Санаторий.МУ.ИБ.Справочники.Вспомогательные
    • GS.Санаторий.МУ.ИБ.Документы
    • GS.Санаторий.МУ.ИБ.Формы
  • GS.Санаторий.МУ.Назначения процедур
    • GS.Санаторий.МУ.НП.Документы
    • GS.Санаторий.МУ.НП.Формы
  • GS.Санаторий.МУ.Медикаментозное лечение
  • GS.Санаторий.МУ.Санаторная книжка
  • GS.Санаторий.МУ.СК.Отчеты

Зависит от:

От данного ПИ зависит: #Подсистема «Форма менеджера»

Описание: ПИ GS.Санаторий.Медицинские Услуги содержит объекты для работы с медицинской составляющей санатория. В данной подсистеме реализованы такие функции как:

  • Ведение санаторной книжки
  • Назначение лечащего врача
  • Ведение Истории Болезни гостя
  • Назначение и контроль за прохождением медицинских процедур

Документы Санаторная Книжка (SAN_SANATORIUMCARD) автоматически создается при создании документа Путевка (#Подсистема «Путевка») и после документа История Болезни (SAN_MEDICAL_HISTORY), так как имеет ссылки на Путевку и Историю Болезни, являясь связующим звеном между административной частью работы санатория и медицинской частью. Таким образом эти три документа имеют связь между собой 1:1.

Из Формы Менеджера (раздел «Санаторная книжка») медицинский статист указывает первичный прием у лечащего врача в конкретной санаторной книжке, назначая тем самым одновременно лечащего врача и дату первичного приема. Назначение происходит из формы выбора доступных дней работы врачей (форма usrf_san_available_doctime).

При назначении первичного приема в шапке документа История Болезни автоматически заполняется поле (DOCTORKEY) лечащего врача, а в позициях добавляется запись с типом приема «Первичный» (поле RECEIVINGTYPEKEY).

Данные для формы выбора первичного приема (лечащего врача) хранятся в журнале работы лечащих врачей (SAN_DOCTIMETABLE), который заполняется из раздела Менеджер. Структура Журнала работы лечащих врачей следующая:

  • Ссылка на лечащего врача (DOCTORKEY)
  • Дата работы (DATE)
  • Количество приемов на дату (RECEPTIONNUMBER)
  • Ссылка на медицинский кабинет (CABINETKEY)

При подсчете доступного количества назначений на дату происходит подсчет ссылок на данную запись журнала (данный подсчет используется просто для информации, поэтому реально значение может быть меньше нуля).

История болезни

В этом документе шапка используется для статической информации (такой как обследования, анамнез и т.д.) и назначений плана лечения (медикаментозное, процедурное), а позиции представляют собой приемы врачей (узких специалистов, консультации и т.д.)

Документ История Болезни (SAN_MEDICAL_HISTORY) использует большое количество справочных данных, поэтому было принято решение разделить все справочники на 3 вида (на 3 ПИ):

  • Диагнозы
  • Обследования
  • Вспомогательные

Большинство из этих справочников вызывается из Исследователя (ветка «Медицинские справочники»). Значения всех справочников используются в документе История Болезни на разных вкладках. Значения некоторых справочников объединены в один и имеют признаком различия поле TYPE, по которому нужные значения отображаются в нужных выпадающих списках (это экономит ресурсы на создание разных справочников) и упрощает добавление новых значений.

На Форме Менеджера для каждого лечащего врача настроено ограничение на доступ только к своим пациентам. Если есть необходимость получить доступ к другим Историям Болезни (например, лечащий врач пациента заболел, или гость обращается к дежурному врачу), тогда пользователь обращается к функции «Поиск истории болезни», в форме поиска (usrf_san_search_medhistories) врач указывает гостя, историю болезни которого он ищет и причину поиска и только после заполнения этих полей осуществляется поиск. Сам факт поиска сохраняется в документе «Журнал историй боолезни» (san_medhistory_log) – это необходимо, чтобы исключить и проконтролировать непредвиденные обращения врачей к историям болезни не своих пациентов.

План лечения пациента представлен на вкладке «План лечения» шапки документа История Болезни и осуществляется следующими назначениями:

  • Прием настоев трав и минеральной воды (таблицы SAN_HERBSAPPOINTMENT и SAN_MIN_WATER_APPOINTMENT соответственно)
  • Медикаментозное лечение (таблица SAN_MEDICATION)
  • Назначение медицинских процедур:
    • Без указания времени – перечисляются процедуры с количеством посещений за заезд (таблица SAN_TIMELESSPROCEDURES)
    • По времени (документ «Назначения и прохождения процедур» SAN_PROCAPPOINTMENT)

Назначения процедур по времени

Эта информация хранится в документе с позициями SAN_PROCAPPOINTMENT. Шапка документа представляет собой один рабочий день (поле даты DATE) процедурного аппарата (поле-ссылка на справочник аппаратов PROCAPPARATUS), а позиции – время (поле TIME) с назначенным гостем на это время (поле-ссылка на документ истории болезни MEDHISTORYKEY).

В позиции также указывается следующая информация для медицинской сестры, контролирующей процесс проведения процедуры:

  • продолжительность (DURATION)
  • вид процедуры (поле-ссылка PROCEDUREKINDKEY на справочник видов процедур)
  • часть тела применения процедуры (поле-ссылка BODYREGIONKEY на справочник зоны/части тела)
  • условные единицы – информация для мед. сестры (CONVENTIONALUNITS)
  • дополнительная информация (COMMENT)
  • талон, выданный на данную процедуру (поле-ссылка COUPONLINEKEY на позицию документа Учета Талонов)

Документ назначения процедур доступен в разделе «Процедуры» Формы Менеджера как рабочее место процедурной медицинской сестры. При этом каждой медсестре (пользователю с настроенными правами на этот документ) доступны только те процедурные аппараты, которые назначены ей в документе Ответственности за процедурный аппарат (таблица SAN_APPARATUSLIABILITY) – документ доступен в разделе Менеджер.

Назначения пациенту процедур по времени происходит из раздела План Лечения в документе история болезни. На форме назначения (usrf_san_procappointment) отображается следующая информация:

  • Данные назначения (представлены в виде компонентов TgsIBGrid табличек и соответствующих бизнес объектов, связанных между собой по Master-Detail):
    • Тип процедур (справочник SAN_PROCEDURETYPE);
    • Процедура (справочник HT_SERVICE);
    • Вид процедуры (справочник SAN_PROCEDUREKIND);
    • Процедурный аппарат для процедуры (справочник SAN_PROCAPPARATUS);
    • Область (часть тела), для которой назначается процедура (справочник SAN_BODYREGION);
    • Произвольный комментарий.
  • Вспомогательная информация по назначению (представлена в виде компонентов TStaticText):
    • Количество доступных талонов для текущего лечащего врача для указанной процедуры (информация из типового документа Учета талонов SAN_PROCCOUPON, подсчитывается с помощью представления SAN_V_DOCCOUPONS);
    • Количество доступных процедур на заезд для данного отдыхающего (задается двумя константами в системе Гедымин: «Курс мед. процедуры (14 дней)» и «Курс мед. процедуры (21 день)»);
    • Количество отмеченных позиций на шахматке состояния занятости процедурного аппарата;
  • Шахматка состояния занятости выбранного процедурного аппарата (представлена компонентом TgsDBGrid и набором данных TClientDataSet).

На шахматке отображается следующая информация (за её вывод отвечает хранимая процедура SAN_P_PROCCHECKERBOARD - #Приложение 4: Хранимые процедуры):

  • Рабочее/нерабочее время аппарата по его актуальному графику работы.
  • Есть ли закрепленный за аппаратом ответственный сотрудник санатория на данный день.
  • Назначены ли другие пациенты на это время
  • Назначены ли у этого пациента другие процедуры на это время.
  • Назначены ли до или после этого процедуры не совместимые с назначаемой в течение времени, которое указано в справочнике совместимости процедур (SAN_PROCEDURECOMPATIBILITY) – доступен в разделе Менеджер.

Процедурные аппараты

Каждый процедурный аппарат привязан к определенной процедуре, их справочник хранится в таблице SAN_PROCAPPARATUS. Для каждого процедурного аппарата характерен график рабочего времени. Для графиков предназначен типовой документ «11. График работы процедурных аппаратов» (таблицы SAN_PROCAPPWORKSCHEDULE и SAN_PROCAPPWORKSCHEDULELINE), он доступен в разделе Менеджер. В шапке документа задается наименование графика и режим работы по дням недели, далее генерируются позиции документа (дата – рабочие интервалы). Назначение определенного графика процедурному аппарату происходит в документе «12. Работа процедурных аппаратов» (таблицы SAN_APPSCHREL и SAN_APPSCHRELLINE), он также доступен в разделе Менеджер.

Для процедурных аппаратов характерно назначение ответственного, обычно это процедурная медсестра, которая контролирует проведение процедур на аппарате. Ответственный за аппарат назначается в соответствующем документе (таблица SAN_APPARATUSLIABILITY), он доступен в разделе Менеджер.

Учет талонов

Учет талонов на медицинские процедуры ведется в соответствующем документе (таблицы SAN_PROCCOUPON и SAN_PROCCOUPON LINE), он доступен в разделе Менеджер. В шапке документа указывается дата основного заезда (основным считается заезд, который имеет в справочнике номер), процедура и общее количество талонов на эту процедуру. В позициях расписывается, какому врачу сколько выделяется талонов из общего числа. В соответствии с решаемой задачей в документе предусмотрены следующие ограничения:

  • В позициях общее число талонов не может превышать количества из шапки соответствующего документа
  • В шапке документа добавлено рассчитываемое поле BALANCE, в котором отображается доступное количество талонов
  • В случае, когда общее число талонов в позициях соответствует количеству из шапки, запись выделяется цветом

Часто лечащему врачу при входе в систему Гедымин необходимо получить информацию о том, что у его пациентов были проведены какие-либо изменения другими пользователями (срочные консультации других специалистов, отмена приема медицинского препарата и т.д.). Для такого сообщения предусмотрено представление SAN_V_MEDHISTORY_META. В нем формируются данные об изменениях, проведенных с момента предыдущего входа в систему текущего пользователя до текущего момента.

Сообщение пользователю выдается при следующих изменениях:

  • Документ История болезни
  • Позиции документа История Болезни, то есть если были приемы врачей
  • Назначения процедур
  • Медикаментозное лечение

Подсистема «Форма менеджера»

Форма разработана для удобства и абстрагирования от стандартного интерфейса системы Гедымин, что помогает более детально разграничить права доступа к элементам базы данных, а иногда и вовсе скрыть от пользователей те или иные стандартные механизмы (такие как удаление документа Путевки, или создание документов Санаторной Книжки и Истории Болезни). Для большинства пользователей приложения Санаторий возможна работа только из данной формы.

Разделы на форме представлены вертикальным меню с наименованием предметной области (программно это меню представляет собой переключение вкладок компонента TPageControl на Форме Менеджера).

Следует отметить, что на Форме Менеджера существуют неиспользуемые разделы, например, учет состояния уборки номеров или статистические данные по номерному фонду. Они скрыты от пользователей, так как пока не используются, но при необходимости можно доработать эти разделы.

Подсистема «Импорт из Оракла»

Данная подсистема является опциональной (необязательна к установке в пакете ПИ Санаторий). Она разрабатывалась для импорта данных о сотрудниках, пенсионерах и детях сотрудников из базы данных предприятия в Гедымин. Импорт происходит из диалоговой формы Гостя санатория по введенному табельному номеру сотрудника. Для подключения к системе Оракла предназначена функция ConnectToOracle, где указываются логин, пароль и наименование базы данных.

Подсистема «Санаторный общепит»

Данная подсистема разработана на основе двух приложений: «Санаторий» и «Общепит», поэтому ПИ GS.Санаторий.Санаторное Питание зависит от них обоих.

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

Основные особенности работы санаторного общепита:

  • Отсутствие переходящих остатков продуктов на кухне
  • Учет норм потребления продуктов питания на одного человека

Приложение 1: Перечень удаленных объектов из ПИ Гостиницы для ПИ Санатория

№ п/п Наименование функционала Объекты Пояснения
1 Трейсы (примечания к брони) Таблица (usr$res_tracelist), домен-ссылка на неё В ходе работы выяснилось, что данный функционал избыточен
2 Гарантированность бронирования Справочник, домен-ссылка, поле-ссылка в документе Бронирования/Путевки Для ведомственного санатория не характерно
3 Канал бронирования Справочник, домен-ссылка, поле-ссылка в документе Брониварония/Путевки Для ведомственного санатория не характерно
4 Групповое бронирование Таблица, поле-ссылка в документе Бронирования/Путевки, функции характерные для группы броней Для санатория не характерно
5 Список гостей Таблица (usr$ res_guestlist), домен, объекты на диалоговой форме Бронирования/Путевки Для отеля характерно разделение данных о человеке, на имя которого забронирован номер и списка проживающих в этом номере (т.е. по этой брони). Для путевок же в санатории – 1 путевка=1 гость, соответственно, список гостей избыточен
6 Шахматка занятости номеров Файл flash с отрисованной шахматкой, вкладка на Форме Менеджера, все функции и обработчики связанные с объектом web-страницы на этой вкладке Не использовалась в санатории с самого начала. Требует доработок в соответствии с заселением не в номер, а на место в номере. Доработки необходимо производить в сторонней программе, что не удобно.
7 Форма usrf_ht_logview Форма usrf_ht_logview Нигде не используется
8 Отчеты «Подтверждения бронирования», «регистрационная карточка», «баланс по номерам», «Неоплаченные бронирования», «HK статусы номеров», «Акт о выполненных работах», «Брони с доступом из внешней системы», «Журнал начислений», «Журнал отмененных бронирований», «Журнал примечаний», «Журнал статусов номеров», «Завтраков за период», «История и прогноз», «Матрица номеров», «Наличие номеров (по типам)», «Начисления по статьям», «Оплаты по типам», «Отчёт в ОВИР», «Отчет по заселениям/проживаниям», «Проверка тарифов», «Свободные номера», «Сводный отчет за день», «Статистика по компании», «Счет EN», «Счет RU», «Счет-фактура» Не характерно для санатория или не используется

Приложение 2: Вспомогательные функции

Наименование Входные параметры Тип возвращаемого значения Описание
hlp_WeekDayNameRus ByVal InWeekDayNumber, ByVal InShort string Возвращает день недели на русском языке по номеру InWeekDayNumber и в зависимости от InShort в сокращенной или полной форме
hlp_ParamWindow ByVal InParamArray variant Возвращает результат выполнения окна параметров System.GetNewParamWindow(0)
hlp_NumPluralForm ByVal Num,

ByVal Form1, ByVal Form2, ByVal Form5

string Возвращает существительное в нужном падеже в соответствии с числом Num. Например, hlp_NumPluralForm(Num,”этаж”, “этажа”,”этажей”).
hlp_MonthNameRus ByVal InMonthNumber, ByVal InShort,

ByVal InGenitiveCase

string Возвращает название месяца на русском языке по номеру InMonthNumber, в зависимости от InShort полную или короткую форму, в зависимости от InGenitiveCase в родительном или именительном падеже
hlp_LAT2CYR ByVal sCYR string Преобразовывает строку латинских символов в строку кирилличных символов
hlp_iif ByVal InCondition,

ByVal InFirst, ByVal InSecond

variant Возвращает значение InFirst,если InCondition верно и InSecond – в противном случае
hlp_GetStrFieldValue ByVal TableName, ByVal ListFieldName, ByVal KeyFieldName, ByVal KeyValue string Возвращает первое значение результата выполнения запроса:

SELECT ListFieldName FROM TableName WHERE KeyFieldName = KeyValue

hlp_GetIntFieldValueTr ByVal TableName, ByVal ListFieldName, ByVal KeyFieldName, ByVal KeyValue,

ByVal Tr

integer Возвращает результат выполнения запроса:

SELECT ListFieldName FROM TableName WHERE KeyFieldName = KeyValue в транзакции Tr

hlp_GetIntFieldValue ByVal TableName, ByVal ListFieldName, ByVal KeyFieldName, ByVal KeyValue integer Возвращает результат выполнения запроса:

SELECT ListFieldName FROM TableName WHERE KeyFieldName = KeyValue

hlp_GetDateTimeFieldValueTr ByVal TableName, ByVal ListFieldName, ByVal KeyFieldName, ByVal KeyValue,

ByVal Tr

Date Возвращает первое значение результата выполнения запроса:

SELECT ListFieldName FROM TableName WHERE KeyFieldName = KeyValue в транзакции Tr

hlp_GetDateTimeFieldValue ByVal TableName, ByVal ListFieldName, ByVal KeyFieldName, ByVal KeyValue Date Возвращает первое значение результата выполнения запроса:

SELECT ListFieldName FROM TableName WHERE KeyFieldName = KeyValue

hlp_FormatNumber ByVal NumericValue string Преобразовывает число NumericValue в отформатированную строку
hlp_FormatDateTime ByVal InFormat,

ByVal InDateTime

string Преобразует дату InDateTime в формат, указанный в InFormat
hlp_CYR2LAT ByVal sCYR string Преобразует строку кирилличных символов в латинские символы
hlp_AppendString ByRef InSourceString,

ByVal InAppendedString, ByVal InDivider

Результат в строке InSourceString Соединяет строки InSourceString и InAppendedString через разделитель InDivider
hlp_ShortTimeName ByVal InTime string Возвращает время в формате ЧЧ:ММ
ht_GetRoundToValueByCurrKey ByVal CurrKey double Возвращает значение, к которому округлять валюту с ключом CurrKey (из настроек)
ht_GetNumberTypeCountPlace ByVal NumberTypeKey integer Возвращает значение поля usr$count_place (количество мест в данном типе номера) для типа номера NumberTypeKey

Приложение 3: Классы приложения Санаторий

Класс THT_Dict

Справочники, которые часто используются в процессе работы Санатория. Класс разработан для более быстрого доступа к данным.

Свойства

Наименование Доступ Тип данных Описание
FHousingDict private Dictionary Корпуса. В словаре key – id из справочника, item – объект класса #Класс THT_Housing
FFloorDict private Dictionary Этажи. В словаре key – id из справочника, item – объект класса #Класс THT_Floor
FNumberTypeDict private Dictionary Типы номеров. В словаре key – id из справочника, item – объект класса #Класс THT_NumberType
FNumberDict private Dictionary Номера. В словаре key – id из справочника, item – объект класса #Класс THT_Number
FPayTypeDict private Dictionary Типы оплаты. В словаре key – id из справочника, item – объект класса #Класс THT_PayType
FTarrifTypeDict private Dictionary Типы тарифов. В словаре key – id из справочника, item – объект класса #Класс THT_TarrifType
HousingDict public (property get) Dictionary Возвращает свойство Корпуса
NumberDictFilter(ByVal args) public (property get) Dictionary Фильтр для Номеров. Входной параметр args – строка типа «пар1=знач1;пар2=знач2…» Где пар<n> - свойство объекта класса #Класс THT_TarrifType
FloorDict public (property get) Dictionary Возвращает свойство Этажи
NumberTypeDict public (property get) Dictionary Возвращает свойство Типы номеров
NumberDict public (property get) Dictionary Возвращает свойство Номера
PayTypeDict public (property get) Dictionary Возвращает свойство Типы оплаты
TarrifTypeDict public (property get) Dictionary Возвращает свойство Типы тарифов

Методы

Наименование Доступ Описание
Refresh private Обновление всех данных в свойствах-справочниках
Class_Initialize private Инициализация свойств объектов
Class_Terminate private Завершение работы объекта

Класс THT_Housing

Корпус. Структура класса соответствует структуре справочника HT_Housing. Используется в классе справочников (Класс THT_Dict)

Свойства

Наименование Доступ Тип данных Описание
Key public integer Ключ записи. Аналог полю ID в таблице справочника HT_ Housing
Name public string Наименование этажа. Аналог полю USR$NAME в таблице справочника HT_ Housing
Disabled public integer (0,1) Признак неактивности записи. Аналог полю Disabled в таблице справочника HT_ Housing

Класс THT_Floor

Этаж. Структура класса соответствует структуре справочника HT_Floor. Используется в классе справочников (Класс THT_Dict)

Свойства

Наименование Доступ Тип данных Описание
Key public integer Ключ записи. Аналог полю ID в таблице справочника HT_Floor
Name public string Наименование этажа. Аналог полю USR$NAME в таблице справочника HT_Floor
Disabled public integer (0,1) Признак неактивности записи. Аналог полю Disabled в таблице справочника HT_Floor

Класс THT_NumberType

Тип номера. Структура класса соответствует структуре справочника HT_NumberType. Используется в классе справочников (#Класс THT_Dict)

Свойства

Наименование Доступ Тип данных Описание
Key public integer Ключ записи. Аналог полю ID в таблице справочника HT_NumberType
Name public string Наименование этажа. Аналог полю USR$NAME в таблице справочника HT_ NumberType
ShortName public string Краткое наименование типа. Аналог полю USR$SHORTNAME в таблице справочника HT_ NumberType
CountRoom public integer Количество комнат в номере
CountPlace public Integer Количество мест в номере
CountAddPlace public Integer Количество дополнительных мест в номере
IsVirtual public Integer(0,1) Виртуальный ли номер

Класс THT_Number

Номер. Структура класса соответствует структуре справочника HT_Number. Используется в классе справочников (#Класс THT_Dict)

Свойства

Наименование Доступ Тип данных Описание
Key public integer Ключ записи. Аналог полю ID в таблице справочника HT_Number
Name public string Наименование этажа. Аналог полю USR$NAME в таблице справочника HT_Number
TypeKey public integer Тип номера. Аналог полю-ссылке USR$TYPEKEY в таблице справочника HT_Number
CountRoom public integer Количество комнат в номере
CountPlace public integer Количество мест в номере
CountAddPlace public integer Количество дополнительных мест в номере
IsVirtual public Integer(0,1) Виртуальный ли номер
FloorKey public Integer Тип номера. Аналог полю-ссылке USR$FLOORKEY в таблице справочника HT_Number
HousingKey public Integer Тип номера. Аналог полю-ссылке USR$HOUSINGKEY в таблице справочника HT_Number
PlaceDict public Dictionary Места номера (словарь объектов класса THT_RoomPlace)
MainRoomPlaceDict public property get Dictionary Основные места номера (словарь объектов класса THT_RoomPlace)
AdditionalRoomPlaceDict public property get Dictionary Дополнительные места номера (словарь объектов класса THT_RoomPlace)

Класс THT_RoomPlace

Место в номере. Структура класса соответствует структуре справочника HT_ROOMPLACE. Используется в классе справочников (#Класс THT_Dict), в классе мест (#Класс THT_Number), в шахматке занятости мест (Подсистема Форма Администратора)

Свойства

Наименование Доступ Тип данных Описание
Key public integer Ключ записи. Аналог полю ID в таблице справочника HT_RoomPlace
Name public string Наименование места в номере. Аналог полю USR$NAME в таблице справочника HT_RoomPlace
RoomKey public integer Номер. Аналог полю-ссылке USR$ROOMKEY в таблице справочника HT_RoomPlace
IsAdditional public integer(0,1) Признак дополнительное ли место, аналог полю USR$ISADDITIONAL справочника HT_RoomPlace
Disabled public integer(0,1) Признак доступно ли место, аналог полю DISABLED справочника HT_RoomPlace
StatesDict public dictionary словарь статусов (key - date, value - Array(NumberStateKey, ReservationKey))

Методы

Наименование Доступ Описание
AddState(ByVal Key, ByVal Value) public Добавление элемента в словарь статусов места

Класс THT_PayType

Тип оплаты. Структура класса соответствует структуре справочника HT_PAYTYPE. Используется в классе справочников (THT_Dict)

Свойства

Наименование Доступ Тип данных Описание
Key public integer Ключ записи. Аналог полю ID в таблице справочника HT_PAYTYPE
Name public string Наименование типа оплаты. Аналог полю USR$NAME в таблице справочника HT_PAYTYPE
Kind public Integer (1,2,3) Тип платежного средства. Аналог полю-ссылке USR$TYPE в таблице справочника HT_ PAYTYPE. Значения:
  • 1 – Наличный
  • 2 – Пластиковая карта
  • 3 – Безналичный

Класс THT_TarrifType

Тип тарифа. Структура класса соответствует структуре справочника HT_TARRIFTYPE. Используется в классе справочников (THT_Dict)

Свойства

Наименование Доступ Тип данных Описание
Key public integer Ключ записи. Аналог полю ID в таблице справочника HT_TARRIFTYPE
Name public string Наименование типа оплаты. Аналог полю USR$NAME в таблице справочника HT_TARRIFTYPE
OnlyAdmin public integer Признак доступности только администратору. Аналог полю USR$ONLYADMIN в таблице справочника HT_TARRIFTYPE

Класс THT_NumberStateDict

Справочник состояния номеров.

Свойства

Наименование Доступ Тип данных Описание
FDictionary private Dictionary Состояния номеров (мест номеров). В словаре key – id из справочника, item – объект класса THT_NumberState


Методы

Наименование Доступ Описание
GetFreeState public Возвращает объект класса THT_NumberState, соответствующий состоянию «Свободно»
GetBookState public Возвращает объект класса THT_NumberState, соответствующий состоянию «Забронировано»
GetBusyState public Возвращает объект класса THT_NumberState, соответствующий состоянию «Занят»
GetMoveState public Возвращает объект класса THT_NumberState, соответствующий состоянию «Переселен»
GetCleanState public Возвращает объект класса THT_NumberState, соответствующий состоянию «Чистый»
GetDirtyState public Возвращает объект класса THT_NumberState, соответствующий состоянию «Грязный»
GetRepairState public Возвращает объект класса THT_NumberState, соответствующий состоянию «На ремонте»
GetInspectedState public Возвращает объект класса THT_NumberState, соответствующий состоянию «Инспектирован»
GetCleaningState public Возвращает объект класса THT_NumberState, соответствующий состоянию «Чистый»
GetByKey(ByVal InKey) public Возвращает объект состояния номера (класс THT_NumberState) по ключу
Count public Количество состояний номеров в списке
GetItemArray public Получить массив объектов из списка
Refresh public Обновление всех данных в свойствах-справочниках
RevRGB (red, green, blue) private Возвращает длинное целое число (Long) собранное по значениям Red, Green, Blue
Class_Initialize private Инициализация свойств объектов
Class_Terminate private Очищение словаря для справочника при уничтожении объекта класса

Класс THT_NumberState

Состояние номера. Структура класса соответствует структуре справочника HT_NUMBERSTATEDICT. Используется в классе справочника статусов номеров.

Свойства

Наименование Доступ Тип данных Описание
Key public Integer Ключ записи. Аналог полю ID в таблице справочника HT_NumberStateDict
Name public String Наименование состояния. Аналог полю USR$NAME в таблице справочника HT_NumberStateDict
Color public Цвет для VBScript
FlashColor public Цвет для Flash (не используется)

Класс THLP_ChooseItems

Хелпер для выбора записей из таблицы.

Свойства

Наименование Доступ Тип данных Описание
FItems private Array Выбранные значения (записи)
Items public (property get) Array Возвращает выбранные записи
Items (ByVal Value) public (property let) Array Устанавливает значение FItems = Value
FCanCreate private Integer (0,1) Флаг, позволять ли создавать записи в таблицу на форме
CanCreate public (property get) Integer (0,1) Возвращает флаг создания записей
CanCreate(ByVal Value) public (property get) Integer (0,1) Устанавливает значение FCanCreate = Value
AllowNothingSelected public (property get) Integer (0,1) Возвращает флаг разрешения на отсутствие выбора
AllowNothingSelected(ByVal Value) public (property let) Integer (0,1) Устанавливает флаг FAllowNothingSelected = Value
SingleItem public (property get) Integer (0,1) Возвращает первое значение из массива выбранных (FItems(0))

Методы

Наименование Доступ Описание
ChooseSingle(ByVal FormCaption,

ByVal RelationName, ByVal KeyField, ByVal NameField, ByVal WhereClause)

public Открывает вспомогательную форму для выбора записей usrf_hlp_chooseitems по переданным настройкам. Возвращает True, если выбор на форме был подтвержден. Разрешает выбрать только одно значение
ChooseMulti (ByVal FormCaption,
ByVal RelationName, 

ByVal KeyField, ByVal NameField, ByVal WhereClause)

public Открывает вспомогательную форму для выбора записей usrf_hlp_chooseitems по переданным настройкам. Возвращает True, если выбор на форме был подтвержден. Разрешает выбрать множество значений
Class_Initialize private Инициализация свойств объектов
Class_Terminate private Завершение работы объекта

Класс THT_Const

Класс для доступа к некоторым константам приложения Санаторий.

Свойства

Наименование Доступ Тип данных Описание
FReservationNumberSeparator private string Разделитель номера бронирования (по умолчанию «/»)
ReservationNumberSeparator public (property get) string Возвращает разделитель номера
FSettleNumber private integer Размещение (не используется)
SettleNumber public (property get) integer Возвращает размещение
FSettlePlace private integer Не используется
SettlePlace public (property get) integer Не используется
FSRVFrequencySingle private integer Периодичность оказания услуг «Разово»
SRVFrequencySingle public (property get) integer Возвращает периодичность оказания услуг «Разово»
FSRVFrequencyDaily private integer Периодичность оказания услуг «Каждый день»
SRVFrequencyDaily public (property get) integer Возвращает периодичность оказания услуг «Каждый день»
FSRVFrequencyPerHour private integer Периодичность оказания услуг «Каждый час»
SRVFrequencyPerMinute public (property get) integer Возвращает периодичность оказания услуг «Каждый час»
FSRVFrequencyPerMinute private integer Периодичность оказания услуг «Каждую минуту»
SRVFrequencyPerHour public (property get) integer Возвращает периодичность оказания услуг «Каждую минуту»
FSRVFrequencyPerSecond private integer Периодичность оказания услуг «Каждую секунду»
SRVFrequencyPerSecond public (property get) integer Возвращает периодичность оказания услуг «Каждую секунду»
FReservationLogFields private Dictionary Поля для журналирования изменений в бронировании
ReservationLogFields public (property get) Dictionary Возвращает поля для журналирования

Методы

Наименование Доступ Описание
FillReservationLogFields private Заполнение словаря FReservationLogFields значениями Поле – Нарименование

Класс THT_Log

Класс для удобного логирования в журнал HT_LOG.

Методы

Наименование Доступ Описание
InternalAdd (ByVal InRecordKey,

ByVal InDescription,

ByVal LogType, 

ByVal InOwnerform)

private Внутренний для класса метод сохранения записи в таблицу HT_LOG.
Add (ByVal InRecordKey,

ByVal InDescription, ByVal InOwnerform)

public Добавляет запись в журнал
AddDetail(ByVal InRecordKey,

ByVal InDescription, ByVal InOwnerform)

public Добавить дочернюю запись в журнал. Используется в функции Ночной Аудит
AddSystem(ByVal InRecordKey,
ByVal InDescription, 

ByVal InOwnerform)

public Добавить запись в журнал. Чаще всего используется с кодом ошибки.

Класс THT_NumberStateHelper

Хелпер по работе с номерным фондом (состояния уборки номеров).

Свойства

Наименование Доступ Описание
FWorkTransaction private Разделитель номера бронирования


Методы

Наименование Доступ Описание
AddHKRepairState(ByVal InNumberKey,
ByVal InDocumentKey, 

ByVal InDateTimeBegin, ByVal InDateEnd, ByVal Description, ByVal InTr)

Public Добавление состояния ремонта номера
AddHKState(ByVal InNumberKey,
ByVal InNumberState, 

ByVal InDocumentKey,

ByVal InDateTime, 

ByRef InTr)

Public Добавление произвольного состояния номера
Internal_AddHKState(ByVal InNumberKey,

ByVal InDocumentKey, ByVal InStateKey, ByVal DateTimeBegin, ByVal DateEnd, ByVal Description, ByVal InTr)

Private Внутренняя процедура добавления состояния
AddHKState_OnExcept(ByRef Tr) Private Функция отката транзакции для функции Internal_AddHKState
GetHKState(ByVal InNumberKey) public Получить ID состояния номера по его ID
GetNumberUsedBy(ByVal InNumberKey,

ByVal InDateBegin, ByVal InDateEnd)

public Используется ли переданный номер в переданном периоде. На номер может быть бронь или он может быть заселен, тогда метод вернет ID брони. Если метод вернет -1, значит на этот номер можно делать новую бронь
Class_Initialize Private Инициализация транзакции, используемой в объекте
Class_Terminate Private Удаление объекта транзакции, созданной для обекта

Класс THT_Options

Глобальные настройки Санатория, задаваемые на форме Настроек в Форме Менеджера.

Свойства

Наименование Доступ Предполагаемый тип данных Описание
STORAGE_PATH private string Ветка в хранилище для хранения глобальных настроек приложения (по умолчанию "Options\Sanatorium")
FInstitution private integer Ведомство
Institution public (property get) integer Свойство, возвращающее Ведомство
FProcFolder private integer Папка для медицинских процедур
ProcFolder public (property get) integer Свойство, возвращающее папку для медицинских процедур
FDoctorsUserGroup private integer Группа пользователей лечащих врачей
DoctorsUserGroup public (property get) integer Свойство, возвращающее группу пользователей лечащих врачей
FDefaultTime private date Время заселения по умолчанию
DefaultTime public (property get) date Свойство, возвращающее время заселения по умолчанию
FDepartureTime private date Время выселения по умолчанию
DepartureTime public (property get) date Свойство, возвращающее время выселения по умолчанию
FWarnLogicDateNotDate private integer Предупреждать о несовпадении реальной и логической даты
WarnLogicDateNotDate public (property get) integer Свойство, возвращающее признак предупреждать ли о несовпадении реальной и логической даты
FReservationNumberMask private integer Маска номера нового бронирования
ReservationNumberMask public (property get) integer Свойство, возвращающее маску номера нового бронирования
FRoundBYRToValue private currency Округление в НДЕ
RoundBYRToValue public (property get) currency Свойство, возвращающее округление в НДЕ
FRoundUSDToValue private currency Округление в USD
RoundUSDToValue public (property get) currency Свойство, возвращающее округление в USD
FRoundEURToValue private currency Округление в EUR
RoundEURToValue public (property get) currency Свойство, возвращающее округление в EUR
FRoundRURToValue private currency Округление в RUR
RoundRURToValue public (property get) currency Свойство, возвращающее округление в RUR
FResidenceServiceKey private integer Ключ услуги проживания
ResidenceServiceKey public (property get) integer Свойство, возвращающее ключ услуги проживания
FAddResidenceServiceKey private integer Ключ услуги дополнительного проживания
AddResidenceServiceKey public (property get) integer Свойство, возвращающее ключ услуги дополнительного проживания
FAddPlaceServiceKey private integer Ключ услуги «дополнительное место»
AddPlaceServiceKey public (property get) integer Свойство, возвращающее ключ услуги «дополнительное место»
FBreakfastServiceKey private integer Ключ услуги «Завтрак»
BreakfastServiceKey public (property get) integer Свойство, возвращающее ключ услуги «Завтрак»
FPhoneCallServiceKey private integer Ключ услуги звонков
PhoneCallServiceKey public (property get) integer Свойство, возвращающее ключ услуги звонков
FPermitServiceKey private integer Ключ услуги «Путевка»
PermitServiceKey public (property get) integer Свойство, возвращающее ключ услуги «Путевка»
FPermitAddPlaceServiceKey private integer Ключ услуги «Путевка (доп. место)»
PermitAddPlaceServiceKey public (property get) integer Свойство, возвращающее ключ услуги «Путевка (доп. место)»
FTeleProviderDataFolderPath private string Путь к папке с данными от телефонной компании
TeleProviderDataFolderPath public (property get) string Свойство, возвращающее путь к папке с данными от телефонной компании
FTeleProviderDataFileMask private string Маска для поиска файлов от телефонной компании
TeleProviderDataFileMask public (property get) string Свойство, возвращающее маску для поиска файлов от телефонной компании
FTeleInternalDataFolderPath private string Путь к папке с данным от внутренней системы учета звонков
TeleInternalDataFolderPath public (property get) string Свойство, возвращающее путь к папке с данным от внутренней системы учета звонков
FTeleInternalDataFileMask private string Маска для поиска файлов с данными от внутренней системы учета звонков
TeleInternalDataFileMask public (property get) string Свойство, возвращающее маску для поиска файлов с данными от внутренней системы учета звонков
FRestFrontConnection private string Строка подключения к БД кассовой системы
RestFrontConnection public (property get) string Свойство, возвращающее строку подключения к БД кассовой системы
FRestFrontUser private string IB пользователь
RestFrontUser public (property get) string Свойство, возвращающее IB пользователя
FRestFrontPassword private string IB пароль
FRestFrontPassword public (property get) string Свойство, возвращающее IB пароль
FPermitLastNumber private string Текущий номер путевки
PermitLastNumber public (property get) string Свойство, возвращающее текущий номер путевки
FPermitNumberInc private string Прирост для номера путевки
PermitNumberInc public (property get) string Свойство, возвращающее прирост для номера путевки
FPermitCheckNumber private string Признак как контролировать номер путевки (0 - не контролировать уникальность, 1 - уникальный для всех путевок, 2 - уникальный в пределах года, 3 - уникальный в пределах месяца)
PermitCheckNumber public (property get) string Свойство, возвращающее признак как контролировать номер путевки
FReservationLastNumber private string Текущий номер для бронирования
ReservationLastNumber public (property get) string Свойство, возвращающее текущий номер для бронирования
FReservationNumberInc private string Прирост для номера бронирования
ReservationNumberInc public (property get) string Свойство, возвращающее прирост для номера бронирования
FReservationCheckNumber private string Признак как контролировать номер бронирования (0 - не контролировать уникальность, 1 - уникальный для всех путевок, 2 - уникальный в пределах года, 3 - уникальный в пределах месяца)
ReservationCheckNumber public (property get) string Свойство, возвращающее признак как контролировать номер бронирования
FCurrentUserRights private string Права доступа текущего пользователя системы
CurrentUserRights public (property get) string Свойство, возвращающее права доступа текущего пользователя системы
FStatNumberAvailDayCount private integer Количество дней для отображения в наличии номеров
CurrentUserRights public (property get) integer Свойство, возвращающее количество дней для отображения в наличии номеров

Методы

Наименование Доступ Описание
ShowOptions Public Отобразить окно настроек
TestCorrect (ByVal AForm) Public Проверка правильности введенных на форме значений
LoadOptionsToForm(ByVal AForm) Private Заполнить форму настроек текущими значениями
SaveOptionsFromForm(ByVal AForm) private Считать из формы настроек измененные значения
LoadUserRightsToForm(ByVal AForm) Private Загрузить права пользователей в форму
SaveUserRightsFromForm(ByVal AForm) private Сохранить настройки прав пользователей из формы
LoadFromStorage Private Загрузить настройки из хранилища
SaveToStorage private Сохранить настройки в хранилище
RefreshDependentVars Private Обновить переменные, зависимые от настроек
Class_Initialize private Инициализация объекта: значение STORAGE_PATH, считывание данных из хранилища

Класс THT_ReservationLog

Логирование действий, произведенных над путевкой/бронированием.

Методы

Наименование Доступ Описание
InternalAdd(ByVal InDocumentKey,
ByVal InDescription,

ByVal InStateKey, ByVal InCancelReasonKey, ByVal InActionType)

Private Внутренний для класса метод создания записи в журнале бронирования (HT_RES_LOG)
Add(ByVal InDocumentKey,

ByVal InDescription, ByVal InStateKey)

Public Добавить запись в журнал
AddTyped(ByVal InDocumentKey,

ByVal InDescription, ByVal InStateKey, ByVal InActionType)

Public Добавить типизированную запись в журнал. В качестве типа может выступать одно из значений: проживание продлено, проживание сокращено
AddWithCancelReason(ByVal InDocumentKey,

ByVal InDescription, ByVal InStateKey, ByVal InCancelReasonKey)

Public Добавить запись в журнал с указанием ссылки на причину отмены создания путевки

Класс THT_ReservationStateDict

Справочник состояний путевки/бронирования HT_RES_STATEDICT.

Свойства

Наименование Доступ Тип данных Описание
FDictionary Private Dictionary Словарь всех значений из справочника, где Key – ID записи из справочника, Item – объект класса Класс THT_ReservationState


Методы

Наименование Доступ Описание
GetNewState Public Новая путевка
GetArrivalWaitState Public Ожидание заезда
GetEvictedState Public Выселено
GetSettledState Public Заселено
GetCanceledState Public Отменено
GetNotSavedState Public Не сохранено
GetBookedState Public Забронировано
GetDepartureWaitState Public На выезд
GetPermitBookingState Public Бронирование путевки
GetSettleStateList Public Получить список ключей состояния проживания
GetNumberInUseStateList Public Получить список ключей состояний, в которых номер считается используемым
GetByKey(ByVal InKey) Public Получить объект состояния номера по ключу
Count Public Количество состояний номеров в списке
GetItemArray Public Получить массив объектов из списка
Refresh Public Обновить данные в кэше


Класс THT_ReservationState

Состояние номера. Структура класса соответствует структуре справочника HT_RES_STATEDICT. Используется в классе справочника статусов путевок/бронирований (Класс THT_ReservationStateDict)

Свойства

Наименование Доступ Тип данных Описание
Key Public integer Ключ записи. Аналог полю ID в таблице справочника HT_RES_STATEDICT
Name Public string Наименование состояния. Аналог полю USR$NAME в таблице справочника HT_RES_STATEDICT
SettleType Public string Тип один из: "before", "settle", "after", "cancel", в соответствии со статусом путевки/бронирования.

Класс THT_RightsHelper

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

Методы

Наименование Доступ Описание
CanExecuteAction (ByVal ActionID) Public Разрешено ли выполнять действие. ActionID – константа на определенное действие. Проверка осуществляется, если текущий пользователь НЕ администратор

Класс THT_Variables

Переменные приложения Санаторий

Свойства

Наименование Доступ Тип данных Описание
STORAGE_PATH private string Ветка в хранилище для хранения переменных (по умолчанию «Options\Sanatorium»)
FIBSQLReservationNumber private Объект TIBSQL Запрос на получение нового номера бронирования
FIBSQLPermitNumber private Объект TIBSQL Запрос на получение нового номера путевки
FLogicDate private Date Логическая дата
LogicDate public (property get) Date Свойство, возвращающее логическую дату
LogicDate(ByVal Value) public (property let) Date Свойство, устанавливающее логическую дату
FLastNightAuditDate private Date Дата проведения последнего ночного аудита
LastNightAuditDate public (property get) Date Возвращает дату последнего ночного аудита
LastNightAuditDate(ByVal Value) public (property let) Date Устанавливает дату последнего ночного аудита

Методы

Наименование Доступ Описание
WriteParamToDB (ByVal ParamName,

ByVal ParamValue)

private Запись параметров в БД
GetNextReservationNumber Public Получить новый номер бронирования
GetNextPermitNumber Public Получить новый номер путевки
Refresh Public Загрузка данных
Class_Initialize private Инициализация объекта, загрузка данных из хранилища
Class_Terminate private Удаление объектов запросов, используемых в классе

Класс TMath

Общие математически действия

Свойства

Наименование Доступ Тип данных Описание
FRACTION private decimal Вспомогательное значение (очень маленькое) для корректного округления. Например, 0,5 должно быть 1, а не 0.


Методы

Наименование Доступ Описание
FRACTION private decimal Вспомогательное значение (очень маленькое) для корректного округления. Например, 0,5 должно быть 1, а не 0.
RoundToDecimal

(ByVal AValue, ByVal AToDecimal)

public decimal Округлить AValue до AToDecimal знака после запятой
RoundToValue

(ByVal AValue, ByVal AToValue)

public decimal Округлить AValue до значения AToValue
Ceil

(ByVal AValue)

public decimal Округлить AValue до целого вверх
Floor

(ByVal AValue)

public decimal Округлить AValue до целого вниз
Max

(ByVal AFirst, ByVal ASecond)

public decimal Максимальное число из двух
Min

(ByVal AFirst, ByVal ASecond)

public decimal Минимальное число из двух
Class_Initialize private Инициализация FRACTION

Приложение 4: Хранимые процедуры

Наименование Входные данные Выходные данные Описание ПИ
HT_P_GET_HKSTATE FORDATE – состояние на дату,

ROOMKEY – ID номера

STATEKEY – ID состояния Состояние номера (чистый, грязный и т.д.) на дату GS.Санаторий.П.Документы
HT_P_GET_HKSTATELIST FORDATE – состояние на дату ROOMKEY – ID номера,

STATEKEY – ID состояния

Список всех номеров и их состояний на дату GS.Санаторий.П.Документы
HT_P_GET_LOGIC_POSTINGSUM RESERVATIONKEY – ID Путевки,

DATEBEGIN – дата начала периода, DATEEND – дата окончания периода

POSTSUMNCU – начисления,

PAYSUMNCU – оплата

Начисления и оплаты по бронированию (для Гостиницы, в Санатории пока не используется) GS.Санаторий.П.Документы
HT_P_GET_NUMBERS Нет NUMBERKEY – ID комнаты,

NUMBERNAME – наименование комнаты

Список не виртуальных номеров GS.Санаторий.Номерной фонд
SAN_P_FULLAGE BDAY – дата рождения,

ONDATE – на дату

FULLYEARAGE – число лет Возвращает число полных лет человека на дату GS.Санаторий.Общее.Метаданные
SAN_P_GETACTUALPROCWORKSCHE FORDATE – на дату,

APPKEY – ID процедурного аппарата

SCHEDULEKEY – ID графика Актуальный график работы процедурного аппарата GS.Санаторий.МУ.ПА.Документы
SAN_P_GETDEPARTMENTPATH ID – ID подразделения,

NOTSHOWNKEY – отображать ли само это подразделение

PATH – путь к подразделению Полный путь к подразделению по дереву справочника (разделитель «-->») GS.Санаторий.Общее.Метаданные
SAN_P_GETLASTVISITDATE CONTACTKEY – ID человека, CANCELSTATEKEY – ID статуса «Отменено» путевки,

FORDATE – на дату

LASTVISITDATE – дата последнего посещения Дата последнего посещения санатория (учитывается соответствующая дата из карточки гостя и все неотмененные путевки человека) GS.Санаторий.П.Документы
SAN_P_GETMINDATEDRAPP FREESTATEKEY – ID состояния «Свободно» места в столовой,

DOCUMENTKEY – ID документа путевки

MINDATE – минимальная дата назначения места в столовой Самая ранняя дата назначения места в столовой GS.Санаторий.СП.Документы
SAN_P_GETPREVIOUSLOGON_ALL нет PREVIOUSDATE – дата и время входа в систему,

CONTACTKEY – ID контакта

Дата и время последнего входа в систему пользователей, которых отслеживаем в системе по этой теме (тема – вход в систему Log on) GS.Санаторий.Общее.Метаданные
SAN_P_GETWORKINTERVALS SCHEDULEKEY – ID графика работы проц. аппарата,

THEDAY – дата

TBEGIN – время начала периода,
TEND – время окончания периода
Рабочие интервалы из графика работы процедурных аппаратов GS.Санаторий.МУ.ПА.Документы
SAN_P_LASTPERMITCHANGES USR$PERMITKEY – ID путевки,

FORDATE – дата, на которую определяются последние изменения

Данные после изменений:

USR$DATEBEGIN – дата заезда, USR$DATEEND – дата выезда, USR$CHANGESBEGINDATE – дата начала действия изменений, USR$CHANGESENDDATE – дата окончания действия измеенний, USR$CLIENTCATEGORYKEY – категория гостя (не используется), USR$NUMBERTYPEKEY – тип номера, USR$ISADDITIONALPLACE – дополнит. ли место, CHANGESKEY – ID записи об изменениях, USR$ISPARTIALEVICTION – частичное ли выселение

Последние изменения путевки.

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

GS.Санаторий.П.Документы
SAN_P_PERMITDAYCOUNTPERIOD BCHECKPERIOD – начало периода для проверки,

ECHECKPERIOD – окончание периода для проверки, BPERIOD – начало периода, в котором проверяем, EPERIOD – окончание периода, в котором проверяем

ALLDAYCOUNT – всего дней заезда,

PERIODDAYCOUNT – дни заезда в периоде, BEFOREPERIODDAYCOUNT – дни заезда до периода, AFTERPERIODDAYCOUNT – дни заезда после периода

Разбивает нужные даты (чаще всего это даты заезда путевки) в контексте интересующего периода:
  • количество дней заезда (ДЗ) общее
  • количество ДЗ внутри периода
  • количество ДЗ до периода
  • количество ДЗ после периода
GS.Санаторий.Общее.Метаданные
SAN_P_PROCCHECKERBOARD DATEBEGIN – дата начала периода для расчетов,

DATEEND – дата окончания периода для расчетов, SERVICEKEY – ID текущей процедуры, CURMEDHIST – ID документа Истории Болезни

APPKEY – ID процедурного аппарата,

APPNAME – наименование процедурного аппарата, COLDATE – дата (одна из дат периода), COLTIME – время, COMMENT – пояснения к определенному времени, COLOR – цифра, обозначающая тип информации, DOCLINEKEY – ID документа назначения процедуры

Набор всей информации для таблицы-шахматки назначения медицинских процедур.

Возможные значения COLOR и COMMENT: 1 – нерабочее время аппарата по графику 2 – на данное время назначен другой пациент 3 – у текущего пациента назначена другая процедура 7 – если это вариант 3 и эта назначенная процедура = входящей SERVICEKEY 4 – если у текущего пациента уже назначена ДО этого времени процедура, несовместимая с текущей 5 - если у текущего пациента уже назначена ПОСЛЕ этого времени процедура, несовместимая с текущей 6 – нет ответственного за аппарат

GS.Санаторий.МУ.Санаторная книжка
SAN_P_GETALLPERMITINTERVALS DOCKEY - ID документа путевки DOCUMENTKEY - ID документа (путевки или изменения),

ISPERMITDOC - является ли этот интервал по исходной путевке, CREATIONDATE - дата создания путевки или изменения, DATEBEGIN - дата начала интервала, DATEEND - дата окончания интервала, NUMBERTYPEKEY - тип номера, ISADDITIONALPLACE - является ли место дополнительным, ISPARTIALEVICT - является ли интервал частичным выселением, ISTRANSFER - является ли интервал переносом проживания

Возвращает перечень всех временных интервалов с данными об условиях проживания в их границах GS.Санаторий.П.Документы
SAN_P_GETACTUALPERMITPRICE DOCUMENTKEY - ID документа путевки,

FORDATE - дата, до которой учитывать изменения (если NULL - взять все изменения)

THEDAY - дата,

PRICE - стоимость проживания на день THEDAY

Возвращает перечень всех временных интервалов с данными об условиях проживания в их границах GS.Санаторий.П.Документы
Персональные инструменты
Пространства имён

Варианты
Действия
Навигация
Инструменты