npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

smat-stream

v1.1.7

Published

Given a SMAT msg file and associated idx file, parses the hl7 messages in a stream

Downloads

1

Readme

js-smat-parser

Given a SMAT msg file and associated idx file, parses the hl7 messages in a stream.

This stream reads the file in reverse order from end to beginning, so as to return messages in order of most recent to least.

NOTE: There must be both an .idx and .msg file with the same name (except the file extension) in the same directory for this to work

Usage

const SMATStream = require("smat-stream");

const stream = new SMATStream({
  filename: "cpcs_lsu_adt.live_abs.abs_mt_out_out.02252020" // for example
})

stream.on("data", chunk => {
  console.log(chunk); // { meta: {...}, rawMessage: "..." } 
})

Data Chunks

Each data chunk represents a single hl7 message and its .idx file entry.

The two fields in each chunk are:

  • meta: An object containing info from the .idx file
  • rawMessage: the HL7 message as a raw string

So Meta

The meta object has the following fields

  • MID: message id broken into
    • DOMAIN
    • HUB
    • NUM
  • SRCMID
    • DOMAIN
    • HUB
    • NUM
  • TYPE
  • SOURCECONN
  • ORIGSOURCECONN
  • DESTCONN
  • TIME
  • PRIORITY
  • DATAFMT
  • SAVECONTEXT
  • OFFSET: the byte offset of the start of the message in the .msg file
  • LENGTH: the number of bytes in the message
  • FLAGS
  • STATE
  • GROUPMID
    • DOMAIN
    • HUB
    • NUM
  • XLTTHREAD
  • RETRIES
  • SKIPXLT
  • USERECOVERDB
  • GROUPID
  • TIMEIN
  • TIMEXLT
  • TIMEOUT
  • TIMEQCUR
  • TIMEQTOT
  • TIMEREC
  • TIMESTOR
  • TIMEARC
  • DBTABLE
  • SEPCHARS
  • DRIVERCTL
  • USERDATA

TCL Keyed List Grammar

NOTE: TCL Keyed Lists are just lists of lists with 2 elements representing key/value pairs

list        -> LCB value* RCB

value       -> ID | NUMBER | list