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

Материал из ИбисоПедии
Перейти к: навигация, поиск
(Ремарка)
 
(не показано 13 промежуточных версий этого же участника)
Строка 8: Строка 8:
 
* '''TfmHospListNurse'''
 
* '''TfmHospListNurse'''
  
== Имя архива ==
 
  
<pre>
+
=== Формат JSON ===
  yyyy-mm-dd-<#><Инициалы разработчика>-<Порядковый номер>-<критичность>
 
</pre>
 
  
Инициалы разработчика - из трех букв латиницей
+
{
 +
  "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 - обновить данные существующей записи
  
Критичность
 
* ! - может потребоваться остановка
 
* w - длительные операции ()
 
* L - возможны блокировки, требуется выполнять в момент наименьшей нагрузки БД
 
  
Пример
+
=== Код для вставки в хранимую процедуру ===
  
<pre>
+
perform pg_notify('mqtt',
2018-03-01#zh-01.7z
+
                  json_build_object('topic','kis/lists/hospitalized',
2018-03-01#zh-04-!.7z
+
                                    'payload',json_build_object('mdoc_id', <mdoc_id>,
</pre>
+
                                                                'subject_id', <subject_id>,
 +
                                                                'depts', json_build_array(json_build_object('id',<dept_id>,
 +
                                                                                                            'action',<action>))))::text);
  
=== Накопительное обновление ===
+
=== Ремарка ===
  
<pre>
+
Для списков не требующих пост-фильтрации на стороне клиента (общий список госпитализированных) массив отделение может быть пустым.
yyyy-mm-dd-<+month>-<критичность>
 
yyyy-mm-dd-<+day>-<критичность>
 
</pre>
 
  
== Место ==
+
[[Категория:KIS]] [[Категория:KIS сервисы]]
 
 
\\nas.oblteh\Public\Kis\Updates\2018
 
 
 
 
 
[[Категория: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);

Ремарка

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