Формат оповещений MQTT — различия между версиями

Материал из ИбисоПедии
Перейти к: навигация, поиск
(Формат файлов обновлений)
(Ремарка)
 
(не показано 14 промежуточных версий этого же участника)
Строка 1: Строка 1:
 
== Госпитализация пациентов ==
 
== Госпитализация пациентов ==
 +
 
Атрибут для подписки на топик: '''[Subscription('kis/lists/hospitalized')]'''
 
Атрибут для подписки на топик: '''[Subscription('kis/lists/hospitalized')]'''
Списки подписанные на топик: '''TfmHospitalizedList''', '''TfmHospitalizedDoctor''', '''TfmHospListNurse'''
 
 
== Папка DB ==
 
 
Содержит файлы с раcширением sql
 
 
== Папка Files ==
 
 
=== файл ver.ini внутри папки files ===
 
может содержать версии файлов в формате <относительный путь>\<имяфайла>=<версия>. Например:
 
 
<pre>
 
tst\1.txt=1.0.0.2
 
Localization.lng=1.0.0.4
 
</pre>
 
 
 
 
== Имя архива ==
 
 
<pre>
 
  yyyy-mm-dd-<#><Инициалы разработчика>-<Порядковый номер>-<критичность>
 
</pre>
 
  
Инициалы разработчика - из трех букв латиницей
+
Списки подписанные на топик:
 +
* '''TfmHospitalizedList''',
 +
* '''TfmHospitalizedDoctor''',
 +
* '''TfmHospListNurse'''
  
  
Критичность
+
=== Формат JSON ===
* ! - может потребоваться остановка
 
* w - длительные операции ()
 
* L - возможны блокировки, требуется выполнять в момент наименьшей нагрузки БД
 
  
Пример
+
{
 +
  "mdoc_id": "b32ba1ac-327a-11e8-a4b6-0800274e4bfc",
 +
  "subject_id": "8334f4ef-7a21-42ef-8205-7fefb4fdaa17",
 +
  "depts": [{
 +
            "id": "04847bbf-d4fe-11e7-a081-0800278f9392",
 +
            "action": 1
 +
            },
 +
            {
 +
            "id": "e5e17e92-eeab-4adb-b768-d3fe327c8f3f",
 +
            "action": 2
 +
            }
 +
          ]
 +
}
  
<pre>
+
* uid медицинского документа
2018-03-01#zh-01.7z
+
* uid пациента по базе (должен совпадать со значением идентифицирующего столбца грида)
2018-03-01#zh-04-!.7z
+
* набор затронуты текущим изменением отделений:
</pre>
+
** uid отделения
 +
** действие со списком:
 +
*** 1 - удалить запись
 +
*** 2 - добавить запись
 +
*** 3 - обновить данные существующей записи
  
=== Накопительное обновление ===
 
  
<pre>
+
=== Код для вставки в хранимую процедуру ===
yyyy-mm-dd-<+month>-<критичность>
 
yyyy-mm-dd-<+day>-<критичность>
 
</pre>
 
  
== Место ==
+
perform pg_notify('mqtt',
 +
                  json_build_object('topic','kis/lists/hospitalized',
 +
                                    'payload',json_build_object('mdoc_id', <mdoc_id>,
 +
                                                                'subject_id', <subject_id>,
 +
                                                                'depts', json_build_array(json_build_object('id',<dept_id>,
 +
                                                                                                            'action',<action>))))::text);
  
\\nas.oblteh\Public\Kis\Updates\2018
+
=== Ремарка ===
  
 +
Для списков не требующих пост-фильтрации на стороне клиента (общий список госпитализированных) массив отделение может быть пустым.
  
[[Категория:KIS]]
+
[[Категория:KIS]] [[Категория:KIS сервисы]]

Текущая версия на 10:25, 3 октября 2018

Госпитализация пациентов

Атрибут для подписки на топик: [Subscription('kis/lists/hospitalized')]

Списки подписанные на топик:

  • TfmHospitalizedList,
  • TfmHospitalizedDoctor,
  • TfmHospListNurse


Формат JSON

{
 "mdoc_id": "b32ba1ac-327a-11e8-a4b6-0800274e4bfc",
 "subject_id": "8334f4ef-7a21-42ef-8205-7fefb4fdaa17",
 "depts": [{
            "id": "04847bbf-d4fe-11e7-a081-0800278f9392",
            "action": 1
           },
           {
            "id": "e5e17e92-eeab-4adb-b768-d3fe327c8f3f",
            "action": 2
           }
          ]
}
  • uid медицинского документа
  • uid пациента по базе (должен совпадать со значением идентифицирующего столбца грида)
  • набор затронуты текущим изменением отделений:
    • uid отделения
    • действие со списком:
      • 1 - удалить запись
      • 2 - добавить запись
      • 3 - обновить данные существующей записи


Код для вставки в хранимую процедуру

perform pg_notify('mqtt',
                  json_build_object('topic','kis/lists/hospitalized',
                                    'payload',json_build_object('mdoc_id', <mdoc_id>,
                                                                'subject_id', <subject_id>,
                                                                'depts', json_build_array(json_build_object('id',<dept_id>,
                                                                                                            'action',<action>))))::text);

Ремарка

Для списков не требующих пост-фильтрации на стороне клиента (общий список госпитализированных) массив отделение может быть пустым.