nodengine-hl7
a HL7 parser

Written by Evan Lucas

evanlucas/nodengine-hl7


Installation

$ npm install --save nodengine-hl7

Usage

var hl7 = require('nodengine-hl7')

API

Parser

A Transform Stream

var hl7 = require('nodengine-hl7')
  , Parser = hl7.Parser

Events

error

emitted if an error occurs parsing a Segment

Example
var fs = require('fs')
  , parser = new Parser()
  , fp = 'input.hl7'
 
var stream = fs.createReadStream(fp)
stream.pipe(parser)
 
parser.on('error', function(err) {
  console.log('Error parsing:', err)
})
message

emitted every time a Message is encountered

messages

emitted at the end of the stream. This will be an array of Message objects.

Message

Constructor
Example
var hl7 = require('nodengine-hl7')
  , Message = hl7.Message
 
var message = new Message()
Params
NameType(s)Description
segmentsArray, SegmentA single Segment or and array of Segments
Message.prototype.hasSegments()

returns true if the Message has any Segments

Message.prototype.addSegment()
Example
var message = new Message()
  , seg = new Segment(...)
 
message.addSegment(seg)
Params
NameType(s)Description
segmentSegmentThe Segment to add to the Message
Message.prototype.getHeader()

returns the header Segment of the message

Message.prototype.delimiters()

returns the delimiters for this Message

Defaults to:

{
  segment: '\r',
  field: '|',
  component: '^',
  subcomponent: '&',
  repetition: '~',
  escape: '\\'
}

Segment

Constructor
Example
var hl7 = require('nodengine-hl7')
  , Segment = hl7.Segment
 
var segment = new Segment()
Params
NameType(s)Description
dataString, BufferThe segment data
delimiters (optional)ObjectThe Message delimiters

Note: the delimiters do not need to be passed if the message is a header segment

Segment.prototype.toArray()

returns an Array of the fields in the segment

Segment.prototype.isHeader()

returns true if the segment is a Message Header Segment (MSH, FSH, BHS)

Segment.prototype.segmentType()

returns the segment type

Segment.registerVariant()
Params
NameType(s)Description
variantObjectThe variant segment

The variant segment must contain a name key which specifies the variant name and the fields key which is an Array of the field names to use

Example
var hl7 = require('nodengine-hl7')
  , Segment = hl7.Segment
 
var variant = {
  name: 'ADD',
  fields: [
    'SegmentType',
    'AddendumContinuationPointer',
    'SendingApplication'
  ]
}
 
Segment.registerVariant(variant)
Segment.prototype.types

All registered Segment Types. Currently, the available segments are: