Навигация:  АДМИНИСТРИРОВАНИЕ МИС МЕДИАЛОГ > ВСПОМОГАТЕЛЬНЫЕ УТИЛИТЫ > УТИЛИТЫ ПЕЧАТИ ЛИСТКОВ НЕТРУДОСПОСОБНОСТИ > Схемы входа и выхода >

Конфигурация исходящих сообщений (Server_OUT.xml)

Предыдущая страницаВернуться в начало главыСледующая страница
Show/Hide Hidden Text

Файл Server_OUT.xml. Настройка конфигурации исходящих сообщений.

<?xml version="1.0" encoding="windows-1251"?>

<hl7>

 <events>

         <!

         В секции перечисляются обрабатываемые события.

<code> – код события;

<name> – используется только в этом файле настроек (для удобства названия секций) и его можно не задавать. Тогда <name> будет совпадать с <code>.

         -->

         <event desc="Печать больничных листов">

                 <code>CURELIST_QUERY</code>

         </event>

 </events>

 <sections>

         <!

         Секции описывают формат сообщения. Если имя секции совпадает с описанными выше событиями (events), то на основе этой секции и будет построено сообщение. Также есть промежуточные секции (например, common): они используются в других секциях (через свойство <parent>), чтобы избежать настройки для каждого сообщения одного и того же.                

         -->

 <CURELIST_QUERY>

         <segments>

         <QUERY_INFO>

                                 <!

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

                                 -->

                 <PARAM>{P_PARAM}</PARAM>        

                 <MOTCONSU_ID>{P_MOTCONSU_ID}</MOTCONSU_ID>

                 <PATIENTS_ID>{P_PATIENTS_ID}</PATIENTS_ID>

                 <RECORD_ID>{P_RECORD_ID}</RECORD_ID>

                 

         </QUERY_INFO>

         <VARIABLES>

         

                 <DATA_CURR_DISABIL_CERTIF>

                                 <!— Имя таблицы, откуда берутся значения.        -->

                         <RECORD>

                                 <!— Между этими тэгами располагаются поля, которые принадлежат одной строке. -->

                                 <FIELD8>

                                 <!

                                 Описание поля: название параметра из запроса, координаты, стиль шрифта, размер шрифта, интервал между символами, интервал между рядами. -->

                                 <VALUE>{PERVICH}</VALUE>

                                 <!— Название столбца -->

                                         <X>69</X>

                                 <!— Координата по оси Х -->

                                         <Y>11</Y>

                                 <!— Координата по оси У (считается от верхнего левого угла ячейки) -->

                                         <FONT_NAME>{FontName}</FONT_NAME>

                                 <!— Имя шрифта (можно задавать вручную для каждого поля) -->

                                         <FONT_SIZE>{FontSize}</FONT_SIZE>

                                 <!— Размер шрифта (можно задавать вручную для каждого поля) -->

                                         <CHAR_INTERVAL>{CharInterval}</CHAR_INTERVAL>

                                 <!— Интервал между символами (можно задавать вручную для каждого поля) -->

                                         <ROW_INTERVAL>{RowInterval}</ROW_INTERVAL>

                                 <!— Интервал между рядами (можно задавать вручную для каждого поля), работает в случае, когда поля лежат между одним тэгом <RECORD>, то есть принадлежат одной строке таблицы  -->

                                 </FIELD8>

 

                         </RECORD>

 

                 </DATA_CURR_DISABIL_CERTIF>

                                 

                 

                 <PATIENTS>

                                 <!— Имя другой таблицы, откуда берутся значения.        -->

                         <RECORD>

                         <FIELD>

                                         <VALUE>{NOMER_MED_KARTI}</VALUE>

                                         <X>169</X>

                                         <Y>278</Y>

                                         <FONT_NAME>{FontName}</FONT_NAME>

                                         <FONT_SIZE>{FontSize}</FONT_SIZE>

                                         <CHAR_INTERVAL>{CharInterval}</CHAR_INTERVAL>

                                         <ROW_INTERVAL>{RowInterval}</ROW_INTERVAL>

                         </FIELD>

                         </RECORD>

                 </PATIENTS>        

                 

                 <DIAGNOZES>

                         

                 </DIAGNOZES>

                 

         </VARIABLES>

         </segments>

         <queries>

                         <!

                         SQL-скрипты, которые будут последовательно выполнены перед созданием исходящего сообщения.

<order> - порядок выполнения скрипта (если не указан, то выполняются последовательно)

<type> - open или exec (определяет способ выполнения скрипта)

<name> - можно указать имя запроса.

<text> - текст скрипта.

В скриптах могут использоваться параметры (:PARAM_NAME), которые по имени должны совпадать с системными полями (см. выше) либо с именами полей предыдущих запросов.

Например, первый запрос (типа open) возвращает несколько полей, значение которых можно через параметры использовать во втором и последующих скриптах.

                         -->

                 <query>

                         <name>query1</name>

                         <type>open</type>

                         <text>

                         <!

                         Запрос на заполнение параметров печати для всех полей.

                         -->

select 'Courier' as FontName, 10 as FontSize, 4 as CharInterval, 0 as RowInterval

                         </text>

                 </query>

 

                 <query>

                         <name>query2</name>

                         <type>open</type>

                         <text>

                         <!— Запрос для требуемых полей.-->

SELECT TOP 1

 

(case when PERVICHN_I = 1 then 'v' else '' end) as PERVICH,--первичный

coalesce(NOMER_MEDICISKOJ_KART, N_OMON)as NOMER_MED_KARTI--№ истории болезни

FROM DATA_DISABILITY_CERTIFIC

join DATA_CURR_DISABIL_CERTIF on DATA_CURR_DISABIL_CERTIF.DATA280_ID = DATA_DISABILITY_CERTIFIC.SS_LKA_NA_OTKR_TIE

join PATIENTS on DATA_CURR_DISABIL_CERTIF.patients_id = Patients.patients_id

WHERE DATA376_ID =:P_PARAM

                         </text>

                         <!

                         :P_PARAM передается с помощью утилиты GetDBDataXML, в которую этот параметр передается утилитой PrintTextWithInterval, которая в свою очередь получает значение из МЕДИАЛОГ.

                         -->

                 </query>

                 </queries>

 </CURELIST_QUERY>

 </sections>

</hl7>

hmtoggle_plus1        Пример результирующего файла:

<?xml version="1.0" encoding="Windows-1251" ?>

- <CURELIST_QUERY>

- <QUERY_INFO>

  <PARAM>53</PARAM>

  <MOTCONSU_ID>{MOTCONSU_ID}</MOTCONSU_ID>

  <PATIENTS_ID>{PATIENTS_ID}</PATIENTS_ID>

  <RECORD_ID />

  </QUERY_INFO>

- <VARIABLES>

- <DATA_CURR_DISABIL_CERTIF>

- <RECORD>

- <FIELD8>

  <VALUE>v</VALUE>

  <X>69</X>

  <Y>11</Y>

  <FONT_NAME>Courier</FONT_NAME>

  <FONT_SIZE>10</FONT_SIZE>

  <CHAR_INTERVAL>4</CHAR_INTERVAL>

  <ROW_INTERVAL>0</ROW_INTERVAL>

  </FIELD8>

</RECORD>

  </DATA_CURR_DISABIL_CERTIF>

- <PATIENTS>

- <RECORD>

- <FIELD>

  <VALUE>1</VALUE>

  <X>169</X>

  <Y>278</Y>

  <FONT_NAME>Courier</FONT_NAME>

  <FONT_SIZE>10</FONT_SIZE>

  <CHAR_INTERVAL>4</CHAR_INTERVAL>

  <ROW_INTERVAL>0</ROW_INTERVAL>

  </FIELD>

  </RECORD>

  </PATIENTS>

  <DIAGNOZES />

  </VARIABLES>

  </CURELIST_QUERY>