@unite-us/app-create-referral 0.15.56 → 0.15.58-alpha.1

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/dist/AppReferrals.js +45 -45
  2. package/dist/AppReferrals.js.map +1 -1
  3. package/dist/AppReferrals.test.js +34 -71
  4. package/dist/AppReferrals.test.js.map +1 -1
  5. package/dist/__testUtils__/mockData/components/mockAppReferrals.js +13 -12
  6. package/dist/__testUtils__/mockData/components/mockAppReferrals.js.map +1 -1
  7. package/dist/__testUtils__/mockData/mockCases.js +1 -1
  8. package/dist/__testUtils__/mockData/mockCases.js.map +1 -1
  9. package/dist/__testUtils__/mockData/mockClinicalModifications.js +3 -3
  10. package/dist/__testUtils__/mockData/mockClinicalModifications.js.map +1 -1
  11. package/dist/__testUtils__/mockData/mockEmployees.js +1 -1
  12. package/dist/__testUtils__/mockData/mockEmployees.js.map +1 -1
  13. package/dist/__testUtils__/mockData/mockEnums.js +1 -1
  14. package/dist/__testUtils__/mockData/mockEnums.js.map +1 -1
  15. package/dist/__testUtils__/mockData/mockFeeSchedulePrograms.js +1 -1
  16. package/dist/__testUtils__/mockData/mockFeeSchedulePrograms.js.map +1 -1
  17. package/dist/__testUtils__/mockData/mockFiles.js +1 -1
  18. package/dist/__testUtils__/mockData/mockFiles.js.map +1 -1
  19. package/dist/__testUtils__/mockData/mockFormSubmissions.js +1 -1
  20. package/dist/__testUtils__/mockData/mockFormSubmissions.js.map +1 -1
  21. package/dist/__testUtils__/mockData/mockFormUsages.js +1 -1
  22. package/dist/__testUtils__/mockData/mockFormUsages.js.map +1 -1
  23. package/dist/__testUtils__/mockData/mockForms.js +1 -1
  24. package/dist/__testUtils__/mockData/mockForms.js.map +1 -1
  25. package/dist/__testUtils__/mockData/mockInsurances.js +1 -1
  26. package/dist/__testUtils__/mockData/mockInsurances.js.map +1 -1
  27. package/dist/__testUtils__/mockData/mockNetworks.js +1 -1
  28. package/dist/__testUtils__/mockData/mockNetworks.js.map +1 -1
  29. package/dist/__testUtils__/mockData/mockPeople.js +1 -1
  30. package/dist/__testUtils__/mockData/mockPeople.js.map +1 -1
  31. package/dist/__testUtils__/mockData/mockPrograms.js +31 -31
  32. package/dist/__testUtils__/mockData/mockPrograms.js.map +1 -1
  33. package/dist/__testUtils__/mockData/mockProviders.js +21 -21
  34. package/dist/__testUtils__/mockData/mockProviders.js.map +1 -1
  35. package/dist/__testUtils__/mockData/mockReferrals.js +1 -1
  36. package/dist/__testUtils__/mockData/mockReferrals.js.map +1 -1
  37. package/dist/__testUtils__/mockData/mockServiceAuthorizations.js +1 -1
  38. package/dist/__testUtils__/mockData/mockServiceAuthorizations.js.map +1 -1
  39. package/dist/__testUtils__/mockData/mockServices.js +1 -1
  40. package/dist/__testUtils__/mockData/mockServices.js.map +1 -1
  41. package/dist/__testUtils__/mockData/mockUnlistedPrograms.js +1 -1
  42. package/dist/__testUtils__/mockData/mockUnlistedPrograms.js.map +1 -1
  43. package/dist/__testUtils__/mockData/utils.js +218 -282
  44. package/dist/__testUtils__/mockData/utils.js.map +1 -1
  45. package/dist/__testUtils__/mockServer/handlers.js +80 -82
  46. package/dist/__testUtils__/mockServer/handlers.js.map +1 -1
  47. package/dist/__testUtils__/mockServer/server.js +7 -13
  48. package/dist/__testUtils__/mockServer/server.js.map +1 -1
  49. package/dist/__testUtils__/test-utils.js +22 -18
  50. package/dist/__testUtils__/test-utils.js.map +1 -1
  51. package/dist/actions/Document/Contact/Group/fetchCaseDocuments.js +10 -41
  52. package/dist/actions/Document/Contact/Group/fetchCaseDocuments.js.map +1 -1
  53. package/dist/actions/Document/Contact/Group/fetchContactDocuments.js +10 -41
  54. package/dist/actions/Document/Contact/Group/fetchContactDocuments.js.map +1 -1
  55. package/dist/actions/Document/Contact/Group/fileUploadUtils.js +8 -10
  56. package/dist/actions/Document/Contact/Group/fileUploadUtils.js.map +1 -1
  57. package/dist/actions/Group/fetchCoreGroupForms.js +46 -97
  58. package/dist/actions/Group/fetchCoreGroupForms.js.map +1 -1
  59. package/dist/actions/Referral/cannotMoveToReferralReasons.js +23 -21
  60. package/dist/actions/Referral/cannotMoveToReferralReasons.js.map +1 -1
  61. package/dist/actions/Referral/fetchCoreServices.js +70 -169
  62. package/dist/actions/Referral/fetchCoreServices.js.map +1 -1
  63. package/dist/actions/Referral/fetchNetworks.js +11 -44
  64. package/dist/actions/Referral/fetchNetworks.js.map +1 -1
  65. package/dist/actions/Referral/fetchPrimaryWorkers.js +51 -84
  66. package/dist/actions/Referral/fetchPrimaryWorkers.js.map +1 -1
  67. package/dist/actions/Referral/removeReferralProgram.js +10 -15
  68. package/dist/actions/Referral/removeReferralProgram.js.map +1 -1
  69. package/dist/api/ApiHooks.js +40 -39
  70. package/dist/api/ApiHooks.js.map +1 -1
  71. package/dist/api/config.js +20 -23
  72. package/dist/api/config.js.map +1 -1
  73. package/dist/common/form/CurrencyField/index.js +22 -21
  74. package/dist/common/form/CurrencyField/index.js.map +1 -1
  75. package/dist/common/form/DocumentUploader/components/ContactDocumentsSelector.js +51 -48
  76. package/dist/common/form/DocumentUploader/components/ContactDocumentsSelector.js.map +1 -1
  77. package/dist/common/form/DocumentUploader/components/DocumentsListView.js +14 -12
  78. package/dist/common/form/DocumentUploader/components/DocumentsListView.js.map +1 -1
  79. package/dist/common/form/DocumentUploader/components/ListViewDocument.js +21 -17
  80. package/dist/common/form/DocumentUploader/components/ListViewDocument.js.map +1 -1
  81. package/dist/common/form/ErrorMessage/index.js +17 -9
  82. package/dist/common/form/ErrorMessage/index.js.map +1 -1
  83. package/dist/common/form/FileUploadV2/FileUpload.js +159 -139
  84. package/dist/common/form/FileUploadV2/FileUpload.js.map +1 -1
  85. package/dist/common/form/FileUploadV2/components/FilePreview.js +8 -5
  86. package/dist/common/form/FileUploadV2/components/FilePreview.js.map +1 -1
  87. package/dist/common/form/FileUploadV2/components/FilePreviewWrapper.js +26 -21
  88. package/dist/common/form/FileUploadV2/components/FilePreviewWrapper.js.map +1 -1
  89. package/dist/common/form/FormForm/index.js +143 -194
  90. package/dist/common/form/FormForm/index.js.map +1 -1
  91. package/dist/common/utils/utils.js +3 -3
  92. package/dist/common/utils/utils.js.map +1 -1
  93. package/dist/components/Card.js +12 -8
  94. package/dist/components/Card.js.map +1 -1
  95. package/dist/components/CreateReferralContainer.js +21 -13
  96. package/dist/components/CreateReferralContainer.js.map +1 -1
  97. package/dist/components/DollarAmount.js +18 -14
  98. package/dist/components/DollarAmount.js.map +1 -1
  99. package/dist/components/ExpandableButton.js +21 -16
  100. package/dist/components/ExpandableButton.js.map +1 -1
  101. package/dist/components/NavButtons.js +57 -51
  102. package/dist/components/NavButtons.js.map +1 -1
  103. package/dist/components/ReferralStepper.js +44 -41
  104. package/dist/components/ReferralStepper.js.map +1 -1
  105. package/dist/components/SearchableField.js +121 -125
  106. package/dist/components/SearchableField.js.map +1 -1
  107. package/dist/components/StepHeader.js +25 -16
  108. package/dist/components/StepHeader.js.map +1 -1
  109. package/dist/components/Stepper.js +55 -51
  110. package/dist/components/Stepper.js.map +1 -1
  111. package/dist/components/modal/Dialog.js +141 -170
  112. package/dist/components/modal/Dialog.js.map +1 -1
  113. package/dist/components/modal/Overlay.js +2 -1
  114. package/dist/components/modal/Overlay.js.map +1 -1
  115. package/dist/components/service_authorization/AuthorizationSpendCard.js +72 -60
  116. package/dist/components/service_authorization/AuthorizationSpendCard.js.map +1 -1
  117. package/dist/components/service_authorization/CapsInfo.js +143 -120
  118. package/dist/components/service_authorization/CapsInfo.js.map +1 -1
  119. package/dist/components/service_authorization/CaseStatus.js +18 -14
  120. package/dist/components/service_authorization/CaseStatus.js.map +1 -1
  121. package/dist/components/service_authorization/PreviousAuthorizationRequestsDetails.js +121 -96
  122. package/dist/components/service_authorization/PreviousAuthorizationRequestsDetails.js.map +1 -1
  123. package/dist/components/service_authorization/ReferralAuthSpendExpandable.js +43 -43
  124. package/dist/components/service_authorization/ReferralAuthSpendExpandable.js.map +1 -1
  125. package/dist/components/service_authorization/ReferralAuthorizationRequestSummary.js +82 -65
  126. package/dist/components/service_authorization/ReferralAuthorizationRequestSummary.js.map +1 -1
  127. package/dist/components/service_authorization/Spend.js +10 -5
  128. package/dist/components/service_authorization/Spend.js.map +1 -1
  129. package/dist/components/service_authorization/formatShortDate.js +6 -6
  130. package/dist/components/service_authorization/formatShortDate.js.map +1 -1
  131. package/dist/components/service_authorization/messageConstants.js +2 -2
  132. package/dist/components/service_authorization/messageConstants.js.map +1 -1
  133. package/dist/components/spinners/OverlaySpinner/OverlaySpinner.js +34 -23
  134. package/dist/components/spinners/OverlaySpinner/OverlaySpinner.js.map +1 -1
  135. package/dist/components/spinners/Spinner/Spinner.js +33 -27
  136. package/dist/components/spinners/Spinner/Spinner.js.map +1 -1
  137. package/dist/constants/enums.js +1 -1
  138. package/dist/constants/enums.js.map +1 -1
  139. package/dist/constants/eventConstants.js +48 -48
  140. package/dist/constants/eventConstants.js.map +1 -1
  141. package/dist/constants/findEnumDisplayName.js +3 -3
  142. package/dist/constants/findEnumDisplayName.js.map +1 -1
  143. package/dist/constants.js +6 -6
  144. package/dist/constants.js.map +1 -1
  145. package/dist/context/AppCreateReferralProvider.js +25 -36
  146. package/dist/context/AppCreateReferralProvider.js.map +1 -1
  147. package/dist/context/state.js +2 -5
  148. package/dist/context/state.js.map +1 -1
  149. package/dist/context/withAppCreateReferralContext.js +9 -5
  150. package/dist/context/withAppCreateReferralContext.js.map +1 -1
  151. package/dist/hooks/__tests__/useCreateReferrals.test.js +456 -560
  152. package/dist/hooks/__tests__/useCreateReferrals.test.js.map +1 -1
  153. package/dist/hooks/sendReferral.js +155 -339
  154. package/dist/hooks/sendReferral.js.map +1 -1
  155. package/dist/hooks/useClinicalModificationOptions.js +24 -34
  156. package/dist/hooks/useClinicalModificationOptions.js.map +1 -1
  157. package/dist/hooks/useCreateReferrals.js +463 -722
  158. package/dist/hooks/useCreateReferrals.js.map +1 -1
  159. package/dist/hooks/useCreateResourceList.js +56 -76
  160. package/dist/hooks/useCreateResourceList.js.map +1 -1
  161. package/dist/hooks/useCreateShareEvent.js +18 -42
  162. package/dist/hooks/useCreateShareEvent.js.map +1 -1
  163. package/dist/hooks/useForwardReferral.js +78 -118
  164. package/dist/hooks/useForwardReferral.js.map +1 -1
  165. package/dist/hooks/usePerson.js +21 -49
  166. package/dist/hooks/usePerson.js.map +1 -1
  167. package/dist/hooks/useUpdateResourceList.js +34 -28
  168. package/dist/hooks/useUpdateResourceList.js.map +1 -1
  169. package/dist/pages/builder/AboutGroupedReferralsModal.js +48 -27
  170. package/dist/pages/builder/AboutGroupedReferralsModal.js.map +1 -1
  171. package/dist/pages/builder/AuthorizationSubform.js +143 -131
  172. package/dist/pages/builder/AuthorizationSubform.js.map +1 -1
  173. package/dist/pages/builder/ChooseOneServiceTypeModal.js +56 -53
  174. package/dist/pages/builder/ChooseOneServiceTypeModal.js.map +1 -1
  175. package/dist/pages/builder/DetailsDrawer.js +74 -72
  176. package/dist/pages/builder/DetailsDrawer.js.map +1 -1
  177. package/dist/pages/builder/LineItem.js +28 -25
  178. package/dist/pages/builder/LineItem.js.map +1 -1
  179. package/dist/pages/builder/NoReferralsDisplay.js +41 -29
  180. package/dist/pages/builder/NoReferralsDisplay.js.map +1 -1
  181. package/dist/pages/builder/ProgramHeader.js +33 -20
  182. package/dist/pages/builder/ProgramHeader.js.map +1 -1
  183. package/dist/pages/builder/ProgramMenu.js +19 -18
  184. package/dist/pages/builder/ProgramMenu.js.map +1 -1
  185. package/dist/pages/builder/ReferralBuilder.js +341 -443
  186. package/dist/pages/builder/ReferralBuilder.js.map +1 -1
  187. package/dist/pages/builder/ReferralBuilderForm.js +323 -392
  188. package/dist/pages/builder/ReferralBuilderForm.js.map +1 -1
  189. package/dist/pages/builder/ReferralCard.js +125 -99
  190. package/dist/pages/builder/ReferralCard.js.map +1 -1
  191. package/dist/pages/builder/ReferralProgramCard.js +109 -160
  192. package/dist/pages/builder/ReferralProgramCard.js.map +1 -1
  193. package/dist/pages/builder/ReferralProgramMenu.js +102 -116
  194. package/dist/pages/builder/ReferralProgramMenu.js.map +1 -1
  195. package/dist/pages/builder/__tests__/AuthRequiredClinicalCodes.test.js +99 -246
  196. package/dist/pages/builder/__tests__/AuthRequiredClinicalCodes.test.js.map +1 -1
  197. package/dist/pages/builder/__tests__/AuthRequiredNonFundedPrograms.test.js +48 -86
  198. package/dist/pages/builder/__tests__/AuthRequiredNonFundedPrograms.test.js.map +1 -1
  199. package/dist/pages/builder/__tests__/AuthorizationRequiredPrograms.test.js +74 -133
  200. package/dist/pages/builder/__tests__/AuthorizationRequiredPrograms.test.js.map +1 -1
  201. package/dist/pages/builder/__tests__/NonSensitiveGroupedPrograms.test.js +674 -1269
  202. package/dist/pages/builder/__tests__/NonSensitiveGroupedPrograms.test.js.map +1 -1
  203. package/dist/pages/builder/__tests__/NonSensitiveSingleProgram.test.js +305 -575
  204. package/dist/pages/builder/__tests__/NonSensitiveSingleProgram.test.js.map +1 -1
  205. package/dist/pages/builder/__tests__/ReferralBuilder.test.js +14 -45
  206. package/dist/pages/builder/__tests__/ReferralBuilder.test.js.map +1 -1
  207. package/dist/pages/builder/__tests__/SensitiveProviderGroupedPrograms.test.js +407 -815
  208. package/dist/pages/builder/__tests__/SensitiveProviderGroupedPrograms.test.js.map +1 -1
  209. package/dist/pages/builder/__tests__/SensitiveServiceGroupedPrograms.test.js +139 -254
  210. package/dist/pages/builder/__tests__/SensitiveServiceGroupedPrograms.test.js.map +1 -1
  211. package/dist/pages/builder/__tests__/SensitiveServiceSensitiveProviderGroupedPrograms.test.js +262 -518
  212. package/dist/pages/builder/__tests__/SensitiveServiceSensitiveProviderGroupedPrograms.test.js.map +1 -1
  213. package/dist/pages/builder/__tests__/SensitiveSingleProgram.test.js +273 -504
  214. package/dist/pages/builder/__tests__/SensitiveSingleProgram.test.js.map +1 -1
  215. package/dist/pages/builder/buildDraftState.js +21 -21
  216. package/dist/pages/builder/buildDraftState.js.map +1 -1
  217. package/dist/pages/builder/buildGroupedReferrals.js +80 -113
  218. package/dist/pages/builder/buildGroupedReferrals.js.map +1 -1
  219. package/dist/pages/builder/constants.js +12 -12
  220. package/dist/pages/builder/constants.js.map +1 -1
  221. package/dist/pages/builder/formatProgramDetail.js +152 -180
  222. package/dist/pages/builder/formatProgramDetail.js.map +1 -1
  223. package/dist/pages/builder/useBuildReferrals.js +95 -163
  224. package/dist/pages/builder/useBuildReferrals.js.map +1 -1
  225. package/dist/pages/builder/utils.js +84 -133
  226. package/dist/pages/builder/utils.js.map +1 -1
  227. package/dist/pages/review/DeleteReferralModal.js +45 -31
  228. package/dist/pages/review/DeleteReferralModal.js.map +1 -1
  229. package/dist/pages/review/DropdownMultiplesReferrals.js +75 -92
  230. package/dist/pages/review/DropdownMultiplesReferrals.js.map +1 -1
  231. package/dist/pages/review/ReferralsSent.js +200 -239
  232. package/dist/pages/review/ReferralsSent.js.map +1 -1
  233. package/dist/pages/review/Review.js +451 -554
  234. package/dist/pages/review/Review.js.map +1 -1
  235. package/dist/pages/review/__tests__/CallbackNotifications.test.js +46 -66
  236. package/dist/pages/review/__tests__/CallbackNotifications.test.js.map +1 -1
  237. package/dist/pages/review/__tests__/ReferralsSent.test.js +189 -349
  238. package/dist/pages/review/__tests__/ReferralsSent.test.js.map +1 -1
  239. package/dist/pages/review/__tests__/Review.test.js +380 -599
  240. package/dist/pages/review/__tests__/Review.test.js.map +1 -1
  241. package/dist/pages/review/__tests__/data.js +5 -5
  242. package/dist/pages/review/__tests__/data.js.map +1 -1
  243. package/dist/pages/review/constants.js +5 -5
  244. package/dist/pages/review/constants.js.map +1 -1
  245. package/dist/pages/supporting-info/SupportingInfo.js +123 -168
  246. package/dist/pages/supporting-info/SupportingInfo.js.map +1 -1
  247. package/dist/pages/supporting-info/__tests__/SupportingInfo.test.js +85 -164
  248. package/dist/pages/supporting-info/__tests__/SupportingInfo.test.js.map +1 -1
  249. package/dist/pages/supporting-info/__tests__/data.js +1 -1
  250. package/dist/pages/supporting-info/__tests__/data.js.map +1 -1
  251. package/dist/reportWebVitals.js +9 -7
  252. package/dist/reportWebVitals.js.map +1 -1
  253. package/dist/setupTests.js +8 -30
  254. package/dist/setupTests.js.map +1 -1
  255. package/dist/utils/__tests__/canChangeHoldReason.test.js +23 -23
  256. package/dist/utils/__tests__/canChangeHoldReason.test.js.map +1 -1
  257. package/dist/utils/__tests__/checkRoles.test.js +10 -10
  258. package/dist/utils/__tests__/checkRoles.test.js.map +1 -1
  259. package/dist/utils/canAccept.js +14 -9
  260. package/dist/utils/canAccept.js.map +1 -1
  261. package/dist/utils/canChangeHoldReason.js +16 -11
  262. package/dist/utils/canChangeHoldReason.js.map +1 -1
  263. package/dist/utils/canHoldForReview.js +13 -8
  264. package/dist/utils/canHoldForReview.js.map +1 -1
  265. package/dist/utils/canReject.js +21 -14
  266. package/dist/utils/canReject.js.map +1 -1
  267. package/dist/utils/checkRoles.js +10 -10
  268. package/dist/utils/checkRoles.js.map +1 -1
  269. package/dist/utils/getProgramServicesPayload.js +20 -20
  270. package/dist/utils/getProgramServicesPayload.js.map +1 -1
  271. package/dist/utils/hasUserRole.js +8 -8
  272. package/dist/utils/hasUserRole.js.map +1 -1
  273. package/dist/utils/isReferralForwarded.js +4 -2
  274. package/dist/utils/isReferralForwarded.js.map +1 -1
  275. package/dist/utils/referralToConsent.js +14 -19
  276. package/dist/utils/referralToConsent.js.map +1 -1
  277. package/dist/utils/useDebounce.js +7 -18
  278. package/dist/utils/useDebounce.js.map +1 -1
  279. package/dist/utils/useFeatureFlag.js +1 -1
  280. package/dist/utils/useFeatureFlag.js.map +1 -1
  281. package/dist/utils/validateCostAmount.js +4 -4
  282. package/dist/utils/validateCostAmount.js.map +1 -1
  283. package/dist/utils/validateUnitAmount.js +4 -4
  284. package/dist/utils/validateUnitAmount.js.map +1 -1
  285. package/package.json +64 -34
  286. package/.github/CODEOWNERS +0 -3
  287. package/.github/pull_request_template.md +0 -25
  288. package/.github/workflows/quality.yml +0 -44
  289. package/.github/workflows/semantic-release.yml +0 -26
  290. package/.nvmrc +0 -1
  291. package/babel.config.js +0 -11
  292. package/config-overrides.js +0 -8
@@ -1,30 +1,6 @@
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; }
1
+ import _defineProperty from "@babel/runtime/helpers/defineProperty";
15
2
  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; }
16
3
  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; }
28
4
  import { get, map, isEmpty } from 'lodash';
29
5
  import moment from 'moment';
30
6
  import fspUtils from '@unite-us/client-utils/dist/utils/feeSchedulePrograms';
@@ -35,8 +11,8 @@ import { useAppCreateReferralContext } from '../context/AppCreateReferralProvide
35
11
  import { useFeatureFlag } from '../utils/useFeatureFlag';
36
12
  import referralToConsent from '../utils/referralToConsent';
37
13
  import { formatShortDate2FromTimestamp } from '../components/service_authorization/formatShortDate';
38
- var validateRequiredValues = function validateRequiredValues(type, values) {
39
- var requiredFields = [];
14
+ const validateRequiredValues = (type, values) => {
15
+ let requiredFields = [];
40
16
  if (type === 'case') {
41
17
  requiredFields = ['description', 'service', 'provider', 'network', 'person'];
42
18
  } else if (type === 'note') {
@@ -44,85 +20,81 @@ var validateRequiredValues = function validateRequiredValues(type, values) {
44
20
  } else if (type === 'referral') {
45
21
  requiredFields = ['case', 'receiving_program', 'receiving_provider', 'receiving_network', 'sending_provider', 'sending_network'];
46
22
  }
47
- return requiredFields.filter(function (field) {
48
- return !values[field];
49
- });
23
+ return requiredFields.filter(field => !values[field]);
50
24
  };
51
25
  export default function useCreateReferrals() {
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(', ');
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(', ');
85
67
  };
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
- });
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
+ }));
97
75
  if (!isEmpty(attachedDocuments)) {
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();
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();
107
81
  Promise.all([uploadPromises]);
108
82
  }
109
- var uploadedDocuments = get(referral, 'attachments', []);
83
+ const uploadedDocuments = get(referral, 'attachments', []);
110
84
  if (!isEmpty(uploadedDocuments)) {
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 || []));
85
+ const uploadDocumentsToResource = () => uploadedDocuments.map(d => coreApi.uploadFile('case', caseToUploadDoc.id, d.file));
86
+ const uploadPromises = uploadDocumentsToResource();
87
+ Promise.all([...(uploadPromises || [])]);
118
88
  }
119
89
  };
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) {
90
+ const submitAssessments = _ref => {
91
+ let {
92
+ cases,
93
+ latestResponses
94
+ } = _ref;
95
+ let promises = [];
96
+ map(cases, serviceCase => {
97
+ map(latestResponses || formResponses, assessment => {
126
98
  var _assessment$form;
127
99
  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)) {
128
100
  promises.push(createFormSubmission({
@@ -136,651 +108,420 @@ export default function useCreateReferrals() {
136
108
  }
137
109
  });
138
110
  });
139
- return Promise.all(promises).then(function (responses) {
111
+ return Promise.all(promises).then(responses => {
140
112
  return responses;
141
- }).catch(function (err) {
113
+ }).catch(err => {
142
114
  CALLBACKS.notify.error("Error submitting Assessments");
143
115
  throw err;
144
116
  });
145
117
  };
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));
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);
200
150
 
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,
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), {}, {
234
206
  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;
393
207
  });
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;
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)
432
214
  });
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();
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);
463
222
  }
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
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;
264
+ }
265
+ result.cases.push(createdCaseOrExistingAR);
266
+ } catch (err) {
267
+ result.shippingDetail[i].error = "Error creating the Case: ".concat(createErrorMessage(err));
268
+ continue;
512
269
  }
513
- }), descriptionChanged && {
514
- description: referral.description
515
- });
516
- if (!isEmpty(serviceCasePayload)) {
517
- _context3.next = 16;
518
- break;
519
270
  }
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;
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';
538
281
  }
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
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)
547
290
  };
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();
581
- }
582
- }, _callee2, null, [[0, 35]]);
583
- }));
584
- return function updateDraftReferralCrtb1239(_x2) {
585
- return _ref4.apply(this, arguments);
586
- };
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);
651
- }));
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';
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;
674
334
  }
675
- promises.push(updateReferral(referral.id, {
676
- state: newState
677
- }));
678
- }
679
- if (isAuthRequired) {
680
- promises.push(updateServiceAuthorizationHandler(referral, {
681
- draft: draft
682
- }));
683
335
  }
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();
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);
700
343
  }
701
- }, _callee4, null, [[0, 11]]);
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
363
+ }
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'
429
+ };
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
702
445
  }));
703
- return function updateDraftReferral(_x4, _x5) {
704
- return _ref6.apply(this, arguments);
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';
461
+ }
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: []
705
488
  };
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();
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
+ });
781
510
  }
782
- }, _callee5);
783
- }));
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
+ };
784
525
  }
785
526
  ;
786
527
  //# sourceMappingURL=useCreateReferrals.js.map