@unite-us/app-create-referral 0.15.62 → 0.15.63

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