@unite-us/app-create-referral 0.15.59-alpha.4 → 0.15.59

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 (292) hide show
  1. package/.github/CODEOWNERS +3 -0
  2. package/.github/pull_request_template.md +25 -0
  3. package/.github/workflows/quality.yml +44 -0
  4. package/.github/workflows/semantic-release.yml +26 -0
  5. package/.nvmrc +1 -0
  6. package/babel.config.js +11 -0
  7. package/config-overrides.js +8 -0
  8. package/dist/AppReferrals.js +45 -45
  9. package/dist/AppReferrals.js.map +1 -1
  10. package/dist/AppReferrals.test.js +71 -34
  11. package/dist/AppReferrals.test.js.map +1 -1
  12. package/dist/__testUtils__/mockData/components/mockAppReferrals.js +12 -13
  13. package/dist/__testUtils__/mockData/components/mockAppReferrals.js.map +1 -1
  14. package/dist/__testUtils__/mockData/mockCases.js +1 -1
  15. package/dist/__testUtils__/mockData/mockCases.js.map +1 -1
  16. package/dist/__testUtils__/mockData/mockClinicalModifications.js +3 -3
  17. package/dist/__testUtils__/mockData/mockClinicalModifications.js.map +1 -1
  18. package/dist/__testUtils__/mockData/mockEmployees.js +1 -1
  19. package/dist/__testUtils__/mockData/mockEmployees.js.map +1 -1
  20. package/dist/__testUtils__/mockData/mockEnums.js +1 -1
  21. package/dist/__testUtils__/mockData/mockEnums.js.map +1 -1
  22. package/dist/__testUtils__/mockData/mockFeeSchedulePrograms.js +1 -1
  23. package/dist/__testUtils__/mockData/mockFeeSchedulePrograms.js.map +1 -1
  24. package/dist/__testUtils__/mockData/mockFiles.js +1 -1
  25. package/dist/__testUtils__/mockData/mockFiles.js.map +1 -1
  26. package/dist/__testUtils__/mockData/mockFormSubmissions.js +1 -1
  27. package/dist/__testUtils__/mockData/mockFormSubmissions.js.map +1 -1
  28. package/dist/__testUtils__/mockData/mockFormUsages.js +1 -1
  29. package/dist/__testUtils__/mockData/mockFormUsages.js.map +1 -1
  30. package/dist/__testUtils__/mockData/mockForms.js +1 -1
  31. package/dist/__testUtils__/mockData/mockForms.js.map +1 -1
  32. package/dist/__testUtils__/mockData/mockInsurances.js +1 -1
  33. package/dist/__testUtils__/mockData/mockInsurances.js.map +1 -1
  34. package/dist/__testUtils__/mockData/mockNetworks.js +1 -1
  35. package/dist/__testUtils__/mockData/mockNetworks.js.map +1 -1
  36. package/dist/__testUtils__/mockData/mockPeople.js +1 -1
  37. package/dist/__testUtils__/mockData/mockPeople.js.map +1 -1
  38. package/dist/__testUtils__/mockData/mockPrograms.js +31 -31
  39. package/dist/__testUtils__/mockData/mockPrograms.js.map +1 -1
  40. package/dist/__testUtils__/mockData/mockProviders.js +21 -21
  41. package/dist/__testUtils__/mockData/mockProviders.js.map +1 -1
  42. package/dist/__testUtils__/mockData/mockReferrals.js +1 -1
  43. package/dist/__testUtils__/mockData/mockReferrals.js.map +1 -1
  44. package/dist/__testUtils__/mockData/mockServiceAuthorizations.js +1 -1
  45. package/dist/__testUtils__/mockData/mockServiceAuthorizations.js.map +1 -1
  46. package/dist/__testUtils__/mockData/mockServices.js +1 -1
  47. package/dist/__testUtils__/mockData/mockServices.js.map +1 -1
  48. package/dist/__testUtils__/mockData/mockUnlistedPrograms.js +1 -1
  49. package/dist/__testUtils__/mockData/mockUnlistedPrograms.js.map +1 -1
  50. package/dist/__testUtils__/mockData/utils.js +282 -218
  51. package/dist/__testUtils__/mockData/utils.js.map +1 -1
  52. package/dist/__testUtils__/mockServer/handlers.js +82 -80
  53. package/dist/__testUtils__/mockServer/handlers.js.map +1 -1
  54. package/dist/__testUtils__/mockServer/server.js +13 -7
  55. package/dist/__testUtils__/mockServer/server.js.map +1 -1
  56. package/dist/__testUtils__/test-utils.js +18 -22
  57. package/dist/__testUtils__/test-utils.js.map +1 -1
  58. package/dist/actions/Document/Contact/Group/fetchCaseDocuments.js +41 -10
  59. package/dist/actions/Document/Contact/Group/fetchCaseDocuments.js.map +1 -1
  60. package/dist/actions/Document/Contact/Group/fetchContactDocuments.js +41 -10
  61. package/dist/actions/Document/Contact/Group/fetchContactDocuments.js.map +1 -1
  62. package/dist/actions/Document/Contact/Group/fileUploadUtils.js +10 -8
  63. package/dist/actions/Document/Contact/Group/fileUploadUtils.js.map +1 -1
  64. package/dist/actions/Group/fetchCoreGroupForms.js +97 -46
  65. package/dist/actions/Group/fetchCoreGroupForms.js.map +1 -1
  66. package/dist/actions/Referral/cannotMoveToReferralReasons.js +21 -23
  67. package/dist/actions/Referral/cannotMoveToReferralReasons.js.map +1 -1
  68. package/dist/actions/Referral/fetchCoreServices.js +169 -70
  69. package/dist/actions/Referral/fetchCoreServices.js.map +1 -1
  70. package/dist/actions/Referral/fetchNetworks.js +44 -11
  71. package/dist/actions/Referral/fetchNetworks.js.map +1 -1
  72. package/dist/actions/Referral/fetchPrimaryWorkers.js +84 -51
  73. package/dist/actions/Referral/fetchPrimaryWorkers.js.map +1 -1
  74. package/dist/actions/Referral/removeReferralProgram.js +15 -10
  75. package/dist/actions/Referral/removeReferralProgram.js.map +1 -1
  76. package/dist/api/ApiHooks.js +39 -40
  77. package/dist/api/ApiHooks.js.map +1 -1
  78. package/dist/api/config.js +23 -20
  79. package/dist/api/config.js.map +1 -1
  80. package/dist/common/form/CurrencyField/index.js +21 -22
  81. package/dist/common/form/CurrencyField/index.js.map +1 -1
  82. package/dist/common/form/DocumentUploader/components/ContactDocumentsSelector.js +48 -51
  83. package/dist/common/form/DocumentUploader/components/ContactDocumentsSelector.js.map +1 -1
  84. package/dist/common/form/DocumentUploader/components/DocumentsListView.js +12 -14
  85. package/dist/common/form/DocumentUploader/components/DocumentsListView.js.map +1 -1
  86. package/dist/common/form/DocumentUploader/components/ListViewDocument.js +17 -21
  87. package/dist/common/form/DocumentUploader/components/ListViewDocument.js.map +1 -1
  88. package/dist/common/form/ErrorMessage/index.js +9 -17
  89. package/dist/common/form/ErrorMessage/index.js.map +1 -1
  90. package/dist/common/form/FileUploadV2/FileUpload.js +137 -159
  91. package/dist/common/form/FileUploadV2/FileUpload.js.map +1 -1
  92. package/dist/common/form/FileUploadV2/components/FilePreview.js +5 -8
  93. package/dist/common/form/FileUploadV2/components/FilePreview.js.map +1 -1
  94. package/dist/common/form/FileUploadV2/components/FilePreviewWrapper.js +21 -26
  95. package/dist/common/form/FileUploadV2/components/FilePreviewWrapper.js.map +1 -1
  96. package/dist/common/form/FormForm/index.js +194 -143
  97. package/dist/common/form/FormForm/index.js.map +1 -1
  98. package/dist/common/utils/utils.js +3 -3
  99. package/dist/common/utils/utils.js.map +1 -1
  100. package/dist/components/Card.js +8 -12
  101. package/dist/components/Card.js.map +1 -1
  102. package/dist/components/CreateReferralContainer.js +13 -21
  103. package/dist/components/CreateReferralContainer.js.map +1 -1
  104. package/dist/components/DollarAmount.js +14 -18
  105. package/dist/components/DollarAmount.js.map +1 -1
  106. package/dist/components/ExpandableButton.js +16 -21
  107. package/dist/components/ExpandableButton.js.map +1 -1
  108. package/dist/components/NavButtons.js +51 -57
  109. package/dist/components/NavButtons.js.map +1 -1
  110. package/dist/components/ReferralStepper.js +41 -44
  111. package/dist/components/ReferralStepper.js.map +1 -1
  112. package/dist/components/SearchableField.js +125 -121
  113. package/dist/components/SearchableField.js.map +1 -1
  114. package/dist/components/StepHeader.js +16 -25
  115. package/dist/components/StepHeader.js.map +1 -1
  116. package/dist/components/Stepper.js +51 -55
  117. package/dist/components/Stepper.js.map +1 -1
  118. package/dist/components/modal/Dialog.js +170 -141
  119. package/dist/components/modal/Dialog.js.map +1 -1
  120. package/dist/components/modal/Overlay.js +1 -2
  121. package/dist/components/modal/Overlay.js.map +1 -1
  122. package/dist/components/service_authorization/AuthorizationSpendCard.js +60 -72
  123. package/dist/components/service_authorization/AuthorizationSpendCard.js.map +1 -1
  124. package/dist/components/service_authorization/CapsInfo.js +120 -143
  125. package/dist/components/service_authorization/CapsInfo.js.map +1 -1
  126. package/dist/components/service_authorization/CaseStatus.js +14 -18
  127. package/dist/components/service_authorization/CaseStatus.js.map +1 -1
  128. package/dist/components/service_authorization/PreviousAuthorizationRequestsDetails.js +96 -121
  129. package/dist/components/service_authorization/PreviousAuthorizationRequestsDetails.js.map +1 -1
  130. package/dist/components/service_authorization/ReferralAuthSpendExpandable.js +43 -43
  131. package/dist/components/service_authorization/ReferralAuthSpendExpandable.js.map +1 -1
  132. package/dist/components/service_authorization/ReferralAuthorizationRequestSummary.js +65 -82
  133. package/dist/components/service_authorization/ReferralAuthorizationRequestSummary.js.map +1 -1
  134. package/dist/components/service_authorization/Spend.js +5 -10
  135. package/dist/components/service_authorization/Spend.js.map +1 -1
  136. package/dist/components/service_authorization/formatShortDate.js +6 -6
  137. package/dist/components/service_authorization/formatShortDate.js.map +1 -1
  138. package/dist/components/service_authorization/messageConstants.js +2 -2
  139. package/dist/components/service_authorization/messageConstants.js.map +1 -1
  140. package/dist/components/spinners/OverlaySpinner/OverlaySpinner.js +23 -34
  141. package/dist/components/spinners/OverlaySpinner/OverlaySpinner.js.map +1 -1
  142. package/dist/components/spinners/Spinner/Spinner.js +27 -33
  143. package/dist/components/spinners/Spinner/Spinner.js.map +1 -1
  144. package/dist/constants/enums.js +1 -1
  145. package/dist/constants/enums.js.map +1 -1
  146. package/dist/constants/eventConstants.js +48 -48
  147. package/dist/constants/eventConstants.js.map +1 -1
  148. package/dist/constants/findEnumDisplayName.js +3 -3
  149. package/dist/constants/findEnumDisplayName.js.map +1 -1
  150. package/dist/constants.js +6 -6
  151. package/dist/constants.js.map +1 -1
  152. package/dist/context/AppCreateReferralProvider.js +36 -25
  153. package/dist/context/AppCreateReferralProvider.js.map +1 -1
  154. package/dist/context/state.js +5 -2
  155. package/dist/context/state.js.map +1 -1
  156. package/dist/context/withAppCreateReferralContext.js +5 -9
  157. package/dist/context/withAppCreateReferralContext.js.map +1 -1
  158. package/dist/hooks/__tests__/useCreateReferrals.test.js +560 -456
  159. package/dist/hooks/__tests__/useCreateReferrals.test.js.map +1 -1
  160. package/dist/hooks/sendReferral.js +339 -155
  161. package/dist/hooks/sendReferral.js.map +1 -1
  162. package/dist/hooks/useClinicalModificationOptions.js +34 -24
  163. package/dist/hooks/useClinicalModificationOptions.js.map +1 -1
  164. package/dist/hooks/useCreateReferrals.js +722 -463
  165. package/dist/hooks/useCreateReferrals.js.map +1 -1
  166. package/dist/hooks/useCreateResourceList.js +76 -56
  167. package/dist/hooks/useCreateResourceList.js.map +1 -1
  168. package/dist/hooks/useCreateShareEvent.js +42 -18
  169. package/dist/hooks/useCreateShareEvent.js.map +1 -1
  170. package/dist/hooks/useForwardReferral.js +118 -78
  171. package/dist/hooks/useForwardReferral.js.map +1 -1
  172. package/dist/hooks/usePerson.js +49 -21
  173. package/dist/hooks/usePerson.js.map +1 -1
  174. package/dist/hooks/useUpdateResourceList.js +28 -34
  175. package/dist/hooks/useUpdateResourceList.js.map +1 -1
  176. package/dist/pages/builder/AboutGroupedReferralsModal.js +27 -48
  177. package/dist/pages/builder/AboutGroupedReferralsModal.js.map +1 -1
  178. package/dist/pages/builder/AuthorizationSubform.js +131 -143
  179. package/dist/pages/builder/AuthorizationSubform.js.map +1 -1
  180. package/dist/pages/builder/ChooseOneServiceTypeModal.js +53 -56
  181. package/dist/pages/builder/ChooseOneServiceTypeModal.js.map +1 -1
  182. package/dist/pages/builder/DetailsDrawer.js +72 -74
  183. package/dist/pages/builder/DetailsDrawer.js.map +1 -1
  184. package/dist/pages/builder/LineItem.js +25 -28
  185. package/dist/pages/builder/LineItem.js.map +1 -1
  186. package/dist/pages/builder/NoReferralsDisplay.js +29 -41
  187. package/dist/pages/builder/NoReferralsDisplay.js.map +1 -1
  188. package/dist/pages/builder/ProgramHeader.js +20 -33
  189. package/dist/pages/builder/ProgramHeader.js.map +1 -1
  190. package/dist/pages/builder/ProgramMenu.js +18 -19
  191. package/dist/pages/builder/ProgramMenu.js.map +1 -1
  192. package/dist/pages/builder/ReferralBuilder.js +443 -341
  193. package/dist/pages/builder/ReferralBuilder.js.map +1 -1
  194. package/dist/pages/builder/ReferralBuilderForm.js +392 -323
  195. package/dist/pages/builder/ReferralBuilderForm.js.map +1 -1
  196. package/dist/pages/builder/ReferralCard.js +99 -125
  197. package/dist/pages/builder/ReferralCard.js.map +1 -1
  198. package/dist/pages/builder/ReferralProgramCard.js +160 -109
  199. package/dist/pages/builder/ReferralProgramCard.js.map +1 -1
  200. package/dist/pages/builder/ReferralProgramMenu.js +116 -102
  201. package/dist/pages/builder/ReferralProgramMenu.js.map +1 -1
  202. package/dist/pages/builder/__tests__/AuthRequiredClinicalCodes.test.js +246 -99
  203. package/dist/pages/builder/__tests__/AuthRequiredClinicalCodes.test.js.map +1 -1
  204. package/dist/pages/builder/__tests__/AuthRequiredNonFundedPrograms.test.js +86 -48
  205. package/dist/pages/builder/__tests__/AuthRequiredNonFundedPrograms.test.js.map +1 -1
  206. package/dist/pages/builder/__tests__/AuthorizationRequiredPrograms.test.js +133 -74
  207. package/dist/pages/builder/__tests__/AuthorizationRequiredPrograms.test.js.map +1 -1
  208. package/dist/pages/builder/__tests__/NonSensitiveGroupedPrograms.test.js +1269 -674
  209. package/dist/pages/builder/__tests__/NonSensitiveGroupedPrograms.test.js.map +1 -1
  210. package/dist/pages/builder/__tests__/NonSensitiveSingleProgram.test.js +575 -305
  211. package/dist/pages/builder/__tests__/NonSensitiveSingleProgram.test.js.map +1 -1
  212. package/dist/pages/builder/__tests__/ReferralBuilder.test.js +45 -14
  213. package/dist/pages/builder/__tests__/ReferralBuilder.test.js.map +1 -1
  214. package/dist/pages/builder/__tests__/SensitiveProviderGroupedPrograms.test.js +815 -407
  215. package/dist/pages/builder/__tests__/SensitiveProviderGroupedPrograms.test.js.map +1 -1
  216. package/dist/pages/builder/__tests__/SensitiveServiceGroupedPrograms.test.js +254 -139
  217. package/dist/pages/builder/__tests__/SensitiveServiceGroupedPrograms.test.js.map +1 -1
  218. package/dist/pages/builder/__tests__/SensitiveServiceSensitiveProviderGroupedPrograms.test.js +518 -262
  219. package/dist/pages/builder/__tests__/SensitiveServiceSensitiveProviderGroupedPrograms.test.js.map +1 -1
  220. package/dist/pages/builder/__tests__/SensitiveSingleProgram.test.js +504 -273
  221. package/dist/pages/builder/__tests__/SensitiveSingleProgram.test.js.map +1 -1
  222. package/dist/pages/builder/buildDraftState.js +21 -21
  223. package/dist/pages/builder/buildDraftState.js.map +1 -1
  224. package/dist/pages/builder/buildGroupedReferrals.js +113 -80
  225. package/dist/pages/builder/buildGroupedReferrals.js.map +1 -1
  226. package/dist/pages/builder/constants.js +12 -12
  227. package/dist/pages/builder/constants.js.map +1 -1
  228. package/dist/pages/builder/formatProgramDetail.js +180 -152
  229. package/dist/pages/builder/formatProgramDetail.js.map +1 -1
  230. package/dist/pages/builder/useBuildReferrals.js +163 -95
  231. package/dist/pages/builder/useBuildReferrals.js.map +1 -1
  232. package/dist/pages/builder/utils.js +133 -84
  233. package/dist/pages/builder/utils.js.map +1 -1
  234. package/dist/pages/review/DeleteReferralModal.js +31 -45
  235. package/dist/pages/review/DeleteReferralModal.js.map +1 -1
  236. package/dist/pages/review/DropdownMultiplesReferrals.js +92 -75
  237. package/dist/pages/review/DropdownMultiplesReferrals.js.map +1 -1
  238. package/dist/pages/review/ReferralsSent.js +239 -200
  239. package/dist/pages/review/ReferralsSent.js.map +1 -1
  240. package/dist/pages/review/Review.js +554 -451
  241. package/dist/pages/review/Review.js.map +1 -1
  242. package/dist/pages/review/__tests__/CallbackNotifications.test.js +66 -46
  243. package/dist/pages/review/__tests__/CallbackNotifications.test.js.map +1 -1
  244. package/dist/pages/review/__tests__/ReferralsSent.test.js +349 -189
  245. package/dist/pages/review/__tests__/ReferralsSent.test.js.map +1 -1
  246. package/dist/pages/review/__tests__/Review.test.js +599 -380
  247. package/dist/pages/review/__tests__/Review.test.js.map +1 -1
  248. package/dist/pages/review/__tests__/data.js +5 -5
  249. package/dist/pages/review/__tests__/data.js.map +1 -1
  250. package/dist/pages/review/constants.js +5 -5
  251. package/dist/pages/review/constants.js.map +1 -1
  252. package/dist/pages/supporting-info/SupportingInfo.js +168 -123
  253. package/dist/pages/supporting-info/SupportingInfo.js.map +1 -1
  254. package/dist/pages/supporting-info/__tests__/SupportingInfo.test.js +164 -85
  255. package/dist/pages/supporting-info/__tests__/SupportingInfo.test.js.map +1 -1
  256. package/dist/pages/supporting-info/__tests__/data.js +1 -1
  257. package/dist/pages/supporting-info/__tests__/data.js.map +1 -1
  258. package/dist/reportWebVitals.js +7 -9
  259. package/dist/reportWebVitals.js.map +1 -1
  260. package/dist/setupTests.js +30 -8
  261. package/dist/setupTests.js.map +1 -1
  262. package/dist/utils/__tests__/canChangeHoldReason.test.js +23 -23
  263. package/dist/utils/__tests__/canChangeHoldReason.test.js.map +1 -1
  264. package/dist/utils/__tests__/checkRoles.test.js +10 -10
  265. package/dist/utils/__tests__/checkRoles.test.js.map +1 -1
  266. package/dist/utils/canAccept.js +9 -14
  267. package/dist/utils/canAccept.js.map +1 -1
  268. package/dist/utils/canChangeHoldReason.js +11 -16
  269. package/dist/utils/canChangeHoldReason.js.map +1 -1
  270. package/dist/utils/canHoldForReview.js +8 -13
  271. package/dist/utils/canHoldForReview.js.map +1 -1
  272. package/dist/utils/canReject.js +14 -21
  273. package/dist/utils/canReject.js.map +1 -1
  274. package/dist/utils/checkRoles.js +10 -10
  275. package/dist/utils/checkRoles.js.map +1 -1
  276. package/dist/utils/getProgramServicesPayload.js +20 -20
  277. package/dist/utils/getProgramServicesPayload.js.map +1 -1
  278. package/dist/utils/hasUserRole.js +8 -8
  279. package/dist/utils/hasUserRole.js.map +1 -1
  280. package/dist/utils/isReferralForwarded.js +2 -4
  281. package/dist/utils/isReferralForwarded.js.map +1 -1
  282. package/dist/utils/referralToConsent.js +19 -14
  283. package/dist/utils/referralToConsent.js.map +1 -1
  284. package/dist/utils/useDebounce.js +18 -7
  285. package/dist/utils/useDebounce.js.map +1 -1
  286. package/dist/utils/useFeatureFlag.js +1 -1
  287. package/dist/utils/useFeatureFlag.js.map +1 -1
  288. package/dist/utils/validateCostAmount.js +4 -4
  289. package/dist/utils/validateCostAmount.js.map +1 -1
  290. package/dist/utils/validateUnitAmount.js +4 -4
  291. package/dist/utils/validateUnitAmount.js.map +1 -1
  292. package/package.json +35 -65
@@ -1,6 +1,30 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
1
+ function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
2
+ function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
3
+ function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
4
+ function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
5
+ function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
6
+ function _regeneratorRuntime() { "use strict"; var r = _regenerator(), e = r.m(_regeneratorRuntime), t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor; function n(r) { var e = "function" == typeof r && r.constructor; return !!e && (e === t || "GeneratorFunction" === (e.displayName || e.name)); } var o = { throw: 1, return: 2, break: 3, continue: 3 }; function a(r) { var e, t; return function (n) { e || (e = { stop: function stop() { return t(n.a, 2); }, catch: function _catch() { return n.v; }, abrupt: function abrupt(r, e) { return t(n.a, o[r], e); }, delegateYield: function delegateYield(r, o, a) { return e.resultName = o, t(n.d, _regeneratorValues(r), a); }, finish: function finish(r) { return t(n.f, r); } }, t = function t(r, _t, o) { n.p = e.prev, n.n = e.next; try { return r(_t, o); } finally { e.next = n.n; } }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n; try { return r.call(this, e); } finally { n.p = e.prev, n.n = e.next; } }; } return (_regeneratorRuntime = function _regeneratorRuntime() { return { wrap: function wrap(e, t, n, o) { return r.w(a(e), t, n, o && o.reverse()); }, isGeneratorFunction: n, mark: r.m, awrap: function awrap(r, e) { return new _OverloadYield(r, e); }, AsyncIterator: _regeneratorAsyncIterator, async: function async(r, e, t, o, u) { return (n(e) ? _regeneratorAsyncGen : _regeneratorAsync)(a(r), e, t, o, u); }, keys: _regeneratorKeys, values: _regeneratorValues }; })(); }
7
+ function _regeneratorValues(e) { if (null != e) { var t = e["function" == typeof Symbol && Symbol.iterator || "@@iterator"], r = 0; if (t) return t.call(e); if ("function" == typeof e.next) return e; if (!isNaN(e.length)) return { next: function next() { return e && r >= e.length && (e = void 0), { value: e && e[r++], done: !e }; } }; } throw new TypeError(_typeof(e) + " is not iterable"); }
8
+ function _regeneratorKeys(e) { var n = Object(e), r = []; for (var t in n) r.unshift(t); return function e() { for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e; return e.done = !0, e; }; }
9
+ function _regeneratorAsync(n, e, r, t, o) { var a = _regeneratorAsyncGen(n, e, r, t, o); return a.next().then(function (n) { return n.done ? n.value : a.next(); }); }
10
+ function _regeneratorAsyncGen(r, e, t, o, n) { return new _regeneratorAsyncIterator(_regenerator().w(r, e, t, o), n || Promise); }
11
+ function _regeneratorAsyncIterator(t, e) { function n(r, o, i, f) { try { var c = t[r](o), u = c.value; return u instanceof _OverloadYield ? e.resolve(u.v).then(function (t) { n("next", t, i, f); }, function (t) { n("throw", t, i, f); }) : e.resolve(u).then(function (t) { c.value = t, i(c); }, function (t) { return n("throw", t, i, f); }); } catch (t) { f(t); } } var r; this.next || (_regeneratorDefine2(_regeneratorAsyncIterator.prototype), _regeneratorDefine2(_regeneratorAsyncIterator.prototype, "function" == typeof Symbol && Symbol.asyncIterator || "@asyncIterator", function () { return this; })), _regeneratorDefine2(this, "_invoke", function (t, o, i) { function f() { return new e(function (e, r) { n(t, i, e, r); }); } return r = r ? r.then(f, f) : f(); }, !0); }
12
+ function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = !1, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (c = i[4] || 3, u = i[5] === e ? i[3] : i[5], i[4] = 3, i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = !0, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i.return) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), !0), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
13
+ function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { if (r) i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n;else { var o = function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); }; o("next", 0), o("throw", 1), o("return", 2); } }, _regeneratorDefine2(e, r, n, t); }
14
+ function _OverloadYield(e, d) { this.v = e, this.k = d; }
2
15
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
3
16
  function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
17
+ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
18
+ function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
19
+ function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
20
+ function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
21
+ function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
22
+ function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
23
+ function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
24
+ function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
25
+ function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
26
+ function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
27
+ function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
4
28
  import { get, map, isEmpty } from 'lodash';
5
29
  import moment from 'moment';
6
30
  import fspUtils from '@unite-us/client-utils/dist/utils/feeSchedulePrograms';
@@ -11,8 +35,8 @@ import { useAppCreateReferralContext } from '../context/AppCreateReferralProvide
11
35
  import { useFeatureFlag } from '../utils/useFeatureFlag';
12
36
  import referralToConsent from '../utils/referralToConsent';
13
37
  import { formatShortDate2FromTimestamp } from '../components/service_authorization/formatShortDate';
14
- const validateRequiredValues = (type, values) => {
15
- let requiredFields = [];
38
+ var validateRequiredValues = function validateRequiredValues(type, values) {
39
+ var requiredFields = [];
16
40
  if (type === 'case') {
17
41
  requiredFields = ['description', 'service', 'provider', 'network', 'person'];
18
42
  } else if (type === 'note') {
@@ -20,81 +44,85 @@ const validateRequiredValues = (type, values) => {
20
44
  } else if (type === 'referral') {
21
45
  requiredFields = ['case', 'receiving_program', 'receiving_provider', 'receiving_network', 'sending_provider', 'sending_network'];
22
46
  }
23
- return requiredFields.filter(field => !values[field]);
47
+ return requiredFields.filter(function (field) {
48
+ return !values[field];
49
+ });
24
50
  };
25
51
  export default function useCreateReferrals() {
26
- const {
27
- state: {
28
- currentEmployee,
29
- formResponses,
30
- person,
31
- referrals,
32
- formSubmissionId,
33
- assistanceRequestId,
34
- screeningId
35
- }
36
- } = useAppCreateReferralContext();
37
- const crtb1239AdaptDraftReferralFlow = useFeatureFlag('crtb1239AdaptDraftReferralFlow', false);
38
- const hint542SupersetUnlistedPrograms = useFeatureFlag('hint542SupersetUnlistedPrograms', false);
39
- const pays5590RefactorInsuranceFilters = useFeatureFlag('pays5590RefactorInsuranceFilters', false);
40
- const showClientNeed = useFeatureFlag('crtb1788ClientNeeds', false);
41
- const {
42
- createRecord: createReferral
43
- } = useCreateRecord('referral');
44
- const {
45
- createRecord: createCase
46
- } = useCreateRecord('case');
47
- const {
48
- createRecord: createServiceAuthorization
49
- } = useCreateRecord('service_authorization');
50
- const {
51
- createRecord: createFormSubmission
52
- } = useCreateRecord('form_submission');
53
- const {
54
- createRecord: createNote
55
- } = useCreateRecord('note');
56
- const {
57
- updateRecord: updateReferral
58
- } = useUpdateRecord('referral');
59
- const {
60
- updateRecord: updateCase
61
- } = useUpdateRecord('case');
62
- const {
63
- updateRecord: updateServiceAuthorization
64
- } = useUpdateRecord('service_authorization');
65
- const createErrorMessage = error => {
66
- return error.response.data.errors.map(error => error.title).join(', ');
52
+ var _useAppCreateReferral = useAppCreateReferralContext(),
53
+ _useAppCreateReferral2 = _useAppCreateReferral.state,
54
+ currentEmployee = _useAppCreateReferral2.currentEmployee,
55
+ formResponses = _useAppCreateReferral2.formResponses,
56
+ person = _useAppCreateReferral2.person,
57
+ referrals = _useAppCreateReferral2.referrals,
58
+ formSubmissionId = _useAppCreateReferral2.formSubmissionId,
59
+ assistanceRequestId = _useAppCreateReferral2.assistanceRequestId,
60
+ screeningId = _useAppCreateReferral2.screeningId;
61
+ var crtb1239AdaptDraftReferralFlow = useFeatureFlag('crtb1239AdaptDraftReferralFlow', false);
62
+ var hint542SupersetUnlistedPrograms = useFeatureFlag('hint542SupersetUnlistedPrograms', false);
63
+ var pays5590RefactorInsuranceFilters = useFeatureFlag('pays5590RefactorInsuranceFilters', false);
64
+ var showClientNeed = useFeatureFlag('crtb1788ClientNeeds', false);
65
+ var _useCreateRecord = useCreateRecord('referral'),
66
+ createReferral = _useCreateRecord.createRecord;
67
+ var _useCreateRecord2 = useCreateRecord('case'),
68
+ createCase = _useCreateRecord2.createRecord;
69
+ var _useCreateRecord3 = useCreateRecord('service_authorization'),
70
+ createServiceAuthorization = _useCreateRecord3.createRecord;
71
+ var _useCreateRecord4 = useCreateRecord('form_submission'),
72
+ createFormSubmission = _useCreateRecord4.createRecord;
73
+ var _useCreateRecord5 = useCreateRecord('note'),
74
+ createNote = _useCreateRecord5.createRecord;
75
+ var _useUpdateRecord = useUpdateRecord('referral'),
76
+ updateReferral = _useUpdateRecord.updateRecord;
77
+ var _useUpdateRecord2 = useUpdateRecord('case'),
78
+ updateCase = _useUpdateRecord2.updateRecord;
79
+ var _useUpdateRecord3 = useUpdateRecord('service_authorization'),
80
+ updateServiceAuthorization = _useUpdateRecord3.updateRecord;
81
+ var createErrorMessage = function createErrorMessage(error) {
82
+ return error.response.data.errors.map(function (error) {
83
+ return error.title;
84
+ }).join(', ');
67
85
  };
68
- const uploadDocuments = (referral, caseToUploadDoc) => {
69
- const attachableDocuments = get(referral, 'attachableDocuments', []);
70
- const filteredDocuments = attachableDocuments.filter(doc => doc.attached === true);
71
- const attachedDocuments = filteredDocuments.map(ad => ({
72
- title: ad.document.title,
73
- id: ad.document.id
74
- }));
86
+ var uploadDocuments = function uploadDocuments(referral, caseToUploadDoc) {
87
+ var attachableDocuments = get(referral, 'attachableDocuments', []);
88
+ var filteredDocuments = attachableDocuments.filter(function (doc) {
89
+ return doc.attached === true;
90
+ });
91
+ var attachedDocuments = filteredDocuments.map(function (ad) {
92
+ return {
93
+ title: ad.document.title,
94
+ id: ad.document.id
95
+ };
96
+ });
75
97
  if (!isEmpty(attachedDocuments)) {
76
- const attachDocumentsToResource = () => coreApi.setRelationship('case', caseToUploadDoc.id, {
77
- relationshipModel: 'file_upload',
78
- value: attachedDocuments.map(a => a.id)
79
- });
80
- const uploadPromises = !isEmpty(attachedDocuments) && attachDocumentsToResource();
98
+ var attachDocumentsToResource = function attachDocumentsToResource() {
99
+ return coreApi.setRelationship('case', caseToUploadDoc.id, {
100
+ relationshipModel: 'file_upload',
101
+ value: attachedDocuments.map(function (a) {
102
+ return a.id;
103
+ })
104
+ });
105
+ };
106
+ var uploadPromises = !isEmpty(attachedDocuments) && attachDocumentsToResource();
81
107
  Promise.all([uploadPromises]);
82
108
  }
83
- const uploadedDocuments = get(referral, 'attachments', []);
109
+ var uploadedDocuments = get(referral, 'attachments', []);
84
110
  if (!isEmpty(uploadedDocuments)) {
85
- const uploadDocumentsToResource = () => uploadedDocuments.map(d => coreApi.uploadFile('case', caseToUploadDoc.id, d.file));
86
- const uploadPromises = uploadDocumentsToResource();
87
- Promise.all([...(uploadPromises || [])]);
111
+ var uploadDocumentsToResource = function uploadDocumentsToResource() {
112
+ return uploadedDocuments.map(function (d) {
113
+ return coreApi.uploadFile('case', caseToUploadDoc.id, d.file);
114
+ });
115
+ };
116
+ var _uploadPromises = uploadDocumentsToResource();
117
+ Promise.all(_toConsumableArray(_uploadPromises || []));
88
118
  }
89
119
  };
90
- const submitAssessments = _ref => {
91
- let {
92
- cases,
93
- latestResponses
94
- } = _ref;
95
- let promises = [];
96
- map(cases, serviceCase => {
97
- map(latestResponses || formResponses, assessment => {
120
+ var submitAssessments = function submitAssessments(_ref) {
121
+ var cases = _ref.cases,
122
+ latestResponses = _ref.latestResponses;
123
+ var promises = [];
124
+ map(cases, function (serviceCase) {
125
+ map(latestResponses || formResponses, function (assessment) {
98
126
  var _assessment$form;
99
127
  if (!isEmpty(assessment) && (_assessment$form = assessment.form) !== null && _assessment$form !== void 0 && (_assessment$form = _assessment$form.service_type_ids) !== null && _assessment$form !== void 0 && _assessment$form.includes(serviceCase.service.id)) {
100
128
  promises.push(createFormSubmission({
@@ -108,420 +136,651 @@ export default function useCreateReferrals() {
108
136
  }
109
137
  });
110
138
  });
111
- return Promise.all(promises).then(responses => {
139
+ return Promise.all(promises).then(function (responses) {
112
140
  return responses;
113
- }).catch(err => {
141
+ }).catch(function (err) {
114
142
  CALLBACKS.notify.error("Error submitting Assessments");
115
143
  throw err;
116
144
  });
117
145
  };
118
- const createReferrals = async _ref2 => {
119
- let {
120
- referrals,
121
- person,
122
- draft
123
- } = _ref2;
124
- const result = {
125
- referrals: [],
126
- cases: [],
127
- shippingDetail: [],
128
- referralsToConsent: []
129
- };
130
- let groupedReferrals = referrals.some(r => get(r, 'programs', []).length > 1);
131
- for (let i = 0; i < referrals.length; i += 1) {
132
- result.shippingDetail.push({
133
- index: i,
134
- sent: false,
135
- error: null
136
- });
137
- try {
138
- if (crtb1239AdaptDraftReferralFlow && referrals[i].state === "draft") {
139
- var _referrals$i$case;
140
- let resultDraft = undefined;
141
- if (isEmpty((_referrals$i$case = referrals[i].case) === null || _referrals$i$case === void 0 ? void 0 : _referrals$i$case.service_authorization)) {
142
- resultDraft = await updateDraftReferralCrtb1239(referrals[i]);
143
- } else {
144
- resultDraft = await updateDraftReferral(referrals[i], draft);
145
- }
146
- let item = result.shippingDetail.find(item => item.index === i);
147
- if (item) item.sent = true;
148
- result.cases.push(resultDraft.cases[0]);
149
- result.referrals.push(...resultDraft.referrals);
146
+ var createReferrals = /*#__PURE__*/function () {
147
+ var _ref3 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(_ref2) {
148
+ var referrals, person, draft, result, groupedReferrals, _loop, i;
149
+ return _regeneratorRuntime().wrap(function _callee$(_context2) {
150
+ while (1) switch (_context2.prev = _context2.next) {
151
+ case 0:
152
+ referrals = _ref2.referrals, person = _ref2.person, draft = _ref2.draft;
153
+ result = {
154
+ referrals: [],
155
+ cases: [],
156
+ shippingDetail: [],
157
+ referralsToConsent: []
158
+ };
159
+ groupedReferrals = referrals.some(function (r) {
160
+ return get(r, 'programs', []).length > 1;
161
+ });
162
+ _loop = /*#__PURE__*/_regeneratorRuntime().mark(function _loop(i) {
163
+ var _referrals$i$case, _result$referrals, resultDraft, item, referralData, referral, referredToPrograms, isGrouped, isOON, createdCaseOrExistingAR, authorizationCreated, createdReferrals, j, programData, _referral$primaryWork, _referral$client_need, caseValues, missingCaseValues, caseResponse, _referral$client_need2, arCase, payload, feeScheduleProgram, _referral$paymentAuth, _referral$paymentAuth2, _responseInsurances$d, serviceStart, requestedStartDate, serviceEnd, requestedEndDate, amountRequested, icd10Codes, queryInsuranceParams, responseInsurances, insurances, state, createNoteForUnlistedProgramValues, missingNoteValues, noteReferral, _item, referralValues, missingReferralValues, responseReferral, _item2, _referralData;
164
+ return _regeneratorRuntime().wrap(function _loop$(_context) {
165
+ while (1) switch (_context.prev = _context.next) {
166
+ case 0:
167
+ result.shippingDetail.push({
168
+ index: i,
169
+ sent: false,
170
+ error: null
171
+ });
172
+ _context.prev = 1;
173
+ if (!(crtb1239AdaptDraftReferralFlow && referrals[i].state === "draft")) {
174
+ _context.next = 21;
175
+ break;
176
+ }
177
+ resultDraft = undefined;
178
+ if (!isEmpty((_referrals$i$case = referrals[i].case) === null || _referrals$i$case === void 0 ? void 0 : _referrals$i$case.service_authorization)) {
179
+ _context.next = 10;
180
+ break;
181
+ }
182
+ _context.next = 7;
183
+ return updateDraftReferralCrtb1239(referrals[i]);
184
+ case 7:
185
+ resultDraft = _context.sent;
186
+ _context.next = 13;
187
+ break;
188
+ case 10:
189
+ _context.next = 12;
190
+ return updateDraftReferral(referrals[i], draft);
191
+ case 12:
192
+ resultDraft = _context.sent;
193
+ case 13:
194
+ item = result.shippingDetail.find(function (item) {
195
+ return item.index === i;
196
+ });
197
+ if (item) item.sent = true;
198
+ result.cases.push(resultDraft.cases[0]);
199
+ (_result$referrals = result.referrals).push.apply(_result$referrals, _toConsumableArray(resultDraft.referrals));
150
200
 
151
- // From one draft multiple referrals could be created (grouped referrals)
152
- const referralData = referralToConsent({
153
- originalReferral: referrals[i],
154
- createdReferrals: resultDraft.referrals
155
- });
156
- if (referralData) result.referralsToConsent.push(referralData);
157
- } else {
158
- const referral = referrals[i];
159
- const referredToPrograms = get(referral, 'programs', []);
160
- const isGrouped = referralIsGrouped(referral);
161
- const isOON = referralIsOON(referral);
162
- let createdCaseOrExistingAR = null;
163
- let authorizationCreated = false;
164
- const createdReferrals = [];
165
- for (let j = 0; j < referredToPrograms.length; j += 1) {
166
- const programData = referredToPrograms[j];
167
- if (groupedReferrals && !createdCaseOrExistingAR || !groupedReferrals) {
168
- var _referral$primaryWork, _referral$client_need;
169
- let caseValues = _objectSpread(_objectSpread(_objectSpread({
170
- description: referral.description,
171
- state: referralIsOON(referral) ? 'off_platform' : 'draft',
172
- person: person.id,
173
- provider: referral.sendingProvider.id,
174
- network: referral.network.id,
175
- service: referral.service.id
176
- }, (_referral$primaryWork = referral.primaryWorker) !== null && _referral$primaryWork !== void 0 && _referral$primaryWork.id ? {
177
- primary_worker: referral.primaryWorker.id
178
- } : null), formSubmissionId ? {
179
- originating_form_submission: formSubmissionId
180
- } : null), screeningId ? {
181
- screening2_id: screeningId
182
- } : null);
183
- const missingCaseValues = validateRequiredValues('case', caseValues);
184
- if (missingCaseValues.length) {
185
- throw new Error("The following fields for the case are required: ".concat(missingCaseValues.join(', ')));
186
- }
187
- if (isOON) {
188
- caseValues = _objectSpread(_objectSpread({}, caseValues), {}, {
189
- opened_date: formatShortDate2FromTimestamp(referral.opened_date)
190
- });
191
- }
192
- if (showClientNeed && (_referral$client_need = referral.client_need) !== null && _referral$client_need !== void 0 && _referral$client_need.id) {
193
- caseValues.client_need_id = referral.client_need.id;
194
- }
195
- try {
196
- let caseResponse;
197
- if (assistanceRequestId && i === 0) {
198
- var _referral$client_need2;
199
- const arCase = get(assistanceRequestId, 'case', null);
200
- let payload = {
201
- description: referral.description,
202
- network: referral.network.id
203
- };
204
- if (referral.service.id && get(arCase, 'service.id') !== referral.service.id) {
205
- payload = _objectSpread(_objectSpread({}, payload), {}, {
201
+ // From one draft multiple referrals could be created (grouped referrals)
202
+ referralData = referralToConsent({
203
+ originalReferral: referrals[i],
204
+ createdReferrals: resultDraft.referrals
205
+ });
206
+ if (referralData) result.referralsToConsent.push(referralData);
207
+ _context.next = 126;
208
+ break;
209
+ case 21:
210
+ referral = referrals[i];
211
+ referredToPrograms = get(referral, 'programs', []);
212
+ isGrouped = referralIsGrouped(referral);
213
+ isOON = referralIsOON(referral);
214
+ createdCaseOrExistingAR = null;
215
+ authorizationCreated = false;
216
+ createdReferrals = [];
217
+ j = 0;
218
+ case 29:
219
+ if (!(j < referredToPrograms.length)) {
220
+ _context.next = 124;
221
+ break;
222
+ }
223
+ programData = referredToPrograms[j];
224
+ if (!(groupedReferrals && !createdCaseOrExistingAR || !groupedReferrals)) {
225
+ _context.next = 79;
226
+ break;
227
+ }
228
+ caseValues = _objectSpread(_objectSpread(_objectSpread({
229
+ description: referral.description,
230
+ state: referralIsOON(referral) ? 'off_platform' : 'draft',
231
+ person: person.id,
232
+ provider: referral.sendingProvider.id,
233
+ network: referral.network.id,
206
234
  service: referral.service.id
235
+ }, (_referral$primaryWork = referral.primaryWorker) !== null && _referral$primaryWork !== void 0 && _referral$primaryWork.id ? {
236
+ primary_worker: referral.primaryWorker.id
237
+ } : null), formSubmissionId ? {
238
+ originating_form_submission: formSubmissionId
239
+ } : null), screeningId ? {
240
+ screening2_id: screeningId
241
+ } : null);
242
+ missingCaseValues = validateRequiredValues('case', caseValues);
243
+ if (!missingCaseValues.length) {
244
+ _context.next = 36;
245
+ break;
246
+ }
247
+ throw new Error("The following fields for the case are required: ".concat(missingCaseValues.join(', ')));
248
+ case 36:
249
+ if (isOON) {
250
+ caseValues = _objectSpread(_objectSpread({}, caseValues), {}, {
251
+ opened_date: formatShortDate2FromTimestamp(referral.opened_date)
252
+ });
253
+ }
254
+ if (showClientNeed && (_referral$client_need = referral.client_need) !== null && _referral$client_need !== void 0 && _referral$client_need.id) {
255
+ caseValues.client_need_id = referral.client_need.id;
256
+ }
257
+ _context.prev = 38;
258
+ caseResponse = void 0;
259
+ if (!(assistanceRequestId && i === 0)) {
260
+ _context.next = 51;
261
+ break;
262
+ }
263
+ arCase = get(assistanceRequestId, 'case', null);
264
+ payload = {
265
+ description: referral.description,
266
+ network: referral.network.id
267
+ };
268
+ if (referral.service.id && get(arCase, 'service.id') !== referral.service.id) {
269
+ payload = _objectSpread(_objectSpread({}, payload), {}, {
270
+ service: referral.service.id
271
+ });
272
+ }
273
+ if (isOON) {
274
+ payload = _objectSpread(_objectSpread({}, payload), {}, {
275
+ primary_worker: referral.primaryWorker.id,
276
+ state: 'off_platform',
277
+ opened_date: formatShortDate2FromTimestamp(referral.opened_date)
278
+ });
279
+ }
280
+ if (showClientNeed && (_referral$client_need2 = referral.client_need) !== null && _referral$client_need2 !== void 0 && _referral$client_need2.id) {
281
+ payload.client_need_id = referral.client_need.id;
282
+ }
283
+ _context.next = 48;
284
+ return updateCase(arCase.id, payload);
285
+ case 48:
286
+ caseResponse = _context.sent;
287
+ _context.next = 54;
288
+ break;
289
+ case 51:
290
+ _context.next = 53;
291
+ return createCase(caseValues);
292
+ case 53:
293
+ caseResponse = _context.sent;
294
+ case 54:
295
+ createdCaseOrExistingAR = get(caseResponse, 'data.data', {});
296
+ feeScheduleProgram = referral.programs[0].fee_schedule_program;
297
+ if (!(feeScheduleProgram !== null && feeScheduleProgram !== void 0 && feeScheduleProgram.authorization_required)) {
298
+ _context.next = 72;
299
+ break;
300
+ }
301
+ serviceStart = referral === null || referral === void 0 || (_referral$paymentAuth = referral.paymentAuthForm) === null || _referral$paymentAuth === void 0 ? void 0 : _referral$paymentAuth.service_start;
302
+ requestedStartDate = serviceStart && moment.unix(serviceStart).toISOString();
303
+ serviceEnd = referral === null || referral === void 0 || (_referral$paymentAuth2 = referral.paymentAuthForm) === null || _referral$paymentAuth2 === void 0 ? void 0 : _referral$paymentAuth2.service_end;
304
+ requestedEndDate = serviceEnd && moment.unix(serviceEnd).toISOString();
305
+ if (pays5590RefactorInsuranceFilters) {
306
+ requestedStartDate = serviceStart && moment(requestedStartDate).add(1, 'day').toISOString();
307
+ requestedEndDate = serviceEnd && moment(requestedEndDate).subtract(1, 'day').toISOString();
308
+ }
309
+ amountRequested = referral.paymentAuthForm.amount_requested;
310
+ icd10Codes = referral.paymentAuthForm.icd10_code.id ? [referral.paymentAuthForm.icd10_code.id] : [];
311
+ queryInsuranceParams = {
312
+ person: person.id,
313
+ state: 'active',
314
+ enrolled_before: requestedStartDate,
315
+ expired_after: requestedEndDate,
316
+ 'plan.fee_schedules': feeScheduleProgram.fee_schedule.id,
317
+ sort: '-enrolled_at'
318
+ };
319
+ _context.next = 67;
320
+ return coreApi.query('insurance', queryInsuranceParams);
321
+ case 67:
322
+ responseInsurances = _context.sent;
323
+ insurances = responseInsurances === null || responseInsurances === void 0 || (_responseInsurances$d = responseInsurances.data) === null || _responseInsurances$d === void 0 ? void 0 : _responseInsurances$d.data;
324
+ _context.next = 71;
325
+ return createServiceAuthorization(_objectSpread(_objectSpread({
326
+ state: draft ? 'draft' : 'requested',
327
+ requested_starts_at: requestedStartDate,
328
+ requested_ends_at: requestedEndDate
329
+ }, fspUtils.isCostPaymentType(feeScheduleProgram.payment_type) ? {
330
+ requested_cents: amountRequested
331
+ } : {
332
+ requested_unit_amount: parseInt(amountRequested)
333
+ }), {}, {
334
+ case: createdCaseOrExistingAR.id,
335
+ fee_schedule_program: feeScheduleProgram.id,
336
+ requester: currentEmployee.id,
337
+ insurance: insurances[0].id,
338
+ person: person.id,
339
+ clinical_modifications: icd10Codes
340
+ }));
341
+ case 71:
342
+ authorizationCreated = true;
343
+ case 72:
344
+ result.cases.push(createdCaseOrExistingAR);
345
+ _context.next = 79;
346
+ break;
347
+ case 75:
348
+ _context.prev = 75;
349
+ _context.t0 = _context["catch"](38);
350
+ result.shippingDetail[i].error = "Error creating the Case: ".concat(createErrorMessage(_context.t0));
351
+ return _context.abrupt("continue", 121);
352
+ case 79:
353
+ uploadDocuments(referral, createdCaseOrExistingAR);
354
+ state = void 0;
355
+ if (draft) {
356
+ state = 'draft';
357
+ } else if (referralIsOON(referral)) {
358
+ state = 'off_platform';
359
+ } else if (authorizationCreated) {
360
+ state = 'pending_authorization';
361
+ } else {
362
+ state = 'sent';
363
+ }
364
+ if (!(hint542SupersetUnlistedPrograms && isUnlistedProgram(programData))) {
365
+ _context.next = 102;
366
+ break;
367
+ }
368
+ createNoteForUnlistedProgramValues = {
369
+ subjectType: 'case',
370
+ subject: createdCaseOrExistingAR.id,
371
+ employee: currentEmployee.id,
372
+ visibility: 'public',
373
+ category: 'external_provider',
374
+ text: "Referred off platform to ".concat(programData.name)
375
+ };
376
+ missingNoteValues = validateRequiredValues('note', createNoteForUnlistedProgramValues);
377
+ if (!missingNoteValues.length) {
378
+ _context.next = 88;
379
+ break;
380
+ }
381
+ result.shippingDetail[i].error = "The following fields for the unlisted program are required: ".concat(missingNoteValues.join(', '));
382
+ return _context.abrupt("continue", 121);
383
+ case 88:
384
+ _context.prev = 88;
385
+ createNote(createNoteForUnlistedProgramValues);
386
+ noteReferral = {
387
+ index: i,
388
+ sent: true
389
+ };
390
+ result.referrals.push(noteReferral);
391
+ _item = result.shippingDetail.find(function (item) {
392
+ return item.index === i;
207
393
  });
208
- }
209
- if (isOON) {
210
- payload = _objectSpread(_objectSpread({}, payload), {}, {
211
- primary_worker: referral.primaryWorker.id,
212
- state: 'off_platform',
213
- opened_date: formatShortDate2FromTimestamp(referral.opened_date)
394
+ if (_item) _item.sent = true;
395
+ _context.next = 100;
396
+ break;
397
+ case 96:
398
+ _context.prev = 96;
399
+ _context.t1 = _context["catch"](88);
400
+ result.shippingDetail[i].error = "Error creating the note on the case for the unlisted program";
401
+ return _context.abrupt("continue", 121);
402
+ case 100:
403
+ _context.next = 121;
404
+ break;
405
+ case 102:
406
+ referralValues = {
407
+ state: state,
408
+ case: createdCaseOrExistingAR.id,
409
+ is_grouped: isGrouped,
410
+ receiving_program: programData.id,
411
+ receiving_provider: programData.provider.id,
412
+ receiving_network: referral.network.id,
413
+ sending_provider: referral.sendingProvider.id,
414
+ sending_network: referral.network.id
415
+ };
416
+ missingReferralValues = validateRequiredValues('referral', referralValues);
417
+ if (!missingReferralValues.length) {
418
+ _context.next = 107;
419
+ break;
420
+ }
421
+ result.shippingDetail[i].error = "The following fields for the referral are required: ".concat(missingReferralValues.join(', '));
422
+ return _context.abrupt("continue", 121);
423
+ case 107:
424
+ _context.prev = 107;
425
+ _context.next = 110;
426
+ return createReferral(referralValues);
427
+ case 110:
428
+ responseReferral = _context.sent;
429
+ result.referrals.push(responseReferral.data.data);
430
+ _item2 = result.shippingDetail.find(function (item) {
431
+ return item.index === i;
214
432
  });
215
- }
216
- if (showClientNeed && (_referral$client_need2 = referral.client_need) !== null && _referral$client_need2 !== void 0 && _referral$client_need2.id) {
217
- payload.client_need_id = referral.client_need.id;
218
- }
219
- caseResponse = await updateCase(arCase.id, payload);
220
- } else {
221
- caseResponse = await createCase(caseValues);
222
- }
223
- createdCaseOrExistingAR = get(caseResponse, 'data.data', {});
224
- const feeScheduleProgram = referral.programs[0].fee_schedule_program;
225
- if (feeScheduleProgram !== null && feeScheduleProgram !== void 0 && feeScheduleProgram.authorization_required) {
226
- var _referral$paymentAuth, _referral$paymentAuth2, _responseInsurances$d;
227
- const serviceStart = referral === null || referral === void 0 || (_referral$paymentAuth = referral.paymentAuthForm) === null || _referral$paymentAuth === void 0 ? void 0 : _referral$paymentAuth.service_start;
228
- let requestedStartDate = serviceStart && moment.unix(serviceStart).toISOString();
229
- const serviceEnd = referral === null || referral === void 0 || (_referral$paymentAuth2 = referral.paymentAuthForm) === null || _referral$paymentAuth2 === void 0 ? void 0 : _referral$paymentAuth2.service_end;
230
- let requestedEndDate = serviceEnd && moment.unix(serviceEnd).toISOString();
231
- if (pays5590RefactorInsuranceFilters) {
232
- requestedStartDate = serviceStart && moment(requestedStartDate).add(1, 'day').toISOString();
233
- requestedEndDate = serviceEnd && moment(requestedEndDate).subtract(1, 'day').toISOString();
234
- }
235
- const amountRequested = referral.paymentAuthForm.amount_requested;
236
- const icd10Codes = referral.paymentAuthForm.icd10_code.id ? [referral.paymentAuthForm.icd10_code.id] : [];
237
- const queryInsuranceParams = {
238
- person: person.id,
239
- state: 'active',
240
- enrolled_before: requestedStartDate,
241
- expired_after: requestedEndDate,
242
- 'plan.fee_schedules': feeScheduleProgram.fee_schedule.id,
243
- sort: '-enrolled_at'
244
- };
245
- const responseInsurances = await coreApi.query('insurance', queryInsuranceParams);
246
- const insurances = responseInsurances === null || responseInsurances === void 0 || (_responseInsurances$d = responseInsurances.data) === null || _responseInsurances$d === void 0 ? void 0 : _responseInsurances$d.data;
247
- await createServiceAuthorization(_objectSpread(_objectSpread({
248
- state: draft ? 'draft' : 'requested',
249
- requested_starts_at: requestedStartDate,
250
- requested_ends_at: requestedEndDate
251
- }, fspUtils.isCostPaymentType(feeScheduleProgram.payment_type) ? {
252
- requested_cents: amountRequested
253
- } : {
254
- requested_unit_amount: parseInt(amountRequested)
255
- }), {}, {
256
- case: createdCaseOrExistingAR.id,
257
- fee_schedule_program: feeScheduleProgram.id,
258
- requester: currentEmployee.id,
259
- insurance: insurances[0].id,
260
- person: person.id,
261
- clinical_modifications: icd10Codes
262
- }));
263
- authorizationCreated = true;
433
+ if (_item2) _item2.sent = true;
434
+ createdReferrals.push(responseReferral.data.data);
435
+ _context.next = 121;
436
+ break;
437
+ case 117:
438
+ _context.prev = 117;
439
+ _context.t2 = _context["catch"](107);
440
+ result.shippingDetail[i].error = "Error creating the Referral: ".concat(createErrorMessage(_context.t2));
441
+ return _context.abrupt("continue", 121);
442
+ case 121:
443
+ j += 1;
444
+ _context.next = 29;
445
+ break;
446
+ case 124:
447
+ // From one referral multiple referrals could be created (grouped referrals)
448
+ _referralData = referralToConsent({
449
+ originalReferral: referral,
450
+ createdReferrals: createdReferrals
451
+ });
452
+ if (_referralData) result.referralsToConsent.push(_referralData);
453
+ case 126:
454
+ _context.next = 131;
455
+ break;
456
+ case 128:
457
+ _context.prev = 128;
458
+ _context.t3 = _context["catch"](1);
459
+ result.shippingDetail[i].error = "Unexpected error: ".concat(_context.t3.message);
460
+ case 131:
461
+ case "end":
462
+ return _context.stop();
264
463
  }
265
- result.cases.push(createdCaseOrExistingAR);
266
- } catch (err) {
267
- result.shippingDetail[i].error = "Error creating the Case: ".concat(createErrorMessage(err));
268
- continue;
464
+ }, _loop, null, [[1, 128], [38, 75], [88, 96], [107, 117]]);
465
+ });
466
+ i = 0;
467
+ case 5:
468
+ if (!(i < referrals.length)) {
469
+ _context2.next = 10;
470
+ break;
471
+ }
472
+ return _context2.delegateYield(_loop(i), "t0", 7);
473
+ case 7:
474
+ i += 1;
475
+ _context2.next = 5;
476
+ break;
477
+ case 10:
478
+ return _context2.abrupt("return", result);
479
+ case 11:
480
+ case "end":
481
+ return _context2.stop();
482
+ }
483
+ }, _callee);
484
+ }));
485
+ return function createReferrals(_x) {
486
+ return _ref3.apply(this, arguments);
487
+ };
488
+ }();
489
+ var updateDraftReferralCrtb1239 = /*#__PURE__*/function () {
490
+ var _ref4 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee2(referral) {
491
+ var _caseResponse$data, _caseResponse$data2, _yield$Promise$all, _yield$Promise$all2, caseRequestResponse, referralsRequestResponse, oldCase, oldReferrals, serviceTypeChanged, descriptionChanged, serviceCasePayload, caseResponse, referralsToDelete, formRecipientsIds, createReferralPromises, referralsResponse;
492
+ return _regeneratorRuntime().wrap(function _callee2$(_context3) {
493
+ while (1) switch (_context3.prev = _context3.next) {
494
+ case 0:
495
+ _context3.prev = 0;
496
+ _context3.next = 3;
497
+ return Promise.all([coreApi.findRecord('case', referral.case.id), coreApi.query('referral', {
498
+ case: referral.case.id
499
+ })]);
500
+ case 3:
501
+ _yield$Promise$all = _context3.sent;
502
+ _yield$Promise$all2 = _slicedToArray(_yield$Promise$all, 2);
503
+ caseRequestResponse = _yield$Promise$all2[0];
504
+ referralsRequestResponse = _yield$Promise$all2[1];
505
+ oldCase = get(caseRequestResponse, 'data.data', null);
506
+ oldReferrals = get(referralsRequestResponse, 'data.data', null);
507
+ serviceTypeChanged = referral.service.id !== oldCase.service_type.id;
508
+ descriptionChanged = referral.description && referral.description !== oldCase.description;
509
+ serviceCasePayload = _objectSpread(_objectSpread({}, serviceTypeChanged && {
510
+ service: {
511
+ id: referral.service.id
269
512
  }
513
+ }), descriptionChanged && {
514
+ description: referral.description
515
+ });
516
+ if (!isEmpty(serviceCasePayload)) {
517
+ _context3.next = 16;
518
+ break;
270
519
  }
271
- uploadDocuments(referral, createdCaseOrExistingAR);
272
- let state;
273
- if (draft) {
274
- state = 'draft';
275
- } else if (referralIsOON(referral)) {
276
- state = 'off_platform';
277
- } else if (authorizationCreated) {
278
- state = 'pending_authorization';
279
- } else {
280
- state = 'sent';
520
+ _context3.t0 = oldCase;
521
+ _context3.next = 19;
522
+ break;
523
+ case 16:
524
+ _context3.next = 18;
525
+ return updateCase(referral.case.id, serviceCasePayload);
526
+ case 18:
527
+ _context3.t0 = _context3.sent;
528
+ case 19:
529
+ caseResponse = _context3.t0;
530
+ uploadDocuments(referral, oldCase);
531
+ referralsToDelete = [];
532
+ oldReferrals.forEach(function (r) {
533
+ referralsToDelete.push(coreApi.deleteRecord('referral', r.id));
534
+ });
535
+ if (!referralsToDelete.length) {
536
+ _context3.next = 26;
537
+ break;
281
538
  }
282
- if (hint542SupersetUnlistedPrograms && isUnlistedProgram(programData)) {
283
- const createNoteForUnlistedProgramValues = {
284
- subjectType: 'case',
285
- subject: createdCaseOrExistingAR.id,
286
- employee: currentEmployee.id,
287
- visibility: 'public',
288
- category: 'external_provider',
289
- text: "Referred off platform to ".concat(programData.name)
539
+ _context3.next = 26;
540
+ return Promise.all(referralsToDelete);
541
+ case 26:
542
+ formRecipientsIds = map(referral.programs, function (r) {
543
+ return {
544
+ provider_id: r.provider.id,
545
+ network: referral.network,
546
+ program_id: r.id
290
547
  };
291
- const missingNoteValues = validateRequiredValues('note', createNoteForUnlistedProgramValues);
292
- if (missingNoteValues.length) {
293
- result.shippingDetail[i].error = "The following fields for the unlisted program are required: ".concat(missingNoteValues.join(', '));
294
- continue;
295
- }
296
- try {
297
- createNote(createNoteForUnlistedProgramValues);
298
- const noteReferral = {
299
- index: i,
300
- sent: true
301
- };
302
- result.referrals.push(noteReferral);
303
- let item = result.shippingDetail.find(item => item.index === i);
304
- if (item) item.sent = true;
305
- } catch (err) {
306
- result.shippingDetail[i].error = "Error creating the note on the case for the unlisted program";
307
- continue;
308
- }
309
- } else {
310
- const referralValues = {
311
- state,
312
- case: createdCaseOrExistingAR.id,
313
- is_grouped: isGrouped,
314
- receiving_program: programData.id,
315
- receiving_provider: programData.provider.id,
316
- receiving_network: referral.network.id,
317
- sending_provider: referral.sendingProvider.id,
318
- sending_network: referral.network.id
319
- };
320
- const missingReferralValues = validateRequiredValues('referral', referralValues);
321
- if (missingReferralValues.length) {
322
- result.shippingDetail[i].error = "The following fields for the referral are required: ".concat(missingReferralValues.join(', '));
323
- continue;
324
- }
325
- try {
326
- const responseReferral = await createReferral(referralValues);
327
- result.referrals.push(responseReferral.data.data);
328
- let item = result.shippingDetail.find(item => item.index === i);
329
- if (item) item.sent = true;
330
- createdReferrals.push(responseReferral.data.data);
331
- } catch (err) {
332
- result.shippingDetail[i].error = "Error creating the Referral: ".concat(createErrorMessage(err));
333
- continue;
334
- }
335
- }
336
- }
337
- // From one referral multiple referrals could be created (grouped referrals)
338
- const referralData = referralToConsent({
339
- originalReferral: referral,
340
- createdReferrals
341
- });
342
- if (referralData) result.referralsToConsent.push(referralData);
343
- }
344
- } catch (err) {
345
- result.shippingDetail[i].error = "Unexpected error: ".concat(err.message);
346
- }
347
- }
348
- return result;
349
- };
350
- const updateDraftReferralCrtb1239 = async referral => {
351
- try {
352
- var _caseResponse$data, _caseResponse$data2;
353
- const [caseRequestResponse, referralsRequestResponse] = await Promise.all([coreApi.findRecord('case', referral.case.id), coreApi.query('referral', {
354
- case: referral.case.id
355
- })]);
356
- const oldCase = get(caseRequestResponse, 'data.data', null);
357
- const oldReferrals = get(referralsRequestResponse, 'data.data', null);
358
- const serviceTypeChanged = referral.service.id !== oldCase.service_type.id;
359
- const descriptionChanged = referral.description && referral.description !== oldCase.description;
360
- const serviceCasePayload = _objectSpread(_objectSpread({}, serviceTypeChanged && {
361
- service: {
362
- id: referral.service.id
548
+ });
549
+ createReferralPromises = [];
550
+ formRecipientsIds.forEach(function (r) {
551
+ var newReferral = createReferral({
552
+ state: 'sent',
553
+ case: oldCase.id,
554
+ receiving_program: r.program_id,
555
+ receiving_provider: r.provider_id,
556
+ receiving_network: r.network.id,
557
+ sending_provider: oldCase.provider.id,
558
+ sending_network: oldCase.network.id
559
+ });
560
+ createReferralPromises.push(newReferral);
561
+ });
562
+ _context3.next = 31;
563
+ return Promise.all(createReferralPromises);
564
+ case 31:
565
+ referralsResponse = _context3.sent;
566
+ return _context3.abrupt("return", {
567
+ cases: [caseResponse !== null && caseResponse !== void 0 && (_caseResponse$data = caseResponse.data) !== null && _caseResponse$data !== void 0 && _caseResponse$data.data ? caseResponse === null || caseResponse === void 0 || (_caseResponse$data2 = caseResponse.data) === null || _caseResponse$data2 === void 0 ? void 0 : _caseResponse$data2.data : oldCase],
568
+ referrals: referralsResponse.map(function (referralResponse) {
569
+ var _referralResponse$dat;
570
+ return referralResponse === null || referralResponse === void 0 || (_referralResponse$dat = referralResponse.data) === null || _referralResponse$dat === void 0 ? void 0 : _referralResponse$dat.data;
571
+ })
572
+ });
573
+ case 35:
574
+ _context3.prev = 35;
575
+ _context3.t1 = _context3["catch"](0);
576
+ CALLBACKS.notify.error("Error updating the Draft Referral");
577
+ throw _context3.t1;
578
+ case 39:
579
+ case "end":
580
+ return _context3.stop();
363
581
  }
364
- }), descriptionChanged && {
365
- description: referral.description
366
- });
367
- const caseResponse = isEmpty(serviceCasePayload) ? oldCase : await updateCase(referral.case.id, serviceCasePayload);
368
- uploadDocuments(referral, oldCase);
369
- const referralsToDelete = [];
370
- oldReferrals.forEach(r => {
371
- referralsToDelete.push(coreApi.deleteRecord('referral', r.id));
372
- });
373
- if (referralsToDelete.length) {
374
- await Promise.all(referralsToDelete);
375
- }
376
- const formRecipientsIds = map(referral.programs, r => ({
377
- provider_id: r.provider.id,
378
- network: referral.network,
379
- program_id: r.id
380
- }));
381
- const createReferralPromises = [];
382
- formRecipientsIds.forEach(r => {
383
- const newReferral = createReferral({
384
- state: 'sent',
385
- case: oldCase.id,
386
- receiving_program: r.program_id,
387
- receiving_provider: r.provider_id,
388
- receiving_network: r.network.id,
389
- sending_provider: oldCase.provider.id,
390
- sending_network: oldCase.network.id
391
- });
392
- createReferralPromises.push(newReferral);
393
- });
394
- const referralsResponse = await Promise.all(createReferralPromises);
395
- return {
396
- cases: [caseResponse !== null && caseResponse !== void 0 && (_caseResponse$data = caseResponse.data) !== null && _caseResponse$data !== void 0 && _caseResponse$data.data ? caseResponse === null || caseResponse === void 0 || (_caseResponse$data2 = caseResponse.data) === null || _caseResponse$data2 === void 0 ? void 0 : _caseResponse$data2.data : oldCase],
397
- referrals: referralsResponse.map(referralResponse => {
398
- var _referralResponse$dat;
399
- return referralResponse === null || referralResponse === void 0 || (_referralResponse$dat = referralResponse.data) === null || _referralResponse$dat === void 0 ? void 0 : _referralResponse$dat.data;
400
- })
401
- };
402
- } catch (err) {
403
- CALLBACKS.notify.error("Error updating the Draft Referral");
404
- throw err;
405
- }
406
- };
407
- const updateServiceAuthorizationHandler = async function (referral) {
408
- var _referral$paymentAuth3, _referral$paymentAuth4, _responseInsurances$d2;
409
- let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
410
- draft: false
411
- };
412
- const feeScheduleProgram = referral.programs[0].fee_schedule_program;
413
- const serviceStart = referral === null || referral === void 0 || (_referral$paymentAuth3 = referral.paymentAuthForm) === null || _referral$paymentAuth3 === void 0 ? void 0 : _referral$paymentAuth3.service_start;
414
- let requestedStartDate = serviceStart && moment.unix(serviceStart).toISOString();
415
- const serviceEnd = referral === null || referral === void 0 || (_referral$paymentAuth4 = referral.paymentAuthForm) === null || _referral$paymentAuth4 === void 0 ? void 0 : _referral$paymentAuth4.service_end;
416
- let requestedEndDate = serviceEnd && moment.unix(serviceEnd).toISOString();
417
- if (pays5590RefactorInsuranceFilters) {
418
- requestedStartDate = serviceStart && moment(requestedStartDate).add(1, 'day').toISOString();
419
- requestedEndDate = serviceEnd && moment(requestedEndDate).subtract(1, 'day').toISOString();
420
- }
421
- const amountRequested = referral.paymentAuthForm.amount_requested;
422
- const queryInsuranceParams = {
423
- person: person.id,
424
- state: 'active',
425
- enrolled_before: requestedStartDate,
426
- expired_after: requestedEndDate,
427
- 'plan.fee_schedules': feeScheduleProgram.fee_schedule.id,
428
- sort: '-enrolled_at'
582
+ }, _callee2, null, [[0, 35]]);
583
+ }));
584
+ return function updateDraftReferralCrtb1239(_x2) {
585
+ return _ref4.apply(this, arguments);
429
586
  };
430
- const responseInsurances = await coreApi.query('insurance', queryInsuranceParams);
431
- const insurances = responseInsurances === null || responseInsurances === void 0 || (_responseInsurances$d2 = responseInsurances.data) === null || _responseInsurances$d2 === void 0 ? void 0 : _responseInsurances$d2.data;
432
- await updateServiceAuthorization(referral.case.service_authorization.id, _objectSpread(_objectSpread(_objectSpread({}, options.draft ? {} : {
433
- state: 'requested'
434
- }), {}, {
435
- requested_starts_at: requestedStartDate,
436
- requested_ends_at: requestedEndDate
437
- }, fspUtils.isCostPaymentType(feeScheduleProgram.payment_type) ? {
438
- requested_cents: amountRequested
439
- } : {
440
- requested_unit_amount: parseInt(amountRequested)
441
- }), {}, {
442
- requester: currentEmployee.id,
443
- insurance: insurances[0].id,
444
- person: person.id
587
+ }();
588
+ var updateServiceAuthorizationHandler = /*#__PURE__*/function () {
589
+ var _ref5 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee3(referral) {
590
+ var _referral$paymentAuth3, _referral$paymentAuth4, _responseInsurances$d2;
591
+ var options,
592
+ feeScheduleProgram,
593
+ serviceStart,
594
+ requestedStartDate,
595
+ serviceEnd,
596
+ requestedEndDate,
597
+ amountRequested,
598
+ queryInsuranceParams,
599
+ responseInsurances,
600
+ insurances,
601
+ _args4 = arguments;
602
+ return _regeneratorRuntime().wrap(function _callee3$(_context4) {
603
+ while (1) switch (_context4.prev = _context4.next) {
604
+ case 0:
605
+ options = _args4.length > 1 && _args4[1] !== undefined ? _args4[1] : {
606
+ draft: false
607
+ };
608
+ feeScheduleProgram = referral.programs[0].fee_schedule_program;
609
+ serviceStart = referral === null || referral === void 0 || (_referral$paymentAuth3 = referral.paymentAuthForm) === null || _referral$paymentAuth3 === void 0 ? void 0 : _referral$paymentAuth3.service_start;
610
+ requestedStartDate = serviceStart && moment.unix(serviceStart).toISOString();
611
+ serviceEnd = referral === null || referral === void 0 || (_referral$paymentAuth4 = referral.paymentAuthForm) === null || _referral$paymentAuth4 === void 0 ? void 0 : _referral$paymentAuth4.service_end;
612
+ requestedEndDate = serviceEnd && moment.unix(serviceEnd).toISOString();
613
+ if (pays5590RefactorInsuranceFilters) {
614
+ requestedStartDate = serviceStart && moment(requestedStartDate).add(1, 'day').toISOString();
615
+ requestedEndDate = serviceEnd && moment(requestedEndDate).subtract(1, 'day').toISOString();
616
+ }
617
+ amountRequested = referral.paymentAuthForm.amount_requested;
618
+ queryInsuranceParams = {
619
+ person: person.id,
620
+ state: 'active',
621
+ enrolled_before: requestedStartDate,
622
+ expired_after: requestedEndDate,
623
+ 'plan.fee_schedules': feeScheduleProgram.fee_schedule.id,
624
+ sort: '-enrolled_at'
625
+ };
626
+ _context4.next = 11;
627
+ return coreApi.query('insurance', queryInsuranceParams);
628
+ case 11:
629
+ responseInsurances = _context4.sent;
630
+ insurances = responseInsurances === null || responseInsurances === void 0 || (_responseInsurances$d2 = responseInsurances.data) === null || _responseInsurances$d2 === void 0 ? void 0 : _responseInsurances$d2.data;
631
+ _context4.next = 15;
632
+ return updateServiceAuthorization(referral.case.service_authorization.id, _objectSpread(_objectSpread(_objectSpread({}, options.draft ? {} : {
633
+ state: 'requested'
634
+ }), {}, {
635
+ requested_starts_at: requestedStartDate,
636
+ requested_ends_at: requestedEndDate
637
+ }, fspUtils.isCostPaymentType(feeScheduleProgram.payment_type) ? {
638
+ requested_cents: amountRequested
639
+ } : {
640
+ requested_unit_amount: parseInt(amountRequested)
641
+ }), {}, {
642
+ requester: currentEmployee.id,
643
+ insurance: insurances[0].id,
644
+ person: person.id
645
+ }));
646
+ case 15:
647
+ case "end":
648
+ return _context4.stop();
649
+ }
650
+ }, _callee3);
445
651
  }));
446
- };
447
- const updateDraftReferral = async (referral, draft) => {
448
- try {
449
- const promises = [updateCase(referral.case.id, {
450
- description: referral.description
451
- })];
452
- const isAuthRequired = get(referral, 'programs[0].fee_schedule_program.authorization_required', false);
453
- if (!draft) {
454
- let newState;
455
- if (referralIsOON(referral)) {
456
- newState = 'off_platform';
457
- } else if (isAuthRequired) {
458
- newState = 'pending_authorization';
459
- } else {
460
- newState = 'sent';
652
+ return function updateServiceAuthorizationHandler(_x3) {
653
+ return _ref5.apply(this, arguments);
654
+ };
655
+ }();
656
+ var updateDraftReferral = /*#__PURE__*/function () {
657
+ var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee4(referral, draft) {
658
+ var promises, isAuthRequired, newState, responses;
659
+ return _regeneratorRuntime().wrap(function _callee4$(_context5) {
660
+ while (1) switch (_context5.prev = _context5.next) {
661
+ case 0:
662
+ _context5.prev = 0;
663
+ promises = [updateCase(referral.case.id, {
664
+ description: referral.description
665
+ })];
666
+ isAuthRequired = get(referral, 'programs[0].fee_schedule_program.authorization_required', false);
667
+ if (!draft) {
668
+ if (referralIsOON(referral)) {
669
+ newState = 'off_platform';
670
+ } else if (isAuthRequired) {
671
+ newState = 'pending_authorization';
672
+ } else {
673
+ newState = 'sent';
674
+ }
675
+ promises.push(updateReferral(referral.id, {
676
+ state: newState
677
+ }));
678
+ }
679
+ if (isAuthRequired) {
680
+ promises.push(updateServiceAuthorizationHandler(referral, {
681
+ draft: draft
682
+ }));
683
+ }
684
+ _context5.next = 7;
685
+ return Promise.all(promises);
686
+ case 7:
687
+ responses = _context5.sent;
688
+ return _context5.abrupt("return", {
689
+ referrals: draft ? [] : [responses[1].data.data],
690
+ cases: [responses[0].data.data]
691
+ });
692
+ case 11:
693
+ _context5.prev = 11;
694
+ _context5.t0 = _context5["catch"](0);
695
+ CALLBACKS.notify.error("Error updating the Draft Referral");
696
+ throw _context5.t0;
697
+ case 15:
698
+ case "end":
699
+ return _context5.stop();
461
700
  }
462
- promises.push(updateReferral(referral.id, {
463
- state: newState
464
- }));
465
- }
466
- if (isAuthRequired) {
467
- promises.push(updateServiceAuthorizationHandler(referral, {
468
- draft
469
- }));
470
- }
471
- const responses = await Promise.all(promises);
472
- return {
473
- referrals: draft ? [] : [responses[1].data.data],
474
- cases: [responses[0].data.data]
475
- };
476
- } catch (err) {
477
- CALLBACKS.notify.error("Error updating the Draft Referral");
478
- throw err;
479
- }
480
- };
481
- return async function () {
482
- let {
483
- draft = false,
484
- latestResponses
485
- } = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
486
- let response = {
487
- referralsToConsent: []
701
+ }, _callee4, null, [[0, 11]]);
702
+ }));
703
+ return function updateDraftReferral(_x4, _x5) {
704
+ return _ref6.apply(this, arguments);
488
705
  };
489
- if (crtb1239AdaptDraftReferralFlow) {
490
- response = await createReferrals({
491
- referrals,
492
- person,
493
- draft
494
- });
495
- } else {
496
- if (referrals.length === 1 && referrals[0].id && referrals[0].state === "draft") {
497
- response = await updateDraftReferral(referrals[0], draft);
498
- const referralData = referralToConsent({
499
- originalReferral: referrals[0],
500
- createdReferrals: response.referrals
501
- });
502
- if (referralData) response.referralsToConsent.push(referralData);
503
- } else {
504
- // Create or Save the Referral as a Draft
505
- response = await createReferrals({
506
- referrals,
507
- person,
508
- draft
509
- });
706
+ }();
707
+ return /*#__PURE__*/_asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee5() {
708
+ var _ref8,
709
+ _ref8$draft,
710
+ draft,
711
+ latestResponses,
712
+ response,
713
+ referralData,
714
+ _args6 = arguments;
715
+ return _regeneratorRuntime().wrap(function _callee5$(_context6) {
716
+ while (1) switch (_context6.prev = _context6.next) {
717
+ case 0:
718
+ _ref8 = _args6.length > 0 && _args6[0] !== undefined ? _args6[0] : {}, _ref8$draft = _ref8.draft, draft = _ref8$draft === void 0 ? false : _ref8$draft, latestResponses = _ref8.latestResponses;
719
+ response = {
720
+ referralsToConsent: []
721
+ };
722
+ if (!crtb1239AdaptDraftReferralFlow) {
723
+ _context6.next = 8;
724
+ break;
725
+ }
726
+ _context6.next = 5;
727
+ return createReferrals({
728
+ referrals: referrals,
729
+ person: person,
730
+ draft: draft
731
+ });
732
+ case 5:
733
+ response = _context6.sent;
734
+ _context6.next = 19;
735
+ break;
736
+ case 8:
737
+ if (!(referrals.length === 1 && referrals[0].id && referrals[0].state === "draft")) {
738
+ _context6.next = 16;
739
+ break;
740
+ }
741
+ _context6.next = 11;
742
+ return updateDraftReferral(referrals[0], draft);
743
+ case 11:
744
+ response = _context6.sent;
745
+ referralData = referralToConsent({
746
+ originalReferral: referrals[0],
747
+ createdReferrals: response.referrals
748
+ });
749
+ if (referralData) response.referralsToConsent.push(referralData);
750
+ _context6.next = 19;
751
+ break;
752
+ case 16:
753
+ _context6.next = 18;
754
+ return createReferrals({
755
+ referrals: referrals,
756
+ person: person,
757
+ draft: draft
758
+ });
759
+ case 18:
760
+ response = _context6.sent;
761
+ case 19:
762
+ if (!(formResponses || latestResponses)) {
763
+ _context6.next = 22;
764
+ break;
765
+ }
766
+ _context6.next = 22;
767
+ return submitAssessments({
768
+ cases: response.cases,
769
+ latestResponses: latestResponses
770
+ });
771
+ case 22:
772
+ return _context6.abrupt("return", {
773
+ cases: response.cases,
774
+ referrals: response.referrals,
775
+ shippingDetail: response.shippingDetail,
776
+ referralsToConsent: response.referralsToConsent
777
+ });
778
+ case 23:
779
+ case "end":
780
+ return _context6.stop();
510
781
  }
511
- }
512
- if (formResponses || latestResponses) {
513
- await submitAssessments({
514
- cases: response.cases,
515
- latestResponses
516
- });
517
- }
518
- return {
519
- cases: response.cases,
520
- referrals: response.referrals,
521
- shippingDetail: response.shippingDetail,
522
- referralsToConsent: response.referralsToConsent
523
- };
524
- };
782
+ }, _callee5);
783
+ }));
525
784
  }
526
785
  ;
527
786
  //# sourceMappingURL=useCreateReferrals.js.map