@glion/annotate-profile-tables 0.0.0-stage → 0.25.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/LICENSE +21 -0
- package/README.md +96 -2
- package/dist/index.d.ts +61 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +62 -0
- package/dist/index.js.map +1 -0
- package/package.json +71 -3
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2023 Rethink Health
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
CHANGED
|
@@ -1,3 +1,97 @@
|
|
|
1
|
-
#
|
|
1
|
+
# @glion/annotate-profile-tables
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Unified plugin to annotate HL7v2 primitive values with their entry in the table of the message's version.
|
|
4
|
+
|
|
5
|
+
## What it does
|
|
6
|
+
|
|
7
|
+
A primitive value bound to an HL7v2 table, such as PID-8 `Administrative Sex` (IS, table `0001`) in v2.5 or XPN.7 `Name Type Code` (ID, table `0200`), is a code that the table describes. This plugin looks up each such value in its table, as printed in the HL7v2 version the message declares in MSH-12, and writes the matching entry onto the node that holds the value: a field repetition, a component, or a subcomponent. A code the message's version does not define is left unannotated, even when a later version defines it. A code the table prints only as part of a range, such as `E1 ... E9` in table 0141, is left unannotated too. For a user-defined table, the description is the one HL7 suggests.
|
|
8
|
+
|
|
9
|
+
Composite values, such as a CWE field, are not annotated.
|
|
10
|
+
|
|
11
|
+
## Install
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
npm install @glion/annotate-profile-tables
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## Use
|
|
18
|
+
|
|
19
|
+
```ts
|
|
20
|
+
import { hl7v2AnnotateProfileContext } from "@glion/annotate-profile-context";
|
|
21
|
+
import { hl7v2AnnotateProfileDatatypes } from "@glion/annotate-profile-datatypes";
|
|
22
|
+
import { hl7v2AnnotateProfileFields } from "@glion/annotate-profile-fields";
|
|
23
|
+
import { hl7v2AnnotateProfileTables } from "@glion/annotate-profile-tables";
|
|
24
|
+
import { hl7v2Parser } from "@glion/parser";
|
|
25
|
+
import { unified } from "unified";
|
|
26
|
+
import { VFile } from "vfile";
|
|
27
|
+
|
|
28
|
+
const processor = unified()
|
|
29
|
+
.use(hl7v2Parser)
|
|
30
|
+
.use(hl7v2AnnotateProfileContext)
|
|
31
|
+
.use(hl7v2AnnotateProfileFields)
|
|
32
|
+
.use(hl7v2AnnotateProfileDatatypes)
|
|
33
|
+
.use(hl7v2AnnotateProfileTables);
|
|
34
|
+
|
|
35
|
+
const file = new VFile(
|
|
36
|
+
"MSH|^~\\&|SENDER||RECEIVER||20241201||ADT^A01|MSG123|P|2.5\rPID|1||12345||Doe^John||19800101|M"
|
|
37
|
+
);
|
|
38
|
+
const tree = await processor.run(processor.parse(file), file);
|
|
39
|
+
|
|
40
|
+
// PID-8 field-repetition data.tableValue === { value: "M", description: "Male" }
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## API
|
|
44
|
+
|
|
45
|
+
This package exports the named constant `hl7v2AnnotateProfileTables` and the type `TableValue`. The default export is the plugin itself.
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
import type { Root } from "@glion/ast";
|
|
49
|
+
import type { Plugin } from "unified";
|
|
50
|
+
|
|
51
|
+
export interface TableValue {
|
|
52
|
+
value: string;
|
|
53
|
+
description: string;
|
|
54
|
+
}
|
|
55
|
+
export const hl7v2AnnotateProfileTables: Plugin<[], Root, Root>;
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
The plugin reads `kind` and `table` from `node.data`, set by `@glion/annotate-profile-datatypes`, and the tables in `file.data.profile`, set by `@glion/annotate-profile-context`. Both must run first. Without `file.data.profile`, the tree is returned unchanged.
|
|
59
|
+
|
|
60
|
+
## What it annotates
|
|
61
|
+
|
|
62
|
+
The plugin visits every field repetition, component, and subcomponent whose `data.kind` is `"primitive"` and whose `data.table` is set. The value is the node's first subcomponent; components a primitive datatype does not define are ignored. For example:
|
|
63
|
+
|
|
64
|
+
- PID-8 in v2.5 (IS): the field repetition.
|
|
65
|
+
- PID-5 in v2.6 (XPN): XPN.6, XPN.7, XPN.8, and XPN.11.
|
|
66
|
+
- LDP-10 (VH): VH.1 and VH.2.
|
|
67
|
+
- XCN.9 (HD) in PV1-7: the subcomponent HD.3.
|
|
68
|
+
|
|
69
|
+
### `node.data` (FieldRepetition, Component, Subcomponent)
|
|
70
|
+
|
|
71
|
+
```ts
|
|
72
|
+
declare module "@glion/ast" {
|
|
73
|
+
interface FieldRepetitionData {
|
|
74
|
+
tableValue?: TableValue;
|
|
75
|
+
}
|
|
76
|
+
interface ComponentData {
|
|
77
|
+
tableValue?: TableValue;
|
|
78
|
+
}
|
|
79
|
+
interface SubcomponentData {
|
|
80
|
+
tableValue?: TableValue;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
// The entry of the node's table that its value matches.
|
|
85
|
+
// Absent when the value is empty or not in the table.
|
|
86
|
+
interface TableValue {
|
|
87
|
+
value: string; // as written in the message, e.g. "M"
|
|
88
|
+
description: string; // from the table, e.g. "Male"
|
|
89
|
+
}
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## Part of Glion
|
|
93
|
+
|
|
94
|
+
`@glion/annotate-profile-tables` is part of **[Glion]**, the application framework for HL7v2. See the [Glion README] for the full package catalog and architecture.
|
|
95
|
+
|
|
96
|
+
[Glion]: https://github.com/rethinkhealth/glion#readme
|
|
97
|
+
[Glion README]: https://github.com/rethinkhealth/glion#readme
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import type { Root } from "@glion/ast";
|
|
2
|
+
import type { Plugin } from "unified";
|
|
3
|
+
/**
|
|
4
|
+
* An entry of an HL7v2 table that a primitive value matches.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```ts
|
|
8
|
+
* // PID-8 `F` in a v2.5 message, table 0001 (Administrative Sex)
|
|
9
|
+
* const entry: TableValue = { value: "F", description: "Female" };
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
export interface TableValue {
|
|
13
|
+
/** The value as written in the message, such as `"F"`. */
|
|
14
|
+
value: string;
|
|
15
|
+
/** The description the table prints for the value, such as `"Female"`. */
|
|
16
|
+
description: string;
|
|
17
|
+
}
|
|
18
|
+
declare module "@glion/ast" {
|
|
19
|
+
interface FieldRepetitionData {
|
|
20
|
+
/** The entry of `table` this repetition's value matches. */
|
|
21
|
+
tableValue?: TableValue | undefined;
|
|
22
|
+
}
|
|
23
|
+
interface ComponentData {
|
|
24
|
+
/** The entry of `table` this component's value matches. */
|
|
25
|
+
tableValue?: TableValue | undefined;
|
|
26
|
+
}
|
|
27
|
+
interface SubcomponentData {
|
|
28
|
+
/** The entry of `table` this subcomponent's value matches. */
|
|
29
|
+
tableValue?: TableValue | undefined;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Unified plugin that annotates each primitive node with a table (a field
|
|
34
|
+
* repetition, component, or subcomponent whose `data.kind` is `"primitive"`
|
|
35
|
+
* and whose `data.table` is set) with the entry of that table its value
|
|
36
|
+
* matches, as `node.data.tableValue`.
|
|
37
|
+
*
|
|
38
|
+
* Reads `kind` and `table` from `node.data`, set by
|
|
39
|
+
* `@glion/annotate-profile-datatypes`, and the tables of the message's HL7v2
|
|
40
|
+
* version from `file.data.profile`, set by `@glion/annotate-profile-context`.
|
|
41
|
+
* Both MUST run before it; without `file.data.profile` the tree is returned
|
|
42
|
+
* unchanged.
|
|
43
|
+
*
|
|
44
|
+
* Composite nodes are not annotated. A node whose value is empty or not in its
|
|
45
|
+
* table has no `tableValue`. Idempotent.
|
|
46
|
+
*
|
|
47
|
+
* @example
|
|
48
|
+
* ```ts
|
|
49
|
+
* unified()
|
|
50
|
+
* .use(hl7v2AnnotateProfileContext)
|
|
51
|
+
* .use(hl7v2AnnotateProfileFields)
|
|
52
|
+
* .use(hl7v2AnnotateProfileDatatypes)
|
|
53
|
+
* .use(hl7v2AnnotateProfileTables);
|
|
54
|
+
* // v2.5 `PID|1||12345||Doe||19800101|M`:
|
|
55
|
+
* // the PID-8 field repetition gets
|
|
56
|
+
* // data.tableValue = { value: "M", description: "Male" }
|
|
57
|
+
* ```
|
|
58
|
+
*/
|
|
59
|
+
export declare const hl7v2AnnotateProfileTables: Plugin<[], Root, Root>;
|
|
60
|
+
export default hl7v2AnnotateProfileTables;
|
|
61
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAKV,IAAI,EAGL,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAGtC;;;;;;;;GAQG;AACH,MAAM,WAAW,UAAU;IACzB,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd,0EAA0E;IAC1E,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,OAAO,QAAQ,YAAY,CAAC;IAC1B,UAAU,mBAAmB;QAC3B,4DAA4D;QAC5D,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;KACrC;IACD,UAAU,aAAa;QACrB,2DAA2D;QAC3D,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;KACrC;IACD,UAAU,gBAAgB;QACxB,8DAA8D;QAC9D,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;KACrC;CACF;AAwCD;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,eAAO,MAAM,0BAA0B,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,CA+B3D,CAAC;AAEJ,eAAe,0BAA0B,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { visit } from "@glion/util-visit";
|
|
2
|
+
//#region src/index.ts
|
|
3
|
+
/**
|
|
4
|
+
* The value of a primitive node: its first subcomponent, or `undefined` when
|
|
5
|
+
* the node has none.
|
|
6
|
+
*
|
|
7
|
+
* Components and subcomponents a primitive datatype does not define are
|
|
8
|
+
* ignored, as HL7v2 tells the recipient to ignore "components, subcomponents,
|
|
9
|
+
* and extra repetitions of a field that are present but were not expected"
|
|
10
|
+
* (v2.5.1 chapter 2, section 2.6.2).
|
|
11
|
+
*/
|
|
12
|
+
function primitiveValue(node) {
|
|
13
|
+
switch (node.type) {
|
|
14
|
+
case "field-repetition": return node.children[0]?.children[0]?.value;
|
|
15
|
+
case "component": return node.children[0]?.value;
|
|
16
|
+
case "subcomponent": return node.value;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Unified plugin that annotates each primitive node with a table (a field
|
|
21
|
+
* repetition, component, or subcomponent whose `data.kind` is `"primitive"`
|
|
22
|
+
* and whose `data.table` is set) with the entry of that table its value
|
|
23
|
+
* matches, as `node.data.tableValue`.
|
|
24
|
+
*
|
|
25
|
+
* Reads `kind` and `table` from `node.data`, set by
|
|
26
|
+
* `@glion/annotate-profile-datatypes`, and the tables of the message's HL7v2
|
|
27
|
+
* version from `file.data.profile`, set by `@glion/annotate-profile-context`.
|
|
28
|
+
* Both MUST run before it; without `file.data.profile` the tree is returned
|
|
29
|
+
* unchanged.
|
|
30
|
+
*
|
|
31
|
+
* Composite nodes are not annotated. A node whose value is empty or not in its
|
|
32
|
+
* table has no `tableValue`. Idempotent.
|
|
33
|
+
*
|
|
34
|
+
* @example
|
|
35
|
+
* ```ts
|
|
36
|
+
* unified()
|
|
37
|
+
* .use(hl7v2AnnotateProfileContext)
|
|
38
|
+
* .use(hl7v2AnnotateProfileFields)
|
|
39
|
+
* .use(hl7v2AnnotateProfileDatatypes)
|
|
40
|
+
* .use(hl7v2AnnotateProfileTables);
|
|
41
|
+
* // v2.5 `PID|1||12345||Doe||19800101|M`:
|
|
42
|
+
* // the PID-8 field repetition gets
|
|
43
|
+
* // data.tableValue = { value: "M", description: "Male" }
|
|
44
|
+
* ```
|
|
45
|
+
*/
|
|
46
|
+
const hl7v2AnnotateProfileTables = () => (tree, file) => {
|
|
47
|
+
const tables = file.data.profile?.tables;
|
|
48
|
+
if (!tables) return tree;
|
|
49
|
+
visit(tree, (node) => (node.type === "field-repetition" || node.type === "component" || node.type === "subcomponent") && node.data?.kind === "primitive" && node.data.table !== void 0, (node) => {
|
|
50
|
+
const value = primitiveValue(node);
|
|
51
|
+
const entry = value ? tables.get(node.data.table)?.codes.get(value) : void 0;
|
|
52
|
+
if (value && entry) node.data.tableValue = {
|
|
53
|
+
description: entry.description,
|
|
54
|
+
value
|
|
55
|
+
};
|
|
56
|
+
});
|
|
57
|
+
return tree;
|
|
58
|
+
};
|
|
59
|
+
//#endregion
|
|
60
|
+
export { hl7v2AnnotateProfileTables as default, hl7v2AnnotateProfileTables };
|
|
61
|
+
|
|
62
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/index.ts"],"sourcesContent":["// oxlint-disable-next-line no-unused-vars -- triggers VFile DataMap augmentation\nimport type { ProfileContext } from \"@glion/annotate-profile-context\";\n// oxlint-disable-next-line no-unused-vars -- triggers FieldRepetitionData, ComponentData and SubcomponentData augmentation\nimport type { hl7v2AnnotateProfileDatatypes } from \"@glion/annotate-profile-datatypes\";\nimport type {\n Component,\n ComponentData,\n FieldRepetition,\n FieldRepetitionData,\n Root,\n Subcomponent,\n SubcomponentData,\n} from \"@glion/ast\";\nimport { visit } from \"@glion/util-visit\";\nimport type { Plugin } from \"unified\";\nimport type { VFile } from \"vfile\";\n\n/**\n * An entry of an HL7v2 table that a primitive value matches.\n *\n * @example\n * ```ts\n * // PID-8 `F` in a v2.5 message, table 0001 (Administrative Sex)\n * const entry: TableValue = { value: \"F\", description: \"Female\" };\n * ```\n */\nexport interface TableValue {\n /** The value as written in the message, such as `\"F\"`. */\n value: string;\n /** The description the table prints for the value, such as `\"Female\"`. */\n description: string;\n}\n\ndeclare module \"@glion/ast\" {\n interface FieldRepetitionData {\n /** The entry of `table` this repetition's value matches. */\n tableValue?: TableValue | undefined;\n }\n interface ComponentData {\n /** The entry of `table` this component's value matches. */\n tableValue?: TableValue | undefined;\n }\n interface SubcomponentData {\n /** The entry of `table` this subcomponent's value matches. */\n tableValue?: TableValue | undefined;\n }\n}\n\n/**\n * A primitive field repetition, component, or subcomponent bound to a table:\n * its `data.kind` is `\"primitive\"` and its `data.table` is set.\n */\ntype CodedPrimitive = (FieldRepetition | Component | Subcomponent) & {\n data: (FieldRepetitionData | ComponentData | SubcomponentData) & {\n table: string;\n };\n};\n\n/**\n * The value of a primitive node: its first subcomponent, or `undefined` when\n * the node has none.\n *\n * Components and subcomponents a primitive datatype does not define are\n * ignored, as HL7v2 tells the recipient to ignore \"components, subcomponents,\n * and extra repetitions of a field that are present but were not expected\"\n * (v2.5.1 chapter 2, section 2.6.2).\n */\nfunction primitiveValue(\n node: FieldRepetition | Component | Subcomponent\n): string | undefined {\n switch (node.type) {\n case \"field-repetition\": {\n // A primitive field, such as v2.5 PID-8 (IS): `F^Female` → `F`\n return node.children[0]?.children[0]?.value;\n }\n case \"component\": {\n // A primitive component, such as XPN.7 (ID): `M`\n return node.children[0]?.value;\n }\n case \"subcomponent\": {\n // A primitive subcomponent, such as HD.3 (ID) inside XCN.9\n return node.value;\n }\n }\n}\n\n/**\n * Unified plugin that annotates each primitive node with a table (a field\n * repetition, component, or subcomponent whose `data.kind` is `\"primitive\"`\n * and whose `data.table` is set) with the entry of that table its value\n * matches, as `node.data.tableValue`.\n *\n * Reads `kind` and `table` from `node.data`, set by\n * `@glion/annotate-profile-datatypes`, and the tables of the message's HL7v2\n * version from `file.data.profile`, set by `@glion/annotate-profile-context`.\n * Both MUST run before it; without `file.data.profile` the tree is returned\n * unchanged.\n *\n * Composite nodes are not annotated. A node whose value is empty or not in its\n * table has no `tableValue`. Idempotent.\n *\n * @example\n * ```ts\n * unified()\n * .use(hl7v2AnnotateProfileContext)\n * .use(hl7v2AnnotateProfileFields)\n * .use(hl7v2AnnotateProfileDatatypes)\n * .use(hl7v2AnnotateProfileTables);\n * // v2.5 `PID|1||12345||Doe||19800101|M`:\n * // the PID-8 field repetition gets\n * // data.tableValue = { value: \"M\", description: \"Male\" }\n * ```\n */\nexport const hl7v2AnnotateProfileTables: Plugin<[], Root, Root> =\n () => (tree: Root, file: VFile) => {\n const tables = file.data.profile?.tables;\n if (!tables) {\n return tree;\n }\n\n visit(\n tree,\n // Test: which nodes are visited. Primitive field repetitions,\n // components, and subcomponents bound to a table.\n (node): node is CodedPrimitive =>\n (node.type === \"field-repetition\" ||\n node.type === \"component\" ||\n node.type === \"subcomponent\") &&\n node.data?.kind === \"primitive\" &&\n node.data.table !== undefined,\n // Visitor: what happens to each. Look the value up in the node's table\n // and, on a match, write the entry to `data.tableValue`.\n (node) => {\n const value = primitiveValue(node);\n const entry = value\n ? tables.get(node.data.table)?.codes.get(value)\n : undefined;\n if (value && entry) {\n node.data.tableValue = { description: entry.description, value };\n }\n }\n );\n\n return tree;\n };\n\nexport default hl7v2AnnotateProfileTables;\n"],"mappings":";;;;;;;;;;;AAmEA,SAAS,eACP,MACoB;AACpB,SAAQ,KAAK,MAAb;EACE,KAAK,mBAEH,QAAO,KAAK,SAAS,IAAI,SAAS,IAAI;EAExC,KAAK,YAEH,QAAO,KAAK,SAAS,IAAI;EAE3B,KAAK,eAEH,QAAO,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgClB,MAAa,oCACJ,MAAY,SAAgB;CACjC,MAAM,SAAS,KAAK,KAAK,SAAS;AAClC,KAAI,CAAC,OACH,QAAO;AAGT,OACE,OAGC,UACE,KAAK,SAAS,sBACb,KAAK,SAAS,eACd,KAAK,SAAS,mBAChB,KAAK,MAAM,SAAS,eACpB,KAAK,KAAK,UAAU,KAAA,IAGrB,SAAS;EACR,MAAM,QAAQ,eAAe,KAAK;EAClC,MAAM,QAAQ,QACV,OAAO,IAAI,KAAK,KAAK,MAAM,EAAE,MAAM,IAAI,MAAM,GAC7C,KAAA;AACJ,MAAI,SAAS,MACX,MAAK,KAAK,aAAa;GAAE,aAAa,MAAM;GAAa;GAAO;GAGrE;AAED,QAAO"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,74 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@glion/annotate-profile-tables",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"
|
|
5
|
-
"
|
|
3
|
+
"version": "0.25.0",
|
|
4
|
+
"description": "Unified plugin to annotate HL7v2 primitive values with their entry in the table of the message version",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"annotate",
|
|
7
|
+
"health",
|
|
8
|
+
"healthcare",
|
|
9
|
+
"hl7",
|
|
10
|
+
"hl7v2",
|
|
11
|
+
"nodejs",
|
|
12
|
+
"plugin",
|
|
13
|
+
"profile",
|
|
14
|
+
"table",
|
|
15
|
+
"typescript",
|
|
16
|
+
"unified"
|
|
17
|
+
],
|
|
18
|
+
"homepage": "https://glion.dev",
|
|
19
|
+
"license": "MIT",
|
|
20
|
+
"author": {
|
|
21
|
+
"name": "Melek Somai",
|
|
22
|
+
"email": "melek@rethinkhealth.io"
|
|
23
|
+
},
|
|
24
|
+
"repository": {
|
|
25
|
+
"type": "git",
|
|
26
|
+
"url": "git+https://github.com/rethinkhealth/glion.git",
|
|
27
|
+
"directory": "packages/annotate-profile-tables"
|
|
28
|
+
},
|
|
29
|
+
"files": [
|
|
30
|
+
"dist"
|
|
31
|
+
],
|
|
32
|
+
"type": "module",
|
|
33
|
+
"types": "./dist/index.d.ts",
|
|
34
|
+
"exports": {
|
|
35
|
+
".": "./dist/index.js"
|
|
36
|
+
},
|
|
37
|
+
"publishConfig": {
|
|
38
|
+
"access": "public"
|
|
39
|
+
},
|
|
40
|
+
"dependencies": {
|
|
41
|
+
"unified": "11.0.5",
|
|
42
|
+
"vfile": "6.0.3",
|
|
43
|
+
"@glion/annotate-profile-context": "0.25.0",
|
|
44
|
+
"@glion/ast": "0.25.0",
|
|
45
|
+
"@glion/annotate-profile-datatypes": "0.25.0",
|
|
46
|
+
"@glion/util-visit": "0.25.0"
|
|
47
|
+
},
|
|
48
|
+
"devDependencies": {
|
|
49
|
+
"@types/node": "25.6.0",
|
|
50
|
+
"@vitest/coverage-v8": "4.1.11",
|
|
51
|
+
"publint": "0.3.18",
|
|
52
|
+
"tsdown": "0.21.10",
|
|
53
|
+
"typescript": "6.0.3",
|
|
54
|
+
"vitest": "4.1.11",
|
|
55
|
+
"@glion/builder": "0.25.0",
|
|
56
|
+
"@glion/annotate-profile-fields": "0.25.0",
|
|
57
|
+
"@glion/check-readme": "0.18.0",
|
|
58
|
+
"@glion/parser": "0.25.0",
|
|
59
|
+
"@glion/testing": "0.18.0",
|
|
60
|
+
"@glion/tsconfig": "0.18.0"
|
|
61
|
+
},
|
|
62
|
+
"engines": {
|
|
63
|
+
"node": ">=22"
|
|
64
|
+
},
|
|
65
|
+
"scripts": {
|
|
66
|
+
"build": "tsdown && tsc --emitDeclarationOnly",
|
|
67
|
+
"check-types": "tsc --noEmit && tsc --noEmit -p tests/tsconfig.json",
|
|
68
|
+
"check:readme": "glion-check-readme",
|
|
69
|
+
"test": "vitest run",
|
|
70
|
+
"test:coverage": "vitest run --coverage",
|
|
71
|
+
"test:watch": "vitest",
|
|
72
|
+
"publint": "publint --strict"
|
|
73
|
+
}
|
|
6
74
|
}
|