oro-sdk 3.1.2-dev2 → 3.2.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.
@@ -1,4 +1,4 @@
1
- import { ConsultRequest, LocalizedData, MetadataCategory, PopulatedWorkflowData, Uuid, WorkflowData } from 'oro-sdk-apis';
1
+ import { ConsultRequest, MetadataCategory, PopulatedWorkflowData, Uuid, WorkflowData } from 'oro-sdk-apis';
2
2
  import { OroClient, RegisterPatientOutput } from '..';
3
3
  /**
4
4
  * Completes a registration for a user retrying the complete flow a maximum of 15 times
@@ -34,10 +34,19 @@ export declare function registerPatient(patientUuid: Uuid, consultRequest: Consu
34
34
  * @returns The data uuid
35
35
  */
36
36
  export declare function extractAndStorePersonalWorkflowData(workflow: WorkflowData, lockboxUuid: Uuid, consultationId: Uuid, category: MetadataCategory.Personal | MetadataCategory.ChildPersonal | MetadataCategory.OtherPersonal, oroClient: OroClient): Promise<Uuid | void>;
37
- export declare function extractPersonalInfoFromConsultId(consultUuid: string, oroClient: OroClient): Promise<{
38
- consultUuid: string;
39
- personalInformations: LocalizedData<PopulatedWorkflowData>;
40
- childPersonalInformations: LocalizedData<PopulatedWorkflowData>;
41
- otherPersonalInformations: LocalizedData<PopulatedWorkflowData>;
37
+ /**
38
+ * Given workflow data, it populates it with Personal, ChildPersonal, and OtherPersonal workflow data
39
+ * @param workflow
40
+ */
41
+ export declare function extractPersonalInfoFromWorkflowData(workflow: WorkflowData): Promise<{
42
+ personalInfoPopulatedWfData: PopulatedWorkflowData;
43
+ childPersonalInfoPopulatedWfData: PopulatedWorkflowData;
44
+ otherPersonalInfoPopulatedWfData: PopulatedWorkflowData;
42
45
  }>;
43
- export declare function searchIndexConsultation(consultUuid: string, oroClient: OroClient): Promise<void>;
46
+ /**
47
+ * Creates the search index for the first and last name of the given consultation
48
+ * @param consultUuid the uuid of the consult to be search indexed
49
+ * @param workflow the workflow data
50
+ * @param oroClient
51
+ */
52
+ export declare function buildConsultSearchIndex(consultUuid: string, workflow: WorkflowData, oroClient: OroClient): Promise<void>;
@@ -1808,24 +1808,27 @@ function _registerPatient() {
1808
1808
  return Promise.all([].concat(grantPromises, consultIndexPromises));
1809
1809
 
1810
1810
  case 43:
1811
+ _context3.next = 45;
1812
+ return buildConsultSearchIndex(consult.uuid, workflow, oroClient)["catch"](function (err) {
1813
+ console.error('[SDK: registration] personal information not found or another error occured during search indexing', err);
1814
+ if (retry <= 1) return; // this statement is to avoid failing the registration due to the failure in search indexing the consult, this practically implements a soft retry
1815
+
1816
+ // this statement is to avoid failing the registration due to the failure in search indexing the consult, this practically implements a soft retry
1817
+ errorsThrown.push(err);
1818
+ });
1819
+
1820
+ case 45:
1811
1821
  if (!(errorsThrown.length > 0)) {
1812
- _context3.next = 45;
1822
+ _context3.next = 47;
1813
1823
  break;
1814
1824
  }
1815
1825
 
1816
1826
  throw errorsThrown;
1817
1827
 
1818
- case 45:
1819
- _context3.next = 47;
1820
- return oroClient.consultClient.updateConsultByUUID(consult.uuid, {
1821
- statusMedical: initApis.MedicalStatus.New
1822
- });
1823
-
1824
1828
  case 47:
1825
1829
  _context3.next = 49;
1826
- return searchIndexConsultation(consult.uuid, oroClient)["catch"](function (err) {
1827
- console.error('[SDK: registration] personal information not found or another error occured during search indexing', err);
1828
- errorsThrown.push(err);
1830
+ return oroClient.consultClient.updateConsultByUUID(consult.uuid, {
1831
+ statusMedical: initApis.MedicalStatus.New
1829
1832
  });
1830
1833
 
1831
1834
  case 49:
@@ -2115,6 +2118,10 @@ function _storeImageAliases() {
2115
2118
  function extractAndStorePersonalWorkflowData(_x19, _x20, _x21, _x22, _x23) {
2116
2119
  return _extractAndStorePersonalWorkflowData.apply(this, arguments);
2117
2120
  }
2121
+ /**
2122
+ * Given workflow data, it populates it with Personal, ChildPersonal, and OtherPersonal workflow data
2123
+ * @param workflow
2124
+ */
2118
2125
 
2119
2126
  function _extractAndStorePersonalWorkflowData() {
2120
2127
  _extractAndStorePersonalWorkflowData = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee9(workflow, lockboxUuid, consultationId, category, oroClient) {
@@ -2141,55 +2148,30 @@ function _extractAndStorePersonalWorkflowData() {
2141
2148
  return _extractAndStorePersonalWorkflowData.apply(this, arguments);
2142
2149
  }
2143
2150
 
2144
- function extractPersonalInfoFromConsultId(_x24, _x25) {
2145
- return _extractPersonalInfoFromConsultId.apply(this, arguments);
2151
+ function extractPersonalInfoFromWorkflowData(_x24) {
2152
+ return _extractPersonalInfoFromWorkflowData.apply(this, arguments);
2146
2153
  }
2154
+ /**
2155
+ * Creates the search index for the first and last name of the given consultation
2156
+ * @param consultUuid the uuid of the consult to be search indexed
2157
+ * @param workflow the workflow data
2158
+ * @param oroClient
2159
+ */
2147
2160
 
2148
- function _extractPersonalInfoFromConsultId() {
2149
- _extractPersonalInfoFromConsultId = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee10(consultUuid, oroClient) {
2161
+ function _extractPersonalInfoFromWorkflowData() {
2162
+ _extractPersonalInfoFromWorkflowData = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee10(workflow) {
2150
2163
  return runtime_1.wrap(function _callee10$(_context10) {
2151
2164
  while (1) {
2152
2165
  switch (_context10.prev = _context10.next) {
2153
2166
  case 0:
2154
- return _context10.abrupt("return", Promise.all([// Retrieve MetadataCategory.Personal in any case
2155
- oroClient.getPersonalInformationsFromConsultId(consultUuid, initApis.MetadataCategory.Personal, true).then(function (personalInformations) {
2156
- if (!personalInformations[0]) {
2157
- console.error(initApis.MetadataCategory.Personal + " informations not found for consult:", consultUuid);
2158
- throw Error('No self personal information found');
2159
- }
2160
-
2161
- return personalInformations[0];
2162
- }), // Retrieve MetadataCategory.ChildPersonal in any case in parallel
2163
- oroClient.getPersonalInformationsFromConsultId(consultUuid, initApis.MetadataCategory.ChildPersonal, true).then(function (childInformations) {
2164
- if (!childInformations[0]) {
2165
- console.debug(initApis.MetadataCategory.ChildPersonal + " informations not found for consult:", consultUuid); // Retrieve MetadataCategory.OtherPersonal only if MetadataCategory.ChildPersonal does not exist
2166
-
2167
- // Retrieve MetadataCategory.OtherPersonal only if MetadataCategory.ChildPersonal does not exist
2168
- return oroClient.getPersonalInformationsFromConsultId(consultUuid, initApis.MetadataCategory.OtherPersonal, true).then(function (otherInformations) {
2169
- if (!otherInformations[0]) {
2170
- console.debug(initApis.MetadataCategory.OtherPersonal + " informations not found for consult:", consultUuid);
2171
- return {};
2172
- }
2173
-
2174
- return {
2175
- otherPersonalInformations: otherInformations[0]
2176
- };
2177
- });
2178
- }
2179
-
2167
+ return _context10.abrupt("return", Promise.all([getWorkflowDataByCategory(workflow, initApis.MetadataCategory.Personal), getWorkflowDataByCategory(workflow, initApis.MetadataCategory.ChildPersonal), getWorkflowDataByCategory(workflow, initApis.MetadataCategory.OtherPersonal)]).then(function (_ref3) {
2168
+ var personalInfoPopulatedWfData = _ref3[0],
2169
+ childPersonalInfoPopulatedWfData = _ref3[1],
2170
+ otherPersonalInfoPopulatedWfData = _ref3[2];
2180
2171
  return {
2181
- childPersonalInformations: childInformations[0]
2182
- };
2183
- })]).then(function (_ref3) {
2184
- var personalInformations = _ref3[0],
2185
- _ref3$ = _ref3[1],
2186
- childPersonalInformations = _ref3$.childPersonalInformations,
2187
- otherPersonalInformations = _ref3$.otherPersonalInformations;
2188
- return {
2189
- consultUuid: consultUuid,
2190
- personalInformations: personalInformations,
2191
- childPersonalInformations: childPersonalInformations,
2192
- otherPersonalInformations: otherPersonalInformations
2172
+ personalInfoPopulatedWfData: personalInfoPopulatedWfData,
2173
+ childPersonalInfoPopulatedWfData: childPersonalInfoPopulatedWfData,
2174
+ otherPersonalInfoPopulatedWfData: otherPersonalInfoPopulatedWfData
2193
2175
  };
2194
2176
  }));
2195
2177
 
@@ -2200,16 +2182,16 @@ function _extractPersonalInfoFromConsultId() {
2200
2182
  }
2201
2183
  }, _callee10);
2202
2184
  }));
2203
- return _extractPersonalInfoFromConsultId.apply(this, arguments);
2185
+ return _extractPersonalInfoFromWorkflowData.apply(this, arguments);
2204
2186
  }
2205
2187
 
2206
- function searchIndexConsultation(_x26, _x27) {
2207
- return _searchIndexConsultation.apply(this, arguments);
2188
+ function buildConsultSearchIndex(_x25, _x26, _x27) {
2189
+ return _buildConsultSearchIndex.apply(this, arguments);
2208
2190
  }
2209
2191
 
2210
- function _searchIndexConsultation() {
2211
- _searchIndexConsultation = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee11(consultUuid, oroClient) {
2212
- var terms, _yield$extractPersona, personalInformations, childPersonalInformations, otherPersonalInformations, personalInfo, childPersonalInfo, otherPersonalInfo;
2192
+ function _buildConsultSearchIndex() {
2193
+ _buildConsultSearchIndex = _asyncToGenerator( /*#__PURE__*/runtime_1.mark(function _callee11(consultUuid, workflow, oroClient) {
2194
+ var terms, _yield$extractPersona, personalInfoPopulatedWfData, childPersonalInfoPopulatedWfData, otherPersonalInfoPopulatedWfData, personalInfo, childPersonalInfo, otherPersonalInfo;
2213
2195
 
2214
2196
  return runtime_1.wrap(function _callee11$(_context11) {
2215
2197
  while (1) {
@@ -2217,14 +2199,16 @@ function _searchIndexConsultation() {
2217
2199
  case 0:
2218
2200
  terms = [];
2219
2201
  _context11.next = 3;
2220
- return extractPersonalInfoFromConsultId(consultUuid, oroClient);
2202
+ return extractPersonalInfoFromWorkflowData(workflow);
2221
2203
 
2222
2204
  case 3:
2223
2205
  _yield$extractPersona = _context11.sent;
2224
- personalInformations = _yield$extractPersona.personalInformations;
2225
- childPersonalInformations = _yield$extractPersona.childPersonalInformations;
2226
- otherPersonalInformations = _yield$extractPersona.otherPersonalInformations;
2227
- personalInfo = identificationToPersonalInformations(toActualObject(personalInformations.data), initApis.MetadataCategory.Personal);
2206
+ personalInfoPopulatedWfData = _yield$extractPersona.personalInfoPopulatedWfData;
2207
+ childPersonalInfoPopulatedWfData = _yield$extractPersona.childPersonalInfoPopulatedWfData;
2208
+ otherPersonalInfoPopulatedWfData = _yield$extractPersona.otherPersonalInfoPopulatedWfData;
2209
+ personalInfo = identificationToPersonalInformations(toActualObject(personalInfoPopulatedWfData), initApis.MetadataCategory.Personal);
2210
+ childPersonalInfo = identificationToPersonalInformations(toActualObject(childPersonalInfoPopulatedWfData), initApis.MetadataCategory.ChildPersonal);
2211
+ otherPersonalInfo = identificationToPersonalInformations(toActualObject(otherPersonalInfoPopulatedWfData), initApis.MetadataCategory.OtherPersonal);
2228
2212
  terms.push({
2229
2213
  kind: 'first-name',
2230
2214
  value: personalInfo.firstname
@@ -2233,8 +2217,7 @@ function _searchIndexConsultation() {
2233
2217
  value: personalInfo.name
2234
2218
  });
2235
2219
 
2236
- if (childPersonalInformations) {
2237
- childPersonalInfo = identificationToPersonalInformations(toActualObject(childPersonalInformations.data), initApis.MetadataCategory.ChildPersonal);
2220
+ if (childPersonalInfo.firstname && childPersonalInfo.name) {
2238
2221
  terms.push({
2239
2222
  kind: 'first-name',
2240
2223
  value: childPersonalInfo.firstname
@@ -2244,8 +2227,7 @@ function _searchIndexConsultation() {
2244
2227
  });
2245
2228
  }
2246
2229
 
2247
- if (otherPersonalInformations) {
2248
- otherPersonalInfo = identificationToPersonalInformations(toActualObject(otherPersonalInformations.data), initApis.MetadataCategory.OtherPersonal);
2230
+ if (otherPersonalInfo.firstname && otherPersonalInfo.name) {
2249
2231
  terms.push({
2250
2232
  kind: 'first-name',
2251
2233
  value: otherPersonalInfo.firstname
@@ -2255,17 +2237,17 @@ function _searchIndexConsultation() {
2255
2237
  });
2256
2238
  }
2257
2239
 
2258
- _context11.next = 13;
2240
+ _context11.next = 15;
2259
2241
  return oroClient.searchClient.index(consultUuid, terms);
2260
2242
 
2261
- case 13:
2243
+ case 15:
2262
2244
  case "end":
2263
2245
  return _context11.stop();
2264
2246
  }
2265
2247
  }
2266
2248
  }, _callee11);
2267
2249
  }));
2268
- return _searchIndexConsultation.apply(this, arguments);
2250
+ return _buildConsultSearchIndex.apply(this, arguments);
2269
2251
  }
2270
2252
 
2271
2253
  /**
@@ -5755,12 +5737,13 @@ exports.MissingLockbox = MissingLockbox;
5755
5737
  exports.MissingLockboxOwner = MissingLockboxOwner;
5756
5738
  exports.OroClient = OroClient;
5757
5739
  exports.WorkflowAnswersMissingError = WorkflowAnswersMissingError;
5740
+ exports.buildConsultSearchIndex = buildConsultSearchIndex;
5758
5741
  exports.decryptConsultLockboxGrants = decryptConsultLockboxGrants;
5759
5742
  exports.decryptGrants = decryptGrants;
5760
5743
  exports.default = init;
5761
5744
  exports.extractAndStorePersonalWorkflowData = extractAndStorePersonalWorkflowData;
5762
5745
  exports.extractISOLocalityForConsult = extractISOLocalityForConsult;
5763
- exports.extractPersonalInfoFromConsultId = extractPersonalInfoFromConsultId;
5746
+ exports.extractPersonalInfoFromWorkflowData = extractPersonalInfoFromWorkflowData;
5764
5747
  exports.fillWorkflowFromPopulatedWorkflow = fillWorkflowFromPopulatedWorkflow;
5765
5748
  exports.filterTriggeredAnsweredWithKind = filterTriggeredAnsweredWithKind;
5766
5749
  exports.flattenSelectedAnswers = flattenSelectedAnswers;
@@ -5770,7 +5753,6 @@ exports.getWorkflowDataByCategory = getWorkflowDataByCategory;
5770
5753
  exports.identificationToPersonalInformations = identificationToPersonalInformations;
5771
5754
  exports.isTriggered = isTriggered;
5772
5755
  exports.registerPatient = registerPatient;
5773
- exports.searchIndexConsultation = searchIndexConsultation;
5774
5756
  exports.sessionStorePrivateKeyName = sessionStorePrivateKeyName;
5775
5757
  exports.toActualObject = toActualObject;
5776
5758
  exports.updatePersonalIntoPopulatedWorkflowData = updatePersonalIntoPopulatedWorkflowData;