@awell-health/awell-extensions 2.1.55 → 2.1.56
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/dist/extensions/medplum/actions/createResource/config/dataPoints.d.ts +4 -0
- package/dist/extensions/medplum/actions/createResource/config/dataPoints.js +4 -0
- package/dist/extensions/medplum/actions/createResource/config/dataPoints.js.map +1 -1
- package/dist/extensions/medplum/actions/createResource/config/fields.d.ts +20 -0
- package/dist/extensions/medplum/actions/createResource/config/fields.js +16 -0
- package/dist/extensions/medplum/actions/createResource/config/fields.js.map +1 -1
- package/dist/extensions/medplum/actions/createResource/createResource.js +32 -10
- package/dist/extensions/medplum/actions/createResource/createResource.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataPoints.js","sourceRoot":"","sources":["../../../../../../extensions/medplum/actions/createResource/config/dataPoints.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG;IACxB,UAAU,EAAE;QACV,GAAG,EAAE,YAAY;QACjB,SAAS,EAAE,QAAQ;KACpB;IACD,YAAY,EAAE;QACZ,GAAG,EAAE,cAAc;QACnB,SAAS,EAAE,QAAQ;KACpB;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,UAAU;QACf,SAAS,EAAE,QAAQ;KACpB;IACD,UAAU,EAAE;QACV,GAAG,EAAE,YAAY;QACjB,SAAS,EAAE,QAAQ;KACpB;IACD,WAAW,EAAE;QACX,GAAG,EAAE,aAAa;QAClB,SAAS,EAAE,QAAQ;KACpB;IACD,gBAAgB,EAAE;QAChB,GAAG,EAAE,kBAAkB;QACvB,SAAS,EAAE,MAAM;KAClB;CAC4C,CAAA"}
|
|
1
|
+
{"version":3,"file":"dataPoints.js","sourceRoot":"","sources":["../../../../../../extensions/medplum/actions/createResource/config/dataPoints.ts"],"names":[],"mappings":";;;AAEa,QAAA,UAAU,GAAG;IACxB,UAAU,EAAE;QACV,GAAG,EAAE,YAAY;QACjB,SAAS,EAAE,QAAQ;KACpB;IACD,YAAY,EAAE;QACZ,GAAG,EAAE,cAAc;QACnB,SAAS,EAAE,QAAQ;KACpB;IACD,QAAQ,EAAE;QACR,GAAG,EAAE,UAAU;QACf,SAAS,EAAE,QAAQ;KACpB;IACD,UAAU,EAAE;QACV,GAAG,EAAE,YAAY;QACjB,SAAS,EAAE,QAAQ;KACpB;IACD,WAAW,EAAE;QACX,GAAG,EAAE,aAAa;QAClB,SAAS,EAAE,QAAQ;KACpB;IACD,gBAAgB,EAAE;QAChB,GAAG,EAAE,kBAAkB;QACvB,SAAS,EAAE,MAAM;KAClB;IACD,gBAAgB,EAAE;QAChB,GAAG,EAAE,kBAAkB;QACvB,SAAS,EAAE,SAAS;KACrB;CAC4C,CAAA"}
|
|
@@ -8,11 +8,31 @@ export declare const fields: {
|
|
|
8
8
|
type: FieldType.JSON;
|
|
9
9
|
required: true;
|
|
10
10
|
};
|
|
11
|
+
searchResourceType: {
|
|
12
|
+
id: string;
|
|
13
|
+
label: string;
|
|
14
|
+
description: string;
|
|
15
|
+
type: FieldType.STRING;
|
|
16
|
+
required: false;
|
|
17
|
+
};
|
|
18
|
+
searchIdentifier: {
|
|
19
|
+
id: string;
|
|
20
|
+
label: string;
|
|
21
|
+
description: string;
|
|
22
|
+
type: FieldType.STRING;
|
|
23
|
+
required: false;
|
|
24
|
+
};
|
|
11
25
|
};
|
|
12
26
|
export declare const FieldsValidationSchema: z.ZodObject<{
|
|
13
27
|
resourceJson: z.ZodString;
|
|
28
|
+
searchResourceType: z.ZodOptional<z.ZodString>;
|
|
29
|
+
searchIdentifier: z.ZodOptional<z.ZodString>;
|
|
14
30
|
}, "strip", z.ZodTypeAny, {
|
|
15
31
|
resourceJson: string;
|
|
32
|
+
searchResourceType?: string | undefined;
|
|
33
|
+
searchIdentifier?: string | undefined;
|
|
16
34
|
}, {
|
|
17
35
|
resourceJson: string;
|
|
36
|
+
searchResourceType?: string | undefined;
|
|
37
|
+
searchIdentifier?: string | undefined;
|
|
18
38
|
}>;
|
|
@@ -11,8 +11,24 @@ exports.fields = {
|
|
|
11
11
|
type: extensions_core_1.FieldType.JSON,
|
|
12
12
|
required: true,
|
|
13
13
|
},
|
|
14
|
+
searchResourceType: {
|
|
15
|
+
id: 'searchResourceType',
|
|
16
|
+
label: 'Search Resource Type',
|
|
17
|
+
description: 'Optional: FHIR resource type to search for (e.g., Patient, Observation). If provided along with Search Identifier, the action will search for existing resources before creating a new one.',
|
|
18
|
+
type: extensions_core_1.FieldType.STRING,
|
|
19
|
+
required: false,
|
|
20
|
+
},
|
|
21
|
+
searchIdentifier: {
|
|
22
|
+
id: 'searchIdentifier',
|
|
23
|
+
label: 'Search Identifier',
|
|
24
|
+
description: 'Optional: Identifier value to search for (e.g., MRN, SSN). If provided along with Search Resource Type, the action will search for existing resources with this identifier before creating a new one.',
|
|
25
|
+
type: extensions_core_1.FieldType.STRING,
|
|
26
|
+
required: false,
|
|
27
|
+
},
|
|
14
28
|
};
|
|
15
29
|
exports.FieldsValidationSchema = zod_1.z.object({
|
|
16
30
|
resourceJson: zod_1.z.string().min(1),
|
|
31
|
+
searchResourceType: zod_1.z.string().optional(),
|
|
32
|
+
searchIdentifier: zod_1.z.string().optional(),
|
|
17
33
|
});
|
|
18
34
|
//# sourceMappingURL=fields.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../extensions/medplum/actions/createResource/config/fields.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,6BAAwC;AAE3B,QAAA,MAAM,GAAG;IACpB,YAAY,EAAE;QACZ,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,8JAA8J;QAChK,IAAI,EAAE,2BAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,IAAI;KACf;CAC8B,CAAA;AAEpB,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"fields.js","sourceRoot":"","sources":["../../../../../../extensions/medplum/actions/createResource/config/fields.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AACrE,6BAAwC;AAE3B,QAAA,MAAM,GAAG;IACpB,YAAY,EAAE;QACZ,EAAE,EAAE,cAAc;QAClB,KAAK,EAAE,eAAe;QACtB,WAAW,EACT,8JAA8J;QAChK,IAAI,EAAE,2BAAS,CAAC,IAAI;QACpB,QAAQ,EAAE,IAAI;KACf;IACD,kBAAkB,EAAE;QAClB,EAAE,EAAE,oBAAoB;QACxB,KAAK,EAAE,sBAAsB;QAC7B,WAAW,EACT,6LAA6L;QAC/L,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,QAAQ,EAAE,KAAK;KAChB;IACD,gBAAgB,EAAE;QAChB,EAAE,EAAE,kBAAkB;QACtB,KAAK,EAAE,mBAAmB;QAC1B,WAAW,EACT,uMAAuM;QACzM,IAAI,EAAE,2BAAS,CAAC,MAAM;QACtB,QAAQ,EAAE,KAAK;KAChB;CAC8B,CAAA;AAEpB,QAAA,sBAAsB,GAAG,OAAC,CAAC,MAAM,CAAC;IAC7C,YAAY,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IAC/B,kBAAkB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IACzC,gBAAgB,EAAE,OAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACU,CAAC,CAAA"}
|
|
@@ -7,30 +7,50 @@ const utils_1 = require("../../utils");
|
|
|
7
7
|
exports.createResource = {
|
|
8
8
|
key: 'createResource',
|
|
9
9
|
category: extensions_core_1.Category.EHR_INTEGRATIONS,
|
|
10
|
-
title: '
|
|
11
|
-
description: '
|
|
10
|
+
title: 'Find or create resource',
|
|
11
|
+
description: 'Find or create any FHIR resource in Medplum. Optionally search for existing resources by type and identifier before creating. Supports single resources or FHIR Bundles (transaction/batch) for creating multiple resources atomically.',
|
|
12
12
|
fields: config_1.fields,
|
|
13
13
|
previewable: false,
|
|
14
14
|
dataPoints: config_1.dataPoints,
|
|
15
15
|
onEvent: async ({ payload, onComplete, onError }) => {
|
|
16
|
-
var _a, _b, _c, _d, _e, _f, _g;
|
|
16
|
+
var _a, _b, _c, _d, _e, _f, _g, _h;
|
|
17
17
|
const { fields: input, medplumSdk, } = await (0, utils_1.validateAndCreateSdkClient)({
|
|
18
18
|
fieldsSchema: config_1.FieldsValidationSchema,
|
|
19
19
|
payload,
|
|
20
20
|
});
|
|
21
21
|
try {
|
|
22
22
|
const resourceData = JSON.parse(input.resourceJson);
|
|
23
|
+
const shouldSearch = input.searchResourceType && input.searchIdentifier;
|
|
24
|
+
if (shouldSearch && input.searchResourceType && input.searchIdentifier) {
|
|
25
|
+
const searchParams = {
|
|
26
|
+
identifier: input.searchIdentifier,
|
|
27
|
+
};
|
|
28
|
+
const searchBundle = await medplumSdk.search(input.searchResourceType, searchParams);
|
|
29
|
+
if (searchBundle.entry && searchBundle.entry.length > 0) {
|
|
30
|
+
const latestResource = searchBundle.entry[searchBundle.entry.length - 1].resource;
|
|
31
|
+
if (latestResource) {
|
|
32
|
+
await onComplete({
|
|
33
|
+
data_points: {
|
|
34
|
+
resourceId: (_a = latestResource.id) !== null && _a !== void 0 ? _a : '',
|
|
35
|
+
resourceType: latestResource.resourceType,
|
|
36
|
+
wasResourceFound: 'true',
|
|
37
|
+
},
|
|
38
|
+
});
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
23
43
|
if (resourceData.resourceType === 'Bundle') {
|
|
24
44
|
const result = await medplumSdk.executeBatch(resourceData);
|
|
25
|
-
const resourceIds = (
|
|
45
|
+
const resourceIds = (_c = (_b = result.entry) === null || _b === void 0 ? void 0 : _b.map((entry) => {
|
|
26
46
|
var _a, _b;
|
|
27
47
|
if ((_a = entry.response) === null || _a === void 0 ? void 0 : _a.location) {
|
|
28
48
|
const match = entry.response.location.match(/(?:^|\/)([^/]+)\/([^/]+)(?:\/|$)/);
|
|
29
49
|
return match ? match[2] : undefined;
|
|
30
50
|
}
|
|
31
51
|
return (_b = entry.resource) === null || _b === void 0 ? void 0 : _b.id;
|
|
32
|
-
}).filter(Boolean).join(',')) !== null &&
|
|
33
|
-
const resourcesCreated = (
|
|
52
|
+
}).filter(Boolean).join(',')) !== null && _c !== void 0 ? _c : '';
|
|
53
|
+
const resourcesCreated = (_e = (_d = result.entry) === null || _d === void 0 ? void 0 : _d.map((entry) => {
|
|
34
54
|
var _a, _b, _c, _d, _e;
|
|
35
55
|
let id;
|
|
36
56
|
let resourceType;
|
|
@@ -58,13 +78,14 @@ exports.createResource = {
|
|
|
58
78
|
status: (_e = (_d = entry.response) === null || _d === void 0 ? void 0 : _d.status) !== null && _e !== void 0 ? _e : '',
|
|
59
79
|
location: location !== null && location !== void 0 ? location : '',
|
|
60
80
|
};
|
|
61
|
-
}).filter((r) => r.id)) !== null &&
|
|
81
|
+
}).filter((r) => r.id)) !== null && _e !== void 0 ? _e : [];
|
|
62
82
|
await onComplete({
|
|
63
83
|
data_points: {
|
|
64
|
-
bundleId: (
|
|
84
|
+
bundleId: (_f = result.id) !== null && _f !== void 0 ? _f : '',
|
|
65
85
|
resourceIds,
|
|
66
|
-
bundleType: (
|
|
86
|
+
bundleType: (_g = result.type) !== null && _g !== void 0 ? _g : '',
|
|
67
87
|
resourcesCreated: JSON.stringify(resourcesCreated),
|
|
88
|
+
wasResourceFound: 'false',
|
|
68
89
|
},
|
|
69
90
|
});
|
|
70
91
|
}
|
|
@@ -72,8 +93,9 @@ exports.createResource = {
|
|
|
72
93
|
const result = await medplumSdk.createResource(resourceData);
|
|
73
94
|
await onComplete({
|
|
74
95
|
data_points: {
|
|
75
|
-
resourceId: (
|
|
96
|
+
resourceId: (_h = result.id) !== null && _h !== void 0 ? _h : '',
|
|
76
97
|
resourceType: result.resourceType,
|
|
98
|
+
wasResourceFound: 'false',
|
|
77
99
|
},
|
|
78
100
|
});
|
|
79
101
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"createResource.js","sourceRoot":"","sources":["../../../../../extensions/medplum/actions/createResource/createResource.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AAErE,qCAAqE;AACrE,uCAAwD;AAG3C,QAAA,cAAc,GAIvB;IACF,GAAG,EAAE,gBAAgB;IACrB,QAAQ,EAAE,0BAAQ,CAAC,gBAAgB;IACnC,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"createResource.js","sourceRoot":"","sources":["../../../../../extensions/medplum/actions/createResource/createResource.ts"],"names":[],"mappings":";;;AAAA,mEAAqE;AAErE,qCAAqE;AACrE,uCAAwD;AAG3C,QAAA,cAAc,GAIvB;IACF,GAAG,EAAE,gBAAgB;IACrB,QAAQ,EAAE,0BAAQ,CAAC,gBAAgB;IACnC,KAAK,EAAE,yBAAyB;IAChC,WAAW,EACT,yOAAyO;IAC3O,MAAM,EAAN,eAAM;IACN,WAAW,EAAE,KAAK;IAClB,UAAU,EAAV,mBAAU;IACV,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,EAAiB,EAAE;;QACjE,MAAM,EACJ,MAAM,EAAE,KAAK,EACb,UAAU,GACX,GAAG,MAAM,IAAA,kCAA0B,EAAC;YACnC,YAAY,EAAE,+BAAsB;YACpC,OAAO;SACR,CAAC,CAAA;QAEF,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;YAEnD,MAAM,YAAY,GAChB,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,gBAAgB,CAAA;YAEpD,IAAI,YAAY,IAAI,KAAK,CAAC,kBAAkB,IAAI,KAAK,CAAC,gBAAgB,EAAE,CAAC;gBACvE,MAAM,YAAY,GAA2B;oBAC3C,UAAU,EAAE,KAAK,CAAC,gBAAgB;iBACnC,CAAA;gBAED,MAAM,YAAY,GAAG,MAAM,UAAU,CAAC,MAAM,CAC1C,KAAK,CAAC,kBAAyB,EAC/B,YAAY,CACb,CAAA;gBAED,IAAI,YAAY,CAAC,KAAK,IAAI,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxD,MAAM,cAAc,GAClB,YAAY,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAA;oBAE5D,IAAI,cAAc,EAAE,CAAC;wBACnB,MAAM,UAAU,CAAC;4BACf,WAAW,EAAE;gCACX,UAAU,EAAE,MAAA,cAAc,CAAC,EAAE,mCAAI,EAAE;gCACnC,YAAY,EAAE,cAAc,CAAC,YAAY;gCACzC,gBAAgB,EAAE,MAAM;6BACzB;yBACF,CAAC,CAAA;wBACF,OAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAED,IAAI,YAAY,CAAC,YAAY,KAAK,QAAQ,EAAE,CAAC;gBAC3C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,YAAY,CAAC,YAAsB,CAAC,CAAA;gBAEpE,MAAM,WAAW,GACf,MAAA,MAAA,MAAM,CAAC,KAAK,0CACR,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;;oBACd,IAAI,MAAA,KAAK,CAAC,QAAQ,0CAAE,QAAQ,EAAE,CAAC;wBAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CACzC,kCAAkC,CACnC,CAAA;wBACD,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;oBACrC,CAAC;oBACD,OAAO,MAAA,KAAK,CAAC,QAAQ,0CAAE,EAAE,CAAA;gBAC3B,CAAC,EACA,MAAM,CAAC,OAAO,EACd,IAAI,CAAC,GAAG,CAAC,mCAAI,EAAE,CAAA;gBAEpB,MAAM,gBAAgB,GACpB,MAAA,MAAA,MAAM,CAAC,KAAK,0CACR,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;;oBACd,IAAI,EAAsB,CAAA;oBAC1B,IAAI,YAAgC,CAAA;oBACpC,IAAI,QAA4B,CAAA;oBAEhC,IAAI,MAAA,KAAK,CAAC,QAAQ,0CAAE,QAAQ,EAAE,CAAC;wBAC7B,MAAM,KAAK,GAAG,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CACzC,kCAAkC,CACnC,CAAA;wBACD,IAAI,KAAK,EAAE,CAAC;4BACV,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;4BACvB,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;4BACb,QAAQ,GAAG,GAAG,YAAY,IAAI,EAAE,EAAE,CAAA;wBACpC,CAAC;oBACH,CAAC;oBAED,IAAI,CAAC,EAAE,KAAI,MAAA,KAAK,CAAC,QAAQ,0CAAE,EAAE,CAAA,EAAE,CAAC;wBAC9B,EAAE,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAA;oBACxB,CAAC;oBACD,IAAI,CAAC,YAAY,KAAI,MAAA,KAAK,CAAC,QAAQ,0CAAE,YAAY,CAAA,EAAE,CAAC;wBAClD,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAA;oBAC5C,CAAC;oBACD,IAAI,CAAC,QAAQ,IAAI,YAAY,IAAI,EAAE,EAAE,CAAC;wBACpC,QAAQ,GAAG,GAAG,YAAY,IAAI,EAAE,EAAE,CAAA;oBACpC,CAAC;oBAED,OAAO;wBACL,EAAE,EAAE,EAAE,aAAF,EAAE,cAAF,EAAE,GAAI,EAAE;wBACZ,YAAY,EAAE,YAAY,aAAZ,YAAY,cAAZ,YAAY,GAAI,EAAE;wBAChC,MAAM,EAAE,MAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,MAAM,mCAAI,EAAE;wBACpC,QAAQ,EAAE,QAAQ,aAAR,QAAQ,cAAR,QAAQ,GAAI,EAAE;qBACzB,CAAA;gBACH,CAAC,EACA,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,mCAAI,EAAE,CAAA;gBAE9B,MAAM,UAAU,CAAC;oBACf,WAAW,EAAE;wBACX,QAAQ,EAAE,MAAA,MAAM,CAAC,EAAE,mCAAI,EAAE;wBACzB,WAAW;wBACX,UAAU,EAAE,MAAA,MAAM,CAAC,IAAI,mCAAI,EAAE;wBAC7B,gBAAgB,EAAE,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC;wBAClD,gBAAgB,EAAE,OAAO;qBAC1B;iBACF,CAAC,CAAA;YACJ,CAAC;iBAAK,CAAC;gBACL,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,cAAc,CAAC,YAAY,CAAC,CAAA;gBAE5D,MAAM,UAAU,CAAC;oBACf,WAAW,EAAE;wBACX,UAAU,EAAE,MAAA,MAAM,CAAC,EAAE,mCAAI,EAAE;wBAC3B,YAAY,EAAE,MAAM,CAAC,YAAY;wBACjC,gBAAgB,EAAE,OAAO;qBAC1B;iBACF,CAAC,CAAA;YACJ,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,GAAG,GAAG,KAAc,CAAA;YAC1B,MAAM,OAAO,CAAC;gBACZ,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBAC9B,IAAI,EAAE,EAAE,EAAE,EAAE,8BAA8B,GAAG,CAAC,OAAO,EAAE,EAAE;wBACzD,KAAK,EAAE;4BACL,QAAQ,EAAE,cAAc;4BACxB,OAAO,EAAE,GAAG,CAAC,OAAO;yBACrB;qBACF;iBACF;aACF,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;CACF,CAAA"}
|