hl7v2-net 1.1.5 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/cjs/hl7-client.js CHANGED
@@ -5,7 +5,8 @@ const tslib_1 = require("tslib");
5
5
  const node_net_1 = tslib_1.__importDefault(require("node:net"));
6
6
  const node_tls_1 = tslib_1.__importDefault(require("node:tls"));
7
7
  const node_events_async_1 = require("node-events-async");
8
- const h_l7_request_context_js_1 = require("./h-l7-request-context.js");
8
+ const hl7_request_js_1 = require("./hl7-request.js");
9
+ const hl7_response_js_1 = require("./hl7-response.js");
9
10
  const hl7_router_js_1 = require("./hl7-router.js");
10
11
  const hl7_socket_js_1 = require("./hl7-socket.js");
11
12
  class Hl7Client extends node_events_async_1.AsyncEventEmitter {
@@ -150,10 +151,11 @@ class Hl7Client extends node_events_async_1.AsyncEventEmitter {
150
151
  this._router.use(handler, priority);
151
152
  }
152
153
  _onMessage(message) {
153
- const context = new h_l7_request_context_js_1.HL7RequestContext(this._socket, message);
154
- this._router.handle(context, () => {
155
- if (context.error)
156
- this.emit('error', context.error);
154
+ const req = new hl7_request_js_1.HL7Request(this._socket, message);
155
+ const res = new hl7_response_js_1.HL7Response(req);
156
+ this._router.handle(req, res, () => {
157
+ if (res.errors.length)
158
+ this.emit('error', res.errors[0]);
157
159
  });
158
160
  }
159
161
  }
@@ -0,0 +1,13 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HL7Request = void 0;
4
+ class HL7Request {
5
+ constructor(socket, message) {
6
+ this.socket = socket;
7
+ this.message = message;
8
+ }
9
+ peerIp() {
10
+ return this.socket.peerIp();
11
+ }
12
+ }
13
+ exports.HL7Request = HL7Request;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HL7Response = void 0;
4
+ const hl7v2_1 = require("hl7v2");
5
+ class HL7Response {
6
+ constructor(request) {
7
+ this._finished = false;
8
+ this.errors = [];
9
+ this.request = request;
10
+ this.message = request.message.createAck();
11
+ request.socket.once('send', () => {
12
+ this._finished = true;
13
+ });
14
+ }
15
+ get socket() {
16
+ return this.request.socket;
17
+ }
18
+ get finished() {
19
+ return this._finished;
20
+ }
21
+ failed(error) {
22
+ const msa = this.message.getSegment('MSA');
23
+ if (msa?.field(hl7v2_1.MSASegment.AcknowledgmentCode).getValue() !== 'AE')
24
+ this.message = this.request.message.createNak(this.errors);
25
+ this.errors.push(error);
26
+ this.message.addError(error);
27
+ }
28
+ }
29
+ exports.HL7Response = HL7Response;
package/cjs/hl7-router.js CHANGED
@@ -1,10 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.HL7Router = void 0;
4
- const tslib_1 = require("tslib");
5
- const node_process_1 = tslib_1.__importDefault(require("node:process"));
6
- const hl7v2_dictionary_1 = require("hl7v2-dictionary");
7
- const hl7_exchange_error_js_1 = require("./helpers/hl7-exchange-error.js");
8
4
  class HL7Router {
9
5
  constructor() {
10
6
  this._handlerStack = new Map();
@@ -20,7 +16,7 @@ class HL7Router {
20
16
  list.push(handler);
21
17
  this._needPrepare = true;
22
18
  }
23
- handle(context, callback) {
19
+ handle(req, res, callback) {
24
20
  this._prepareStack(true);
25
21
  let handlerIdx = -1;
26
22
  let callbackCalled = false;
@@ -28,35 +24,35 @@ class HL7Router {
28
24
  if (callbackCalled)
29
25
  return;
30
26
  callbackCalled = true;
31
- context.removeListener('finish', onFinish);
32
27
  callback();
33
28
  };
34
- const onFinish = () => doCallback();
35
- context.once('finish', onFinish);
36
- const next = (err) => {
37
- if (context.finished)
38
- return;
39
- context.error = context.error || err;
29
+ const next = async () => {
40
30
  try {
41
31
  handlerIdx++;
42
32
  const handler = this._handlers[handlerIdx];
43
33
  if (handler) {
44
- handler(context, next);
34
+ if (handler.length < 3) {
35
+ await handler(req, res);
36
+ next();
37
+ return;
38
+ }
39
+ handler(req, res, next);
45
40
  return;
46
41
  }
47
42
  doCallback();
43
+ return;
48
44
  }
49
45
  catch (e) {
50
- next(e);
46
+ res.failed(e);
47
+ return next();
51
48
  }
52
49
  };
53
- next();
50
+ return next();
54
51
  }
55
- _prepareStack(final) {
52
+ _prepareStack(root) {
56
53
  if (!this._needPrepare)
57
54
  return;
58
55
  this._needPrepare = false;
59
- this._handlers = [];
60
56
  Array.from(this._handlerStack.keys())
61
57
  .sort()
62
58
  .forEach(p => {
@@ -70,23 +66,11 @@ class HL7Router {
70
66
  this._handlers.push(h);
71
67
  }
72
68
  });
73
- if (final) {
74
- const finalHandler = (ctx) => {
75
- if (ctx.finished)
69
+ if (root) {
70
+ const finalHandler = (req, res) => {
71
+ if (res.finished)
76
72
  return;
77
- const error = ctx.error ||
78
- new hl7_exchange_error_js_1.HL7ExchangeError('There is not handler to process this message', {
79
- request: ctx.request,
80
- });
81
- const ack = ctx.request.createAck('AE', error);
82
- if ((node_process_1.default?.env.NODE_ENV || '').startsWith('dev')) {
83
- const errSeg = ack.getSegment('ERR');
84
- if (errSeg)
85
- errSeg
86
- .field(hl7v2_dictionary_1.ERRSegment.DiagnosticInformation)
87
- .setValue(error.stack);
88
- }
89
- ctx.end(ack);
73
+ req.socket.sendMessage(res.message);
90
74
  };
91
75
  this._handlers.push(finalHandler);
92
76
  }
package/cjs/hl7-server.js CHANGED
@@ -4,9 +4,12 @@ exports.HL7Server = void 0;
4
4
  const tslib_1 = require("tslib");
5
5
  const node_net_1 = tslib_1.__importDefault(require("node:net"));
6
6
  const node_tls_1 = tslib_1.__importDefault(require("node:tls"));
7
+ const hl7v2_1 = require("hl7v2");
7
8
  const node_events_async_1 = require("node-events-async");
8
- const h_l7_request_context_js_1 = require("./h-l7-request-context.js");
9
+ const uid_1 = require("uid");
9
10
  const hl7_exchange_error_js_1 = require("./helpers/hl7-exchange-error.js");
11
+ const hl7_request_js_1 = require("./hl7-request.js");
12
+ const hl7_response_js_1 = require("./hl7-response.js");
10
13
  const hl7_router_js_1 = require("./hl7-router.js");
11
14
  const hl7_socket_js_1 = require("./hl7-socket.js");
12
15
  class HL7Server extends node_events_async_1.AsyncEventEmitter {
@@ -196,21 +199,23 @@ class HL7Server extends node_events_async_1.AsyncEventEmitter {
196
199
  }
197
200
  _onMessage(message, socket) {
198
201
  const waitPromise = new Promise(resolve => {
199
- const context = new h_l7_request_context_js_1.HL7RequestContext(socket, message);
202
+ if (!message.header.field(hl7v2_1.MSHSegment.MessageControlID).getValue())
203
+ message.header.field(hl7v2_1.MSHSegment.MessageControlID).setValue((0, uid_1.uid)(8));
204
+ const req = new hl7_request_js_1.HL7Request(socket, message);
205
+ const res = new hl7_response_js_1.HL7Response(req);
200
206
  const timeoutTimer = setTimeout(() => {
201
207
  try {
202
- const error = new hl7_exchange_error_js_1.HL7ExchangeError('Response timeout');
203
- const ack = context.request.createAck('AE', error);
204
- context.end(ack);
208
+ res.failed(new hl7_exchange_error_js_1.HL7ExchangeError('Response timeout'));
209
+ res.socket.sendMessage(res.message);
205
210
  }
206
211
  finally {
207
212
  resolve();
208
213
  }
209
214
  }, this.responseTimeout || 30000).unref();
210
- this._router.handle(context, () => {
215
+ this._router.handle(req, res, () => {
211
216
  clearTimeout(timeoutTimer);
212
- if (context.error)
213
- this.emit('error', context.error, socket);
217
+ if (res.errors.length)
218
+ this.emit('error', res.errors[0], socket);
214
219
  resolve();
215
220
  });
216
221
  });
package/cjs/hl7-socket.js CHANGED
@@ -56,9 +56,9 @@ class HL7Socket extends node_events_async_1.AsyncEventEmitter {
56
56
  address() {
57
57
  return this.socket.address();
58
58
  }
59
- uri() {
59
+ peerIp() {
60
60
  const address = this.socket.address();
61
- return address.address + ':' + address.port;
61
+ return address.address;
62
62
  }
63
63
  get writable() {
64
64
  return this.connected && this.socket.writable;
@@ -101,7 +101,7 @@ class HL7Socket extends node_events_async_1.AsyncEventEmitter {
101
101
  const buf = iconv_lite_1.default.encode(str, encoding);
102
102
  this.socket.write(hl7v2_1.VT);
103
103
  this.socket.write(buf);
104
- this.socket.end(hl7v2_1.FS + hl7v2_1.CR);
104
+ this.socket.write(hl7v2_1.FS + hl7v2_1.CR);
105
105
  this.emit('send', message);
106
106
  }
107
107
  catch (err) {
package/cjs/index.js CHANGED
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
- tslib_1.__exportStar(require("./h-l7-request-context.js"), exports);
5
4
  tslib_1.__exportStar(require("./helpers/hl7-exchange-error.js"), exports);
6
5
  tslib_1.__exportStar(require("./hl7-client.js"), exports);
6
+ tslib_1.__exportStar(require("./hl7-request.js"), exports);
7
+ tslib_1.__exportStar(require("./hl7-response.js"), exports);
7
8
  tslib_1.__exportStar(require("./hl7-router.js"), exports);
8
9
  tslib_1.__exportStar(require("./hl7-server.js"), exports);
9
10
  tslib_1.__exportStar(require("./hl7-socket.js"), exports);
package/esm/hl7-client.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import net from 'node:net';
2
2
  import tls from 'node:tls';
3
3
  import { AsyncEventEmitter } from 'node-events-async';
4
- import { HL7RequestContext } from './h-l7-request-context.js';
4
+ import { HL7Request } from './hl7-request.js';
5
+ import { HL7Response } from './hl7-response.js';
5
6
  import { HL7Router } from './hl7-router.js';
6
7
  import { HL7Socket } from './hl7-socket.js';
7
8
  export class Hl7Client extends AsyncEventEmitter {
@@ -146,10 +147,11 @@ export class Hl7Client extends AsyncEventEmitter {
146
147
  this._router.use(handler, priority);
147
148
  }
148
149
  _onMessage(message) {
149
- const context = new HL7RequestContext(this._socket, message);
150
- this._router.handle(context, () => {
151
- if (context.error)
152
- this.emit('error', context.error);
150
+ const req = new HL7Request(this._socket, message);
151
+ const res = new HL7Response(req);
152
+ this._router.handle(req, res, () => {
153
+ if (res.errors.length)
154
+ this.emit('error', res.errors[0]);
153
155
  });
154
156
  }
155
157
  }
@@ -0,0 +1,9 @@
1
+ export class HL7Request {
2
+ constructor(socket, message) {
3
+ this.socket = socket;
4
+ this.message = message;
5
+ }
6
+ peerIp() {
7
+ return this.socket.peerIp();
8
+ }
9
+ }
@@ -0,0 +1,25 @@
1
+ import { MSASegment } from 'hl7v2';
2
+ export class HL7Response {
3
+ constructor(request) {
4
+ this._finished = false;
5
+ this.errors = [];
6
+ this.request = request;
7
+ this.message = request.message.createAck();
8
+ request.socket.once('send', () => {
9
+ this._finished = true;
10
+ });
11
+ }
12
+ get socket() {
13
+ return this.request.socket;
14
+ }
15
+ get finished() {
16
+ return this._finished;
17
+ }
18
+ failed(error) {
19
+ const msa = this.message.getSegment('MSA');
20
+ if (msa?.field(MSASegment.AcknowledgmentCode).getValue() !== 'AE')
21
+ this.message = this.request.message.createNak(this.errors);
22
+ this.errors.push(error);
23
+ this.message.addError(error);
24
+ }
25
+ }
package/esm/hl7-router.js CHANGED
@@ -1,6 +1,3 @@
1
- import process from 'node:process';
2
- import { ERRSegment } from 'hl7v2-dictionary';
3
- import { HL7ExchangeError } from './helpers/hl7-exchange-error.js';
4
1
  export class HL7Router {
5
2
  constructor() {
6
3
  this._handlerStack = new Map();
@@ -16,7 +13,7 @@ export class HL7Router {
16
13
  list.push(handler);
17
14
  this._needPrepare = true;
18
15
  }
19
- handle(context, callback) {
16
+ handle(req, res, callback) {
20
17
  this._prepareStack(true);
21
18
  let handlerIdx = -1;
22
19
  let callbackCalled = false;
@@ -24,35 +21,35 @@ export class HL7Router {
24
21
  if (callbackCalled)
25
22
  return;
26
23
  callbackCalled = true;
27
- context.removeListener('finish', onFinish);
28
24
  callback();
29
25
  };
30
- const onFinish = () => doCallback();
31
- context.once('finish', onFinish);
32
- const next = (err) => {
33
- if (context.finished)
34
- return;
35
- context.error = context.error || err;
26
+ const next = async () => {
36
27
  try {
37
28
  handlerIdx++;
38
29
  const handler = this._handlers[handlerIdx];
39
30
  if (handler) {
40
- handler(context, next);
31
+ if (handler.length < 3) {
32
+ await handler(req, res);
33
+ next();
34
+ return;
35
+ }
36
+ handler(req, res, next);
41
37
  return;
42
38
  }
43
39
  doCallback();
40
+ return;
44
41
  }
45
42
  catch (e) {
46
- next(e);
43
+ res.failed(e);
44
+ return next();
47
45
  }
48
46
  };
49
- next();
47
+ return next();
50
48
  }
51
- _prepareStack(final) {
49
+ _prepareStack(root) {
52
50
  if (!this._needPrepare)
53
51
  return;
54
52
  this._needPrepare = false;
55
- this._handlers = [];
56
53
  Array.from(this._handlerStack.keys())
57
54
  .sort()
58
55
  .forEach(p => {
@@ -66,23 +63,11 @@ export class HL7Router {
66
63
  this._handlers.push(h);
67
64
  }
68
65
  });
69
- if (final) {
70
- const finalHandler = (ctx) => {
71
- if (ctx.finished)
66
+ if (root) {
67
+ const finalHandler = (req, res) => {
68
+ if (res.finished)
72
69
  return;
73
- const error = ctx.error ||
74
- new HL7ExchangeError('There is not handler to process this message', {
75
- request: ctx.request,
76
- });
77
- const ack = ctx.request.createAck('AE', error);
78
- if ((process?.env.NODE_ENV || '').startsWith('dev')) {
79
- const errSeg = ack.getSegment('ERR');
80
- if (errSeg)
81
- errSeg
82
- .field(ERRSegment.DiagnosticInformation)
83
- .setValue(error.stack);
84
- }
85
- ctx.end(ack);
70
+ req.socket.sendMessage(res.message);
86
71
  };
87
72
  this._handlers.push(finalHandler);
88
73
  }
package/esm/hl7-server.js CHANGED
@@ -1,8 +1,11 @@
1
1
  import net from 'node:net';
2
2
  import tls from 'node:tls';
3
+ import { MSHSegment } from 'hl7v2';
3
4
  import { AsyncEventEmitter } from 'node-events-async';
4
- import { HL7RequestContext } from './h-l7-request-context.js';
5
+ import { uid } from 'uid';
5
6
  import { HL7ExchangeError } from './helpers/hl7-exchange-error.js';
7
+ import { HL7Request } from './hl7-request.js';
8
+ import { HL7Response } from './hl7-response.js';
6
9
  import { HL7Router } from './hl7-router.js';
7
10
  import { HL7Socket } from './hl7-socket.js';
8
11
  export class HL7Server extends AsyncEventEmitter {
@@ -192,21 +195,23 @@ export class HL7Server extends AsyncEventEmitter {
192
195
  }
193
196
  _onMessage(message, socket) {
194
197
  const waitPromise = new Promise(resolve => {
195
- const context = new HL7RequestContext(socket, message);
198
+ if (!message.header.field(MSHSegment.MessageControlID).getValue())
199
+ message.header.field(MSHSegment.MessageControlID).setValue(uid(8));
200
+ const req = new HL7Request(socket, message);
201
+ const res = new HL7Response(req);
196
202
  const timeoutTimer = setTimeout(() => {
197
203
  try {
198
- const error = new HL7ExchangeError('Response timeout');
199
- const ack = context.request.createAck('AE', error);
200
- context.end(ack);
204
+ res.failed(new HL7ExchangeError('Response timeout'));
205
+ res.socket.sendMessage(res.message);
201
206
  }
202
207
  finally {
203
208
  resolve();
204
209
  }
205
210
  }, this.responseTimeout || 30000).unref();
206
- this._router.handle(context, () => {
211
+ this._router.handle(req, res, () => {
207
212
  clearTimeout(timeoutTimer);
208
- if (context.error)
209
- this.emit('error', context.error, socket);
213
+ if (res.errors.length)
214
+ this.emit('error', res.errors[0], socket);
210
215
  resolve();
211
216
  });
212
217
  });
package/esm/hl7-socket.js CHANGED
@@ -52,9 +52,9 @@ export class HL7Socket extends AsyncEventEmitter {
52
52
  address() {
53
53
  return this.socket.address();
54
54
  }
55
- uri() {
55
+ peerIp() {
56
56
  const address = this.socket.address();
57
- return address.address + ':' + address.port;
57
+ return address.address;
58
58
  }
59
59
  get writable() {
60
60
  return this.connected && this.socket.writable;
@@ -97,7 +97,7 @@ export class HL7Socket extends AsyncEventEmitter {
97
97
  const buf = iconv.encode(str, encoding);
98
98
  this.socket.write(VT);
99
99
  this.socket.write(buf);
100
- this.socket.end(FS + CR);
100
+ this.socket.write(FS + CR);
101
101
  this.emit('send', message);
102
102
  }
103
103
  catch (err) {
package/esm/index.js CHANGED
@@ -1,6 +1,7 @@
1
- export * from './h-l7-request-context.js';
2
1
  export * from './helpers/hl7-exchange-error.js';
3
2
  export * from './hl7-client.js';
3
+ export * from './hl7-request.js';
4
+ export * from './hl7-response.js';
4
5
  export * from './hl7-router.js';
5
6
  export * from './hl7-server.js';
6
7
  export * from './hl7-socket.js';
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "hl7v2-net",
3
3
  "description": "HL7 v2 server/client for NodeJS",
4
- "version": "1.1.5",
4
+ "version": "1.2.0",
5
5
  "author": "Panates",
6
6
  "license": "MIT",
7
7
  "dependencies": {
8
8
  "@jsopen/objects": "^2.0.2",
9
- "iconv-lite": "^0.6.3",
9
+ "iconv-lite": "^0.7.0",
10
10
  "is-typedarray": "^1.0.0",
11
11
  "node-events-async": "^1.2.0",
12
12
  "ts-gems": "^3.11.3",
@@ -15,8 +15,8 @@
15
15
  "uid": "^2.0.2"
16
16
  },
17
17
  "peerDependencies": {
18
- "hl7v2": "^1.1.5",
19
- "hl7v2-dictionary": "^1.1.5"
18
+ "hl7v2": "^1.2.0",
19
+ "hl7v2-dictionary": "^1.2.0"
20
20
  },
21
21
  "type": "module",
22
22
  "exports": {
@@ -0,0 +1,8 @@
1
+ import type { HL7Message } from 'hl7v2';
2
+ import type { HL7Socket } from './hl7-socket.js';
3
+ export declare class HL7Request {
4
+ readonly socket: HL7Socket;
5
+ readonly message: HL7Message;
6
+ constructor(socket: HL7Socket, message: HL7Message);
7
+ peerIp(): any;
8
+ }
@@ -0,0 +1,13 @@
1
+ import { HL7Message } from 'hl7v2';
2
+ import type { HL7Request } from './hl7-request.js';
3
+ import type { HL7Socket } from './hl7-socket.js';
4
+ export declare class HL7Response {
5
+ protected _finished: boolean;
6
+ readonly request: HL7Request;
7
+ errors: Error[];
8
+ message: HL7Message;
9
+ constructor(request: HL7Request);
10
+ get socket(): HL7Socket;
11
+ get finished(): boolean;
12
+ failed(error: Error): void;
13
+ }
@@ -1,10 +1,11 @@
1
- import type { HL7RequestContext } from './h-l7-request-context.js';
2
- import { HL7Middleware } from './types.js';
1
+ import { HL7Request } from './hl7-request.js';
2
+ import { HL7Response } from './hl7-response.js';
3
+ import type { HL7Middleware } from './types.js';
3
4
  export declare class HL7Router {
4
- protected _handlerStack: Map<number, (HL7Router | HL7Middleware)[]>;
5
+ protected _handlerStack: Map<number, (HL7Middleware | HL7Router)[]>;
5
6
  protected _needPrepare: boolean;
6
7
  protected _handlers: HL7Middleware[];
7
8
  use(handler: HL7Middleware | HL7Router, priority?: number): void;
8
- handle(context: HL7RequestContext, callback: () => void): void;
9
- protected _prepareStack(final?: boolean): void;
9
+ handle(req: HL7Request, res: HL7Response, callback: () => void): void | Promise<void>;
10
+ protected _prepareStack(root?: boolean): void;
10
11
  }
@@ -22,7 +22,7 @@ export declare class HL7Socket extends AsyncEventEmitter<HL7Socket.Events> {
22
22
  get maxBufferSize(): number;
23
23
  set maxBufferSize(value: number);
24
24
  address(): {} | import("net").AddressInfo;
25
- uri(): string;
25
+ peerIp(): any;
26
26
  get writable(): boolean;
27
27
  close(waitRunningHandlers?: number): Promise<void>;
28
28
  sendMessage(message: HL7Message): void;
package/types/index.d.cts CHANGED
@@ -1,6 +1,7 @@
1
- export * from './h-l7-request-context.js';
2
1
  export * from './helpers/hl7-exchange-error.js';
3
2
  export * from './hl7-client.js';
3
+ export * from './hl7-request.js';
4
+ export * from './hl7-response.js';
4
5
  export * from './hl7-router.js';
5
6
  export * from './hl7-server.js';
6
7
  export * from './hl7-socket.js';
package/types/index.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- export * from './h-l7-request-context.js';
2
1
  export * from './helpers/hl7-exchange-error.js';
3
2
  export * from './hl7-client.js';
3
+ export * from './hl7-request.js';
4
+ export * from './hl7-response.js';
4
5
  export * from './hl7-router.js';
5
6
  export * from './hl7-server.js';
6
7
  export * from './hl7-socket.js';
package/types/types.d.ts CHANGED
@@ -1,3 +1,4 @@
1
- import type { HL7RequestContext } from './h-l7-request-context.js';
2
- export type NextFunction = (error?: Error) => void;
3
- export type HL7Middleware = (context: HL7RequestContext, next: NextFunction) => void;
1
+ import { HL7Request } from './hl7-request.js';
2
+ import { HL7Response } from './hl7-response.js';
3
+ export type NextFunction = () => void | Promise<void>;
4
+ export type HL7Middleware = ((req: HL7Request, res: HL7Response) => void) | ((req: HL7Request, res: HL7Response) => Promise<void>) | ((req: HL7Request, res: HL7Response, next: NextFunction) => void);
@@ -1,28 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HL7RequestContext = void 0;
4
- const hl7v2_1 = require("hl7v2");
5
- const node_events_async_1 = require("node-events-async");
6
- const uid_1 = require("uid");
7
- class HL7RequestContext extends node_events_async_1.AsyncEventEmitter {
8
- constructor(socket, message) {
9
- super();
10
- this._finished = false;
11
- this.socket = socket;
12
- this.request = message;
13
- if (!message.header.field(hl7v2_1.MSHSegment.MessageControlID).getValue())
14
- message.header.field(hl7v2_1.MSHSegment.MessageControlID).setValue((0, uid_1.uid)(8));
15
- }
16
- get finished() {
17
- return this._finished || !this.socket.connected;
18
- }
19
- end(message) {
20
- if (this.finished || !this.socket.connected)
21
- return;
22
- if (message)
23
- this.socket.sendMessage(message);
24
- this._finished = true;
25
- this.emit('finish', message);
26
- }
27
- }
28
- exports.HL7RequestContext = HL7RequestContext;
@@ -1,24 +0,0 @@
1
- import { MSHSegment } from 'hl7v2';
2
- import { AsyncEventEmitter } from 'node-events-async';
3
- import { uid } from 'uid';
4
- export class HL7RequestContext extends AsyncEventEmitter {
5
- constructor(socket, message) {
6
- super();
7
- this._finished = false;
8
- this.socket = socket;
9
- this.request = message;
10
- if (!message.header.field(MSHSegment.MessageControlID).getValue())
11
- message.header.field(MSHSegment.MessageControlID).setValue(uid(8));
12
- }
13
- get finished() {
14
- return this._finished || !this.socket.connected;
15
- }
16
- end(message) {
17
- if (this.finished || !this.socket.connected)
18
- return;
19
- if (message)
20
- this.socket.sendMessage(message);
21
- this._finished = true;
22
- this.emit('finish', message);
23
- }
24
- }
@@ -1,12 +0,0 @@
1
- import { HL7Message } from 'hl7v2';
2
- import { AsyncEventEmitter } from 'node-events-async';
3
- import { HL7Socket } from './hl7-socket.js';
4
- export declare class HL7RequestContext extends AsyncEventEmitter {
5
- protected _finished: boolean;
6
- readonly socket: HL7Socket;
7
- readonly request: HL7Message;
8
- error?: Error;
9
- constructor(socket: HL7Socket, message: HL7Message);
10
- get finished(): boolean;
11
- end(message?: HL7Message): void;
12
- }