@unite-us/app-create-referral 0.15.166 → 0.15.168

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 (185) hide show
  1. package/dist/AppReferrals.js +3 -4
  2. package/dist/AppReferrals.js.map +1 -1
  3. package/dist/AppReferrals.test.js +27 -20
  4. package/dist/AppReferrals.test.js.map +1 -1
  5. package/dist/__testUtils__/mockData/utils.js +13 -19
  6. package/dist/__testUtils__/mockData/utils.js.map +1 -1
  7. package/dist/__testUtils__/mockServer/handlers.js +7 -13
  8. package/dist/__testUtils__/mockServer/handlers.js.map +1 -1
  9. package/dist/__testUtils__/test-utils.js +10 -15
  10. package/dist/__testUtils__/test-utils.js.map +1 -1
  11. package/dist/actions/Document/Contact/Group/fileUploadUtils.js +1 -1
  12. package/dist/actions/Document/Contact/Group/fileUploadUtils.js.map +1 -1
  13. package/dist/actions/Group/fetchCoreGroupForms.js +1 -1
  14. package/dist/actions/Group/fetchCoreGroupForms.js.map +1 -1
  15. package/dist/actions/Referral/cannotMoveToReferralReasons.js +10 -11
  16. package/dist/actions/Referral/cannotMoveToReferralReasons.js.map +1 -1
  17. package/dist/actions/Referral/fetchCoreServices.js +19 -25
  18. package/dist/actions/Referral/fetchCoreServices.js.map +1 -1
  19. package/dist/actions/Referral/removeReferralProgram.js +3 -5
  20. package/dist/actions/Referral/removeReferralProgram.js.map +1 -1
  21. package/dist/api/ApiHooks.js +39 -36
  22. package/dist/api/ApiHooks.js.map +1 -1
  23. package/dist/api/config.js +9 -8
  24. package/dist/api/config.js.map +1 -1
  25. package/dist/common/form/CurrencyField/index.js +3 -5
  26. package/dist/common/form/CurrencyField/index.js.map +1 -1
  27. package/dist/common/form/DocumentUploader/components/ContactDocumentsSelector.js +3 -3
  28. package/dist/common/form/DocumentUploader/components/ContactDocumentsSelector.js.map +1 -1
  29. package/dist/common/form/DocumentUploader/components/DocumentsListView.js +1 -1
  30. package/dist/common/form/DocumentUploader/components/DocumentsListView.js.map +1 -1
  31. package/dist/common/form/FileUploadV2/FileUpload.js +27 -15
  32. package/dist/common/form/FileUploadV2/FileUpload.js.map +1 -1
  33. package/dist/common/form/FileUploadV2/FileUpload.test.js +6 -10
  34. package/dist/common/form/FileUploadV2/FileUpload.test.js.map +1 -1
  35. package/dist/common/form/FileUploadV2/components/FilePreviewWrapper.js +6 -7
  36. package/dist/common/form/FileUploadV2/components/FilePreviewWrapper.js.map +1 -1
  37. package/dist/common/form/FormForm/index.js +10 -10
  38. package/dist/common/form/FormForm/index.js.map +1 -1
  39. package/dist/components/DollarAmount.js +2 -2
  40. package/dist/components/DollarAmount.js.map +1 -1
  41. package/dist/components/LineItem.js +1 -1
  42. package/dist/components/LineItem.js.map +1 -1
  43. package/dist/components/ReferralStepper.js +4 -5
  44. package/dist/components/ReferralStepper.js.map +1 -1
  45. package/dist/components/SearchableField.js +3 -4
  46. package/dist/components/SearchableField.js.map +1 -1
  47. package/dist/components/Stepper.js +7 -7
  48. package/dist/components/Stepper.js.map +1 -1
  49. package/dist/components/modal/Dialog.js +15 -10
  50. package/dist/components/modal/Dialog.js.map +1 -1
  51. package/dist/components/service_authorization/AuthorizationSpendCard.js +5 -5
  52. package/dist/components/service_authorization/AuthorizationSpendCard.js.map +1 -1
  53. package/dist/components/service_authorization/CapsInfo.js +10 -10
  54. package/dist/components/service_authorization/CapsInfo.js.map +1 -1
  55. package/dist/components/service_authorization/CaseStatus.js +2 -2
  56. package/dist/components/service_authorization/CaseStatus.js.map +1 -1
  57. package/dist/components/service_authorization/PreviousAuthorizationRequestsDetails.js +1 -2
  58. package/dist/components/service_authorization/PreviousAuthorizationRequestsDetails.js.map +1 -1
  59. package/dist/components/service_authorization/ReferralAuthSpendExpandable.js +2 -2
  60. package/dist/components/service_authorization/ReferralAuthSpendExpandable.js.map +1 -1
  61. package/dist/components/service_authorization/ReferralAuthorizationRequestSummary.js +4 -4
  62. package/dist/components/service_authorization/ReferralAuthorizationRequestSummary.js.map +1 -1
  63. package/dist/components/service_authorization/formatShortDate.js +1 -1
  64. package/dist/components/service_authorization/formatShortDate.js.map +1 -1
  65. package/dist/components/spinners/Spinner/Spinner.js +1 -1
  66. package/dist/components/spinners/Spinner/Spinner.js.map +1 -1
  67. package/dist/context/AppCreateReferralProvider.js +4 -4
  68. package/dist/context/AppCreateReferralProvider.js.map +1 -1
  69. package/dist/context/state.js +14 -6
  70. package/dist/context/state.js.map +1 -1
  71. package/dist/context/withAppCreateReferralContext.js +3 -5
  72. package/dist/context/withAppCreateReferralContext.js.map +1 -1
  73. package/dist/hooks/__tests__/useCreateReferrals.test.js +19 -17
  74. package/dist/hooks/__tests__/useCreateReferrals.test.js.map +1 -1
  75. package/dist/hooks/sendReferral.js +38 -35
  76. package/dist/hooks/sendReferral.js.map +1 -1
  77. package/dist/hooks/useClinicalModificationOptions.js +1 -2
  78. package/dist/hooks/useClinicalModificationOptions.js.map +1 -1
  79. package/dist/hooks/useCreateReferrals.js +107 -90
  80. package/dist/hooks/useCreateReferrals.js.map +1 -1
  81. package/dist/hooks/useCreateResourceList.js +11 -12
  82. package/dist/hooks/useCreateResourceList.js.map +1 -1
  83. package/dist/hooks/useCreateShareEvent.js +2 -2
  84. package/dist/hooks/useCreateShareEvent.js.map +1 -1
  85. package/dist/hooks/useForwardReferral.js +36 -36
  86. package/dist/hooks/useForwardReferral.js.map +1 -1
  87. package/dist/hooks/useUpdateResourceList.js +16 -17
  88. package/dist/hooks/useUpdateResourceList.js.map +1 -1
  89. package/dist/pages/builder/ReferralBuilder.js +32 -31
  90. package/dist/pages/builder/ReferralBuilder.js.map +1 -1
  91. package/dist/pages/builder/ReferralBuilderForm.js +7 -10
  92. package/dist/pages/builder/ReferralBuilderForm.js.map +1 -1
  93. package/dist/pages/builder/ReferralBuilderFormContent.js +43 -36
  94. package/dist/pages/builder/ReferralBuilderFormContent.js.map +1 -1
  95. package/dist/pages/builder/__tests__/AuthorizationRequiredPrograms.test.js +1 -1
  96. package/dist/pages/builder/__tests__/AuthorizationRequiredPrograms.test.js.map +1 -1
  97. package/dist/pages/builder/__tests__/NonSensitiveGroupedPrograms.test.js +16 -16
  98. package/dist/pages/builder/__tests__/NonSensitiveGroupedPrograms.test.js.map +1 -1
  99. package/dist/pages/builder/__tests__/NonSensitiveSingleProgram.test.js +12 -12
  100. package/dist/pages/builder/__tests__/NonSensitiveSingleProgram.test.js.map +1 -1
  101. package/dist/pages/builder/__tests__/ReferralBuilderForm.attachments.test.js +19 -14
  102. package/dist/pages/builder/__tests__/ReferralBuilderForm.attachments.test.js.map +1 -1
  103. package/dist/pages/builder/__tests__/SensitiveProviderGroupedPrograms.test.js +12 -12
  104. package/dist/pages/builder/__tests__/SensitiveProviderGroupedPrograms.test.js.map +1 -1
  105. package/dist/pages/builder/__tests__/SensitiveServiceGroupedPrograms.test.js +1 -1
  106. package/dist/pages/builder/__tests__/SensitiveServiceGroupedPrograms.test.js.map +1 -1
  107. package/dist/pages/builder/__tests__/SensitiveServiceSensitiveProviderGroupedPrograms.test.js +7 -7
  108. package/dist/pages/builder/__tests__/SensitiveServiceSensitiveProviderGroupedPrograms.test.js.map +1 -1
  109. package/dist/pages/builder/__tests__/SensitiveSingleProgram.test.js +15 -17
  110. package/dist/pages/builder/__tests__/SensitiveSingleProgram.test.js.map +1 -1
  111. package/dist/pages/builder/__tests__/buildDraftState.test.js +4 -6
  112. package/dist/pages/builder/__tests__/buildDraftState.test.js.map +1 -1
  113. package/dist/pages/builder/__tests__/buildGroupedReferrals.networkBug.test.js +4 -10
  114. package/dist/pages/builder/__tests__/buildGroupedReferrals.networkBug.test.js.map +1 -1
  115. package/dist/pages/builder/buildDraftState.js +2 -2
  116. package/dist/pages/builder/buildDraftState.js.map +1 -1
  117. package/dist/pages/builder/components/AuthorizationSubform.js +19 -19
  118. package/dist/pages/builder/components/AuthorizationSubform.js.map +1 -1
  119. package/dist/pages/builder/components/ChooseOneServiceTypeModal.js +5 -6
  120. package/dist/pages/builder/components/ChooseOneServiceTypeModal.js.map +1 -1
  121. package/dist/pages/builder/components/ProgramHeader.js +1 -1
  122. package/dist/pages/builder/components/ProgramHeader.js.map +1 -1
  123. package/dist/pages/builder/components/ProgramMenu.js +1 -1
  124. package/dist/pages/builder/components/ProgramMenu.js.map +1 -1
  125. package/dist/pages/builder/components/ReferralBuilderContent.js +5 -4
  126. package/dist/pages/builder/components/ReferralBuilderContent.js.map +1 -1
  127. package/dist/pages/builder/components/ReferralCard.js +11 -11
  128. package/dist/pages/builder/components/ReferralCard.js.map +1 -1
  129. package/dist/pages/builder/components/ReferralClientNeedsField.js +4 -6
  130. package/dist/pages/builder/components/ReferralClientNeedsField.js.map +1 -1
  131. package/dist/pages/builder/components/ReferralProgramCard.js +2 -2
  132. package/dist/pages/builder/components/ReferralProgramCard.js.map +1 -1
  133. package/dist/pages/builder/components/ReferralProgramMenu.js +3 -3
  134. package/dist/pages/builder/components/ReferralProgramMenu.js.map +1 -1
  135. package/dist/pages/builder/constants.js +18 -7
  136. package/dist/pages/builder/constants.js.map +1 -1
  137. package/dist/pages/builder/hooks/useBuildReferrals.js +6 -13
  138. package/dist/pages/builder/hooks/useBuildReferrals.js.map +1 -1
  139. package/dist/pages/builder/hooks/useReferralMutations.js +22 -15
  140. package/dist/pages/builder/hooks/useReferralMutations.js.map +1 -1
  141. package/dist/pages/builder/utils/buildGroupedReferrals.js +14 -25
  142. package/dist/pages/builder/utils/buildGroupedReferrals.js.map +1 -1
  143. package/dist/pages/builder/utils/buildGroupedReferralsHelpers.js +20 -40
  144. package/dist/pages/builder/utils/buildGroupedReferralsHelpers.js.map +1 -1
  145. package/dist/pages/builder/utils/formatProgramDetail.js +16 -18
  146. package/dist/pages/builder/utils/formatProgramDetail.js.map +1 -1
  147. package/dist/pages/builder/utils/referralBuilderFormDraftAuth.js +26 -26
  148. package/dist/pages/builder/utils/referralBuilderFormDraftAuth.js.map +1 -1
  149. package/dist/pages/builder/utils/referralBuilderFormUtils.js +15 -24
  150. package/dist/pages/builder/utils/referralBuilderFormUtils.js.map +1 -1
  151. package/dist/pages/builder/utils/referralBuilderFormValidation.js +20 -24
  152. package/dist/pages/builder/utils/referralBuilderFormValidation.js.map +1 -1
  153. package/dist/pages/builder/utils/referralBuilderUtils.js +20 -34
  154. package/dist/pages/builder/utils/referralBuilderUtils.js.map +1 -1
  155. package/dist/pages/builder/utils.js +45 -64
  156. package/dist/pages/builder/utils.js.map +1 -1
  157. package/dist/pages/review/DropdownMultiplesReferrals.js +12 -14
  158. package/dist/pages/review/DropdownMultiplesReferrals.js.map +1 -1
  159. package/dist/pages/review/ReferralsSent.js +19 -26
  160. package/dist/pages/review/ReferralsSent.js.map +1 -1
  161. package/dist/pages/review/Review.js +69 -88
  162. package/dist/pages/review/Review.js.map +1 -1
  163. package/dist/pages/review/SuccessReferralRedesign.js +2 -2
  164. package/dist/pages/review/SuccessReferralRedesign.js.map +1 -1
  165. package/dist/pages/review/__tests__/ReferralsSent.test.js +16 -16
  166. package/dist/pages/review/__tests__/ReferralsSent.test.js.map +1 -1
  167. package/dist/pages/review/__tests__/Review.test.js +30 -22
  168. package/dist/pages/review/__tests__/Review.test.js.map +1 -1
  169. package/dist/pages/review/constants.js +3 -3
  170. package/dist/pages/review/constants.js.map +1 -1
  171. package/dist/pages/review/referralStatusRedesign.js +5 -6
  172. package/dist/pages/review/referralStatusRedesign.js.map +1 -1
  173. package/dist/pages/supporting-info/SupportingInfo.js +14 -21
  174. package/dist/pages/supporting-info/SupportingInfo.js.map +1 -1
  175. package/dist/utils/attachmentUtils.js +1 -1
  176. package/dist/utils/attachmentUtils.js.map +1 -1
  177. package/dist/utils/handleDraftSaveResponse.js +1 -1
  178. package/dist/utils/handleDraftSaveResponse.js.map +1 -1
  179. package/dist/utils/referralToConsent.js +5 -8
  180. package/dist/utils/referralToConsent.js.map +1 -1
  181. package/dist/utils/validateCostAmount.js +1 -1
  182. package/dist/utils/validateCostAmount.js.map +1 -1
  183. package/dist/utils/validateUnitAmount.js +1 -1
  184. package/dist/utils/validateUnitAmount.js.map +1 -1
  185. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useCreateReferrals.js","names":["get","map","isEmpty","moment","feeScheduleProgramUtils","isUnlistedProgram","referralIsOON","referralIsGrouped","resolveAttachmentFields","useCreateRecord","useUpdateRecord","CALLBACKS","coreApi","useAppCreateReferralContext","useFeatureFlag","referralToConsent","formatShortDate2FromTimestamp","DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE","REQUIRED_FIELDS_BY_TYPE","case","note","referral","normalizeRequestedCents","amountRequested","amount","Number","isInteger","Math","round","buildServiceAuthorizationStatePayload","_ref","serviceAuthorizationId","draft","state","buildRequestedAmountPayload","_ref2","feeScheduleProgram","isCostPaymentType","payment_type","requested_cents","requested_unit_amount","parseInt","validateRequiredValues","type","values","requiredFields","filter","field","updateShippingDetail","shippingDetail","index","updates","item","find","detail","Object","assign","getAttachmentErrorMessage","error","message","getAttachmentStatus","settledOperations","length","succeeded","_ref3","status","mergeAttachmentStatuses","current","incoming","mergeAttachmentOutcome","outcome","attachmentStatus","attachmentErrors","getRequestedDateRange","pays5590RefactorInsuranceFilters","serviceStart","serviceEnd","requestedStartDate","requestedEndDate","unix","toISOString","add","subtract","getCaseValues","_ref4","_referral$primaryWork","personId","isOON","formSubmissionId","screeningId","caseValues","description","person_conditions","personConditionsForCaseCreation","client_need","person","provider","sendingProvider","id","network","service","primaryWorker","primary_worker","originating_form_submission","screening2_id","opened_date","getAssistanceRequestCasePayload","_ref5","arCase","showClientNeed","payload","_objectSpread","Array","isArray","mapPersonConditions","getReferralState","_ref6","authorizationCreated","clientNeed","arguments","undefined","personConditionsPayload","referralNeedsAuthorization","authorizationOwnsReferralState","useCreateReferrals","currentEmployee","formResponses","referrals","assistanceRequestId","hint542SupersetUnlistedPrograms","createRecord","createReferral","createCase","createServiceAuthorization","createFormSubmission","createNote","updateRecord","updateReferral","updateCase","updateServiceAuthorization","createErrorMessage","response","data","errors","title","join","getAttachmentOperations","caseToUploadDoc","removePersistedDocuments","attachableDocuments","filteredDocuments","doc","attached","attachedDocuments","ad","operations","push","operation","name","_ref7","execute","setRelationship","relationshipModel","value","a","uploadedDocuments","_ref8","file","uploadFile","filesToDelete","filename","deleteFile","processAttachments","options","Promise","allSettled","_ref9","resolve","then","reduce","result","reason","submitAssessments","_ref0","cases","latestResponses","promises","serviceCase","assessment","_assessment$form","form","service_type_ids","includes","context","contextType","responses","submitter","all","catch","err","notify","fetchActiveInsurance","_ref1","_responseInsurances$d","feeScheduleId","queryInsuranceParams","enrolled_before","expired_after","sort","responseInsurances","query","saveServiceAuthorization","_ref10","caseId","programs","fee_schedule_program","authorization_required","insurance","fee_schedule","paymentAuthForm","amount_requested","icd10CodeId","icd10Codes","requested_starts_at","requested_ends_at","requester","clinical_modifications","createAuthorizationIfNeeded","_ref11","createCaseForReferral","_ref12","missingCaseValues","Error","concat","caseResponse","createdCase","createUnlistedProgramNote","_ref13","programData","createNoteForUnlistedProgramValues","subjectType","subject","employee","visibility","category","text","missingNoteValues","sent","referralIndex","_unused","createProgramReferral","_ref14","isGrouped","createdReferrals","referralValues","is_grouped","receiving_program","receiving_provider","receiving_network","sending_provider","sending_network","missingReferralValues","responseReferral","createdReferral","processProgramForReferral","_ref15","createdCaseOrExistingAR","processDraftReferral","_ref16","_resultDraft$cases$","resultDraft","updateDraftReferralCrtb1239","referralsWithIndex","referralData","originalReferral","referralsToConsent","processNonDraftReferral","_ref17","referredToPrograms","j","shouldCreateCase","caseResult","createdReferralOrNote","createReferrals","_ref18","i","buildCaseUpdatePayload","oldCase","serviceTypeChanged","service_type","descriptionChanged","getTargetState","getDraftTargetState","buildReferralRelationshipFieldChanges","_ref19","currentReferral","existingReferral","program","changes","_ref20","previousId","nextId","buildReferralUpdatePayload","_ref21","targetState","stateOwnedByAuthorization","processReferralUpdates","toUpdate","_ref22","_ref23","updatePayload","keys","processReferralCreations","toCreate","_ref24","extractReferralRecords","r","_r$data","Boolean","getDeleteUpdateCreateReferrals","oldReferrals","unmatchedOldReferrals","unmatchedPrograms","matchedUpdates","forEach","matchingOldReferralIndex","findIndex","oldReferral","splice","replacementUpdateCount","min","replacementUpdates","slice","toDelete","fetchDraftRecords","caseRequestResponse","referralsRequestResponse","findRecord","updateDraftCase","serviceCasePayload","validateDraftAuthorizationUpdate","_ref25","removesAuthorizationRequirement","saveServiceAuthorizationIfNeeded","_ref26","applyDraftReferralRemovalsAndUpdates","_ref27","deletePromises","deleteRecord","updatePromises","applyDraftReferralCreations","_ref28","notifyDraftUpdateError","updateDraftReferralCrtb1239Core","_caseResponse$data$da","_caseResponse$data","updatedReferrals","attachmentOutcome","updateServiceAuthorizationHandler","service_authorization","buildExistingDraftUpdatePayloads","isAuthRequired","casePayload","referralPayload","getUpdatedDraftReferralState","updateDraftReferral","oldCaseResponse","referralPromiseIndex","coreResult"],"sources":["../../src/hooks/useCreateReferrals.js"],"sourcesContent":["import { get, map, isEmpty } from 'lodash';\nimport moment from 'moment';\nimport { feeScheduleProgramUtils } from '@unite-us/app-components';\nimport { isUnlistedProgram, referralIsOON, referralIsGrouped } from '../pages/builder/utils';\nimport { resolveAttachmentFields } from '../utils/attachmentUtils';\nimport { useCreateRecord, useUpdateRecord } from '../api/ApiHooks';\nimport { CALLBACKS, coreApi } from '../api/config';\nimport { useAppCreateReferralContext } from '../context/AppCreateReferralProvider';\nimport { useFeatureFlag } from '../utils/useFeatureFlag';\nimport referralToConsent from '../utils/referralToConsent';\nimport { formatShortDate2FromTimestamp } from '../components/service_authorization/formatShortDate';\nimport { DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE } from '../constants';\n\nconst REQUIRED_FIELDS_BY_TYPE = {\n case: ['description', 'service', 'provider', 'network', 'person'],\n note: ['subjectType', 'subject', 'visibility', 'text'],\n referral: ['case', 'receiving_program', 'receiving_provider', 'receiving_network', 'sending_provider', 'sending_network'],\n};\n\nconst normalizeRequestedCents = (amountRequested) => {\n const amount = Number(amountRequested);\n\n if (Number.isInteger(amount)) {\n return amount;\n }\n\n return Math.round(amount * 100);\n};\n\nconst buildServiceAuthorizationStatePayload = ({ serviceAuthorizationId, draft }) => {\n if (serviceAuthorizationId && draft) {\n return {};\n }\n\n return { state: draft ? 'draft' : 'requested' };\n};\n\nconst buildRequestedAmountPayload = ({ feeScheduleProgram, amountRequested }) => {\n if (feeScheduleProgramUtils.isCostPaymentType(feeScheduleProgram.payment_type)) {\n return { requested_cents: normalizeRequestedCents(amountRequested) };\n }\n\n return { requested_unit_amount: parseInt(amountRequested) };\n};\n\nconst validateRequiredValues = (type, values) => {\n const requiredFields = REQUIRED_FIELDS_BY_TYPE[type] || [];\n return requiredFields.filter((field) => !values[field]);\n};\n\nconst updateShippingDetail = (shippingDetail, index, updates) => {\n const item = shippingDetail.find((detail) => detail.index === index);\n if (item) {\n Object.assign(item, updates);\n }\n};\n\nconst getAttachmentErrorMessage = (error) => (\n get(error, 'response.data.errors[0].title')\n || get(error, 'response.data.errors[0].detail')\n || error?.message\n || 'Attachment operation failed'\n);\n\nconst getAttachmentStatus = (settledOperations) => {\n if (settledOperations.length === 0) return 'not_requested';\n const succeeded = settledOperations.filter(({ status }) => status === 'fulfilled').length;\n if (succeeded === settledOperations.length) return 'succeeded';\n if (succeeded === 0) return 'failed';\n return 'partial';\n};\n\nconst mergeAttachmentStatuses = (current, incoming) => {\n if (current === 'not_requested') return incoming;\n if (current === 'succeeded' && incoming === 'succeeded') return 'succeeded';\n if (current === 'failed' && incoming === 'failed') return 'failed';\n return 'partial';\n};\n\nconst mergeAttachmentOutcome = (shippingDetail, index, outcome) => {\n const detail = shippingDetail.find((item) => item.index === index);\n if (!detail || outcome.attachmentStatus === 'not_requested') return;\n\n const attachmentStatus = mergeAttachmentStatuses(\n detail.attachmentStatus,\n outcome.attachmentStatus,\n );\n\n updateShippingDetail(shippingDetail, index, {\n attachmentStatus,\n attachmentErrors: [...detail.attachmentErrors, ...outcome.attachmentErrors],\n });\n};\n\nconst getRequestedDateRange = (referral, pays5590RefactorInsuranceFilters) => {\n const serviceStart = get(referral, 'paymentAuthForm.service_start');\n const serviceEnd = get(referral, 'paymentAuthForm.service_end');\n let requestedStartDate;\n let requestedEndDate;\n\n if (serviceStart) {\n requestedStartDate = moment.unix(serviceStart).toISOString();\n }\n if (serviceEnd) {\n requestedEndDate = moment.unix(serviceEnd).toISOString();\n }\n\n if (pays5590RefactorInsuranceFilters) {\n if (requestedStartDate) {\n requestedStartDate = moment(requestedStartDate).add(1, 'day').toISOString();\n }\n if (requestedEndDate) {\n requestedEndDate = moment(requestedEndDate).subtract(1, 'day').toISOString();\n }\n }\n\n return { requestedStartDate, requestedEndDate };\n};\n\nconst getCaseValues = ({\n referral,\n personId,\n isOON,\n formSubmissionId,\n screeningId,\n}) => {\n const caseValues = {\n description: referral.description,\n state: 'draft',\n person_conditions: personConditionsForCaseCreation(referral.client_need),\n person: personId,\n provider: referral.sendingProvider.id,\n network: referral.network.id,\n service: referral.service.id,\n };\n\n if (referral.primaryWorker?.id) {\n caseValues.primary_worker = referral.primaryWorker.id;\n }\n if (formSubmissionId) {\n caseValues.originating_form_submission = formSubmissionId;\n }\n if (screeningId) {\n caseValues.screening2_id = screeningId;\n }\n if (isOON) {\n caseValues.state = 'off_platform';\n caseValues.opened_date = formatShortDate2FromTimestamp(referral.opened_date);\n }\n\n return caseValues;\n};\n\nconst getAssistanceRequestCasePayload = ({\n referral,\n arCase,\n isOON,\n showClientNeed,\n}) => {\n let payload = {\n description: referral.description,\n network: referral.network.id,\n };\n\n if (referral.service.id && (get(arCase, 'service.id') !== referral.service.id)) {\n payload = { ...payload, service: referral.service.id };\n }\n\n if (isOON) {\n payload = {\n ...payload,\n primary_worker: referral.primaryWorker.id,\n state: 'off_platform',\n opened_date: formatShortDate2FromTimestamp(referral.opened_date),\n };\n }\n\n if (showClientNeed && Array.isArray(referral.client_need)) {\n payload.person_conditions = mapPersonConditions(referral.client_need);\n }\n\n return payload;\n};\n\nconst getReferralState = ({ draft, isOON, authorizationCreated }) => {\n if (draft) {\n return 'draft';\n }\n if (isOON) {\n return 'off_platform';\n }\n if (authorizationCreated) {\n return 'pending_authorization';\n }\n return 'sent';\n};\n\nconst mapPersonConditions = (clientNeed = []) => (\n clientNeed.map((id) => ({ id, type: 'person_condition' }))\n);\n\nconst personConditionsPayload = (clientNeed) => (\n Array.isArray(clientNeed)\n ? { person_conditions: mapPersonConditions(clientNeed) }\n : {}\n);\n\nconst personConditionsForCaseCreation = (clientNeed) => (\n mapPersonConditions(Array.isArray(clientNeed) ? clientNeed : [])\n);\n\nconst referralNeedsAuthorization = (referral) => (\n !!get(referral, 'programs[0].fee_schedule_program.authorization_required', false)\n);\n\n// When an authorization request is submitted, core transitions the case's referrals itself\n// (pending_authorization, or sent for auto-approving fee schedule programs). Sending a state\n// alongside that would be a double-write: core rejects any update to a referral that has already\n// left draft, so the referral update must not set the final state in that case.\nconst authorizationOwnsReferralState = (draft, referral) => (\n !draft && referralNeedsAuthorization(referral)\n);\n\nexport default function useCreateReferrals() {\n const {\n state: {\n currentEmployee,\n formResponses,\n person,\n referrals,\n formSubmissionId,\n assistanceRequestId,\n screeningId,\n }\n } = useAppCreateReferralContext();\n\n const hint542SupersetUnlistedPrograms = useFeatureFlag('hint542SupersetUnlistedPrograms', false);\n const pays5590RefactorInsuranceFilters = useFeatureFlag('pays5590RefactorInsuranceFilters', false);\n const showClientNeed = useFeatureFlag('crtb2130MultipleClientNeeds', false);\n\n const { createRecord: createReferral } = useCreateRecord('referral');\n const { createRecord: createCase } = useCreateRecord('case');\n const { createRecord: createServiceAuthorization } = useCreateRecord('service_authorization');\n const { createRecord: createFormSubmission } = useCreateRecord('form_submission');\n const { createRecord: createNote } = useCreateRecord('note');\n const { updateRecord: updateReferral } = useUpdateRecord('referral');\n const { updateRecord: updateCase } = useUpdateRecord('case');\n const { updateRecord: updateServiceAuthorization } = useUpdateRecord('service_authorization');\n\n const createErrorMessage = (error) => {\n return error.response.data.errors.map((error) => error.title).join(', ');\n }\n\n const getAttachmentOperations = (referral, caseToUploadDoc, { removePersistedDocuments = false } = {}) => {\n const attachableDocuments = get(referral, 'attachableDocuments', []);\n const filteredDocuments = attachableDocuments.filter((doc) => doc?.attached === true);\n const attachedDocuments = filteredDocuments.map((ad) => ({\n title: get(ad, 'document.title'),\n id: get(ad, 'document.id'),\n }));\n const operations = [];\n\n if (!isEmpty(attachedDocuments)) {\n operations.push({\n operation: 'relationship',\n name: attachedDocuments.map(({ title, id }) => title || id).join(', '),\n execute: () => coreApi.setRelationship(\n 'case',\n caseToUploadDoc.id,\n { relationshipModel: 'file_upload', value: attachedDocuments.map((a) => a.id) },\n ),\n });\n }\n\n const uploadedDocuments = get(referral, 'pendingAttachments', []);\n\n if (!isEmpty(uploadedDocuments)) {\n operations.push(...uploadedDocuments.map(({ file }) => ({\n operation: 'upload',\n name: file?.name || 'attachment',\n execute: () => coreApi.uploadFile('case', caseToUploadDoc.id, file),\n })));\n }\n\n const filesToDelete = get(referral, 'removablePersistedAttachments', []).filter((file) => file?.id);\n if (removePersistedDocuments && !isEmpty(filesToDelete)) {\n operations.push(...filesToDelete.map((file) => ({\n operation: 'delete',\n name: file.filename || file.name || file.id,\n execute: () => coreApi.deleteFile('case', caseToUploadDoc.id, file.id),\n })));\n }\n return operations;\n };\n\n const processAttachments = async (referral, caseToUploadDoc, options) => {\n const operations = getAttachmentOperations(referral, caseToUploadDoc, options);\n const settledOperations = await Promise.allSettled(\n operations.map(({ execute }) => Promise.resolve().then(execute)),\n );\n\n return {\n attachmentStatus: getAttachmentStatus(settledOperations),\n attachmentErrors: settledOperations.reduce((errors, result, index) => (\n result.status === 'rejected'\n ? [...errors, { operation: operations[index].operation, name: operations[index].name, message: getAttachmentErrorMessage(result.reason) }]\n : errors\n ), []),\n };\n };\n\n const submitAssessments = ({ cases, latestResponses }) => {\n let promises = [];\n map(cases, (serviceCase) => {\n map((latestResponses || formResponses), (assessment) => {\n if (!isEmpty(assessment) && assessment.form?.service_type_ids?.includes(serviceCase.service.id)) {\n promises.push(createFormSubmission({\n context: serviceCase.id,\n contextType: 'case',\n form: assessment.form.id,\n provider: serviceCase.provider.id,\n responses: assessment.responses,\n submitter: currentEmployee.id,\n }));\n }\n });\n });\n\n return Promise.all(promises).then((responses) => {\n return responses;\n }).catch(err => {\n CALLBACKS.notify.error(\"Error submitting Assessments\");\n throw err;\n });\n };\n\n const fetchActiveInsurance = async ({ personId, feeScheduleId, requestedStartDate, requestedEndDate }) => {\n const queryInsuranceParams = {\n person: personId,\n state: 'active',\n enrolled_before: requestedStartDate,\n expired_after: requestedEndDate,\n 'plan.fee_schedules': feeScheduleId,\n sort: '-enrolled_at',\n };\n\n const responseInsurances = await coreApi.query('insurance', queryInsuranceParams);\n return responseInsurances?.data?.data?.[0];\n };\n\n const saveServiceAuthorization = async ({\n referral,\n caseId,\n personId,\n draft,\n serviceAuthorizationId,\n }) => {\n const feeScheduleProgram = referral.programs[0].fee_schedule_program;\n if (!feeScheduleProgram?.authorization_required) {\n return false;\n }\n\n const { requestedStartDate, requestedEndDate } = getRequestedDateRange(\n referral,\n pays5590RefactorInsuranceFilters,\n );\n const insurance = await fetchActiveInsurance({\n personId,\n feeScheduleId: feeScheduleProgram.fee_schedule.id,\n requestedStartDate,\n requestedEndDate,\n });\n\n const amountRequested = referral.paymentAuthForm.amount_requested;\n const icd10CodeId = get(referral, 'paymentAuthForm.icd10_code.id');\n const icd10Codes = icd10CodeId ? [icd10CodeId] : [];\n const payload = {\n ...buildServiceAuthorizationStatePayload({ serviceAuthorizationId, draft }),\n requested_starts_at: requestedStartDate,\n requested_ends_at: requestedEndDate,\n ...buildRequestedAmountPayload({ feeScheduleProgram, amountRequested }),\n fee_schedule_program: feeScheduleProgram.id,\n requester: currentEmployee.id,\n insurance: insurance.id,\n person: personId,\n clinical_modifications: icd10Codes,\n };\n\n if (serviceAuthorizationId) {\n await updateServiceAuthorization(serviceAuthorizationId, payload);\n } else {\n await createServiceAuthorization({\n ...payload,\n case: caseId,\n });\n }\n\n return true;\n };\n\n const createAuthorizationIfNeeded = async ({ referral, caseId, personId, draft }) => (\n saveServiceAuthorization({\n referral,\n caseId,\n personId,\n draft,\n })\n );\n\n const createCaseForReferral = async ({ referral, index, personId, isOON, draft, result }) => {\n const caseValues = getCaseValues({\n referral,\n personId,\n isOON,\n formSubmissionId,\n screeningId,\n });\n const missingCaseValues = validateRequiredValues('case', caseValues);\n if (missingCaseValues.length) {\n throw new Error(`The following fields for the case are required: ${missingCaseValues.join(', ')}`);\n }\n\n try {\n let caseResponse;\n if (assistanceRequestId && index === 0) {\n const arCase = get(assistanceRequestId, 'case', null);\n const payload = getAssistanceRequestCasePayload({\n referral,\n arCase,\n isOON,\n showClientNeed,\n });\n caseResponse = await updateCase(arCase.id, payload);\n } else {\n caseResponse = await createCase(caseValues);\n }\n\n const createdCase = get(caseResponse, 'data.data', {});\n updateShippingDetail(result.shippingDetail, index, { caseId: createdCase.id });\n\n const authorizationCreated = await createAuthorizationIfNeeded({\n referral,\n caseId: createdCase.id,\n personId,\n draft,\n });\n\n result.cases.push(createdCase);\n return { createdCase, authorizationCreated };\n } catch (err) {\n result.shippingDetail[index].error = `Error creating the Case: ${createErrorMessage(err)}`;\n return null;\n }\n };\n\n const createUnlistedProgramNote = async ({ programData, caseId, index, result }) => {\n const createNoteForUnlistedProgramValues = {\n subjectType: 'case',\n subject: caseId,\n employee: currentEmployee.id,\n visibility: 'public',\n category: 'external_provider',\n text: `Referred off platform to ${programData.name}`,\n };\n\n const missingNoteValues = validateRequiredValues('note', createNoteForUnlistedProgramValues);\n if (missingNoteValues.length) {\n result.shippingDetail[index].error = `The following fields for the unlisted program are required: ${missingNoteValues.join(', ')}`;\n return false;\n }\n\n try {\n await createNote(createNoteForUnlistedProgramValues);\n result.referrals.push({ index, sent: true, referralIndex: index });\n updateShippingDetail(result.shippingDetail, index, { sent: true });\n return true;\n } catch {\n result.shippingDetail[index].error = \"Error creating the note on the case for the unlisted program\";\n return false;\n }\n };\n\n const createProgramReferral = async ({\n referral,\n programData,\n state,\n isGrouped,\n caseId,\n index,\n result,\n createdReferrals,\n }) => {\n const referralValues = {\n state,\n case: caseId,\n is_grouped: isGrouped,\n receiving_program: programData.id,\n receiving_provider: programData.provider.id,\n receiving_network: referral.network.id,\n sending_provider: referral.sendingProvider.id,\n sending_network: referral.network.id,\n ...personConditionsPayload(referral.client_need),\n };\n\n const missingReferralValues = validateRequiredValues('referral', referralValues);\n if (missingReferralValues.length) {\n result.shippingDetail[index].error = `The following fields for the referral are required: ${missingReferralValues.join(', ')}`;\n return null;\n }\n\n try {\n const responseReferral = await createReferral(referralValues);\n const createdReferral = responseReferral.data.data;\n result.referrals.push({\n ...createdReferral,\n referralIndex: index,\n });\n updateShippingDetail(result.shippingDetail, index, { sent: true });\n createdReferrals.push(createdReferral);\n return createdReferral;\n } catch (err) {\n result.shippingDetail[index].error = `Error creating the Referral: ${createErrorMessage(err)}`;\n return null;\n }\n };\n\n const processProgramForReferral = async ({\n referral,\n programData,\n isGrouped,\n isOON,\n authorizationCreated,\n draft,\n createdCaseOrExistingAR,\n index,\n result,\n createdReferrals,\n }) => {\n const state = getReferralState({ draft, isOON, authorizationCreated });\n if (hint542SupersetUnlistedPrograms && isUnlistedProgram(programData)) {\n return createUnlistedProgramNote({\n programData,\n caseId: createdCaseOrExistingAR.id,\n index,\n result,\n });\n }\n\n return createProgramReferral({\n referral,\n programData,\n state,\n isGrouped,\n caseId: createdCaseOrExistingAR.id,\n index,\n result,\n createdReferrals,\n });\n };\n\n const processDraftReferral = async ({ referral, index, draft, result }) => {\n const resultDraft = await updateDraftReferralCrtb1239(referral, draft);\n\n updateShippingDetail(result.shippingDetail, index, {\n sent: true,\n caseId: resultDraft.cases[0]?.id,\n attachmentStatus: resultDraft.attachmentStatus,\n attachmentErrors: resultDraft.attachmentErrors,\n });\n result.cases.push(resultDraft.cases[0]);\n \n const referralsWithIndex = resultDraft.referrals.map(referral => ({\n ...referral,\n referralIndex: index,\n }));\n result.referrals.push(...referralsWithIndex);\n\n if (!draft) {\n const referralData = await referralToConsent({\n originalReferral: referral,\n createdReferrals: resultDraft.referrals,\n });\n if (referralData) {\n result.referralsToConsent.push(referralData);\n }\n }\n };\n\n const processNonDraftReferral = async ({ referral, index, draft, personId, result }) => {\n const referredToPrograms = get(referral, 'programs', []);\n const isGrouped = referralIsGrouped(referral);\n const isOON = referralIsOON(referral);\n const createdReferrals = [];\n\n let createdCaseOrExistingAR = null;\n let authorizationCreated = false;\n\n for (let j = 0; j < referredToPrograms.length; j += 1) {\n const programData = referredToPrograms[j];\n const shouldCreateCase = isGrouped ? !createdCaseOrExistingAR : true;\n\n if (shouldCreateCase) {\n const caseResult = await createCaseForReferral({\n referral,\n index,\n personId,\n isOON,\n draft,\n result,\n });\n if (!caseResult) {\n continue;\n }\n createdCaseOrExistingAR = caseResult.createdCase;\n authorizationCreated = caseResult.authorizationCreated;\n }\n\n const createdReferralOrNote = await processProgramForReferral({\n referral,\n programData,\n isGrouped,\n isOON,\n authorizationCreated,\n draft,\n createdCaseOrExistingAR,\n index,\n result,\n createdReferrals,\n });\n\n if (!isGrouped && createdReferralOrNote) {\n mergeAttachmentOutcome(result.shippingDetail, index, await processAttachments(referral, createdCaseOrExistingAR));\n }\n }\n\n if (isGrouped && createdCaseOrExistingAR && result.shippingDetail[index].sent) {\n mergeAttachmentOutcome(result.shippingDetail, index, await processAttachments(referral, createdCaseOrExistingAR));\n }\n\n const referralData = await referralToConsent({\n originalReferral: referral,\n createdReferrals,\n });\n if (referralData) {\n result.referralsToConsent.push(referralData);\n }\n };\n\n const createReferrals = async ({ referrals, person, draft }) => {\n const result = {\n referrals: [],\n cases: [],\n shippingDetail: [],\n referralsToConsent: [],\n };\n\n for (let i = 0; i < referrals.length; i += 1) {\n result.shippingDetail.push({\n id: `referral-result-${i}`,\n index: i,\n sent: false,\n error: null,\n caseId: null,\n attachmentStatus: 'not_requested',\n attachmentErrors: [],\n });\n\n try {\n const referral = {\n ...referrals[i],\n ...resolveAttachmentFields(referrals[i]),\n };\n if (referral.state === 'draft') {\n await processDraftReferral({ referral, index: i, draft, result });\n } else {\n await processNonDraftReferral({\n referral,\n index: i,\n draft,\n personId: person.id,\n result,\n });\n }\n } catch (err) {\n result.shippingDetail[i].error = `Unexpected error: ${err.message}`;\n }\n }\n\n return result;\n };\n\n const buildCaseUpdatePayload = (referral, oldCase) => {\n const serviceTypeChanged = referral.service.id !== oldCase.service_type.id;\n const descriptionChanged = referral.description && referral.description !== oldCase.description;\n return {\n ...(serviceTypeChanged && { service: { id: referral.service.id } }),\n ...(descriptionChanged && { description: referral.description }),\n ...personConditionsPayload(referral.client_need),\n };\n };\n\n const getTargetState = (draft, referral) => {\n if (draft) return 'draft';\n return referralIsOON(referral) ? 'off_platform' : 'sent';\n };\n\n const getDraftTargetState = (draft, referral) => {\n if (draft) return 'draft';\n if (referralIsOON(referral)) return 'off_platform';\n return referralNeedsAuthorization(referral) ? 'pending_authorization' : 'sent';\n };\n\n // Each entry compares the existing referral's relationship against the newly desired one and,\n // when they differ, contributes that field to the update payload.\n const buildReferralRelationshipFieldChanges = ({ currentReferral, existingReferral, program }) => ([\n ['receiving_program', get(existingReferral, 'receiving_program.id'), get(program, 'id')],\n ['receiving_provider', get(existingReferral, 'receiving_provider.id'), get(program, 'provider.id')],\n ['receiving_network', get(existingReferral, 'receiving_network.id'), get(currentReferral, 'network.id')],\n ['sending_provider', get(existingReferral, 'sending_provider.id'), get(currentReferral, 'sendingProvider.id')],\n ['sending_network', get(existingReferral, 'sending_network.id'), get(currentReferral, 'network.id')],\n ].reduce((changes, [field, previousId, nextId]) => (\n previousId !== nextId ? { ...changes, [field]: nextId } : changes\n ), {}));\n\n const buildReferralUpdatePayload = ({\n currentReferral,\n existingReferral,\n program,\n targetState,\n isGrouped,\n stateOwnedByAuthorization = false,\n }) => {\n const payload = {\n ...buildReferralRelationshipFieldChanges({ currentReferral, existingReferral, program }),\n ...personConditionsPayload(currentReferral.client_need),\n };\n\n if (!stateOwnedByAuthorization && existingReferral.state !== targetState) {\n payload.state = targetState;\n }\n if (existingReferral.is_grouped !== isGrouped) payload.is_grouped = isGrouped;\n\n return payload;\n };\n\n const processReferralUpdates = (toUpdate, currentReferral, {\n targetState,\n isGrouped,\n stateOwnedByAuthorization = false,\n }) => {\n return toUpdate.map(({ existingReferral, program }) => {\n const updatePayload = buildReferralUpdatePayload({\n currentReferral,\n existingReferral,\n program,\n targetState,\n isGrouped,\n stateOwnedByAuthorization,\n });\n // An unchanged referral still belongs to the result: downstream consent and share-event\n // handling keys off the referrals we return, so resolve with the record we already have\n // instead of dropping it.\n return Object.keys(updatePayload).length > 0\n ? updateReferral(existingReferral.id, updatePayload)\n : Promise.resolve({ data: { data: existingReferral } });\n });\n };\n\n const processReferralCreations = (toCreate, { targetState, isGrouped, oldCase, referral }) => {\n return toCreate.map(program => createReferral({\n state: targetState,\n case: oldCase.id,\n is_grouped: isGrouped,\n receiving_program: program.id,\n receiving_provider: program.provider.id,\n receiving_network: referral.network.id,\n sending_provider: oldCase.provider.id,\n sending_network: oldCase.network.id,\n ...personConditionsPayload(referral.client_need),\n }));\n };\n\n const extractReferralRecords = (responses) => responses.map(r => r?.data?.data).filter(Boolean);\n\n const getDeleteUpdateCreateReferrals = (referral, oldReferrals) => {\n const unmatchedOldReferrals = [...oldReferrals];\n const unmatchedPrograms = [];\n const matchedUpdates = [];\n\n referral.programs.forEach((program) => {\n const matchingOldReferralIndex = unmatchedOldReferrals.findIndex(\n (oldReferral) => get(oldReferral, 'receiving_program.id') === program.id,\n );\n\n if (matchingOldReferralIndex >= 0) {\n const [existingReferral] = unmatchedOldReferrals.splice(matchingOldReferralIndex, 1);\n matchedUpdates.push({ existingReferral, program });\n } else {\n unmatchedPrograms.push(program);\n }\n });\n\n const replacementUpdateCount = Math.min(unmatchedOldReferrals.length, unmatchedPrograms.length);\n const replacementUpdates = unmatchedPrograms.slice(0, replacementUpdateCount).map((program, index) => ({\n existingReferral: unmatchedOldReferrals[index],\n program,\n }));\n const isGrouped = referral.programs.length > 1;\n\n return {\n toDelete: unmatchedOldReferrals.slice(replacementUpdateCount),\n toUpdate: [...matchedUpdates, ...replacementUpdates],\n toCreate: unmatchedPrograms.slice(replacementUpdateCount),\n isGrouped,\n };\n };\n\n const fetchDraftRecords = async (referral) => {\n const [caseRequestResponse, referralsRequestResponse] = await Promise.all([\n coreApi.findRecord('case', referral.case.id),\n coreApi.query('referral', { case: referral.case.id }),\n ]);\n\n const oldCase = get(caseRequestResponse, 'data.data', null);\n const oldReferrals = get(referralsRequestResponse, 'data.data', null);\n\n return { oldCase, oldReferrals };\n };\n\n const updateDraftCase = async (referral, oldCase) => {\n const serviceCasePayload = buildCaseUpdatePayload(referral, oldCase);\n const caseResponse = isEmpty(serviceCasePayload) ? oldCase : await updateCase(referral.case.id, serviceCasePayload);\n\n return caseResponse;\n };\n\n const validateDraftAuthorizationUpdate = ({ referral, oldCase, serviceAuthorizationId }) => {\n if (!serviceAuthorizationId) {\n return;\n }\n\n const serviceTypeChanged = referral.service.id !== oldCase.service_type.id;\n const removesAuthorizationRequirement = !referralNeedsAuthorization(referral);\n\n if (serviceTypeChanged || removesAuthorizationRequirement) {\n throw new Error(DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE);\n }\n };\n\n const saveServiceAuthorizationIfNeeded = async ({\n referral,\n oldCase,\n draft,\n serviceAuthorizationId,\n }) => {\n if (!referralNeedsAuthorization(referral)) {\n return;\n }\n\n await saveServiceAuthorization({\n referral,\n caseId: oldCase.id,\n personId: person.id,\n draft,\n serviceAuthorizationId,\n });\n };\n\n // Deletes and updates target referrals that already exist, and core only allows either while the\n // referral is still in draft. They must therefore be applied before the authorization request.\n const applyDraftReferralRemovalsAndUpdates = async ({\n referral,\n toDelete,\n toUpdate,\n targetState,\n isGrouped,\n stateOwnedByAuthorization,\n }) => {\n const deletePromises = toDelete.map(r => coreApi.deleteRecord('referral', r.id));\n const updatePromises = processReferralUpdates(toUpdate, referral, {\n targetState,\n isGrouped,\n stateOwnedByAuthorization,\n });\n const responses = await Promise.all([...deletePromises, ...updatePromises]);\n\n return extractReferralRecords(responses.slice(toDelete.length));\n };\n\n // New referrals are created after the authorization request, where core accepts an explicit\n // pending_authorization state, matching how referrals are created from scratch.\n const applyDraftReferralCreations = async ({\n referral,\n oldCase,\n toCreate,\n targetState,\n isGrouped,\n }) => {\n const responses = await Promise.all(\n processReferralCreations(toCreate, { targetState, isGrouped, oldCase, referral }),\n );\n\n return extractReferralRecords(responses);\n };\n\n const notifyDraftUpdateError = (err, draft) => {\n if (err.message === DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE) {\n CALLBACKS.notify.error(DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE);\n } else if (!draft) {\n CALLBACKS.notify.error(\"Error updating the Draft Referral\");\n }\n };\n\n const updateDraftReferralCrtb1239Core = async (referral, draft = false) => {\n const { oldCase, oldReferrals } = await fetchDraftRecords(referral);\n const { toDelete, toUpdate, toCreate, isGrouped } = getDeleteUpdateCreateReferrals(referral, oldReferrals);\n const targetState = getDraftTargetState(draft, referral);\n const serviceAuthorizationId = get(oldCase, 'service_authorization.id') ||\n get(referral, 'case.service_authorization.id');\n const stateOwnedByAuthorization = authorizationOwnsReferralState(draft, referral);\n\n validateDraftAuthorizationUpdate({ referral, oldCase, serviceAuthorizationId });\n const caseResponse = await updateDraftCase(referral, oldCase);\n\n const updatedReferrals = await applyDraftReferralRemovalsAndUpdates({\n referral,\n toDelete,\n toUpdate,\n targetState,\n isGrouped,\n stateOwnedByAuthorization,\n });\n\n await saveServiceAuthorizationIfNeeded({ referral, oldCase, draft, serviceAuthorizationId });\n\n const createdReferrals = await applyDraftReferralCreations({\n referral,\n oldCase,\n toCreate,\n targetState,\n isGrouped,\n });\n\n const attachmentOutcome = await processAttachments(\n referral,\n oldCase,\n { removePersistedDocuments: true },\n );\n\n return {\n cases: [caseResponse?.data?.data ?? oldCase],\n referrals: [...updatedReferrals, ...createdReferrals],\n ...attachmentOutcome,\n };\n };\n\n const updateDraftReferralCrtb1239 = async (referral, draft = false) => {\n try {\n return await updateDraftReferralCrtb1239Core(referral, draft);\n } catch (err) {\n notifyDraftUpdateError(err, draft);\n throw err;\n }\n }\n\n const updateServiceAuthorizationHandler = async (referral, options = { draft: false }) => {\n const feeScheduleProgram = referral.programs[0].fee_schedule_program;\n const { requestedStartDate, requestedEndDate } = getRequestedDateRange(\n referral,\n pays5590RefactorInsuranceFilters,\n );\n\n const amountRequested = referral.paymentAuthForm.amount_requested;\n const insurance = await fetchActiveInsurance({\n personId: person.id,\n feeScheduleId: feeScheduleProgram.fee_schedule.id,\n requestedStartDate,\n requestedEndDate,\n });\n\n await updateServiceAuthorization(referral.case.service_authorization.id, {\n ...(options.draft ? {} : { state: 'requested' }),\n requested_starts_at: requestedStartDate,\n requested_ends_at: requestedEndDate,\n ...buildRequestedAmountPayload({ feeScheduleProgram, amountRequested }),\n requester: currentEmployee.id,\n insurance: insurance.id,\n person: person.id,\n });\n }\n\n const buildExistingDraftUpdatePayloads = (referral, draft, isAuthRequired) => {\n const casePayload = {\n description: referral.description,\n ...personConditionsPayload(referral.client_need),\n };\n\n const referralPayload = {\n ...personConditionsPayload(referral.client_need),\n ...(draft ? {} : { state: getUpdatedDraftReferralState(referral, isAuthRequired) }),\n };\n\n return { casePayload, referralPayload };\n };\n\n const updateDraftReferral = async (referral, draft) => {\n try {\n const isAuthRequired = get(referral, 'programs[0].fee_schedule_program.authorization_required', false);\n const { casePayload, referralPayload } = buildExistingDraftUpdatePayloads(referral, draft, isAuthRequired);\n const oldCaseResponse = await coreApi.findRecord('case', referral.case.id);\n const oldCase = get(oldCaseResponse, 'data.data', null);\n\n const promises = [\n updateCase(referral.case.id, casePayload)\n ];\n let referralPromiseIndex = null;\n\n if (!isEmpty(referralPayload)) {\n referralPromiseIndex = promises.length;\n promises.push(updateReferral(referral.id, referralPayload));\n }\n\n if(isAuthRequired) {\n promises.push(updateServiceAuthorizationHandler(referral, { draft }));\n }\n\n const responses = await Promise.all(\n promises\n );\n\n const coreResult = {\n referrals: draft ? [] : [responses[referralPromiseIndex].data.data],\n cases: [responses[0].data.data],\n };\n\n const attachmentOutcome = await processAttachments(\n referral,\n oldCase,\n { removePersistedDocuments: true },\n );\n\n return { ...coreResult, ...attachmentOutcome };\n } catch (err) {\n if (err.message === DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE) {\n CALLBACKS.notify.error(DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE);\n } else if (!draft) {\n CALLBACKS.notify.error(\"Error updating the Draft Referral\");\n }\n throw err;\n }\n }\n\n return async ({ draft = false, latestResponses } = {}) => {\n let response = {\n referralsToConsent: [],\n };\n\n response = await createReferrals({ referrals, person, draft });\n\n if (formResponses || latestResponses) {\n await submitAssessments({ cases: response.cases, latestResponses });\n }\n\n return {\n cases: response.cases,\n referrals: response.referrals,\n shippingDetail: response.shippingDetail,\n referralsToConsent: response.referralsToConsent,\n };\n };\n};\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"useCreateReferrals.js","names":["get","map","isEmpty","moment","feeScheduleProgramUtils","isUnlistedProgram","referralIsOON","referralIsGrouped","resolveAttachmentFields","useCreateRecord","useUpdateRecord","CALLBACKS","coreApi","useAppCreateReferralContext","useFeatureFlag","referralToConsent","formatShortDate2FromTimestamp","DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE","REQUIRED_FIELDS_BY_TYPE","case","note","referral","normalizeRequestedCents","amountRequested","amount","Number","isInteger","Math","round","buildServiceAuthorizationStatePayload","_ref","serviceAuthorizationId","draft","state","buildRequestedAmountPayload","_ref2","feeScheduleProgram","isCostPaymentType","payment_type","requested_cents","requested_unit_amount","parseInt","validateRequiredValues","type","values","requiredFields","filter","field","updateShippingDetail","shippingDetail","index","updates","item","find","detail","Object","assign","getAttachmentErrorMessage","error","message","getAttachmentStatus","settledOperations","length","succeeded","_ref3","status","mergeAttachmentStatuses","current","incoming","mergeAttachmentOutcome","outcome","attachmentStatus","attachmentErrors","getRequestedDateRange","pays5590RefactorInsuranceFilters","serviceStart","serviceEnd","requestedStartDate","requestedEndDate","unix","toISOString","add","subtract","getCaseValues","_ref4","personId","isOON","formSubmissionId","screeningId","caseValues","description","person_conditions","personConditionsForCaseCreation","client_need","person","provider","sendingProvider","id","network","service","primaryWorker","primary_worker","originating_form_submission","screening2_id","opened_date","getAssistanceRequestCasePayload","_ref5","arCase","showClientNeed","payload","Array","isArray","mapPersonConditions","getReferralState","_ref6","authorizationCreated","clientNeed","arguments","undefined","personConditionsPayload","referralNeedsAuthorization","authorizationOwnsReferralState","useCreateReferrals","currentEmployee","formResponses","referrals","assistanceRequestId","hint542SupersetUnlistedPrograms","createRecord","createReferral","createCase","createServiceAuthorization","createFormSubmission","createNote","updateRecord","updateReferral","updateCase","updateServiceAuthorization","createErrorMessage","response","data","errors","title","join","getAttachmentOperations","caseToUploadDoc","removePersistedDocuments","attachableDocuments","filteredDocuments","doc","attached","attachedDocuments","ad","operations","push","operation","name","_ref7","execute","setRelationship","relationshipModel","value","a","uploadedDocuments","_ref8","file","uploadFile","filesToDelete","filename","deleteFile","processAttachments","options","Promise","allSettled","_ref9","resolve","then","reduce","result","reason","submitAssessments","_ref0","cases","latestResponses","promises","serviceCase","assessment","form","service_type_ids","includes","context","contextType","responses","submitter","all","catch","err","notify","fetchActiveInsurance","_ref1","feeScheduleId","queryInsuranceParams","enrolled_before","expired_after","sort","responseInsurances","query","saveServiceAuthorization","_ref10","caseId","programs","fee_schedule_program","authorization_required","insurance","fee_schedule","paymentAuthForm","amount_requested","icd10CodeId","icd10Codes","requested_starts_at","requested_ends_at","requester","clinical_modifications","createAuthorizationIfNeeded","_ref11","createCaseForReferral","_ref12","missingCaseValues","Error","caseResponse","createdCase","createUnlistedProgramNote","_ref13","programData","createNoteForUnlistedProgramValues","subjectType","subject","employee","visibility","category","text","missingNoteValues","sent","referralIndex","createProgramReferral","_ref14","isGrouped","createdReferrals","referralValues","is_grouped","receiving_program","receiving_provider","receiving_network","sending_provider","sending_network","missingReferralValues","responseReferral","createdReferral","processProgramForReferral","_ref15","createdCaseOrExistingAR","processDraftReferral","_ref16","resultDraft","updateDraftReferralCrtb1239","referralsWithIndex","referralData","originalReferral","referralsToConsent","processNonDraftReferral","_ref17","referredToPrograms","j","shouldCreateCase","caseResult","createdReferralOrNote","createReferrals","_ref18","i","buildCaseUpdatePayload","oldCase","serviceTypeChanged","service_type","descriptionChanged","getTargetState","getDraftTargetState","buildReferralRelationshipFieldChanges","_ref19","currentReferral","existingReferral","program","changes","_ref20","previousId","nextId","buildReferralUpdatePayload","_ref21","targetState","stateOwnedByAuthorization","processReferralUpdates","toUpdate","_ref22","_ref23","updatePayload","keys","processReferralCreations","toCreate","_ref24","extractReferralRecords","r","Boolean","getDeleteUpdateCreateReferrals","oldReferrals","unmatchedOldReferrals","unmatchedPrograms","matchedUpdates","forEach","matchingOldReferralIndex","findIndex","oldReferral","splice","replacementUpdateCount","min","replacementUpdates","slice","toDelete","fetchDraftRecords","caseRequestResponse","referralsRequestResponse","findRecord","updateDraftCase","serviceCasePayload","validateDraftAuthorizationUpdate","_ref25","removesAuthorizationRequirement","saveServiceAuthorizationIfNeeded","_ref26","applyDraftReferralRemovalsAndUpdates","_ref27","deletePromises","deleteRecord","updatePromises","applyDraftReferralCreations","_ref28","notifyDraftUpdateError","updateDraftReferralCrtb1239Core","updatedReferrals","attachmentOutcome","updateServiceAuthorizationHandler","service_authorization","buildExistingDraftUpdatePayloads","isAuthRequired","casePayload","referralPayload","getUpdatedDraftReferralState","updateDraftReferral","oldCaseResponse","referralPromiseIndex","coreResult"],"sources":["../../src/hooks/useCreateReferrals.js"],"sourcesContent":["import { get, map, isEmpty } from 'lodash';\nimport moment from 'moment';\nimport { feeScheduleProgramUtils } from '@unite-us/app-components';\nimport { isUnlistedProgram, referralIsOON, referralIsGrouped } from '../pages/builder/utils';\nimport { resolveAttachmentFields } from '../utils/attachmentUtils';\nimport { useCreateRecord, useUpdateRecord } from '../api/ApiHooks';\nimport { CALLBACKS, coreApi } from '../api/config';\nimport { useAppCreateReferralContext } from '../context/AppCreateReferralProvider';\nimport { useFeatureFlag } from '../utils/useFeatureFlag';\nimport referralToConsent from '../utils/referralToConsent';\nimport { formatShortDate2FromTimestamp } from '../components/service_authorization/formatShortDate';\nimport { DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE } from '../constants';\n\nconst REQUIRED_FIELDS_BY_TYPE = {\n case: ['description', 'service', 'provider', 'network', 'person'],\n note: ['subjectType', 'subject', 'visibility', 'text'],\n referral: ['case', 'receiving_program', 'receiving_provider', 'receiving_network', 'sending_provider', 'sending_network'],\n};\n\nconst normalizeRequestedCents = (amountRequested) => {\n const amount = Number(amountRequested);\n\n if (Number.isInteger(amount)) {\n return amount;\n }\n\n return Math.round(amount * 100);\n};\n\nconst buildServiceAuthorizationStatePayload = ({ serviceAuthorizationId, draft }) => {\n if (serviceAuthorizationId && draft) {\n return {};\n }\n\n return { state: draft ? 'draft' : 'requested' };\n};\n\nconst buildRequestedAmountPayload = ({ feeScheduleProgram, amountRequested }) => {\n if (feeScheduleProgramUtils.isCostPaymentType(feeScheduleProgram.payment_type)) {\n return { requested_cents: normalizeRequestedCents(amountRequested) };\n }\n\n return { requested_unit_amount: parseInt(amountRequested) };\n};\n\nconst validateRequiredValues = (type, values) => {\n const requiredFields = REQUIRED_FIELDS_BY_TYPE[type] || [];\n return requiredFields.filter((field) => !values[field]);\n};\n\nconst updateShippingDetail = (shippingDetail, index, updates) => {\n const item = shippingDetail.find((detail) => detail.index === index);\n if (item) {\n Object.assign(item, updates);\n }\n};\n\nconst getAttachmentErrorMessage = (error) => (\n get(error, 'response.data.errors[0].title')\n || get(error, 'response.data.errors[0].detail')\n || error?.message\n || 'Attachment operation failed'\n);\n\nconst getAttachmentStatus = (settledOperations) => {\n if (settledOperations.length === 0) return 'not_requested';\n const succeeded = settledOperations.filter(({ status }) => status === 'fulfilled').length;\n if (succeeded === settledOperations.length) return 'succeeded';\n if (succeeded === 0) return 'failed';\n return 'partial';\n};\n\nconst mergeAttachmentStatuses = (current, incoming) => {\n if (current === 'not_requested') return incoming;\n if (current === 'succeeded' && incoming === 'succeeded') return 'succeeded';\n if (current === 'failed' && incoming === 'failed') return 'failed';\n return 'partial';\n};\n\nconst mergeAttachmentOutcome = (shippingDetail, index, outcome) => {\n const detail = shippingDetail.find((item) => item.index === index);\n if (!detail || outcome.attachmentStatus === 'not_requested') return;\n\n const attachmentStatus = mergeAttachmentStatuses(\n detail.attachmentStatus,\n outcome.attachmentStatus,\n );\n\n updateShippingDetail(shippingDetail, index, {\n attachmentStatus,\n attachmentErrors: [...detail.attachmentErrors, ...outcome.attachmentErrors],\n });\n};\n\nconst getRequestedDateRange = (referral, pays5590RefactorInsuranceFilters) => {\n const serviceStart = get(referral, 'paymentAuthForm.service_start');\n const serviceEnd = get(referral, 'paymentAuthForm.service_end');\n let requestedStartDate;\n let requestedEndDate;\n\n if (serviceStart) {\n requestedStartDate = moment.unix(serviceStart).toISOString();\n }\n if (serviceEnd) {\n requestedEndDate = moment.unix(serviceEnd).toISOString();\n }\n\n if (pays5590RefactorInsuranceFilters) {\n if (requestedStartDate) {\n requestedStartDate = moment(requestedStartDate).add(1, 'day').toISOString();\n }\n if (requestedEndDate) {\n requestedEndDate = moment(requestedEndDate).subtract(1, 'day').toISOString();\n }\n }\n\n return { requestedStartDate, requestedEndDate };\n};\n\nconst getCaseValues = ({\n referral,\n personId,\n isOON,\n formSubmissionId,\n screeningId,\n}) => {\n const caseValues = {\n description: referral.description,\n state: 'draft',\n person_conditions: personConditionsForCaseCreation(referral.client_need),\n person: personId,\n provider: referral.sendingProvider.id,\n network: referral.network.id,\n service: referral.service.id,\n };\n\n if (referral.primaryWorker?.id) {\n caseValues.primary_worker = referral.primaryWorker.id;\n }\n if (formSubmissionId) {\n caseValues.originating_form_submission = formSubmissionId;\n }\n if (screeningId) {\n caseValues.screening2_id = screeningId;\n }\n if (isOON) {\n caseValues.state = 'off_platform';\n caseValues.opened_date = formatShortDate2FromTimestamp(referral.opened_date);\n }\n\n return caseValues;\n};\n\nconst getAssistanceRequestCasePayload = ({\n referral,\n arCase,\n isOON,\n showClientNeed,\n}) => {\n let payload = {\n description: referral.description,\n network: referral.network.id,\n };\n\n if (referral.service.id && (get(arCase, 'service.id') !== referral.service.id)) {\n payload = { ...payload, service: referral.service.id };\n }\n\n if (isOON) {\n payload = {\n ...payload,\n primary_worker: referral.primaryWorker.id,\n state: 'off_platform',\n opened_date: formatShortDate2FromTimestamp(referral.opened_date),\n };\n }\n\n if (showClientNeed && Array.isArray(referral.client_need)) {\n payload.person_conditions = mapPersonConditions(referral.client_need);\n }\n\n return payload;\n};\n\nconst getReferralState = ({ draft, isOON, authorizationCreated }) => {\n if (draft) {\n return 'draft';\n }\n if (isOON) {\n return 'off_platform';\n }\n if (authorizationCreated) {\n return 'pending_authorization';\n }\n return 'sent';\n};\n\nconst mapPersonConditions = (clientNeed = []) => (\n clientNeed.map((id) => ({ id, type: 'person_condition' }))\n);\n\nconst personConditionsPayload = (clientNeed) => (\n Array.isArray(clientNeed)\n ? { person_conditions: mapPersonConditions(clientNeed) }\n : {}\n);\n\nconst personConditionsForCaseCreation = (clientNeed) => (\n mapPersonConditions(Array.isArray(clientNeed) ? clientNeed : [])\n);\n\nconst referralNeedsAuthorization = (referral) => (\n !!get(referral, 'programs[0].fee_schedule_program.authorization_required', false)\n);\n\n// When an authorization request is submitted, core transitions the case's referrals itself\n// (pending_authorization, or sent for auto-approving fee schedule programs). Sending a state\n// alongside that would be a double-write: core rejects any update to a referral that has already\n// left draft, so the referral update must not set the final state in that case.\nconst authorizationOwnsReferralState = (draft, referral) => (\n !draft && referralNeedsAuthorization(referral)\n);\n\nexport default function useCreateReferrals() {\n const {\n state: {\n currentEmployee,\n formResponses,\n person,\n referrals,\n formSubmissionId,\n assistanceRequestId,\n screeningId,\n }\n } = useAppCreateReferralContext();\n\n const hint542SupersetUnlistedPrograms = useFeatureFlag('hint542SupersetUnlistedPrograms', false);\n const pays5590RefactorInsuranceFilters = useFeatureFlag('pays5590RefactorInsuranceFilters', false);\n const showClientNeed = useFeatureFlag('crtb2130MultipleClientNeeds', false);\n\n const { createRecord: createReferral } = useCreateRecord('referral');\n const { createRecord: createCase } = useCreateRecord('case');\n const { createRecord: createServiceAuthorization } = useCreateRecord('service_authorization');\n const { createRecord: createFormSubmission } = useCreateRecord('form_submission');\n const { createRecord: createNote } = useCreateRecord('note');\n const { updateRecord: updateReferral } = useUpdateRecord('referral');\n const { updateRecord: updateCase } = useUpdateRecord('case');\n const { updateRecord: updateServiceAuthorization } = useUpdateRecord('service_authorization');\n\n const createErrorMessage = (error) => {\n return error.response.data.errors.map((error) => error.title).join(', ');\n }\n\n const getAttachmentOperations = (referral, caseToUploadDoc, { removePersistedDocuments = false } = {}) => {\n const attachableDocuments = get(referral, 'attachableDocuments', []);\n const filteredDocuments = attachableDocuments.filter((doc) => doc?.attached === true);\n const attachedDocuments = filteredDocuments.map((ad) => ({\n title: get(ad, 'document.title'),\n id: get(ad, 'document.id'),\n }));\n const operations = [];\n\n if (!isEmpty(attachedDocuments)) {\n operations.push({\n operation: 'relationship',\n name: attachedDocuments.map(({ title, id }) => title || id).join(', '),\n execute: () => coreApi.setRelationship(\n 'case',\n caseToUploadDoc.id,\n { relationshipModel: 'file_upload', value: attachedDocuments.map((a) => a.id) },\n ),\n });\n }\n\n const uploadedDocuments = get(referral, 'pendingAttachments', []);\n\n if (!isEmpty(uploadedDocuments)) {\n operations.push(...uploadedDocuments.map(({ file }) => ({\n operation: 'upload',\n name: file?.name || 'attachment',\n execute: () => coreApi.uploadFile('case', caseToUploadDoc.id, file),\n })));\n }\n\n const filesToDelete = get(referral, 'removablePersistedAttachments', []).filter((file) => file?.id);\n if (removePersistedDocuments && !isEmpty(filesToDelete)) {\n operations.push(...filesToDelete.map((file) => ({\n operation: 'delete',\n name: file.filename || file.name || file.id,\n execute: () => coreApi.deleteFile('case', caseToUploadDoc.id, file.id),\n })));\n }\n return operations;\n };\n\n const processAttachments = async (referral, caseToUploadDoc, options) => {\n const operations = getAttachmentOperations(referral, caseToUploadDoc, options);\n const settledOperations = await Promise.allSettled(\n operations.map(({ execute }) => Promise.resolve().then(execute)),\n );\n\n return {\n attachmentStatus: getAttachmentStatus(settledOperations),\n attachmentErrors: settledOperations.reduce((errors, result, index) => (\n result.status === 'rejected'\n ? [...errors, { operation: operations[index].operation, name: operations[index].name, message: getAttachmentErrorMessage(result.reason) }]\n : errors\n ), []),\n };\n };\n\n const submitAssessments = ({ cases, latestResponses }) => {\n let promises = [];\n map(cases, (serviceCase) => {\n map((latestResponses || formResponses), (assessment) => {\n if (!isEmpty(assessment) && assessment.form?.service_type_ids?.includes(serviceCase.service.id)) {\n promises.push(createFormSubmission({\n context: serviceCase.id,\n contextType: 'case',\n form: assessment.form.id,\n provider: serviceCase.provider.id,\n responses: assessment.responses,\n submitter: currentEmployee.id,\n }));\n }\n });\n });\n\n return Promise.all(promises).then((responses) => {\n return responses;\n }).catch(err => {\n CALLBACKS.notify.error(\"Error submitting Assessments\");\n throw err;\n });\n };\n\n const fetchActiveInsurance = async ({ personId, feeScheduleId, requestedStartDate, requestedEndDate }) => {\n const queryInsuranceParams = {\n person: personId,\n state: 'active',\n enrolled_before: requestedStartDate,\n expired_after: requestedEndDate,\n 'plan.fee_schedules': feeScheduleId,\n sort: '-enrolled_at',\n };\n\n const responseInsurances = await coreApi.query('insurance', queryInsuranceParams);\n return responseInsurances?.data?.data?.[0];\n };\n\n const saveServiceAuthorization = async ({\n referral,\n caseId,\n personId,\n draft,\n serviceAuthorizationId,\n }) => {\n const feeScheduleProgram = referral.programs[0].fee_schedule_program;\n if (!feeScheduleProgram?.authorization_required) {\n return false;\n }\n\n const { requestedStartDate, requestedEndDate } = getRequestedDateRange(\n referral,\n pays5590RefactorInsuranceFilters,\n );\n const insurance = await fetchActiveInsurance({\n personId,\n feeScheduleId: feeScheduleProgram.fee_schedule.id,\n requestedStartDate,\n requestedEndDate,\n });\n\n const amountRequested = referral.paymentAuthForm.amount_requested;\n const icd10CodeId = get(referral, 'paymentAuthForm.icd10_code.id');\n const icd10Codes = icd10CodeId ? [icd10CodeId] : [];\n const payload = {\n ...buildServiceAuthorizationStatePayload({ serviceAuthorizationId, draft }),\n requested_starts_at: requestedStartDate,\n requested_ends_at: requestedEndDate,\n ...buildRequestedAmountPayload({ feeScheduleProgram, amountRequested }),\n fee_schedule_program: feeScheduleProgram.id,\n requester: currentEmployee.id,\n insurance: insurance.id,\n person: personId,\n clinical_modifications: icd10Codes,\n };\n\n if (serviceAuthorizationId) {\n await updateServiceAuthorization(serviceAuthorizationId, payload);\n } else {\n await createServiceAuthorization({\n ...payload,\n case: caseId,\n });\n }\n\n return true;\n };\n\n const createAuthorizationIfNeeded = async ({ referral, caseId, personId, draft }) => (\n saveServiceAuthorization({\n referral,\n caseId,\n personId,\n draft,\n })\n );\n\n const createCaseForReferral = async ({ referral, index, personId, isOON, draft, result }) => {\n const caseValues = getCaseValues({\n referral,\n personId,\n isOON,\n formSubmissionId,\n screeningId,\n });\n const missingCaseValues = validateRequiredValues('case', caseValues);\n if (missingCaseValues.length) {\n throw new Error(`The following fields for the case are required: ${missingCaseValues.join(', ')}`);\n }\n\n try {\n let caseResponse;\n if (assistanceRequestId && index === 0) {\n const arCase = get(assistanceRequestId, 'case', null);\n const payload = getAssistanceRequestCasePayload({\n referral,\n arCase,\n isOON,\n showClientNeed,\n });\n caseResponse = await updateCase(arCase.id, payload);\n } else {\n caseResponse = await createCase(caseValues);\n }\n\n const createdCase = get(caseResponse, 'data.data', {});\n updateShippingDetail(result.shippingDetail, index, { caseId: createdCase.id });\n\n const authorizationCreated = await createAuthorizationIfNeeded({\n referral,\n caseId: createdCase.id,\n personId,\n draft,\n });\n\n result.cases.push(createdCase);\n return { createdCase, authorizationCreated };\n } catch (err) {\n result.shippingDetail[index].error = `Error creating the Case: ${createErrorMessage(err)}`;\n return null;\n }\n };\n\n const createUnlistedProgramNote = async ({ programData, caseId, index, result }) => {\n const createNoteForUnlistedProgramValues = {\n subjectType: 'case',\n subject: caseId,\n employee: currentEmployee.id,\n visibility: 'public',\n category: 'external_provider',\n text: `Referred off platform to ${programData.name}`,\n };\n\n const missingNoteValues = validateRequiredValues('note', createNoteForUnlistedProgramValues);\n if (missingNoteValues.length) {\n result.shippingDetail[index].error = `The following fields for the unlisted program are required: ${missingNoteValues.join(', ')}`;\n return false;\n }\n\n try {\n await createNote(createNoteForUnlistedProgramValues);\n result.referrals.push({ index, sent: true, referralIndex: index });\n updateShippingDetail(result.shippingDetail, index, { sent: true });\n return true;\n } catch {\n result.shippingDetail[index].error = \"Error creating the note on the case for the unlisted program\";\n return false;\n }\n };\n\n const createProgramReferral = async ({\n referral,\n programData,\n state,\n isGrouped,\n caseId,\n index,\n result,\n createdReferrals,\n }) => {\n const referralValues = {\n state,\n case: caseId,\n is_grouped: isGrouped,\n receiving_program: programData.id,\n receiving_provider: programData.provider.id,\n receiving_network: referral.network.id,\n sending_provider: referral.sendingProvider.id,\n sending_network: referral.network.id,\n ...personConditionsPayload(referral.client_need),\n };\n\n const missingReferralValues = validateRequiredValues('referral', referralValues);\n if (missingReferralValues.length) {\n result.shippingDetail[index].error = `The following fields for the referral are required: ${missingReferralValues.join(', ')}`;\n return null;\n }\n\n try {\n const responseReferral = await createReferral(referralValues);\n const createdReferral = responseReferral.data.data;\n result.referrals.push({\n ...createdReferral,\n referralIndex: index,\n });\n updateShippingDetail(result.shippingDetail, index, { sent: true });\n createdReferrals.push(createdReferral);\n return createdReferral;\n } catch (err) {\n result.shippingDetail[index].error = `Error creating the Referral: ${createErrorMessage(err)}`;\n return null;\n }\n };\n\n const processProgramForReferral = async ({\n referral,\n programData,\n isGrouped,\n isOON,\n authorizationCreated,\n draft,\n createdCaseOrExistingAR,\n index,\n result,\n createdReferrals,\n }) => {\n const state = getReferralState({ draft, isOON, authorizationCreated });\n if (hint542SupersetUnlistedPrograms && isUnlistedProgram(programData)) {\n return createUnlistedProgramNote({\n programData,\n caseId: createdCaseOrExistingAR.id,\n index,\n result,\n });\n }\n\n return createProgramReferral({\n referral,\n programData,\n state,\n isGrouped,\n caseId: createdCaseOrExistingAR.id,\n index,\n result,\n createdReferrals,\n });\n };\n\n const processDraftReferral = async ({ referral, index, draft, result }) => {\n const resultDraft = await updateDraftReferralCrtb1239(referral, draft);\n\n updateShippingDetail(result.shippingDetail, index, {\n sent: true,\n caseId: resultDraft.cases[0]?.id,\n attachmentStatus: resultDraft.attachmentStatus,\n attachmentErrors: resultDraft.attachmentErrors,\n });\n result.cases.push(resultDraft.cases[0]);\n \n const referralsWithIndex = resultDraft.referrals.map(referral => ({\n ...referral,\n referralIndex: index,\n }));\n result.referrals.push(...referralsWithIndex);\n\n if (!draft) {\n const referralData = await referralToConsent({\n originalReferral: referral,\n createdReferrals: resultDraft.referrals,\n });\n if (referralData) {\n result.referralsToConsent.push(referralData);\n }\n }\n };\n\n const processNonDraftReferral = async ({ referral, index, draft, personId, result }) => {\n const referredToPrograms = get(referral, 'programs', []);\n const isGrouped = referralIsGrouped(referral);\n const isOON = referralIsOON(referral);\n const createdReferrals = [];\n\n let createdCaseOrExistingAR = null;\n let authorizationCreated = false;\n\n for (let j = 0; j < referredToPrograms.length; j += 1) {\n const programData = referredToPrograms[j];\n const shouldCreateCase = isGrouped ? !createdCaseOrExistingAR : true;\n\n if (shouldCreateCase) {\n const caseResult = await createCaseForReferral({\n referral,\n index,\n personId,\n isOON,\n draft,\n result,\n });\n if (!caseResult) {\n continue;\n }\n createdCaseOrExistingAR = caseResult.createdCase;\n authorizationCreated = caseResult.authorizationCreated;\n }\n\n const createdReferralOrNote = await processProgramForReferral({\n referral,\n programData,\n isGrouped,\n isOON,\n authorizationCreated,\n draft,\n createdCaseOrExistingAR,\n index,\n result,\n createdReferrals,\n });\n\n if (!isGrouped && createdReferralOrNote) {\n mergeAttachmentOutcome(result.shippingDetail, index, await processAttachments(referral, createdCaseOrExistingAR));\n }\n }\n\n if (isGrouped && createdCaseOrExistingAR && result.shippingDetail[index].sent) {\n mergeAttachmentOutcome(result.shippingDetail, index, await processAttachments(referral, createdCaseOrExistingAR));\n }\n\n const referralData = await referralToConsent({\n originalReferral: referral,\n createdReferrals,\n });\n if (referralData) {\n result.referralsToConsent.push(referralData);\n }\n };\n\n const createReferrals = async ({ referrals, person, draft }) => {\n const result = {\n referrals: [],\n cases: [],\n shippingDetail: [],\n referralsToConsent: [],\n };\n\n for (let i = 0; i < referrals.length; i += 1) {\n result.shippingDetail.push({\n id: `referral-result-${i}`,\n index: i,\n sent: false,\n error: null,\n caseId: null,\n attachmentStatus: 'not_requested',\n attachmentErrors: [],\n });\n\n try {\n const referral = {\n ...referrals[i],\n ...resolveAttachmentFields(referrals[i]),\n };\n if (referral.state === 'draft') {\n await processDraftReferral({ referral, index: i, draft, result });\n } else {\n await processNonDraftReferral({\n referral,\n index: i,\n draft,\n personId: person.id,\n result,\n });\n }\n } catch (err) {\n result.shippingDetail[i].error = `Unexpected error: ${err.message}`;\n }\n }\n\n return result;\n };\n\n const buildCaseUpdatePayload = (referral, oldCase) => {\n const serviceTypeChanged = referral.service.id !== oldCase.service_type.id;\n const descriptionChanged = referral.description && referral.description !== oldCase.description;\n return {\n ...(serviceTypeChanged && { service: { id: referral.service.id } }),\n ...(descriptionChanged && { description: referral.description }),\n ...personConditionsPayload(referral.client_need),\n };\n };\n\n const getTargetState = (draft, referral) => {\n if (draft) return 'draft';\n return referralIsOON(referral) ? 'off_platform' : 'sent';\n };\n\n const getDraftTargetState = (draft, referral) => {\n if (draft) return 'draft';\n if (referralIsOON(referral)) return 'off_platform';\n return referralNeedsAuthorization(referral) ? 'pending_authorization' : 'sent';\n };\n\n // Each entry compares the existing referral's relationship against the newly desired one and,\n // when they differ, contributes that field to the update payload.\n const buildReferralRelationshipFieldChanges = ({ currentReferral, existingReferral, program }) => ([\n ['receiving_program', get(existingReferral, 'receiving_program.id'), get(program, 'id')],\n ['receiving_provider', get(existingReferral, 'receiving_provider.id'), get(program, 'provider.id')],\n ['receiving_network', get(existingReferral, 'receiving_network.id'), get(currentReferral, 'network.id')],\n ['sending_provider', get(existingReferral, 'sending_provider.id'), get(currentReferral, 'sendingProvider.id')],\n ['sending_network', get(existingReferral, 'sending_network.id'), get(currentReferral, 'network.id')],\n ].reduce((changes, [field, previousId, nextId]) => (\n previousId !== nextId ? { ...changes, [field]: nextId } : changes\n ), {}));\n\n const buildReferralUpdatePayload = ({\n currentReferral,\n existingReferral,\n program,\n targetState,\n isGrouped,\n stateOwnedByAuthorization = false,\n }) => {\n const payload = {\n ...buildReferralRelationshipFieldChanges({ currentReferral, existingReferral, program }),\n ...personConditionsPayload(currentReferral.client_need),\n };\n\n if (!stateOwnedByAuthorization && existingReferral.state !== targetState) {\n payload.state = targetState;\n }\n if (existingReferral.is_grouped !== isGrouped) payload.is_grouped = isGrouped;\n\n return payload;\n };\n\n const processReferralUpdates = (toUpdate, currentReferral, {\n targetState,\n isGrouped,\n stateOwnedByAuthorization = false,\n }) => {\n return toUpdate.map(({ existingReferral, program }) => {\n const updatePayload = buildReferralUpdatePayload({\n currentReferral,\n existingReferral,\n program,\n targetState,\n isGrouped,\n stateOwnedByAuthorization,\n });\n // An unchanged referral still belongs to the result: downstream consent and share-event\n // handling keys off the referrals we return, so resolve with the record we already have\n // instead of dropping it.\n return Object.keys(updatePayload).length > 0\n ? updateReferral(existingReferral.id, updatePayload)\n : Promise.resolve({ data: { data: existingReferral } });\n });\n };\n\n const processReferralCreations = (toCreate, { targetState, isGrouped, oldCase, referral }) => {\n return toCreate.map(program => createReferral({\n state: targetState,\n case: oldCase.id,\n is_grouped: isGrouped,\n receiving_program: program.id,\n receiving_provider: program.provider.id,\n receiving_network: referral.network.id,\n sending_provider: oldCase.provider.id,\n sending_network: oldCase.network.id,\n ...personConditionsPayload(referral.client_need),\n }));\n };\n\n const extractReferralRecords = (responses) => responses.map(r => r?.data?.data).filter(Boolean);\n\n const getDeleteUpdateCreateReferrals = (referral, oldReferrals) => {\n const unmatchedOldReferrals = [...oldReferrals];\n const unmatchedPrograms = [];\n const matchedUpdates = [];\n\n referral.programs.forEach((program) => {\n const matchingOldReferralIndex = unmatchedOldReferrals.findIndex(\n (oldReferral) => get(oldReferral, 'receiving_program.id') === program.id,\n );\n\n if (matchingOldReferralIndex >= 0) {\n const [existingReferral] = unmatchedOldReferrals.splice(matchingOldReferralIndex, 1);\n matchedUpdates.push({ existingReferral, program });\n } else {\n unmatchedPrograms.push(program);\n }\n });\n\n const replacementUpdateCount = Math.min(unmatchedOldReferrals.length, unmatchedPrograms.length);\n const replacementUpdates = unmatchedPrograms.slice(0, replacementUpdateCount).map((program, index) => ({\n existingReferral: unmatchedOldReferrals[index],\n program,\n }));\n const isGrouped = referral.programs.length > 1;\n\n return {\n toDelete: unmatchedOldReferrals.slice(replacementUpdateCount),\n toUpdate: [...matchedUpdates, ...replacementUpdates],\n toCreate: unmatchedPrograms.slice(replacementUpdateCount),\n isGrouped,\n };\n };\n\n const fetchDraftRecords = async (referral) => {\n const [caseRequestResponse, referralsRequestResponse] = await Promise.all([\n coreApi.findRecord('case', referral.case.id),\n coreApi.query('referral', { case: referral.case.id }),\n ]);\n\n const oldCase = get(caseRequestResponse, 'data.data', null);\n const oldReferrals = get(referralsRequestResponse, 'data.data', null);\n\n return { oldCase, oldReferrals };\n };\n\n const updateDraftCase = async (referral, oldCase) => {\n const serviceCasePayload = buildCaseUpdatePayload(referral, oldCase);\n const caseResponse = isEmpty(serviceCasePayload) ? oldCase : await updateCase(referral.case.id, serviceCasePayload);\n\n return caseResponse;\n };\n\n const validateDraftAuthorizationUpdate = ({ referral, oldCase, serviceAuthorizationId }) => {\n if (!serviceAuthorizationId) {\n return;\n }\n\n const serviceTypeChanged = referral.service.id !== oldCase.service_type.id;\n const removesAuthorizationRequirement = !referralNeedsAuthorization(referral);\n\n if (serviceTypeChanged || removesAuthorizationRequirement) {\n throw new Error(DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE);\n }\n };\n\n const saveServiceAuthorizationIfNeeded = async ({\n referral,\n oldCase,\n draft,\n serviceAuthorizationId,\n }) => {\n if (!referralNeedsAuthorization(referral)) {\n return;\n }\n\n await saveServiceAuthorization({\n referral,\n caseId: oldCase.id,\n personId: person.id,\n draft,\n serviceAuthorizationId,\n });\n };\n\n // Deletes and updates target referrals that already exist, and core only allows either while the\n // referral is still in draft. They must therefore be applied before the authorization request.\n const applyDraftReferralRemovalsAndUpdates = async ({\n referral,\n toDelete,\n toUpdate,\n targetState,\n isGrouped,\n stateOwnedByAuthorization,\n }) => {\n const deletePromises = toDelete.map(r => coreApi.deleteRecord('referral', r.id));\n const updatePromises = processReferralUpdates(toUpdate, referral, {\n targetState,\n isGrouped,\n stateOwnedByAuthorization,\n });\n const responses = await Promise.all([...deletePromises, ...updatePromises]);\n\n return extractReferralRecords(responses.slice(toDelete.length));\n };\n\n // New referrals are created after the authorization request, where core accepts an explicit\n // pending_authorization state, matching how referrals are created from scratch.\n const applyDraftReferralCreations = async ({\n referral,\n oldCase,\n toCreate,\n targetState,\n isGrouped,\n }) => {\n const responses = await Promise.all(\n processReferralCreations(toCreate, { targetState, isGrouped, oldCase, referral }),\n );\n\n return extractReferralRecords(responses);\n };\n\n const notifyDraftUpdateError = (err, draft) => {\n if (err.message === DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE) {\n CALLBACKS.notify.error(DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE);\n } else if (!draft) {\n CALLBACKS.notify.error(\"Error updating the Draft Referral\");\n }\n };\n\n const updateDraftReferralCrtb1239Core = async (referral, draft = false) => {\n const { oldCase, oldReferrals } = await fetchDraftRecords(referral);\n const { toDelete, toUpdate, toCreate, isGrouped } = getDeleteUpdateCreateReferrals(referral, oldReferrals);\n const targetState = getDraftTargetState(draft, referral);\n const serviceAuthorizationId = get(oldCase, 'service_authorization.id') ||\n get(referral, 'case.service_authorization.id');\n const stateOwnedByAuthorization = authorizationOwnsReferralState(draft, referral);\n\n validateDraftAuthorizationUpdate({ referral, oldCase, serviceAuthorizationId });\n const caseResponse = await updateDraftCase(referral, oldCase);\n\n const updatedReferrals = await applyDraftReferralRemovalsAndUpdates({\n referral,\n toDelete,\n toUpdate,\n targetState,\n isGrouped,\n stateOwnedByAuthorization,\n });\n\n await saveServiceAuthorizationIfNeeded({ referral, oldCase, draft, serviceAuthorizationId });\n\n const createdReferrals = await applyDraftReferralCreations({\n referral,\n oldCase,\n toCreate,\n targetState,\n isGrouped,\n });\n\n const attachmentOutcome = await processAttachments(\n referral,\n oldCase,\n { removePersistedDocuments: true },\n );\n\n return {\n cases: [caseResponse?.data?.data ?? oldCase],\n referrals: [...updatedReferrals, ...createdReferrals],\n ...attachmentOutcome,\n };\n };\n\n const updateDraftReferralCrtb1239 = async (referral, draft = false) => {\n try {\n return await updateDraftReferralCrtb1239Core(referral, draft);\n } catch (err) {\n notifyDraftUpdateError(err, draft);\n throw err;\n }\n }\n\n const updateServiceAuthorizationHandler = async (referral, options = { draft: false }) => {\n const feeScheduleProgram = referral.programs[0].fee_schedule_program;\n const { requestedStartDate, requestedEndDate } = getRequestedDateRange(\n referral,\n pays5590RefactorInsuranceFilters,\n );\n\n const amountRequested = referral.paymentAuthForm.amount_requested;\n const insurance = await fetchActiveInsurance({\n personId: person.id,\n feeScheduleId: feeScheduleProgram.fee_schedule.id,\n requestedStartDate,\n requestedEndDate,\n });\n\n await updateServiceAuthorization(referral.case.service_authorization.id, {\n ...(options.draft ? {} : { state: 'requested' }),\n requested_starts_at: requestedStartDate,\n requested_ends_at: requestedEndDate,\n ...buildRequestedAmountPayload({ feeScheduleProgram, amountRequested }),\n requester: currentEmployee.id,\n insurance: insurance.id,\n person: person.id,\n });\n }\n\n const buildExistingDraftUpdatePayloads = (referral, draft, isAuthRequired) => {\n const casePayload = {\n description: referral.description,\n ...personConditionsPayload(referral.client_need),\n };\n\n const referralPayload = {\n ...personConditionsPayload(referral.client_need),\n ...(draft ? {} : { state: getUpdatedDraftReferralState(referral, isAuthRequired) }),\n };\n\n return { casePayload, referralPayload };\n };\n\n const updateDraftReferral = async (referral, draft) => {\n try {\n const isAuthRequired = get(referral, 'programs[0].fee_schedule_program.authorization_required', false);\n const { casePayload, referralPayload } = buildExistingDraftUpdatePayloads(referral, draft, isAuthRequired);\n const oldCaseResponse = await coreApi.findRecord('case', referral.case.id);\n const oldCase = get(oldCaseResponse, 'data.data', null);\n\n const promises = [\n updateCase(referral.case.id, casePayload)\n ];\n let referralPromiseIndex = null;\n\n if (!isEmpty(referralPayload)) {\n referralPromiseIndex = promises.length;\n promises.push(updateReferral(referral.id, referralPayload));\n }\n\n if(isAuthRequired) {\n promises.push(updateServiceAuthorizationHandler(referral, { draft }));\n }\n\n const responses = await Promise.all(\n promises\n );\n\n const coreResult = {\n referrals: draft ? [] : [responses[referralPromiseIndex].data.data],\n cases: [responses[0].data.data],\n };\n\n const attachmentOutcome = await processAttachments(\n referral,\n oldCase,\n { removePersistedDocuments: true },\n );\n\n return { ...coreResult, ...attachmentOutcome };\n } catch (err) {\n if (err.message === DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE) {\n CALLBACKS.notify.error(DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE);\n } else if (!draft) {\n CALLBACKS.notify.error(\"Error updating the Draft Referral\");\n }\n throw err;\n }\n }\n\n return async ({ draft = false, latestResponses } = {}) => {\n let response = {\n referralsToConsent: [],\n };\n\n response = await createReferrals({ referrals, person, draft });\n\n if (formResponses || latestResponses) {\n await submitAssessments({ cases: response.cases, latestResponses });\n }\n\n return {\n cases: response.cases,\n referrals: response.referrals,\n shippingDetail: response.shippingDetail,\n referralsToConsent: response.referralsToConsent,\n };\n };\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,6 +1,3 @@
1
- import _defineProperty from "@babel/runtime/helpers/defineProperty";
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; }
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; }
4
1
  import { coreAxiosInstance } from '../api/config';
5
2
  import { useMutation as useMutationRQ } from 'react-query';
6
3
  import { usePostBase } from '@unite-us/json-api-resources';
@@ -26,10 +23,11 @@ const usePostGeneric = function (url) {
26
23
  const newData = {
27
24
  url,
28
25
  data,
29
- params: _objectSpread({
26
+ params: {
30
27
  method: 'POST',
31
- api
32
- }, overrideOptions)
28
+ api,
29
+ ...overrideOptions
30
+ }
33
31
  };
34
32
  return mutateAsync(newData, overrideOptions.mutationConfig);
35
33
  };
@@ -61,20 +59,21 @@ export default function useCreateResourceList() {
61
59
  } = _ref;
62
60
  return postFn({
63
61
  data: {
64
- attributes: _objectSpread({
62
+ attributes: {
65
63
  person_id: person.id,
66
64
  shared_language: language || 'en',
67
65
  originating_app: sourceApp,
68
66
  shared_via_type: "referral",
69
- created_via_type: "referral"
70
- }, formSubmissionId && {
71
- createdViaId: formSubmissionId
72
- }),
67
+ created_via_type: "referral",
68
+ ...(formSubmissionId && {
69
+ createdViaId: formSubmissionId
70
+ })
71
+ },
73
72
  relationships: {
74
73
  employee: {
75
74
  data: {
76
75
  type: 'employee',
77
- id: currentEmployee === null || currentEmployee === void 0 ? void 0 : currentEmployee.id
76
+ id: currentEmployee?.id
78
77
  }
79
78
  },
80
79
  resource_list_program_services: {
@@ -1 +1 @@
1
- {"version":3,"file":"useCreateResourceList.js","names":["coreAxiosInstance","useMutation","useMutationRQ","usePostBase","useAppCreateReferralContext","usePostGeneric","url","options","arguments","length","undefined","callback","mutationConfig","mutateAsync","mutate","doExecute","data","overrideOptions","api","newData","params","_objectSpread","method","usePost","postFn","useCreateResourceList","state","currentEmployee","source","sourceApp","person","formSubmissionId","createResourceList","_ref","language","programServicesPayload","attributes","person_id","id","shared_language","originating_app","shared_via_type","created_via_type","createdViaId","relationships","employee","type","resource_list_program_services"],"sources":["../../src/hooks/useCreateResourceList.js"],"sourcesContent":["import { coreAxiosInstance } from '../api/config';\nimport { useMutation as useMutationRQ } from 'react-query';\nimport { usePostBase } from '@unite-us/json-api-resources';\nimport { useAppCreateReferralContext } from '../context/AppCreateReferralProvider';\n\nconst usePostGeneric = (url, options = {}) => {\n // In order to use relationships in our createResourceList, we can't use the standard\n // coreApi.createRecord, so we revert to using the json-api-resources\n const callback = usePostBase({\n useMutation: useMutationRQ,\n mutationConfig: options.mutationConfig,\n });\n\n const { mutateAsync } = callback;\n // avoiding accidental calls to mutateAsync and mutate from usePostBase\n // by removing them from the callback object\n callback.mutate = null;\n callback.mutateAsync = null;\n callback.doExecute = (data, overrideOptions = {}) => {\n const api = coreAxiosInstance;\n const newData = {\n url,\n data,\n params: { method: 'POST', api, ...overrideOptions },\n };\n\n return mutateAsync(newData, overrideOptions.mutationConfig);\n };\n\n return callback;\n};\n\nexport const usePost = (url, options = {}) => {\n const callback = usePostGeneric(url, options);\n\n callback.postFn = callback.doExecute;\n callback.doExecute = null;\n\n return callback;\n};\n\nexport default function useCreateResourceList() {\n const { state: { currentEmployee, source: sourceApp, person, formSubmissionId, } } = useAppCreateReferralContext();\n\n const { postFn } = usePost('resource_lists');\n const createResourceList = async ({ language, programServicesPayload }) => postFn({\n data: {\n attributes: {\n person_id: person.id,\n shared_language: language || 'en',\n originating_app: sourceApp,\n shared_via_type: \"referral\",\n created_via_type: \"referral\",\n ...formSubmissionId && { createdViaId: formSubmissionId },\n },\n relationships: {\n employee: {\n data: {\n type: 'employee',\n id: currentEmployee?.id,\n },\n },\n resource_list_program_services: {\n data: programServicesPayload,\n },\n }\n }\n })\n return createResourceList;\n}"],"mappings":";;;AAAA,SAASA,iBAAiB,QAAQ,eAAe;AACjD,SAASC,WAAW,IAAIC,aAAa,QAAQ,aAAa;AAC1D,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,SAASC,2BAA2B,QAAQ,sCAAsC;AAElF,MAAMC,cAAc,GAAG,SAAAA,CAACC,GAAG,EAAmB;EAAA,IAAjBC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACvC;EACA;EACA,MAAMG,QAAQ,GAAGR,WAAW,CAAC;IAC3BF,WAAW,EAAEC,aAAa;IAC1BU,cAAc,EAAEL,OAAO,CAACK;EAC1B,CAAC,CAAC;EAEF,MAAM;IAAEC;EAAY,CAAC,GAAGF,QAAQ;EAChC;EACA;EACAA,QAAQ,CAACG,MAAM,GAAG,IAAI;EACtBH,QAAQ,CAACE,WAAW,GAAG,IAAI;EAC3BF,QAAQ,CAACI,SAAS,GAAG,UAACC,IAAI,EAA2B;IAAA,IAAzBC,eAAe,GAAAT,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAC9C,MAAMU,GAAG,GAAGlB,iBAAiB;IAC7B,MAAMmB,OAAO,GAAG;MACdb,GAAG;MACHU,IAAI;MACJI,MAAM,EAAAC,aAAA;QAAIC,MAAM,EAAE,MAAM;QAAEJ;MAAG,GAAKD,eAAe;IACnD,CAAC;IAED,OAAOJ,WAAW,CAACM,OAAO,EAAEF,eAAe,CAACL,cAAc,CAAC;EAC7D,CAAC;EAED,OAAOD,QAAQ;AACjB,CAAC;AAED,OAAO,MAAMY,OAAO,GAAG,SAAAA,CAACjB,GAAG,EAAmB;EAAA,IAAjBC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACvC,MAAMG,QAAQ,GAAGN,cAAc,CAACC,GAAG,EAAEC,OAAO,CAAC;EAE7CI,QAAQ,CAACa,MAAM,GAAGb,QAAQ,CAACI,SAAS;EACpCJ,QAAQ,CAACI,SAAS,GAAG,IAAI;EAEzB,OAAOJ,QAAQ;AACjB,CAAC;AAED,eAAe,SAASc,qBAAqBA,CAAA,EAAG;EAC9C,MAAM;IAAEC,KAAK,EAAE;MAAEC,eAAe;MAAEC,MAAM,EAAEC,SAAS;MAAEC,MAAM;MAAEC;IAAkB;EAAE,CAAC,GAAG3B,2BAA2B,CAAC,CAAC;EAElH,MAAM;IAAEoB;EAAO,CAAC,GAAGD,OAAO,CAAC,gBAAgB,CAAC;EAC5C,MAAMS,kBAAkB,GAAG,MAAAC,IAAA;IAAA,IAAO;MAAEC,QAAQ;MAAEC;IAAuB,CAAC,GAAAF,IAAA;IAAA,OAAKT,MAAM,CAAC;MAC9ER,IAAI,EAAE;QACJoB,UAAU,EAAAf,aAAA;UACRgB,SAAS,EAAEP,MAAM,CAACQ,EAAE;UACpBC,eAAe,EAAEL,QAAQ,IAAI,IAAI;UACjCM,eAAe,EAAEX,SAAS;UAC1BY,eAAe,EAAE,UAAU;UAC3BC,gBAAgB,EAAE;QAAU,GACzBX,gBAAgB,IAAI;UAAEY,YAAY,EAAEZ;QAAiB,CAAC,CAC1D;QACDa,aAAa,EAAE;UACbC,QAAQ,EAAE;YACR7B,IAAI,EAAE;cACJ8B,IAAI,EAAE,UAAU;cAChBR,EAAE,EAAEX,eAAe,aAAfA,eAAe,uBAAfA,eAAe,CAAEW;YACvB;UACF,CAAC;UACDS,8BAA8B,EAAE;YAC9B/B,IAAI,EAAEmB;UACR;QACF;MACF;IACF,CAAC,CAAC;EAAA;EACJ,OAAOH,kBAAkB;AAC3B","ignoreList":[]}
1
+ {"version":3,"file":"useCreateResourceList.js","names":["coreAxiosInstance","useMutation","useMutationRQ","usePostBase","useAppCreateReferralContext","usePostGeneric","url","options","arguments","length","undefined","callback","mutationConfig","mutateAsync","mutate","doExecute","data","overrideOptions","api","newData","params","method","usePost","postFn","useCreateResourceList","state","currentEmployee","source","sourceApp","person","formSubmissionId","createResourceList","_ref","language","programServicesPayload","attributes","person_id","id","shared_language","originating_app","shared_via_type","created_via_type","createdViaId","relationships","employee","type","resource_list_program_services"],"sources":["../../src/hooks/useCreateResourceList.js"],"sourcesContent":["import { coreAxiosInstance } from '../api/config';\nimport { useMutation as useMutationRQ } from 'react-query';\nimport { usePostBase } from '@unite-us/json-api-resources';\nimport { useAppCreateReferralContext } from '../context/AppCreateReferralProvider';\n\nconst usePostGeneric = (url, options = {}) => {\n // In order to use relationships in our createResourceList, we can't use the standard\n // coreApi.createRecord, so we revert to using the json-api-resources\n const callback = usePostBase({\n useMutation: useMutationRQ,\n mutationConfig: options.mutationConfig,\n });\n\n const { mutateAsync } = callback;\n // avoiding accidental calls to mutateAsync and mutate from usePostBase\n // by removing them from the callback object\n callback.mutate = null;\n callback.mutateAsync = null;\n callback.doExecute = (data, overrideOptions = {}) => {\n const api = coreAxiosInstance;\n const newData = {\n url,\n data,\n params: { method: 'POST', api, ...overrideOptions },\n };\n\n return mutateAsync(newData, overrideOptions.mutationConfig);\n };\n\n return callback;\n};\n\nexport const usePost = (url, options = {}) => {\n const callback = usePostGeneric(url, options);\n\n callback.postFn = callback.doExecute;\n callback.doExecute = null;\n\n return callback;\n};\n\nexport default function useCreateResourceList() {\n const { state: { currentEmployee, source: sourceApp, person, formSubmissionId, } } = useAppCreateReferralContext();\n\n const { postFn } = usePost('resource_lists');\n const createResourceList = async ({ language, programServicesPayload }) => postFn({\n data: {\n attributes: {\n person_id: person.id,\n shared_language: language || 'en',\n originating_app: sourceApp,\n shared_via_type: \"referral\",\n created_via_type: \"referral\",\n ...formSubmissionId && { createdViaId: formSubmissionId },\n },\n relationships: {\n employee: {\n data: {\n type: 'employee',\n id: currentEmployee?.id,\n },\n },\n resource_list_program_services: {\n data: programServicesPayload,\n },\n }\n }\n })\n return createResourceList;\n}"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,eAAe;AACjD,SAASC,WAAW,IAAIC,aAAa,QAAQ,aAAa;AAC1D,SAASC,WAAW,QAAQ,8BAA8B;AAC1D,SAASC,2BAA2B,QAAQ,sCAAsC;AAElF,MAAMC,cAAc,GAAG,SAAAA,CAACC,GAAG,EAAmB;EAAA,IAAjBC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACvC;EACA;EACA,MAAMG,QAAQ,GAAGR,WAAW,CAAC;IAC3BF,WAAW,EAAEC,aAAa;IAC1BU,cAAc,EAAEL,OAAO,CAACK;EAC1B,CAAC,CAAC;EAEF,MAAM;IAAEC;EAAY,CAAC,GAAGF,QAAQ;EAChC;EACA;EACAA,QAAQ,CAACG,MAAM,GAAG,IAAI;EACtBH,QAAQ,CAACE,WAAW,GAAG,IAAI;EAC3BF,QAAQ,CAACI,SAAS,GAAG,UAACC,IAAI,EAA2B;IAAA,IAAzBC,eAAe,GAAAT,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;IAC9C,MAAMU,GAAG,GAAGlB,iBAAiB;IAC7B,MAAMmB,OAAO,GAAG;MACdb,GAAG;MACHU,IAAI;MACJI,MAAM,EAAE;QAAEC,MAAM,EAAE,MAAM;QAAEH,GAAG;QAAE,GAAGD;MAAgB;IACpD,CAAC;IAED,OAAOJ,WAAW,CAACM,OAAO,EAAEF,eAAe,CAACL,cAAc,CAAC;EAC7D,CAAC;EAED,OAAOD,QAAQ;AACjB,CAAC;AAED,OAAO,MAAMW,OAAO,GAAG,SAAAA,CAAChB,GAAG,EAAmB;EAAA,IAAjBC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACvC,MAAMG,QAAQ,GAAGN,cAAc,CAACC,GAAG,EAAEC,OAAO,CAAC;EAE7CI,QAAQ,CAACY,MAAM,GAAGZ,QAAQ,CAACI,SAAS;EACpCJ,QAAQ,CAACI,SAAS,GAAG,IAAI;EAEzB,OAAOJ,QAAQ;AACjB,CAAC;AAED,eAAe,SAASa,qBAAqBA,CAAA,EAAG;EAC9C,MAAM;IAAEC,KAAK,EAAE;MAAEC,eAAe;MAAEC,MAAM,EAAEC,SAAS;MAAEC,MAAM;MAAEC;IAAkB;EAAE,CAAC,GAAG1B,2BAA2B,CAAC,CAAC;EAElH,MAAM;IAAEmB;EAAO,CAAC,GAAGD,OAAO,CAAC,gBAAgB,CAAC;EAC5C,MAAMS,kBAAkB,GAAG,MAAAC,IAAA;IAAA,IAAO;MAAEC,QAAQ;MAAEC;IAAuB,CAAC,GAAAF,IAAA;IAAA,OAAKT,MAAM,CAAC;MAC9EP,IAAI,EAAE;QACJmB,UAAU,EAAE;UACVC,SAAS,EAAEP,MAAM,CAACQ,EAAE;UACpBC,eAAe,EAAEL,QAAQ,IAAI,IAAI;UACjCM,eAAe,EAAEX,SAAS;UAC1BY,eAAe,EAAE,UAAU;UAC3BC,gBAAgB,EAAE,UAAU;UAC5B,IAAGX,gBAAgB,IAAI;YAAEY,YAAY,EAAEZ;UAAiB,CAAC;QAC3D,CAAC;QACDa,aAAa,EAAE;UACbC,QAAQ,EAAE;YACR5B,IAAI,EAAE;cACJ6B,IAAI,EAAE,UAAU;cAChBR,EAAE,EAAEX,eAAe,EAAEW;YACvB;UACF,CAAC;UACDS,8BAA8B,EAAE;YAC9B9B,IAAI,EAAEkB;UACR;QACF;MACF;IACF,CAAC,CAAC;EAAA;EACJ,OAAOH,kBAAkB;AAC3B","ignoreList":[]}
@@ -15,9 +15,9 @@ export default function useCreateShareEvent() {
15
15
  const payload = {
16
16
  shared_via_type: "referral",
17
17
  shared_via_id: referralId,
18
- shared_method_type: shareMethod !== null && shareMethod !== void 0 ? shareMethod : 'save_to_client',
18
+ shared_method_type: shareMethod ?? 'save_to_client',
19
19
  shared_language: 'en',
20
- resource_list: resourceListId !== null && resourceListId !== void 0 ? resourceListId : newResourceListId,
20
+ resource_list: resourceListId ?? newResourceListId,
21
21
  originating_app: source,
22
22
  person: person.id
23
23
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useCreateShareEvent.js","names":["coreApi","useAppCreateReferralContext","useCreateShareEvent","state","resourceListId","person","source","createShareEvent","referralId","newResourceListId","shareMethod","payload","shared_via_type","shared_via_id","shared_method_type","shared_language","resource_list","originating_app","id","createRecord"],"sources":["../../src/hooks/useCreateShareEvent.js"],"sourcesContent":["import { coreApi } from '../api/config';\nimport { useAppCreateReferralContext } from '../context/AppCreateReferralProvider';\n\nexport default function useCreateShareEvent() {\n const { state: { resourceListId, person, source } } = useAppCreateReferralContext();\n\n const createShareEvent = async (referralId, newResourceListId, shareMethod) => {\n if (!referralId) {\n return;\n }\n\n const payload = {\n shared_via_type: \"referral\",\n shared_via_id: referralId,\n shared_method_type: shareMethod ?? 'save_to_client',\n shared_language: 'en',\n resource_list: resourceListId ?? newResourceListId,\n originating_app: source,\n person: person.id,\n };\n\n coreApi.createRecord('share_event', payload);\n };\n\n return createShareEvent;\n}"],"mappings":"AAAA,SAASA,OAAO,QAAQ,eAAe;AACvC,SAASC,2BAA2B,QAAQ,sCAAsC;AAElF,eAAe,SAASC,mBAAmBA,CAAA,EAAG;EAC5C,MAAM;IAAEC,KAAK,EAAE;MAAEC,cAAc;MAAEC,MAAM;MAAEC;IAAO;EAAE,CAAC,GAAGL,2BAA2B,CAAC,CAAC;EAEnF,MAAMM,gBAAgB,GAAG,MAAAA,CAAOC,UAAU,EAAEC,iBAAiB,EAAEC,WAAW,KAAK;IAC7E,IAAI,CAACF,UAAU,EAAE;MACf;IACF;IAEA,MAAMG,OAAO,GAAG;MACdC,eAAe,EAAE,UAAU;MAC3BC,aAAa,EAAEL,UAAU;MACzBM,kBAAkB,EAAEJ,WAAW,aAAXA,WAAW,cAAXA,WAAW,GAAI,gBAAgB;MACnDK,eAAe,EAAE,IAAI;MACrBC,aAAa,EAAEZ,cAAc,aAAdA,cAAc,cAAdA,cAAc,GAAIK,iBAAiB;MAClDQ,eAAe,EAAEX,MAAM;MACvBD,MAAM,EAAEA,MAAM,CAACa;IACjB,CAAC;IAEDlB,OAAO,CAACmB,YAAY,CAAC,aAAa,EAAER,OAAO,CAAC;EAC9C,CAAC;EAED,OAAOJ,gBAAgB;AACzB","ignoreList":[]}
1
+ {"version":3,"file":"useCreateShareEvent.js","names":["coreApi","useAppCreateReferralContext","useCreateShareEvent","state","resourceListId","person","source","createShareEvent","referralId","newResourceListId","shareMethod","payload","shared_via_type","shared_via_id","shared_method_type","shared_language","resource_list","originating_app","id","createRecord"],"sources":["../../src/hooks/useCreateShareEvent.js"],"sourcesContent":["import { coreApi } from '../api/config';\nimport { useAppCreateReferralContext } from '../context/AppCreateReferralProvider';\n\nexport default function useCreateShareEvent() {\n const { state: { resourceListId, person, source } } = useAppCreateReferralContext();\n\n const createShareEvent = async (referralId, newResourceListId, shareMethod) => {\n if (!referralId) {\n return;\n }\n\n const payload = {\n shared_via_type: \"referral\",\n shared_via_id: referralId,\n shared_method_type: shareMethod ?? 'save_to_client',\n shared_language: 'en',\n resource_list: resourceListId ?? newResourceListId,\n originating_app: source,\n person: person.id,\n };\n\n coreApi.createRecord('share_event', payload);\n };\n\n return createShareEvent;\n}"],"mappings":"AAAA,SAASA,OAAO,QAAQ,eAAe;AACvC,SAASC,2BAA2B,QAAQ,sCAAsC;AAElF,eAAe,SAASC,mBAAmBA,CAAA,EAAG;EAC5C,MAAM;IAAEC,KAAK,EAAE;MAAEC,cAAc;MAAEC,MAAM;MAAEC;IAAO;EAAE,CAAC,GAAGL,2BAA2B,CAAC,CAAC;EAEnF,MAAMM,gBAAgB,GAAG,MAAAA,CAAOC,UAAU,EAAEC,iBAAiB,EAAEC,WAAW,KAAK;IAC7E,IAAI,CAACF,UAAU,EAAE;MACf;IACF;IAEA,MAAMG,OAAO,GAAG;MACdC,eAAe,EAAE,UAAU;MAC3BC,aAAa,EAAEL,UAAU;MACzBM,kBAAkB,EAAEJ,WAAW,IAAI,gBAAgB;MACnDK,eAAe,EAAE,IAAI;MACrBC,aAAa,EAAEZ,cAAc,IAAIK,iBAAiB;MAClDQ,eAAe,EAAEX,MAAM;MACvBD,MAAM,EAAEA,MAAM,CAACa;IACjB,CAAC;IAEDlB,OAAO,CAACmB,YAAY,CAAC,aAAa,EAAER,OAAO,CAAC;EAC9C,CAAC;EAED,OAAOJ,gBAAgB;AACzB","ignoreList":[]}