Настоящая спецификация предусматривает следующий набор обязательных правил при экспорте/импорте сводных реестров медицинских услуг и персональных данных о пациентах.
5.1. Общие правила представления данных в XML формате
Здесь и далее используются определения и спецификации, разработанные The World Wide Web Consortium (W3C) (http://www.w3.org ).
Структура XML-файлов протоколов и других документов описываются с помощью схем (XML Schema), спецификация которых описана (http://www.w3.org/2001/XMLSchema). Схема для каждого вида документа (XML-файла) представляется в виде XSD файла.
Для всех документов (файлов XML) применяется следующая базовая схема:
Тег корневого файла <MAIN chsm="">. Корневой тег содержит атрибут "chsm" -значение контрольной суммы. Алгоритм расчета контрольной суммы описан в п.8 данного документа.
Тег (обязательный) с идентификатором формата <FORMAT_GUID>, в котором указывается GUID, соответствующий формату.
Тег (обязательный) <PROTOCOL>, в котором указывается мнемоника протокола.
Тег (обязательный) <VER>, в котором указывается версия формата.
Тег <CREATE_BY> (необязательный) содержит наименование программы, создавшей экземпляр файла.
Тег <APP_BUILD> (необязательный) содержит номер сборки (версии) программы, создавшей экземпляр файла.
Тег <CREATE_TIME> (обязательный), содержит дату и время создания файла.
Тег <TITLE> (необязательный), содержит строку со смысловым обозначением формата файла.
Тег <ЕСР> (необязательный), содержит строку с электронной подписью отправителя.
Раздел SENDINFO (тег <SENDINFO>, обязательный) типа docFlownfoType (определение приведено ниже).
Все остальные данные включаются в теге <DATAMAIN>, структура которого определяется конкретным форматом.
5.2. Правила формирования посылок
Тег SENDINFO с информацией о посылке экспорта/импорта является обязательным.
В теге <HOST_GUID> должен быть указан GUID экспортера. GUID экспортера представляет собой символьный идентификатор участника ДЛО, уникальный в пределах территориальной информационной системы дополнительного лекарственного обеспечения отдельных категорий граждан. При обработке файла необходимо провести проверку допустимости приема файла данного протокола от данного экспортера. В качестве GUID хоста в системе используется ОГРН учреждения экспортера. В случае если у одного учреждения присутствует несколько хостов издателей, например разные отделения одного лечебно-профилактического учреждения, для уникальности к ОГРН в квадратных или круглых добавляется номер хоста (отделения ЛПУ) внутри данного учреждения. Например
<HOST_GUID>1023101687190[2]</HOST_GUID>.
Посылки от одного экспортера должны последовательно нумероваться и номер посылки указываться в теге <PACKAGE_NUMBER>. ПО экспортера должно исключить возможность формирования двух разных посылок с одним номером от одного экспортера. ПО осуществляющее импорт посылок должно контролировать последовательность обработки посылок и исключить возможность нарушения порядка обработки посылок одного экспортера.
Для каждой вновь создаваемой посылки экспортер должен определить новый GUID посылки, который должен быть отражен в теге <SEND_GUID>, а также сохранен для последующего использования. ПО осуществляющее импорт посылок обязано контролировать уникальность импорта посылок и исключить возможность обработки посылок с одинаковым GUID. В качестве GUID (Global Unique Identifier) посылки должен использоваться Глобальный Уникальный Идентификатор используемый в операционной системе Microsoft Windows.
GUID представляет собой уникальное псевдослучайное 128-битное значение, которое теоретически не должно повториться. Алгоритм генерации GUID основан на аппаратной части компьютера (параметры BIOS, частота процессора, номер сетевой карты и т.д.) и использует случайные показания внутреннего таймера. Эту запись можно определить в виде строки следующего формата:
' {хххххххх-хххх-хххх-хххх-хххххххххххх} '
В каждой посылке необходимо указывать GUID предыдущей посылки в теге <PREV_SEND_GUID>. При обработке файла необходимо обеспечивать правило, по которому посылки должны обрабатываться последовательно, т.е. значение тега <PREV_SEND_GUID>, должно соответствовать предыдущей принятой посылке. Для первой посылки от экспортера, тег <PREV_SEND_GUID> имеет пустое значение.
В случае, когда посылка разбивается на несколько файлов, в ней необходимо указывать теги <FILE_NUMBER>, <PREV_FILE_NUMBER>,<NEXT_FILE_NUMBER>, номер текущего файла, предыдущего и последующего. Все файлы посылки имеют сквозную (в рамках посылки) нумерацию. При обработке многофайловой посылки необходимо соблюсти последовательность обработки файлов.
5.3. Формирование XML-файла РМУ
При формировании XML-файла ПО экспортера данных обязано выдержать все требования настоящей спецификации по структуре файла и соответствию его XSD-схеме.