You are here: Foswiki>Gnumed Web>HealthLevel7Ru (16 Mar 2013, IvanLykov)EditAttach

Health Level 7

Health Level Seven (HL7) International является некоммерческой организацией по разработке аккредитованных ANSI стандартов, занимающаяся разработкой единой платформы и связанных стандартов по обмену, интеграции, совместному использованию и извлечению электронной медицинской информации, которая поддерживает клиническую практику и управлениие, предоставление и оценку медицинских услуг.

Обзор

В стандарте HL7 "сообщение" состоит из двух или более "сегментов" собранных в серии, каждая с набором сегментов ("сообщение"), вообще говоря, результирующее в:

<Hex 0b>
<Message header segment><Hex 0d>
<e.g. Event segment><Hex 0d>
<e.g. Patient id PID segment><Hex 0d>
<e.g. Patient visit PV1 segment><Hex 0d>
<e.g. Diagnosis segment><Hex 0d>
<e.g. Allergy segment><Hex 0d>
<Hex 1c><Hex 0d>

где значения HEX 0b, 1c, 0d соответствуют ASCII/десятичным 11, 28 и 13.

Сегмент MSH обязателен для всех сообщений и в сообщении всегда идёт первым. Таким образом, каждое сообщение будет иметь, по меньшей мере, два сегмента (в сообщениях HL7 для использования доступно свыше 120 различных сегментов). Для каждого сегмента в форме характерно разделение полей каналом (обычно):

3-letter-segment-identifier|field1|field2|field3|field4|... etc.|<Hex 0d>

Результаты наблюдений

Сообщения, содержащие наблюдения, включают
  • результаты лабораторных анализов
  • текстовые документы/отчеты, например о патологии, и отчеты консультации рентгенолога

Применимые сегменты для типов сообщений обозначены в MSH как 'ORU', включая (нежелательно):
  1. непосредственно один сегмент MSH, который должен быть первым
  2. непосредственно один сегмент PID
  3. один или более сегментов ORC (каждый спарен и с последующим сегментом OBR)
  4. один или более сегментов OBR (каждый спарен и с предшествующим сегментом ORC)
  5. от нуля до многих сегментов OBX (нет, например, когда OBR взаимодействует со статусом "ожидание" или, если ORC OBR содержит только NTE, выступая в качестве общего замечания по порядку)
  6. необязательные другие сегменты (например, записи/комментарии NTE), чей порядок между сегментами может изменяться

Аналог "заказа питания" в ресторане:

Концепция Пища Лаборатория MSH 004 ORC 003 OBR 004 OBX
Порядок = один элемент или сочетание элементов Порядок питания, включающий один или более курсов Лабораторный порядок, включающий одну или более панелей анализов Название лаборатории, например, … несколько ORC могут придерживается одного номера подсоединения, будучи в противном случае внутренне дифференцированы, например, … один OBR будет допускать каждый ORC, где последовательность 004 может содержать, например, … от нуля до многих OBX, но в итоге ≥ 1, чтобы следовать каждому OBR, например, …
Элемент комбинации, уступающий множественным результатам: Белки с крахмалом и растительные Почечный профиль MDS 05-994065004-RENAL RENAL^Почечный профиль шесть сегментов OBX дадут результат:

Натрий
Калий
Хлориды
Бикарбонаты
Мочевина
Креатинин
Одинарный элемент, уступающий одинарному результату: Нарезанная клубника Случайное содержание сахара в крови (aka, случайная глюкоза) " 05-994065004-RBS-1

(завершающее '-1' обозначает первое из двух в том же подсоединении)
RBS^Случайная глюкоза один сегмент OBX даст результат:

Случайная глюкоза
двойной порядок две порции нарезанной клубники два образца взяты, либо одновременно, либо в шахматном порядке " 05-994065004-RBS-2

(завершающее '-2' обозначает второе из двух в том же подсоединении)
RBS^Случайная глюкоза один сегмент OBX даст результат:

Случайная глюкоза

Ниже приведен пример сообщения по результату лабораторного анализа HL7 с надстроенным XML, выполненного лабораторией BCB и доставленного брокерской системой PATHL7 через принимающее приложение HttpClient? получателем "ttest2" (практики) с отметкой даты, типа сообщения для результата наблюдения 'ORU' фиктивного пациента Arfur Smiff, которому назначен анализ только для двух электролитов (натрия и калия, как ' LYTE') д-ром Ян, выполненный в отделе ХИМ лаборатории и являющийся завершенным ('F' окончательный), и который скопирован д-ру Уильям Ослер и включает отдельные результаты: натрий 145 ммоль/л (диапазон нормы 135-145) и калий 4,6 ммоль/л с диапазоном нормы 3,5-5,0:

<?xml version="1.0" encoding="UTF-8" ?> 
- <HL7Messages MessageFormat="ORUR01" MessageCount="8" Version="2.3">
- <Message MsgID="1">
- <![CDATA[ 
MSH|^~\&|PATHL7|BCB|HTTPCLIENT|ttest2|20031003103947||ORU^R01|MED20031003103946890|P|2.3|||ER|AL
PID|||||SMIFF^ARFUR||19450928|M|||^^SURREY^^BC||585-1510
ORC|RE||01-302585-LYTE-0|||||||||22333^MEDIC^IAN^TEST
OBR|1||01-302585-LYTE-0|LYTE^Electrolytes||20010214154400|20010214154400|||||||20010214154400||22333^MEDIC^IAN^TEST||||||20010214155500||CHEM|F|||22333^OSLER^WILLIAM^TEST
OBX|1|NM|2951-2^Sodium||145|mmol/L|135 - 145|N|||F|||20010214154500
OBX|2|NM|2823-3^Potassium||4.6|mmol/L|3.5 - 5.0|N|||F|||20010214154500
  ]]>  
  </Message>

Разделители полей, кодировка символов и другое

Сегмент Последовательность Имя элемента Местные заметки по использованию и ведению
MSH 1 Разделитель полей по соглашению, знак канала |
2 Кодировка символов ^~\&

Считая, что в таблице выше сообщения соответствуют стандарту,
  • поля разделяются символом "канала, '|'
  • компоненты поля (составные компоненты поля) отделены друг от друга символом "каретки", '^'
  • повторяющиеся значения в полях разделены тильдой, '~'
  • экранирующим символом '~', как правило, является бакслэш, '\'
  • компоненты поля '\' могут быть разделены и отделены друг от друга символом "амперсанда", '&'
  • пустые '&' могут быть дополнены пробелами до их длины поля, но чаще просто опущены:
    • пустое поле: '||'
    • присутствует, но поле null" '|""|' (значения null обозначены двумя двойными кавычками))
    • пустые компоненты: '^^'

В сегменте OBX seq 2 (Тип значения) двух-символьные коды могут быть

  • Для атомарных числовых результатов: ‘NM’ или ‘SN’
  • Для атомарных текстовых результатов: ‘ST’ (‘TX’ не рекомендуется)
  • Для полнотекстовых отчётов: ‘FT’ или ‘ED’.
    • TIFF, FAX, JPEG, MSWORD и др. :‘ED’
    • HTML, PIT, RTF и другие форматы ASCII: ‘FT’

команда ‘начинать новую строку вывода’ (‘\.br\’) заменяет возврат каретки и/или перевод строки

Анализаторы HL7 для Python

Коду Ника Орловского не хватает поддержки версий-зависимого именования поля HL7.

Код Джона Паулетт имеет ограниченную объектную ориентацию. Его обзор предоставлен на pypi.python.org.

Рефакторинговый код Джона от Люка Лейгхтон.

Доступна также коммерческая библиотека.

Ссылки

Topic revision: 16 Mar 2013, IvanLykov
 
Download.png
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding Foswiki? Send feedback
Powered by Olark