ezmedicationinput 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,363 @@
1
+ export interface FhirCoding {
2
+ system?: string;
3
+ code?: string;
4
+ display?: string;
5
+ }
6
+ export interface FhirCodeableConcept {
7
+ coding?: FhirCoding[];
8
+ text?: string;
9
+ }
10
+ export interface FhirQuantity {
11
+ value?: number;
12
+ unit?: string;
13
+ }
14
+ export interface FhirRange {
15
+ low?: FhirQuantity;
16
+ high?: FhirQuantity;
17
+ }
18
+ export interface FhirRatio {
19
+ numerator?: FhirQuantity;
20
+ denominator?: FhirQuantity;
21
+ }
22
+ /**
23
+ * Follows https://build.fhir.org/valueset-event-timing.html
24
+ * Real-world event relating to the schedule.
25
+ */
26
+ export declare enum EventTiming {
27
+ "Before Sleep" = "HS",
28
+ Wake = "WAKE",
29
+ Meal = "C",
30
+ Breakfast = "CM",
31
+ Lunch = "CD",
32
+ Dinner = "CV",
33
+ "Before Meal" = "AC",
34
+ "Before Breakfast" = "ACM",
35
+ "Before Lunch" = "ACD",
36
+ "Before Dinner" = "ACV",
37
+ "After Meal" = "PC",
38
+ "After Breakfast" = "PCM",
39
+ "After Lunch" = "PCD",
40
+ "After Dinner" = "PCV",
41
+ Morning = "MORN",
42
+ "Early Morning" = "MORN.early",
43
+ "Late Morning" = "MORN.late",
44
+ Noon = "NOON",
45
+ Afternoon = "AFT",
46
+ "Early Afternoon" = "AFT.early",
47
+ "Late Afternoon" = "AFT.late",
48
+ Evening = "EVE",
49
+ "Early Evening" = "EVE.early",
50
+ "Late Evening" = "EVE.late",
51
+ Night = "NIGHT",
52
+ "After Sleep" = "PHS",
53
+ Immediate = "IMD"
54
+ }
55
+ /**
56
+ * SNOMED CT route codes aligned with the official "route of administration values" value set.
57
+ * Keeping the enumeration exhaustive ensures downstream consumers can rely on strong typing.
58
+ */
59
+ export declare enum SNOMEDCTRouteCodes {
60
+ "Topical route" = "6064005",
61
+ "Otic route" = "10547007",
62
+ "Intra-articular route" = "12130007",
63
+ "Per vagina" = "16857009",
64
+ "Oral route" = "26643006",
65
+ "Subcutaneous route" = "34206005",
66
+ "Per rectum" = "37161004",
67
+ "Intraluminal route" = "37737002",
68
+ "Sublingual route" = "37839007",
69
+ "Intraperitoneal route" = "38239002",
70
+ "Transdermal route" = "45890007",
71
+ "Nasal route" = "46713006",
72
+ "Intravenous route" = "47625008",
73
+ "Buccal route" = "54471007",
74
+ "Ophthalmic route" = "54485002",
75
+ "Intra-arterial route" = "58100008",
76
+ "Intramedullary route" = "60213007",
77
+ "Intrauterine route" = "62226000",
78
+ "Intrathecal route" = "72607000",
79
+ "Intramuscular route" = "78421000",
80
+ "Urethral route" = "90028008",
81
+ "Gastrostomy route" = "127490009",
82
+ "Jejunostomy route" = "127491008",
83
+ "Nasogastric route" = "127492001",
84
+ "Dental use" = "372449004",
85
+ "Endocervical use" = "372450004",
86
+ "Endosinusial use" = "372451000",
87
+ "Endotracheopulmonary use" = "372452007",
88
+ "Extra-amniotic use" = "372453002",
89
+ "Gastroenteral use" = "372454008",
90
+ "Gingival use" = "372457001",
91
+ "Intraamniotic use" = "372458006",
92
+ "Intrabursal use" = "372459003",
93
+ "Intracardiac use" = "372460008",
94
+ "Intracavernous use" = "372461007",
95
+ "Intracervical route (qualifier value)" = "372462000",
96
+ "Intracoronary use" = "372463005",
97
+ "Intradermal use" = "372464004",
98
+ "Intradiscal use" = "372465003",
99
+ "Intralesional use" = "372466002",
100
+ "Intralymphatic use" = "372467006",
101
+ "Intraocular use" = "372468001",
102
+ "Intrapleural use" = "372469009",
103
+ "Intrasternal use" = "372470005",
104
+ "Intravesical use" = "372471009",
105
+ "Ocular route (qualifier value)" = "372472002",
106
+ "Oromucosal use" = "372473007",
107
+ "Periarticular use" = "372474001",
108
+ "Perineural use" = "372475000",
109
+ "Subconjunctival use" = "372476004",
110
+ "Transmucosal route (qualifier value)" = "404815008",
111
+ "Intratracheal route (qualifier value)" = "404818005",
112
+ "Intrabiliary route (qualifier value)" = "404819002",
113
+ "Epidural route (qualifier value)" = "404820008",
114
+ "Suborbital route (qualifier value)" = "416174007",
115
+ "Caudal route (qualifier value)" = "417070009",
116
+ "Intraosseous route (qualifier value)" = "417255000",
117
+ "Intrathoracic route (qualifier value)" = "417950001",
118
+ "Enteral route (qualifier value)" = "417985001",
119
+ "Intraductal route (qualifier value)" = "417989007",
120
+ "Intratympanic route (qualifier value)" = "418091004",
121
+ "Intravenous central route (qualifier value)" = "418114005",
122
+ "Intramyometrial route (qualifier value)" = "418133000",
123
+ "Gastro-intestinal stoma route (qualifier value)" = "418136008",
124
+ "Colostomy route (qualifier value)" = "418162004",
125
+ "Periurethral route (qualifier value)" = "418204005",
126
+ "Intracoronal route (qualifier value)" = "418287000",
127
+ "Retrobulbar route (qualifier value)" = "418321004",
128
+ "Intracartilaginous route (qualifier value)" = "418331006",
129
+ "Intravitreal route (qualifier value)" = "418401004",
130
+ "Intraspinal route (qualifier value)" = "418418000",
131
+ "Orogastric route (qualifier value)" = "418441008",
132
+ "Transurethral route (qualifier value)" = "418511008",
133
+ "Intratendinous route (qualifier value)" = "418586008",
134
+ "Intracorneal route (qualifier value)" = "418608002",
135
+ "Oropharyngeal route (qualifier value)" = "418664002",
136
+ "Peribulbar route (qualifier value)" = "418722009",
137
+ "Nasojejunal route (qualifier value)" = "418730005",
138
+ "Fistula route (qualifier value)" = "418743005",
139
+ "Surgical drain route (qualifier value)" = "418813001",
140
+ "Intracameral route (qualifier value)" = "418821007",
141
+ "Paracervical route (qualifier value)" = "418851001",
142
+ "Intrasynovial route (qualifier value)" = "418877009",
143
+ "Intraduodenal route (qualifier value)" = "418887008",
144
+ "Intracisternal route (qualifier value)" = "418892005",
145
+ "Intratesticular route (qualifier value)" = "418947002",
146
+ "Intracranial route (qualifier value)" = "418987007",
147
+ "Tumour cavity route" = "419021003",
148
+ "Paravertebral route (qualifier value)" = "419165009",
149
+ "Intrasinal route (qualifier value)" = "419231003",
150
+ "Transcervical route (qualifier value)" = "419243002",
151
+ "Subtendinous route (qualifier value)" = "419320008",
152
+ "Intraabdominal route (qualifier value)" = "419396008",
153
+ "Subgingival route (qualifier value)" = "419601003",
154
+ "Intraovarian route (qualifier value)" = "419631009",
155
+ "Ureteral route (qualifier value)" = "419684008",
156
+ "Peritendinous route (qualifier value)" = "419762003",
157
+ "Intrabronchial route (qualifier value)" = "419778001",
158
+ "Intraprostatic route (qualifier value)" = "419810008",
159
+ "Submucosal route (qualifier value)" = "419874009",
160
+ "Surgical cavity route (qualifier value)" = "419894000",
161
+ "Ileostomy route (qualifier value)" = "419954003",
162
+ "Intravenous peripheral route (qualifier value)" = "419993007",
163
+ "Periosteal route (qualifier value)" = "420047004",
164
+ "Esophagostomy route" = "420163009",
165
+ "Urostomy route (qualifier value)" = "420168000",
166
+ "Laryngeal route (qualifier value)" = "420185003",
167
+ "Intrapulmonary route (qualifier value)" = "420201002",
168
+ "Mucous fistula route (qualifier value)" = "420204005",
169
+ "Nasoduodenal route (qualifier value)" = "420218003",
170
+ "A route that begins within a non-pathologic hollow cavity, such as that of the abdominal cavity or uterus." = "420254004",
171
+ "Intraventricular route - cardiac (qualifier value)" = "420287000",
172
+ "Intracerebroventricular route (qualifier value)" = "420719007",
173
+ "Percutaneous route (qualifier value)" = "428191002",
174
+ "Interstitial route (qualifier value)" = "429817007",
175
+ "Intraesophageal route (qualifier value)" = "445752009",
176
+ "Intragingival route (qualifier value)" = "445754005",
177
+ "Intravascular route (qualifier value)" = "445755006",
178
+ "Intradural route (qualifier value)" = "445756007",
179
+ "Intragastric route (qualifier value)" = "445768003",
180
+ "Intrapericardial route (qualifier value)" = "445771006",
181
+ "Intralingual route (qualifier value)" = "445913005",
182
+ "Intrahepatic route (qualifier value)" = "445941009",
183
+ "Conjunctival route (qualifier value)" = "446105004",
184
+ "Intraepicardial route (qualifier value)" = "446407004",
185
+ "Transendocardial route (qualifier value)" = "446435000",
186
+ "Transplacental route (qualifier value)" = "446442000",
187
+ "Intracerebral route (qualifier value)" = "446540005",
188
+ "Intraileal route (qualifier value)" = "447026006",
189
+ "Periodontal route (qualifier value)" = "447052000",
190
+ "Peridural route (qualifier value)" = "447080003",
191
+ "Lower respiratory tract route (qualifier value)" = "447081004",
192
+ "Intramammary route (qualifier value)" = "447121004",
193
+ "Intratumor route (qualifier value)" = "447122006",
194
+ "Transtympanic route (qualifier value)" = "447227007",
195
+ "Transtracheal route (qualifier value)" = "447229005",
196
+ "Respiratory tract route (qualifier value)" = "447694001",
197
+ "Digestive tract route (qualifier value)" = "447964005",
198
+ "Intraepidermal route (qualifier value)" = "448077001",
199
+ "Intrajejunal route (qualifier value)" = "448491004",
200
+ "Intracolonic route (qualifier value)" = "448492006",
201
+ "Cutaneous route (qualifier value)" = "448598008",
202
+ "Arteriovenous fistula route (qualifier value)" = "697971008",
203
+ "Intraneural route (qualifier value)" = "711360002",
204
+ "Intramural route (qualifier value)" = "711378007",
205
+ "Extracorporeal route (qualifier value)" = "714743009",
206
+ "Infiltration route (qualifier value)" = "718329006",
207
+ "Epilesional route (qualifier value)" = "764723001",
208
+ "Extracorporeal hemodialysis route (qualifier value)" = "766790006",
209
+ "Intradialytic route" = "876824003",
210
+ "Intracatheter instillation route (qualifier value)" = "1078280005",
211
+ "Suprachoroidal route" = "1254769004",
212
+ "Intracorporus cavernosum route (qualifier value)" = "1259221004",
213
+ "Sublesional route (qualifier value)" = "1611000175109",
214
+ "Intestinal route (qualifier value)" = "58731000052100",
215
+ "Intraglandular route (qualifier value)" = "58751000052109",
216
+ "Intracholangiopancreatic route" = "58761000052107",
217
+ "Intraportal route" = "58771000052103",
218
+ "Peritumoral route (qualifier value)" = "58811000052103",
219
+ "Posterior juxtascleral route (qualifier value)" = "58821000052106",
220
+ "Subretinal route (qualifier value)" = "58831000052108",
221
+ "Sublabial use" = "66621000052103"
222
+ }
223
+ export declare enum FhirPeriodUnit {
224
+ Second = "s",
225
+ Minute = "min",
226
+ Hour = "h",
227
+ Day = "d",
228
+ Week = "wk",
229
+ Month = "mo",
230
+ Year = "a"
231
+ }
232
+ export declare enum FhirDayOfWeek {
233
+ Monday = "mon",
234
+ Tuesday = "tue",
235
+ Wednesday = "wed",
236
+ Thursday = "thu",
237
+ Friday = "fri",
238
+ Saturday = "sat",
239
+ Sunday = "sun"
240
+ }
241
+ export interface FhirTimingRepeat {
242
+ frequency?: number;
243
+ frequencyMax?: number;
244
+ period?: number;
245
+ periodMax?: number;
246
+ periodUnit?: FhirPeriodUnit;
247
+ dayOfWeek?: FhirDayOfWeek[];
248
+ timeOfDay?: string[];
249
+ when?: EventTiming[];
250
+ offset?: number;
251
+ }
252
+ export interface FhirTiming {
253
+ event?: string[];
254
+ repeat?: FhirTimingRepeat;
255
+ code?: FhirCodeableConcept;
256
+ }
257
+ export interface FhirDoseAndRate {
258
+ type?: FhirCodeableConcept;
259
+ doseRange?: FhirRange;
260
+ doseQuantity?: FhirQuantity;
261
+ rateRatio?: FhirRatio;
262
+ rateRange?: FhirRange;
263
+ rateQuantity?: FhirQuantity;
264
+ }
265
+ export interface FhirDosage {
266
+ text?: string;
267
+ timing?: FhirTiming;
268
+ route?: FhirCodeableConcept;
269
+ site?: FhirCodeableConcept;
270
+ asNeededBoolean?: boolean;
271
+ asNeededFor?: FhirCodeableConcept[];
272
+ doseAndRate?: FhirDoseAndRate[];
273
+ }
274
+ export type RouteCode = SNOMEDCTRouteCodes;
275
+ export declare const RouteCode: typeof SNOMEDCTRouteCodes;
276
+ export interface MedicationContext {
277
+ dosageForm?: string;
278
+ strengthQuantity?: FhirQuantity;
279
+ strengthRatio?: FhirRatio;
280
+ strengthCodeableConcept?: FhirCodeableConcept;
281
+ containerValue?: number;
282
+ containerUnit?: string;
283
+ defaultUnit?: string;
284
+ }
285
+ export interface ParseOptions {
286
+ /**
287
+ * Optional medication context that assists with default unit inference.
288
+ * May be omitted or explicitly set to null when no contextual clues exist.
289
+ */
290
+ context?: MedicationContext | null;
291
+ routeMap?: Record<string, RouteCode>;
292
+ unitMap?: Record<string, string>;
293
+ freqMap?: Record<string, {
294
+ timesPerDay?: number;
295
+ intervalHours?: number;
296
+ intervalDays?: number;
297
+ intervalWeeks?: number;
298
+ }>;
299
+ whenMap?: Record<string, EventTiming>;
300
+ allowDiscouraged?: boolean;
301
+ locale?: "en" | "th" | string;
302
+ /**
303
+ * When enabled the parser will expand generic meal timing tokens (AC/PC/C)
304
+ * into specific breakfast/lunch/dinner (and bedtime) EventTiming entries
305
+ * based on the detected daily frequency.
306
+ */
307
+ smartMealExpansion?: boolean;
308
+ /**
309
+ * Controls which meal pair is assumed for twice-daily meal expansions.
310
+ * Defaults to "breakfast+dinner" to mirror common clinical practice.
311
+ */
312
+ twoPerDayPair?: "breakfast+dinner" | "breakfast+lunch";
313
+ }
314
+ export interface ParseResult {
315
+ fhir: FhirDosage;
316
+ shortText: string;
317
+ longText: string;
318
+ warnings: string[];
319
+ meta: {
320
+ consumedTokens: string[];
321
+ leftoverText?: string;
322
+ normalized: {
323
+ route?: RouteCode;
324
+ unit?: string;
325
+ };
326
+ };
327
+ }
328
+ /**
329
+ * Maps EventTiming codes (or other institution-specific timing strings) to
330
+ * 24-hour clock representations such as "08:00".
331
+ */
332
+ export type EventClockMap = Record<string, string>;
333
+ /**
334
+ * Meal timing offsets (in minutes) applied to broader AC/PC EventTiming codes.
335
+ */
336
+ export type MealOffsetMap = Record<string, number>;
337
+ /**
338
+ * Frequency fallback definitions used when no explicit EventTiming or interval
339
+ * exists. Keys can be timing codes (e.g., "BID") or custom frequency tokens
340
+ * such as "freq:2/d".
341
+ */
342
+ export interface FrequencyFallbackTimes {
343
+ byCode?: Record<string, string[]>;
344
+ byFrequency?: Record<string, string[]>;
345
+ }
346
+ /**
347
+ * Shared configuration required to generate next-due dose timestamps.
348
+ */
349
+ export interface NextDueDoseConfig {
350
+ timeZone: string;
351
+ eventClock: EventClockMap;
352
+ mealOffsets: MealOffsetMap;
353
+ frequencyDefaults?: FrequencyFallbackTimes;
354
+ }
355
+ /**
356
+ * Options bag for next-due dose generation.
357
+ */
358
+ export interface NextDueDoseOptions {
359
+ orderedAt: Date | string;
360
+ from: Date | string;
361
+ limit: number;
362
+ config: NextDueDoseConfig;
363
+ }
package/dist/types.js ADDED
@@ -0,0 +1,224 @@
1
+ /**
2
+ * Follows https://build.fhir.org/valueset-event-timing.html
3
+ * Real-world event relating to the schedule.
4
+ */
5
+ export var EventTiming;
6
+ (function (EventTiming) {
7
+ EventTiming["Before Sleep"] = "HS";
8
+ EventTiming["Wake"] = "WAKE";
9
+ EventTiming["Meal"] = "C";
10
+ EventTiming["Breakfast"] = "CM";
11
+ EventTiming["Lunch"] = "CD";
12
+ EventTiming["Dinner"] = "CV";
13
+ EventTiming["Before Meal"] = "AC";
14
+ EventTiming["Before Breakfast"] = "ACM";
15
+ EventTiming["Before Lunch"] = "ACD";
16
+ EventTiming["Before Dinner"] = "ACV";
17
+ EventTiming["After Meal"] = "PC";
18
+ EventTiming["After Breakfast"] = "PCM";
19
+ EventTiming["After Lunch"] = "PCD";
20
+ EventTiming["After Dinner"] = "PCV";
21
+ EventTiming["Morning"] = "MORN";
22
+ EventTiming["Early Morning"] = "MORN.early";
23
+ EventTiming["Late Morning"] = "MORN.late";
24
+ EventTiming["Noon"] = "NOON";
25
+ EventTiming["Afternoon"] = "AFT";
26
+ EventTiming["Early Afternoon"] = "AFT.early";
27
+ EventTiming["Late Afternoon"] = "AFT.late";
28
+ EventTiming["Evening"] = "EVE";
29
+ EventTiming["Early Evening"] = "EVE.early";
30
+ EventTiming["Late Evening"] = "EVE.late";
31
+ EventTiming["Night"] = "NIGHT";
32
+ EventTiming["After Sleep"] = "PHS";
33
+ EventTiming["Immediate"] = "IMD";
34
+ })(EventTiming || (EventTiming = {}));
35
+ /**
36
+ * SNOMED CT route codes aligned with the official "route of administration values" value set.
37
+ * Keeping the enumeration exhaustive ensures downstream consumers can rely on strong typing.
38
+ */
39
+ export var SNOMEDCTRouteCodes;
40
+ (function (SNOMEDCTRouteCodes) {
41
+ SNOMEDCTRouteCodes["Topical route"] = "6064005";
42
+ SNOMEDCTRouteCodes["Otic route"] = "10547007";
43
+ SNOMEDCTRouteCodes["Intra-articular route"] = "12130007";
44
+ SNOMEDCTRouteCodes["Per vagina"] = "16857009";
45
+ SNOMEDCTRouteCodes["Oral route"] = "26643006";
46
+ SNOMEDCTRouteCodes["Subcutaneous route"] = "34206005";
47
+ SNOMEDCTRouteCodes["Per rectum"] = "37161004";
48
+ SNOMEDCTRouteCodes["Intraluminal route"] = "37737002";
49
+ SNOMEDCTRouteCodes["Sublingual route"] = "37839007";
50
+ SNOMEDCTRouteCodes["Intraperitoneal route"] = "38239002";
51
+ SNOMEDCTRouteCodes["Transdermal route"] = "45890007";
52
+ SNOMEDCTRouteCodes["Nasal route"] = "46713006";
53
+ SNOMEDCTRouteCodes["Intravenous route"] = "47625008";
54
+ SNOMEDCTRouteCodes["Buccal route"] = "54471007";
55
+ SNOMEDCTRouteCodes["Ophthalmic route"] = "54485002";
56
+ SNOMEDCTRouteCodes["Intra-arterial route"] = "58100008";
57
+ SNOMEDCTRouteCodes["Intramedullary route"] = "60213007";
58
+ SNOMEDCTRouteCodes["Intrauterine route"] = "62226000";
59
+ SNOMEDCTRouteCodes["Intrathecal route"] = "72607000";
60
+ SNOMEDCTRouteCodes["Intramuscular route"] = "78421000";
61
+ SNOMEDCTRouteCodes["Urethral route"] = "90028008";
62
+ SNOMEDCTRouteCodes["Gastrostomy route"] = "127490009";
63
+ SNOMEDCTRouteCodes["Jejunostomy route"] = "127491008";
64
+ SNOMEDCTRouteCodes["Nasogastric route"] = "127492001";
65
+ SNOMEDCTRouteCodes["Dental use"] = "372449004";
66
+ SNOMEDCTRouteCodes["Endocervical use"] = "372450004";
67
+ SNOMEDCTRouteCodes["Endosinusial use"] = "372451000";
68
+ SNOMEDCTRouteCodes["Endotracheopulmonary use"] = "372452007";
69
+ SNOMEDCTRouteCodes["Extra-amniotic use"] = "372453002";
70
+ SNOMEDCTRouteCodes["Gastroenteral use"] = "372454008";
71
+ SNOMEDCTRouteCodes["Gingival use"] = "372457001";
72
+ SNOMEDCTRouteCodes["Intraamniotic use"] = "372458006";
73
+ SNOMEDCTRouteCodes["Intrabursal use"] = "372459003";
74
+ SNOMEDCTRouteCodes["Intracardiac use"] = "372460008";
75
+ SNOMEDCTRouteCodes["Intracavernous use"] = "372461007";
76
+ SNOMEDCTRouteCodes["Intracervical route (qualifier value)"] = "372462000";
77
+ SNOMEDCTRouteCodes["Intracoronary use"] = "372463005";
78
+ SNOMEDCTRouteCodes["Intradermal use"] = "372464004";
79
+ SNOMEDCTRouteCodes["Intradiscal use"] = "372465003";
80
+ SNOMEDCTRouteCodes["Intralesional use"] = "372466002";
81
+ SNOMEDCTRouteCodes["Intralymphatic use"] = "372467006";
82
+ SNOMEDCTRouteCodes["Intraocular use"] = "372468001";
83
+ SNOMEDCTRouteCodes["Intrapleural use"] = "372469009";
84
+ SNOMEDCTRouteCodes["Intrasternal use"] = "372470005";
85
+ SNOMEDCTRouteCodes["Intravesical use"] = "372471009";
86
+ SNOMEDCTRouteCodes["Ocular route (qualifier value)"] = "372472002";
87
+ SNOMEDCTRouteCodes["Oromucosal use"] = "372473007";
88
+ SNOMEDCTRouteCodes["Periarticular use"] = "372474001";
89
+ SNOMEDCTRouteCodes["Perineural use"] = "372475000";
90
+ SNOMEDCTRouteCodes["Subconjunctival use"] = "372476004";
91
+ SNOMEDCTRouteCodes["Transmucosal route (qualifier value)"] = "404815008";
92
+ SNOMEDCTRouteCodes["Intratracheal route (qualifier value)"] = "404818005";
93
+ SNOMEDCTRouteCodes["Intrabiliary route (qualifier value)"] = "404819002";
94
+ SNOMEDCTRouteCodes["Epidural route (qualifier value)"] = "404820008";
95
+ SNOMEDCTRouteCodes["Suborbital route (qualifier value)"] = "416174007";
96
+ SNOMEDCTRouteCodes["Caudal route (qualifier value)"] = "417070009";
97
+ SNOMEDCTRouteCodes["Intraosseous route (qualifier value)"] = "417255000";
98
+ SNOMEDCTRouteCodes["Intrathoracic route (qualifier value)"] = "417950001";
99
+ SNOMEDCTRouteCodes["Enteral route (qualifier value)"] = "417985001";
100
+ SNOMEDCTRouteCodes["Intraductal route (qualifier value)"] = "417989007";
101
+ SNOMEDCTRouteCodes["Intratympanic route (qualifier value)"] = "418091004";
102
+ SNOMEDCTRouteCodes["Intravenous central route (qualifier value)"] = "418114005";
103
+ SNOMEDCTRouteCodes["Intramyometrial route (qualifier value)"] = "418133000";
104
+ SNOMEDCTRouteCodes["Gastro-intestinal stoma route (qualifier value)"] = "418136008";
105
+ SNOMEDCTRouteCodes["Colostomy route (qualifier value)"] = "418162004";
106
+ SNOMEDCTRouteCodes["Periurethral route (qualifier value)"] = "418204005";
107
+ SNOMEDCTRouteCodes["Intracoronal route (qualifier value)"] = "418287000";
108
+ SNOMEDCTRouteCodes["Retrobulbar route (qualifier value)"] = "418321004";
109
+ SNOMEDCTRouteCodes["Intracartilaginous route (qualifier value)"] = "418331006";
110
+ SNOMEDCTRouteCodes["Intravitreal route (qualifier value)"] = "418401004";
111
+ SNOMEDCTRouteCodes["Intraspinal route (qualifier value)"] = "418418000";
112
+ SNOMEDCTRouteCodes["Orogastric route (qualifier value)"] = "418441008";
113
+ SNOMEDCTRouteCodes["Transurethral route (qualifier value)"] = "418511008";
114
+ SNOMEDCTRouteCodes["Intratendinous route (qualifier value)"] = "418586008";
115
+ SNOMEDCTRouteCodes["Intracorneal route (qualifier value)"] = "418608002";
116
+ SNOMEDCTRouteCodes["Oropharyngeal route (qualifier value)"] = "418664002";
117
+ SNOMEDCTRouteCodes["Peribulbar route (qualifier value)"] = "418722009";
118
+ SNOMEDCTRouteCodes["Nasojejunal route (qualifier value)"] = "418730005";
119
+ SNOMEDCTRouteCodes["Fistula route (qualifier value)"] = "418743005";
120
+ SNOMEDCTRouteCodes["Surgical drain route (qualifier value)"] = "418813001";
121
+ SNOMEDCTRouteCodes["Intracameral route (qualifier value)"] = "418821007";
122
+ SNOMEDCTRouteCodes["Paracervical route (qualifier value)"] = "418851001";
123
+ SNOMEDCTRouteCodes["Intrasynovial route (qualifier value)"] = "418877009";
124
+ SNOMEDCTRouteCodes["Intraduodenal route (qualifier value)"] = "418887008";
125
+ SNOMEDCTRouteCodes["Intracisternal route (qualifier value)"] = "418892005";
126
+ SNOMEDCTRouteCodes["Intratesticular route (qualifier value)"] = "418947002";
127
+ SNOMEDCTRouteCodes["Intracranial route (qualifier value)"] = "418987007";
128
+ SNOMEDCTRouteCodes["Tumour cavity route"] = "419021003";
129
+ SNOMEDCTRouteCodes["Paravertebral route (qualifier value)"] = "419165009";
130
+ SNOMEDCTRouteCodes["Intrasinal route (qualifier value)"] = "419231003";
131
+ SNOMEDCTRouteCodes["Transcervical route (qualifier value)"] = "419243002";
132
+ SNOMEDCTRouteCodes["Subtendinous route (qualifier value)"] = "419320008";
133
+ SNOMEDCTRouteCodes["Intraabdominal route (qualifier value)"] = "419396008";
134
+ SNOMEDCTRouteCodes["Subgingival route (qualifier value)"] = "419601003";
135
+ SNOMEDCTRouteCodes["Intraovarian route (qualifier value)"] = "419631009";
136
+ SNOMEDCTRouteCodes["Ureteral route (qualifier value)"] = "419684008";
137
+ SNOMEDCTRouteCodes["Peritendinous route (qualifier value)"] = "419762003";
138
+ SNOMEDCTRouteCodes["Intrabronchial route (qualifier value)"] = "419778001";
139
+ SNOMEDCTRouteCodes["Intraprostatic route (qualifier value)"] = "419810008";
140
+ SNOMEDCTRouteCodes["Submucosal route (qualifier value)"] = "419874009";
141
+ SNOMEDCTRouteCodes["Surgical cavity route (qualifier value)"] = "419894000";
142
+ SNOMEDCTRouteCodes["Ileostomy route (qualifier value)"] = "419954003";
143
+ SNOMEDCTRouteCodes["Intravenous peripheral route (qualifier value)"] = "419993007";
144
+ SNOMEDCTRouteCodes["Periosteal route (qualifier value)"] = "420047004";
145
+ SNOMEDCTRouteCodes["Esophagostomy route"] = "420163009";
146
+ SNOMEDCTRouteCodes["Urostomy route (qualifier value)"] = "420168000";
147
+ SNOMEDCTRouteCodes["Laryngeal route (qualifier value)"] = "420185003";
148
+ SNOMEDCTRouteCodes["Intrapulmonary route (qualifier value)"] = "420201002";
149
+ SNOMEDCTRouteCodes["Mucous fistula route (qualifier value)"] = "420204005";
150
+ SNOMEDCTRouteCodes["Nasoduodenal route (qualifier value)"] = "420218003";
151
+ SNOMEDCTRouteCodes["A route that begins within a non-pathologic hollow cavity, such as that of the abdominal cavity or uterus."] = "420254004";
152
+ SNOMEDCTRouteCodes["Intraventricular route - cardiac (qualifier value)"] = "420287000";
153
+ SNOMEDCTRouteCodes["Intracerebroventricular route (qualifier value)"] = "420719007";
154
+ SNOMEDCTRouteCodes["Percutaneous route (qualifier value)"] = "428191002";
155
+ SNOMEDCTRouteCodes["Interstitial route (qualifier value)"] = "429817007";
156
+ SNOMEDCTRouteCodes["Intraesophageal route (qualifier value)"] = "445752009";
157
+ SNOMEDCTRouteCodes["Intragingival route (qualifier value)"] = "445754005";
158
+ SNOMEDCTRouteCodes["Intravascular route (qualifier value)"] = "445755006";
159
+ SNOMEDCTRouteCodes["Intradural route (qualifier value)"] = "445756007";
160
+ SNOMEDCTRouteCodes["Intragastric route (qualifier value)"] = "445768003";
161
+ SNOMEDCTRouteCodes["Intrapericardial route (qualifier value)"] = "445771006";
162
+ SNOMEDCTRouteCodes["Intralingual route (qualifier value)"] = "445913005";
163
+ SNOMEDCTRouteCodes["Intrahepatic route (qualifier value)"] = "445941009";
164
+ SNOMEDCTRouteCodes["Conjunctival route (qualifier value)"] = "446105004";
165
+ SNOMEDCTRouteCodes["Intraepicardial route (qualifier value)"] = "446407004";
166
+ SNOMEDCTRouteCodes["Transendocardial route (qualifier value)"] = "446435000";
167
+ SNOMEDCTRouteCodes["Transplacental route (qualifier value)"] = "446442000";
168
+ SNOMEDCTRouteCodes["Intracerebral route (qualifier value)"] = "446540005";
169
+ SNOMEDCTRouteCodes["Intraileal route (qualifier value)"] = "447026006";
170
+ SNOMEDCTRouteCodes["Periodontal route (qualifier value)"] = "447052000";
171
+ SNOMEDCTRouteCodes["Peridural route (qualifier value)"] = "447080003";
172
+ SNOMEDCTRouteCodes["Lower respiratory tract route (qualifier value)"] = "447081004";
173
+ SNOMEDCTRouteCodes["Intramammary route (qualifier value)"] = "447121004";
174
+ SNOMEDCTRouteCodes["Intratumor route (qualifier value)"] = "447122006";
175
+ SNOMEDCTRouteCodes["Transtympanic route (qualifier value)"] = "447227007";
176
+ SNOMEDCTRouteCodes["Transtracheal route (qualifier value)"] = "447229005";
177
+ SNOMEDCTRouteCodes["Respiratory tract route (qualifier value)"] = "447694001";
178
+ SNOMEDCTRouteCodes["Digestive tract route (qualifier value)"] = "447964005";
179
+ SNOMEDCTRouteCodes["Intraepidermal route (qualifier value)"] = "448077001";
180
+ SNOMEDCTRouteCodes["Intrajejunal route (qualifier value)"] = "448491004";
181
+ SNOMEDCTRouteCodes["Intracolonic route (qualifier value)"] = "448492006";
182
+ SNOMEDCTRouteCodes["Cutaneous route (qualifier value)"] = "448598008";
183
+ SNOMEDCTRouteCodes["Arteriovenous fistula route (qualifier value)"] = "697971008";
184
+ SNOMEDCTRouteCodes["Intraneural route (qualifier value)"] = "711360002";
185
+ SNOMEDCTRouteCodes["Intramural route (qualifier value)"] = "711378007";
186
+ SNOMEDCTRouteCodes["Extracorporeal route (qualifier value)"] = "714743009";
187
+ SNOMEDCTRouteCodes["Infiltration route (qualifier value)"] = "718329006";
188
+ SNOMEDCTRouteCodes["Epilesional route (qualifier value)"] = "764723001";
189
+ SNOMEDCTRouteCodes["Extracorporeal hemodialysis route (qualifier value)"] = "766790006";
190
+ SNOMEDCTRouteCodes["Intradialytic route"] = "876824003";
191
+ SNOMEDCTRouteCodes["Intracatheter instillation route (qualifier value)"] = "1078280005";
192
+ SNOMEDCTRouteCodes["Suprachoroidal route"] = "1254769004";
193
+ SNOMEDCTRouteCodes["Intracorporus cavernosum route (qualifier value)"] = "1259221004";
194
+ SNOMEDCTRouteCodes["Sublesional route (qualifier value)"] = "1611000175109";
195
+ SNOMEDCTRouteCodes["Intestinal route (qualifier value)"] = "58731000052100";
196
+ SNOMEDCTRouteCodes["Intraglandular route (qualifier value)"] = "58751000052109";
197
+ SNOMEDCTRouteCodes["Intracholangiopancreatic route"] = "58761000052107";
198
+ SNOMEDCTRouteCodes["Intraportal route"] = "58771000052103";
199
+ SNOMEDCTRouteCodes["Peritumoral route (qualifier value)"] = "58811000052103";
200
+ SNOMEDCTRouteCodes["Posterior juxtascleral route (qualifier value)"] = "58821000052106";
201
+ SNOMEDCTRouteCodes["Subretinal route (qualifier value)"] = "58831000052108";
202
+ SNOMEDCTRouteCodes["Sublabial use"] = "66621000052103";
203
+ })(SNOMEDCTRouteCodes || (SNOMEDCTRouteCodes = {}));
204
+ export var FhirPeriodUnit;
205
+ (function (FhirPeriodUnit) {
206
+ FhirPeriodUnit["Second"] = "s";
207
+ FhirPeriodUnit["Minute"] = "min";
208
+ FhirPeriodUnit["Hour"] = "h";
209
+ FhirPeriodUnit["Day"] = "d";
210
+ FhirPeriodUnit["Week"] = "wk";
211
+ FhirPeriodUnit["Month"] = "mo";
212
+ FhirPeriodUnit["Year"] = "a";
213
+ })(FhirPeriodUnit || (FhirPeriodUnit = {}));
214
+ export var FhirDayOfWeek;
215
+ (function (FhirDayOfWeek) {
216
+ FhirDayOfWeek["Monday"] = "mon";
217
+ FhirDayOfWeek["Tuesday"] = "tue";
218
+ FhirDayOfWeek["Wednesday"] = "wed";
219
+ FhirDayOfWeek["Thursday"] = "thu";
220
+ FhirDayOfWeek["Friday"] = "fri";
221
+ FhirDayOfWeek["Saturday"] = "sat";
222
+ FhirDayOfWeek["Sunday"] = "sun";
223
+ })(FhirDayOfWeek || (FhirDayOfWeek = {}));
224
+ export const RouteCode = SNOMEDCTRouteCodes;
package/package.json ADDED
@@ -0,0 +1,32 @@
1
+ {
2
+ "name": "ezmedicationinput",
3
+ "version": "0.1.0",
4
+ "description": "Parse concise medication sigs into FHIR R5 Dosage JSON",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "types": "dist/index.d.ts",
8
+ "scripts": {
9
+ "build": "tsc -p tsconfig.json",
10
+ "test": "vitest run"
11
+ },
12
+ "files": [
13
+ "dist"
14
+ ],
15
+ "keywords": [
16
+ "fhir",
17
+ "hl7",
18
+ "dosage",
19
+ "parser"
20
+ ],
21
+ "author": "swittk",
22
+ "license": "MIT",
23
+ "repository": {
24
+ "type": "git",
25
+ "url": "https://github.com/swittk/ezmedicationinput"
26
+ },
27
+ "bugs": "https://github.com/swittk/ezmedicationinput/issues",
28
+ "devDependencies": {
29
+ "typescript": "^5.4.0",
30
+ "vitest": "^1.5.0"
31
+ }
32
+ }