Поведение парсера управляется файлами метаданных - metadata/segments.edn и metadata/types.edn. Они описывают структуру представления сообщения HL7v2. Файл segments.edn на момент написания документации содержит лишь некоторые из сегментов HL7v2, полные метаданные хранятся в resources/full_segments.edn. Сам по себе этот файл не используется в работе парсера. Его можно использовать как источник сырых метаданных при необходимости добавить поддержку других сегментов.
Схема выходной структуры данных описывается в файле metadata/rules.edn. Каждый ключ описывает отдельное правило обработки данных. Конфигурация правила состоит из трех ключевых слов - :starts, :consumes и :groups.
:starts указывает, наличие какого сегмента (или правила) необходимо, чтобы данное правило сработало. Из этого следует ограничение - каждое правило может быть потребовано только один раз.
:consumes перечисляет сегменты HL7v2, результат разбора которых будет включен в данное правило. Указанный сегмент может отсутствовать в исходном сообщении.
:groups позволяет собрать результат работы других правил и поместить его внутрь данного правила. Правила, обработанные с помощью этого ключевого слова, исключаются из выходной структуры данных.
Поиграть с примерами использования в test/api_test.clj
Любое изменение существующих правил в metadata/rules.edn должно быть согласовано с другими пользователями парсера для сохранения обратной совместимости.