@awell-health/awell-extensions 2.0.52 → 2.0.54

Sign up to get free protection for your applications and to get access to all the features.
@@ -4,6 +4,7 @@ exports.addIdentifierToPatient = void 0;
4
4
  const extensions_core_1 = require("@awell-health/extensions-core");
5
5
  const config_1 = require("./config");
6
6
  const zod_1 = require("zod");
7
+ const lodash_1 = require("lodash");
7
8
  exports.addIdentifierToPatient = {
8
9
  key: 'addIdentifierToPatient',
9
10
  category: extensions_core_1.Category.WORKFLOW,
@@ -13,27 +14,26 @@ exports.addIdentifierToPatient = {
13
14
  dataPoints: config_1.dataPoints,
14
15
  previewable: false,
15
16
  onEvent: async ({ payload, onComplete, onError, helpers }) => {
16
- var _a, _b;
17
- const { fields: { system, value }, patient: { id: patientId }, } = (0, extensions_core_1.validate)({
17
+ var _a, _b, _c, _d, _e, _f, _g, _h;
18
+ const { fields: { system, value }, } = (0, extensions_core_1.validate)({
18
19
  schema: zod_1.z.object({
19
20
  fields: config_1.FieldsValidationSchema,
20
- patient: config_1.PatientValidationSchema,
21
21
  }),
22
22
  payload,
23
23
  });
24
+ const currentPatient = payload.patient;
24
25
  const sdk = await helpers.awellSdk();
25
26
  const { patientByIdentifier: { patient: existingPatient }, } = await sdk.orchestration.query({
26
27
  patientByIdentifier: {
27
28
  __args: { system, value },
28
29
  patient: {
29
30
  id: true,
30
- profile: { identifier: { system: true, value: true } },
31
31
  },
32
32
  },
33
33
  });
34
- const patientExists = Boolean(existingPatient === null || existingPatient === void 0 ? void 0 : existingPatient.id);
35
- const isCurrentPatient = patientExists && (existingPatient === null || existingPatient === void 0 ? void 0 : existingPatient.id) === patientId;
36
- if (patientExists && !isCurrentPatient) {
34
+ const patientExists = !(0, lodash_1.isEmpty)(existingPatient === null || existingPatient === void 0 ? void 0 : existingPatient.id);
35
+ const patientLookUpIsCurrentPatient = (existingPatient === null || existingPatient === void 0 ? void 0 : existingPatient.id) === currentPatient.id;
36
+ if (patientExists && !patientLookUpIsCurrentPatient) {
37
37
  await onError({
38
38
  events: [
39
39
  {
@@ -46,8 +46,24 @@ exports.addIdentifierToPatient = {
46
46
  });
47
47
  return;
48
48
  }
49
+ // Fetch from the API, had inconsitent results with using patient.payload (e.g. missing identifiers)
50
+ const currentPatientData = await sdk.orchestration.query({
51
+ patient: {
52
+ __args: {
53
+ id: currentPatient.id,
54
+ },
55
+ patient: {
56
+ profile: {
57
+ identifier: {
58
+ system: true,
59
+ value: true,
60
+ },
61
+ },
62
+ },
63
+ },
64
+ });
49
65
  // Filter identifiers, excluding any with the current system
50
- const existingIdentifiers = (_b = (_a = existingPatient === null || existingPatient === void 0 ? void 0 : existingPatient.profile) === null || _a === void 0 ? void 0 : _a.identifier) !== null && _b !== void 0 ? _b : [];
66
+ const existingIdentifiers = (_d = (_c = (_b = (_a = currentPatientData === null || currentPatientData === void 0 ? void 0 : currentPatientData.patient) === null || _a === void 0 ? void 0 : _a.patient) === null || _b === void 0 ? void 0 : _b.profile) === null || _c === void 0 ? void 0 : _c.identifier) !== null && _d !== void 0 ? _d : [];
51
67
  const otherIdentifiers = existingIdentifiers.filter((id) => id.system !== system);
52
68
  const previousIdentifier = existingIdentifiers.find((id) => id.system === system);
53
69
  const isUpdatingIdentifier = Boolean(previousIdentifier);
@@ -64,20 +80,30 @@ exports.addIdentifierToPatient = {
64
80
  });
65
81
  return;
66
82
  }
83
+ const newIdentifiers = [...otherIdentifiers, { system, value }];
67
84
  // Perform update or add the new identifier
68
- await sdk.orchestration.mutation({
85
+ const result = await sdk.orchestration.mutation({
69
86
  updatePatient: {
70
87
  __args: {
71
88
  input: {
72
- patient_id: patientId,
89
+ patient_id: currentPatient.id,
73
90
  profile: {
74
- identifier: [...otherIdentifiers, { system, value }],
91
+ identifier: newIdentifiers,
92
+ },
93
+ },
94
+ },
95
+ patient: {
96
+ id: true,
97
+ profile: {
98
+ identifier: {
99
+ system: true,
100
+ value: true,
75
101
  },
76
102
  },
77
103
  },
78
- patient: { id: true },
79
104
  },
80
105
  });
106
+ const updatedIdentifiers = (_h = (_g = (_f = (_e = result === null || result === void 0 ? void 0 : result.updatePatient) === null || _e === void 0 ? void 0 : _e.patient) === null || _f === void 0 ? void 0 : _f.profile) === null || _g === void 0 ? void 0 : _g.identifier) !== null && _h !== void 0 ? _h : [];
81
107
  await onComplete({
82
108
  events: [
83
109
  {
@@ -88,6 +114,24 @@ exports.addIdentifierToPatient = {
88
114
  : `The identifier with system ${system} and value ${value} has been added to the patient.`,
89
115
  },
90
116
  },
117
+ {
118
+ date: new Date().toISOString(),
119
+ text: {
120
+ en: `Old list of identifiers: ${existingIdentifiers.length === 0
121
+ ? 'None'
122
+ : `${existingIdentifiers
123
+ .map((id) => `${id.system}|${id.value}`)
124
+ .join(';')}`}`,
125
+ },
126
+ },
127
+ {
128
+ date: new Date().toISOString(),
129
+ text: {
130
+ en: `Updated list of identifiers: ${updatedIdentifiers
131
+ .map((id) => `${id.system}|${id.value}`)
132
+ .join(';')}`,
133
+ },
134
+ },
91
135
  ],
92
136
  });
93
137
  },
@@ -1 +1 @@
1
- {"version":3,"file":"addIdentifierToPatient.js","sourceRoot":"","sources":["../../../../../../extensions/awell/v1/actions/addIdentifierToPatient/addIdentifierToPatient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"addIdentifierToPatient.js","sourceRoot":"","sources":["../../../../../../extensions/awell/v1/actions/addIdentifierToPatient/addIdentifierToPatient.ts"],"names":[],"mappings":";;;AAEA,mEAAkE;AAClE,qCAAqE;AACrE,6BAAuB;AACvB,mCAAgC;AAEnB,QAAA,sBAAsB,GAA2C;IAC5E,GAAG,EAAE,wBAAwB;IAC7B,QAAQ,EAAE,0BAAQ,CAAC,QAAQ;IAC3B,KAAK,EAAE,2BAA2B;IAClC,WAAW,EAAE,+CAA+C;IAC5D,MAAM,EAAN,eAAM;IACN,UAAU,EAAV,mBAAU;IACV,WAAW,EAAE,KAAK;IAClB,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,EAAiB,EAAE;;QAC1E,MAAM,EACJ,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,GAC1B,GAAG,IAAA,0BAAQ,EAAC;YACX,MAAM,EAAE,OAAC,CAAC,MAAM,CAAC;gBACf,MAAM,EAAE,+BAAsB;aAC/B,CAAC;YACF,OAAO;SACR,CAAC,CAAA;QAEF,MAAM,cAAc,GAAG,OAAO,CAAC,OAAO,CAAA;QAEtC,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,QAAQ,EAAE,CAAA;QAEpC,MAAM,EACJ,mBAAmB,EAAE,EAAE,OAAO,EAAE,eAAe,EAAE,GAClD,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC;YAChC,mBAAmB,EAAE;gBACnB,MAAM,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBACzB,OAAO,EAAE;oBACP,EAAE,EAAE,IAAI;iBACT;aACF;SACF,CAAC,CAAA;QAEF,MAAM,aAAa,GAAG,CAAC,IAAA,gBAAO,EAAC,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,EAAE,CAAC,CAAA;QACnD,MAAM,6BAA6B,GACjC,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,EAAE,MAAK,cAAc,CAAC,EAAE,CAAA;QAE3C,IAAI,aAAa,IAAI,CAAC,6BAA6B,EAAE;YACnD,MAAM,OAAO,CAAC;gBACZ,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBAC9B,IAAI,EAAE;4BACJ,EAAE,EAAE,oBAAoB,MAAM,CAC5B,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,EAAE,CACpB,2CAA2C,MAAM,cAAc,KAAK,kEAAkE;yBACxI;qBACF;iBACF;aACF,CAAC,CAAA;YACF,OAAM;SACP;QAED,oGAAoG;QACpG,MAAM,kBAAkB,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,KAAK,CAAC;YACvD,OAAO,EAAE;gBACP,MAAM,EAAE;oBACN,EAAE,EAAE,cAAc,CAAC,EAAE;iBACtB;gBACD,OAAO,EAAE;oBACP,OAAO,EAAE;wBACP,UAAU,EAAE;4BACV,MAAM,EAAE,IAAI;4BACZ,KAAK,EAAE,IAAI;yBACZ;qBACF;iBACF;aACF;SACF,CAAC,CAAA;QAEF,4DAA4D;QAC5D,MAAM,mBAAmB,GACvB,MAAA,MAAA,MAAA,MAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,OAAO,0CAAE,OAAO,0CAAE,OAAO,0CAAE,UAAU,mCAAI,EAAE,CAAA;QACjE,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,CACjD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,MAAM,CAC7B,CAAA;QAED,MAAM,kBAAkB,GAAG,mBAAmB,CAAC,IAAI,CACjD,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,MAAM,KAAK,MAAM,CAC7B,CAAA;QACD,MAAM,oBAAoB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAAA;QAExD,IAAI,oBAAoB,IAAI,CAAA,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,KAAK,MAAK,KAAK,EAAE;YAC/D,MAAM,UAAU,CAAC;gBACf,MAAM,EAAE;oBACN;wBACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;wBAC9B,IAAI,EAAE;4BACJ,EAAE,EAAE,uFAAuF;yBAC5F;qBACF;iBACF;aACF,CAAC,CAAA;YACF,OAAM;SACP;QAED,MAAM,cAAc,GAAG,CAAC,GAAG,gBAAgB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;QAE/D,2CAA2C;QAC3C,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,aAAa,CAAC,QAAQ,CAAC;YAC9C,aAAa,EAAE;gBACb,MAAM,EAAE;oBACN,KAAK,EAAE;wBACL,UAAU,EAAE,cAAc,CAAC,EAAE;wBAC7B,OAAO,EAAE;4BACP,UAAU,EAAE,cAAc;yBAC3B;qBACF;iBACF;gBACD,OAAO,EAAE;oBACP,EAAE,EAAE,IAAI;oBACR,OAAO,EAAE;wBACP,UAAU,EAAE;4BACV,MAAM,EAAE,IAAI;4BACZ,KAAK,EAAE,IAAI;yBACZ;qBACF;iBACF;aACF;SACF,CAAC,CAAA;QAEF,MAAM,kBAAkB,GACtB,MAAA,MAAA,MAAA,MAAA,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,aAAa,0CAAE,OAAO,0CAAE,OAAO,0CAAE,UAAU,mCAAI,EAAE,CAAA;QAE3D,MAAM,UAAU,CAAC;YACf,MAAM,EAAE;gBACN;oBACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAC9B,IAAI,EAAE;wBACJ,EAAE,EAAE,oBAAoB;4BACtB,CAAC,CAAC,qDAAqD,MAAM,cAAc,MAAM,CAC7E,kBAAkB,aAAlB,kBAAkB,uBAAlB,kBAAkB,CAAE,KAAK,CAC1B,8CAA8C,KAAK,GAAG;4BACzD,CAAC,CAAC,8BAA8B,MAAM,cAAc,KAAK,iCAAiC;qBAC7F;iBACF;gBACD;oBACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAC9B,IAAI,EAAE;wBACJ,EAAE,EAAE,4BACF,mBAAmB,CAAC,MAAM,KAAK,CAAC;4BAC9B,CAAC,CAAC,MAAM;4BACR,CAAC,CAAC,GAAG,mBAAmB;iCACnB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;iCACvC,IAAI,CAAC,GAAG,CAAC,EAClB,EAAE;qBACH;iBACF;gBACD;oBACE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;oBAC9B,IAAI,EAAE;wBACJ,EAAE,EAAE,gCAAgC,kBAAkB;6BACnD,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,IAAI,EAAE,CAAC,KAAK,EAAE,CAAC;6BACvC,IAAI,CAAC,GAAG,CAAC,EAAE;qBACf;iBACF;aACF;SACF,CAAC,CAAA;IACJ,CAAC;CACF,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@awell-health/awell-extensions",
3
- "version": "2.0.52",
3
+ "version": "2.0.54",
4
4
  "packageManager": "yarn@3.4.1",
5
5
  "main": "dist/src/index.js",
6
6
  "repository": {