Настоящая спецификация предусматривает следующий набор обязательных правил при экспорте/импорте персонифицированных реестров выписанных рецептов.
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>.
Посылки от одного экспортера должны последовательно нумероваться и номер посылки указываться в теге <PACKAGE_NUMBER>. ПО экспортера должно исключить возможность формирования двух разных посылок с одним номером от одного экспортера. ПО, осуществляющее импорт посылок, должно контролировать последовательность обработки посылок и исключить возможность нарушения порядка обработки посылок одного экспортера.
Для каждой вновь создаваемой посылки экспортер должен определить новый GUID посылки, который должен быть отражен в теге <SEND_GUID>, а также сохранен для последующего использования. ПО, осуществляющее импорт посылок, обязано контролировать уникальность импорта посылок и исключить возможность обработки посылок с одинаковым GUID. В качестве GUID (Global Unique Identifier) посылки должен использоваться Глобальный Уникальный Идентификатор, используемый в операционной системе Microsoft Windows.
GUID представляет собой уникальное псевдослучайное 128-битное значение, которое теоретически не должно повториться. Алгоритм генерации GUID основан на аппаратной части компьютера (параметры BIOS, частота процессора, номер сетевой карты и т. д.) и использует случайные показания внутреннего таймера. Эту запись можно определить в виде строки следующего формата: