Iron Bridge, как и многие другие компании, так много выиграли от программного обеспечения с открытым исходным кодом, что мы решили присоединиться к сообществу, добавив один из наших внутренних модулей, «hl7-standard». Этот модуль, ориентированный на медицинские данные, основан на javascript и может использоваться как автономная библиотека javascript, устанавливаться в среду nodejs или импортироваться в такие приложения, как Mirth, для упрощения сложных преобразований данных HL7.

После повсеместного поиска синтаксического анализатора HL7, который соответствовал бы нашим потребностям среды, мы решили, что будет лучше создать собственный. После многих лет внутреннего использования мы чувствуем, что наша библиотека «стандарт hl7» может быть передана медицинскому сообществу.

Вы можете найти исходный код и документацию здесь: https://github.com/ironbridgecorp/hl7-standard.

Мы хотим сотрудничать с единомышленниками в экосистеме здравоохранения, которые разделяют наше видение и цель. Присоединяйтесь к нам на нашем gitter-канале стандарта hl7 https://gitter.im/hl7-standard/community.

Дорожная карта проектов с открытым исходным кодом Iron Bridge

  • hl7-стандарт
  • edi-стандарт
  • освежить

Начните с «hl7-standard»

Прежде чем мы начнем с hl7-standard, мы предположим, что у вас установлены nodejs, если вы не проверяли: https://nodejs.org/en/. Кроме того, вы можете запустить этот и другие примеры на нашей игровой площадке здесь: https://developer.nuvolahub.com/#/opensource/hl7-standard/examples.

Начнем с создания нового каталога и установки библиотеки:

> mkdir example_project/ 
> cd example_project/
> npm install hl7-standard

Теперь давайте создадим тестовый файл, назовем его example.js и добавим следующую логику, чтобы предоставить нам доступ к файловой системе и стандарту hl7:

const fs = require('fs');
const HL7 = require('hl7-standard');

Теперь мы готовы работать с библиотекой. Сегодня мы собираемся создать простое сообщение HL7 (ADT) с нуля. Для этого мы в первую очередь будем использовать метод set. Чтобы просмотреть все методы, ознакомьтесь с документацией на github. Мы будем строить наше сообщение, создав наш сегмент MSH и сопоставив ему значения.

let hl7 = new HL7();
hl7.createSegment('MSH');
hl7.set('MSH', {
  'MSH.2': '^~\\&',
  'MSH.3': 'Example',
  'MSH.4': '123456',
  'MSH.5': '',
  'MSH.6': '',
  'MSH.7': new Date(),
  'MSH.8': '',
  'MSH.9': {
    'MSH.9.1': 'ADT',
    'MSH.9.2': 'A08'
  },
  'MSH.10': '',
  'MSH.11': 'T',
  'MSH.12': '2.3'
});

Обратите внимание, как мы только что сопоставили весь сегмент MSH за один шаг, довольно аккуратно, да? Ну, мы также можем установить одно поле:

hl7.createSegment('EVN');
hl7.set('EVN.1', 'A08');

А как насчет повторяющихся полей? Давайте настроим несколько адресов пациентов, чтобы показать, как с этим можно справиться:

hl7.createSegment(‘PID’);
hl7.set('PID.3.1', '312312');
hl7.set('PID.5', {
  'PID.5.1': 'Wick',
  'PID.5.2': 'John'
});
hl7.set('PID.7.1', '19670822');
hl7.set('PID.8.1', 'M');
hl7.set('PID.11', [{
  'PID.11.1': '123 Example Rd',
  'PID.11.2': '',
  'PID.11.3': 'Pittsburgh',
  'PID.11.4': 'PA',
  'PID.11.4': '15226',
  'PID.11.5': 'USA'
}, {
  'PID.11.1': '321 Sample St',
  'PID.11.2': '',
  'PID.11.3': 'Pittsburgh',
  'PID.11.4': 'PA',
  'PID.11.4': '15317',
  'PID.11.5': 'USA'
}]);

Наконец, после того, как мы создадим еще несколько сегментов по тому же шаблону, мы можем записать этот файл в наш проект, чтобы экспортировать результат. Делаем это с помощью модуля fs. Чтобы получить hl7 из нашей стандартной библиотеки hl7, мы вызываем метод сборки:

let result = hl7.build();
fs.writeFileSync(‘/example_project/output.hl7’, result, ‘utf8’);

И это все! Новое сообщение hl7 можно отправить. Если вы хотите увидеть это в действии, отправляйтесь на нашу живую игровую площадку и повеселитесь.

В ближайшие недели обратите внимание на "стандарт hl7", в том числе на:

  • Обработка больших пакетных сообщений HL7
  • Использование стандарта hl7 в AWS Lambda
  • Преобразование HL7 в FHIR

Узнайте больше о Iron Bridge на https://www.ironbridgecorp.com