Протокол обмена с СеленаВижн по HL7
Взаимодействие между ЛИС и СеленаВижн происходит в три этапа:
- СеленаВижн запрашивает список доступных заданий.
- ЛИС передаёт найденные задания.
- После обработки образцов СеленаВижн возвращает результаты исследования.
Каждое полученное HL7-сообщение подтверждается ответом ACK, что гарантирует успешную доставку и обработку данных.
Общая схема обмена
Последовательность сообщений
| Сообщение | Отправитель | Назначение |
|---|---|---|
QRY^Q02 |
СеленаВижн | Запрос списка доступных заданий |
ACK^Q02 |
ЛИС | Подтверждение получения запроса |
DSR^Q03 |
ЛИС | Передача заданий на исследование |
ACK^Q03 |
СеленаВижн | Подтверждение получения заданий |
ORU^R01 |
СеленаВижн | Передача результатов исследования |
ACK^R01 |
ЛИС | Подтверждение получения результатов |
QRY^Q02 — запрос заданий
Сообщение QRY^Q02 используется СеленаВижн для запроса заданий, доступных для обработки.
После получения запроса ЛИС возвращает подтверждение ACK^Q02, а затем формирует сообщение DSR^Q03 с найденными заданиями.
Пример сообщения
<SB>MSH|^~\&|sciendox|5A|LIS|PC|20210818132223||QRY^Q02|2|P|2.3.1||||0||UTF-8|||<CR>
QRD|20210818132223|R|D|4|||RD|||||<CR>
QRF|5A|20210818000000|20210819000000|||RCT|COR|ALL|<CR>
<EB><CR>
DSR^Q03 — передача заданий из ЛИС в СеленаВижн
После получения запроса (QRY^Q02) ЛИС отправляет в СеленаВижн список заданий для выполнения.
Для каждого образца передаются:
- штрихкод образца;
- необходимость выполнения микроскопии;
- необходимость выполнения анализа тест-полосками;
- макроскопические характеристики образца: цвет, консистенция, наличие слизи и крови.
Значения макроскопических характеристик передаются в виде кодов из справочников. Состав справочников может отличаться в зависимости от медицинского учреждения. Ниже приведены значения по умолчанию.
DSP15 — цвет образца
| Код | Значение |
|---|---|
| 8 | Коричневый |
| 9 | Желтовато-коричневый |
| 10 | Тёмно-коричневый |
| 11 | Светло-жёлтый |
| 12 | Ахоличный (беловато-серый) |
| 13 | Серовато-жёлтый |
| 14 | Серый |
| 15 | Красный |
| 16 | Зелёный |
| 200 | Чёрный |
DSP16 — консистенция образца
| Код | Значение |
|---|---|
| 200 | Твёрдая |
| 201 | Мягкая |
| 202 | Плотная |
| 203 | Мазевидная |
| 204 | Пенистая |
| 205 | Водянистая |
DSP17 — наличие слизи
| Код | Значение |
|---|---|
| 23 | Отрицательный |
| 24 | + |
| 25 | ++ |
| 26 | +++ |
| 27 | ++++ |
DSP18 — наличие крови
| Код | Значение |
|---|---|
| 28 | Отрицательный |
| 29 | + |
| 30 | ++ |
| 31 | +++ |
| 32 | ++++ |
Информация о необходимых исследованиях
Поля DSP19–DSP23 используются для передачи информации о том, какие исследования необходимо выполнить для образца.
| Поле | Назначение | Значения |
|---|---|---|
| DSP19 | Микроскопия | 0 — не требуется, 1 — требуется |
| DSP20 | Тест-полоска HP | 0 — не требуется, 79 — требуется |
| DSP21 | Тест-полоска FOB | 0 — не требуется, 15 — требуется |
Поля DSP20–DSP23 соответствуют физическим слотам для тест-полосок в приборе. Поэтому коды исследований могут располагаться в любом из этих полей.
Например, все следующие варианты являются корректными:
[79,15,0,0]
[0,15,79,0]
[0,0,79,15]
Главное, чтобы необходимые коды присутствовали в одном из доступных слотов.
Пример сообщения DSR^Q03
Ниже приведён пример передачи задания с использованием справочных значений, описанных выше.
<SB>MSH|^~\&|Sciendox|2000R|LIS|PC|20220318111857||DSR^Q03|1|P|2.3.1|||P|||ASCII|||<CR>
MSA|AA|1|Message accepted|||0|<CR>
ERR|0|<CR>
QAK|СА|ОК
QRD|20220318111857|R|D|1|||RD||ДРУГОЕ|||T
QRF|2000R|||||RCT|COR|ВСЕ
DSP|1||Иванов Сергей||<CR>
DSP|2||Мужчина||<CR>
DSP|3||11||<CR>
DSP|4||1||<CR>
DSP|5||12||<CR>
DSP|6||13||<CR>
DSP|7||14||<CR>
DSP|8||Кал||<CR>
DSP|9||123456||<CR>
DSP|10||Нормальный||<CR>
DSP|11||Примечания||<CR>
DSP|12||206||<CR>
DSP|13||20220318092723||<CR>
DSP|14||15||<CR>
DSP|15||0||<CR>
DSP|16||0||<CR>
DSP|17||0||<CR>
DSP|18||0||<CR>
DSP|19||0||<CR>
DSP|20||15||<CR>
DSP|21||0||<CR>
DSP|22||0||<CR>
DSP|23||0||<CR>
DSC|1|<CR>
<EB><CR>
ACK^Q03 — подтверждение получения задания
После получения сообщения DSR^Q03 прибор отправляет ответ ACK^Q03, подтверждающий успешное получение и обработку задания.
Пример сообщения:
<SB>MSH|^~\&|Sciendox|2000R|LIS|PC|20220318111858||ACK^Q03|1|P|2.3.1||||||ASCII|||<CR>
MSA|AA|1|Message accepted|||0|<CR>
ERR|0|<CR>
<EB><CR>
ORU^R01 — передача результатов исследований из СеленаВижн в ЛИС
После завершения исследования СеленаВижн отправляет результаты в сообщении ORU^R01.
В сообщении могут использоваться следующие значения переменных.
Макроскопические параметры
| Переменная | Возможные значения |
|---|---|
{macro_color} |
cherniy, korichneviy, zeleniy, temno-korichneviy, svetlo-korichneviy, beliy, seriy, zheltiy |
{macro_hard} |
plotnaya, myagkaya, zhidkaya, tverdaya, zamazkoobraznaya, kleykaya, ovechiy |
{macro_blood} |
none, +, ++, +++, ++++ |
{macro_mucus} |
none, +, ++, +++, ++++ |
Результаты тест-полосок
| Переменная | Возможные значения |
|---|---|
| {macro_test_fob} | negative, positive, error |
| {macro_test_hp} | negative, positive, error |
Количественные показатели
| Переменная | Диапазон значений |
|---|---|
| {diag_XXX_normalized} | 0 ... 999 |
| {parasite_XXX_normalized} | 0 ... 999 |
| {diag_XXX_total} | 0 ... 999 |
| {parasite_XXX_total} | 0 ... 999 |
Интерпретация результатов
Значения интерпретации зависят от настроек конкретной лаборатории и могут отличаться между установками.
Возможные варианты:
Не обнаруженОбнаруженНемногоУмеренноМногоОбильно
Структура сообщения ORU^R01
Сообщение ORU^R01 содержит результаты исследования и состоит из нескольких логических частей:
| Сегмент | Назначение |
|---|---|
MSH |
Заголовок HL7-сообщения |
PID |
Данные пациента и образца |
OBR |
Информация об исследовании |
OBX |
Результаты исследования |
Результаты в сегментах OBX можно условно разделить на несколько групп:
- макроскопические характеристики образца;
- результаты тест-полосок;
- показатели копрограммы;
- результаты обнаружения паразитов.
Ниже приведён шаблон сообщения с используемыми переменными.
Пример структуры сообщения
MSH|...
PID|...
OBR|...
Макроскопические параметры
OBX|1|...
OBX|2|...
...
Результаты тест-полосок
OBX|5|...
OBX|6|...
Показатели копрограммы
OBX|26|...
OBX|27|...
...
Паразиты
OBX|60|...
OBX|61|...
...
Полный шаблон сообщения:
MSH|^~\&|SciendoxViewer|6000R|LIS|PC|{current_date_string}||ORU^R01|3|P|2.3.1||||0||ASCII\r
...
Пример сообщения
PID|1|Иван Иванов|55344344|22|Male|\r
OBR|1|55344344|5|6000R|N|2025-03-22|2025-03-22||55344344|||diagnosis||sample_type|doctor_name||Remarks\r
OBX|1|ST|3|Color|korichneviy||X\r
OBX|2|ST|4|Hard|tverdaya||X\r
OBX|3|ST|5|Blood|+++||X\r
OBX|4|ST|6|Mucus|none||X>\r
OBX|5|ST|7|Macro test fob|negative||X>\r
OBX|6|ST|8|Macro test hp|||X>\r
OBX|26|ST|201|Pk|3.42|178|Умеренно||U\r
...
В приведённом примере:
- исследование выполнено для пациента Иван Иванов, 22 года;
- штрихкод образца —
55344344; - дата исследования —
2025-03-22; - цвет образца — коричневый;
- консистенция — твёрдая;
- кровь обнаружена на
+++; - слизь отсутствует;
- тест FOB дал отрицательный результат;
- тест HP не выполнялся.
Пример интерпретации результата
Строка ниже описывает результат для показателя переваримая клетчатка.
OBX|26|ST|201|Pk|{diag_pk_normalized}|{diag_pk_total}|{diag_pk_text}||U\r
После подстановки фактических значений она может выглядеть следующим образом:
OBX|26|ST|201|Pk|3.42|178|Умеренно||U\r
Значения полей:
| Поле | Значение | Описание |
|---|---|---|
{diag_pk_normalized} |
3.42 |
Среднее количество объектов на одно поле зрения |
{diag_pk_total} |
178 |
Общее количество обнаруженных объектов |
{diag_pk_text} |
Умеренно |
Текстовая интерпретация результата |
В данном примере СеленаВижн сообщила об обнаружении 178 объектов. Исследование выполнялось в режиме съёмки на 52 поля зрения, поэтому нормализованное значение составило 3.42 объекта на поле зрения.
Согласно настройкам справочника интерпретаций, используемым в лаборатории, значения в диапазоне от 3 до 5 соответствуют интерпретации «Умеренно».
Особенности прямой HL7-интеграции с прибором Sciendox
В большинстве случаев отдельная интеграция с прибором не требуется, поскольку ПО СеленаВижн самостоятельно взаимодействует со Sciendox и передаёт данные в ЛИС.
Однако при реализации прямого обмена между ЛИС и прибором рекомендуется учитывать следующие особенности.
1. Нестандартная реализация MLLP-обрамления
Прибор передаёт маркеры начала и конца сообщения (<SB> и <EB>) не в виде управляющих символов MLLP, а как обычный текст в Unicode-представлении.
Согласно стандарту MLLP:
To transport an HL7 message using the
MLLPprotocol, add a vertical tab (VT) character (hexadecimal value0x0B) at the start of the message. Add a file separator character (FS) (0x1C) and a carriage return (CR) (0x0D) at the end of the message.
В результате некоторые HL7-клиенты могут некорректно обрабатывать сообщения без дополнительной адаптации.
Источник: Ссылка на стандарты
2. Нестандартное использование сегмента DSC
Сегмент DSC в сообщениях DSR^Q03 используется не по стандартной схеме.
Вместо ссылки на следующий фрагмент сообщения поле содержит номер текущего образца:
1-й образец -> DSC|1|
2-й образец -> DSC|2|
3-й образец -> DSC||
При обработке сообщений не следует интерпретировать значение DSC как ссылку на следующий пакет данных.
3. Зависимость данных от выбранного языка интерфейса
При сохранении информации прибор использует разные базы данных в зависимости от языка интерфейса, выбранного при запуске.
Например:
- при запуске на английском языке данные сохраняются в базу
sciendox_en; - при запуске на русском языке используется другая база данных.
Поэтому образцы, созданные в одной языковой конфигурации, могут быть недоступны после перезапуска прибора с другим языком интерфейса.
4. Требования к формату даты
На ПК анализатора должен использоваться формат даты:
YYYY-MM-DD
Использование локального формата:
DD.MM.YYYY
может приводить к ошибкам в работе ПО анализатора, включая:
- невозможность создания нового случая;
- ошибки поиска существующих случаев;
- ошибки на уровне запросов к MySQL.
5. Использование двух сетевых соединений
При подключении к ЛИС прибор открывает два сокета вместо одного.
Некоторые ЛИС ожидают использование единственного соединения и могут работать некорректно при наличии дополнительного сокета.
Перед внедрением рекомендуется проверить совместимость сетевого взаимодействия со стороны ЛИС.