You are here: Foswiki>Gnumed Web>GmManualXmlRpcApiRu (15 Mar 2013, IvanLykov)EditAttach

Удаленное управление клиентом GNUmed, aka режим slave

Функции клиента в API XML-RPC GNUmed допускают другое программное обеспечение для подключения к запущенному клиенту и указывают ему выполнение определенных задач. Это называется защищенный режим (slave). Одно из преимуществ перед запуском клиента GNUmed по запросу является то, что запуск и проверку подлинности нужно делать только один раз.

Многие устаревшие приложения сторонних производителей будут недоступны в исходном коде и, таким образом, будет невозможно получить возможность напрямую использовать API XML-RPC. Для таких случаев также имеется помощник gm_ctl_client.py, который соответствует API XML-RPC для комбинации параметров командной строки и параметров файла конфигурации. Так как он написан тоже на Python, то легко расширяем. Таким образом, любое приложение, которое может вызывать другие приложения, можно отсортировать удаленным управлением GNUmed.

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

Системная настройка GNUmed

Клиент

Настройка

Предположим, что нужно, чтобы GNUmed отображал список документов для любого отдельного пациента. Поэтому, мы даем этому клиенту персональный doc-viewer.

В файле конфигурации (из --conf-file, или ~/.gnumed/gnumed.conf, или ./gnumed.conf) необходимо задать следующие параметры:

  • slave personality = doc-viewer
  • xml-rpc port = 9999
    • этот по умолчанию, даже если этот параметр не установлен
    • можно использовать любой другой свободный порт, целесообразен вышеуказанный 1024

Запуск

В окне системного входа можно активировать/деактивировать защищенный режим через флажок. Для регулярного использования рекомендуется настроить сценарий shell или пакетный файл, который вызывает gnumed.py с параметром --slave, который предусматривается соответствующим флажком.

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

Если GNUmed должен быть отключен для освобождения порта, он прослушивает (из-за сбоя), какой порт остается открытым (блокированным) за короткий промежуток времени (зависит от параметра времени ожидания в подсистеме сокетов TCP/IP ядра операционной системы). Либо переподключите через короткое время, или настройте GNUmed на другой порт для прослушивания.

Контроллер

Вспомогательный сценарий gm_ctl_client.py предоставляет интерфейс командной строки в сочетании с некоторыми параметрами файла конфигурации, позволяющий контролировать экземпляр клиента GNUmed.

Конфигурационный файл передается через параметр командной строки --conf-file, который далее описан здесь. Необходимо настроить следующим образом:
[GNUmed instance]

# same port as in gnumed.conf (see above)
port = 9999

# see gnumed.conf
personality = doc-viewer

следующая команда используется для запуска клиента GNUmed, если ни один не работает, можете написать сценарий shell или пакетный файл для упрощения этого параметра, в Debian GNU/Linux можно просто свалить "gnumed --slave", в других случаях можно запустить с любой командой, обычно запускающей GNUmed, но приложить "--slave" startup command = <вставьте здесь одной строкой для запуска клиента gnumed>
[script]
# show the documents plugin
target plugin = gmShowMedDocs

если нужно расширить gm_ctl_client.py, посмотрите здесь для поиска, что можно сделать для подключения XML-RPC.

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

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

По существу, ваше приложение должно:

  • экспортировать текущего пациента в формате xDT
  • вызвать gm_ctl_client.py --conf-file=control-gnumed.conf

Который должен быть!
Topic revision: 15 Mar 2013, IvanLykov
 
Download.png
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback
Powered by Olark