@awell-health/awell-extensions 1.0.168 → 1.0.169
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/extensions/elation/actions/createLabOrder.d.ts +72 -0
- package/dist/extensions/elation/actions/createLabOrder.js +160 -0
- package/dist/extensions/elation/actions/createLabOrder.js.map +1 -0
- package/dist/extensions/elation/actions/index.d.ts +101 -0
- package/dist/extensions/elation/actions/index.js +2 -0
- package/dist/extensions/elation/actions/index.js.map +1 -1
- package/dist/extensions/elation/client.d.ts +3 -0
- package/dist/extensions/elation/client.js +10 -0
- package/dist/extensions/elation/client.js.map +1 -1
- package/dist/extensions/elation/types/labOrder.d.ts +7 -0
- package/dist/extensions/elation/types/labOrder.js +3 -0
- package/dist/extensions/elation/types/labOrder.js.map +1 -0
- package/dist/extensions/elation/validation/labOrder.zod.d.ts +29 -0
- package/dist/extensions/elation/validation/labOrder.zod.js +68 -0
- package/dist/extensions/elation/validation/labOrder.zod.js.map +1 -0
- package/package.json +1 -1
@@ -0,0 +1,72 @@
|
|
1
|
+
import { FieldType, type Action } from '@awell-health/extensions-core';
|
2
|
+
import { type settings } from '../settings';
|
3
|
+
declare const fields: {
|
4
|
+
patientId: {
|
5
|
+
id: string;
|
6
|
+
label: string;
|
7
|
+
description: string;
|
8
|
+
type: FieldType.NUMERIC;
|
9
|
+
required: true;
|
10
|
+
};
|
11
|
+
practiceId: {
|
12
|
+
id: string;
|
13
|
+
label: string;
|
14
|
+
description: string;
|
15
|
+
type: FieldType.NUMERIC;
|
16
|
+
required: true;
|
17
|
+
};
|
18
|
+
documentDate: {
|
19
|
+
id: string;
|
20
|
+
label: string;
|
21
|
+
description: string;
|
22
|
+
type: FieldType.DATE;
|
23
|
+
required: true;
|
24
|
+
};
|
25
|
+
orderingPhysicianId: {
|
26
|
+
id: string;
|
27
|
+
label: string;
|
28
|
+
description: string;
|
29
|
+
type: FieldType.NUMERIC;
|
30
|
+
required: true;
|
31
|
+
};
|
32
|
+
vendorId: {
|
33
|
+
id: string;
|
34
|
+
label: string;
|
35
|
+
description: string;
|
36
|
+
type: FieldType.NUMERIC;
|
37
|
+
required: false;
|
38
|
+
};
|
39
|
+
content: {
|
40
|
+
id: string;
|
41
|
+
label: string;
|
42
|
+
description: string;
|
43
|
+
type: FieldType.JSON;
|
44
|
+
required: false;
|
45
|
+
};
|
46
|
+
siteId: {
|
47
|
+
id: string;
|
48
|
+
label: string;
|
49
|
+
description: string;
|
50
|
+
type: FieldType.NUMERIC;
|
51
|
+
required: false;
|
52
|
+
};
|
53
|
+
confidential: {
|
54
|
+
id: string;
|
55
|
+
label: string;
|
56
|
+
description: string;
|
57
|
+
type: FieldType.BOOLEAN;
|
58
|
+
required: false;
|
59
|
+
};
|
60
|
+
};
|
61
|
+
declare const dataPoints: {
|
62
|
+
labOrderId: {
|
63
|
+
key: string;
|
64
|
+
valueType: "number";
|
65
|
+
};
|
66
|
+
printableLabOrderView: {
|
67
|
+
key: string;
|
68
|
+
valueType: "string";
|
69
|
+
};
|
70
|
+
};
|
71
|
+
export declare const createLabOrder: Action<typeof fields, typeof settings, keyof typeof dataPoints>;
|
72
|
+
export {};
|
@@ -0,0 +1,160 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
exports.createLabOrder = void 0;
|
4
|
+
/* eslint-disable @typescript-eslint/naming-convention */
|
5
|
+
const zod_1 = require("zod");
|
6
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
7
|
+
const client_1 = require("../client");
|
8
|
+
const zod_validation_error_1 = require("zod-validation-error");
|
9
|
+
const axios_1 = require("axios");
|
10
|
+
const labOrder_zod_1 = require("../validation/labOrder.zod");
|
11
|
+
const fields = {
|
12
|
+
patientId: {
|
13
|
+
id: 'patientId',
|
14
|
+
label: 'Patient ID',
|
15
|
+
description: 'The ID of the patient for whom the lab order is being created.',
|
16
|
+
type: extensions_core_1.FieldType.NUMERIC,
|
17
|
+
required: true,
|
18
|
+
},
|
19
|
+
practiceId: {
|
20
|
+
id: 'practiceId',
|
21
|
+
label: 'Practice',
|
22
|
+
description: 'The ID of the practice for which the lab order is being created.',
|
23
|
+
type: extensions_core_1.FieldType.NUMERIC,
|
24
|
+
required: true,
|
25
|
+
},
|
26
|
+
documentDate: {
|
27
|
+
id: 'documentDate',
|
28
|
+
label: 'Document Date',
|
29
|
+
description: 'The date and time of the lab order document.',
|
30
|
+
type: extensions_core_1.FieldType.DATE,
|
31
|
+
required: true,
|
32
|
+
},
|
33
|
+
orderingPhysicianId: {
|
34
|
+
id: 'orderingPhysicianId',
|
35
|
+
label: 'Ordering Physician ID',
|
36
|
+
description: 'The ID of the physician who is creating the order.',
|
37
|
+
type: extensions_core_1.FieldType.NUMERIC,
|
38
|
+
required: true,
|
39
|
+
},
|
40
|
+
vendorId: {
|
41
|
+
id: 'vendorId',
|
42
|
+
label: 'Vendor ID',
|
43
|
+
description: 'The ID of the vendor (or Lab) associated with the lab order.',
|
44
|
+
type: extensions_core_1.FieldType.NUMERIC,
|
45
|
+
required: false,
|
46
|
+
},
|
47
|
+
content: {
|
48
|
+
id: 'content',
|
49
|
+
label: 'Content',
|
50
|
+
description: 'Represents the content of the lab order report. Should be in JSON format. See https://docs.elationhealth.com/reference/the-lab-order-content-object',
|
51
|
+
type: extensions_core_1.FieldType.JSON,
|
52
|
+
required: false,
|
53
|
+
},
|
54
|
+
siteId: {
|
55
|
+
id: 'siteId',
|
56
|
+
label: 'Site ID',
|
57
|
+
description: 'The location where the patient will have the lab performed. Sites are specific to their lab vendor',
|
58
|
+
type: extensions_core_1.FieldType.NUMERIC,
|
59
|
+
required: false,
|
60
|
+
},
|
61
|
+
confidential: {
|
62
|
+
id: 'confidential',
|
63
|
+
label: 'Confidential',
|
64
|
+
description: 'Defaults to false. Whether the provider has marked the order as confidential. Should not be shared with a patient.',
|
65
|
+
type: extensions_core_1.FieldType.BOOLEAN,
|
66
|
+
required: false,
|
67
|
+
},
|
68
|
+
};
|
69
|
+
const dataPoints = {
|
70
|
+
labOrderId: {
|
71
|
+
key: 'labOrderId',
|
72
|
+
valueType: 'number',
|
73
|
+
},
|
74
|
+
printableLabOrderView: {
|
75
|
+
key: 'printableLabOrderView',
|
76
|
+
valueType: 'string',
|
77
|
+
},
|
78
|
+
};
|
79
|
+
exports.createLabOrder = {
|
80
|
+
key: 'createLabOrder',
|
81
|
+
category: extensions_core_1.Category.EHR_INTEGRATIONS,
|
82
|
+
title: 'Create lab order',
|
83
|
+
description: 'A lab order represents an order for a patient to perform some lab tests for a vendor.',
|
84
|
+
fields,
|
85
|
+
previewable: false,
|
86
|
+
dataPoints,
|
87
|
+
onActivityCreated: async (payload, onComplete, onError) => {
|
88
|
+
var _a, _b;
|
89
|
+
try {
|
90
|
+
const { patientId, practiceId, orderingPhysicianId, documentDate, vendorId, content, siteId, confidential, } = payload.fields;
|
91
|
+
const labOrder = labOrder_zod_1.labOrderSchema.parse({
|
92
|
+
practice: practiceId,
|
93
|
+
patient: patientId,
|
94
|
+
document_date: documentDate,
|
95
|
+
ordering_physician: orderingPhysicianId,
|
96
|
+
vendor: vendorId,
|
97
|
+
content,
|
98
|
+
confidential,
|
99
|
+
site: siteId,
|
100
|
+
});
|
101
|
+
const api = (0, client_1.makeAPIClient)(payload.settings);
|
102
|
+
const { id, printable_view } = await api.createLabOrder(labOrder);
|
103
|
+
await onComplete({
|
104
|
+
data_points: {
|
105
|
+
labOrderId: String(id),
|
106
|
+
printableLabOrderView: printable_view,
|
107
|
+
},
|
108
|
+
});
|
109
|
+
}
|
110
|
+
catch (err) {
|
111
|
+
if (err instanceof zod_1.ZodError) {
|
112
|
+
const error = (0, zod_validation_error_1.fromZodError)(err);
|
113
|
+
await onError({
|
114
|
+
events: [
|
115
|
+
{
|
116
|
+
date: new Date().toISOString(),
|
117
|
+
text: { en: error.message },
|
118
|
+
error: {
|
119
|
+
category: 'WRONG_INPUT',
|
120
|
+
message: error.message,
|
121
|
+
},
|
122
|
+
},
|
123
|
+
],
|
124
|
+
});
|
125
|
+
}
|
126
|
+
else if (err instanceof axios_1.AxiosError) {
|
127
|
+
await onError({
|
128
|
+
events: [
|
129
|
+
{
|
130
|
+
date: new Date().toISOString(),
|
131
|
+
text: {
|
132
|
+
en: `${(_a = err.status) !== null && _a !== void 0 ? _a : '(no status code)'} Error: ${err.message}`,
|
133
|
+
},
|
134
|
+
error: {
|
135
|
+
category: 'SERVER_ERROR',
|
136
|
+
message: `${(_b = err.status) !== null && _b !== void 0 ? _b : '(no status code)'} Error: ${err.message}`,
|
137
|
+
},
|
138
|
+
},
|
139
|
+
],
|
140
|
+
});
|
141
|
+
}
|
142
|
+
else {
|
143
|
+
const message = err.message;
|
144
|
+
await onError({
|
145
|
+
events: [
|
146
|
+
{
|
147
|
+
date: new Date().toISOString(),
|
148
|
+
text: { en: message },
|
149
|
+
error: {
|
150
|
+
category: 'SERVER_ERROR',
|
151
|
+
message,
|
152
|
+
},
|
153
|
+
},
|
154
|
+
],
|
155
|
+
});
|
156
|
+
}
|
157
|
+
}
|
158
|
+
},
|
159
|
+
};
|
160
|
+
//# sourceMappingURL=createLabOrder.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"createLabOrder.js","sourceRoot":"","sources":["../../../../extensions/elation/actions/createLabOrder.ts"],"names":[],"mappings":"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"}
|
@@ -955,4 +955,105 @@ export declare const actions: {
|
|
955
955
|
required: true;
|
956
956
|
};
|
957
957
|
}, "letterId", never>;
|
958
|
+
createLabOrder: import("@awell-health/extensions-core").Action<{
|
959
|
+
patientId: {
|
960
|
+
id: string;
|
961
|
+
label: string;
|
962
|
+
description: string;
|
963
|
+
type: import("@awell-health/extensions-core").FieldType.NUMERIC;
|
964
|
+
required: true;
|
965
|
+
};
|
966
|
+
practiceId: {
|
967
|
+
id: string;
|
968
|
+
label: string;
|
969
|
+
description: string;
|
970
|
+
type: import("@awell-health/extensions-core").FieldType.NUMERIC;
|
971
|
+
required: true;
|
972
|
+
};
|
973
|
+
documentDate: {
|
974
|
+
id: string;
|
975
|
+
label: string;
|
976
|
+
description: string;
|
977
|
+
type: import("@awell-health/extensions-core").FieldType.DATE;
|
978
|
+
required: true;
|
979
|
+
};
|
980
|
+
orderingPhysicianId: {
|
981
|
+
id: string;
|
982
|
+
label: string;
|
983
|
+
description: string;
|
984
|
+
type: import("@awell-health/extensions-core").FieldType.NUMERIC;
|
985
|
+
required: true;
|
986
|
+
};
|
987
|
+
vendorId: {
|
988
|
+
id: string;
|
989
|
+
label: string;
|
990
|
+
description: string;
|
991
|
+
type: import("@awell-health/extensions-core").FieldType.NUMERIC;
|
992
|
+
required: false;
|
993
|
+
};
|
994
|
+
content: {
|
995
|
+
id: string;
|
996
|
+
label: string;
|
997
|
+
description: string;
|
998
|
+
type: import("@awell-health/extensions-core").FieldType.JSON;
|
999
|
+
required: false;
|
1000
|
+
};
|
1001
|
+
siteId: {
|
1002
|
+
id: string;
|
1003
|
+
label: string;
|
1004
|
+
description: string;
|
1005
|
+
type: import("@awell-health/extensions-core").FieldType.NUMERIC;
|
1006
|
+
required: false;
|
1007
|
+
};
|
1008
|
+
confidential: {
|
1009
|
+
id: string;
|
1010
|
+
label: string;
|
1011
|
+
description: string;
|
1012
|
+
type: import("@awell-health/extensions-core").FieldType.BOOLEAN;
|
1013
|
+
required: false;
|
1014
|
+
};
|
1015
|
+
}, {
|
1016
|
+
base_url: {
|
1017
|
+
key: string;
|
1018
|
+
label: string;
|
1019
|
+
obfuscated: false;
|
1020
|
+
description: string;
|
1021
|
+
required: true;
|
1022
|
+
};
|
1023
|
+
auth_url: {
|
1024
|
+
key: string;
|
1025
|
+
label: string;
|
1026
|
+
obfuscated: false;
|
1027
|
+
description: string;
|
1028
|
+
required: true;
|
1029
|
+
};
|
1030
|
+
client_id: {
|
1031
|
+
key: string;
|
1032
|
+
label: string;
|
1033
|
+
obfuscated: false;
|
1034
|
+
description: string;
|
1035
|
+
required: true;
|
1036
|
+
};
|
1037
|
+
client_secret: {
|
1038
|
+
key: string;
|
1039
|
+
label: string;
|
1040
|
+
obfuscated: true;
|
1041
|
+
description: string;
|
1042
|
+
required: true;
|
1043
|
+
};
|
1044
|
+
username: {
|
1045
|
+
key: string;
|
1046
|
+
label: string;
|
1047
|
+
obfuscated: false;
|
1048
|
+
description: string;
|
1049
|
+
required: true;
|
1050
|
+
};
|
1051
|
+
password: {
|
1052
|
+
key: string;
|
1053
|
+
label: string;
|
1054
|
+
obfuscated: true;
|
1055
|
+
description: string;
|
1056
|
+
required: true;
|
1057
|
+
};
|
1058
|
+
}, "labOrderId" | "printableLabOrderView", never>;
|
958
1059
|
};
|
@@ -13,6 +13,7 @@ const getNonVisitNote_1 = require("./getNonVisitNote");
|
|
13
13
|
const deleteNonVisitNote_1 = require("./deleteNonVisitNote");
|
14
14
|
const getPhysician_1 = require("./getPhysician");
|
15
15
|
const postLetter_1 = require("./postLetter");
|
16
|
+
const createLabOrder_1 = require("./createLabOrder");
|
16
17
|
exports.actions = {
|
17
18
|
getPatient: getPatient_1.getPatient,
|
18
19
|
createPatient: createPatient_1.createPatient,
|
@@ -26,5 +27,6 @@ exports.actions = {
|
|
26
27
|
getNonVisitNote: getNonVisitNote_1.getNonVisitNote,
|
27
28
|
deleteNonVisitNote: deleteNonVisitNote_1.deleteNonVisitNote,
|
28
29
|
postLetter: postLetter_1.postLetter,
|
30
|
+
createLabOrder: createLabOrder_1.createLabOrder,
|
29
31
|
};
|
30
32
|
//# sourceMappingURL=index.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../extensions/elation/actions/index.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,mDAA+C;AAC/C,mDAA+C;AAC/C,2DAAuD;AACvD,qDAAiD;AACjD,mDAA+C;AAC/C,6DAAyD;AACzD,4DAA4D;AAC5D,uDAAmD;AACnD,6DAAyD;AACzD,iDAA6C;AAC7C,6CAAyC;
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../extensions/elation/actions/index.ts"],"names":[],"mappings":";;;AAAA,6CAAyC;AACzC,mDAA+C;AAC/C,mDAA+C;AAC/C,2DAAuD;AACvD,qDAAiD;AACjD,mDAA+C;AAC/C,6DAAyD;AACzD,4DAA4D;AAC5D,uDAAmD;AACnD,6DAAyD;AACzD,iDAA6C;AAC7C,6CAAyC;AACzC,qDAAiD;AAEpC,QAAA,OAAO,GAAG;IACrB,UAAU,EAAV,uBAAU;IACV,aAAa,EAAb,6BAAa;IACb,aAAa,EAAb,6BAAa;IACb,iBAAiB,EAAjB,qCAAiB;IACjB,cAAc,EAAd,+BAAc;IACd,YAAY,EAAZ,2BAAY;IACZ,aAAa,EAAb,6BAAa;IACb,kBAAkB,EAAlB,uCAAkB;IAClB,4FAA4F;IAC5F,eAAe,EAAf,iCAAe;IACf,kBAAkB,EAAlB,uCAAkB;IAClB,UAAU,EAAV,uBAAU;IACV,cAAc,EAAd,+BAAc;CACf,CAAA"}
|
@@ -7,6 +7,7 @@ import { type Subscription, type SubscriptionRequest } from './types/subscriptio
|
|
7
7
|
import { type PhysicianResponse } from './types/physician';
|
8
8
|
import { type NonVisitNoteInput, type NonVisitNoteResponse } from './types/nonVisitNote';
|
9
9
|
import { type PostLetterInput, type PostLetterResponse } from './types/letter';
|
10
|
+
import type { CreateLabOrderInput, CreateLabOrderResponse } from './types/labOrder';
|
10
11
|
export declare class ElationDataWrapper extends DataWrapper {
|
11
12
|
getAppointment(id: number): Promise<AppointmentResponse>;
|
12
13
|
createAppointment(obj: Partial<AppointmentInput>): Promise<AppointmentResponse>;
|
@@ -29,6 +30,7 @@ export declare class ElationDataWrapper extends DataWrapper {
|
|
29
30
|
updateNonVisitNote(id: number, obj: Partial<NonVisitNoteInput>): Promise<NonVisitNoteResponse>;
|
30
31
|
deleteNonVisitNote(id: number): Promise<void>;
|
31
32
|
postLetter(obj: PostLetterInput): Promise<PostLetterResponse>;
|
33
|
+
createLabOrder(obj: CreateLabOrderInput): Promise<CreateLabOrderResponse>;
|
32
34
|
}
|
33
35
|
interface ElationAPIClientConstructorProps {
|
34
36
|
authUrl: string;
|
@@ -59,6 +61,7 @@ export declare class ElationAPIClient extends APIClient<ElationDataWrapper> {
|
|
59
61
|
updateNonVisitNote(id: number, obj: Partial<NonVisitNoteInput>): Promise<NonVisitNoteResponse>;
|
60
62
|
deleteNonVisitNote(id: number): Promise<void>;
|
61
63
|
postNewLetter(obj: PostLetterInput): Promise<PostLetterResponse>;
|
64
|
+
createLabOrder(obj: CreateLabOrderInput): Promise<CreateLabOrderResponse>;
|
62
65
|
}
|
63
66
|
export declare const makeAPIClient: (payloadSettings: Record<keyof typeof settings, string | undefined>) => ElationAPIClient;
|
64
67
|
export {};
|
@@ -121,6 +121,13 @@ class ElationDataWrapper extends extensions_core_1.DataWrapper {
|
|
121
121
|
data: obj,
|
122
122
|
});
|
123
123
|
}
|
124
|
+
async createLabOrder(obj) {
|
125
|
+
return await this.Request({
|
126
|
+
method: 'POST',
|
127
|
+
url: '/lab_orders',
|
128
|
+
data: obj,
|
129
|
+
});
|
130
|
+
}
|
124
131
|
}
|
125
132
|
exports.ElationDataWrapper = ElationDataWrapper;
|
126
133
|
class ElationAPIClient extends extensions_core_1.APIClient {
|
@@ -184,6 +191,9 @@ class ElationAPIClient extends extensions_core_1.APIClient {
|
|
184
191
|
async postNewLetter(obj) {
|
185
192
|
return await this.FetchData(async (dw) => await dw.postLetter(obj));
|
186
193
|
}
|
194
|
+
async createLabOrder(obj) {
|
195
|
+
return await this.FetchData(async (dw) => await dw.createLabOrder(obj));
|
196
|
+
}
|
187
197
|
}
|
188
198
|
exports.ElationAPIClient = ElationAPIClient;
|
189
199
|
const makeAPIClient = (payloadSettings) => {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../extensions/elation/client.ts"],"names":[],"mappings":";;;AAAA,mEAMsC;AAgBtC,4DAA0D;AAC1D,mCAA6C;
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../../extensions/elation/client.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,7 @@
|
|
1
|
+
import { type z } from 'zod';
|
2
|
+
import { type labOrderSchema } from '../validation/labOrder.zod';
|
3
|
+
export type CreateLabOrderInput = z.infer<typeof labOrderSchema>;
|
4
|
+
export interface CreateLabOrderResponse extends CreateLabOrderInput {
|
5
|
+
id: number;
|
6
|
+
printable_view: string;
|
7
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"labOrder.js","sourceRoot":"","sources":["../../../../extensions/elation/types/labOrder.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
import * as z from 'zod';
|
2
|
+
export declare const labOrderSchema: z.ZodObject<{
|
3
|
+
practice: z.ZodNumber;
|
4
|
+
patient: z.ZodNumber;
|
5
|
+
document_date: z.ZodEffects<z.ZodDate, string, Date>;
|
6
|
+
ordering_physician: z.ZodNumber;
|
7
|
+
vendor: z.ZodOptional<z.ZodNumber>;
|
8
|
+
content: z.ZodEffects<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodNullable<z.ZodOptional<z.ZodString>>, any, string | null | undefined>, any, string | null | undefined>, z.ZodUndefined]>, any, string | null | undefined>;
|
9
|
+
site: z.ZodOptional<z.ZodNumber>;
|
10
|
+
confidential: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
11
|
+
}, "strict", z.ZodTypeAny, {
|
12
|
+
patient: number;
|
13
|
+
practice: number;
|
14
|
+
document_date: string;
|
15
|
+
ordering_physician: number;
|
16
|
+
confidential: boolean;
|
17
|
+
vendor?: number | undefined;
|
18
|
+
content?: any;
|
19
|
+
site?: number | undefined;
|
20
|
+
}, {
|
21
|
+
patient: number;
|
22
|
+
practice: number;
|
23
|
+
document_date: Date;
|
24
|
+
ordering_physician: number;
|
25
|
+
vendor?: number | undefined;
|
26
|
+
content?: string | null | undefined;
|
27
|
+
site?: number | undefined;
|
28
|
+
confidential?: boolean | undefined;
|
29
|
+
}>;
|
@@ -0,0 +1,68 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
3
|
+
if (k2 === undefined) k2 = k;
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
7
|
+
}
|
8
|
+
Object.defineProperty(o, k2, desc);
|
9
|
+
}) : (function(o, m, k, k2) {
|
10
|
+
if (k2 === undefined) k2 = k;
|
11
|
+
o[k2] = m[k];
|
12
|
+
}));
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
15
|
+
}) : function(o, v) {
|
16
|
+
o["default"] = v;
|
17
|
+
});
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
19
|
+
if (mod && mod.__esModule) return mod;
|
20
|
+
var result = {};
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
22
|
+
__setModuleDefault(result, mod);
|
23
|
+
return result;
|
24
|
+
};
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
26
|
+
exports.labOrderSchema = void 0;
|
27
|
+
const extensions_core_1 = require("@awell-health/extensions-core");
|
28
|
+
const z = __importStar(require("zod"));
|
29
|
+
const testSchema = z.object({
|
30
|
+
id: extensions_core_1.NumericIdSchema,
|
31
|
+
});
|
32
|
+
const contentSchema = z.object({
|
33
|
+
patient_instructions: z.string().optional(),
|
34
|
+
test_center_notes: z.string().optional(),
|
35
|
+
tests: z.array(testSchema).nonempty(),
|
36
|
+
});
|
37
|
+
const jsonParseableContentSchema = z
|
38
|
+
.string()
|
39
|
+
.optional()
|
40
|
+
.nullable()
|
41
|
+
.transform((val) => {
|
42
|
+
if (typeof val === 'string' && val.trim() !== '') {
|
43
|
+
try {
|
44
|
+
return JSON.parse(val);
|
45
|
+
}
|
46
|
+
catch (_a) {
|
47
|
+
throw new Error('Validation error: The content field must be JSON parseable and an object after JSON parsing.');
|
48
|
+
}
|
49
|
+
}
|
50
|
+
return val;
|
51
|
+
})
|
52
|
+
.refine((data) => typeof data === 'object')
|
53
|
+
.or(z.undefined());
|
54
|
+
exports.labOrderSchema = z
|
55
|
+
.object({
|
56
|
+
practice: extensions_core_1.NumericIdSchema,
|
57
|
+
patient: extensions_core_1.NumericIdSchema,
|
58
|
+
document_date: extensions_core_1.DateOnlySchema,
|
59
|
+
ordering_physician: extensions_core_1.NumericIdSchema,
|
60
|
+
vendor: extensions_core_1.NumericIdSchema.optional(),
|
61
|
+
content: jsonParseableContentSchema.refine((data) => contentSchema.safeParse(data).success, {
|
62
|
+
message: 'Validation error: The content field must conform to the Lab Order Content schema. See https://docs.elationhealth.com/reference/the-lab-order-content-object',
|
63
|
+
}),
|
64
|
+
site: extensions_core_1.NumericIdSchema.optional(),
|
65
|
+
confidential: z.boolean().optional().default(false),
|
66
|
+
})
|
67
|
+
.strict();
|
68
|
+
//# sourceMappingURL=labOrder.zod.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"labOrder.zod.js","sourceRoot":"","sources":["../../../../extensions/elation/validation/labOrder.zod.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mEAA+E;AAC/E,uCAAwB;AAExB,MAAM,UAAU,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1B,EAAE,EAAE,iCAAe;CACpB,CAAC,CAAA;AAEF,MAAM,aAAa,GAAG,CAAC,CAAC,MAAM,CAAC;IAC7B,oBAAoB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC3C,iBAAiB,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACxC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE;CACtC,CAAC,CAAA;AAEF,MAAM,0BAA0B,GAAG,CAAC;KACjC,MAAM,EAAE;KACR,QAAQ,EAAE;KACV,QAAQ,EAAE;KACV,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE;IACjB,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAChD,IAAI;YACF,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;SACvB;QAAC,WAAM;YACN,MAAM,IAAI,KAAK,CACb,8FAA8F,CAC/F,CAAA;SACF;KACF;IACD,OAAO,GAAG,CAAA;AACZ,CAAC,CAAC;KACD,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,IAAI,KAAK,QAAQ,CAAC;KAC1C,EAAE,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAA;AAEP,QAAA,cAAc,GAAG,CAAC;KAC5B,MAAM,CAAC;IACN,QAAQ,EAAE,iCAAe;IACzB,OAAO,EAAE,iCAAe;IACxB,aAAa,EAAE,gCAAc;IAC7B,kBAAkB,EAAE,iCAAe;IACnC,MAAM,EAAE,iCAAe,CAAC,QAAQ,EAAE;IAClC,OAAO,EAAE,0BAA0B,CAAC,MAAM,CACxC,CAAC,IAAI,EAAE,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,OAAO,EAC/C;QACE,OAAO,EACL,6JAA6J;KAChK,CACF;IACD,IAAI,EAAE,iCAAe,CAAC,QAAQ,EAAE;IAChC,YAAY,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE,CAAC,OAAO,CAAC,KAAK,CAAC;CACpD,CAAC;KACD,MAAM,EAAE,CAAA"}
|