@awell-health/awell-extensions 1.0.102 → 1.0.104

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.
Files changed (73) hide show
  1. package/dist/extensions/index.js +2 -0
  2. package/dist/extensions/index.js.map +1 -1
  3. package/dist/extensions/markdown.json +5 -1
  4. package/dist/extensions/wellinks/actions/createFlourishCustomer/config/fields.d.ts +58 -0
  5. package/dist/extensions/wellinks/actions/createFlourishCustomer/config/fields.js +56 -0
  6. package/dist/extensions/wellinks/actions/createFlourishCustomer/config/fields.js.map +1 -0
  7. package/dist/extensions/wellinks/actions/createFlourishCustomer/config/index.d.ts +2 -0
  8. package/dist/extensions/wellinks/actions/createFlourishCustomer/config/index.js +9 -0
  9. package/dist/extensions/wellinks/actions/createFlourishCustomer/config/index.js.map +1 -0
  10. package/dist/extensions/wellinks/actions/createFlourishCustomer/config/settings.d.ts +35 -0
  11. package/dist/extensions/wellinks/actions/createFlourishCustomer/config/settings.js +17 -0
  12. package/dist/extensions/wellinks/actions/createFlourishCustomer/config/settings.js.map +1 -0
  13. package/dist/extensions/wellinks/actions/createFlourishCustomer/createFlourishCustomer.d.ts +11 -0
  14. package/dist/extensions/wellinks/actions/createFlourishCustomer/createFlourishCustomer.js +56 -0
  15. package/dist/extensions/wellinks/actions/createFlourishCustomer/createFlourishCustomer.js.map +1 -0
  16. package/dist/extensions/wellinks/actions/createFlourishCustomer/createFlourishCustomer.test.d.ts +1 -0
  17. package/dist/extensions/wellinks/actions/createFlourishCustomer/createFlourishCustomer.test.js +53 -0
  18. package/dist/extensions/wellinks/actions/createFlourishCustomer/createFlourishCustomer.test.js.map +1 -0
  19. package/dist/extensions/wellinks/actions/index.d.ts +108 -0
  20. package/dist/extensions/wellinks/actions/index.js +3 -1
  21. package/dist/extensions/wellinks/actions/index.js.map +1 -1
  22. package/dist/extensions/wellinks/actions/submitPamSurvey/config/fields.js +2 -2
  23. package/dist/extensions/wellinks/actions/submitPamSurvey/config/fields.js.map +1 -1
  24. package/dist/extensions/wellinks/actions/submitPamSurvey/submitPamSurvey.test.js +2 -2
  25. package/dist/extensions/wellinks/actions/submitPamSurvey/submitPamSurvey.test.js.map +1 -1
  26. package/dist/extensions/wellinks/api/clients/wellinksFlourishClient.d.ts +1 -0
  27. package/dist/extensions/wellinks/api/clients/wellinksFlourishClient.js +44 -0
  28. package/dist/extensions/wellinks/api/clients/wellinksFlourishClient.js.map +1 -1
  29. package/dist/extensions/wellinks/api/test/wellinksFlourishClient.test.js +161 -105
  30. package/dist/extensions/wellinks/api/test/wellinksFlourishClient.test.js.map +1 -1
  31. package/dist/extensions/zusHealth/client/client.d.ts +12 -0
  32. package/dist/extensions/zusHealth/client/client.js +42 -0
  33. package/dist/extensions/zusHealth/client/client.js.map +1 -0
  34. package/dist/extensions/zusHealth/client/index.d.ts +1 -0
  35. package/dist/extensions/zusHealth/client/index.js +6 -0
  36. package/dist/extensions/zusHealth/client/index.js.map +1 -0
  37. package/dist/extensions/zusHealth/client/type.d.ts +6 -0
  38. package/dist/extensions/zusHealth/client/type.js +3 -0
  39. package/dist/extensions/zusHealth/client/type.js.map +1 -0
  40. package/dist/extensions/zusHealth/index.d.ts +2 -0
  41. package/dist/extensions/zusHealth/index.js +20 -0
  42. package/dist/extensions/zusHealth/index.js.map +1 -0
  43. package/dist/extensions/zusHealth/settings.d.ts +37 -0
  44. package/dist/extensions/zusHealth/settings.js +41 -0
  45. package/dist/extensions/zusHealth/settings.js.map +1 -0
  46. package/dist/extensions/zusHealth/utils/error.d.ts +6 -0
  47. package/dist/extensions/zusHealth/utils/error.js +53 -0
  48. package/dist/extensions/zusHealth/utils/error.js.map +1 -0
  49. package/dist/extensions/zusHealth/utils/index.d.ts +1 -0
  50. package/dist/extensions/zusHealth/utils/index.js +18 -0
  51. package/dist/extensions/zusHealth/utils/index.js.map +1 -0
  52. package/dist/extensions/zusHealth/validation/encounter.zod.d.ts +2 -0
  53. package/dist/extensions/zusHealth/validation/encounter.zod.js +9 -0
  54. package/dist/extensions/zusHealth/validation/encounter.zod.js.map +1 -0
  55. package/dist/extensions/zusHealth/validation/index.d.ts +2 -0
  56. package/dist/extensions/zusHealth/validation/index.js +19 -0
  57. package/dist/extensions/zusHealth/validation/index.js.map +1 -0
  58. package/dist/extensions/zusHealth/validation/settings.zod.d.ts +20 -0
  59. package/dist/extensions/zusHealth/validation/settings.zod.js +22 -0
  60. package/dist/extensions/zusHealth/validation/settings.zod.js.map +1 -0
  61. package/dist/extensions/zusHealth/webhooks/index.d.ts +3 -0
  62. package/dist/extensions/zusHealth/webhooks/index.js +7 -0
  63. package/dist/extensions/zusHealth/webhooks/index.js.map +1 -0
  64. package/dist/extensions/zusHealth/webhooks/patientAdmitted.d.ts +43 -0
  65. package/dist/extensions/zusHealth/webhooks/patientAdmitted.js +93 -0
  66. package/dist/extensions/zusHealth/webhooks/patientAdmitted.js.map +1 -0
  67. package/dist/extensions/zusHealth/webhooks/patientDischarged.d.ts +47 -0
  68. package/dist/extensions/zusHealth/webhooks/patientDischarged.js +98 -0
  69. package/dist/extensions/zusHealth/webhooks/patientDischarged.js.map +1 -0
  70. package/dist/extensions/zusHealth/webhooks/types.d.ts +28 -0
  71. package/dist/extensions/zusHealth/webhooks/types.js +22 -0
  72. package/dist/extensions/zusHealth/webhooks/types.js.map +1 -0
  73. package/package.json +1 -1
@@ -0,0 +1,53 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.parseUnknowError = exports.parseAxiosError = exports.parseZodError = exports.isAxiosError = exports.isZodError = void 0;
4
+ const axios_1 = require("axios");
5
+ const zod_1 = require("zod");
6
+ const zod_validation_error_1 = require("zod-validation-error");
7
+ const isZodError = (error) => {
8
+ return error instanceof zod_1.ZodError;
9
+ };
10
+ exports.isZodError = isZodError;
11
+ const isAxiosError = (error) => {
12
+ return error instanceof axios_1.AxiosError;
13
+ };
14
+ exports.isAxiosError = isAxiosError;
15
+ const parseZodError = (error) => {
16
+ const parsedError = (0, zod_validation_error_1.fromZodError)(error);
17
+ return {
18
+ date: new Date().toISOString(),
19
+ text: { en: parsedError.message },
20
+ error: {
21
+ category: 'SERVER_ERROR',
22
+ message: parsedError.message,
23
+ },
24
+ };
25
+ };
26
+ exports.parseZodError = parseZodError;
27
+ const parseAxiosError = (error) => {
28
+ var _a, _b;
29
+ return {
30
+ date: new Date().toISOString(),
31
+ text: {
32
+ en: `${(_a = error.status) !== null && _a !== void 0 ? _a : '(no status code)'} Error: ${error.message}`,
33
+ },
34
+ error: {
35
+ category: 'BAD_REQUEST',
36
+ message: `${(_b = error.status) !== null && _b !== void 0 ? _b : '(no status code)'} Error: ${error.message}`,
37
+ },
38
+ };
39
+ };
40
+ exports.parseAxiosError = parseAxiosError;
41
+ const parseUnknowError = (error) => {
42
+ const message = error.message;
43
+ return {
44
+ date: new Date().toISOString(),
45
+ text: { en: message },
46
+ error: {
47
+ category: 'SERVER_ERROR',
48
+ message,
49
+ },
50
+ };
51
+ };
52
+ exports.parseUnknowError = parseUnknowError;
53
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error.js","sourceRoot":"","sources":["../../../../extensions/zusHealth/utils/error.ts"],"names":[],"mappings":";;;AAAA,iCAAkC;AAClC,6BAA8B;AAC9B,+DAAmD;AAE5C,MAAM,UAAU,GAAG,CAAC,KAAU,EAAW,EAAE;IAChD,OAAO,KAAK,YAAY,cAAQ,CAAA;AAClC,CAAC,CAAA;AAFY,QAAA,UAAU,cAEtB;AAEM,MAAM,YAAY,GAAG,CAAC,KAAU,EAAW,EAAE;IAClD,OAAO,KAAK,YAAY,kBAAU,CAAA;AACpC,CAAC,CAAA;AAFY,QAAA,YAAY,gBAExB;AAEM,MAAM,aAAa,GAAG,CAAC,KAAU,EAAO,EAAE;IAC/C,MAAM,WAAW,GAAG,IAAA,mCAAY,EAAC,KAAK,CAAC,CAAA;IACvC,OAAO;QACL,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC9B,IAAI,EAAE,EAAE,EAAE,EAAE,WAAW,CAAC,OAAO,EAAE;QACjC,KAAK,EAAE;YACL,QAAQ,EAAE,cAAc;YACxB,OAAO,EAAE,WAAW,CAAC,OAAO;SAC7B;KACF,CAAA;AACH,CAAC,CAAA;AAVY,QAAA,aAAa,iBAUzB;AAEM,MAAM,eAAe,GAAG,CAAC,KAAiB,EAAO,EAAE;;IACxD,OAAO;QACL,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC9B,IAAI,EAAE;YACJ,EAAE,EAAE,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,kBAAkB,WAAW,KAAK,CAAC,OAAO,EAAE;SACpE;QACD,KAAK,EAAE;YACL,QAAQ,EAAE,aAAa;YACvB,OAAO,EAAE,GAAG,MAAA,KAAK,CAAC,MAAM,mCAAI,kBAAkB,WAAW,KAAK,CAAC,OAAO,EAAE;SACzE;KACF,CAAA;AACH,CAAC,CAAA;AAXY,QAAA,eAAe,mBAW3B;AAEM,MAAM,gBAAgB,GAAG,CAAC,KAAY,EAAO,EAAE;IACpD,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAA;IAC7B,OAAO;QACL,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QAC9B,IAAI,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE;QACrB,KAAK,EAAE;YACL,QAAQ,EAAE,cAAc;YACxB,OAAO;SACR;KACF,CAAA;AACH,CAAC,CAAA;AAVY,QAAA,gBAAgB,oBAU5B"}
@@ -0,0 +1 @@
1
+ export * from './error';
@@ -0,0 +1,18 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./error"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../extensions/zusHealth/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAuB"}
@@ -0,0 +1,2 @@
1
+ import z from 'zod';
2
+ export declare const startsWithEncounter: z.ZodString;
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.startsWithEncounter = void 0;
7
+ const zod_1 = __importDefault(require("zod"));
8
+ exports.startsWithEncounter = zod_1.default.string().startsWith('Encounter/');
9
+ //# sourceMappingURL=encounter.zod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encounter.zod.js","sourceRoot":"","sources":["../../../../extensions/zusHealth/validation/encounter.zod.ts"],"names":[],"mappings":";;;;;;AAAA,8CAAmB;AAEN,QAAA,mBAAmB,GAAG,aAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA"}
@@ -0,0 +1,2 @@
1
+ export * from './settings.zod';
2
+ export * from './encounter.zod';
@@ -0,0 +1,19 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./settings.zod"), exports);
18
+ __exportStar(require("./encounter.zod"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../extensions/zusHealth/validation/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,iDAA8B;AAC9B,kDAA+B"}
@@ -0,0 +1,20 @@
1
+ import { z } from 'zod';
2
+ export declare const settingsSchema: z.ZodObject<{
3
+ base_url: z.ZodString;
4
+ auth_url: z.ZodString;
5
+ client_id: z.ZodString;
6
+ client_secret: z.ZodString;
7
+ audience: z.ZodString;
8
+ }, "strip", z.ZodTypeAny, {
9
+ auth_url: string;
10
+ audience: string;
11
+ client_id: string;
12
+ client_secret: string;
13
+ base_url: string;
14
+ }, {
15
+ auth_url: string;
16
+ audience: string;
17
+ client_id: string;
18
+ client_secret: string;
19
+ base_url: string;
20
+ }>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.settingsSchema = void 0;
4
+ const zod_1 = require("zod");
5
+ exports.settingsSchema = zod_1.z.object({
6
+ base_url: zod_1.z
7
+ .string({ errorMap: () => ({ message: 'Missing base URL' }) })
8
+ .min(1),
9
+ auth_url: zod_1.z
10
+ .string({ errorMap: () => ({ message: 'Missing auth URL' }) })
11
+ .min(1),
12
+ client_id: zod_1.z
13
+ .string({ errorMap: () => ({ message: 'Missing client ID' }) })
14
+ .min(1),
15
+ client_secret: zod_1.z
16
+ .string({ errorMap: () => ({ message: 'Missing client secret' }) })
17
+ .min(1),
18
+ audience: zod_1.z
19
+ .string({ errorMap: () => ({ message: 'Missing audience' }) })
20
+ .min(1),
21
+ });
22
+ //# sourceMappingURL=settings.zod.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"settings.zod.js","sourceRoot":"","sources":["../../../../extensions/zusHealth/validation/settings.zod.ts"],"names":[],"mappings":";;;AAAA,6BAAuB;AAEV,QAAA,cAAc,GAAG,OAAC,CAAC,MAAM,CAAC;IACrC,QAAQ,EAAE,OAAC;SACR,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;SAC7D,GAAG,CAAC,CAAC,CAAC;IACT,QAAQ,EAAE,OAAC;SACR,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;SAC7D,GAAG,CAAC,CAAC,CAAC;IACT,SAAS,EAAE,OAAC;SACT,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,mBAAmB,EAAE,CAAC,EAAE,CAAC;SAC9D,GAAG,CAAC,CAAC,CAAC;IACT,aAAa,EAAE,OAAC;SACb,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,uBAAuB,EAAE,CAAC,EAAE,CAAC;SAClE,GAAG,CAAC,CAAC,CAAC;IACT,QAAQ,EAAE,OAAC;SACR,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;SAC7D,GAAG,CAAC,CAAC,CAAC;CACV,CAAC,CAAA"}
@@ -0,0 +1,3 @@
1
+ export type { PatientAdmitted } from './patientAdmitted';
2
+ export type { PatientDischarged } from './patientDischarged';
3
+ export declare const webhooks: import("@awell-health/extensions-core").Webhook<"eventType" | "resourceId" | "UPID" | "ownerId" | "encounterStatus" | "encounterStart" | "HL7EventType" | "HL7EventTypeDescription" | "HL7EventTypeFull", import("./types").AdtEventWebhookPayload>[];
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.webhooks = void 0;
4
+ const patientAdmitted_1 = require("./patientAdmitted");
5
+ const patientDischarged_1 = require("./patientDischarged");
6
+ exports.webhooks = [patientAdmitted_1.patientAdmitted, patientDischarged_1.patientDischarged];
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../extensions/zusHealth/webhooks/index.ts"],"names":[],"mappings":";;;AAAA,uDAAmD;AACnD,2DAAuD;AAI1C,QAAA,QAAQ,GAAG,CAAC,iCAAe,EAAE,qCAAiB,CAAC,CAAA"}
@@ -0,0 +1,43 @@
1
+ import { type Webhook } from '@awell-health/extensions-core';
2
+ import { type AdtEventWebhookPayload } from './types';
3
+ declare const dataPoints: {
4
+ resourceId: {
5
+ key: string;
6
+ valueType: "string";
7
+ };
8
+ UPID: {
9
+ key: string;
10
+ valueType: "string";
11
+ };
12
+ ownerId: {
13
+ key: string;
14
+ valueType: "string";
15
+ };
16
+ eventType: {
17
+ key: string;
18
+ valueType: "string";
19
+ };
20
+ encounterStatus: {
21
+ key: string;
22
+ valueType: "string";
23
+ };
24
+ encounterStart: {
25
+ key: string;
26
+ valueType: "date";
27
+ };
28
+ HL7EventType: {
29
+ key: string;
30
+ valueType: "string";
31
+ };
32
+ HL7EventTypeDescription: {
33
+ key: string;
34
+ valueType: "string";
35
+ };
36
+ HL7EventTypeFull: {
37
+ key: string;
38
+ valueType: "string";
39
+ };
40
+ };
41
+ export declare const patientAdmitted: Webhook<keyof typeof dataPoints, AdtEventWebhookPayload>;
42
+ export type PatientAdmitted = typeof patientAdmitted;
43
+ export {};
@@ -0,0 +1,93 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.patientAdmitted = void 0;
4
+ const lodash_1 = require("lodash");
5
+ const types_1 = require("./types");
6
+ const client_1 = require("../client");
7
+ const validation_1 = require("../validation");
8
+ const utils_1 = require("../utils");
9
+ const dataPoints = {
10
+ resourceId: {
11
+ key: 'resourceId',
12
+ valueType: 'string',
13
+ },
14
+ UPID: {
15
+ key: 'UPID',
16
+ valueType: 'string',
17
+ },
18
+ ownerId: {
19
+ key: 'ownerId',
20
+ valueType: 'string',
21
+ },
22
+ eventType: {
23
+ key: 'eventType',
24
+ valueType: 'string',
25
+ },
26
+ encounterStatus: {
27
+ key: 'encounterStatus',
28
+ valueType: 'string',
29
+ },
30
+ encounterStart: {
31
+ key: 'encounterStart',
32
+ valueType: 'date',
33
+ },
34
+ HL7EventType: {
35
+ key: 'HL7EventType',
36
+ valueType: 'string',
37
+ },
38
+ HL7EventTypeDescription: {
39
+ key: 'HL7EventTypeDescription',
40
+ valueType: 'string',
41
+ },
42
+ HL7EventTypeFull: {
43
+ key: 'HL7EventTypeFull',
44
+ valueType: 'string',
45
+ },
46
+ };
47
+ exports.patientAdmitted = {
48
+ key: 'patientAdmitted',
49
+ dataPoints,
50
+ onWebhookReceived: async ({ payload, settings }, onSuccess, onError) => {
51
+ try {
52
+ let { resourceId } = payload;
53
+ if ((0, lodash_1.isNil)(resourceId)) {
54
+ await onError({});
55
+ }
56
+ resourceId = validation_1.startsWithEncounter.parse(payload.resourceId);
57
+ const api = (0, client_1.makeAPIClient)(settings);
58
+ const resource = await api.getResource(resourceId);
59
+ if (resource.status === types_1.EncounterStatus.InProgress &&
60
+ !(0, lodash_1.isNil)(resource.period.start)) {
61
+ await onSuccess({
62
+ data_points: {
63
+ resourceId,
64
+ UPID: payload.resource.UPID,
65
+ ownerId: payload.ownerId,
66
+ encounterStatus: resource.status,
67
+ encounterStart: resource.period.start,
68
+ eventType: types_1.EncounterStatus.Admitted,
69
+ HL7EventType: types_1.HL7EventType.A01.code,
70
+ HL7EventTypeFull: types_1.HL7EventType.A01.fullCode,
71
+ HL7EventTypeDescription: types_1.HL7EventType.A01.description,
72
+ },
73
+ });
74
+ }
75
+ }
76
+ catch (error) {
77
+ let parsedError;
78
+ if ((0, utils_1.isZodError)(error)) {
79
+ parsedError = (0, utils_1.parseZodError)(error);
80
+ }
81
+ else if ((0, utils_1.isAxiosError)(error)) {
82
+ parsedError = (0, utils_1.parseAxiosError)(error);
83
+ }
84
+ else {
85
+ parsedError = (0, utils_1.parseUnknowError)(error);
86
+ }
87
+ await onError({
88
+ events: [parsedError],
89
+ });
90
+ }
91
+ },
92
+ };
93
+ //# sourceMappingURL=patientAdmitted.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patientAdmitted.js","sourceRoot":"","sources":["../../../../extensions/zusHealth/webhooks/patientAdmitted.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ import { type Webhook } from '@awell-health/extensions-core';
2
+ import { type AdtEventWebhookPayload } from './types';
3
+ declare const dataPoints: {
4
+ resourceId: {
5
+ key: string;
6
+ valueType: "string";
7
+ };
8
+ UPID: {
9
+ key: string;
10
+ valueType: "string";
11
+ };
12
+ ownerId: {
13
+ key: string;
14
+ valueType: "string";
15
+ };
16
+ eventType: {
17
+ key: string;
18
+ valueType: "string";
19
+ };
20
+ encounterStatus: {
21
+ key: string;
22
+ valueType: "string";
23
+ };
24
+ encounterStart: {
25
+ key: string;
26
+ valueType: "date";
27
+ };
28
+ encounterEnd: {
29
+ key: string;
30
+ valueType: "date";
31
+ };
32
+ HL7EventType: {
33
+ key: string;
34
+ valueType: "string";
35
+ };
36
+ HL7EventTypeDescription: {
37
+ key: string;
38
+ valueType: "string";
39
+ };
40
+ HL7EventTypeFull: {
41
+ key: string;
42
+ valueType: "string";
43
+ };
44
+ };
45
+ export declare const patientDischarged: Webhook<keyof typeof dataPoints, AdtEventWebhookPayload>;
46
+ export type PatientDischarged = typeof patientDischarged;
47
+ export {};
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.patientDischarged = void 0;
4
+ const lodash_1 = require("lodash");
5
+ const types_1 = require("./types");
6
+ const client_1 = require("../client");
7
+ const validation_1 = require("../validation");
8
+ const utils_1 = require("../utils");
9
+ const dataPoints = {
10
+ resourceId: {
11
+ key: 'resourceId',
12
+ valueType: 'string',
13
+ },
14
+ UPID: {
15
+ key: 'UPID',
16
+ valueType: 'string',
17
+ },
18
+ ownerId: {
19
+ key: 'ownerId',
20
+ valueType: 'string',
21
+ },
22
+ eventType: {
23
+ key: 'eventType',
24
+ valueType: 'string',
25
+ },
26
+ encounterStatus: {
27
+ key: 'encounterStatus',
28
+ valueType: 'string',
29
+ },
30
+ encounterStart: {
31
+ key: 'encounterStart',
32
+ valueType: 'date',
33
+ },
34
+ encounterEnd: {
35
+ key: 'encounterEnd',
36
+ valueType: 'date',
37
+ },
38
+ HL7EventType: {
39
+ key: 'HL7EventType',
40
+ valueType: 'string',
41
+ },
42
+ HL7EventTypeDescription: {
43
+ key: 'HL7EventTypeDescription',
44
+ valueType: 'string',
45
+ },
46
+ HL7EventTypeFull: {
47
+ key: 'HL7EventTypeFull',
48
+ valueType: 'string',
49
+ },
50
+ };
51
+ exports.patientDischarged = {
52
+ key: 'patientDischarged',
53
+ dataPoints,
54
+ onWebhookReceived: async ({ payload, settings }, onSuccess, onError) => {
55
+ try {
56
+ let { resourceId } = payload;
57
+ if ((0, lodash_1.isNil)(resourceId)) {
58
+ await onError({});
59
+ }
60
+ resourceId = validation_1.startsWithEncounter.parse(resourceId);
61
+ const api = (0, client_1.makeAPIClient)(settings);
62
+ const resource = await api.getResource(resourceId);
63
+ if (resource.status === types_1.EncounterStatus.Discharged &&
64
+ !(0, lodash_1.isNil)(resource.period.end)) {
65
+ await onSuccess({
66
+ data_points: {
67
+ resourceId,
68
+ UPID: payload.resource.UPID,
69
+ ownerId: payload.ownerId,
70
+ eventType: types_1.EncounterStatus.Discharged,
71
+ encounterStatus: resource.status,
72
+ encounterStart: resource.period.start,
73
+ encounterEnd: resource.period.end,
74
+ HL7EventType: types_1.HL7EventType.A03.code,
75
+ HL7EventTypeFull: types_1.HL7EventType.A03.fullCode,
76
+ HL7EventTypeDescription: types_1.HL7EventType.A03.description,
77
+ },
78
+ });
79
+ }
80
+ }
81
+ catch (error) {
82
+ let parsedError;
83
+ if ((0, utils_1.isZodError)(error)) {
84
+ parsedError = (0, utils_1.parseZodError)(error);
85
+ }
86
+ else if ((0, utils_1.isAxiosError)(error)) {
87
+ parsedError = (0, utils_1.parseAxiosError)(error);
88
+ }
89
+ else {
90
+ parsedError = (0, utils_1.parseUnknowError)(error);
91
+ }
92
+ await onError({
93
+ events: [parsedError],
94
+ });
95
+ }
96
+ },
97
+ };
98
+ //# sourceMappingURL=patientDischarged.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"patientDischarged.js","sourceRoot":"","sources":["../../../../extensions/zusHealth/webhooks/patientDischarged.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ export interface AdtEventWebhookPayload {
2
+ message_id: string;
3
+ source: string;
4
+ time: string;
5
+ resourceId: string;
6
+ ownerId: string;
7
+ resourceIncluded: boolean;
8
+ resource: {
9
+ UPID: string;
10
+ };
11
+ }
12
+ export declare enum EncounterStatus {
13
+ Admitted = "admitted",
14
+ Discharged = "discharged",
15
+ InProgress = "in-progress"
16
+ }
17
+ export declare const HL7EventType: {
18
+ A01: {
19
+ code: string;
20
+ description: string;
21
+ fullCode: string;
22
+ };
23
+ A03: {
24
+ code: string;
25
+ description: string;
26
+ fullCode: string;
27
+ };
28
+ };
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.HL7EventType = exports.EncounterStatus = void 0;
4
+ var EncounterStatus;
5
+ (function (EncounterStatus) {
6
+ EncounterStatus["Admitted"] = "admitted";
7
+ EncounterStatus["Discharged"] = "discharged";
8
+ EncounterStatus["InProgress"] = "in-progress";
9
+ })(EncounterStatus = exports.EncounterStatus || (exports.EncounterStatus = {}));
10
+ exports.HL7EventType = {
11
+ A01: {
12
+ code: 'A01',
13
+ description: 'Admit/Visit Notification',
14
+ fullCode: 'ADT^A01',
15
+ },
16
+ A03: {
17
+ code: 'A03',
18
+ description: 'Discharge/End Visit',
19
+ fullCode: 'ADT^A03',
20
+ },
21
+ };
22
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../extensions/zusHealth/webhooks/types.ts"],"names":[],"mappings":";;;AAUA,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,wCAAqB,CAAA;IACrB,4CAAyB,CAAA;IACzB,6CAA0B,CAAA;AAC5B,CAAC,EAJW,eAAe,GAAf,uBAAe,KAAf,uBAAe,QAI1B;AAEY,QAAA,YAAY,GAAG;IAC1B,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,0BAA0B;QACvC,QAAQ,EAAE,SAAS;KACpB;IACD,GAAG,EAAE;QACH,IAAI,EAAE,KAAK;QACX,WAAW,EAAE,qBAAqB;QAClC,QAAQ,EAAE,SAAS;KACpB;CACF,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awell-health/awell-extensions",
3
- "version": "1.0.102",
3
+ "version": "1.0.104",
4
4
  "packageManager": "yarn@3.4.1",
5
5
  "main": "dist/src/index.js",
6
6
  "repository": {