Настоящая спецификация предусматривает набор обязательных правил при обмене данными между ТФОМС (ЦОД) и ФО.
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>, обязательный) типа docFlowInfoType (определение приведено ниже).
Все остальные данные включаются в теге <DATAMAIN>, структура которого определяется конкретным форматом.
Соответствие протоколу и схеме, проверка контрольной суммы
XML-файл должен полностью соответствовать схеме, определенной для протокола, к которому относится этот файл. Не соответствующие схеме файлы не подлежат обработке.
При обработке файла осуществляется проверка версии протокола, в случае несоответствия обработку проходят только допустимые версии.
При создании файла ПО экспортера должно рассчитать и записать контрольную сумму по методике, описанной в пункте "Алгоритм расчета контрольной суммы" настоящего документа. При обработке файла ПО экспортера также должно проверить соответствие содержания файла контрольной сумме по тому же алгоритму.
5.2. Правила формирования посылок
Тег SENDINFO с информацией об экспортируемой посылке данных является обязательным.
В теге <HOST_GUID> должен быть указан GUID экспортера. GUID экспортера представляет собой символьный идентификатор участника ДЛО, уникальный в пределах территориальной информационной системы дополнительного лекарственного обеспечения отдельных категорий граждан. При обработке файла необходимо провести проверку допустимости приема файла данного протокола, от данного экспортера. В качестве GUID хоста в системе используется ОГРН учреждения экспортера. В случае если у одного учреждения присутствует несколько хостов экспортеров (например, аптечные пункты одной аптеки) для уникальности к ОГРН в квадратных или круглых добавляется номер хоста внутри данного учреждения. Например, <HOST_GUID>1023101687190[2]</HOST_GUID>.
В теге <TARGET_HOST_GUID> должен быть указан GUID импортера, которому предназначена данная посылка. Правила формирования GUID в теге <TARGET_HOST_GUID> те же самые, что и для тега <HOST_GUID>.
Посылки от одного экспортера должны последовательно нумероваться и номер посылки указываться в теге <PACKAGE_NUMBER>. ПО экспортера должно исключить возможность формирования двух разных посылок с одним номером от одного экспортера. ПО осуществляющее импорт посылок должно контролировать последовательность обработки посылок и исключить возможность нарушения порядка обработки посылок одного экспортера.
Для каждой вновь создаваемой посылки, экспортер должен определить новый GUID посылки, который должен быть отражен в теге <SEND_GUID>, а также сохранен для последующего использования. ПО осуществляющее импорт посылок обязано контролировать уникальность импорта посылок и исключить возможность обработки посылок с одинаковым GUID. В качестве GUID (Global Unique Identifier) посылки должен использоваться Глобальный Уникальный Идентификатор используемый в операционной системе Microsoft Windows.
GUID представляет собой уникальное псевдослучайное 128-битное значение, которое теоретически не должно повториться. Алгоритм генерации GUID основан на аппаратной части компьютера (параметры BIOS, частота процессора, номер сетевой карты и т.д.) и использует случайные показания внутреннего таймера. Эту запись можно определить в виде строки следующего формата: