ezmedicationinput 0.1.44 → 0.1.46
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/README.md +265 -2
- package/dist/body-site-grammar.d.ts +39 -0
- package/dist/body-site-lookup.d.ts +84 -0
- package/dist/body-site-resolution.d.ts +9 -0
- package/dist/body-site-spatial.d.ts +6 -0
- package/dist/clause-tail-grammar.d.ts +18 -0
- package/dist/fhir-translations.d.ts +4 -1
- package/dist/fhir.d.ts +9 -1
- package/dist/hpsg/chart.d.ts +14 -0
- package/dist/hpsg/clause-parser.d.ts +3 -0
- package/dist/hpsg/defaults.d.ts +9 -0
- package/dist/hpsg/lexical-classes.d.ts +89 -0
- package/dist/hpsg/method-lexicon.d.ts +13 -0
- package/dist/hpsg/projection.d.ts +12 -0
- package/dist/hpsg/rule-context.d.ts +32 -0
- package/dist/hpsg/rules/core-rules.d.ts +8 -0
- package/dist/hpsg/rules/instruction-rules.d.ts +4 -0
- package/dist/hpsg/rules/prn-rules.d.ts +3 -0
- package/dist/hpsg/rules/product-route.d.ts +2 -0
- package/dist/hpsg/rules/site-rules.d.ts +4 -0
- package/dist/hpsg/rules/timing-rules.d.ts +12 -0
- package/dist/hpsg/segmenter.d.ts +6 -0
- package/dist/hpsg/signature.d.ts +116 -0
- package/dist/hpsg/timing-lexicon.d.ts +31 -0
- package/dist/hpsg/unification.d.ts +8 -0
- package/dist/index.cjs +21052 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +20865 -680
- package/dist/maps.d.ts +4 -2
- package/dist/parser-state.d.ts +4 -1
- package/dist/parser.d.ts +3 -13
- package/dist/prn-reason-coding.d.ts +8 -0
- package/dist/site-coding.d.ts +5 -0
- package/dist/snomed-postcoordination.d.ts +25 -0
- package/dist/snomed.d.ts +13 -0
- package/dist/types.d.ts +61 -16
- package/dist/unit-lexicon.d.ts +4 -0
- package/package.json +17 -6
- package/dist/advice-rules.json +0 -772
- package/dist/advice-terminology.json +0 -104
- package/dist/advice.js +0 -1375
- package/dist/context.js +0 -50
- package/dist/event-trigger.d.ts +0 -14
- package/dist/event-trigger.js +0 -501
- package/dist/fhir-translations.js +0 -117
- package/dist/fhir.js +0 -693
- package/dist/format.js +0 -1034
- package/dist/i18n.js +0 -1341
- package/dist/internal-types.d.ts +0 -60
- package/dist/internal-types.js +0 -2
- package/dist/ir.js +0 -178
- package/dist/lexer/lex.js +0 -401
- package/dist/lexer/meaning.js +0 -619
- package/dist/lexer/surface.js +0 -62
- package/dist/lexer/token-types.js +0 -19
- package/dist/maps.js +0 -2226
- package/dist/package.json +0 -3
- package/dist/parser-state.js +0 -441
- package/dist/parser.js +0 -5631
- package/dist/prn.js +0 -59
- package/dist/safety.js +0 -15
- package/dist/schedule.js +0 -1636
- package/dist/segment.d.ts +0 -6
- package/dist/segment.js +0 -203
- package/dist/site-phrases.js +0 -344
- package/dist/suggest.js +0 -907
- package/dist/timing-summary.js +0 -138
- package/dist/types.js +0 -276
- package/dist/utils/array.js +0 -11
- package/dist/utils/enum.d.ts +0 -2
- package/dist/utils/enum.js +0 -7
- package/dist/utils/object.js +0 -34
- package/dist/utils/strength.js +0 -149
- package/dist/utils/text.js +0 -48
- package/dist/utils/units.js +0 -82
package/dist/maps.js
DELETED
|
@@ -1,2226 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.DEFAULT_PRN_REASON_DEFINITIONS = exports.DEFAULT_PRN_REASON_ENTRIES = exports.DEFAULT_UNIT_BY_ROUTE = exports.DEFAULT_UNIT_BY_NORMALIZED_FORM = exports.KNOWN_TMT_DOSAGE_FORM_TO_SNOMED_ROUTE = exports.KNOWN_DOSAGE_FORMS_TO_DOSE = exports.WORD_FREQUENCIES = exports.DAY_OF_WEEK_TOKENS = exports.DISCOURAGED_TOKENS = exports.MEAL_KEYWORDS = exports.EVENT_TIMING_TOKENS = exports.TIMING_ABBREVIATIONS = exports.PRODUCT_FORM_HINTS = exports.DEFAULT_UNIT_SYNONYMS = exports.HOUSEHOLD_VOLUME_UNITS = exports.DEFAULT_BODY_SITE_HINTS = exports.DEFAULT_BODY_SITE_SNOMED = exports.DEFAULT_BODY_SITE_SNOMED_SOURCE = exports.DEFAULT_ROUTE_SYNONYMS = exports.ROUTE_BY_SNOMED = exports.ROUTE_TEXT = exports.ROUTE_SNOMED = void 0;
|
|
4
|
-
exports.normalizeBodySiteKey = normalizeBodySiteKey;
|
|
5
|
-
exports.normalizePrnReasonKey = normalizePrnReasonKey;
|
|
6
|
-
exports.normalizeAdditionalInstructionKey = normalizeAdditionalInstructionKey;
|
|
7
|
-
exports.findPrnReasonDefinitionByCoding = findPrnReasonDefinitionByCoding;
|
|
8
|
-
const types_1 = require("./types");
|
|
9
|
-
const object_1 = require("./utils/object");
|
|
10
|
-
const text_1 = require("./utils/text");
|
|
11
|
-
const SNOMED_SYSTEM = "http://snomed.info/sct";
|
|
12
|
-
const ROUTE_TEXT_OVERRIDES = {
|
|
13
|
-
[types_1.RouteCode["Oral route"]]: "by mouth",
|
|
14
|
-
[types_1.RouteCode["Sublingual route"]]: "sublingual",
|
|
15
|
-
[types_1.RouteCode["Buccal route"]]: "buccal",
|
|
16
|
-
[types_1.RouteCode["Respiratory tract route (qualifier value)"]]: "inhalation",
|
|
17
|
-
[types_1.RouteCode["Nasal route"]]: "intranasal",
|
|
18
|
-
[types_1.RouteCode["Topical route"]]: "topical",
|
|
19
|
-
[types_1.RouteCode["Transdermal route"]]: "transdermal",
|
|
20
|
-
[types_1.RouteCode["Subcutaneous route"]]: "subcutaneous",
|
|
21
|
-
[types_1.RouteCode["Intramuscular route"]]: "intramuscular",
|
|
22
|
-
[types_1.RouteCode["Intravenous route"]]: "intravenous",
|
|
23
|
-
[types_1.RouteCode["Per rectum"]]: "rectal",
|
|
24
|
-
[types_1.RouteCode["Per vagina"]]: "vaginal",
|
|
25
|
-
[types_1.RouteCode["Ophthalmic route"]]: "ophthalmic",
|
|
26
|
-
[types_1.RouteCode["Intravitreal route (qualifier value)"]]: "intravitreal"
|
|
27
|
-
};
|
|
28
|
-
function defaultRouteText(display) {
|
|
29
|
-
const cleaned = display.replace(/\s*\(qualifier value\)/gi, "");
|
|
30
|
-
const withoutSuffix = cleaned.replace(/\b(route|use)\b/gi, "");
|
|
31
|
-
return withoutSuffix.replace(/\s+/g, " ").trim().toLowerCase();
|
|
32
|
-
}
|
|
33
|
-
const ROUTE_SNOMED_ENTRIES = (0, object_1.objectEntries)(types_1.SNOMEDCTRouteCodes).map(([display, code]) => {
|
|
34
|
-
const routeCode = code;
|
|
35
|
-
return [
|
|
36
|
-
routeCode,
|
|
37
|
-
{ code: code, display }
|
|
38
|
-
];
|
|
39
|
-
});
|
|
40
|
-
/**
|
|
41
|
-
* SNOMED CT codings aligned with every known RouteCode. Keeping the structure
|
|
42
|
-
* data-driven ensures any additions to the enumeration are surfaced
|
|
43
|
-
* automatically throughout the library.
|
|
44
|
-
*/
|
|
45
|
-
exports.ROUTE_SNOMED = (0, object_1.objectFromEntries)(ROUTE_SNOMED_ENTRIES);
|
|
46
|
-
exports.ROUTE_TEXT = (0, object_1.objectFromEntries)(ROUTE_SNOMED_ENTRIES.map(([routeCode, meta]) => {
|
|
47
|
-
var _a;
|
|
48
|
-
return [
|
|
49
|
-
routeCode,
|
|
50
|
-
(_a = ROUTE_TEXT_OVERRIDES[routeCode]) !== null && _a !== void 0 ? _a : defaultRouteText(meta.display)
|
|
51
|
-
];
|
|
52
|
-
}));
|
|
53
|
-
/**
|
|
54
|
-
* Inverse lookup so that SNOMED codes flowing in from FHIR can be mapped back
|
|
55
|
-
* into our internal RouteCode abstraction during round-tripping.
|
|
56
|
-
*/
|
|
57
|
-
exports.ROUTE_BY_SNOMED = (0, object_1.objectFromEntries)(ROUTE_SNOMED_ENTRIES.map(([routeCode, meta]) => [meta.code, routeCode]));
|
|
58
|
-
exports.DEFAULT_ROUTE_SYNONYMS = (() => {
|
|
59
|
-
const map = {};
|
|
60
|
-
const assign = (key, code) => {
|
|
61
|
-
if (!key)
|
|
62
|
-
return;
|
|
63
|
-
const normalized = key.trim().toLowerCase();
|
|
64
|
-
if (!normalized || map[normalized]) {
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
map[normalized] = { code, text: exports.ROUTE_TEXT[code] };
|
|
68
|
-
};
|
|
69
|
-
const assignWithAdverb = (key, code) => {
|
|
70
|
-
assign(key, code);
|
|
71
|
-
if (!key)
|
|
72
|
-
return;
|
|
73
|
-
const normalized = key.trim().toLowerCase();
|
|
74
|
-
if (!normalized) {
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
if (!/^[a-z]+$/.test(normalized)) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
if (normalized.length < 4 || normalized.endsWith("ly") || normalized.endsWith("eal")) {
|
|
81
|
-
return;
|
|
82
|
-
}
|
|
83
|
-
let adverb;
|
|
84
|
-
if (normalized.endsWith("ic")) {
|
|
85
|
-
adverb = normalized.replace(/ic$/, "ically");
|
|
86
|
-
}
|
|
87
|
-
else {
|
|
88
|
-
adverb = `${normalized}ly`;
|
|
89
|
-
}
|
|
90
|
-
assign(adverb, code);
|
|
91
|
-
};
|
|
92
|
-
const registerVariants = (value, code) => {
|
|
93
|
-
if (!value)
|
|
94
|
-
return;
|
|
95
|
-
assignWithAdverb(value, code);
|
|
96
|
-
const withoutParens = value
|
|
97
|
-
.replace(/[()]/g, " ")
|
|
98
|
-
.replace(/\s+/g, " ")
|
|
99
|
-
.trim();
|
|
100
|
-
assignWithAdverb(withoutParens, code);
|
|
101
|
-
const withoutCommas = value
|
|
102
|
-
.replace(/,/g, " ")
|
|
103
|
-
.replace(/\s+/g, " ")
|
|
104
|
-
.trim();
|
|
105
|
-
assignWithAdverb(withoutCommas, code);
|
|
106
|
-
const withoutPunctuation = value
|
|
107
|
-
.replace(/[().,-]/g, " ")
|
|
108
|
-
.replace(/\s+/g, " ")
|
|
109
|
-
.trim();
|
|
110
|
-
assignWithAdverb(withoutPunctuation, code);
|
|
111
|
-
};
|
|
112
|
-
registerVariants("po", types_1.RouteCode["Oral route"]);
|
|
113
|
-
registerVariants("oral", types_1.RouteCode["Oral route"]);
|
|
114
|
-
registerVariants("by mouth", types_1.RouteCode["Oral route"]);
|
|
115
|
-
registerVariants("per os", types_1.RouteCode["Oral route"]);
|
|
116
|
-
registerVariants("sl", types_1.RouteCode["Sublingual route"]);
|
|
117
|
-
registerVariants("s.l.", types_1.RouteCode["Sublingual route"]);
|
|
118
|
-
registerVariants("sublingual", types_1.RouteCode["Sublingual route"]);
|
|
119
|
-
registerVariants("buccal", types_1.RouteCode["Buccal route"]);
|
|
120
|
-
registerVariants("inh", types_1.RouteCode["Respiratory tract route (qualifier value)"]);
|
|
121
|
-
registerVariants("inhalation", types_1.RouteCode["Respiratory tract route (qualifier value)"]);
|
|
122
|
-
registerVariants("inhaled", types_1.RouteCode["Respiratory tract route (qualifier value)"]);
|
|
123
|
-
registerVariants("iv", types_1.RouteCode["Intravenous route"]);
|
|
124
|
-
registerVariants("ivp", types_1.RouteCode["Intravenous route"]);
|
|
125
|
-
registerVariants("ivpb", types_1.RouteCode["Intravenous route"]);
|
|
126
|
-
registerVariants("iv push", types_1.RouteCode["Intravenous route"]);
|
|
127
|
-
registerVariants("iv bolus", types_1.RouteCode["Intravenous route"]);
|
|
128
|
-
registerVariants("iv drip", types_1.RouteCode["Intravenous route"]);
|
|
129
|
-
registerVariants("intravenous", types_1.RouteCode["Intravenous route"]);
|
|
130
|
-
registerVariants("im", types_1.RouteCode["Intramuscular route"]);
|
|
131
|
-
registerVariants("im injection", types_1.RouteCode["Intramuscular route"]);
|
|
132
|
-
registerVariants("intramuscular", types_1.RouteCode["Intramuscular route"]);
|
|
133
|
-
registerVariants("sc", types_1.RouteCode["Subcutaneous route"]);
|
|
134
|
-
registerVariants("sq", types_1.RouteCode["Subcutaneous route"]);
|
|
135
|
-
registerVariants("subq", types_1.RouteCode["Subcutaneous route"]);
|
|
136
|
-
registerVariants("subcut", types_1.RouteCode["Subcutaneous route"]);
|
|
137
|
-
registerVariants("subcutaneous", types_1.RouteCode["Subcutaneous route"]);
|
|
138
|
-
registerVariants("in", types_1.RouteCode["Nasal route"]);
|
|
139
|
-
registerVariants("intranasal", types_1.RouteCode["Nasal route"]);
|
|
140
|
-
registerVariants("nasal", types_1.RouteCode["Nasal route"]);
|
|
141
|
-
registerVariants("top", types_1.RouteCode["Topical route"]);
|
|
142
|
-
registerVariants("topical", types_1.RouteCode["Topical route"]);
|
|
143
|
-
registerVariants("td", types_1.RouteCode["Transdermal route"]);
|
|
144
|
-
registerVariants("patch", types_1.RouteCode["Transdermal route"]);
|
|
145
|
-
registerVariants("transdermal", types_1.RouteCode["Transdermal route"]);
|
|
146
|
-
registerVariants("pr", types_1.RouteCode["Per rectum"]);
|
|
147
|
-
registerVariants("rectal", types_1.RouteCode["Per rectum"]);
|
|
148
|
-
registerVariants("supp", types_1.RouteCode["Per rectum"]);
|
|
149
|
-
registerVariants("suppo", types_1.RouteCode["Per rectum"]);
|
|
150
|
-
registerVariants("suppository", types_1.RouteCode["Per rectum"]);
|
|
151
|
-
registerVariants("suppositories", types_1.RouteCode["Per rectum"]);
|
|
152
|
-
registerVariants("pv", types_1.RouteCode["Per vagina"]);
|
|
153
|
-
registerVariants("vaginal", types_1.RouteCode["Per vagina"]);
|
|
154
|
-
registerVariants("oph", types_1.RouteCode["Ophthalmic route"]);
|
|
155
|
-
registerVariants("ophth", types_1.RouteCode["Ophthalmic route"]);
|
|
156
|
-
registerVariants("ophthalmic", types_1.RouteCode["Ophthalmic route"]);
|
|
157
|
-
registerVariants("ocular", types_1.RouteCode["Ophthalmic route"]);
|
|
158
|
-
registerVariants("intravitreal", types_1.RouteCode["Intravitreal route (qualifier value)"]);
|
|
159
|
-
registerVariants("intravitreal injection", types_1.RouteCode["Intravitreal route (qualifier value)"]);
|
|
160
|
-
registerVariants("ivt", types_1.RouteCode["Intravitreal route (qualifier value)"]);
|
|
161
|
-
for (const [routeCode, meta] of ROUTE_SNOMED_ENTRIES) {
|
|
162
|
-
const display = meta.display.toLowerCase();
|
|
163
|
-
registerVariants(display, routeCode);
|
|
164
|
-
const withoutQualifier = display.replace(/\s*\(qualifier value\)/g, "").trim();
|
|
165
|
-
registerVariants(withoutQualifier, routeCode);
|
|
166
|
-
const withoutSuffix = withoutQualifier
|
|
167
|
-
.replace(/\b(route|use)\b/g, "")
|
|
168
|
-
.replace(/\s+/g, " ")
|
|
169
|
-
.trim();
|
|
170
|
-
registerVariants(withoutSuffix, routeCode);
|
|
171
|
-
const withoutPer = withoutSuffix.replace(/^per\s+/, "").trim();
|
|
172
|
-
registerVariants(withoutPer, routeCode);
|
|
173
|
-
}
|
|
174
|
-
return map;
|
|
175
|
-
})();
|
|
176
|
-
/**
|
|
177
|
-
* Normalizes body-site phrases into lookup keys by trimming, lower-casing, and
|
|
178
|
-
* collapsing whitespace. Custom site maps should normalize their keys with the
|
|
179
|
-
* same logic to ensure consistent lookups.
|
|
180
|
-
*/
|
|
181
|
-
function normalizeBodySiteKey(value) {
|
|
182
|
-
return (0, text_1.normalizeLoosePhraseKey)(value);
|
|
183
|
-
}
|
|
184
|
-
exports.DEFAULT_BODY_SITE_SNOMED_SOURCE = [
|
|
185
|
-
{
|
|
186
|
-
names: ["eye", "eyes"],
|
|
187
|
-
definition: {
|
|
188
|
-
coding: { code: "81745001", display: "Eye" },
|
|
189
|
-
routeHint: types_1.RouteCode["Ophthalmic route"]
|
|
190
|
-
}
|
|
191
|
-
},
|
|
192
|
-
{
|
|
193
|
-
names: ["left eye"],
|
|
194
|
-
definition: {
|
|
195
|
-
coding: { code: "1290031003", display: "Structure of left eye proper" },
|
|
196
|
-
routeHint: types_1.RouteCode["Ophthalmic route"]
|
|
197
|
-
}
|
|
198
|
-
},
|
|
199
|
-
{
|
|
200
|
-
names: ["right eye"],
|
|
201
|
-
definition: {
|
|
202
|
-
coding: { code: "1290032005", display: "Structure of right eye proper" },
|
|
203
|
-
routeHint: types_1.RouteCode["Ophthalmic route"]
|
|
204
|
-
}
|
|
205
|
-
},
|
|
206
|
-
{
|
|
207
|
-
names: ["both eyes", "bilateral eyes"],
|
|
208
|
-
definition: {
|
|
209
|
-
coding: { code: "40638003", display: "Structure of both eyes" },
|
|
210
|
-
routeHint: types_1.RouteCode["Ophthalmic route"]
|
|
211
|
-
}
|
|
212
|
-
},
|
|
213
|
-
{
|
|
214
|
-
names: ["ear", "ears"],
|
|
215
|
-
definition: {
|
|
216
|
-
coding: { code: "117590005", display: "Ear-related structure" },
|
|
217
|
-
routeHint: types_1.RouteCode["Otic route"]
|
|
218
|
-
}
|
|
219
|
-
},
|
|
220
|
-
{
|
|
221
|
-
names: ["left ear"],
|
|
222
|
-
definition: { coding: { code: "89644007", display: "Left ear" }, routeHint: types_1.RouteCode["Otic route"] }
|
|
223
|
-
},
|
|
224
|
-
{
|
|
225
|
-
names: ["right ear"],
|
|
226
|
-
definition: { coding: { code: "25577004", display: "Right ear" }, routeHint: types_1.RouteCode["Otic route"] }
|
|
227
|
-
},
|
|
228
|
-
{
|
|
229
|
-
names: ["both ears", "bilateral ears"],
|
|
230
|
-
definition: { coding: { code: "34338003", display: "Both ears" }, routeHint: types_1.RouteCode["Otic route"] }
|
|
231
|
-
},
|
|
232
|
-
{
|
|
233
|
-
names: ["nostril", "nostrils"],
|
|
234
|
-
definition: { coding: { code: "1797002", display: "Naris" }, routeHint: types_1.RouteCode["Nasal route"] }
|
|
235
|
-
},
|
|
236
|
-
{
|
|
237
|
-
names: ["left nostril", "left naris"],
|
|
238
|
-
definition: {
|
|
239
|
-
coding: { code: "723608007", display: "Structure of left anterior naris" },
|
|
240
|
-
routeHint: types_1.RouteCode["Nasal route"]
|
|
241
|
-
}
|
|
242
|
-
},
|
|
243
|
-
{
|
|
244
|
-
names: ["right nostril", "right naris"],
|
|
245
|
-
definition: {
|
|
246
|
-
coding: { code: "723609004", display: "Structure of right anterior naris" },
|
|
247
|
-
routeHint: types_1.RouteCode["Nasal route"]
|
|
248
|
-
}
|
|
249
|
-
},
|
|
250
|
-
{
|
|
251
|
-
names: ["nares", "anterior nares"],
|
|
252
|
-
definition: { coding: { code: "244506005", display: "Anterior nares" }, routeHint: types_1.RouteCode["Nasal route"] }
|
|
253
|
-
},
|
|
254
|
-
{
|
|
255
|
-
names: ["nose"],
|
|
256
|
-
definition: { coding: { code: "181195007", display: "Entire nose" }, routeHint: types_1.RouteCode["Nasal route"] }
|
|
257
|
-
},
|
|
258
|
-
{
|
|
259
|
-
names: ["mouth"],
|
|
260
|
-
definition: { coding: { code: "123851003", display: "Mouth region" }, routeHint: types_1.RouteCode["Oral route"] }
|
|
261
|
-
},
|
|
262
|
-
{
|
|
263
|
-
names: ["tongue", "tongues"],
|
|
264
|
-
definition: { coding: { code: "21974007", display: "Tongue" }, routeHint: types_1.RouteCode["Sublingual route"] }
|
|
265
|
-
},
|
|
266
|
-
{
|
|
267
|
-
names: ["lip", "lips"],
|
|
268
|
-
definition: { coding: { code: "48477009", display: "Lip structure" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
269
|
-
},
|
|
270
|
-
{
|
|
271
|
-
names: ["cheek", "cheeks"],
|
|
272
|
-
definition: {
|
|
273
|
-
coding: { code: "60819002", display: "Buccal region of face" },
|
|
274
|
-
routeHint: types_1.RouteCode["Buccal route"]
|
|
275
|
-
}
|
|
276
|
-
},
|
|
277
|
-
{
|
|
278
|
-
names: ["gum", "gums"],
|
|
279
|
-
definition: {
|
|
280
|
-
coding: {
|
|
281
|
-
code: "362116001",
|
|
282
|
-
display: "Entire gum and supporting structure of tooth"
|
|
283
|
-
},
|
|
284
|
-
routeHint: types_1.RouteCode["Topical route"]
|
|
285
|
-
}
|
|
286
|
-
},
|
|
287
|
-
{
|
|
288
|
-
names: ["tooth"],
|
|
289
|
-
definition: { coding: { code: "38199008", display: "Tooth" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
290
|
-
},
|
|
291
|
-
{
|
|
292
|
-
names: ["teeth"],
|
|
293
|
-
definition: { coding: { code: "1162715001", display: "All teeth" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
294
|
-
},
|
|
295
|
-
{
|
|
296
|
-
names: ["arm", "upper arm"],
|
|
297
|
-
definition: { coding: { code: "302538001", display: "Entire upper arm" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
298
|
-
},
|
|
299
|
-
{
|
|
300
|
-
names: ["left arm", "left upper arm"],
|
|
301
|
-
definition: {
|
|
302
|
-
coding: { code: "368208006", display: "Left upper arm structure" },
|
|
303
|
-
routeHint: types_1.RouteCode["Topical route"]
|
|
304
|
-
}
|
|
305
|
-
},
|
|
306
|
-
{
|
|
307
|
-
names: ["right arm", "right upper arm"],
|
|
308
|
-
definition: { coding: { code: "368209003", display: "Right upper arm" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
309
|
-
},
|
|
310
|
-
{
|
|
311
|
-
names: ["both arms", "bilateral arms"],
|
|
312
|
-
definition: { coding: { code: "69273007", display: "Both arms" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
313
|
-
},
|
|
314
|
-
{
|
|
315
|
-
names: ["shoulder", "shoulders"],
|
|
316
|
-
definition: { coding: { code: "16982005", display: "Shoulder region structure" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
317
|
-
},
|
|
318
|
-
{
|
|
319
|
-
names: ["left shoulder"],
|
|
320
|
-
definition: { coding: { code: "91775009", display: "Left shoulder" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
321
|
-
},
|
|
322
|
-
{
|
|
323
|
-
names: ["right shoulder"],
|
|
324
|
-
definition: { coding: { code: "91774008", display: "Right shoulder" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
325
|
-
},
|
|
326
|
-
{
|
|
327
|
-
names: ["forearm"],
|
|
328
|
-
definition: { coding: { code: "14975008", display: "Forearm" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
329
|
-
},
|
|
330
|
-
{
|
|
331
|
-
names: ["left forearm"],
|
|
332
|
-
definition: { coding: { code: "66480008", display: "Left forearm" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
333
|
-
},
|
|
334
|
-
{
|
|
335
|
-
names: ["right forearm"],
|
|
336
|
-
definition: { coding: { code: "64262003", display: "Right forearm" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
337
|
-
},
|
|
338
|
-
{
|
|
339
|
-
names: ["elbow"],
|
|
340
|
-
definition: { coding: { code: "127949000", display: "Elbow region structure" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
341
|
-
},
|
|
342
|
-
{
|
|
343
|
-
names: ["left elbow"],
|
|
344
|
-
definition: { coding: { code: "368148009", display: "Left elbow" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
345
|
-
},
|
|
346
|
-
{
|
|
347
|
-
names: ["right elbow"],
|
|
348
|
-
definition: { coding: { code: "368149001", display: "Right elbow" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
349
|
-
},
|
|
350
|
-
{
|
|
351
|
-
names: ["leg", "lower leg"],
|
|
352
|
-
definition: {
|
|
353
|
-
coding: { code: "362793004", display: "Entire lower leg, from knee to ankle" },
|
|
354
|
-
routeHint: types_1.RouteCode["Topical route"]
|
|
355
|
-
}
|
|
356
|
-
},
|
|
357
|
-
{
|
|
358
|
-
names: ["left leg", "left lower leg"],
|
|
359
|
-
definition: { coding: { code: "213384005", display: "Entire left lower leg" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
360
|
-
},
|
|
361
|
-
{
|
|
362
|
-
names: ["right leg", "right lower leg"],
|
|
363
|
-
definition: { coding: { code: "213289002", display: "Entire right lower leg" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
364
|
-
},
|
|
365
|
-
{
|
|
366
|
-
names: ["both legs", "bilateral legs"],
|
|
367
|
-
definition: { coding: { code: "40927001", display: "Both legs" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
368
|
-
},
|
|
369
|
-
{
|
|
370
|
-
names: ["thigh"],
|
|
371
|
-
definition: { coding: { code: "68367000", display: "Thigh" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
372
|
-
},
|
|
373
|
-
{
|
|
374
|
-
names: ["left thigh"],
|
|
375
|
-
definition: { coding: { code: "61396006", display: "Left thigh" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
376
|
-
},
|
|
377
|
-
{
|
|
378
|
-
names: ["right thigh"],
|
|
379
|
-
definition: { coding: { code: "11207009", display: "Right thigh" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
380
|
-
},
|
|
381
|
-
{
|
|
382
|
-
names: ["knee"],
|
|
383
|
-
definition: { coding: { code: "72696002", display: "Knee region structure" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
384
|
-
},
|
|
385
|
-
{
|
|
386
|
-
names: ["left knee"],
|
|
387
|
-
definition: { coding: { code: "82169009", display: "Left knee" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
388
|
-
},
|
|
389
|
-
{
|
|
390
|
-
names: ["right knee"],
|
|
391
|
-
definition: { coding: { code: "6757004", display: "Right knee" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
392
|
-
},
|
|
393
|
-
{
|
|
394
|
-
names: ["both knees", "bilateral knees"],
|
|
395
|
-
definition: { coding: { code: "36701003", display: "Both knees" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
396
|
-
},
|
|
397
|
-
{
|
|
398
|
-
names: ["wrist"],
|
|
399
|
-
definition: { coding: { code: "8205005", display: "Wrist region structure" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
400
|
-
},
|
|
401
|
-
{
|
|
402
|
-
names: ["left wrist"],
|
|
403
|
-
definition: { coding: { code: "5951000", display: "Structure of left wrist" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
404
|
-
},
|
|
405
|
-
{
|
|
406
|
-
names: ["right wrist"],
|
|
407
|
-
definition: { coding: { code: "9736006", display: "Structure of right wrist" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
408
|
-
},
|
|
409
|
-
{
|
|
410
|
-
names: ["ankle"],
|
|
411
|
-
definition: { coding: { code: "344001", display: "Ankle region structure" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
412
|
-
},
|
|
413
|
-
{
|
|
414
|
-
names: ["left ankle"],
|
|
415
|
-
definition: { coding: { code: "51636004", display: "Structure of left ankle" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
416
|
-
},
|
|
417
|
-
{
|
|
418
|
-
names: ["right ankle"],
|
|
419
|
-
definition: { coding: { code: "6685009", display: "Structure of right ankle" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
420
|
-
},
|
|
421
|
-
{
|
|
422
|
-
names: ["both ankles", "bilateral ankles"],
|
|
423
|
-
definition: { coding: { code: "69948000", display: "Both ankles" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
424
|
-
},
|
|
425
|
-
{
|
|
426
|
-
names: ["hip"],
|
|
427
|
-
definition: { coding: { code: "29836001", display: "Hip region structure" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
428
|
-
},
|
|
429
|
-
{
|
|
430
|
-
names: ["left hip"],
|
|
431
|
-
definition: { coding: { code: "287679003", display: "Left hip" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
432
|
-
},
|
|
433
|
-
{
|
|
434
|
-
names: ["right hip"],
|
|
435
|
-
definition: { coding: { code: "287579007", display: "Right hip" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
436
|
-
},
|
|
437
|
-
{
|
|
438
|
-
names: ["hand", "hands"],
|
|
439
|
-
definition: { coding: { code: "85562004", display: "Hand" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
440
|
-
},
|
|
441
|
-
{
|
|
442
|
-
names: ["left hand"],
|
|
443
|
-
definition: { coding: { code: "85151006", display: "Left hand" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
444
|
-
},
|
|
445
|
-
{
|
|
446
|
-
names: ["right hand"],
|
|
447
|
-
definition: { coding: { code: "78791008", display: "Right hand" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
448
|
-
},
|
|
449
|
-
{
|
|
450
|
-
names: ["foot", "feet"],
|
|
451
|
-
definition: { coding: { code: "56459004", display: "Foot" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
452
|
-
},
|
|
453
|
-
{
|
|
454
|
-
names: ["left foot"],
|
|
455
|
-
definition: { coding: { code: "22335008", display: "Left foot" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
456
|
-
},
|
|
457
|
-
{
|
|
458
|
-
names: ["right foot"],
|
|
459
|
-
definition: { coding: { code: "7769000", display: "Right foot" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
460
|
-
},
|
|
461
|
-
{
|
|
462
|
-
names: ["abdomen", "abdominal", "belly"],
|
|
463
|
-
definition: { coding: { code: "302553009", display: "Entire abdomen" }, routeHint: types_1.RouteCode["Subcutaneous route"] }
|
|
464
|
-
},
|
|
465
|
-
{
|
|
466
|
-
names: ["head"],
|
|
467
|
-
definition: { coding: { code: "69536005", display: "Head structure" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
468
|
-
},
|
|
469
|
-
{
|
|
470
|
-
names: ["affected area", "affected areas", "affected site", "บริเวณที่เป็น"],
|
|
471
|
-
definition: { text: "affected area", routeHint: types_1.RouteCode["Topical route"] }
|
|
472
|
-
},
|
|
473
|
-
{
|
|
474
|
-
names: ["left head", "left side of head"],
|
|
475
|
-
definition: { coding: { code: "64237003", display: "Structure of left half of head" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
476
|
-
},
|
|
477
|
-
{
|
|
478
|
-
names: ["right head", "right side of head"],
|
|
479
|
-
definition: { coding: { code: "29624005", display: "Structure of right half of head" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
480
|
-
},
|
|
481
|
-
{
|
|
482
|
-
names: ["back"],
|
|
483
|
-
definition: { coding: { code: "77568009", display: "Back" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
484
|
-
},
|
|
485
|
-
{
|
|
486
|
-
names: ["chest"],
|
|
487
|
-
definition: { coding: { code: "51185008", display: "Thoracic structure" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
488
|
-
},
|
|
489
|
-
{
|
|
490
|
-
names: ["chest wall"],
|
|
491
|
-
definition: { coding: { code: "78904004", display: "Chest wall structure" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
492
|
-
},
|
|
493
|
-
{
|
|
494
|
-
names: ["breast"],
|
|
495
|
-
definition: { coding: { code: "76752008", display: "Breast structure" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
496
|
-
},
|
|
497
|
-
{
|
|
498
|
-
names: ["left breast"],
|
|
499
|
-
definition: { coding: { code: "80248007", display: "Left breast" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
500
|
-
},
|
|
501
|
-
{
|
|
502
|
-
names: ["right breast"],
|
|
503
|
-
definition: { coding: { code: "73056007", display: "Right breast" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
504
|
-
},
|
|
505
|
-
{
|
|
506
|
-
names: ["both breasts", "bilateral breasts"],
|
|
507
|
-
definition: { coding: { code: "63762007", display: "Both breasts" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
508
|
-
},
|
|
509
|
-
{
|
|
510
|
-
names: ["axilla", "axillae", "armpit", "armpits"],
|
|
511
|
-
definition: { coding: { code: "34797008", display: "Axilla structure" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
512
|
-
},
|
|
513
|
-
{
|
|
514
|
-
names: ["groin"],
|
|
515
|
-
definition: { coding: { code: "26893007", display: "Inguinal region structure" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
516
|
-
},
|
|
517
|
-
{
|
|
518
|
-
names: ["scalp"],
|
|
519
|
-
definition: { coding: { code: "41695006", display: "Scalp" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
520
|
-
},
|
|
521
|
-
{
|
|
522
|
-
names: ["face"],
|
|
523
|
-
definition: { coding: { code: "89545001", display: "Face" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
524
|
-
},
|
|
525
|
-
{
|
|
526
|
-
names: ["eyelid", "eyelids"],
|
|
527
|
-
definition: { coding: { code: "80243003", display: "Eyelid" }, routeHint: types_1.RouteCode["Ophthalmic route"] }
|
|
528
|
-
},
|
|
529
|
-
{
|
|
530
|
-
names: ["forehead"],
|
|
531
|
-
definition: { coding: { code: "52795006", display: "Forehead" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
532
|
-
},
|
|
533
|
-
{
|
|
534
|
-
names: ["temple", "temple region", "temporal region"],
|
|
535
|
-
definition: { coding: { code: "450721000", display: "Temple region structure" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
536
|
-
},
|
|
537
|
-
{
|
|
538
|
-
names: ["temples", "both temples", "bilateral temples"],
|
|
539
|
-
definition: { coding: { code: "362620003", display: "Entire temporal region" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
540
|
-
},
|
|
541
|
-
{
|
|
542
|
-
names: ["left temple", "left temple region", "left temporal region"],
|
|
543
|
-
definition: { coding: { code: "1373280005", display: "Left temple region" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
544
|
-
},
|
|
545
|
-
{
|
|
546
|
-
names: ["right temple", "right temple region", "right temporal region"],
|
|
547
|
-
definition: { coding: { code: "1373281009", display: "Right temple region" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
548
|
-
},
|
|
549
|
-
{
|
|
550
|
-
names: ["chin"],
|
|
551
|
-
definition: {
|
|
552
|
-
coding: {
|
|
553
|
-
code: "897081006",
|
|
554
|
-
display: "Skin and/or subcutaneous tissue of chin"
|
|
555
|
-
},
|
|
556
|
-
routeHint: types_1.RouteCode["Topical route"]
|
|
557
|
-
}
|
|
558
|
-
},
|
|
559
|
-
{
|
|
560
|
-
names: ["neck"],
|
|
561
|
-
definition: { coding: { code: "45048000", display: "Neck" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
562
|
-
},
|
|
563
|
-
{
|
|
564
|
-
names: ["buttock", "buttocks", "gluteal", "glute"],
|
|
565
|
-
definition: { coding: { code: "46862004", display: "Buttock" }, routeHint: types_1.RouteCode["Intramuscular route"] }
|
|
566
|
-
},
|
|
567
|
-
{
|
|
568
|
-
names: ["left buttock", "left gluteal"],
|
|
569
|
-
definition: { coding: { code: "723979003", display: "Structure of left buttock" }, routeHint: types_1.RouteCode["Intramuscular route"] }
|
|
570
|
-
},
|
|
571
|
-
{
|
|
572
|
-
names: ["right buttock", "right gluteal"],
|
|
573
|
-
definition: { coding: { code: "723980000", display: "Structure of right buttock" }, routeHint: types_1.RouteCode["Intramuscular route"] }
|
|
574
|
-
},
|
|
575
|
-
{
|
|
576
|
-
names: ["muscle", "muscles"],
|
|
577
|
-
definition: {
|
|
578
|
-
coding: {
|
|
579
|
-
code: "362876008",
|
|
580
|
-
display: "All skeletal and smooth muscles of the body"
|
|
581
|
-
},
|
|
582
|
-
routeHint: types_1.RouteCode["Intramuscular route"]
|
|
583
|
-
}
|
|
584
|
-
},
|
|
585
|
-
{
|
|
586
|
-
names: ["vein", "veins"],
|
|
587
|
-
definition: { coding: { code: "181367001", display: "Entire vein" }, routeHint: types_1.RouteCode["Intravenous route"] }
|
|
588
|
-
},
|
|
589
|
-
{
|
|
590
|
-
names: ["vagina", "vaginal"],
|
|
591
|
-
definition: { coding: { code: "76784001", display: "Vagina" }, routeHint: types_1.RouteCode["Per vagina"] }
|
|
592
|
-
},
|
|
593
|
-
{
|
|
594
|
-
names: ["penis", "penile"],
|
|
595
|
-
definition: { coding: { code: "18911002", display: "Penis structure" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
596
|
-
},
|
|
597
|
-
{
|
|
598
|
-
names: ["rectum", "rectal"],
|
|
599
|
-
definition: { coding: { code: "34402009", display: "Rectum" }, routeHint: types_1.RouteCode["Per rectum"] }
|
|
600
|
-
},
|
|
601
|
-
{
|
|
602
|
-
names: ["anus"],
|
|
603
|
-
definition: { coding: { code: "181262009", display: "Entire anus" }, routeHint: types_1.RouteCode["Per rectum"] }
|
|
604
|
-
},
|
|
605
|
-
{
|
|
606
|
-
names: ["perineum"],
|
|
607
|
-
definition: { coding: { code: "243990009", display: "Entire perineum" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
608
|
-
},
|
|
609
|
-
{
|
|
610
|
-
names: ["skin"],
|
|
611
|
-
definition: { coding: { code: "181469002", display: "Entire skin" }, routeHint: types_1.RouteCode["Topical route"] }
|
|
612
|
-
},
|
|
613
|
-
{
|
|
614
|
-
names: ["hair"],
|
|
615
|
-
definition: {
|
|
616
|
-
coding: { code: "386045008", display: "Hair structure (body structure)" },
|
|
617
|
-
routeHint: types_1.RouteCode["Topical route"]
|
|
618
|
-
}
|
|
619
|
-
}
|
|
620
|
-
];
|
|
621
|
-
exports.DEFAULT_BODY_SITE_SNOMED = (0, object_1.objectFromEntries)(exports.DEFAULT_BODY_SITE_SNOMED_SOURCE.reduce((entries, source) => {
|
|
622
|
-
const { names, definition } = source;
|
|
623
|
-
for (const name of names) {
|
|
624
|
-
const key = normalizeBodySiteKey(name);
|
|
625
|
-
if (!key) {
|
|
626
|
-
continue;
|
|
627
|
-
}
|
|
628
|
-
entries.push([key, definition]);
|
|
629
|
-
}
|
|
630
|
-
return entries;
|
|
631
|
-
}, []));
|
|
632
|
-
exports.DEFAULT_BODY_SITE_HINTS = (() => {
|
|
633
|
-
const hints = new Set();
|
|
634
|
-
const addPhrase = (phrase) => {
|
|
635
|
-
const normalized = normalizeBodySiteKey(phrase !== null && phrase !== void 0 ? phrase : "");
|
|
636
|
-
if (!normalized) {
|
|
637
|
-
return;
|
|
638
|
-
}
|
|
639
|
-
for (const part of normalized.split(" ")) {
|
|
640
|
-
if (part) {
|
|
641
|
-
hints.add(part);
|
|
642
|
-
}
|
|
643
|
-
}
|
|
644
|
-
};
|
|
645
|
-
for (const [key, definition] of (0, object_1.objectEntries)(exports.DEFAULT_BODY_SITE_SNOMED)) {
|
|
646
|
-
addPhrase(key);
|
|
647
|
-
if (definition.aliases) {
|
|
648
|
-
for (const alias of definition.aliases) {
|
|
649
|
-
addPhrase(alias);
|
|
650
|
-
}
|
|
651
|
-
}
|
|
652
|
-
}
|
|
653
|
-
return hints;
|
|
654
|
-
})();
|
|
655
|
-
const UNIT_PREFIXES = [
|
|
656
|
-
{ canonical: "", abbreviations: [""], names: [{ singular: "", plural: "" }] },
|
|
657
|
-
{
|
|
658
|
-
canonical: "m",
|
|
659
|
-
abbreviations: ["m"],
|
|
660
|
-
names: [{ singular: "milli", plural: "milli" }],
|
|
661
|
-
},
|
|
662
|
-
{
|
|
663
|
-
canonical: "mc",
|
|
664
|
-
abbreviations: ["mc", "µ", "μ", "u"],
|
|
665
|
-
names: [{ singular: "micro", plural: "micro" }],
|
|
666
|
-
},
|
|
667
|
-
{
|
|
668
|
-
canonical: "n",
|
|
669
|
-
abbreviations: ["n"],
|
|
670
|
-
names: [{ singular: "nano", plural: "nano" }],
|
|
671
|
-
},
|
|
672
|
-
{
|
|
673
|
-
canonical: "k",
|
|
674
|
-
abbreviations: ["k"],
|
|
675
|
-
names: [{ singular: "kilo", plural: "kilo" }],
|
|
676
|
-
},
|
|
677
|
-
];
|
|
678
|
-
const METRIC_UNIT_BASES = [
|
|
679
|
-
{
|
|
680
|
-
canonical: "g",
|
|
681
|
-
abbreviations: ["g"],
|
|
682
|
-
names: [
|
|
683
|
-
{ singular: "gram", plural: "grams" },
|
|
684
|
-
{ singular: "gramme", plural: "grammes" },
|
|
685
|
-
],
|
|
686
|
-
},
|
|
687
|
-
{
|
|
688
|
-
canonical: "L",
|
|
689
|
-
abbreviations: ["l"],
|
|
690
|
-
names: [
|
|
691
|
-
{ singular: "liter", plural: "liters" },
|
|
692
|
-
{ singular: "litre", plural: "litres" },
|
|
693
|
-
],
|
|
694
|
-
},
|
|
695
|
-
];
|
|
696
|
-
function assignUnitSynonym(map, key, canonical) {
|
|
697
|
-
const normalized = key.trim().toLowerCase();
|
|
698
|
-
if (!normalized || map[normalized]) {
|
|
699
|
-
return;
|
|
700
|
-
}
|
|
701
|
-
map[normalized] = canonical;
|
|
702
|
-
}
|
|
703
|
-
function addMetricUnitSynonyms(map) {
|
|
704
|
-
for (const prefix of UNIT_PREFIXES) {
|
|
705
|
-
for (const base of METRIC_UNIT_BASES) {
|
|
706
|
-
const canonical = `${prefix.canonical}${base.canonical}`;
|
|
707
|
-
for (const prefixAbbrev of prefix.abbreviations) {
|
|
708
|
-
for (const baseAbbrev of base.abbreviations) {
|
|
709
|
-
if (!baseAbbrev) {
|
|
710
|
-
continue;
|
|
711
|
-
}
|
|
712
|
-
const token = `${prefixAbbrev}${baseAbbrev}`;
|
|
713
|
-
assignUnitSynonym(map, token, canonical);
|
|
714
|
-
assignUnitSynonym(map, `${token}s`, canonical);
|
|
715
|
-
if (token.endsWith(".")) {
|
|
716
|
-
assignUnitSynonym(map, token.replace(/\.+$/, ""), canonical);
|
|
717
|
-
}
|
|
718
|
-
}
|
|
719
|
-
}
|
|
720
|
-
for (const prefixName of prefix.names) {
|
|
721
|
-
for (const baseName of base.names) {
|
|
722
|
-
const singular = `${prefixName.singular}${baseName.singular}`;
|
|
723
|
-
const plural = `${prefixName.singular}${baseName.plural}`;
|
|
724
|
-
const hyphenSingular = prefixName.singular
|
|
725
|
-
? `${prefixName.singular}-${baseName.singular}`
|
|
726
|
-
: baseName.singular;
|
|
727
|
-
const hyphenPlural = prefixName.singular
|
|
728
|
-
? `${prefixName.singular}-${baseName.plural}`
|
|
729
|
-
: baseName.plural;
|
|
730
|
-
assignUnitSynonym(map, singular, canonical);
|
|
731
|
-
assignUnitSynonym(map, plural, canonical);
|
|
732
|
-
assignUnitSynonym(map, hyphenSingular, canonical);
|
|
733
|
-
assignUnitSynonym(map, hyphenPlural, canonical);
|
|
734
|
-
}
|
|
735
|
-
}
|
|
736
|
-
}
|
|
737
|
-
}
|
|
738
|
-
}
|
|
739
|
-
exports.HOUSEHOLD_VOLUME_UNITS = ["tsp", "tbsp"];
|
|
740
|
-
const STATIC_UNIT_SYNONYMS = {
|
|
741
|
-
u: "U",
|
|
742
|
-
unit: "U",
|
|
743
|
-
units: "U",
|
|
744
|
-
iu: "IU",
|
|
745
|
-
"i.u": "IU",
|
|
746
|
-
"i.u.": "IU",
|
|
747
|
-
ius: "IU",
|
|
748
|
-
tab: "tab",
|
|
749
|
-
tabs: "tab",
|
|
750
|
-
tablet: "tab",
|
|
751
|
-
tablets: "tab",
|
|
752
|
-
cap: "cap",
|
|
753
|
-
caps: "cap",
|
|
754
|
-
capsule: "cap",
|
|
755
|
-
capsules: "cap",
|
|
756
|
-
puff: "puff",
|
|
757
|
-
puffs: "puff",
|
|
758
|
-
spray: "spray",
|
|
759
|
-
sprays: "spray",
|
|
760
|
-
drop: "drop",
|
|
761
|
-
drops: "drop",
|
|
762
|
-
pump: "pump",
|
|
763
|
-
pumps: "pump",
|
|
764
|
-
squeeze: "squeeze",
|
|
765
|
-
squeezes: "squeeze",
|
|
766
|
-
applicatorful: "applicatorful",
|
|
767
|
-
applicatorfuls: "applicatorful",
|
|
768
|
-
capful: "capful",
|
|
769
|
-
capfuls: "capful",
|
|
770
|
-
scoop: "scoop",
|
|
771
|
-
scoops: "scoop",
|
|
772
|
-
application: "application",
|
|
773
|
-
applications: "application",
|
|
774
|
-
ribbon: "ribbon",
|
|
775
|
-
patch: "patch",
|
|
776
|
-
patches: "patch",
|
|
777
|
-
supp: "suppository",
|
|
778
|
-
suppository: "suppository",
|
|
779
|
-
suppositories: "suppository",
|
|
780
|
-
tsp: "tsp",
|
|
781
|
-
"tsp.": "tsp",
|
|
782
|
-
tsps: "tsp",
|
|
783
|
-
"tsps.": "tsp",
|
|
784
|
-
teaspoon: "tsp",
|
|
785
|
-
teaspoons: "tsp",
|
|
786
|
-
tbsp: "tbsp",
|
|
787
|
-
"tbsp.": "tbsp",
|
|
788
|
-
tbs: "tbsp",
|
|
789
|
-
"tbs.": "tbsp",
|
|
790
|
-
tablespoon: "tbsp",
|
|
791
|
-
tablespoons: "tbsp",
|
|
792
|
-
};
|
|
793
|
-
exports.DEFAULT_UNIT_SYNONYMS = (() => {
|
|
794
|
-
const map = Object.assign({}, STATIC_UNIT_SYNONYMS);
|
|
795
|
-
addMetricUnitSynonyms(map);
|
|
796
|
-
return map;
|
|
797
|
-
})();
|
|
798
|
-
exports.PRODUCT_FORM_HINTS = {
|
|
799
|
-
cream: { routeHint: types_1.RouteCode["Topical route"] },
|
|
800
|
-
ointment: { routeHint: types_1.RouteCode["Topical route"] },
|
|
801
|
-
gel: { routeHint: types_1.RouteCode["Topical route"] },
|
|
802
|
-
lotion: { routeHint: types_1.RouteCode["Topical route"] },
|
|
803
|
-
serum: { routeHint: types_1.RouteCode["Topical route"] },
|
|
804
|
-
toner: { routeHint: types_1.RouteCode["Topical route"] },
|
|
805
|
-
moisturizer: { routeHint: types_1.RouteCode["Topical route"] },
|
|
806
|
-
shampoo: { routeHint: types_1.RouteCode["Topical route"] },
|
|
807
|
-
sunscreen: { routeHint: types_1.RouteCode["Topical route"] },
|
|
808
|
-
deodorant: { routeHint: types_1.RouteCode["Topical route"] },
|
|
809
|
-
cleanser: { routeHint: types_1.RouteCode["Topical route"] },
|
|
810
|
-
"face wash": { routeHint: types_1.RouteCode["Topical route"] },
|
|
811
|
-
"body wash": { routeHint: types_1.RouteCode["Topical route"] },
|
|
812
|
-
"body lotion": { routeHint: types_1.RouteCode["Topical route"] },
|
|
813
|
-
"lip balm": { routeHint: types_1.RouteCode["Topical route"] },
|
|
814
|
-
"spot treatment": { routeHint: types_1.RouteCode["Topical route"] },
|
|
815
|
-
"makeup remover": { routeHint: types_1.RouteCode["Topical route"] },
|
|
816
|
-
balm: { routeHint: types_1.RouteCode["Topical route"] },
|
|
817
|
-
foam: { routeHint: types_1.RouteCode["Topical route"] }
|
|
818
|
-
};
|
|
819
|
-
exports.TIMING_ABBREVIATIONS = {
|
|
820
|
-
qd: {
|
|
821
|
-
code: "QD",
|
|
822
|
-
frequency: 1,
|
|
823
|
-
period: 1,
|
|
824
|
-
periodUnit: types_1.FhirPeriodUnit.Day,
|
|
825
|
-
discouraged: "QD"
|
|
826
|
-
},
|
|
827
|
-
qod: {
|
|
828
|
-
code: "QOD",
|
|
829
|
-
period: 2,
|
|
830
|
-
periodUnit: types_1.FhirPeriodUnit.Day,
|
|
831
|
-
discouraged: "QOD"
|
|
832
|
-
},
|
|
833
|
-
od: {
|
|
834
|
-
code: "QD",
|
|
835
|
-
frequency: 1,
|
|
836
|
-
period: 1,
|
|
837
|
-
periodUnit: types_1.FhirPeriodUnit.Day
|
|
838
|
-
},
|
|
839
|
-
ad: {
|
|
840
|
-
period: 2,
|
|
841
|
-
periodUnit: types_1.FhirPeriodUnit.Day,
|
|
842
|
-
discouraged: "AD"
|
|
843
|
-
},
|
|
844
|
-
bid: {
|
|
845
|
-
code: "BID",
|
|
846
|
-
frequency: 2,
|
|
847
|
-
period: 1,
|
|
848
|
-
periodUnit: types_1.FhirPeriodUnit.Day
|
|
849
|
-
},
|
|
850
|
-
tid: {
|
|
851
|
-
code: "TID",
|
|
852
|
-
frequency: 3,
|
|
853
|
-
period: 1,
|
|
854
|
-
periodUnit: types_1.FhirPeriodUnit.Day
|
|
855
|
-
},
|
|
856
|
-
qid: {
|
|
857
|
-
code: "QID",
|
|
858
|
-
frequency: 4,
|
|
859
|
-
period: 1,
|
|
860
|
-
periodUnit: types_1.FhirPeriodUnit.Day
|
|
861
|
-
},
|
|
862
|
-
q1h: { code: "Q1H", period: 1, periodUnit: types_1.FhirPeriodUnit.Hour },
|
|
863
|
-
q2h: { code: "Q2H", period: 2, periodUnit: types_1.FhirPeriodUnit.Hour },
|
|
864
|
-
q3h: { code: "Q3H", period: 3, periodUnit: types_1.FhirPeriodUnit.Hour },
|
|
865
|
-
q4h: { code: "Q4H", period: 4, periodUnit: types_1.FhirPeriodUnit.Hour },
|
|
866
|
-
q6h: { code: "Q6H", period: 6, periodUnit: types_1.FhirPeriodUnit.Hour },
|
|
867
|
-
q8h: { code: "Q8H", period: 8, periodUnit: types_1.FhirPeriodUnit.Hour },
|
|
868
|
-
q12h: { code: "Q12H", period: 12, periodUnit: types_1.FhirPeriodUnit.Hour },
|
|
869
|
-
q24h: { code: "Q24H", period: 24, periodUnit: types_1.FhirPeriodUnit.Hour },
|
|
870
|
-
q1d: {
|
|
871
|
-
code: "QD",
|
|
872
|
-
frequency: 1,
|
|
873
|
-
period: 1,
|
|
874
|
-
periodUnit: types_1.FhirPeriodUnit.Day
|
|
875
|
-
},
|
|
876
|
-
q2d: { code: "Q2D", period: 2, periodUnit: types_1.FhirPeriodUnit.Day },
|
|
877
|
-
q3d: { code: "Q3D", period: 3, periodUnit: types_1.FhirPeriodUnit.Day },
|
|
878
|
-
q1wk: { code: "WK", period: 1, periodUnit: types_1.FhirPeriodUnit.Week },
|
|
879
|
-
q1w: { code: "WK", period: 1, periodUnit: types_1.FhirPeriodUnit.Week },
|
|
880
|
-
q2wk: { code: "Q2WK", period: 2, periodUnit: types_1.FhirPeriodUnit.Week },
|
|
881
|
-
q1mo: { code: "MO", period: 1, periodUnit: types_1.FhirPeriodUnit.Month },
|
|
882
|
-
q2mo: { code: "Q2MO", period: 2, periodUnit: types_1.FhirPeriodUnit.Month },
|
|
883
|
-
wk: { code: "WK", period: 1, periodUnit: types_1.FhirPeriodUnit.Week },
|
|
884
|
-
weekly: { code: "WK", period: 1, periodUnit: types_1.FhirPeriodUnit.Week },
|
|
885
|
-
mo: { code: "MO", period: 1, periodUnit: types_1.FhirPeriodUnit.Month },
|
|
886
|
-
monthly: { code: "MO", period: 1, periodUnit: types_1.FhirPeriodUnit.Month },
|
|
887
|
-
am: { code: "AM", when: [types_1.EventTiming.Morning] },
|
|
888
|
-
pm: { code: "PM", when: [types_1.EventTiming.Evening] },
|
|
889
|
-
qam: { code: "QAM", when: [types_1.EventTiming.Morning] },
|
|
890
|
-
qpm: { code: "QPM", when: [types_1.EventTiming.Evening] }
|
|
891
|
-
};
|
|
892
|
-
exports.EVENT_TIMING_TOKENS = {
|
|
893
|
-
ac: types_1.EventTiming["Before Meal"],
|
|
894
|
-
acm: types_1.EventTiming["Before Breakfast"],
|
|
895
|
-
acl: types_1.EventTiming["Before Lunch"],
|
|
896
|
-
acd: types_1.EventTiming["Before Lunch"],
|
|
897
|
-
acv: types_1.EventTiming["Before Dinner"],
|
|
898
|
-
pc: types_1.EventTiming["After Meal"],
|
|
899
|
-
pcm: types_1.EventTiming["After Breakfast"],
|
|
900
|
-
pcl: types_1.EventTiming["After Lunch"],
|
|
901
|
-
pcd: types_1.EventTiming["After Lunch"],
|
|
902
|
-
pcv: types_1.EventTiming["After Dinner"],
|
|
903
|
-
wm: types_1.EventTiming.Meal,
|
|
904
|
-
c: types_1.EventTiming.Meal,
|
|
905
|
-
"with meals": types_1.EventTiming.Meal,
|
|
906
|
-
"with meal": types_1.EventTiming.Meal,
|
|
907
|
-
"with food": types_1.EventTiming.Meal,
|
|
908
|
-
cc: types_1.EventTiming.Meal,
|
|
909
|
-
"@m": types_1.EventTiming.Meal,
|
|
910
|
-
"@meal": types_1.EventTiming.Meal,
|
|
911
|
-
"@meals": types_1.EventTiming.Meal,
|
|
912
|
-
cm: types_1.EventTiming.Breakfast,
|
|
913
|
-
breakfast: types_1.EventTiming.Breakfast,
|
|
914
|
-
bfast: types_1.EventTiming.Breakfast,
|
|
915
|
-
brkfst: types_1.EventTiming.Breakfast,
|
|
916
|
-
meal: types_1.EventTiming.Meal,
|
|
917
|
-
meals: types_1.EventTiming.Meal,
|
|
918
|
-
food: types_1.EventTiming.Meal,
|
|
919
|
-
brk: types_1.EventTiming.Breakfast,
|
|
920
|
-
cd: types_1.EventTiming.Lunch,
|
|
921
|
-
lunch: types_1.EventTiming.Lunch,
|
|
922
|
-
lunchtime: types_1.EventTiming.Lunch,
|
|
923
|
-
cv: types_1.EventTiming.Dinner,
|
|
924
|
-
dinner: types_1.EventTiming.Dinner,
|
|
925
|
-
dinnertime: types_1.EventTiming.Dinner,
|
|
926
|
-
supper: types_1.EventTiming.Dinner,
|
|
927
|
-
suppertime: types_1.EventTiming.Dinner,
|
|
928
|
-
am: types_1.EventTiming.Morning,
|
|
929
|
-
morning: types_1.EventTiming.Morning,
|
|
930
|
-
morn: types_1.EventTiming.Morning,
|
|
931
|
-
noon: types_1.EventTiming.Noon,
|
|
932
|
-
midday: types_1.EventTiming.Noon,
|
|
933
|
-
"mid-day": types_1.EventTiming.Noon,
|
|
934
|
-
afternoon: types_1.EventTiming.Afternoon,
|
|
935
|
-
aft: types_1.EventTiming.Afternoon,
|
|
936
|
-
pm: types_1.EventTiming.Evening,
|
|
937
|
-
qam: types_1.EventTiming.Morning,
|
|
938
|
-
qpm: types_1.EventTiming.Evening,
|
|
939
|
-
evening: types_1.EventTiming.Evening,
|
|
940
|
-
night: types_1.EventTiming.Night,
|
|
941
|
-
nightly: types_1.EventTiming.Night,
|
|
942
|
-
hs: types_1.EventTiming["Before Sleep"],
|
|
943
|
-
bedtime: types_1.EventTiming["Before Sleep"],
|
|
944
|
-
bed: types_1.EventTiming["Before Sleep"],
|
|
945
|
-
sleep: types_1.EventTiming["Before Sleep"],
|
|
946
|
-
wake: types_1.EventTiming.Wake,
|
|
947
|
-
waking: types_1.EventTiming.Wake,
|
|
948
|
-
stat: types_1.EventTiming.Immediate
|
|
949
|
-
};
|
|
950
|
-
const MEAL_KEYWORD_ENTRIES = [];
|
|
951
|
-
function registerMealKeywords(keys, meal) {
|
|
952
|
-
for (const key of keys) {
|
|
953
|
-
MEAL_KEYWORD_ENTRIES.push([key, meal]);
|
|
954
|
-
}
|
|
955
|
-
}
|
|
956
|
-
registerMealKeywords(["breakfast", "bfast", "brkfst", "brk"], {
|
|
957
|
-
pc: types_1.EventTiming["After Breakfast"],
|
|
958
|
-
ac: types_1.EventTiming["Before Breakfast"]
|
|
959
|
-
});
|
|
960
|
-
registerMealKeywords(["lunch", "lunchtime"], {
|
|
961
|
-
pc: types_1.EventTiming["After Lunch"],
|
|
962
|
-
ac: types_1.EventTiming["Before Lunch"]
|
|
963
|
-
});
|
|
964
|
-
registerMealKeywords(["dinner", "dinnertime", "supper", "suppertime"], {
|
|
965
|
-
pc: types_1.EventTiming["After Dinner"],
|
|
966
|
-
ac: types_1.EventTiming["Before Dinner"]
|
|
967
|
-
});
|
|
968
|
-
registerMealKeywords(["meal", "meals", "food"], {
|
|
969
|
-
pc: types_1.EventTiming["After Meal"],
|
|
970
|
-
ac: types_1.EventTiming["Before Meal"]
|
|
971
|
-
});
|
|
972
|
-
exports.MEAL_KEYWORDS = (0, object_1.objectFromEntries)(MEAL_KEYWORD_ENTRIES);
|
|
973
|
-
exports.DISCOURAGED_TOKENS = {
|
|
974
|
-
qd: "QD",
|
|
975
|
-
qod: "QOD",
|
|
976
|
-
od: "OD",
|
|
977
|
-
bld: "BLD",
|
|
978
|
-
"b-l-d": "BLD",
|
|
979
|
-
ad: "AD"
|
|
980
|
-
};
|
|
981
|
-
exports.DAY_OF_WEEK_TOKENS = {
|
|
982
|
-
monday: types_1.FhirDayOfWeek.Monday,
|
|
983
|
-
mon: types_1.FhirDayOfWeek.Monday,
|
|
984
|
-
mond: types_1.FhirDayOfWeek.Monday,
|
|
985
|
-
tuesday: types_1.FhirDayOfWeek.Tuesday,
|
|
986
|
-
tue: types_1.FhirDayOfWeek.Tuesday,
|
|
987
|
-
tues: types_1.FhirDayOfWeek.Tuesday,
|
|
988
|
-
wednesday: types_1.FhirDayOfWeek.Wednesday,
|
|
989
|
-
wed: types_1.FhirDayOfWeek.Wednesday,
|
|
990
|
-
weds: types_1.FhirDayOfWeek.Wednesday,
|
|
991
|
-
thursday: types_1.FhirDayOfWeek.Thursday,
|
|
992
|
-
thu: types_1.FhirDayOfWeek.Thursday,
|
|
993
|
-
thur: types_1.FhirDayOfWeek.Thursday,
|
|
994
|
-
thurs: types_1.FhirDayOfWeek.Thursday,
|
|
995
|
-
friday: types_1.FhirDayOfWeek.Friday,
|
|
996
|
-
fri: types_1.FhirDayOfWeek.Friday,
|
|
997
|
-
saturday: types_1.FhirDayOfWeek.Saturday,
|
|
998
|
-
sat: types_1.FhirDayOfWeek.Saturday,
|
|
999
|
-
sunday: types_1.FhirDayOfWeek.Sunday,
|
|
1000
|
-
sun: types_1.FhirDayOfWeek.Sunday,
|
|
1001
|
-
จ: types_1.FhirDayOfWeek.Monday,
|
|
1002
|
-
จัน: types_1.FhirDayOfWeek.Monday,
|
|
1003
|
-
จันทร์: types_1.FhirDayOfWeek.Monday,
|
|
1004
|
-
อ: types_1.FhirDayOfWeek.Tuesday,
|
|
1005
|
-
อัง: types_1.FhirDayOfWeek.Tuesday,
|
|
1006
|
-
อังคาร: types_1.FhirDayOfWeek.Tuesday,
|
|
1007
|
-
พ: types_1.FhirDayOfWeek.Wednesday,
|
|
1008
|
-
พุธ: types_1.FhirDayOfWeek.Wednesday,
|
|
1009
|
-
พฤ: types_1.FhirDayOfWeek.Thursday,
|
|
1010
|
-
พฤหัส: types_1.FhirDayOfWeek.Thursday,
|
|
1011
|
-
พฤหัสบดี: types_1.FhirDayOfWeek.Thursday,
|
|
1012
|
-
ศ: types_1.FhirDayOfWeek.Friday,
|
|
1013
|
-
ศุก: types_1.FhirDayOfWeek.Friday,
|
|
1014
|
-
ศุกร์: types_1.FhirDayOfWeek.Friday,
|
|
1015
|
-
ส: types_1.FhirDayOfWeek.Saturday,
|
|
1016
|
-
เสา: types_1.FhirDayOfWeek.Saturday,
|
|
1017
|
-
เสาร์: types_1.FhirDayOfWeek.Saturday,
|
|
1018
|
-
อา: types_1.FhirDayOfWeek.Sunday,
|
|
1019
|
-
อาท: types_1.FhirDayOfWeek.Sunday,
|
|
1020
|
-
อาทิตย์: types_1.FhirDayOfWeek.Sunday
|
|
1021
|
-
};
|
|
1022
|
-
exports.WORD_FREQUENCIES = {
|
|
1023
|
-
daily: { frequency: 1, periodUnit: types_1.FhirPeriodUnit.Day },
|
|
1024
|
-
"once daily": { frequency: 1, periodUnit: types_1.FhirPeriodUnit.Day },
|
|
1025
|
-
twice: { frequency: 2, periodUnit: types_1.FhirPeriodUnit.Day },
|
|
1026
|
-
"twice daily": { frequency: 2, periodUnit: types_1.FhirPeriodUnit.Day },
|
|
1027
|
-
"three times": { frequency: 3, periodUnit: types_1.FhirPeriodUnit.Day },
|
|
1028
|
-
"three times daily": { frequency: 3, periodUnit: types_1.FhirPeriodUnit.Day }
|
|
1029
|
-
};
|
|
1030
|
-
exports.KNOWN_DOSAGE_FORMS_TO_DOSE = {
|
|
1031
|
-
"nasal spray, suspension": "nasal spray",
|
|
1032
|
-
"implantation chain": "implantation chain",
|
|
1033
|
-
capsule: "capsule",
|
|
1034
|
-
"capsule, soft": "capsule",
|
|
1035
|
-
"oral solution": "solution",
|
|
1036
|
-
"oral suspension": "suspension",
|
|
1037
|
-
"inhalation powder": "inhalation",
|
|
1038
|
-
"nasal spray, solution": "nasal spray",
|
|
1039
|
-
"pressurised inhalation, suspension": "inhalation",
|
|
1040
|
-
"pressurised inhalation, solution": "inhalation",
|
|
1041
|
-
"rectal foam": "rectal foam",
|
|
1042
|
-
"sublingual spray, solution": "sublingual spray",
|
|
1043
|
-
"inhalation vapour, solution": "inhalation vapour",
|
|
1044
|
-
"inhalation powder, pre-dispensed": "inhalation powder",
|
|
1045
|
-
"solution for injection": "injection",
|
|
1046
|
-
"inhalation solution": "inhalation",
|
|
1047
|
-
cream: "cream",
|
|
1048
|
-
"cutaneous powder": "cutaneous powder",
|
|
1049
|
-
"powder for solution for injection": "powder for solution for injection",
|
|
1050
|
-
gel: "gel",
|
|
1051
|
-
"granules for oral solution": "granules for oral solution",
|
|
1052
|
-
"powder for oral solution": "powder for oral solution",
|
|
1053
|
-
"oral paste": "oral paste",
|
|
1054
|
-
"cutaneous stick": "cutaneous stick",
|
|
1055
|
-
"prolonged-release granules": "prolonged-release granules",
|
|
1056
|
-
"oromucosal gel": "oromucosal gel",
|
|
1057
|
-
"oral powder": "oral powder",
|
|
1058
|
-
ointment: "ointment",
|
|
1059
|
-
"cutaneous paste": "cutaneous paste",
|
|
1060
|
-
"powder for oral suspension": "powder for oral suspension",
|
|
1061
|
-
"vaginal gel": "vaginal gel",
|
|
1062
|
-
"nasal drops, powder for solution": "nasal drops, powder for solution",
|
|
1063
|
-
"oral gel": "oral gel",
|
|
1064
|
-
"eye gel": "eye gel",
|
|
1065
|
-
"impregnated dressing": "impregnated dressing",
|
|
1066
|
-
"vaginal cream": "vaginal cream",
|
|
1067
|
-
"ear powder": "ear powder",
|
|
1068
|
-
"cutaneous emulsion": "cutaneous emulsion",
|
|
1069
|
-
"cutaneous liquid": "cutaneous liquid",
|
|
1070
|
-
"cutaneous solution": "cutaneous solution",
|
|
1071
|
-
"effervescent powder": "effervescent powder",
|
|
1072
|
-
"bath additive": "bath additive",
|
|
1073
|
-
"nasal spray, powder for solution": "nasal spray, powder for solution",
|
|
1074
|
-
"powder for cutaneous solution": "powder for cutaneous solution",
|
|
1075
|
-
"dental gel": "dental gel",
|
|
1076
|
-
"nasal gel": "nasal gel",
|
|
1077
|
-
"powder for oral/rectal suspension": "powder for oral/rectal suspension",
|
|
1078
|
-
"gingival gel": "gingival gel",
|
|
1079
|
-
"powder for solution for infusion": "powder for solution for infusion",
|
|
1080
|
-
"gastro-resistant granules": "gastro-resistant granules",
|
|
1081
|
-
"eye ointment": "eye ointment",
|
|
1082
|
-
"oromucosal spray, solution": "oromucosal spray, solution",
|
|
1083
|
-
granules: "granules",
|
|
1084
|
-
collodion: "collodion",
|
|
1085
|
-
"powder for rectal solution": "powder for rectal solution",
|
|
1086
|
-
"eye drops, solution": "eye drops, solution",
|
|
1087
|
-
// additional helpers
|
|
1088
|
-
"eye drops": "eye drops, solution",
|
|
1089
|
-
"eye drop": "eye drops, solution",
|
|
1090
|
-
"oromucosal paste": "oromucosal paste",
|
|
1091
|
-
"dental paste": "dental paste",
|
|
1092
|
-
"solution for peritoneal dialysis": "solution for peritoneal dialysis",
|
|
1093
|
-
paste: "paste",
|
|
1094
|
-
"effervescent granules": "effervescent granules",
|
|
1095
|
-
shampoo: "shampoo",
|
|
1096
|
-
"solution for infusion": "solution for infusion",
|
|
1097
|
-
syrup: "syrup",
|
|
1098
|
-
"oral liquid": "oral liquid",
|
|
1099
|
-
"oral drops, solution": "oral drops, solution",
|
|
1100
|
-
"emulsion for infusion": "emulsion for infusion",
|
|
1101
|
-
"irrigation solution": "irrigation solution",
|
|
1102
|
-
"solution for injection/infusion": "solution for injection/infusion",
|
|
1103
|
-
"solution for haemodialysis/haemofiltration": "solution for haemodialysis/haemofiltration",
|
|
1104
|
-
"solution for organ preservation": "solution for organ preservation",
|
|
1105
|
-
"gargle/mouthwash": "gargle/mouthwash",
|
|
1106
|
-
"concentrate for solution for injection/infusion": "concentrate for solution for injection/infusion",
|
|
1107
|
-
"concentrate for cutaneous solution": "concentrate for cutaneous solution",
|
|
1108
|
-
"cutaneous spray, solution": "cutaneous spray, solution",
|
|
1109
|
-
"concentrate for dip solution": "concentrate for dip solution",
|
|
1110
|
-
"oral emulsion": "oral emulsion",
|
|
1111
|
-
"concentrate for oral solution": "concentrate for oral solution",
|
|
1112
|
-
"concentrate for haemodialysis solution": "concentrate for haemodialysis solution",
|
|
1113
|
-
"suspension for injection": "suspension for injection",
|
|
1114
|
-
"powder and solvent for solution for injection": "powder and solvent for solution for injection",
|
|
1115
|
-
"powder and suspension for suspension for injection": "powder and suspension for suspension for injection",
|
|
1116
|
-
"powder for suspension for injection": "powder for suspension for injection",
|
|
1117
|
-
"transdermal patch": "transdermal patch",
|
|
1118
|
-
"powder and solvent for suspension for injection": "powder and solvent for suspension for injection",
|
|
1119
|
-
"endotracheopulmonary instillation, powder for solution": "endotracheopulmonary instillation, powder for solution",
|
|
1120
|
-
"intrauterine delivery system": "intrauterine delivery system",
|
|
1121
|
-
implant: "implant",
|
|
1122
|
-
"powder for solution for injection/infusion": "powder for solution for injection/infusion",
|
|
1123
|
-
"concentrate for solution for injection": "concentrate for solution for injection",
|
|
1124
|
-
"eye drops, emulsion": "eye drops, emulsion",
|
|
1125
|
-
"concentrate for dispersion for injection": "concentrate for dispersion for injection",
|
|
1126
|
-
"concentrate for solution for infusion": "concentrate for solution for infusion",
|
|
1127
|
-
"concentrate and solvent for solution for infusion": "concentrate and solvent for solution for infusion",
|
|
1128
|
-
"concentrate and solvent for suspension for injection": "concentrate and solvent for suspension for injection",
|
|
1129
|
-
"gel for injection": "gel for injection",
|
|
1130
|
-
"prolonged-release suspension for injection": "prolonged-release suspension for injection",
|
|
1131
|
-
"rectal solution": "rectal solution",
|
|
1132
|
-
"emulsion for injection": "emulsion for injection",
|
|
1133
|
-
"oromucosal solution": "oromucosal solution",
|
|
1134
|
-
"powder and solvent for solution for infusion": "powder and solvent for solution for infusion",
|
|
1135
|
-
"emulsion for injection/infusion": "emulsion for injection/infusion",
|
|
1136
|
-
"solution for cardioplegia": "solution for cardioplegia",
|
|
1137
|
-
"endotracheopulmonary instillation, suspension": "endotracheopulmonary instillation, suspension",
|
|
1138
|
-
"ear drops, solution": "ear drops, solution",
|
|
1139
|
-
"eye drops, suspension": "eye drops, suspension",
|
|
1140
|
-
"nasal drops, solution": "nasal drops, solution",
|
|
1141
|
-
"suspension and solution for spray": "suspension and solution for spray",
|
|
1142
|
-
"solution for sealant": "solution for sealant",
|
|
1143
|
-
"inhalation vapour, liquid": "inhalation vapour, liquid",
|
|
1144
|
-
"ear drops, suspension": "ear drops, suspension",
|
|
1145
|
-
"dental suspension": "dental suspension",
|
|
1146
|
-
"nebuliser solution": "nebuliser solution",
|
|
1147
|
-
"concentrate for gargle": "concentrate for gargle",
|
|
1148
|
-
"ear/eye drops, solution": "ear/eye drops, solution",
|
|
1149
|
-
"ear wash, solution": "ear wash, solution",
|
|
1150
|
-
"oromucosal drops": "oromucosal drops",
|
|
1151
|
-
"powder for syrup": "powder for syrup",
|
|
1152
|
-
"cutaneous suspension": "cutaneous suspension",
|
|
1153
|
-
"eye lotion": "eye lotion",
|
|
1154
|
-
"rectal suspension": "rectal suspension",
|
|
1155
|
-
"intestinal gel": "intestinal gel",
|
|
1156
|
-
"dental solution": "dental solution",
|
|
1157
|
-
"gingival solution": "gingival solution",
|
|
1158
|
-
"oral drops, suspension": "oral drops, suspension",
|
|
1159
|
-
"eye drops, tablet and solvent for solution": "eye drops, tablet and solvent for solution",
|
|
1160
|
-
"nebuliser suspension": "nebuliser suspension",
|
|
1161
|
-
"dispersion for injection": "dispersion for injection",
|
|
1162
|
-
"powder and solvent for oral solution": "powder and solvent for oral solution",
|
|
1163
|
-
solution: "solution",
|
|
1164
|
-
"powder and solvent for oral suspension": "powder and solvent for oral suspension",
|
|
1165
|
-
"suspension and effervescent granules for oral suspension": "suspension and effervescent granules for oral suspension",
|
|
1166
|
-
"oral drops, emulsion": "oral drops, emulsion",
|
|
1167
|
-
"oral drops, liquid": "oral drops, liquid",
|
|
1168
|
-
"oral/rectal suspension": "oral/rectal suspension",
|
|
1169
|
-
"intravesical solution": "intravesical solution",
|
|
1170
|
-
"granules for oral suspension": "granules for oral suspension",
|
|
1171
|
-
"granules for syrup": "granules for syrup",
|
|
1172
|
-
tablet: "tablet",
|
|
1173
|
-
"film-coated tablet": "film-coated tablet",
|
|
1174
|
-
"coated tablet": "coated tablet",
|
|
1175
|
-
"chewable tablet": "chewable tablet",
|
|
1176
|
-
"capsule, hard": "capsule, hard",
|
|
1177
|
-
"gastro-resistant tablet": "gastro-resistant tablet",
|
|
1178
|
-
"gastro-resistant granules for oral suspension": "gastro-resistant granules for oral suspension",
|
|
1179
|
-
"orodispersible tablet": "orodispersible tablet",
|
|
1180
|
-
"gastro-resistant capsule, hard": "gastro-resistant capsule, hard",
|
|
1181
|
-
"prolonged-release capsule, hard": "prolonged-release capsule, hard",
|
|
1182
|
-
"prolonged-release tablet": "prolonged-release tablet",
|
|
1183
|
-
suppository: "suppository",
|
|
1184
|
-
lozenge: "lozenge",
|
|
1185
|
-
"modified-release tablet": "modified-release tablet",
|
|
1186
|
-
"dispersible tablet": "dispersible tablet",
|
|
1187
|
-
injection: "injection",
|
|
1188
|
-
"powder for concentrate for solution for infusion": "powder for concentrate for solution for infusion",
|
|
1189
|
-
"powder and solvent for solution for injection/infusion": "powder and solvent for solution for injection/infusion",
|
|
1190
|
-
"powder and solvent for prolonged-release suspension for injection": "powder and solvent for prolonged-release suspension for injection",
|
|
1191
|
-
"powder and solvent for concentrate for solution for infusion": "powder and solvent for concentrate for solution for infusion",
|
|
1192
|
-
"sublingual tablet": "sublingual tablet",
|
|
1193
|
-
"effervescent tablet": "effervescent tablet",
|
|
1194
|
-
"vaginal tablet": "vaginal tablet",
|
|
1195
|
-
"inhalation powder, hard capsule": "inhalation powder, hard capsule",
|
|
1196
|
-
pessary: "pessary",
|
|
1197
|
-
"vaginal capsule, hard": "vaginal capsule, hard",
|
|
1198
|
-
pastille: "pastille",
|
|
1199
|
-
"medicated chewing-gum": "medicated chewing-gum",
|
|
1200
|
-
"vaginal delivery system": "vaginal delivery system",
|
|
1201
|
-
"medicated plaster": "medicated plaster",
|
|
1202
|
-
"intravitreal implant in applicator": "intravitreal implant in applicator",
|
|
1203
|
-
"vaginal capsule, soft": "vaginal capsule, soft",
|
|
1204
|
-
"lyophilisate and solvent for solution for injection": "lyophilisate and solvent for solution for injection",
|
|
1205
|
-
"powder for concentrate for dispersion for infusion": "powder for concentrate for dispersion for infusion",
|
|
1206
|
-
"powder for suspension for infusion": "powder for suspension for infusion",
|
|
1207
|
-
"cutaneous patch": "cutaneous patch",
|
|
1208
|
-
"modified-release capsule, hard": "modified-release capsule, hard",
|
|
1209
|
-
"oral lyophilisate": "oral lyophilisate",
|
|
1210
|
-
"powders for solution for injection": "powders for solution for injection",
|
|
1211
|
-
"capsule, hard-capsule, soft-tablet": "capsule, hard-capsule, soft-tablet",
|
|
1212
|
-
"capsule, hard-tablet": "capsule, hard-tablet"
|
|
1213
|
-
};
|
|
1214
|
-
/**
|
|
1215
|
-
* Map of normalized dosage-form labels to their associated SNOMED route code.
|
|
1216
|
-
* The keys intentionally mirror KNOWN_DOSAGE_FORMS_TO_DOSE to keep lookups simple.
|
|
1217
|
-
*/
|
|
1218
|
-
exports.KNOWN_TMT_DOSAGE_FORM_TO_SNOMED_ROUTE = {
|
|
1219
|
-
"nasal spray, suspension": types_1.SNOMEDCTRouteCodes["Nasal route"],
|
|
1220
|
-
"implantation chain": types_1.SNOMEDCTRouteCodes["Intralesional use"],
|
|
1221
|
-
capsule: types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1222
|
-
"capsule, soft": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1223
|
-
"oral solution": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1224
|
-
"oral suspension": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1225
|
-
"inhalation powder": types_1.SNOMEDCTRouteCodes["Respiratory tract route (qualifier value)"],
|
|
1226
|
-
"nasal spray, solution": types_1.SNOMEDCTRouteCodes["Nasal route"],
|
|
1227
|
-
"pressurised inhalation, suspension": types_1.SNOMEDCTRouteCodes["Respiratory tract route (qualifier value)"],
|
|
1228
|
-
"pressurised inhalation, solution": types_1.SNOMEDCTRouteCodes["Respiratory tract route (qualifier value)"],
|
|
1229
|
-
"rectal foam": types_1.SNOMEDCTRouteCodes["Per rectum"],
|
|
1230
|
-
"sublingual spray, solution": types_1.SNOMEDCTRouteCodes["Sublingual route"],
|
|
1231
|
-
"inhalation vapour, solution": types_1.SNOMEDCTRouteCodes["Respiratory tract route (qualifier value)"],
|
|
1232
|
-
"inhalation powder, pre-dispensed": types_1.SNOMEDCTRouteCodes["Respiratory tract route (qualifier value)"],
|
|
1233
|
-
"solution for injection": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1234
|
-
"inhalation solution": types_1.SNOMEDCTRouteCodes["Respiratory tract route (qualifier value)"],
|
|
1235
|
-
cream: types_1.SNOMEDCTRouteCodes["Topical route"],
|
|
1236
|
-
"cutaneous powder": types_1.SNOMEDCTRouteCodes["Topical route"],
|
|
1237
|
-
"powder for solution for injection": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1238
|
-
gel: types_1.SNOMEDCTRouteCodes["Topical route"],
|
|
1239
|
-
"granules for oral solution": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1240
|
-
"powder for oral solution": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1241
|
-
"oral paste": types_1.SNOMEDCTRouteCodes["Oromucosal use"],
|
|
1242
|
-
"cutaneous stick": types_1.SNOMEDCTRouteCodes["Transdermal route"],
|
|
1243
|
-
"prolonged-release granules": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1244
|
-
"oromucosal gel": types_1.SNOMEDCTRouteCodes["Oromucosal use"],
|
|
1245
|
-
"oral powder": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1246
|
-
ointment: types_1.SNOMEDCTRouteCodes["Topical route"],
|
|
1247
|
-
"cutaneous paste": types_1.SNOMEDCTRouteCodes["Topical route"],
|
|
1248
|
-
"powder for oral suspension": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1249
|
-
"vaginal gel": types_1.SNOMEDCTRouteCodes["Per vagina"],
|
|
1250
|
-
"nasal drops, powder for solution": types_1.SNOMEDCTRouteCodes["Nasal route"],
|
|
1251
|
-
"oral gel": types_1.SNOMEDCTRouteCodes["Oromucosal use"],
|
|
1252
|
-
"eye gel": types_1.SNOMEDCTRouteCodes["Ocular route (qualifier value)"],
|
|
1253
|
-
"impregnated dressing": types_1.SNOMEDCTRouteCodes["Topical route"],
|
|
1254
|
-
"vaginal cream": types_1.SNOMEDCTRouteCodes["Per vagina"],
|
|
1255
|
-
"ear powder": types_1.SNOMEDCTRouteCodes["Otic route"],
|
|
1256
|
-
"cutaneous emulsion": types_1.SNOMEDCTRouteCodes["Topical route"],
|
|
1257
|
-
"cutaneous liquid": types_1.SNOMEDCTRouteCodes["Topical route"],
|
|
1258
|
-
"cutaneous solution": types_1.SNOMEDCTRouteCodes["Cutaneous route (qualifier value)"],
|
|
1259
|
-
"effervescent powder": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1260
|
-
"bath additive": types_1.SNOMEDCTRouteCodes["Topical route"],
|
|
1261
|
-
"nasal spray, powder for solution": types_1.SNOMEDCTRouteCodes["Nasal route"],
|
|
1262
|
-
"powder for cutaneous solution": types_1.SNOMEDCTRouteCodes["Topical route"],
|
|
1263
|
-
"dental gel": types_1.SNOMEDCTRouteCodes["Gingival use"],
|
|
1264
|
-
"nasal gel": types_1.SNOMEDCTRouteCodes["Nasal route"],
|
|
1265
|
-
"powder for oral/rectal suspension": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1266
|
-
"gingival gel": types_1.SNOMEDCTRouteCodes["Gingival use"],
|
|
1267
|
-
"powder for solution for infusion": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1268
|
-
"gastro-resistant granules": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1269
|
-
"eye ointment": types_1.SNOMEDCTRouteCodes["Ocular route (qualifier value)"],
|
|
1270
|
-
"oromucosal spray, solution": types_1.SNOMEDCTRouteCodes["Oropharyngeal route (qualifier value)"],
|
|
1271
|
-
granules: types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1272
|
-
collodion: types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1273
|
-
"powder for rectal solution": types_1.SNOMEDCTRouteCodes["Per rectum"],
|
|
1274
|
-
"eye drops, solution": types_1.SNOMEDCTRouteCodes["Ocular route (qualifier value)"],
|
|
1275
|
-
"eye drops": types_1.SNOMEDCTRouteCodes["Ocular route (qualifier value)"],
|
|
1276
|
-
"eye drop": types_1.SNOMEDCTRouteCodes["Ocular route (qualifier value)"],
|
|
1277
|
-
"oromucosal paste": types_1.SNOMEDCTRouteCodes["Oromucosal use"],
|
|
1278
|
-
"dental paste": types_1.SNOMEDCTRouteCodes["Dental use"],
|
|
1279
|
-
"solution for peritoneal dialysis": types_1.SNOMEDCTRouteCodes["Intradialytic route"],
|
|
1280
|
-
paste: types_1.SNOMEDCTRouteCodes["Topical route"],
|
|
1281
|
-
"effervescent granules": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1282
|
-
shampoo: types_1.SNOMEDCTRouteCodes["Topical route"],
|
|
1283
|
-
"solution for infusion": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1284
|
-
syrup: types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1285
|
-
"oral liquid": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1286
|
-
"oral drops, solution": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1287
|
-
"emulsion for infusion": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1288
|
-
"irrigation solution": types_1.SNOMEDCTRouteCodes["Topical route"],
|
|
1289
|
-
"solution for injection/infusion": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1290
|
-
"solution for haemodialysis/haemofiltration": types_1.SNOMEDCTRouteCodes["Intradialytic route"],
|
|
1291
|
-
"solution for organ preservation": types_1.SNOMEDCTRouteCodes["Extracorporeal route (qualifier value)"],
|
|
1292
|
-
"gargle/mouthwash": types_1.SNOMEDCTRouteCodes["Oromucosal use"],
|
|
1293
|
-
"concentrate for solution for injection/infusion": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1294
|
-
"concentrate for cutaneous solution": types_1.SNOMEDCTRouteCodes["Cutaneous route (qualifier value)"],
|
|
1295
|
-
"cutaneous spray, solution": types_1.SNOMEDCTRouteCodes["Cutaneous route (qualifier value)"],
|
|
1296
|
-
"concentrate for dip solution": types_1.SNOMEDCTRouteCodes["Topical route"],
|
|
1297
|
-
"oral emulsion": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1298
|
-
"concentrate for oral solution": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1299
|
-
"concentrate for haemodialysis solution": types_1.SNOMEDCTRouteCodes["Intradialytic route"],
|
|
1300
|
-
"suspension for injection": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1301
|
-
"powder and solvent for solution for injection": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1302
|
-
"powder and suspension for suspension for injection": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1303
|
-
"powder for suspension for injection": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1304
|
-
"transdermal patch": types_1.SNOMEDCTRouteCodes["Transdermal route"],
|
|
1305
|
-
"powder and solvent for suspension for injection": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1306
|
-
"endotracheopulmonary instillation, powder for solution": types_1.SNOMEDCTRouteCodes["Endotracheopulmonary use"],
|
|
1307
|
-
"intrauterine delivery system": types_1.SNOMEDCTRouteCodes["Intrauterine route"],
|
|
1308
|
-
implant: types_1.SNOMEDCTRouteCodes["Intradermal use"],
|
|
1309
|
-
"powder for solution for injection/infusion": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1310
|
-
"concentrate for solution for injection": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1311
|
-
"eye drops, emulsion": types_1.SNOMEDCTRouteCodes["Ocular route (qualifier value)"],
|
|
1312
|
-
"concentrate for dispersion for injection": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1313
|
-
"concentrate for solution for infusion": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1314
|
-
"concentrate and solvent for solution for infusion": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1315
|
-
"concentrate and solvent for suspension for injection": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1316
|
-
"gel for injection": types_1.SNOMEDCTRouteCodes["Intramuscular route"],
|
|
1317
|
-
"prolonged-release suspension for injection": types_1.SNOMEDCTRouteCodes["Intramuscular route"],
|
|
1318
|
-
"rectal solution": types_1.SNOMEDCTRouteCodes["Per rectum"],
|
|
1319
|
-
"emulsion for injection": types_1.SNOMEDCTRouteCodes["Intramuscular route"],
|
|
1320
|
-
"oromucosal solution": types_1.SNOMEDCTRouteCodes["Oromucosal use"],
|
|
1321
|
-
"powder and solvent for solution for infusion": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1322
|
-
"emulsion for injection/infusion": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1323
|
-
"solution for cardioplegia": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1324
|
-
"endotracheopulmonary instillation, suspension": types_1.SNOMEDCTRouteCodes["Endotracheopulmonary use"],
|
|
1325
|
-
"ear drops, solution": types_1.SNOMEDCTRouteCodes["Otic route"],
|
|
1326
|
-
"eye drops, suspension": types_1.SNOMEDCTRouteCodes["Ocular route (qualifier value)"],
|
|
1327
|
-
"nasal drops, solution": types_1.SNOMEDCTRouteCodes["Nasal route"],
|
|
1328
|
-
"suspension and solution for spray": types_1.SNOMEDCTRouteCodes["Respiratory tract route (qualifier value)"],
|
|
1329
|
-
"solution for sealant": types_1.SNOMEDCTRouteCodes["Topical route"],
|
|
1330
|
-
"inhalation vapour, liquid": types_1.SNOMEDCTRouteCodes["Respiratory tract route (qualifier value)"],
|
|
1331
|
-
"ear drops, suspension": types_1.SNOMEDCTRouteCodes["Otic route"],
|
|
1332
|
-
"dental suspension": types_1.SNOMEDCTRouteCodes["Dental use"],
|
|
1333
|
-
"nebuliser solution": types_1.SNOMEDCTRouteCodes["Respiratory tract route (qualifier value)"],
|
|
1334
|
-
"concentrate for gargle": types_1.SNOMEDCTRouteCodes["Oropharyngeal route (qualifier value)"],
|
|
1335
|
-
"ear/eye drops, solution": types_1.SNOMEDCTRouteCodes["Ocular route (qualifier value)"],
|
|
1336
|
-
"ear wash, solution": types_1.SNOMEDCTRouteCodes["Otic route"],
|
|
1337
|
-
"oromucosal drops": types_1.SNOMEDCTRouteCodes["Oromucosal use"],
|
|
1338
|
-
"powder for syrup": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1339
|
-
"cutaneous suspension": types_1.SNOMEDCTRouteCodes["Cutaneous route (qualifier value)"],
|
|
1340
|
-
"eye lotion": types_1.SNOMEDCTRouteCodes["Ocular route (qualifier value)"],
|
|
1341
|
-
"rectal suspension": types_1.SNOMEDCTRouteCodes["Per rectum"],
|
|
1342
|
-
"intestinal gel": types_1.SNOMEDCTRouteCodes["Intestinal route (qualifier value)"],
|
|
1343
|
-
"dental solution": types_1.SNOMEDCTRouteCodes["Dental use"],
|
|
1344
|
-
"gingival solution": types_1.SNOMEDCTRouteCodes["Gingival use"],
|
|
1345
|
-
"oral drops, suspension": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1346
|
-
"eye drops, tablet and solvent for solution": types_1.SNOMEDCTRouteCodes["Ocular route (qualifier value)"],
|
|
1347
|
-
"nebuliser suspension": types_1.SNOMEDCTRouteCodes["Respiratory tract route (qualifier value)"],
|
|
1348
|
-
"dispersion for injection": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1349
|
-
"powder and solvent for oral solution": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1350
|
-
solution: types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1351
|
-
"powder and solvent for oral suspension": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1352
|
-
"suspension and effervescent granules for oral suspension": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1353
|
-
"oral drops, emulsion": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1354
|
-
"oral drops, liquid": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1355
|
-
"oral/rectal suspension": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1356
|
-
"intravesical solution": types_1.SNOMEDCTRouteCodes["Intralesional use"],
|
|
1357
|
-
"granules for oral suspension": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1358
|
-
"granules for syrup": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1359
|
-
tablet: types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1360
|
-
"film-coated tablet": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1361
|
-
"coated tablet": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1362
|
-
"chewable tablet": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1363
|
-
"capsule, hard": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1364
|
-
"gastro-resistant tablet": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1365
|
-
"gastro-resistant granules for oral suspension": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1366
|
-
"orodispersible tablet": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1367
|
-
"gastro-resistant capsule, hard": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1368
|
-
"prolonged-release capsule, hard": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1369
|
-
"prolonged-release tablet": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1370
|
-
suppository: types_1.SNOMEDCTRouteCodes["Per rectum"],
|
|
1371
|
-
lozenge: types_1.SNOMEDCTRouteCodes["Oropharyngeal route (qualifier value)"],
|
|
1372
|
-
"modified-release tablet": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1373
|
-
"dispersible tablet": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1374
|
-
injection: types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1375
|
-
"powder for concentrate for solution for infusion": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1376
|
-
"powder and solvent for solution for injection/infusion": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1377
|
-
"powder and solvent for prolonged-release suspension for injection": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1378
|
-
"powder and solvent for concentrate for solution for infusion": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1379
|
-
"sublingual tablet": types_1.SNOMEDCTRouteCodes["Sublingual route"],
|
|
1380
|
-
"effervescent tablet": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1381
|
-
"vaginal tablet": types_1.SNOMEDCTRouteCodes["Per vagina"],
|
|
1382
|
-
"inhalation powder, hard capsule": types_1.SNOMEDCTRouteCodes["Respiratory tract route (qualifier value)"],
|
|
1383
|
-
pessary: types_1.SNOMEDCTRouteCodes["Per vagina"],
|
|
1384
|
-
"vaginal capsule, hard": types_1.SNOMEDCTRouteCodes["Per vagina"],
|
|
1385
|
-
pastille: types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1386
|
-
"medicated chewing-gum": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1387
|
-
"vaginal delivery system": types_1.SNOMEDCTRouteCodes["Per vagina"],
|
|
1388
|
-
"medicated plaster": types_1.SNOMEDCTRouteCodes["Transdermal route"],
|
|
1389
|
-
"intravitreal implant in applicator": types_1.SNOMEDCTRouteCodes["Intravitreal route (qualifier value)"],
|
|
1390
|
-
"vaginal capsule, soft": types_1.SNOMEDCTRouteCodes["Per vagina"],
|
|
1391
|
-
"lyophilisate and solvent for solution for injection": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1392
|
-
"powder for concentrate for dispersion for infusion": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1393
|
-
"powder for suspension for infusion": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1394
|
-
"cutaneous patch": types_1.SNOMEDCTRouteCodes["Cutaneous route (qualifier value)"],
|
|
1395
|
-
"modified-release capsule, hard": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1396
|
-
"oral lyophilisate": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1397
|
-
"powders for solution for injection": types_1.SNOMEDCTRouteCodes["Intravenous route"],
|
|
1398
|
-
"capsule, hard-capsule, soft-tablet": types_1.SNOMEDCTRouteCodes["Oral route"],
|
|
1399
|
-
"capsule, hard-tablet": types_1.SNOMEDCTRouteCodes["Oral route"]
|
|
1400
|
-
};
|
|
1401
|
-
exports.DEFAULT_UNIT_BY_NORMALIZED_FORM = {
|
|
1402
|
-
tab: "tab",
|
|
1403
|
-
tabs: "tab",
|
|
1404
|
-
tablet: "tab",
|
|
1405
|
-
"film-coated tablet": "tab",
|
|
1406
|
-
"coated tablet": "tab",
|
|
1407
|
-
"chewable tablet": "tab",
|
|
1408
|
-
"dispersible tablet": "tab",
|
|
1409
|
-
"gastro-resistant tablet": "tab",
|
|
1410
|
-
"modified-release tablet": "tab",
|
|
1411
|
-
"orodispersible tablet": "tab",
|
|
1412
|
-
capsule: "cap",
|
|
1413
|
-
caps: "cap",
|
|
1414
|
-
"capsule, soft": "cap",
|
|
1415
|
-
"capsule, hard": "cap",
|
|
1416
|
-
"gastro-resistant capsule, hard": "cap",
|
|
1417
|
-
"prolonged-release capsule, hard": "cap",
|
|
1418
|
-
"modified-release capsule, hard": "cap",
|
|
1419
|
-
"inhalation powder, hard capsule": "cap",
|
|
1420
|
-
solution: "mL",
|
|
1421
|
-
"oral solution": "mL",
|
|
1422
|
-
"solution for injection": "mL",
|
|
1423
|
-
"solution for infusion": "mL",
|
|
1424
|
-
suspension: "mL",
|
|
1425
|
-
"oral suspension": "mL",
|
|
1426
|
-
"powder for oral suspension": "mL",
|
|
1427
|
-
syrup: "mL",
|
|
1428
|
-
"oral liquid": "mL",
|
|
1429
|
-
"oral drops, solution": "mL",
|
|
1430
|
-
"oral drops, suspension": "mL",
|
|
1431
|
-
"oral drops, emulsion": "mL",
|
|
1432
|
-
"oral drops, liquid": "mL",
|
|
1433
|
-
"oral emulsion": "mL",
|
|
1434
|
-
"granules for oral solution": "mL",
|
|
1435
|
-
"granules for oral suspension": "mL",
|
|
1436
|
-
"nasal spray": "spray",
|
|
1437
|
-
"nasal spray, suspension": "spray",
|
|
1438
|
-
"nasal spray, solution": "spray",
|
|
1439
|
-
"nasal spray, powder for solution": "spray",
|
|
1440
|
-
"sublingual spray": "spray",
|
|
1441
|
-
"sublingual spray, solution": "spray",
|
|
1442
|
-
spray: "spray",
|
|
1443
|
-
"cutaneous spray, solution": "spray",
|
|
1444
|
-
inhalation: "puff",
|
|
1445
|
-
"inhalation powder": "puff",
|
|
1446
|
-
"pressurised inhalation, suspension": "puff",
|
|
1447
|
-
"pressurised inhalation, solution": "puff",
|
|
1448
|
-
"inhalation solution": "puff",
|
|
1449
|
-
"inhalation vapour": "puff",
|
|
1450
|
-
"inhalation vapour, solution": "puff",
|
|
1451
|
-
"inhalation vapour, liquid": "puff",
|
|
1452
|
-
"nebuliser solution": "puff",
|
|
1453
|
-
"nebuliser suspension": "puff",
|
|
1454
|
-
ointment: "g",
|
|
1455
|
-
cream: "g",
|
|
1456
|
-
gel: "g",
|
|
1457
|
-
paste: "g",
|
|
1458
|
-
"oral paste": "g",
|
|
1459
|
-
suppository: "suppository",
|
|
1460
|
-
suppositories: "suppository",
|
|
1461
|
-
"rectal foam": "suppository",
|
|
1462
|
-
"rectal solution": "suppository",
|
|
1463
|
-
"rectal suspension": "suppository",
|
|
1464
|
-
patch: "patch",
|
|
1465
|
-
"transdermal patch": "patch",
|
|
1466
|
-
"cutaneous patch": "patch",
|
|
1467
|
-
"medicated plaster": "patch",
|
|
1468
|
-
"cutaneous stick": "stick",
|
|
1469
|
-
drop: "drop",
|
|
1470
|
-
drops: "drop",
|
|
1471
|
-
"eye drops, solution": "drop",
|
|
1472
|
-
"eye drops, suspension": "drop",
|
|
1473
|
-
"ear drops, solution": "drop",
|
|
1474
|
-
"ear drops, suspension": "drop",
|
|
1475
|
-
"ear/eye drops, solution": "drop",
|
|
1476
|
-
lozenge: "lozenge",
|
|
1477
|
-
pastille: "lozenge",
|
|
1478
|
-
pessary: "pessary",
|
|
1479
|
-
injection: "mL",
|
|
1480
|
-
implant: "implant",
|
|
1481
|
-
"implantation chain": "implant",
|
|
1482
|
-
"intrauterine delivery system": "implant",
|
|
1483
|
-
"intravitreal implant in applicator": "implant",
|
|
1484
|
-
"medicated chewing-gum": "piece"
|
|
1485
|
-
};
|
|
1486
|
-
const ROUTE_UNIT_FALLBACK_WHITELIST = new Set([
|
|
1487
|
-
"drop",
|
|
1488
|
-
"puff",
|
|
1489
|
-
"spray",
|
|
1490
|
-
"patch",
|
|
1491
|
-
"suppository",
|
|
1492
|
-
"implant",
|
|
1493
|
-
"piece",
|
|
1494
|
-
"stick",
|
|
1495
|
-
"pessary",
|
|
1496
|
-
"lozenge"
|
|
1497
|
-
]);
|
|
1498
|
-
exports.DEFAULT_UNIT_BY_ROUTE = (() => {
|
|
1499
|
-
const unitCandidates = new Map();
|
|
1500
|
-
for (const [form, snomed] of (0, object_1.objectEntries)(exports.KNOWN_TMT_DOSAGE_FORM_TO_SNOMED_ROUTE)) {
|
|
1501
|
-
const routeCode = exports.ROUTE_BY_SNOMED[snomed];
|
|
1502
|
-
if (!routeCode) {
|
|
1503
|
-
continue;
|
|
1504
|
-
}
|
|
1505
|
-
const unit = exports.DEFAULT_UNIT_BY_NORMALIZED_FORM[form];
|
|
1506
|
-
if (!unit) {
|
|
1507
|
-
continue;
|
|
1508
|
-
}
|
|
1509
|
-
let unitsForRoute = unitCandidates.get(routeCode);
|
|
1510
|
-
if (!unitsForRoute) {
|
|
1511
|
-
unitsForRoute = new Set();
|
|
1512
|
-
unitCandidates.set(routeCode, unitsForRoute);
|
|
1513
|
-
}
|
|
1514
|
-
unitsForRoute.add(unit);
|
|
1515
|
-
}
|
|
1516
|
-
const resolved = {};
|
|
1517
|
-
for (const [route, units] of unitCandidates) {
|
|
1518
|
-
if (units.size !== 1) {
|
|
1519
|
-
continue;
|
|
1520
|
-
}
|
|
1521
|
-
const [unit] = Array.from(units);
|
|
1522
|
-
if (unit && ROUTE_UNIT_FALLBACK_WHITELIST.has(unit)) {
|
|
1523
|
-
resolved[route] = unit;
|
|
1524
|
-
}
|
|
1525
|
-
}
|
|
1526
|
-
const ensure = (route, unit) => {
|
|
1527
|
-
if (ROUTE_UNIT_FALLBACK_WHITELIST.has(unit)) {
|
|
1528
|
-
resolved[route] = unit;
|
|
1529
|
-
}
|
|
1530
|
-
};
|
|
1531
|
-
ensure(types_1.RouteCode["Ophthalmic route"], "drop");
|
|
1532
|
-
ensure(types_1.RouteCode["Ocular route (qualifier value)"], "drop");
|
|
1533
|
-
ensure(types_1.RouteCode["Otic route"], "drop");
|
|
1534
|
-
ensure(types_1.RouteCode["Respiratory tract route (qualifier value)"], "puff");
|
|
1535
|
-
ensure(types_1.RouteCode["Transdermal route"], "patch");
|
|
1536
|
-
ensure(types_1.RouteCode["Per rectum"], "suppository");
|
|
1537
|
-
return resolved;
|
|
1538
|
-
})();
|
|
1539
|
-
function normalizePrnReasonKey(value) {
|
|
1540
|
-
return (0, text_1.normalizeLoosePhraseKey)(value);
|
|
1541
|
-
}
|
|
1542
|
-
function normalizeAdditionalInstructionKey(value) {
|
|
1543
|
-
return (0, text_1.normalizeLoosePhraseKey)(value);
|
|
1544
|
-
}
|
|
1545
|
-
const DEFAULT_PRN_REASON_SOURCE = [
|
|
1546
|
-
{
|
|
1547
|
-
names: ["pain", "ache", "aches", "pains"],
|
|
1548
|
-
definition: {
|
|
1549
|
-
coding: { system: SNOMED_SYSTEM, code: "22253000", display: "Pain" },
|
|
1550
|
-
text: "Pain",
|
|
1551
|
-
aliases: ["เจ็บ", "ปวด"],
|
|
1552
|
-
i18n: { th: "ปวด" }
|
|
1553
|
-
}
|
|
1554
|
-
},
|
|
1555
|
-
{
|
|
1556
|
-
names: ["headache", "head pain"],
|
|
1557
|
-
definition: {
|
|
1558
|
-
coding: { system: SNOMED_SYSTEM, code: "25064002", display: "Headache" },
|
|
1559
|
-
text: "Headache",
|
|
1560
|
-
aliases: ["ปวดหัว", "ปวดศีรษะ"],
|
|
1561
|
-
i18n: { th: "ปวดศีรษะ" }
|
|
1562
|
-
}
|
|
1563
|
-
},
|
|
1564
|
-
{
|
|
1565
|
-
names: ["migraine", "migraine headache"],
|
|
1566
|
-
definition: {
|
|
1567
|
-
coding: { system: SNOMED_SYSTEM, code: "37796009", display: "Migraine" },
|
|
1568
|
-
text: "Migraine",
|
|
1569
|
-
aliases: ["ไมเกรน", "ปวดหัวไมเกรน"],
|
|
1570
|
-
i18n: { th: "ไมเกรน" }
|
|
1571
|
-
}
|
|
1572
|
-
},
|
|
1573
|
-
{
|
|
1574
|
-
names: ["back pain", "backache", "pain in back"],
|
|
1575
|
-
definition: {
|
|
1576
|
-
coding: { system: SNOMED_SYSTEM, code: "161891005", display: "Backache" },
|
|
1577
|
-
text: "Back pain",
|
|
1578
|
-
aliases: ["ปวดหลัง"],
|
|
1579
|
-
i18n: { th: "ปวดหลัง" }
|
|
1580
|
-
}
|
|
1581
|
-
},
|
|
1582
|
-
{
|
|
1583
|
-
names: ["low back pain", "lower back pain", "lumbar pain"],
|
|
1584
|
-
definition: {
|
|
1585
|
-
coding: { system: SNOMED_SYSTEM, code: "279039007", display: "Low back pain" },
|
|
1586
|
-
text: "Low back pain",
|
|
1587
|
-
aliases: ["ปวดหลังส่วนล่าง", "ปวดเอว"],
|
|
1588
|
-
i18n: { th: "ปวดหลังส่วนล่าง" }
|
|
1589
|
-
}
|
|
1590
|
-
},
|
|
1591
|
-
{
|
|
1592
|
-
names: ["joint pain", "arthralgia", "painful joint"],
|
|
1593
|
-
definition: {
|
|
1594
|
-
coding: { system: SNOMED_SYSTEM, code: "57676002", display: "Pain of joint" },
|
|
1595
|
-
text: "Joint pain",
|
|
1596
|
-
aliases: ["ปวดข้อ"],
|
|
1597
|
-
i18n: { th: "ปวดข้อ" }
|
|
1598
|
-
}
|
|
1599
|
-
},
|
|
1600
|
-
{
|
|
1601
|
-
names: ["muscle pain", "myalgia"],
|
|
1602
|
-
definition: {
|
|
1603
|
-
coding: { system: SNOMED_SYSTEM, code: "68962001", display: "Muscle pain" },
|
|
1604
|
-
text: "Muscle pain",
|
|
1605
|
-
aliases: ["ปวดกล้ามเนื้อ", "เมื่อยกล้ามเนื้อ"],
|
|
1606
|
-
i18n: { th: "ปวดกล้ามเนื้อ" }
|
|
1607
|
-
}
|
|
1608
|
-
},
|
|
1609
|
-
{
|
|
1610
|
-
names: ["ear pain", "earache", "otalgia"],
|
|
1611
|
-
definition: {
|
|
1612
|
-
coding: { system: SNOMED_SYSTEM, code: "301354004", display: "Pain of ear" },
|
|
1613
|
-
text: "Ear pain",
|
|
1614
|
-
aliases: ["ปวดหู"],
|
|
1615
|
-
i18n: { th: "ปวดหู" }
|
|
1616
|
-
}
|
|
1617
|
-
},
|
|
1618
|
-
{
|
|
1619
|
-
names: ["sore throat", "throat pain"],
|
|
1620
|
-
definition: {
|
|
1621
|
-
coding: { system: SNOMED_SYSTEM, code: "267102003", display: "Sore throat" },
|
|
1622
|
-
text: "Sore throat",
|
|
1623
|
-
aliases: ["เจ็บคอ", "คอเจ็บ"],
|
|
1624
|
-
i18n: { th: "เจ็บคอ" }
|
|
1625
|
-
}
|
|
1626
|
-
},
|
|
1627
|
-
{
|
|
1628
|
-
names: ["chest pain"],
|
|
1629
|
-
definition: {
|
|
1630
|
-
coding: { system: SNOMED_SYSTEM, code: "29857009", display: "Chest pain" },
|
|
1631
|
-
text: "Chest pain",
|
|
1632
|
-
aliases: ["เจ็บหน้าอก"],
|
|
1633
|
-
i18n: { th: "เจ็บหน้าอก" }
|
|
1634
|
-
}
|
|
1635
|
-
},
|
|
1636
|
-
{
|
|
1637
|
-
names: ["pelvic pain", "pelvic and perineal pain"],
|
|
1638
|
-
definition: {
|
|
1639
|
-
coding: {
|
|
1640
|
-
system: SNOMED_SYSTEM,
|
|
1641
|
-
code: "274671002",
|
|
1642
|
-
display: "Pelvic and perineal pain"
|
|
1643
|
-
},
|
|
1644
|
-
text: "Pelvic pain",
|
|
1645
|
-
aliases: ["ปวดเชิงกราน", "ปวดท้องน้อย"],
|
|
1646
|
-
i18n: { th: "ปวดเชิงกราน" }
|
|
1647
|
-
}
|
|
1648
|
-
},
|
|
1649
|
-
{
|
|
1650
|
-
names: ["dysmenorrhea", "menstrual cramps", "period cramps", "period pain"],
|
|
1651
|
-
definition: {
|
|
1652
|
-
coding: { system: SNOMED_SYSTEM, code: "266599000", display: "Dysmenorrhea" },
|
|
1653
|
-
text: "Menstrual cramps",
|
|
1654
|
-
aliases: ["ปวดประจำเดือน", "ปวดเมนส์"],
|
|
1655
|
-
i18n: { th: "ปวดประจำเดือน" }
|
|
1656
|
-
}
|
|
1657
|
-
},
|
|
1658
|
-
{
|
|
1659
|
-
names: ["cramp", "cramps", "cramping"],
|
|
1660
|
-
definition: {
|
|
1661
|
-
coding: { system: SNOMED_SYSTEM, code: "55300003", display: "Cramp" },
|
|
1662
|
-
text: "Cramp",
|
|
1663
|
-
aliases: ["ตะคริว"],
|
|
1664
|
-
i18n: { th: "ตะคริว" }
|
|
1665
|
-
}
|
|
1666
|
-
},
|
|
1667
|
-
{
|
|
1668
|
-
names: ["spasm", "spasms", "muscle spasm"],
|
|
1669
|
-
definition: {
|
|
1670
|
-
coding: { system: SNOMED_SYSTEM, code: "45352006", display: "Spasm" },
|
|
1671
|
-
text: "Spasm",
|
|
1672
|
-
aliases: ["เกร็ง", "กล้ามเนื้อเกร็ง"],
|
|
1673
|
-
i18n: { th: "ตะคริวหรือเกร็ง" }
|
|
1674
|
-
}
|
|
1675
|
-
},
|
|
1676
|
-
{
|
|
1677
|
-
names: ["nausea", "queasiness", "queasy"],
|
|
1678
|
-
definition: {
|
|
1679
|
-
coding: { system: SNOMED_SYSTEM, code: "422587007", display: "Nausea" },
|
|
1680
|
-
text: "Nausea",
|
|
1681
|
-
aliases: ["คลื่นไส้"],
|
|
1682
|
-
i18n: { th: "คลื่นไส้" }
|
|
1683
|
-
}
|
|
1684
|
-
},
|
|
1685
|
-
{
|
|
1686
|
-
names: ["vomiting", "emesis", "throw up", "throwing up"],
|
|
1687
|
-
definition: {
|
|
1688
|
-
coding: { system: SNOMED_SYSTEM, code: "422400008", display: "Vomiting" },
|
|
1689
|
-
text: "Vomiting",
|
|
1690
|
-
aliases: ["อาเจียน"],
|
|
1691
|
-
i18n: { th: "อาเจียน" }
|
|
1692
|
-
}
|
|
1693
|
-
},
|
|
1694
|
-
{
|
|
1695
|
-
names: ["n/v", "nausea and vomiting", "vomiting and nausea"],
|
|
1696
|
-
definition: {
|
|
1697
|
-
coding: {
|
|
1698
|
-
system: SNOMED_SYSTEM,
|
|
1699
|
-
code: "16932000",
|
|
1700
|
-
display: "Nausea and vomiting"
|
|
1701
|
-
},
|
|
1702
|
-
text: "Nausea and vomiting",
|
|
1703
|
-
aliases: ["คลื่นไส้อาเจียน", "คลื่นไส้และอาเจียน"],
|
|
1704
|
-
i18n: { th: "คลื่นไส้และอาเจียน" }
|
|
1705
|
-
}
|
|
1706
|
-
},
|
|
1707
|
-
{
|
|
1708
|
-
names: ["diarrhea", "diarrhoea", "loose stool", "loose stools"],
|
|
1709
|
-
definition: {
|
|
1710
|
-
coding: { system: SNOMED_SYSTEM, code: "62315008", display: "Diarrhea" },
|
|
1711
|
-
text: "Diarrhea",
|
|
1712
|
-
aliases: ["ท้องเสีย", "ถ่ายเหลว"],
|
|
1713
|
-
i18n: { th: "ท้องเสีย" }
|
|
1714
|
-
}
|
|
1715
|
-
},
|
|
1716
|
-
{
|
|
1717
|
-
names: ["constipation"],
|
|
1718
|
-
definition: {
|
|
1719
|
-
coding: {
|
|
1720
|
-
system: SNOMED_SYSTEM,
|
|
1721
|
-
code: "14760008",
|
|
1722
|
-
display: "Constipation"
|
|
1723
|
-
},
|
|
1724
|
-
text: "Constipation",
|
|
1725
|
-
aliases: ["ท้องผูก", "ถ่ายไม่ออก"],
|
|
1726
|
-
i18n: { th: "ท้องผูก" }
|
|
1727
|
-
}
|
|
1728
|
-
},
|
|
1729
|
-
{
|
|
1730
|
-
names: ["heartburn"],
|
|
1731
|
-
definition: {
|
|
1732
|
-
coding: { system: SNOMED_SYSTEM, code: "16331000", display: "Heartburn" },
|
|
1733
|
-
text: "Heartburn",
|
|
1734
|
-
aliases: ["แสบร้อนกลางอก"],
|
|
1735
|
-
i18n: { th: "แสบร้อนกลางอก" }
|
|
1736
|
-
}
|
|
1737
|
-
},
|
|
1738
|
-
{
|
|
1739
|
-
names: ["abdominal pain", "stomach pain", "stomachache"],
|
|
1740
|
-
definition: {
|
|
1741
|
-
coding: { system: SNOMED_SYSTEM, code: "21522001", display: "Abdominal pain" },
|
|
1742
|
-
text: "Abdominal pain",
|
|
1743
|
-
aliases: ["ปวดท้อง"],
|
|
1744
|
-
i18n: { th: "ปวดท้อง" }
|
|
1745
|
-
}
|
|
1746
|
-
},
|
|
1747
|
-
{
|
|
1748
|
-
names: ["abdominal bloating", "bloating", "bloated"],
|
|
1749
|
-
definition: {
|
|
1750
|
-
coding: {
|
|
1751
|
-
system: SNOMED_SYSTEM,
|
|
1752
|
-
code: "116289008",
|
|
1753
|
-
display: "Abdominal bloating"
|
|
1754
|
-
},
|
|
1755
|
-
text: "Bloating",
|
|
1756
|
-
aliases: ["ท้องอืด"],
|
|
1757
|
-
i18n: { th: "ท้องอืด" }
|
|
1758
|
-
}
|
|
1759
|
-
},
|
|
1760
|
-
{
|
|
1761
|
-
names: ["flatulence", "gas", "gassy"],
|
|
1762
|
-
definition: {
|
|
1763
|
-
coding: { system: SNOMED_SYSTEM, code: "249504006", display: "Flatulence" },
|
|
1764
|
-
text: "Gas",
|
|
1765
|
-
aliases: ["มีแก๊สในท้อง", "ลมในท้อง"],
|
|
1766
|
-
i18n: { th: "มีแก๊สในท้อง" }
|
|
1767
|
-
}
|
|
1768
|
-
},
|
|
1769
|
-
{
|
|
1770
|
-
names: ["eye itch", "itchy eye", "itchy eyes", "eye itching", "itching eye", "itching eyes", "itching of eye", "itching of eyes"],
|
|
1771
|
-
definition: {
|
|
1772
|
-
coding: {
|
|
1773
|
-
system: SNOMED_SYSTEM,
|
|
1774
|
-
code: "74776002",
|
|
1775
|
-
display: "Itching of eye"
|
|
1776
|
-
},
|
|
1777
|
-
text: "Eye itching",
|
|
1778
|
-
aliases: ["คันตา", "ตาคัน"],
|
|
1779
|
-
i18n: { th: "คันตา" }
|
|
1780
|
-
}
|
|
1781
|
-
},
|
|
1782
|
-
{
|
|
1783
|
-
names: ["lesion itch", "itchy lesion", "itching lesion", "lesion itching", "itching of lesion", "itching of skin lesion", "skin lesion itch"],
|
|
1784
|
-
definition: {
|
|
1785
|
-
coding: {
|
|
1786
|
-
system: SNOMED_SYSTEM,
|
|
1787
|
-
code: "445329008",
|
|
1788
|
-
display: "Itching of lesion of skin"
|
|
1789
|
-
},
|
|
1790
|
-
text: "Lesion itching",
|
|
1791
|
-
aliases: ["คันรอยโรค", "คันที่รอยโรค"],
|
|
1792
|
-
i18n: { th: "คันที่รอยโรค" }
|
|
1793
|
-
}
|
|
1794
|
-
},
|
|
1795
|
-
{
|
|
1796
|
-
names: ["itch", "itching", "itchy", "wound itch", "itchy wound", "wound itching", "itching wound", "itching of wound"],
|
|
1797
|
-
definition: {
|
|
1798
|
-
coding: {
|
|
1799
|
-
system: SNOMED_SYSTEM,
|
|
1800
|
-
code: "418363000",
|
|
1801
|
-
display: "Itching of skin"
|
|
1802
|
-
},
|
|
1803
|
-
text: "Itching",
|
|
1804
|
-
aliases: ["คัน", "คันแผล", "แผลคัน"],
|
|
1805
|
-
i18n: { th: "คัน" }
|
|
1806
|
-
}
|
|
1807
|
-
},
|
|
1808
|
-
{
|
|
1809
|
-
names: ["cough", "coughing"],
|
|
1810
|
-
definition: {
|
|
1811
|
-
coding: { system: SNOMED_SYSTEM, code: "49727002", display: "Cough" },
|
|
1812
|
-
text: "Cough",
|
|
1813
|
-
aliases: ["ไอ"],
|
|
1814
|
-
i18n: { th: "ไอ" }
|
|
1815
|
-
}
|
|
1816
|
-
},
|
|
1817
|
-
{
|
|
1818
|
-
names: ["fever", "temperature", "pyrexia"],
|
|
1819
|
-
definition: {
|
|
1820
|
-
coding: { system: SNOMED_SYSTEM, code: "386661006", display: "Fever" },
|
|
1821
|
-
text: "Fever",
|
|
1822
|
-
aliases: ["ไข้", "ตัวร้อน"],
|
|
1823
|
-
i18n: { th: "ไข้" }
|
|
1824
|
-
}
|
|
1825
|
-
},
|
|
1826
|
-
{
|
|
1827
|
-
names: ["nasal congestion", "congestion", "stuffy nose", "blocked nose"],
|
|
1828
|
-
definition: {
|
|
1829
|
-
coding: {
|
|
1830
|
-
system: SNOMED_SYSTEM,
|
|
1831
|
-
code: "68235000",
|
|
1832
|
-
display: "Nasal congestion"
|
|
1833
|
-
},
|
|
1834
|
-
text: "Nasal congestion",
|
|
1835
|
-
aliases: ["คัดจมูก"],
|
|
1836
|
-
i18n: { th: "คัดจมูก" }
|
|
1837
|
-
}
|
|
1838
|
-
},
|
|
1839
|
-
{
|
|
1840
|
-
names: ["nasal discharge", "rhinorrhea", "rhinorrhoea", "runny nose", "discharge from nose"],
|
|
1841
|
-
definition: {
|
|
1842
|
-
coding: {
|
|
1843
|
-
system: SNOMED_SYSTEM,
|
|
1844
|
-
code: "64531003",
|
|
1845
|
-
display: "Nasal discharge"
|
|
1846
|
-
},
|
|
1847
|
-
text: "Runny nose",
|
|
1848
|
-
aliases: ["น้ำมูกไหล"],
|
|
1849
|
-
i18n: { th: "น้ำมูกไหล" }
|
|
1850
|
-
}
|
|
1851
|
-
},
|
|
1852
|
-
{
|
|
1853
|
-
names: ["dyspnea", "dyspnoea", "shortness of breath", "sob", "breathlessness", "breathless"],
|
|
1854
|
-
definition: {
|
|
1855
|
-
coding: {
|
|
1856
|
-
system: SNOMED_SYSTEM,
|
|
1857
|
-
code: "267036007",
|
|
1858
|
-
display: "Dyspnea"
|
|
1859
|
-
},
|
|
1860
|
-
text: "Shortness of breath",
|
|
1861
|
-
aliases: ["เหนื่อย", "หายใจลำบาก", "หอบ"],
|
|
1862
|
-
i18n: { th: "เหนื่อยหรือหายใจลำบาก" }
|
|
1863
|
-
}
|
|
1864
|
-
},
|
|
1865
|
-
{
|
|
1866
|
-
names: ["wheezing", "wheeze", "wheezy"],
|
|
1867
|
-
definition: {
|
|
1868
|
-
coding: { system: SNOMED_SYSTEM, code: "56018004", display: "Wheezing" },
|
|
1869
|
-
text: "Wheeze",
|
|
1870
|
-
aliases: ["หายใจมีเสียงหวีด"],
|
|
1871
|
-
i18n: { th: "หายใจมีเสียงหวีด" }
|
|
1872
|
-
}
|
|
1873
|
-
},
|
|
1874
|
-
{
|
|
1875
|
-
names: ["sneezing", "sneeze", "sneezes"],
|
|
1876
|
-
definition: {
|
|
1877
|
-
coding: { system: SNOMED_SYSTEM, code: "76067001", display: "Sneezing" },
|
|
1878
|
-
text: "Sneezing",
|
|
1879
|
-
aliases: ["จาม"],
|
|
1880
|
-
i18n: { th: "จาม" }
|
|
1881
|
-
}
|
|
1882
|
-
},
|
|
1883
|
-
{
|
|
1884
|
-
names: ["allergic rhinitis", "allergy symptoms", "hay fever", "hayfever"],
|
|
1885
|
-
definition: {
|
|
1886
|
-
coding: {
|
|
1887
|
-
system: SNOMED_SYSTEM,
|
|
1888
|
-
code: "61582004",
|
|
1889
|
-
display: "Allergic rhinitis"
|
|
1890
|
-
},
|
|
1891
|
-
text: "Allergic rhinitis",
|
|
1892
|
-
aliases: ["ภูมิแพ้จมูก", "ภูมิแพ้"],
|
|
1893
|
-
i18n: { th: "ภูมิแพ้จมูก" }
|
|
1894
|
-
}
|
|
1895
|
-
},
|
|
1896
|
-
{
|
|
1897
|
-
names: ["rash", "skin rash", "skin eruption", "eruption of skin"],
|
|
1898
|
-
definition: {
|
|
1899
|
-
coding: {
|
|
1900
|
-
system: SNOMED_SYSTEM,
|
|
1901
|
-
code: "271807003",
|
|
1902
|
-
display: "Eruption of skin"
|
|
1903
|
-
},
|
|
1904
|
-
text: "Rash",
|
|
1905
|
-
aliases: ["ผื่น"],
|
|
1906
|
-
i18n: { th: "ผื่น" }
|
|
1907
|
-
}
|
|
1908
|
-
},
|
|
1909
|
-
{
|
|
1910
|
-
names: ["burning sensation", "burning", "burning pain"],
|
|
1911
|
-
definition: {
|
|
1912
|
-
coding: {
|
|
1913
|
-
system: SNOMED_SYSTEM,
|
|
1914
|
-
code: "90673000",
|
|
1915
|
-
display: "Burning sensation"
|
|
1916
|
-
},
|
|
1917
|
-
text: "Burning sensation",
|
|
1918
|
-
aliases: ["แสบร้อน", "แสบ"],
|
|
1919
|
-
i18n: { th: "แสบร้อน" }
|
|
1920
|
-
}
|
|
1921
|
-
},
|
|
1922
|
-
{
|
|
1923
|
-
names: ["irritation", "irritated"],
|
|
1924
|
-
definition: {
|
|
1925
|
-
coding: {
|
|
1926
|
-
system: SNOMED_SYSTEM,
|
|
1927
|
-
code: "257553007",
|
|
1928
|
-
display: "Irritation"
|
|
1929
|
-
},
|
|
1930
|
-
text: "Irritation",
|
|
1931
|
-
aliases: ["ระคายเคือง"],
|
|
1932
|
-
i18n: { th: "ระคายเคือง" }
|
|
1933
|
-
}
|
|
1934
|
-
},
|
|
1935
|
-
{
|
|
1936
|
-
names: ["dry eye", "dry eyes"],
|
|
1937
|
-
definition: {
|
|
1938
|
-
coding: { system: SNOMED_SYSTEM, code: "162290004", display: "Dry eyes" },
|
|
1939
|
-
text: "Dry eyes",
|
|
1940
|
-
aliases: ["ตาแห้ง"],
|
|
1941
|
-
i18n: { th: "ตาแห้ง" }
|
|
1942
|
-
}
|
|
1943
|
-
},
|
|
1944
|
-
{
|
|
1945
|
-
names: ["red eye", "red eyes"],
|
|
1946
|
-
definition: {
|
|
1947
|
-
coding: { system: SNOMED_SYSTEM, code: "703630003", display: "Red eye" },
|
|
1948
|
-
text: "Red eye",
|
|
1949
|
-
aliases: ["ตาแดง"],
|
|
1950
|
-
i18n: { th: "ตาแดง" }
|
|
1951
|
-
}
|
|
1952
|
-
},
|
|
1953
|
-
{
|
|
1954
|
-
names: ["eye pain", "pain in eye", "ocular pain"],
|
|
1955
|
-
definition: {
|
|
1956
|
-
coding: { system: SNOMED_SYSTEM, code: "41652007", display: "Pain in eye" },
|
|
1957
|
-
text: "Eye pain",
|
|
1958
|
-
aliases: ["ปวดตา", "เจ็บตา"],
|
|
1959
|
-
i18n: { th: "ปวดตา" }
|
|
1960
|
-
}
|
|
1961
|
-
},
|
|
1962
|
-
{
|
|
1963
|
-
names: ["dry skin", "xeroderma"],
|
|
1964
|
-
definition: {
|
|
1965
|
-
coding: { system: SNOMED_SYSTEM, code: "52475004", display: "Xeroderma" },
|
|
1966
|
-
text: "Dry skin",
|
|
1967
|
-
aliases: ["ผิวแห้ง"],
|
|
1968
|
-
i18n: { th: "ผิวแห้ง" }
|
|
1969
|
-
}
|
|
1970
|
-
},
|
|
1971
|
-
{
|
|
1972
|
-
names: ["dysuria", "burning urination", "burning when urinating"],
|
|
1973
|
-
definition: {
|
|
1974
|
-
coding: { system: SNOMED_SYSTEM, code: "49650001", display: "Dysuria" },
|
|
1975
|
-
text: "Dysuria",
|
|
1976
|
-
aliases: ["แสบขัด", "ปัสสาวะแสบขัด", "แสบเวลาปัสสาวะ"],
|
|
1977
|
-
i18n: { th: "แสบขัดเวลาปัสสาวะ" }
|
|
1978
|
-
}
|
|
1979
|
-
},
|
|
1980
|
-
{
|
|
1981
|
-
names: ["frequency of urination", "urinary frequency", "frequent urination"],
|
|
1982
|
-
definition: {
|
|
1983
|
-
coding: {
|
|
1984
|
-
system: SNOMED_SYSTEM,
|
|
1985
|
-
code: "364198000",
|
|
1986
|
-
display: "Frequency of urination"
|
|
1987
|
-
},
|
|
1988
|
-
text: "Urinary frequency",
|
|
1989
|
-
aliases: ["ปัสสาวะบ่อย"],
|
|
1990
|
-
i18n: { th: "ปัสสาวะบ่อย" }
|
|
1991
|
-
}
|
|
1992
|
-
},
|
|
1993
|
-
{
|
|
1994
|
-
names: ["urgent desire to urinate", "urinary urgency", "urgency to urinate", "urgency to pass urine", "urgency of micturition"],
|
|
1995
|
-
definition: {
|
|
1996
|
-
coding: {
|
|
1997
|
-
system: SNOMED_SYSTEM,
|
|
1998
|
-
code: "75088002",
|
|
1999
|
-
display: "Urgent desire to urinate"
|
|
2000
|
-
},
|
|
2001
|
-
text: "Urinary urgency",
|
|
2002
|
-
aliases: ["ปวดปัสสาวะรีบ", "ปวดปัสสาวะกะทันหัน"],
|
|
2003
|
-
i18n: { th: "ปวดปัสสาวะรีบ" }
|
|
2004
|
-
}
|
|
2005
|
-
},
|
|
2006
|
-
{
|
|
2007
|
-
names: ["vaginal discharge", "discharge from vagina"],
|
|
2008
|
-
definition: {
|
|
2009
|
-
coding: {
|
|
2010
|
-
system: SNOMED_SYSTEM,
|
|
2011
|
-
code: "271939006",
|
|
2012
|
-
display: "Vaginal discharge"
|
|
2013
|
-
},
|
|
2014
|
-
text: "Vaginal discharge",
|
|
2015
|
-
aliases: ["ตกขาว"],
|
|
2016
|
-
i18n: { th: "ตกขาว" }
|
|
2017
|
-
}
|
|
2018
|
-
},
|
|
2019
|
-
{
|
|
2020
|
-
names: ["vaginal irritation", "irritation of vagina"],
|
|
2021
|
-
definition: {
|
|
2022
|
-
coding: {
|
|
2023
|
-
system: SNOMED_SYSTEM,
|
|
2024
|
-
code: "161816004",
|
|
2025
|
-
display: "Vaginal irritation"
|
|
2026
|
-
},
|
|
2027
|
-
text: "Vaginal irritation",
|
|
2028
|
-
aliases: ["ระคายเคืองช่องคลอด"],
|
|
2029
|
-
i18n: { th: "ระคายเคืองช่องคลอด" }
|
|
2030
|
-
}
|
|
2031
|
-
},
|
|
2032
|
-
{
|
|
2033
|
-
names: ["pruritus of vagina", "itching of vagina", "vaginal itching", "vaginal itch"],
|
|
2034
|
-
definition: {
|
|
2035
|
-
coding: {
|
|
2036
|
-
system: SNOMED_SYSTEM,
|
|
2037
|
-
code: "34363003",
|
|
2038
|
-
display: "Pruritus of vagina"
|
|
2039
|
-
},
|
|
2040
|
-
text: "Vaginal itching",
|
|
2041
|
-
aliases: ["คันช่องคลอด"],
|
|
2042
|
-
i18n: { th: "คันช่องคลอด" }
|
|
2043
|
-
}
|
|
2044
|
-
},
|
|
2045
|
-
{
|
|
2046
|
-
names: ["anxiety", "nervousness", "feeling anxious"],
|
|
2047
|
-
definition: {
|
|
2048
|
-
coding: { system: SNOMED_SYSTEM, code: "48694002", display: "Anxiety" },
|
|
2049
|
-
text: "Anxiety",
|
|
2050
|
-
aliases: ["วิตกกังวล", "กังวล"],
|
|
2051
|
-
i18n: { th: "วิตกกังวล" }
|
|
2052
|
-
}
|
|
2053
|
-
},
|
|
2054
|
-
{
|
|
2055
|
-
names: ["panic attack", "panic", "panic episode"],
|
|
2056
|
-
definition: {
|
|
2057
|
-
coding: { system: SNOMED_SYSTEM, code: "225624000", display: "Panic attack" },
|
|
2058
|
-
text: "Panic attack",
|
|
2059
|
-
aliases: ["อาการแพนิค", "แพนิค", "ตื่นตระหนก"],
|
|
2060
|
-
i18n: { th: "อาการแพนิค" }
|
|
2061
|
-
}
|
|
2062
|
-
},
|
|
2063
|
-
{
|
|
2064
|
-
names: ["agitation", "agitated", "feeling agitated", "unable to keep still"],
|
|
2065
|
-
definition: {
|
|
2066
|
-
coding: {
|
|
2067
|
-
system: SNOMED_SYSTEM,
|
|
2068
|
-
code: "24199005",
|
|
2069
|
-
display: "Feeling agitated"
|
|
2070
|
-
},
|
|
2071
|
-
text: "Agitation",
|
|
2072
|
-
aliases: ["กระสับกระส่าย", "อยู่ไม่นิ่ง"],
|
|
2073
|
-
i18n: { th: "กระสับกระส่าย" }
|
|
2074
|
-
}
|
|
2075
|
-
},
|
|
2076
|
-
{
|
|
2077
|
-
names: ["sleep", "sleeping", "insomnia", "sleep issues", "unable to sleep"],
|
|
2078
|
-
definition: {
|
|
2079
|
-
coding: {
|
|
2080
|
-
system: SNOMED_SYSTEM,
|
|
2081
|
-
code: "193462001",
|
|
2082
|
-
display: "Insomnia"
|
|
2083
|
-
},
|
|
2084
|
-
text: "Sleep",
|
|
2085
|
-
aliases: ["นอนหลับ", "นอนไม่หลับ"],
|
|
2086
|
-
i18n: { th: "นอนหลับ" }
|
|
2087
|
-
}
|
|
2088
|
-
},
|
|
2089
|
-
{
|
|
2090
|
-
names: ["sleepiness", "sleepy", "drowsiness", "drowsy", "somnolence"],
|
|
2091
|
-
definition: {
|
|
2092
|
-
coding: {
|
|
2093
|
-
system: SNOMED_SYSTEM,
|
|
2094
|
-
code: "79519003",
|
|
2095
|
-
display: "Drowsiness"
|
|
2096
|
-
},
|
|
2097
|
-
text: "Sleepiness",
|
|
2098
|
-
aliases: ["ง่วงนอน", "ง่วง"],
|
|
2099
|
-
i18n: { th: "ง่วงนอน" }
|
|
2100
|
-
}
|
|
2101
|
-
},
|
|
2102
|
-
{
|
|
2103
|
-
names: ["dizziness", "giddiness"],
|
|
2104
|
-
definition: {
|
|
2105
|
-
coding: { system: SNOMED_SYSTEM, code: "404640003", display: "Dizziness" },
|
|
2106
|
-
text: "Dizziness",
|
|
2107
|
-
aliases: ["เวียนหัว", "เวียนศีรษะ"],
|
|
2108
|
-
i18n: { th: "เวียนศีรษะ" }
|
|
2109
|
-
}
|
|
2110
|
-
},
|
|
2111
|
-
{
|
|
2112
|
-
names: ["vertigo"],
|
|
2113
|
-
definition: {
|
|
2114
|
-
coding: { system: SNOMED_SYSTEM, code: "399153001", display: "Vertigo" },
|
|
2115
|
-
text: "Vertigo",
|
|
2116
|
-
aliases: ["บ้านหมุน"],
|
|
2117
|
-
i18n: { th: "บ้านหมุน" }
|
|
2118
|
-
}
|
|
2119
|
-
},
|
|
2120
|
-
{
|
|
2121
|
-
names: ["hallucinations", "hallucination"],
|
|
2122
|
-
definition: {
|
|
2123
|
-
coding: { system: SNOMED_SYSTEM, code: "7011001", display: "Hallucinations" },
|
|
2124
|
-
text: "Hallucinations",
|
|
2125
|
-
aliases: ["ประสาทหลอน", "หูแว่ว", "เห็นภาพหลอน"],
|
|
2126
|
-
i18n: { th: "ประสาทหลอน" }
|
|
2127
|
-
}
|
|
2128
|
-
},
|
|
2129
|
-
{
|
|
2130
|
-
names: ["mania", "manic"],
|
|
2131
|
-
definition: {
|
|
2132
|
-
coding: { system: SNOMED_SYSTEM, code: "231494001", display: "Mania" },
|
|
2133
|
-
text: "Mania",
|
|
2134
|
-
aliases: ["แมเนีย", "อารมณ์คึกผิดปกติ"],
|
|
2135
|
-
i18n: { th: "แมเนีย" }
|
|
2136
|
-
}
|
|
2137
|
-
},
|
|
2138
|
-
{
|
|
2139
|
-
names: ["depressed mood", "feeling depressed", "depressed"],
|
|
2140
|
-
definition: {
|
|
2141
|
-
coding: {
|
|
2142
|
-
system: SNOMED_SYSTEM,
|
|
2143
|
-
code: "366979004",
|
|
2144
|
-
display: "Depressed mood"
|
|
2145
|
-
},
|
|
2146
|
-
text: "Depressed mood",
|
|
2147
|
-
aliases: ["อารมณ์ซึมเศร้า", "ซึมเศร้า"],
|
|
2148
|
-
i18n: { th: "อารมณ์ซึมเศร้า" }
|
|
2149
|
-
}
|
|
2150
|
-
},
|
|
2151
|
-
{
|
|
2152
|
-
names: ["poor concentration", "difficulty concentrating", "unable to concentrate", "cannot concentrate", "can't focus"],
|
|
2153
|
-
definition: {
|
|
2154
|
-
coding: {
|
|
2155
|
-
system: SNOMED_SYSTEM,
|
|
2156
|
-
code: "26329005",
|
|
2157
|
-
display: "Poor concentration"
|
|
2158
|
-
},
|
|
2159
|
-
text: "Poor concentration",
|
|
2160
|
-
aliases: ["สมาธิไม่ดี", "ขาดสมาธิ", "ไม่มีสมาธิ"],
|
|
2161
|
-
i18n: { th: "สมาธิไม่ดี" }
|
|
2162
|
-
}
|
|
2163
|
-
},
|
|
2164
|
-
{
|
|
2165
|
-
names: ["palpitations", "palpitation"],
|
|
2166
|
-
definition: {
|
|
2167
|
-
coding: { system: SNOMED_SYSTEM, code: "80313002", display: "Palpitations" },
|
|
2168
|
-
text: "Palpitations",
|
|
2169
|
-
aliases: ["ใจสั่น"],
|
|
2170
|
-
i18n: { th: "ใจสั่น" }
|
|
2171
|
-
}
|
|
2172
|
-
}
|
|
2173
|
-
];
|
|
2174
|
-
exports.DEFAULT_PRN_REASON_ENTRIES = DEFAULT_PRN_REASON_SOURCE.map((source) => {
|
|
2175
|
-
var _a, _b, _c;
|
|
2176
|
-
const canonicalTerm = (_c = (_a = source.definition.text) !== null && _a !== void 0 ? _a : (_b = source.definition.coding) === null || _b === void 0 ? void 0 : _b.display) !== null && _c !== void 0 ? _c : source.names[0];
|
|
2177
|
-
const terms = [];
|
|
2178
|
-
const seen = new Set();
|
|
2179
|
-
const pushTerm = (value) => {
|
|
2180
|
-
if (!value) {
|
|
2181
|
-
return;
|
|
2182
|
-
}
|
|
2183
|
-
const key = normalizePrnReasonKey(value);
|
|
2184
|
-
if (!key || seen.has(key)) {
|
|
2185
|
-
return;
|
|
2186
|
-
}
|
|
2187
|
-
seen.add(key);
|
|
2188
|
-
terms.push(value);
|
|
2189
|
-
};
|
|
2190
|
-
for (const name of source.names) {
|
|
2191
|
-
pushTerm(name);
|
|
2192
|
-
}
|
|
2193
|
-
if (source.definition.aliases) {
|
|
2194
|
-
for (const alias of source.definition.aliases) {
|
|
2195
|
-
pushTerm(alias);
|
|
2196
|
-
}
|
|
2197
|
-
}
|
|
2198
|
-
if (source.definition.i18n) {
|
|
2199
|
-
for (const locale in source.definition.i18n) {
|
|
2200
|
-
const translation = source.definition.i18n[locale];
|
|
2201
|
-
pushTerm(translation);
|
|
2202
|
-
}
|
|
2203
|
-
}
|
|
2204
|
-
return {
|
|
2205
|
-
canonical: normalizePrnReasonKey(canonicalTerm !== null && canonicalTerm !== void 0 ? canonicalTerm : ""),
|
|
2206
|
-
definition: source.definition,
|
|
2207
|
-
terms
|
|
2208
|
-
};
|
|
2209
|
-
});
|
|
2210
|
-
exports.DEFAULT_PRN_REASON_DEFINITIONS = (0, object_1.objectFromEntries)(exports.DEFAULT_PRN_REASON_ENTRIES.reduce((entries, entry) => {
|
|
2211
|
-
for (const term of entry.terms) {
|
|
2212
|
-
const key = normalizePrnReasonKey(term);
|
|
2213
|
-
if (!key) {
|
|
2214
|
-
continue;
|
|
2215
|
-
}
|
|
2216
|
-
entries.push([key, entry.definition]);
|
|
2217
|
-
}
|
|
2218
|
-
return entries;
|
|
2219
|
-
}, []));
|
|
2220
|
-
/**
|
|
2221
|
-
* Finds a default PRN reason definition by its SNOMED coding.
|
|
2222
|
-
*/
|
|
2223
|
-
function findPrnReasonDefinitionByCoding(system, code) {
|
|
2224
|
-
var _a;
|
|
2225
|
-
return (_a = DEFAULT_PRN_REASON_SOURCE.find((source) => { var _a, _b; return ((_a = source.definition.coding) === null || _a === void 0 ? void 0 : _a.system) === system && ((_b = source.definition.coding) === null || _b === void 0 ? void 0 : _b.code) === code; })) === null || _a === void 0 ? void 0 : _a.definition;
|
|
2226
|
-
}
|