tds
Описание
Сервис распространения ШМД для 1С:Медицина
Языки
- Python97%
- CSS3%
tds - сервис распространения ШМД и визуализаторов для 1С:Медицина
Сервис распространения шаблонов медицинских документов (ШМД) для 1С:Медицина служит для централизованного хранения ШМД и XSL визуализаторов. Сервис может использоваться в региональных проектах, когда ведется внедрение 1С:Медицина в нескольких медицинских организациях. Обслуживающая организация может публиковать ШМД и XSL визуализаторы в сервисе, а ИТ службы медицинских организаций могут получать ШМД и XSL визуализаторы из централизованного сервиса, установленного в защищенной сети региональной системы здравоохранения.
ШМД хранятся в сервисе в привязке к версии и наименовании конфигурации. Версия конфигурации берется без учета номера сборки (последнее число версии).
XSL визуализаторы хранятся в сервисе в привязке в идентификатору ШМД или к типу РЭМД.
Описание структуры проекта
Проект предназначен для использования с Python 3.12+.
init.py - создание SQLite базы
База создается в папке, заданной в переменной файла . Для получения доступа из веб сервера к базе необходимо задать переменные и в файле значениями, которые использует веб сервер. Папке, указанной в необходимо установить владельца и группу теми же значениями,
которые использует веб сервер.
В этой же папке, указанной в переменной , будут размещаться сохраненные ШМД. Рекомендуется эту папку размещать на томе с файловой системой , поскольку на практике могут встречаться ШМД, имена которых состоят из 128 кириллических букв и более, которые в кодировке требуют 256 байт и более, а имена файлов в файловой системе , стандартной для операционной системы linux, не могут превышать 255 байт.
prefs.py - настройки сервиса
В переменной CONFIGS задаются имена конфигурации и их актуальные версиии. Версия указывается с точностью до 3-го числа, то есть номер сборки игнорируется.
Переменные:
- CHECK_ITS_USER - выполнять проверку логину на ИТС. Для локальных публикаций рекомендуется отключать.
- VALID_ITS_USERS - только указанные в списке ИТС Логины смогут публиковать на сервере публикаций ШМД.
- FNSI_userkey - токен пользователя сайта nsi.rosminzdrav.ru. Использутеся для получения справочников "Типы МД" и "Типы РЭМД" с ФНСИ. Допускается пустое значение. См. https://its.1c.ru/db/instrpoly3#content:1040:1:issogl1_16.7.1_взаимодействие_с_фнси
После внесения изменений в файл может потребоваться перезапуск веб сервера, чтобы настройки применились.
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
-
Для доступа к https://nsi.rosminzdrav.ru/ необходимо установить сертификаты russian_trusted_root_ca.cer и russian_trusted_sub_ca.cer по инструкции операционной системы.
Если вы получаете ошибку UnicodeEncodeError при открытии или записи файлов с кириллицей в именах файлов, убедитесь, что Apache настроен на поддержку кодировки UTF-8:
Обычным местом для размещения этих настроек является /etc/apache2/envvars.