Сделаем платформу лучше — пройди опрос GitVerse

tds

Форк
0

README.md

tds - сервис распространения ШМД и визуализаторов для 1С:Медицина

Сервис распространения шаблонов медицинских документов (ШМД) для 1С:Медицина служит для централизованного хранения ШМД и XSL визуализаторов. Сервис может использоваться в региональных проектах, когда ведется внедрение 1С:Медицина в нескольких медицинских организациях. Обслуживающая организация может публиковать ШМД и XSL визуализаторы в сервисе, а ИТ службы медицинских организаций могут получать ШМД и XSL визуализаторы из централизованного сервиса, установленного в защищенной сети региональной системы здравоохранения.

ШМД хранятся в сервисе в привязке к версии и наименовании конфигурации. Версия конфигурации берется без учета номера сборки (последнее число версии).

XSL визуализаторы хранятся в сервисе в привязке в идентификатору ШМД или к типу РЭМД.

Описание структуры проекта

init.py - создание SQLite базы

База создается в папке, заданной в переменной

DATA_PATH
файла
prefs.py
. Для получения доступа из веб сервера к базе необходимо задать переменные
APACHE_USER
и
APACHE_GROUP
в файле
prefs.py
значениями, которые использует веб сервер. Папке, указанной в
DATA_PATH
необходимо установить владельца и группу теми же значениями, которые использует веб сервер.

В этой же папке, указанной в переменной

DATA_PATH
, будут размещаться сохраненные ШМД. Рекомендуется эту папку размещать на томе с файловой системой
ntfs
, поскольку на практике могут встречаться ШМД, имена которых состоят из 128 кириллических букв и более, которые в кодировке
UTF-8
требуют 256 байт и более, а имена файлов в файловой системе
ext4
, стандартной для операционной системы 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/{ТикетИТС}

Авторизация в сервисе. В случае когда

CHECK_ITS_USER=True
, то выполняется проверка тикета на login.1c.ru. Это позволяет ограничить доступ к сервису для пользователей, которые не имеют действующией подписки на ИТС.

Если

CHECK_ITS_USER=False
, то тогда параметр ТикетИТС интерпретируется как имя пользователя сервиса (см. список
VALID_ITS_USERS
).

Метод возвращает УидСессии.

/CVS/MDT/{УидСессии}/{ИмяМетода}

Выполнение действий с базой ШМД. Операции:

  • GetFile
    - получение ШМД
  • UploadFile
    - добавляет ШМД в базу сервиса. Пользователь, определенный для сессии в
    /CVS/Hello
    , должен присутствовать в списке
    VALID_ITS_USERS
    .
  • DeleteFile
    - удаляет ШМД из базы сервиса. Пользователь, определенный для сессии в
    /CVS/Hello
    , должен присутствовать в списке
    VALID_ITS_USERS
    .
  • GetList
    - возращает список ШМД, загруженных в сервис
  • GetXSLFile
    - получение XSL визуализатора и его свойств
  • UploadXSLFile
    - добавляет XSL визуализатор в базу сервиса. Пользователь, определенный для сессии в
    /CVS/Hello
    , должен присутствовать в списке
    VALID_ITS_USERS
    .
  • DeleteXSLFile
    - удаляет XSL визуализатор из базы сервиса. Пользователь, определенный для сессии в
    /CVS/Hello
    , должен присутствовать в списке
    VALID_ITS_USERS
    .
  • GetXSLList
    - возращает список XSL визуализатор, загруженных в сервис Параметр УидСессии должен содержать сведения об актуальной сессии.

/getTemplatesList

Возвращает html со списком ШМД, загруженных в сервис распространения ШМД, для акутальной версии 1С:Медицина. Больница. Для корректной работы метода необходимо задать корректное значение переменной

FNSI_userkey
.

/getFullTemplatesList

Возвращает html с полным списком ШМД, загруженных в сервис распространения ШМД.

Установка

  1. Подключить модуль
    mod_wsgi
    из пакета
    libapache2-mod-wsgi-py3
  2. Скопировать файлы
    tds.wsgi
    ,
    prefs.py
    ,
    init.py
    в папку
    /var/www/wsgi/tds
  3. Внести настройки экземпляра сервиса в
    prefs.py
  4. Запустить
    init.py
  5. Зарегистрировать приложение WSGI в конфигурации apache2
WSGIScriptAlias /wsgi/tds /var/www/wsgi/tds/tds.wsgi
  1. Для доступа к 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.

Описание

Сервис распространения ШМД для 1С:Медицина

Языки

Python

Сообщить о нарушении

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.