Sign Up for Free

RunKit +

Try any Node.js package right in your browser

This is a playground to test code. It runs a full Node.js environment and already has all of npm’s 400,000 packages pre-installed, including hl7-builder with all npm packages installed. Try it out:

var hl7Builder = require("hl7-builder")

This service is provided by RunKit and is not affiliated with npm, Inc or the package authors.

hl7-builder v1.0.0

Build an HL7 message through a library.


Build Status Coverage Status

This is a simple HL7 builder.


  • npm install
  • npm install -g grunt-cli


var Builder = require('./app');

var message = new Builder.Message({
    messageType: 'ADT',     // Required
    messageEvent: 'A03',    // Required
    eventSegment: true,
    delimiters: {
        segment: '\n'
        // field, component, repeat, escape, subComponent (unused)
    sendingApplication: 'Builder',
    sendingFacility: 'UnitA',
    receivingApplication: 'Consumer',
    receivingFacility: 'UnitB',
    messageId: Math.floor((Math.random() * 1000) + 1),
    version: '2.3'          // Default: 2.3

var pid = new Builder.Segment('PID');

// Add fields with a single component
pid.set(3, '234234');
pid.set(18, '55555');

// Add field with multiple components
var address = new Builder.Field();
address.set(0, '0000 main street');
address.set(2, 'Last Vegas');
address.set(3, 'NV');
address.set(4, '12345');

// Add a repeat inside a field
address.set(0, '1111 alternate street');
address.set(2, 'Last Vegas');
address.set(3, 'NV');
address.set(4, '12345');

pid.set(11, address);

var pv1 = new Builder.Segment('PV1');
pv1.set(1, 'Testable');


// Getters
console.log(address.get(0));        // 1111 alternative street
console.log(address.get(0, 0));     // 1234 main street
console.log(pid.get(3));            // 234234

// toStrings
console.log(address.toString());    // 0000 main street^Last Vegas^NV^12345~1111 alternate street^Last Vegas^NV^12345
console.log(pv1.toString());        // PV1|Testable
console.log(message.toString());    // MSH|.....

// Create an L7 query object
var parsedMessage = message.toQuery();


  • grunt - Runs eslint & mocha tests
  • grunt lint - Runs eslint only
  • grunt test - Runs mocha tests only



Creates a new HL7 builder. options are required and define the MSH header.

  • messageType (string) - [3 Character event type]( type)
  • messageEvent (string) - [3 Character trigger event]( type)
  • eventSegment (boolean?) - If true, automatically adds an event segment
  • delimieters (object?) - Delimiters used to separate parts. Defaults:
    • segment - \n
    • field - |
    • component - ^
    • repeat - ~
    • escape - \
    • subComponent - &
  • sendingApplication - App that sent the message
  • sendingFacility - Facility that sent the message
  • receivingApplication - App that should receive the message
  • receivingFacility - Facility that should receive the message
  • messageId - Unique message identifier. default: Math.floor((Math.random() * 1000) + 1)
  • version - HL7 version, Default: 2.3


Creates a new HL7 segment builder with a required 3 character segmentName identifier. Examples: MSH, PID, PV1, OBR, OBX.

set(location, field)

Sets a field at location (number) to the value of field (string or instance of Builder.Field).

get(index [,repeatDelimiter[,componentDelimiter[,subComponentDelimiter]]])

Gets a field at index (number) with optional delimiters.


Returns the segment name.


Returns the segment as a string with optional delimiters.


Creates a new HL7 field builder with an optional length.

set(location, data)

Sets a component at location (number) with data (string).

get(index [,repeat])

Gets a component at index (number) for the repeated field repeat. If repeat is not defined, it will use the last repeat specified.


Adds a new field in the same position (repeated). Use set for adding new data to this repeated field.


Returns the field as a string with optional delimiters.




RunKit is a free, in-browser JavaScript dev environment for prototyping Node.js code, with every npm package installed. Sign up to share your code.
Sign Up for Free