Git Product home page Git Product logo

hl7-listener's Introduction

HL7Listener

Project Description

This is a command line application that listens for MLLP framed HL7 messages. Any HL7 messages received are written to disk. This is intended as a simple diagnostic app to capture a stream of HL7 messages to disk for offline analysis/troubleshooting. Not intended for production use.

Acknowledgement (ACK) messages will be returned if the message received has the Accept-Acknowledgement field (MSH-15) set to AL . If this is not set, no ACK will be returned. Additionally, ACKs can be prevented from being returned in all cases if the -NoACK command line switch is specified.

HL7Listener supports simultaneous connections from multiple sources. It only supports MLLP framed HL7 messages.

Build Instructions

The solution will target .Net 6.0.

  1. Install the .Net 6.0 SDK. Install instructions for the SDK for each platform are available from:
  1. Open a command console, navigate to the root folder of this solution (containing HL7Listener.csproj). Run the following build command: dotnet build --configuration Release
  2. The build process will copy a version for each .Net version to subfolders of bin\release\.

Install Instructions (Instead of build)

If you do not wish to build from source, download the latest pre-built release from: https://github.com/RobHolme/HL7-Listener/releases These are self-contained releases that include the relevant .Net dependencies, it does not require the .Net runtime to be installed.

Running HL7Listener

Windows

HL7Listener.exe -Port <port-number> [-FilePath <path>] [-PassThru <host>:<port>] [-NoACK] [-Encoding <UTF8 | ASCII | Latin1>] [-TLS <certificate-path | certificate-thumbprint>]

Linux

HL7Listener -Port <port-number> [-FilePath <path>] [-PassThru <host>:<port>] [-NoACK] [-Encoding <UTF8 | ASCII | Latin1>] [-TLS <certificate-path>]

Press the 'ESC' key from the console to terminate the program.

Parameters

-Port <port-number>: specifies the TCP port to listen for incoming connections. must be in the range from 1025 to 65535.

e.g. HL7Listener -Port 5000

-FilePath <path>: Specifies the location to save the HL7 messages to. If no path is provided, the messages will be saved to the current path of the console session that ran the application.

e.g. HL7Listener -Port 5000 -FilePath c:\HL7\saved-messages

-PassThru <host>:<port>: Pass any messages received onto the remote host after saving the messages to disk.

e.g. HL7Listener -Port 5000 -FilePath c:\HL7\saved-messages -passthru 192.168.0.50:6000

-NoACK: suppresses acknowledgement messages from being returned regardless of the Accept-Acknowledgement value in the message received.

e.g. HL7Listener -Port 5000 -FilePath c:\test -NoACK

-Encoding <UTF8 | ASCII | Latin1>: Specify an text encoding method for received messages. Optional - defaults to UTF8.

e.g. HL7Listener -Port 5000 -FilePath c:\test -Encoding Latin1

-TLS <certificate-path>|<certificate-thumbprint>: Require clients to connect using TLS. <certificate-path> should refer to a file containing a PFX (PKS12) certificate. User will be prompted for the certificate password (enter if no password). If a certificate thumbprint is provided instead, the Windows certificate store will be searched for a matching certificate instead. The certificate thumbprint option is only supported on Windows platforms, Linux platforms limited to providing a certificate file only. Note: The TLS encryption will only apply to connections from remote clients, it will not apply to -PassThru connections.

The file naming convention of the saved files includes the date time stamp, and random 6 digit sequence number, and the message trigger. e.g. 201505301529_028615_ADT^A01.hl7. If multiple messages are received from the same TCP session, the sequence number will increment for each message. If the TCP connection is closed and reopened for each message sent, each file name will have a non-sequential (random) sequence number.

hl7-listener's People

Contributors

robholme avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

hl7-listener's Issues

How to run HL7 Listener on Linux Server

Hello

First of all, thank you for the HL7 Listener. It works great on Windows.
I am now trying to run Hl7 Listener on Linux Server.

I use:

Alpine Linux v3.16

and I did the first item:
1.) Install the .Net 6.0 SDK for Linux

this is what the installation currently looks like:
image

can you please help me, how can I run this script now with linux, and is it even possible?

Thanks a lot for your reply.

Logging path only for windows

Helllo, program adds "\" to logging path if it doesn't exists, it can be changed to work also with Linux paths using "/"

SSL Support

This is more a feature query. Is there any work already done or plan to support SSL?

Ack is wrong

ackTimestamp is not formatted correctly, the toString method should have "00" as a parameter for correct formatting

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.