@unite-us/app-create-referral 0.15.176 → 0.15.177
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.
- package/dist/api/ApiHooks.js +25 -1
- package/dist/api/ApiHooks.js.map +1 -1
- package/dist/hooks/__tests__/useCreateReferrals.test.js +664 -8
- package/dist/hooks/__tests__/useCreateReferrals.test.js.map +1 -1
- package/dist/hooks/useCreateReferrals.js +284 -72
- package/dist/hooks/useCreateReferrals.js.map +1 -1
- package/package.json +2 -2
|
@@ -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","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: [\n 'case',\n 'receiving_program',\n 'receiving_provider',\n 'receiving_network',\n 'sending_provider',\n 'sending_network',\n ],\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\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 = ({ referral, personId, isOON, formSubmissionId, screeningId }) => {\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 = ({ referral, arCase, isOON, showClientNeed }) => {\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\nconst personConditionsPayload = (clientNeed) =>\n Array.isArray(clientNeed) ? { person_conditions: mapPersonConditions(clientNeed) } : {};\n\nconst personConditionsForCaseCreation = (clientNeed) =>\n mapPersonConditions(Array.isArray(clientNeed) ? clientNeed : []);\n\nconst referralNeedsAuthorization = (referral) =>\n !!get(referral, 'programs[0].fee_schedule_program.authorization_required', false);\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\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(\n 'pays5590RefactorInsuranceFilters',\n false,\n );\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 = (\n referral,\n caseToUploadDoc,\n { removePersistedDocuments = false } = {},\n ) => {\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: () =>\n coreApi.setRelationship('case', caseToUploadDoc.id, {\n relationshipModel: 'file_upload',\n value: attachedDocuments.map((a) => a.id),\n }),\n });\n }\n\n const uploadedDocuments = get(referral, 'pendingAttachments', []);\n\n if (!isEmpty(uploadedDocuments)) {\n operations.push(\n ...uploadedDocuments.map(({ file }) => ({\n operation: 'upload',\n name: file?.name || 'attachment',\n execute: () => coreApi.uploadFile('case', caseToUploadDoc.id, file),\n })),\n );\n }\n\n const filesToDelete = get(referral, 'removablePersistedAttachments', []).filter(\n (file) => file?.id,\n );\n if (removePersistedDocuments && !isEmpty(filesToDelete)) {\n operations.push(\n ...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 }\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(\n (errors, result, index) =>\n result.status === 'rejected'\n ? [\n ...errors,\n {\n operation: operations[index].operation,\n name: operations[index].name,\n message: getAttachmentErrorMessage(result.reason),\n },\n ]\n : errors,\n [],\n ),\n };\n };\n\n const submitAssessments = ({ cases, latestResponses }) => {\n let promises = [];\n map(cases, (serviceCase) => {\n map(latestResponses || formResponses, (assessment) => {\n if (\n !isEmpty(assessment) &&\n assessment.form?.service_type_ids?.includes(serviceCase.service.id)\n ) {\n promises.push(\n 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\n return Promise.all(promises)\n .then((responses) => {\n return responses;\n })\n .catch((err) => {\n CALLBACKS.notify.error('Error submitting Assessments');\n throw err;\n });\n };\n\n const fetchActiveInsurance = async ({\n personId,\n feeScheduleId,\n requestedStartDate,\n requestedEndDate,\n }) => {\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 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(\n `The following fields for the case are required: ${missingCaseValues.join(', ')}`,\n );\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 =\n `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 =\n '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 =\n `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 =\n `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(\n result.shippingDetail,\n index,\n await processAttachments(referral, createdCaseOrExistingAR),\n );\n }\n }\n\n if (isGrouped && createdCaseOrExistingAR && result.shippingDetail[index].sent) {\n mergeAttachmentOutcome(\n result.shippingDetail,\n index,\n await processAttachments(referral, createdCaseOrExistingAR),\n );\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 [\n ['receiving_program', get(existingReferral, 'receiving_program.id'), get(program, 'id')],\n [\n 'receiving_provider',\n get(existingReferral, 'receiving_provider.id'),\n get(program, 'provider.id'),\n ],\n [\n 'receiving_network',\n get(existingReferral, 'receiving_network.id'),\n get(currentReferral, 'network.id'),\n ],\n [\n 'sending_provider',\n get(existingReferral, 'sending_provider.id'),\n get(currentReferral, 'sendingProvider.id'),\n ],\n [\n 'sending_network',\n get(existingReferral, 'sending_network.id'),\n get(currentReferral, 'network.id'),\n ],\n ].reduce(\n (changes, [field, previousId, nextId]) =>\n previousId !== nextId ? { ...changes, [field]: nextId } : changes,\n {},\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 = (\n toUpdate,\n currentReferral,\n { targetState, isGrouped, 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) =>\n 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\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\n .slice(0, replacementUpdateCount)\n .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)\n ? oldCase\n : 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(\n referral,\n oldReferrals,\n );\n const targetState = getDraftTargetState(draft, referral);\n const serviceAuthorizationId =\n get(oldCase, 'service_authorization.id') || 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(referral, 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(\n referral,\n 'programs[0].fee_schedule_program.authorization_required',\n false,\n );\n const { casePayload, referralPayload } = buildExistingDraftUpdatePayloads(\n referral,\n draft,\n isAuthRequired,\n );\n const oldCaseResponse = await coreApi.findRecord('case', referral.case.id);\n const oldCase = get(oldCaseResponse, 'data.data', null);\n\n const promises = [updateCase(referral.case.id, casePayload)];\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(promises);\n\n const coreResult = {\n referrals: draft ? [] : [responses[referralPromiseIndex].data.data],\n cases: [responses[0].data.data],\n };\n\n const attachmentOutcome = await processAttachments(referral, 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","atomicOperations","atomicOperationBuilders","useAtomicOperations","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","atomicReferralCreationEnabled","createRecord","createReferral","createCase","createServiceAuthorization","createFormSubmission","createNote","updateRecord","updateReferral","updateCase","updateServiceAuthorization","createErrorMessage","errors","_ref7","title","join","getExistingAttachedDocuments","attachableDocuments","filteredDocuments","doc","attached","ad","getAttachmentOperations","caseToUploadDoc","removePersistedDocuments","skipExistingDocumentRelationship","attachedDocuments","operations","push","operation","name","_ref8","execute","setRelationship","relationshipModel","value","a","uploadedDocuments","_ref9","file","uploadFile","filesToDelete","filename","deleteFile","processAttachments","options","Promise","allSettled","_ref0","resolve","then","reduce","result","reason","submitAssessments","_ref1","cases","latestResponses","promises","serviceCase","assessment","form","service_type_ids","includes","context","contextType","responses","submitter","all","catch","err","notify","fetchActiveInsurance","_ref10","feeScheduleId","queryInsuranceParams","enrolled_before","expired_after","sort","responseInsurances","query","data","getAuthorizationPayload","_ref11","programs","fee_schedule_program","authorization_required","insurance","fee_schedule","paymentAuthForm","amount_requested","icd10CodeId","icd10Codes","requested_starts_at","requested_ends_at","requester","clinical_modifications","saveServiceAuthorization","_ref12","caseId","createAuthorizationIfNeeded","_ref13","createCaseForReferral","_ref14","missingCaseValues","Error","caseResponse","createdCase","getUnlistedProgramNoteValues","_ref15","programData","subjectType","subject","employee","visibility","category","text","createUnlistedProgramNote","_ref16","createNoteForUnlistedProgramValues","missingNoteValues","sent","referralIndex","getProgramReferralValues","_ref17","isGrouped","is_grouped","receiving_program","receiving_provider","receiving_network","sending_provider","sending_network","createProgramReferral","_ref18","createdReferrals","referralValues","missingReferralValues","responseReferral","createdReferral","processProgramForReferral","_ref19","createdCaseOrExistingAR","getAtomicResultData","response","processAtomicReferral","_ref20","referredToPrograms","caseLid","lid","authorizationPayload","noteValues","Boolean","existingAttachedDocuments","addToRelationship","relationship","_ref21","missingCaseError","slice","forEach","operationIndex","createdResource","model","referralData","originalReferral","referralsToConsent","rawAtomicErrors","processDraftReferral","_ref22","resultDraft","updateDraftReferralCrtb1239","referralsWithIndex","processNonDraftReferral","_ref23","j","shouldCreateCase","caseResult","createdReferralOrNote","createReferrals","_ref24","i","buildCaseUpdatePayload","oldCase","serviceTypeChanged","service_type","descriptionChanged","getTargetState","getDraftTargetState","buildReferralRelationshipFieldChanges","_ref25","currentReferral","existingReferral","program","changes","_ref26","previousId","nextId","buildReferralUpdatePayload","_ref27","targetState","stateOwnedByAuthorization","processReferralUpdates","toUpdate","_ref28","_ref29","updatePayload","keys","processReferralCreations","toCreate","_ref30","extractReferralRecords","r","getDeleteUpdateCreateReferrals","oldReferrals","unmatchedOldReferrals","unmatchedPrograms","matchedUpdates","matchingOldReferralIndex","findIndex","oldReferral","splice","replacementUpdateCount","min","replacementUpdates","toDelete","fetchDraftRecords","caseRequestResponse","referralsRequestResponse","findRecord","updateDraftCase","serviceCasePayload","validateDraftAuthorizationUpdate","_ref31","removesAuthorizationRequirement","saveServiceAuthorizationIfNeeded","_ref32","applyDraftReferralRemovalsAndUpdates","_ref33","deletePromises","deleteRecord","updatePromises","applyDraftReferralCreations","_ref34","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 {\n atomicOperations as atomicOperationBuilders,\n} from '@unite-us/json-api-resources';\nimport {\n useAtomicOperations,\n useCreateRecord,\n useUpdateRecord,\n} 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: [\n 'case',\n 'receiving_program',\n 'receiving_provider',\n 'receiving_network',\n 'sending_provider',\n 'sending_network',\n ],\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\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 = ({ referral, personId, isOON, formSubmissionId, screeningId }) => {\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 = ({ referral, arCase, isOON, showClientNeed }) => {\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\nconst personConditionsPayload = (clientNeed) =>\n Array.isArray(clientNeed) ? { person_conditions: mapPersonConditions(clientNeed) } : {};\n\nconst personConditionsForCaseCreation = (clientNeed) =>\n mapPersonConditions(Array.isArray(clientNeed) ? clientNeed : []);\n\nconst referralNeedsAuthorization = (referral) =>\n !!get(referral, 'programs[0].fee_schedule_program.authorization_required', false);\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\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(\n 'pays5590RefactorInsuranceFilters',\n false,\n );\n const showClientNeed = useFeatureFlag('crtb2130MultipleClientNeeds', false);\n const atomicReferralCreationEnabled = useFeatureFlag('pays11587AtomicReferralCreation', false);\n\n const { atomicOperations } = useAtomicOperations();\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 const errors = get(error, 'response.data.errors', []);\n return errors.length\n ? errors.map(({ title }) => title).join(', ')\n : error?.message || 'Unknown error';\n };\n\n const getExistingAttachedDocuments = (referral) => {\n const attachableDocuments = get(referral, 'attachableDocuments', []);\n const filteredDocuments = attachableDocuments.filter((doc) => doc?.attached === true);\n return filteredDocuments.map((ad) => ({\n title: get(ad, 'document.title'),\n id: get(ad, 'document.id'),\n }));\n };\n\n const getAttachmentOperations = (referral, caseToUploadDoc, { removePersistedDocuments = false, skipExistingDocumentRelationship = false } = {}) => {\n const attachedDocuments = skipExistingDocumentRelationship ? [] : getExistingAttachedDocuments(referral);\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: () =>\n coreApi.setRelationship('case', caseToUploadDoc.id, {\n relationshipModel: 'file_upload',\n value: attachedDocuments.map((a) => a.id),\n }),\n });\n }\n\n const uploadedDocuments = get(referral, 'pendingAttachments', []);\n\n if (!isEmpty(uploadedDocuments)) {\n operations.push(\n ...uploadedDocuments.map(({ file }) => ({\n operation: 'upload',\n name: file?.name || 'attachment',\n execute: () => coreApi.uploadFile('case', caseToUploadDoc.id, file),\n })),\n );\n }\n\n const filesToDelete = get(referral, 'removablePersistedAttachments', []).filter(\n (file) => file?.id,\n );\n if (removePersistedDocuments && !isEmpty(filesToDelete)) {\n operations.push(\n ...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 }\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(\n (errors, result, index) =>\n result.status === 'rejected'\n ? [\n ...errors,\n {\n operation: operations[index].operation,\n name: operations[index].name,\n message: getAttachmentErrorMessage(result.reason),\n },\n ]\n : errors,\n [],\n ),\n };\n };\n\n const submitAssessments = ({ cases, latestResponses }) => {\n let promises = [];\n map(cases, (serviceCase) => {\n map(latestResponses || formResponses, (assessment) => {\n if (\n !isEmpty(assessment) &&\n assessment.form?.service_type_ids?.includes(serviceCase.service.id)\n ) {\n promises.push(\n 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\n return Promise.all(promises)\n .then((responses) => {\n return responses;\n })\n .catch((err) => {\n CALLBACKS.notify.error('Error submitting Assessments');\n throw err;\n });\n };\n\n const fetchActiveInsurance = async ({\n personId,\n feeScheduleId,\n requestedStartDate,\n requestedEndDate,\n }) => {\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 getAuthorizationPayload = async ({ referral, personId, draft, serviceAuthorizationId }) => {\n const feeScheduleProgram = referral.programs[0].fee_schedule_program;\n if (!feeScheduleProgram?.authorization_required) {\n return null;\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\n return {\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\n const saveServiceAuthorization = async ({\n referral,\n caseId,\n personId,\n draft,\n serviceAuthorizationId,\n }) => {\n const payload = await getAuthorizationPayload({ referral, personId, draft, serviceAuthorizationId });\n if (!payload) {\n return false;\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 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(\n `The following fields for the case are required: ${missingCaseValues.join(', ')}`,\n );\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 getUnlistedProgramNoteValues = ({ programData, caseId }) => ({\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 createUnlistedProgramNote = async ({ programData, caseId, index, result }) => {\n const createNoteForUnlistedProgramValues = getUnlistedProgramNoteValues({ programData, caseId });\n\n const missingNoteValues = validateRequiredValues('note', createNoteForUnlistedProgramValues);\n if (missingNoteValues.length) {\n result.shippingDetail[index].error =\n `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 =\n 'Error creating the note on the case for the unlisted program';\n return false;\n }\n };\n\n const getProgramReferralValues = ({ referral, programData, state, isGrouped, caseId }) => ({\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 createProgramReferral = async ({\n referral,\n programData,\n state,\n isGrouped,\n caseId,\n index,\n result,\n createdReferrals,\n }) => {\n const referralValues = getProgramReferralValues({\n referral,\n programData,\n state,\n isGrouped,\n caseId,\n });\n\n const missingReferralValues = validateRequiredValues('referral', referralValues);\n if (missingReferralValues.length) {\n result.shippingDetail[index].error =\n `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 =\n `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 getAtomicResultData = (response, index) => (\n get(response, ['data', 'atomic:results', index, 'data'], null)\n );\n\n const processAtomicReferral = async ({ referral, index, draft, personId, result }) => {\n const referredToPrograms = get(referral, 'programs', []);\n const isGrouped = referralIsGrouped(referral);\n const isOON = referralIsOON(referral);\n const caseLid = `case-${index}`;\n const caseValues = getCaseValues({\n referral,\n personId,\n isOON,\n formSubmissionId,\n screeningId,\n });\n const missingCaseValues = validateRequiredValues('case', caseValues);\n\n if (missingCaseValues.length) {\n result.shippingDetail[index].error = `Unexpected error: The following fields for the case are required: ${missingCaseValues.join(', ')}`;\n return;\n }\n\n try {\n const operations = [atomicOperationBuilders.createRecord('case', caseValues, { lid: caseLid })];\n const authorizationPayload = await getAuthorizationPayload({\n referral,\n personId,\n draft,\n });\n\n if (authorizationPayload) {\n operations.push(atomicOperationBuilders.createRecord('service_authorization', {\n ...authorizationPayload,\n case: { lid: caseLid },\n }));\n }\n\n for (const programData of referredToPrograms) {\n if (hint542SupersetUnlistedPrograms && isUnlistedProgram(programData)) {\n const noteValues = getUnlistedProgramNoteValues({ programData, caseId: caseLid });\n const missingNoteValues = validateRequiredValues('note', noteValues);\n if (missingNoteValues.length) {\n result.shippingDetail[index].error = `The following fields for the unlisted program are required: ${missingNoteValues.join(', ')}`;\n return;\n }\n operations.push(atomicOperationBuilders.createRecord('note', {\n ...noteValues,\n subject: { lid: caseLid },\n }));\n continue;\n }\n\n const state = getReferralState({\n draft,\n isOON,\n authorizationCreated: Boolean(authorizationPayload),\n });\n const referralValues = getProgramReferralValues({\n referral,\n programData,\n state,\n isGrouped,\n caseId: caseLid,\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;\n }\n operations.push(atomicOperationBuilders.createRecord('referral', {\n ...referralValues,\n case: { lid: caseLid },\n }));\n }\n\n const existingAttachedDocuments = getExistingAttachedDocuments(referral);\n if (!isEmpty(existingAttachedDocuments)) {\n operations.push(atomicOperationBuilders.addToRelationship('case', { lid: caseLid }, {\n relationship: 'file_uploads',\n relationshipModel: 'file_upload',\n value: existingAttachedDocuments.map(({ id }) => id),\n }));\n }\n\n const response = await atomicOperations(operations);\n const createdCase = getAtomicResultData(response, 0);\n if (!createdCase?.id) {\n const missingCaseError = new Error('Atomic referral creation did not return a case');\n missingCaseError.response = response;\n throw missingCaseError;\n }\n\n result.cases.push(createdCase);\n updateShippingDetail(result.shippingDetail, index, {\n caseId: createdCase.id,\n sent: true,\n });\n\n const createdReferrals = [];\n operations.slice(1).forEach((operation, operationIndex) => {\n const createdResource = getAtomicResultData(response, operationIndex + 1);\n if (operation.model === 'referral' && createdResource) {\n result.referrals.push({\n ...createdResource,\n referralIndex: index,\n });\n createdReferrals.push(createdResource);\n } else if (operation.model === 'note') {\n result.referrals.push({ index, sent: true, referralIndex: index });\n }\n });\n\n mergeAttachmentOutcome(\n result.shippingDetail,\n index,\n await processAttachments(referral, createdCase, { skipExistingDocumentRelationship: true }),\n );\n\n const referralData = await referralToConsent({\n originalReferral: referral,\n createdReferrals,\n });\n if (referralData) {\n result.referralsToConsent.push(referralData);\n }\n } catch (err) {\n result.shippingDetail[index].error = `Error creating the Referral: ${createErrorMessage(err)}`;\n // Non-rendered debug field: source.pointer on each entry is `/atomic:operations/{index}`,\n // which combined with the operation order identifies exactly which operation failed.\n result.shippingDetail[index].rawAtomicErrors = get(err, 'response.data.errors', null)\n || get(err, 'response.data', null);\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 if (atomicReferralCreationEnabled && !(assistanceRequestId && index === 0)) {\n await processAtomicReferral({ referral, index, draft, personId, result });\n return;\n }\n\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(\n result.shippingDetail,\n index,\n await processAttachments(referral, createdCaseOrExistingAR),\n );\n }\n }\n\n if (isGrouped && createdCaseOrExistingAR && result.shippingDetail[index].sent) {\n mergeAttachmentOutcome(\n result.shippingDetail,\n index,\n await processAttachments(referral, createdCaseOrExistingAR),\n );\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 rawAtomicErrors: null,\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 [\n ['receiving_program', get(existingReferral, 'receiving_program.id'), get(program, 'id')],\n [\n 'receiving_provider',\n get(existingReferral, 'receiving_provider.id'),\n get(program, 'provider.id'),\n ],\n [\n 'receiving_network',\n get(existingReferral, 'receiving_network.id'),\n get(currentReferral, 'network.id'),\n ],\n [\n 'sending_provider',\n get(existingReferral, 'sending_provider.id'),\n get(currentReferral, 'sendingProvider.id'),\n ],\n [\n 'sending_network',\n get(existingReferral, 'sending_network.id'),\n get(currentReferral, 'network.id'),\n ],\n ].reduce(\n (changes, [field, previousId, nextId]) =>\n previousId !== nextId ? { ...changes, [field]: nextId } : changes,\n {},\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 = (\n toUpdate,\n currentReferral,\n { targetState, isGrouped, 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) =>\n 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\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\n .slice(0, replacementUpdateCount)\n .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)\n ? oldCase\n : 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(\n referral,\n oldReferrals,\n );\n const targetState = getDraftTargetState(draft, referral);\n const serviceAuthorizationId =\n get(oldCase, 'service_authorization.id') || 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(referral, 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(\n referral,\n 'programs[0].fee_schedule_program.authorization_required',\n false,\n );\n const { casePayload, referralPayload } = buildExistingDraftUpdatePayloads(\n referral,\n draft,\n isAuthRequired,\n );\n const oldCaseResponse = await coreApi.findRecord('case', referral.case.id);\n const oldCase = get(oldCaseResponse, 'data.data', null);\n\n const promises = [updateCase(referral.case.id, casePayload)];\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(promises);\n\n const coreResult = {\n referrals: draft ? [] : [responses[referralPromiseIndex].data.data],\n cases: [responses[0].data.data],\n };\n\n const attachmentOutcome = await processAttachments(referral, 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 const 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":[]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@unite-us/app-create-referral",
|
|
3
|
-
"version": "0.15.
|
|
3
|
+
"version": "0.15.177",
|
|
4
4
|
"main": "./dist/index.js",
|
|
5
5
|
"files": [
|
|
6
6
|
"dist/**"
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"dependencies": {
|
|
10
10
|
"@headlessui/react": ">=1.7.0 <2",
|
|
11
11
|
"@unite-us/app-components": "1.1.7",
|
|
12
|
-
"@unite-us/json-api-resources": "
|
|
12
|
+
"@unite-us/json-api-resources": "1.6.52",
|
|
13
13
|
"@unite-us/shares-utils": "1.0.7",
|
|
14
14
|
"@unite-us/ui-surveyjs2": "^1.0.19",
|
|
15
15
|
"axios": "1.18.0",
|