Optional
props: ClientBuilderOptionsPassing the options to build the batch.
+End Batch
+At the conclusion of building the batch, +(Usually add method will be before this) will add the Batch Trailing Segment (BTS) to the end. +If a message (MSH) is added after this, +that message (MSH) will get added to the first BHS found if there is more than one. +This might be typical inside a file output process. +FileBatch for more information.
+1.0.0
+Get Messages within a submitted Batch
+Returns an array of messages or a HL7ParserError will throw.
+This will parse the passed on "text" +in the contractor options and get all the messages (MSH) segments within it and return an array of them.
+1.0.0
+try {
// parser the batch
const parser = new Batch({ text: loadedMessage })
// load the messages
const allMessage = parser.messages()
// loop messages
allMessage.forEach((message: Message) => {
const messageParsed = new Message({ text: message.toString() })
})
} catch (e) {
// error here
}
+
+
+Create File from a Batch
+File Name
+Optional
newLine: booleanProvide a New Line
+Optional
location: stringWhere to save the exported file
+Custom extension of the file. +Default: hl7
+Will procure a file of the saved MSH in the proper format +that includes a FHS and FTS segments with the possibility of more than one BHS segments inside with one or more MSH inside each BHS groups.
+1.0.0
+const batch = new Batch({text: hl7_batch_string})
batch.toFile('readTestBHS', true, 'temp/')
+
+
+You can set an extension
parameter on Batch to set a custom extension if you don't want to be HL7.
Connection Class
+The client parent that we are connecting too.
+The individual port connection options. +Some values will be defaulted by the parent server connection.
+The function that will send the returned information back to the client after we got a response from the server.
+Send a HL7 Message to the Listener
+This function sends a message/batch/file batch to the remote side. +It has the ability, if set to auto-retry (defaulted to 1 re-connect before connection closes)
+1.0.0
+
// the OB was set from the orginial 'createConnection' method.
let message = new Message({
messageHeader: {
msh_9_1: "ADT",
msh_9_2: "A01",
msh_11_1: "P" // marked for production here in the example
}async sendMessage (message: Message | Batch | FileBatch): void {
})
await OB.sendMessage(message)
+
+
+File Batch Class
+Create a File Batch (FHS) which will could include many BHS/BTS segments, +which could include many Message (MSH) segments to output the contents into a file on the OS. +These files could then be used to send manually or read by another system to interpret the contents. +This class helps +in generating the particulars for that file generation to make sure that it follows the correct format.
+1.0.0
+Optional
props: ClientBuilderFileOptionsPassing the options to build the file batch.
+End Batch
+At the conclusion of building the file batch, +(Usually add method will be before this) will add the File Batch Trailing Segment (FTS) to the end. +If a message (MSH) is added after this, +that message (MSH) will get added to the first BHS found if there is one, otherwise it will just be added. +This might be typical inside a file output process.
+1.0.0
+Get Messages within a submitted File Batch
+Returns an array of messages or a HL7ParserError will throw.
+This will parse the passed on "text" +in the contractor options and get all the messages (MSH) segments within it and return an array of them. +This will happen regardless of the depth of the segments.
+1.0.0
+try {
// parser the batch
const parser = new FileBatch({ text: loadedMessage })
// load the messages
const allMessage = parser.messages()
// loop messages
allMessage.forEach((message: Message) => {
const messageParsed = new Message({ text: message.toString() })
})
} catch (e) {
// error here
}
+
+
+Used to indicate a fatal failure of a connection.
+Used to indicate a fatal failure of a connection.
+Optional
message: stringInbound Request
+Process the Inbound Response from the Server
+Message Class
+Build the Message or Parse It
+Optional
props: ClientBuilderMessageOptions1.0.0
+If you are processing a full message, do this:
const message = new Message({text: "The HL7 Message Here"})
... output cut ...
If you are building out a message, do this:
const message = new Message({messageHeader: { ... MSH Header Required Values Here ... }});
which then you add segments with fields and values for your Hl7 message.
+
+
+Add a new segment to a message.
+1.0.0
+Creating a new segment adds an empty segment to the message. +It could be blank, or it could have values added into it.
+const message = new Message({. the correct options here .})
const segment = message.addSegment('PV1')
segment.set('PV1.1', 'Value Here');
// When doing this, it overall adds it to the 'message' object
// when your output is the final result.
const finalMessage = message.toString();
+
+
+Protected
createProtected
pathCreate File from a Message
+File Name
+Optional
newLine: booleanProvide a New Line
+Optional
location: stringWhere to save the exported file
+Custom extension of the file. +Default: hl7
+Will procure a file of the saved MSH in the proper format +that includes a FHS and FTS segments.
+1.0.0
+const message = new Message({text: hl7_batch_string})
message.toFile('readTestMSH', true, 'temp/')
+
+
+You can set an extension
parameter on Batch to set a custom extension if you don't want to be HL7.
Protected
writeNode Base
+Client Class
+This creates a new client to a new server connection. +This is the remote side in which we will connect. +Then using the createConnection method, you establish a connection to the port.
+Optional
props: ClientOptionsConnect to a listener to a specified port.
+This individual port connections which can override the main server connection properties. +Some properties from the server build could be defaulted if not specified here.
+The function that the client will process if and when they get a response from the server. +It follows an async/await function.
+1.0.0
+const outGoing = client.createOutbound({port: 3000}, async (res: InboundResponse) => {})
+
+
+Review the InboundResponse on the properties returned.
+Hl7 Specification Version 2.1
+Build HL7 MSH Segment
+Check MSH Header Properties for HL7 2.1
+boolean
+Hl7 Specification Version 2.2
+Build HL7 MSH Segment
+Check MSH Header Properties for HL7 2.2
+boolean
+Hl7 Specification Version 2.3
+Build HL7 MSH Segment
+Check MSH Header Properties for HL7 2.3
+boolean
+Hl7 Specification Version 2.3.1
+Build HL7 MSH Segment
+Check MSH Header Properties for HL7 2.3.1
+boolean
+Hl7 Specification Version 2.4
+Build HL7 MSH Segment
+Check MSH Header Properties for HL7 2.4
+boolean
+Hl7 Specification Version 2.5
+Build HL7 MSH Segment
+Check MSH Header Properties for HL7 2.5
+boolean
+Hl7 Specification Version 2.5.1
+Build HL7 MSH Segment
+Check MSH Header Properties for HL7 2.5.1
+boolean
+Hl7 Specification Version 2.6
+Build HL7 MSH Segment
+Check MSH Header Properties for HL7 2.6
+boolean
+Hl7 Specification Version 2.7
+Build HL7 MSH Segment
+Check MSH Header Properties for HL7 2.7
+boolean
+Hl7 Specification Version 2.7.1
+Build HL7 MSH Segment
+Check MSH Header Properties for HL7 2.7
+boolean
+Hl7 Specification Version 2.8
+Build HL7 MSH Segment
+Check MSH Header Properties for HL7 2.7
+boolean
+Base Class of an HL7 Specification
+Check MSH Header Properties
+boolean
+Type of Segments Values
+Usually within each Field, seperated by ^
+The escape string used within the code.
+The field of each segment. Usually separated with a |
+Usually within each Component, seperated by &
+Usually each line of the overall HL7 Message.
+Usually within each Field, seperated by ~
+State of the Connected to the Server
+The client connection is closed.
+The client is closing the connection by force or by timeout
+The client is connected to the server.
+The client is trying to connect to the server.
+The client is open, but not yet trying to connect to the server.
+Calculate exponential backoff/retry delay. +Where attempts >= 1, exp > 1
+expBackoff(1000, 30000, attempts)
---------------------------------
attempts | possible delay
----------+----------------------
1 | 1000 to 2000
2 | 1000 to 4000
3 | 1000 to 8000
4 | 1000 to 16000
5 | 1000 to 30000
---------------------------------
Attempts required before max delay is possible = Math.ceil(Math.log(high/step) / Math.log(exp))
+
+
+1.0.0
+++A pure Node.js HL7 Client +that allows for communication to a HL7 Broker/Server that can send properly formatted HL7 messages with ease. +Separately, it can also parse and extract out any segment within an HL7 message. +Messages could come as one after the other (MSH), as a Batch (BHS), or in a batch file (FHS).
+
Included in this package:
+Benefits:
+node-hl7-server
npm package that in conjunction with this one could create a powerful HL7 system.If you are using this NPM package, please consider giving it a :star: star. +This will increase its visibility and solicit more contribution from the outside.
+Install using NPM into your package:
+npm install node-hl7-client
+
+
+This NPM is designed to support medical applications with potential impact on patient care and diagnoses, +this package documentation, +and its peer package node-hl7-server follow these definitions when it comes to the documentation.
+Keywords such as "MUST", "MUST NOT", "REQUIRED", +"SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL". +These are standardized terms for technology documentation interoperability. +These words should have these meaning when you are reading them. +They might be sans uppercase throughout the documentation, but they would have the same meaning regardless.
+It's way too extensive to include on this README alone. +Please read this to gain more information. +GitHub pages now has mostly full listing of all methods, classes, etc., but only for the most recent release.
+Licensed under MIT.
+Client Builder Options
+Optional
dateThe date type for the date field. Usually generated at the time of the class being initialized.
+Optional
extensionExtension of the file when it gets created.
+Optional
fileThe file as a buffer passed onto the constructor
+Optional
fullIf you are providing the full file path, please set it here.
+Optional
locationLocation where the file will be saved. +If this is not set, +the files will get save it in the same directory of the executing file that is calling the function. +If running this package inside a DOCKER/KUBERNETES node, +if the container is destroyed and the files are not saved on a folder mounted outside the node, +the files will be lost on restart.
+Optional
newAt the end of each line, add this as the new line character.
+Optional
parsingParsing a message?
+Optional
separatorThe character used to separate different components.
+Optional
separatorThe character used to escape characters that need it in order for the computer to interpret the string correctly.
+Optional
separatorThe character used for separating fields.
+Optional
separatorThe character used for repetition field/values pairs.
+Optional
separatorThe character used to have subcomponents seperated.
+Optional
specificationThe HL7 spec we are going to be creating. +This will be formatted into the MSH header by default.
+Optional
textThe HL7 string that we are going to parse.
+Client Builder Options
+Optional
dateThe date type for the date field. Usually generated at the time of the class being initialized.
+Optional
messageMSH Header Options
+Optional
newAt the end of each line, add this as the new line character.
+Optional
parsingParsing a message?
+Optional
separatorThe character used to separate different components.
+Optional
separatorThe character used to escape characters that need it in order for the computer to interpret the string correctly.
+Optional
separatorThe character used for separating fields.
+Optional
separatorThe character used for repetition field/values pairs.
+Optional
separatorThe character used to have subcomponents seperated.
+Optional
specificationThe HL7 spec we are going to be creating. +This will be formatted into the MSH header by default.
+Optional
textThe HL7 string that we are going to parse.
+Client Builder Options
+Optional
dateThe date type for the date field. Usually generated at the time of the class being initialized.
+Optional
newAt the end of each line, add this as the new line character.
+Optional
parsingParsing a message?
+Optional
separatorThe character used to separate different components.
+Optional
separatorThe character used to escape characters that need it in order for the computer to interpret the string correctly.
+Optional
separatorThe character used for separating fields.
+Optional
separatorThe character used for repetition field/values pairs.
+Optional
separatorThe character used to have subcomponents seperated.
+Optional
specificationThe HL7 spec we are going to be creating. +This will be formatted into the MSH header by default.
+Optional
textThe HL7 string that we are going to parse.
+Optional
autoIf set to false, you have to tell the system to start trying to connect +by sending 'start' method.
+Optional
connectionHow long a connection attempt checked before ending the socket and attempting again. +Min. is 1000 (1 second) and Max. is 60000 (60 seconds.) +Note: Less than 10 seconds could cause some serious issues. +Use with caution.
+Optional
encodingEncoding of the messages we expect from the HL7 message.
+Optional
hostHost - You can do a FQDN or the IPv(4|6) address.
+Optional
ipv4IPv4 - If this is set to true, only IPv4 address will be used and also validated upon installation from the hostname property.
+Optional
ipv6IPv6 - If this is set to true, only IPv6 address will be used and also validated upon installation from the hostname property.
+Optional
maxMax attempts +to send the message before an error is thrown if we are in the process of re-attempting to connect to the server. +Has to be greater than 1. You cannot exceed 50.
+Optional
maxIf we are trying to establish an initial connection to the server, let's end it after this many attempts. +The time between re-connects is determined by connectionTimeout. +You cannot exceed 50.
+Optional
maxMax Connections this connection makes. +Has to be greater than 1.
+Optional
maxThe number of times a connection timeout occurs until it stops attempting and just stops.
+The port we should connect to on the server.
+Optional
retryMax delay, in milliseconds, for exponential-backoff when reconnecting
+Optional
retryStep size, in milliseconds, for exponential-backoff when reconnecting
+Optional
socketAdditional options when creating the TCP socket with net.connect().
+Optional
tlsEnable TLS, or set TLS specific options like overriding the CA for +self-signed certificates.
+Optional
waitWait for ACK before sending a new message. +If this is set to false, you can send as many messages as you want but since you are not expecting any ACK from a +previous message sent before sending another one. +This does not stop the "total acknowledgement" counter on the +client object to stop increasing.
+Optional
connectionHow long a connection attempt checked before ending the socket and attempting again. +Min. is 1000 (1 second) and Max. is 60000 (60 seconds.) +Note: Less than 10 seconds could cause some serious issues. +Use with caution.
+Optional
hostHost - You can do a FQDN or the IPv(4|6) address.
+Optional
ipv4IPv4 - If this is set to true, only IPv4 address will be used and also validated upon installation from the hostname property.
+Optional
ipv6IPv6 - If this is set to true, only IPv6 address will be used and also validated upon installation from the hostname property.
+Optional
maxMax attempts +to send the message before an error is thrown if we are in the process of re-attempting to connect to the server. +Has to be greater than 1. You cannot exceed 50.
+Optional
maxIf we are trying to establish an initial connection to the server, let's end it after this many attempts. +The time between re-connects is determined by connectionTimeout. +You cannot exceed 50.
+Optional
maxThe number of times a connection timeout occurs until it stops attempting and just stops.
+Optional
retryMax delay, in milliseconds, for exponential-backoff when reconnecting
+Optional
retryStep size, in milliseconds, for exponential-backoff when reconnecting
+Optional
socketAdditional options when creating the TCP socket with net.connect().
+Optional
tlsEnable TLS, or set TLS specific options like overriding the CA for +self-signed certificates.
+Node Base
+The connection has been closed manually. You have to start the connection again.
+The connection is made.
+The connection is being (re)established or attempting to re-connect.
+The handle is open to do a manual start to connect.
+The total acknowledged for this connection.
+The connection has an error.
+The total sent for this connection.
+The connection has timeout. Review "client.error" event for the reason.
+HL7 2.1 MSH Specification
+Only the required ones are listed below for typescript validation to pass.
+1.0.0
+To make it easier on having to fill this out each time, you may do this in your code:
+// Make this a constant in your application.
const MSH_HEADER: HL7_2_1_MSH = {
msh_9: "ADT",
msh_11_1: "D",
}
+
+
+MSH.7 (Date Time) and MSH.12 (HL7 Spec) are filled in automatically at the time of creation. +and when you create your Message class:
+const message = new Message({ ...MSH_HEADER, msh_10: 'unique id' })
+
+
+so this way your code is much neater.
+Optional
msh_Message Control ID
+This ID is unique to the message being sent +so the client can track +to see if they get a response back from the server that this particular message was successful. +Max 20 characters.
+1.0.0
+Random 20 Character String
+
+
+randomString if this is set to nothing or not included.
+Processing ID
+Message Code
+HL7 2.2 MSH Specification
+Only the required ones are listed below for typescript validation to pass.
+1.0.0
+To make it easier on having to fill this out each time, you may do this in your code:
+// Make this a constant in your application.
const MSH_HEADER: HL7_2_2_MSH = {
msh_9_1: "ADT",
msh_9_1: "A01",
msh_11: "D",
}
+
+
+MSH.7 (Date Time) and MSH.12 (HL7 Spec) are filled in automatically at the time of creation. +and when you create your Message class:
+const message = new Message({ ...MSH_HEADER, msh_10: 'unique id' })
+
+
+so this way your code is much neater.
+Optional
msh_Message Control ID
+This ID is unique to the message being sent +so the client can track +to see if they get a response back from the server that this particular message was successful. +Max 20 characters.
+1.0.0
+Random 20 Character String
+
+
+randomString if this is set to nothing or not included.
+Processing ID
+Message Code
+Trigger Event
+HL7 2.3.1 MSH Specification
+Only the required ones are listed below for typescript validation to pass.
+1.0.0
+To make it easier on having to fill this out each time, you may do this in your code:
+// Make this a constant in your application.
const MSH_HEADER: HL7_2_3_1_MSH = {
msh_9_1: "ADT",
msh_9_2: "A01",
msh_11_1: "D",
msh_11_2: "A",
}
+
+
+MSH.7 (Date Time) and MSH.12 (HL7 Spec) are filled in automatically at the time of creation. +and when you create your Message class:
+const message = new Message({ ...MSH_HEADER, msh_10: 'unique id' })
+
+
+so this way your code is much neater.
+Optional
msh_Message Control ID
+This ID is unique to the message being sent +so the client can track +to see if they get a response back from the server that this particular message was successful. +Max 20 characters.
+1.0.0
+Random 20 Character String
+
+
+randomString if this is set to nothing or not included.
+Processing ID
+Optional
msh_Processing Mode
+Message Code
+Trigger Event
+HL7 2.3 MSH Specification
+Only the required ones are listed below for typescript validation to pass.
+1.0.0
+To make it easier on having to fill this out each time, you may do this in your code:
+// Make this a constant in your application.
const MSH_HEADER: HL7_2_3_MSH = {
msh_9_1: "ADT",
msh_9_2: "A01",
msh_11_1: "D",
msh_11_2: "A",
}
+
+
+MSH.7 (Date Time) and MSH.12 (HL7 Spec) are filled in automatically at the time of creation. +and when you create your Message class:
+const message = new Message({ ...MSH_HEADER, msh_10: 'unique id' })
+
+
+so this way your code is much neater.
+Optional
msh_Message Control ID
+This ID is unique to the message being sent +so the client can track +to see if they get a response back from the server that this particular message was successful. +Max 20 characters.
+1.0.0
+Random 20 Character String
+
+
+randomString if this is set to nothing or not included.
+Processing ID
+Optional
msh_Processing Mode
+Message Code
+Trigger Event
+HL7 2.4 MSH Specification
+Only the required ones are listed below for typescript validation to pass.
+1.0.0
+To make it easier on having to fill this out each time, you may do this in your code:
+// Make this a constant in your application.
const MSH_HEADER: HL7_2_4_MSH = {
msh_9_1: "ADT",
msh_9_2: "A01",
msh_11_1: "D",
msh_11_2: "A",
}
+
+
+MSH.7 (Date Time) and MSH.12 (HL7 Spec) are filled in automatically at the time of creation. +and when you create your Message class:
+const message = new Message({ ...MSH_HEADER, msh_10: 'unique id' })
+
+
+so this way your code is much neater.
+Optional
msh_Message Control ID
+This ID is unique to the message being sent +so the client can track +to see if they get a response back from the server that this particular message was successful. +Max 20 characters.
+1.0.0
+Random 20 Character String
+
+
+randomString if this is set to nothing or not included.
+Processing ID
+Optional
msh_Processing Mode
+Message Code
+Trigger Event
+Optional
msh_Message Structure
+HL7 2.5.1 MSH Specification
+Only the required ones are listed below for typescript validation to pass.
+1.0.0
+To make it easier on having to fill this out each time, you may do this in your code:
+// Make this a constant in your application.
const MSH_HEADER: HL7_2_5_1_MSH = {
msh_9_1: "ADT",
msh_9_2: "A01",
msh_11_1: "D",
msh_11_2: "A",
}
+
+
+MSH.7 (Date Time) and MSH.12 (HL7 Spec) are filled in automatically at the time of creation. +and when you create your Message class:
+const message = new Message({ ...MSH_HEADER, msh_10: 'unique id' })
+
+
+so this way your code is much neater.
+Optional
msh_Message Control ID
+This ID is unique to the message being sent +so the client can track +to see if they get a response back from the server that this particular message was successful. +Max 20 characters.
+1.0.0
+Random 20 Character String
+
+
+randomString if this is set to nothing or not included.
+Processing ID
+Optional
msh_Processing Mode
+Message Code
+Trigger Event
+Optional
msh_Message Structure
+HL7 2.5 MSH Specification
+Only the required ones are listed below for typescript validation to pass.
+1.0.0
+To make it easier on having to fill this out each time, you may do this in your code:
+// Make this a constant in your application.
const MSH_HEADER: HL7_2_5_MSH = {
msh_9_1: "ADT",
msh_9_2: "A01",
msh_11_1: "D",
msh_11_2: "A",
}
+
+
+MSH.7 (Date Time) and MSH.12 (HL7 Spec) are filled in automatically at the time of creation. +and when you create your Message class:
+const message = new Message({ ...MSH_HEADER, msh_10: 'unique id' })
+
+
+so this way your code is much neater.
+Optional
msh_Message Control ID
+This ID is unique to the message being sent +so the client can track +to see if they get a response back from the server that this particular message was successful. +Max 20 characters.
+1.0.0
+Random 20 Character String
+
+
+randomString if this is set to nothing or not included.
+Processing ID
+Optional
msh_Processing Mode
+Message Code
+Trigger Event
+Optional
msh_Message Structure
+HL7 2.6 MSH Specification
+Only the required ones are listed below for typescript validation to pass.
+1.0.0
+To make it easier on having to fill this out each time, you may do this in your code:
+// Make this a constant in your application.
const MSH_HEADER: HL7_2_6_MSH = {
msh_9_1: "ADT",
msh_9_2: "A01",
msh_11_1: "D",
msh_11_2: "A",
}
+
+
+MSH.7 (Date Time) and MSH.12 (HL7 Spec) are filled in automatically at the time of creation. +and when you create your Message class:
+const message = new Message({ ...MSH_HEADER, msh_10: 'unique id' })
+
+
+so this way your code is much neater.
+Optional
msh_Message Control ID
+This ID is unique to the message being sent +so the client can track +to see if they get a response back from the server that this particular message was successful. +Max 20 characters.
+1.0.0
+Random 20 Character String
+
+
+randomString if this is set to nothing or not included.
+Processing ID
+Optional
msh_Processing Mode
+Message Code
+Trigger Event
+Optional
msh_Message Structure
+HL7 2.7.1 MSH Specification
+Only the required ones are listed below for typescript validation to pass.
+1.0.0
+To make it easier on having to fill this out each time, you may do this in your code:
+// Make this a constant in your application.
const MSH_HEADER: HL7_2_7_MSH = {
msh_9_1: "ADT",
msh_9_2: "A01",
msh_11_1: "D",
}
+
+
+MSH.7 (Date Time) and MSH.12 (HL7 Spec) are filled in automatically at the time of creation. +and when you create your Message class:
+const message = new Message({ ...MSH_HEADER, msh_10: 'unique id' })
+
+
+so this way your code is much neater.
+Optional
msh_Message Control ID
+Processing ID
+Optional
msh_Processing Mode
+Message Code
+Trigger Event
+Optional
msh_Message Structure
+HL7 2.7 MSH Specification
+Only the required ones are listed below for typescript validation to pass.
+1.0.0
+To make it easier on having to fill this out each time, you may do this in your code:
+// Make this a constant in your application.
const MSH_HEADER: HL7_2_7_MSH = {
msh_9_1: "ADT",
msh_9_2: "A01",
msh_11_1: "D",
}
+
+
+MSH.7 (Date Time) and MSH.12 (HL7 Spec) are filled in automatically at the time of creation. +and when you create your Message class:
+const message = new Message({ ...MSH_HEADER, msh_10: 'unique id' })
+
+
+so this way your code is much neater.
+Optional
msh_Message Control ID
+Processing ID
+Optional
msh_Processing Mode
+Message Code
+Trigger Event
+Optional
msh_Message Structure
+HL7 2.8 MSH Specification
+Only the required ones are listed below for typescript validation to pass.
+1.0.0
+To make it easier on having to fill this out each time, you may do this in your code:
+// Make this a constant in your application.
const MSH_HEADER: HL7_2_8_MSH = {
msh_9_1: "ADT",
msh_9_2: "A01",
msh_11_1: "D",
}
+
+
+MSH.7 (Date Time) and MSH.12 (HL7 Spec) are filled in automatically at the time of creation. +and when you create your Message class:
+const message = new Message({ ...MSH_HEADER, msh_10: 'unique id' })
+
+
+so this way your code is much neater.
+Optional
msh_Message Control ID
+Processing ID
+Optional
msh_Processing Mode
+Message Code
+Trigger Event
+Optional
msh_Message Structure
+Outbound Handler
+MSH Unions
+
Batch Class
+Description
Creating a Batch (BHS) which could include hundreds of MSH segments for processing. +Normally used in large data processing. +However, the server usually breaks down a batch MSH into single "elements" to process them and returns that the batch.
+Since
1.0.0
+