tds
tds - сервис распространения ШМД и визуализаторов для 1С:Медицина
Сервис распространения шаблонов медицинских документов (ШМД) для 1С:Медицина служит для централизованного хранения ШМД и XSL визуализаторов. Сервис может использоваться в региональных проектах, когда ведется внедрение 1С:Медицина в нескольких медицинских организациях. Обслуживающая организация может публиковать ШМД и XSL визуализаторы в сервисе, а ИТ службы медицинских организаций могут получать ШМД и XSL визуализаторы из централизованного сервиса, установленного в защищенной сети региональной системы здравоохранения.
ШМД хранятся в сервисе в привязке к версии и наименовании конфигурации. Версия конфигурации берется без учета номера сборки (последнее число версии).
XSL визуализаторы хранятся в сервисе в привязке в идентификатору ШМД или к типу РЭМД.
Описание структуры проекта
init.py - создание SQLite базы
База создается в папке, заданной в переменной
файла
. Для получения доступа из веб сервера к базе необходимо задать переменные
и
в файле
значениями, которые использует веб сервер. Папке, указанной в
необходимо установить владельца и группу теми же значениями,
которые использует веб сервер.
В этой же папке, указанной в переменной
, будут размещаться сохраненные ШМД. Рекомендуется эту папку размещать на томе с файловой системой
, поскольку на практике могут встречаться ШМД, имена которых состоят из 128 кириллических букв и более, которые в кодировке
требуют 256 байт и более, а имена файлов в файловой системе
, стандартной для операционной системы linux, не могут превышать 255 байт.
prefs.py - настройки сервиса
В переменной CONFIGS задаются имена конфигурации и их актуальные версиии. Версия указывается с точностью до 3-го числа, то есть номер сборки игнорируется.
Переменные:
- выполнять проверку логину на ИТС. Для локальных публикаций рекомендуется отключать.CHECK_ITS_USER
- только указанные в списке ИТС Логины смогут публиковать на сервере публикаций ШМД.VALID_ITS_USERS
- токен пользователя сайта nsi.rosminzdrav.ru. Использутеся для получения справочников "Типы МД" и "Типы РЭМД" с ФНСИ. Допускается пустое значение. См. https://its.1c.ru/db/instrpoly3#content:1040:1:issogl1_16.7.1_взаимодействие_с_фнсиFNSI_userkey
После внесения изменений в файл может потребоваться перезапуск веб сервера, чтобы настройки применились.
tds.wsgi - основной скрипт
В скрипте реализованы следующие методы сервиса
/CVS/Hello/{ТикетИТС}
Авторизация в сервисе. В случае когда
, то выполняется проверка тикета на login.1c.ru. Это позволяет ограничить доступ к сервису для пользователей,
которые не имеют действующией подписки на ИТС.
Если
, то тогда параметр ТикетИТС интерпретируется как имя пользователя сервиса (см. список
).
Метод возвращает УидСессии.
/CVS/MDT/{УидСессии}/{ИмяМетода}
Выполнение действий с базой ШМД. Операции:
- получение ШМДGetFile
- добавляет ШМД в базу сервиса. Пользователь, определенный для сессии вUploadFile
, должен присутствовать в списке/CVS/Hello
.VALID_ITS_USERS
- удаляет ШМД из базы сервиса. Пользователь, определенный для сессии вDeleteFile
, должен присутствовать в списке/CVS/Hello
.VALID_ITS_USERS
- возращает список ШМД, загруженных в сервисGetList
- получение XSL визуализатора и его свойствGetXSLFile
- добавляет XSL визуализатор в базу сервиса. Пользователь, определенный для сессии вUploadXSLFile
, должен присутствовать в списке/CVS/Hello
.VALID_ITS_USERS
- удаляет XSL визуализатор из базы сервиса. Пользователь, определенный для сессии вDeleteXSLFile
, должен присутствовать в списке/CVS/Hello
.VALID_ITS_USERS
- возращает список XSL визуализатор, загруженных в сервис Параметр УидСессии должен содержать сведения об актуальной сессии.GetXSLList
/getTemplatesList
Возвращает html со списком ШМД, загруженных в сервис распространения ШМД, для акутальной версии 1С:Медицина. Больница. Для корректной работы метода необходимо задать корректное значение переменной
.
/getFullTemplatesList
Возвращает html с полным списком ШМД, загруженных в сервис распространения ШМД.
Установка
- Подключить модуль
из пакетаmod_wsgilibapache2-mod-wsgi-py3 - Скопировать файлы
,tds.wsgi
,prefs.py
в папкуinit.py/var/www/wsgi/tds - Внести настройки экземпляра сервиса в prefs.py
- Запустить init.py
- Зарегистрировать приложение WSGI в конфигурации apache2
WSGIScriptAlias /wsgi/tds /var/www/wsgi/tds/tds.wsgi
- Для доступа к https://nsi.rosminzdrav.ru/ необходимо установить сертификаты russian_trusted_root_ca.cer и russian_trusted_sub_ca.cer по инструкции операционной системы.
Если вы получаете ошибку UnicodeEncodeError при открытии или записи файлов с кириллицей в именах файлов, убедитесь, что Apache настроен на поддержку кодировки UTF-8:
export LANG='en_US.UTF-8'
export LC_ALL='en_US.UTF-8'
Обычным местом для размещения этих настроек является /etc/apache2/envvars.