hl7v2 1.4.2 → 1.4.4
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-message-node.js +54 -22
- package/cjs/hl7-message.js +28 -11
- package/cjs/hl7-segment.js +0 -9
- package/cjs/index.js +1 -0
- package/esm/hl7-message-node.js +54 -22
- package/esm/hl7-message.js +28 -11
- package/esm/hl7-segment.js +0 -9
- package/esm/index.js +1 -0
- package/package.json +2 -2
- package/types/hl7-message-node.d.ts +4 -4
- package/types/hl7-message.d.ts +2 -2
- package/types/hl7-segment.d.ts +0 -1
- package/types/index.d.cts +1 -0
- package/types/index.d.ts +1 -0
package/cjs/hl7-message-node.js
CHANGED
|
@@ -11,52 +11,84 @@ class HL7MessageNode {
|
|
|
11
11
|
/**
|
|
12
12
|
* Searches for a segment of a given type
|
|
13
13
|
*/
|
|
14
|
-
getSegment(segmentType,
|
|
14
|
+
getSegment(segmentType, indexOrAfter) {
|
|
15
15
|
let k = 0;
|
|
16
|
-
for (
|
|
16
|
+
for (let i = 0; i < this.items.length; i++) {
|
|
17
|
+
const seg = this.items[i];
|
|
17
18
|
if (seg instanceof hl7_segment_js_1.HL7Segment && seg.segmentType === segmentType) {
|
|
18
|
-
if (!
|
|
19
|
+
if (!indexOrAfter)
|
|
19
20
|
return seg;
|
|
20
|
-
|
|
21
|
+
if (typeof indexOrAfter === 'number') {
|
|
22
|
+
if (indexOrAfter === k++)
|
|
23
|
+
return seg;
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
if (indexOrAfter === seg)
|
|
27
|
+
indexOrAfter = undefined;
|
|
28
|
+
}
|
|
21
29
|
}
|
|
22
30
|
}
|
|
23
31
|
}
|
|
24
32
|
/**
|
|
25
33
|
* Searches for a segment of a given type in reverse order
|
|
26
34
|
*/
|
|
27
|
-
getSegmentFromLast(segmentType,
|
|
28
|
-
|
|
29
|
-
|
|
35
|
+
getSegmentFromLast(segmentType, indexOrAfter) {
|
|
36
|
+
let k = 0;
|
|
37
|
+
for (let i = this.items.length - 1; i >= 0; i--) {
|
|
38
|
+
const seg = this.items[i];
|
|
30
39
|
if (seg instanceof hl7_segment_js_1.HL7Segment && seg.segmentType === segmentType) {
|
|
31
|
-
if (!
|
|
40
|
+
if (!indexOrAfter)
|
|
32
41
|
return seg;
|
|
33
|
-
|
|
42
|
+
if (typeof indexOrAfter === 'number') {
|
|
43
|
+
if (indexOrAfter === k++)
|
|
44
|
+
return seg;
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
if (indexOrAfter === seg)
|
|
48
|
+
indexOrAfter = undefined;
|
|
49
|
+
}
|
|
34
50
|
}
|
|
35
51
|
}
|
|
36
52
|
}
|
|
37
53
|
/**
|
|
38
54
|
* Searches for a node of a given name
|
|
39
55
|
*/
|
|
40
|
-
getNode(nodeName,
|
|
56
|
+
getNode(nodeName, indexOrAfter) {
|
|
41
57
|
let k = 0;
|
|
42
|
-
for (
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
58
|
+
for (let i = 0; i < this.items.length; i++) {
|
|
59
|
+
const node = this.items[i];
|
|
60
|
+
if (node instanceof HL7MessageNode && node.name === nodeName) {
|
|
61
|
+
if (!indexOrAfter)
|
|
62
|
+
return node;
|
|
63
|
+
if (typeof indexOrAfter === 'number') {
|
|
64
|
+
if (indexOrAfter === k++)
|
|
65
|
+
return node;
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
if (indexOrAfter === node)
|
|
69
|
+
indexOrAfter = undefined;
|
|
70
|
+
}
|
|
47
71
|
}
|
|
48
72
|
}
|
|
49
73
|
}
|
|
50
74
|
/**
|
|
51
75
|
* Searches for a node of a given name in reverse order
|
|
52
76
|
*/
|
|
53
|
-
getNodeFromLast(nodeName,
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
77
|
+
getNodeFromLast(nodeName, indexOrAfter) {
|
|
78
|
+
let k = 0;
|
|
79
|
+
for (let i = this.items.length - 1; i >= 0; i--) {
|
|
80
|
+
const node = this.items[i];
|
|
81
|
+
if (node instanceof HL7MessageNode && node.name === nodeName) {
|
|
82
|
+
if (!indexOrAfter)
|
|
83
|
+
return node;
|
|
84
|
+
if (typeof indexOrAfter === 'number') {
|
|
85
|
+
if (indexOrAfter === k++)
|
|
86
|
+
return node;
|
|
87
|
+
}
|
|
88
|
+
else {
|
|
89
|
+
if (indexOrAfter === node)
|
|
90
|
+
indexOrAfter = undefined;
|
|
91
|
+
}
|
|
60
92
|
}
|
|
61
93
|
}
|
|
62
94
|
}
|
package/cjs/hl7-message.js
CHANGED
|
@@ -63,26 +63,43 @@ class HL7Message {
|
|
|
63
63
|
/**
|
|
64
64
|
* Searches for a segment of a given type
|
|
65
65
|
*/
|
|
66
|
-
getSegment(segmentType,
|
|
66
|
+
getSegment(segmentType, indexOrAfter) {
|
|
67
67
|
let k = 0;
|
|
68
|
-
for (
|
|
69
|
-
|
|
70
|
-
|
|
68
|
+
for (let i = 0; i < this.segments.length; i++) {
|
|
69
|
+
const seg = this.segments[i];
|
|
70
|
+
if (seg instanceof hl7_segment_js_1.HL7Segment && seg.segmentType === segmentType) {
|
|
71
|
+
if (!indexOrAfter)
|
|
71
72
|
return seg;
|
|
72
|
-
|
|
73
|
+
if (typeof indexOrAfter === 'number') {
|
|
74
|
+
if (indexOrAfter === k++)
|
|
75
|
+
return seg;
|
|
76
|
+
}
|
|
77
|
+
else {
|
|
78
|
+
if (indexOrAfter === seg)
|
|
79
|
+
indexOrAfter = undefined;
|
|
80
|
+
}
|
|
73
81
|
}
|
|
74
82
|
}
|
|
75
83
|
}
|
|
76
84
|
/**
|
|
77
85
|
* Searches for a segment of a given type in reverse order
|
|
78
86
|
*/
|
|
79
|
-
getSegmentFromLast(segmentType,
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
87
|
+
getSegmentFromLast(segmentType, indexOrAfter) {
|
|
88
|
+
let k = 0;
|
|
89
|
+
for (let i = this.segments.length - 1; i >= 0; i--) {
|
|
90
|
+
const seg = this.segments[i];
|
|
91
|
+
if (seg instanceof hl7_segment_js_1.HL7Segment && seg.segmentType === segmentType) {
|
|
92
|
+
if (!indexOrAfter)
|
|
84
93
|
return seg;
|
|
85
|
-
|
|
94
|
+
if (typeof indexOrAfter === 'number') {
|
|
95
|
+
if (indexOrAfter === k++)
|
|
96
|
+
return seg;
|
|
97
|
+
i++;
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
if (indexOrAfter === seg)
|
|
101
|
+
indexOrAfter = undefined;
|
|
102
|
+
}
|
|
86
103
|
}
|
|
87
104
|
}
|
|
88
105
|
}
|
package/cjs/hl7-segment.js
CHANGED
|
@@ -43,15 +43,6 @@ class HL7Segment {
|
|
|
43
43
|
def.type = def.type || 'ST';
|
|
44
44
|
return (this._fields[position - 1] = new hl7_field_js_1.HL7Field(this, position, def));
|
|
45
45
|
}
|
|
46
|
-
next(segmentType) {
|
|
47
|
-
let index = this.index + 1;
|
|
48
|
-
let segment = this.message.segments[index];
|
|
49
|
-
while (segment) {
|
|
50
|
-
if (!segmentType || segment.segmentType === segmentType)
|
|
51
|
-
return segment;
|
|
52
|
-
segment = this.message.segments[++index];
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
46
|
toHL7String(options) {
|
|
56
47
|
const { fieldSeparator } = this.message;
|
|
57
48
|
let out = this.segmentType + fieldSeparator;
|
package/cjs/index.js
CHANGED
|
@@ -6,6 +6,7 @@ tslib_1.__exportStar(require("./hl7-component.js"), exports);
|
|
|
6
6
|
tslib_1.__exportStar(require("./hl7-error.js"), exports);
|
|
7
7
|
tslib_1.__exportStar(require("./hl7-field.js"), exports);
|
|
8
8
|
tslib_1.__exportStar(require("./hl7-message.js"), exports);
|
|
9
|
+
tslib_1.__exportStar(require("./hl7-message-node.js"), exports);
|
|
9
10
|
tslib_1.__exportStar(require("./hl7-repetition.js"), exports);
|
|
10
11
|
tslib_1.__exportStar(require("./hl7-segment.js"), exports);
|
|
11
12
|
tslib_1.__exportStar(require("./hl7-sub-component.js"), exports);
|
package/esm/hl7-message-node.js
CHANGED
|
@@ -8,52 +8,84 @@ export class HL7MessageNode {
|
|
|
8
8
|
/**
|
|
9
9
|
* Searches for a segment of a given type
|
|
10
10
|
*/
|
|
11
|
-
getSegment(segmentType,
|
|
11
|
+
getSegment(segmentType, indexOrAfter) {
|
|
12
12
|
let k = 0;
|
|
13
|
-
for (
|
|
13
|
+
for (let i = 0; i < this.items.length; i++) {
|
|
14
|
+
const seg = this.items[i];
|
|
14
15
|
if (seg instanceof HL7Segment && seg.segmentType === segmentType) {
|
|
15
|
-
if (!
|
|
16
|
+
if (!indexOrAfter)
|
|
16
17
|
return seg;
|
|
17
|
-
|
|
18
|
+
if (typeof indexOrAfter === 'number') {
|
|
19
|
+
if (indexOrAfter === k++)
|
|
20
|
+
return seg;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
if (indexOrAfter === seg)
|
|
24
|
+
indexOrAfter = undefined;
|
|
25
|
+
}
|
|
18
26
|
}
|
|
19
27
|
}
|
|
20
28
|
}
|
|
21
29
|
/**
|
|
22
30
|
* Searches for a segment of a given type in reverse order
|
|
23
31
|
*/
|
|
24
|
-
getSegmentFromLast(segmentType,
|
|
25
|
-
|
|
26
|
-
|
|
32
|
+
getSegmentFromLast(segmentType, indexOrAfter) {
|
|
33
|
+
let k = 0;
|
|
34
|
+
for (let i = this.items.length - 1; i >= 0; i--) {
|
|
35
|
+
const seg = this.items[i];
|
|
27
36
|
if (seg instanceof HL7Segment && seg.segmentType === segmentType) {
|
|
28
|
-
if (!
|
|
37
|
+
if (!indexOrAfter)
|
|
29
38
|
return seg;
|
|
30
|
-
|
|
39
|
+
if (typeof indexOrAfter === 'number') {
|
|
40
|
+
if (indexOrAfter === k++)
|
|
41
|
+
return seg;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
if (indexOrAfter === seg)
|
|
45
|
+
indexOrAfter = undefined;
|
|
46
|
+
}
|
|
31
47
|
}
|
|
32
48
|
}
|
|
33
49
|
}
|
|
34
50
|
/**
|
|
35
51
|
* Searches for a node of a given name
|
|
36
52
|
*/
|
|
37
|
-
getNode(nodeName,
|
|
53
|
+
getNode(nodeName, indexOrAfter) {
|
|
38
54
|
let k = 0;
|
|
39
|
-
for (
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
55
|
+
for (let i = 0; i < this.items.length; i++) {
|
|
56
|
+
const node = this.items[i];
|
|
57
|
+
if (node instanceof HL7MessageNode && node.name === nodeName) {
|
|
58
|
+
if (!indexOrAfter)
|
|
59
|
+
return node;
|
|
60
|
+
if (typeof indexOrAfter === 'number') {
|
|
61
|
+
if (indexOrAfter === k++)
|
|
62
|
+
return node;
|
|
63
|
+
}
|
|
64
|
+
else {
|
|
65
|
+
if (indexOrAfter === node)
|
|
66
|
+
indexOrAfter = undefined;
|
|
67
|
+
}
|
|
44
68
|
}
|
|
45
69
|
}
|
|
46
70
|
}
|
|
47
71
|
/**
|
|
48
72
|
* Searches for a node of a given name in reverse order
|
|
49
73
|
*/
|
|
50
|
-
getNodeFromLast(nodeName,
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
74
|
+
getNodeFromLast(nodeName, indexOrAfter) {
|
|
75
|
+
let k = 0;
|
|
76
|
+
for (let i = this.items.length - 1; i >= 0; i--) {
|
|
77
|
+
const node = this.items[i];
|
|
78
|
+
if (node instanceof HL7MessageNode && node.name === nodeName) {
|
|
79
|
+
if (!indexOrAfter)
|
|
80
|
+
return node;
|
|
81
|
+
if (typeof indexOrAfter === 'number') {
|
|
82
|
+
if (indexOrAfter === k++)
|
|
83
|
+
return node;
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
if (indexOrAfter === node)
|
|
87
|
+
indexOrAfter = undefined;
|
|
88
|
+
}
|
|
57
89
|
}
|
|
58
90
|
}
|
|
59
91
|
}
|
package/esm/hl7-message.js
CHANGED
|
@@ -59,26 +59,43 @@ export class HL7Message {
|
|
|
59
59
|
/**
|
|
60
60
|
* Searches for a segment of a given type
|
|
61
61
|
*/
|
|
62
|
-
getSegment(segmentType,
|
|
62
|
+
getSegment(segmentType, indexOrAfter) {
|
|
63
63
|
let k = 0;
|
|
64
|
-
for (
|
|
65
|
-
|
|
66
|
-
|
|
64
|
+
for (let i = 0; i < this.segments.length; i++) {
|
|
65
|
+
const seg = this.segments[i];
|
|
66
|
+
if (seg instanceof HL7Segment && seg.segmentType === segmentType) {
|
|
67
|
+
if (!indexOrAfter)
|
|
67
68
|
return seg;
|
|
68
|
-
|
|
69
|
+
if (typeof indexOrAfter === 'number') {
|
|
70
|
+
if (indexOrAfter === k++)
|
|
71
|
+
return seg;
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
if (indexOrAfter === seg)
|
|
75
|
+
indexOrAfter = undefined;
|
|
76
|
+
}
|
|
69
77
|
}
|
|
70
78
|
}
|
|
71
79
|
}
|
|
72
80
|
/**
|
|
73
81
|
* Searches for a segment of a given type in reverse order
|
|
74
82
|
*/
|
|
75
|
-
getSegmentFromLast(segmentType,
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
83
|
+
getSegmentFromLast(segmentType, indexOrAfter) {
|
|
84
|
+
let k = 0;
|
|
85
|
+
for (let i = this.segments.length - 1; i >= 0; i--) {
|
|
86
|
+
const seg = this.segments[i];
|
|
87
|
+
if (seg instanceof HL7Segment && seg.segmentType === segmentType) {
|
|
88
|
+
if (!indexOrAfter)
|
|
80
89
|
return seg;
|
|
81
|
-
|
|
90
|
+
if (typeof indexOrAfter === 'number') {
|
|
91
|
+
if (indexOrAfter === k++)
|
|
92
|
+
return seg;
|
|
93
|
+
i++;
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
if (indexOrAfter === seg)
|
|
97
|
+
indexOrAfter = undefined;
|
|
98
|
+
}
|
|
82
99
|
}
|
|
83
100
|
}
|
|
84
101
|
}
|
package/esm/hl7-segment.js
CHANGED
|
@@ -40,15 +40,6 @@ export class HL7Segment {
|
|
|
40
40
|
def.type = def.type || 'ST';
|
|
41
41
|
return (this._fields[position - 1] = new HL7Field(this, position, def));
|
|
42
42
|
}
|
|
43
|
-
next(segmentType) {
|
|
44
|
-
let index = this.index + 1;
|
|
45
|
-
let segment = this.message.segments[index];
|
|
46
|
-
while (segment) {
|
|
47
|
-
if (!segmentType || segment.segmentType === segmentType)
|
|
48
|
-
return segment;
|
|
49
|
-
segment = this.message.segments[++index];
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
43
|
toHL7String(options) {
|
|
53
44
|
const { fieldSeparator } = this.message;
|
|
54
45
|
let out = this.segmentType + fieldSeparator;
|
package/esm/index.js
CHANGED
|
@@ -3,6 +3,7 @@ export * from './hl7-component.js';
|
|
|
3
3
|
export * from './hl7-error.js';
|
|
4
4
|
export * from './hl7-field.js';
|
|
5
5
|
export * from './hl7-message.js';
|
|
6
|
+
export * from './hl7-message-node.js';
|
|
6
7
|
export * from './hl7-repetition.js';
|
|
7
8
|
export * from './hl7-segment.js';
|
|
8
9
|
export * from './hl7-sub-component.js';
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "hl7v2",
|
|
3
3
|
"description": "HL7 v2 parser, serializer, validator for NodeJS",
|
|
4
|
-
"version": "1.4.
|
|
4
|
+
"version": "1.4.4",
|
|
5
5
|
"author": "Panates",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"dependencies": {
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
"uid": "^2.0.2"
|
|
16
16
|
},
|
|
17
17
|
"peerDependencies": {
|
|
18
|
-
"hl7v2-dictionary": "^1.4.
|
|
18
|
+
"hl7v2-dictionary": "^1.4.4"
|
|
19
19
|
},
|
|
20
20
|
"type": "module",
|
|
21
21
|
"exports": {
|
|
@@ -6,17 +6,17 @@ export declare class HL7MessageNode {
|
|
|
6
6
|
/**
|
|
7
7
|
* Searches for a segment of a given type
|
|
8
8
|
*/
|
|
9
|
-
getSegment(segmentType: string,
|
|
9
|
+
getSegment(segmentType: string, indexOrAfter?: number | HL7Segment): HL7Segment | undefined;
|
|
10
10
|
/**
|
|
11
11
|
* Searches for a segment of a given type in reverse order
|
|
12
12
|
*/
|
|
13
|
-
getSegmentFromLast(segmentType: string,
|
|
13
|
+
getSegmentFromLast(segmentType: string, indexOrAfter?: number | HL7Segment): HL7Segment | undefined;
|
|
14
14
|
/**
|
|
15
15
|
* Searches for a node of a given name
|
|
16
16
|
*/
|
|
17
|
-
getNode(nodeName: string,
|
|
17
|
+
getNode(nodeName: string, indexOrAfter?: number | HL7MessageNode): HL7MessageNode | undefined;
|
|
18
18
|
/**
|
|
19
19
|
* Searches for a node of a given name in reverse order
|
|
20
20
|
*/
|
|
21
|
-
getNodeFromLast(nodeName: string,
|
|
21
|
+
getNodeFromLast(nodeName: string, indexOrAfter?: number | HL7MessageNode): HL7MessageNode | undefined;
|
|
22
22
|
}
|
package/types/hl7-message.d.ts
CHANGED
|
@@ -23,11 +23,11 @@ export declare class HL7Message {
|
|
|
23
23
|
/**
|
|
24
24
|
* Searches for a segment of a given type
|
|
25
25
|
*/
|
|
26
|
-
getSegment(segmentType: string,
|
|
26
|
+
getSegment(segmentType: string, indexOrAfter?: number | HL7Segment): HL7Segment | undefined;
|
|
27
27
|
/**
|
|
28
28
|
* Searches for a segment of a given type in reverse order
|
|
29
29
|
*/
|
|
30
|
-
getSegmentFromLast(segmentType: string,
|
|
30
|
+
getSegmentFromLast(segmentType: string, indexOrAfter?: number | HL7Segment): HL7Segment | undefined;
|
|
31
31
|
toHL7String(options?: HL7MessageSerializeOptions): string;
|
|
32
32
|
parse(input: string | Buffer, options?: HL7MessageParseOptions): void;
|
|
33
33
|
buildStructureTree(): HL7MessageNode;
|
package/types/hl7-segment.d.ts
CHANGED
|
@@ -13,7 +13,6 @@ export declare class HL7Segment {
|
|
|
13
13
|
clear(): void;
|
|
14
14
|
field(fieldPos: number): HL7Field;
|
|
15
15
|
defineField(position: number, def: HL7FieldDefinition): HL7Field;
|
|
16
|
-
next(segmentType?: string): HL7Segment | undefined;
|
|
17
16
|
toHL7String(options?: Hl7SegmentSerializeOptions): string;
|
|
18
17
|
static parse(message: HL7Message, input: string, options?: Hl7SegmentParseOptions): HL7Segment;
|
|
19
18
|
}
|
package/types/index.d.cts
CHANGED
|
@@ -3,6 +3,7 @@ export * from './hl7-component.js';
|
|
|
3
3
|
export * from './hl7-error.js';
|
|
4
4
|
export * from './hl7-field.js';
|
|
5
5
|
export * from './hl7-message.js';
|
|
6
|
+
export * from './hl7-message-node.js';
|
|
6
7
|
export * from './hl7-repetition.js';
|
|
7
8
|
export * from './hl7-segment.js';
|
|
8
9
|
export * from './hl7-sub-component.js';
|
package/types/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export * from './hl7-component.js';
|
|
|
3
3
|
export * from './hl7-error.js';
|
|
4
4
|
export * from './hl7-field.js';
|
|
5
5
|
export * from './hl7-message.js';
|
|
6
|
+
export * from './hl7-message-node.js';
|
|
6
7
|
export * from './hl7-repetition.js';
|
|
7
8
|
export * from './hl7-segment.js';
|
|
8
9
|
export * from './hl7-sub-component.js';
|