@unite-us/app-create-referral 0.15.88 → 0.15.89
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/hooks/sendReferral.js +5 -2
- package/dist/hooks/sendReferral.js.map +1 -1
- package/dist/hooks/useCreateReferrals.js +5 -2
- package/dist/hooks/useCreateReferrals.js.map +1 -1
- package/dist/hooks/useForwardReferral.js +3 -3
- package/dist/hooks/useForwardReferral.js.map +1 -1
- package/dist/pages/builder/ReferralBuilder.js +21 -2
- package/dist/pages/builder/ReferralBuilder.js.map +1 -1
- package/dist/pages/builder/ReferralBuilderForm.js +31 -16
- package/dist/pages/builder/ReferralBuilderForm.js.map +1 -1
- package/package.json +1 -1
|
@@ -17,8 +17,11 @@ const updateCase = async function (kase) {
|
|
|
17
17
|
service: kase.service_type_id
|
|
18
18
|
}), kase.description && {
|
|
19
19
|
description: kase.description
|
|
20
|
-
}), kase.
|
|
21
|
-
|
|
20
|
+
}), kase.client_need && {
|
|
21
|
+
person_conditions: kase.client_need.map(id => ({
|
|
22
|
+
id,
|
|
23
|
+
type: 'person_condition'
|
|
24
|
+
}))
|
|
22
25
|
}), kase.opened_date && {
|
|
23
26
|
opened_date: formatShortDate2FromTimestamp(kase.opened_date)
|
|
24
27
|
}), state && {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendReferral.js","names":["isError","coreApi","formatShortDate2FromTimestamp","updateCase","kase","options","arguments","length","undefined","state","otherOptions","_objectWithoutProperties","_excluded","caseData","_objectSpread","service_type_id","service","description","client_need_id","opened_date","primary_worker","primary_worker_id","updateRecord","id","error","console","acceptReferral","referral","isHttpSuccess","response","codeNumber","status","archiveReferral","referralId","flagged_for_sender","createOONReferral","result","oonProvider","out_of_network_providers","provider_type","unlistedProgramNote","subjectType","subject","case_id","employee","visibility","category","text","concat","custom_name","createRecord","newReferral","is_grouped","case","sending_provider","referred_by_group_id","sending_network","referred_by_network_id","receiving_network","referred_to_network_id","receiving_provider","provider_id","program_id","receiving_program","includes","createReferral","referred_to_groups","group_id","createdReferral","sendReferrals","_ref","oldReferral","isOON","newReferrals","old_receiving_network","new_receiving_network","errorMessage","acceptedReferral","updatedCase","Promise","all","results","map"],"sources":["../../src/hooks/sendReferral.js"],"sourcesContent":["import { isError } from 'lodash';\nimport { coreApi } from '../api/config';\nimport { formatShortDate2FromTimestamp } from '../components/service_authorization/formatShortDate';\n\nconst updateCase = async (kase, options = {}) => {\n try {\n const { state, ...otherOptions } = options;\n const caseData = {\n ...(kase.service_type_id && { service: kase.service_type_id }),\n ...(kase.description && { description: kase.description }),\n ...(kase.client_need_id && { client_need_id: kase.client_need_id }),\n ...(kase.opened_date && { opened_date: formatShortDate2FromTimestamp(kase.opened_date) }),\n ...(state && { \n state,\n primary_worker: state !== 'draft' ? kase.primary_worker_id : null\n }),\n ...otherOptions\n };\n return await coreApi.updateRecord('case', kase.id, caseData);\n } catch (error) {\n console.error('Error updating case attributes:', error);\n return false;\n }\n};\n\nconst acceptReferral = async (referral = {}) => {\n try {\n return await coreApi.updateRecord('referral', referral.id, {\n state: 'accepted',\n });\n } catch (error) {\n console.error('Error accepting referral:', error);\n return false;\n }\n};\n\nexport const isHttpSuccess = (response) => {\n let codeNumber = response;\n if (typeof codeNumber === 'object') {\n codeNumber = response.status;\n }\n return isError(response) || (codeNumber > 199 && codeNumber < 300);\n};\n\nexport const archiveReferral = async (referralId) => {\n try {\n const response = await coreApi.updateRecord('referral', referralId, {\n flagged_for_sender: false,\n });\n if (!response || !isHttpSuccess(response.status)) return false;\n return true;\n } catch (error) {\n console.error('Error archiveReferral:', error);\n return false;\n }\n};\n\nconst createOONReferral = async (referral = {}, kase = {}) => {\n try {\n let result;\n const oonProvider = referral.out_of_network_providers[0];\n if (oonProvider.provider_type === \"CUSTOM\") {\n const unlistedProgramNote = {\n subjectType: 'case',\n subject: referral.case_id,\n employee: kase.primary_worker_id,\n visibility: 'public',\n category: 'external_provider',\n text: `Referred off platform to ${oonProvider.custom_name}`\n }\n result = await coreApi.createRecord('note', unlistedProgramNote);\n } else {\n const newReferral = {\n is_grouped: referral.is_grouped,\n state: 'off_platform',\n case: referral.case_id,\n sending_provider: referral.referred_by_group_id,\n sending_network: referral.referred_by_network_id,\n receiving_network: referral.referred_to_network_id || referral.referred_by_network_id,\n receiving_provider: oonProvider.provider_id,\n ...(oonProvider.program_id ? { receiving_program: oonProvider.program_id } : null),\n }\n result = await coreApi.createRecord('referral', newReferral);\n }\n if (['recalled', 'declined'].includes(referral.state)) {\n await archiveReferral(referral.id);\n }\n return result;\n } catch (error) {\n console.error('Error creating Out Of Network case:', error);\n return false;\n }\n};\n\nconst createReferral = async (referral = {}) => {\n try {\n const newReferral = {\n state: 'sent',\n case: referral.case_id,\n sending_provider: referral.referred_by_group_id,\n sending_network: referral.referred_by_network_id,\n receiving_network: referral.referred_to_network_id,\n receiving_provider: referral.referred_to_groups[0].group_id,\n ...(referral.referred_to_groups[0].program_id ? { receiving_program: referral.referred_to_groups[0].program_id } : {}),\n is_grouped: referral.is_grouped,\n }\n const createdReferral = await coreApi.createRecord('referral', newReferral)\n if (['recalled', 'declined'].includes(referral.state)) {\n await archiveReferral(referral.id);\n }\n return createdReferral;\n } catch (error) {\n console.error('Error creating referral:', error);\n return false;\n }\n};\n\n// To forward a referral, first accept it, then update the case with the new service type, and finally create the new referral/s with the new provider.\nconst sendReferrals = async ({ oldReferral, isOON = false, newReferrals, kase, old_receiving_network, new_receiving_network }) => {\n try {\n if (!isOON && old_receiving_network !== new_receiving_network) {\n return { errorMessage: \"Error: The organization is in a different network than the original sender.\" };\n }\n\n if (['sent', 'in_review'].includes(oldReferral.state)) {\n const [acceptedReferral, updatedCase] = await Promise.all([\n acceptReferral(oldReferral),\n updateCase(kase),\n ]);\n if (!acceptedReferral || !updatedCase) return false;\n } else if (['recalled', 'declined'].includes(oldReferral.state) && kase?.client_need_id) {\n await updateCase({ id: kase.id, client_need_id: kase.client_need_id }); //we only update the client need id\n }\n if (isOON) await updateCase({ id: kase.id, primary_worker_id: kase.primary_worker_id }, { state: 'off_platform' });//we only update the case status and primary worker\n\n const results = await Promise.all(newReferrals.map(referral =>\n !isOON ? createReferral(referral) : createOONReferral(referral, kase)\n ));\n return results;\n } catch (error) {\n console.error(\"Error sending referral\", error);\n return false;\n }\n};\n\nexport default sendReferrals;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"sendReferral.js","names":["isError","coreApi","formatShortDate2FromTimestamp","updateCase","kase","options","arguments","length","undefined","state","otherOptions","_objectWithoutProperties","_excluded","caseData","_objectSpread","service_type_id","service","description","client_need","person_conditions","map","id","type","opened_date","primary_worker","primary_worker_id","updateRecord","error","console","acceptReferral","referral","isHttpSuccess","response","codeNumber","status","archiveReferral","referralId","flagged_for_sender","createOONReferral","result","oonProvider","out_of_network_providers","provider_type","unlistedProgramNote","subjectType","subject","case_id","employee","visibility","category","text","concat","custom_name","createRecord","newReferral","is_grouped","case","sending_provider","referred_by_group_id","sending_network","referred_by_network_id","receiving_network","referred_to_network_id","receiving_provider","provider_id","program_id","receiving_program","includes","createReferral","referred_to_groups","group_id","createdReferral","sendReferrals","_ref","oldReferral","isOON","newReferrals","old_receiving_network","new_receiving_network","errorMessage","acceptedReferral","updatedCase","Promise","all","client_need_id","results"],"sources":["../../src/hooks/sendReferral.js"],"sourcesContent":["import { isError } from 'lodash';\nimport { coreApi } from '../api/config';\nimport { formatShortDate2FromTimestamp } from '../components/service_authorization/formatShortDate';\n\nconst updateCase = async (kase, options = {}) => {\n try {\n const { state, ...otherOptions } = options;\n const caseData = {\n ...(kase.service_type_id && { service: kase.service_type_id }),\n ...(kase.description && { description: kase.description }),\n ...(kase.client_need && { person_conditions: kase.client_need.map(id => ({ id, type: 'person_condition' })) }),\n ...(kase.opened_date && { opened_date: formatShortDate2FromTimestamp(kase.opened_date) }),\n ...(state && { \n state,\n primary_worker: state !== 'draft' ? kase.primary_worker_id : null\n }),\n ...otherOptions\n };\n return await coreApi.updateRecord('case', kase.id, caseData);\n } catch (error) {\n console.error('Error updating case attributes:', error);\n return false;\n }\n};\n\nconst acceptReferral = async (referral = {}) => {\n try {\n return await coreApi.updateRecord('referral', referral.id, {\n state: 'accepted',\n });\n } catch (error) {\n console.error('Error accepting referral:', error);\n return false;\n }\n};\n\nexport const isHttpSuccess = (response) => {\n let codeNumber = response;\n if (typeof codeNumber === 'object') {\n codeNumber = response.status;\n }\n return isError(response) || (codeNumber > 199 && codeNumber < 300);\n};\n\nexport const archiveReferral = async (referralId) => {\n try {\n const response = await coreApi.updateRecord('referral', referralId, {\n flagged_for_sender: false,\n });\n if (!response || !isHttpSuccess(response.status)) return false;\n return true;\n } catch (error) {\n console.error('Error archiveReferral:', error);\n return false;\n }\n};\n\nconst createOONReferral = async (referral = {}, kase = {}) => {\n try {\n let result;\n const oonProvider = referral.out_of_network_providers[0];\n if (oonProvider.provider_type === \"CUSTOM\") {\n const unlistedProgramNote = {\n subjectType: 'case',\n subject: referral.case_id,\n employee: kase.primary_worker_id,\n visibility: 'public',\n category: 'external_provider',\n text: `Referred off platform to ${oonProvider.custom_name}`\n }\n result = await coreApi.createRecord('note', unlistedProgramNote);\n } else {\n const newReferral = {\n is_grouped: referral.is_grouped,\n state: 'off_platform',\n case: referral.case_id,\n sending_provider: referral.referred_by_group_id,\n sending_network: referral.referred_by_network_id,\n receiving_network: referral.referred_to_network_id || referral.referred_by_network_id,\n receiving_provider: oonProvider.provider_id,\n ...(oonProvider.program_id ? { receiving_program: oonProvider.program_id } : null),\n }\n result = await coreApi.createRecord('referral', newReferral);\n }\n if (['recalled', 'declined'].includes(referral.state)) {\n await archiveReferral(referral.id);\n }\n return result;\n } catch (error) {\n console.error('Error creating Out Of Network case:', error);\n return false;\n }\n};\n\nconst createReferral = async (referral = {}) => {\n try {\n const newReferral = {\n state: 'sent',\n case: referral.case_id,\n sending_provider: referral.referred_by_group_id,\n sending_network: referral.referred_by_network_id,\n receiving_network: referral.referred_to_network_id,\n receiving_provider: referral.referred_to_groups[0].group_id,\n ...(referral.referred_to_groups[0].program_id ? { receiving_program: referral.referred_to_groups[0].program_id } : {}),\n is_grouped: referral.is_grouped,\n }\n const createdReferral = await coreApi.createRecord('referral', newReferral)\n if (['recalled', 'declined'].includes(referral.state)) {\n await archiveReferral(referral.id);\n }\n return createdReferral;\n } catch (error) {\n console.error('Error creating referral:', error);\n return false;\n }\n};\n\n// To forward a referral, first accept it, then update the case with the new service type, and finally create the new referral/s with the new provider.\nconst sendReferrals = async ({ oldReferral, isOON = false, newReferrals, kase, old_receiving_network, new_receiving_network }) => {\n try {\n if (!isOON && old_receiving_network !== new_receiving_network) {\n return { errorMessage: \"Error: The organization is in a different network than the original sender.\" };\n }\n\n if (['sent', 'in_review'].includes(oldReferral.state)) {\n const [acceptedReferral, updatedCase] = await Promise.all([\n acceptReferral(oldReferral),\n updateCase(kase),\n ]);\n if (!acceptedReferral || !updatedCase) return false;\n } else if (['recalled', 'declined'].includes(oldReferral.state) && kase?.client_need_id) {\n await updateCase({ id: kase.id, client_need_id: kase.client_need_id }); //we only update the client need id\n }\n if (isOON) await updateCase({ id: kase.id, primary_worker_id: kase.primary_worker_id }, { state: 'off_platform' });//we only update the case status and primary worker\n\n const results = await Promise.all(newReferrals.map(referral =>\n !isOON ? createReferral(referral) : createOONReferral(referral, kase)\n ));\n return results;\n } catch (error) {\n console.error(\"Error sending referral\", error);\n return false;\n }\n};\n\nexport default sendReferrals;\n"],"mappings":";;;;;AAAA,SAASA,OAAO,QAAQ,QAAQ;AAChC,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,6BAA6B,QAAQ,qDAAqD;AAEnG,MAAMC,UAAU,GAAG,eAAAA,CAAOC,IAAI,EAAmB;EAAA,IAAjBC,OAAO,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAC1C,IAAI;IACF,MAAM;QAAEG;MAAuB,CAAC,GAAGJ,OAAO;MAAxBK,YAAY,GAAAC,wBAAA,CAAKN,OAAO,EAAAO,SAAA;IAC1C,MAAMC,QAAQ,GAAAC,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACRV,IAAI,CAACW,eAAe,IAAI;MAAEC,OAAO,EAAEZ,IAAI,CAACW;IAAgB,CAAC,GACzDX,IAAI,CAACa,WAAW,IAAI;MAAEA,WAAW,EAAEb,IAAI,CAACa;IAAY,CAAC,GACrDb,IAAI,CAACc,WAAW,IAAI;MAAEC,iBAAiB,EAAEf,IAAI,CAACc,WAAW,CAACE,GAAG,CAACC,EAAE,KAAK;QAAEA,EAAE;QAAEC,IAAI,EAAE;MAAmB,CAAC,CAAC;IAAE,CAAC,GACzGlB,IAAI,CAACmB,WAAW,IAAI;MAAEA,WAAW,EAAErB,6BAA6B,CAACE,IAAI,CAACmB,WAAW;IAAE,CAAC,GACpFd,KAAK,IAAI;MACXA,KAAK;MACLe,cAAc,EAAEf,KAAK,KAAK,OAAO,GAAGL,IAAI,CAACqB,iBAAiB,GAAG;IAC/D,CAAC,GACEf,YAAY,CAChB;IACD,OAAO,MAAMT,OAAO,CAACyB,YAAY,CAAC,MAAM,EAAEtB,IAAI,CAACiB,EAAE,EAAER,QAAQ,CAAC;EAC9D,CAAC,CAAC,OAAOc,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,CAAC,iCAAiC,EAAEA,KAAK,CAAC;IACvD,OAAO,KAAK;EACd;AACF,CAAC;AAED,MAAME,cAAc,GAAG,eAAAA,CAAA,EAAyB;EAAA,IAAlBC,QAAQ,GAAAxB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACzC,IAAI;IACF,OAAO,MAAML,OAAO,CAACyB,YAAY,CAAC,UAAU,EAAEI,QAAQ,CAACT,EAAE,EAAE;MACzDZ,KAAK,EAAE;IACT,CAAC,CAAC;EACJ,CAAC,CAAC,OAAOkB,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,CAAC,2BAA2B,EAAEA,KAAK,CAAC;IACjD,OAAO,KAAK;EACd;AACF,CAAC;AAED,OAAO,MAAMI,aAAa,GAAIC,QAAQ,IAAK;EACzC,IAAIC,UAAU,GAAGD,QAAQ;EACzB,IAAI,OAAOC,UAAU,KAAK,QAAQ,EAAE;IAClCA,UAAU,GAAGD,QAAQ,CAACE,MAAM;EAC9B;EACA,OAAOlC,OAAO,CAACgC,QAAQ,CAAC,IAAKC,UAAU,GAAG,GAAG,IAAIA,UAAU,GAAG,GAAI;AACpE,CAAC;AAED,OAAO,MAAME,eAAe,GAAG,MAAOC,UAAU,IAAK;EACnD,IAAI;IACF,MAAMJ,QAAQ,GAAG,MAAM/B,OAAO,CAACyB,YAAY,CAAC,UAAU,EAAEU,UAAU,EAAE;MAClEC,kBAAkB,EAAE;IACtB,CAAC,CAAC;IACF,IAAI,CAACL,QAAQ,IAAI,CAACD,aAAa,CAACC,QAAQ,CAACE,MAAM,CAAC,EAAE,OAAO,KAAK;IAC9D,OAAO,IAAI;EACb,CAAC,CAAC,OAAOP,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAAC;IAC9C,OAAO,KAAK;EACd;AACF,CAAC;AAED,MAAMW,iBAAiB,GAAG,eAAAA,CAAA,EAAoC;EAAA,IAA7BR,QAAQ,GAAAxB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EAAA,IAAEF,IAAI,GAAAE,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACvD,IAAI;IACF,IAAIiC,MAAM;IACV,MAAMC,WAAW,GAAGV,QAAQ,CAACW,wBAAwB,CAAC,CAAC,CAAC;IACxD,IAAID,WAAW,CAACE,aAAa,KAAK,QAAQ,EAAE;MAC1C,MAAMC,mBAAmB,GAAG;QAC1BC,WAAW,EAAE,MAAM;QACnBC,OAAO,EAAEf,QAAQ,CAACgB,OAAO;QACzBC,QAAQ,EAAE3C,IAAI,CAACqB,iBAAiB;QAChCuB,UAAU,EAAE,QAAQ;QACpBC,QAAQ,EAAE,mBAAmB;QAC7BC,IAAI,8BAAAC,MAAA,CAA8BX,WAAW,CAACY,WAAW;MAC3D,CAAC;MACDb,MAAM,GAAG,MAAMtC,OAAO,CAACoD,YAAY,CAAC,MAAM,EAAEV,mBAAmB,CAAC;IAClE,CAAC,MAAM;MACL,MAAMW,WAAW,GAAAxC,aAAA;QACfyC,UAAU,EAAEzB,QAAQ,CAACyB,UAAU;QAC/B9C,KAAK,EAAE,cAAc;QACrB+C,IAAI,EAAE1B,QAAQ,CAACgB,OAAO;QACtBW,gBAAgB,EAAE3B,QAAQ,CAAC4B,oBAAoB;QAC/CC,eAAe,EAAE7B,QAAQ,CAAC8B,sBAAsB;QAChDC,iBAAiB,EAAE/B,QAAQ,CAACgC,sBAAsB,IAAIhC,QAAQ,CAAC8B,sBAAsB;QACrFG,kBAAkB,EAAEvB,WAAW,CAACwB;MAAW,GACvCxB,WAAW,CAACyB,UAAU,GAAG;QAAEC,iBAAiB,EAAE1B,WAAW,CAACyB;MAAW,CAAC,GAAG,IAAI,CAClF;MACD1B,MAAM,GAAG,MAAMtC,OAAO,CAACoD,YAAY,CAAC,UAAU,EAAEC,WAAW,CAAC;IAC9D;IACA,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAACa,QAAQ,CAACrC,QAAQ,CAACrB,KAAK,CAAC,EAAE;MACrD,MAAM0B,eAAe,CAACL,QAAQ,CAACT,EAAE,CAAC;IACpC;IACA,OAAOkB,MAAM;EACf,CAAC,CAAC,OAAOZ,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,CAAC,qCAAqC,EAAEA,KAAK,CAAC;IAC3D,OAAO,KAAK;EACd;AACF,CAAC;AAED,MAAMyC,cAAc,GAAG,eAAAA,CAAA,EAAyB;EAAA,IAAlBtC,QAAQ,GAAAxB,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAAE,SAAA,GAAAF,SAAA,MAAG,CAAC,CAAC;EACzC,IAAI;IACF,MAAMgD,WAAW,GAAAxC,aAAA,CAAAA,aAAA;MACfL,KAAK,EAAE,MAAM;MACb+C,IAAI,EAAE1B,QAAQ,CAACgB,OAAO;MACtBW,gBAAgB,EAAE3B,QAAQ,CAAC4B,oBAAoB;MAC/CC,eAAe,EAAE7B,QAAQ,CAAC8B,sBAAsB;MAChDC,iBAAiB,EAAE/B,QAAQ,CAACgC,sBAAsB;MAClDC,kBAAkB,EAAEjC,QAAQ,CAACuC,kBAAkB,CAAC,CAAC,CAAC,CAACC;IAAQ,GACvDxC,QAAQ,CAACuC,kBAAkB,CAAC,CAAC,CAAC,CAACJ,UAAU,GAAG;MAAEC,iBAAiB,EAAEpC,QAAQ,CAACuC,kBAAkB,CAAC,CAAC,CAAC,CAACJ;IAAW,CAAC,GAAG,CAAC,CAAC;MACrHV,UAAU,EAAEzB,QAAQ,CAACyB;IAAU,EAChC;IACD,MAAMgB,eAAe,GAAG,MAAMtE,OAAO,CAACoD,YAAY,CAAC,UAAU,EAAEC,WAAW,CAAC;IAC3E,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAACa,QAAQ,CAACrC,QAAQ,CAACrB,KAAK,CAAC,EAAE;MACrD,MAAM0B,eAAe,CAACL,QAAQ,CAACT,EAAE,CAAC;IACpC;IACA,OAAOkD,eAAe;EACxB,CAAC,CAAC,OAAO5C,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,CAAC,0BAA0B,EAAEA,KAAK,CAAC;IAChD,OAAO,KAAK;EACd;AACF,CAAC;;AAED;AACA,MAAM6C,aAAa,GAAG,MAAAC,IAAA,IAA4G;EAAA,IAArG;IAAEC,WAAW;IAAEC,KAAK,GAAG,KAAK;IAAEC,YAAY;IAAExE,IAAI;IAAEyE,qBAAqB;IAAEC;EAAsB,CAAC,GAAAL,IAAA;EAC3H,IAAI;IACF,IAAI,CAACE,KAAK,IAAIE,qBAAqB,KAAKC,qBAAqB,EAAE;MAC7D,OAAO;QAAEC,YAAY,EAAE;MAA8E,CAAC;IACxG;IAEA,IAAI,CAAC,MAAM,EAAE,WAAW,CAAC,CAACZ,QAAQ,CAACO,WAAW,CAACjE,KAAK,CAAC,EAAE;MACrD,MAAM,CAACuE,gBAAgB,EAAEC,WAAW,CAAC,GAAG,MAAMC,OAAO,CAACC,GAAG,CAAC,CACxDtD,cAAc,CAAC6C,WAAW,CAAC,EAC3BvE,UAAU,CAACC,IAAI,CAAC,CACjB,CAAC;MACF,IAAI,CAAC4E,gBAAgB,IAAI,CAACC,WAAW,EAAE,OAAO,KAAK;IACrD,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAACd,QAAQ,CAACO,WAAW,CAACjE,KAAK,CAAC,IAAIL,IAAI,aAAJA,IAAI,eAAJA,IAAI,CAAEgF,cAAc,EAAE;MACvF,MAAMjF,UAAU,CAAC;QAAEkB,EAAE,EAAEjB,IAAI,CAACiB,EAAE;QAAE+D,cAAc,EAAEhF,IAAI,CAACgF;MAAe,CAAC,CAAC,CAAC,CAAC;IAC1E;IACA,IAAIT,KAAK,EAAE,MAAMxE,UAAU,CAAC;MAAEkB,EAAE,EAAEjB,IAAI,CAACiB,EAAE;MAAEI,iBAAiB,EAAErB,IAAI,CAACqB;IAAkB,CAAC,EAAE;MAAEhB,KAAK,EAAE;IAAe,CAAC,CAAC,CAAC;;IAEnH,MAAM4E,OAAO,GAAG,MAAMH,OAAO,CAACC,GAAG,CAACP,YAAY,CAACxD,GAAG,CAACU,QAAQ,IACzD,CAAC6C,KAAK,GAAGP,cAAc,CAACtC,QAAQ,CAAC,GAAGQ,iBAAiB,CAACR,QAAQ,EAAE1B,IAAI,CACtE,CAAC,CAAC;IACF,OAAOiF,OAAO;EAChB,CAAC,CAAC,OAAO1D,KAAK,EAAE;IACdC,OAAO,CAACD,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAAC;IAC9C,OAAO,KAAK;EACd;AACF,CAAC;AAED,eAAe6C,aAAa","ignoreList":[]}
|
|
@@ -214,8 +214,11 @@ export default function useCreateReferrals() {
|
|
|
214
214
|
opened_date: formatShortDate2FromTimestamp(referral.opened_date)
|
|
215
215
|
});
|
|
216
216
|
}
|
|
217
|
-
if (showClientNeed && (_referral$client_need2 = referral.client_need)
|
|
218
|
-
payload.
|
|
217
|
+
if (showClientNeed && ((_referral$client_need2 = referral.client_need) === null || _referral$client_need2 === void 0 ? void 0 : _referral$client_need2.length) > 0) {
|
|
218
|
+
payload.person_conditions = referral.client_need.map(id => ({
|
|
219
|
+
id,
|
|
220
|
+
type: 'person_condition'
|
|
221
|
+
}));
|
|
219
222
|
}
|
|
220
223
|
caseResponse = await updateCase(arCase.id, payload);
|
|
221
224
|
} else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCreateReferrals.js","names":["get","map","isEmpty","moment","fspUtils","isUnlistedProgram","referralIsOON","referralIsGrouped","useCreateRecord","useUpdateRecord","CALLBACKS","coreApi","useAppCreateReferralContext","useFeatureFlag","referralToConsent","formatShortDate2FromTimestamp","validateRequiredValues","type","values","requiredFields","filter","field","useCreateReferrals","state","currentEmployee","formResponses","person","referrals","formSubmissionId","assistanceRequestId","screeningId","hint542SupersetUnlistedPrograms","pays5590RefactorInsuranceFilters","showClientNeed","createRecord","createReferral","createCase","createServiceAuthorization","createFormSubmission","createNote","updateRecord","updateReferral","updateCase","updateServiceAuthorization","createErrorMessage","error","response","data","errors","title","join","uploadDocuments","referral","caseToUploadDoc","attachableDocuments","filteredDocuments","doc","attached","attachedDocuments","ad","document","id","attachDocumentsToResource","setRelationship","relationshipModel","value","a","uploadPromises","Promise","all","uploadedDocuments","uploadDocumentsToResource","d","uploadFile","file","submitAssessments","_ref","cases","latestResponses","promises","serviceCase","assessment","_assessment$form","form","service_type_ids","includes","service","push","context","contextType","provider","responses","submitter","then","catch","err","notify","createReferrals","_ref2","draft","result","shippingDetail","referralsToConsent","groupedReferrals","some","r","length","i","index","sent","caseId","_referrals$i$case","resultDraft","undefined","case","service_authorization","updateDraftReferralCrtb1239","updateDraftReferral","item","find","referralData","originalReferral","createdReferrals","referredToPrograms","isGrouped","isOON","createdCaseOrExistingAR","authorizationCreated","j","programData","_referral$client_need","_referral$primaryWork","caseValues","_objectSpread","description","person_conditions","client_need","sendingProvider","network","primaryWorker","primary_worker","originating_form_submission","screening2_id","missingCaseValues","Error","concat","opened_date","caseResponse","_referral$client_need2","arCase","payload","client_need_id","feeScheduleProgram","programs","fee_schedule_program","authorization_required","_referral$paymentAuth","_referral$paymentAuth2","_responseInsurances$d","serviceStart","paymentAuthForm","service_start","requestedStartDate","unix","toISOString","serviceEnd","service_end","requestedEndDate","add","subtract","amountRequested","amount_requested","icd10Codes","icd10_code","queryInsuranceParams","enrolled_before","expired_after","fee_schedule","sort","responseInsurances","query","insurances","requested_starts_at","requested_ends_at","isCostPaymentType","payment_type","requested_cents","requested_unit_amount","parseInt","requester","insurance","clinical_modifications","createNoteForUnlistedProgramValues","subjectType","subject","employee","visibility","category","text","name","missingNoteValues","noteReferral","referralIndex","referralValues","is_grouped","receiving_program","receiving_provider","receiving_network","sending_provider","sending_network","missingReferralValues","responseReferral","message","_caseResponse$data","_caseResponse$data2","caseRequestResponse","referralsRequestResponse","findRecord","oldCase","oldReferrals","serviceTypeChanged","service_type","descriptionChanged","serviceCasePayload","referralsToDelete","forEach","deleteRecord","formRecipientsIds","provider_id","program_id","createReferralPromises","newReferral","referralsResponse","referralResponse","_referralResponse$dat","updateServiceAuthorizationHandler","_referral$paymentAuth3","_referral$paymentAuth4","_responseInsurances$d2","options","arguments","isAuthRequired","newState"],"sources":["../../src/hooks/useCreateReferrals.js"],"sourcesContent":["import { get, map, isEmpty } from 'lodash';\nimport moment from 'moment';\nimport fspUtils from '@unite-us/client-utils/dist/utils/feeSchedulePrograms';\nimport { isUnlistedProgram, referralIsOON, referralIsGrouped } from '../pages/builder/utils';\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';\n\nconst validateRequiredValues = (type, values) => {\n let requiredFields = [];\n if (type === 'case') {\n requiredFields = ['description', 'service', 'provider', 'network', 'person'];\n } else if (type === 'note') {\n requiredFields = ['subjectType', 'subject', 'visibility', 'text'];\n } else if (type === 'referral') {\n requiredFields = ['case', 'receiving_program', 'receiving_provider', 'receiving_network', 'sending_provider', 'sending_network'];\n }\n\n return requiredFields.filter(field => !values[field]);\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 uploadDocuments = ((referral, caseToUploadDoc) => {\n const attachableDocuments = get(referral, 'attachableDocuments', []);\n const filteredDocuments = attachableDocuments.filter((doc) => doc.attached === true);\n const attachedDocuments = filteredDocuments.map((ad) => ({\n title: ad.document.title,\n id: ad.document.id,\n }));\n\n if(!isEmpty(attachedDocuments)) {\n const attachDocumentsToResource = () => (\n coreApi.setRelationship(\n 'case',\n caseToUploadDoc.id,\n { relationshipModel: 'file_upload', value: attachedDocuments.map((a) => a.id) },\n )\n );\n\n const uploadPromises = !isEmpty(attachedDocuments) && attachDocumentsToResource();\n\n Promise.all([uploadPromises]);\n }\n\n const uploadedDocuments = get(referral, 'attachments', []);\n\n if (!isEmpty(uploadedDocuments)) {\n const uploadDocumentsToResource = () => (\n uploadedDocuments.map((d) => coreApi.uploadFile('case', caseToUploadDoc.id, d.file))\n );\n\n const uploadPromises = uploadDocumentsToResource();\n Promise.all([\n ...(uploadPromises || []),\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 createReferrals = async ({ referrals, person, draft }) => {\n const result = {\n referrals: [],\n cases: [],\n shippingDetail: [],\n referralsToConsent: [],\n };\n\n let groupedReferrals = referrals.some(r => get(r, 'programs', []).length > 1);\n\n for (let i = 0; i < referrals.length; i += 1) {\n result.shippingDetail.push({ index: i, sent: false, error: null, caseId: null });\n\n try {\n if (referrals[i].state === \"draft\") {\n let resultDraft = undefined;\n if (isEmpty(referrals[i].case?.service_authorization)) {\n resultDraft = await updateDraftReferralCrtb1239(referrals[i]);\n } else {\n resultDraft = await updateDraftReferral(referrals[i], draft);\n }\n\n let item = result.shippingDetail.find(item => item.index === i);\n if (item) item.sent = true;\n result.cases.push(resultDraft.cases[0]);\n result.referrals.push(...resultDraft.referrals);\n\n // From one draft multiple referrals could be created (grouped referrals)\n const referralData = await referralToConsent({\n originalReferral: referrals[i],\n createdReferrals: resultDraft.referrals,\n });\n if (referralData) result.referralsToConsent.push(referralData);\n } else {\n const referral = referrals[i];\n const referredToPrograms = get(referral, 'programs', []);\n const isGrouped = referralIsGrouped(referral);\n const isOON = referralIsOON(referral);\n\n let createdCaseOrExistingAR = null;\n let authorizationCreated = false;\n\n const createdReferrals = [];\n for (let j = 0; j < referredToPrograms.length; j += 1) {\n const programData = referredToPrograms[j];\n\n if ((groupedReferrals && !createdCaseOrExistingAR) || !groupedReferrals) {\n let caseValues = {\n description: referral.description,\n state: referralIsOON(referral) ? 'off_platform' : 'draft',\n person_conditions: referral.client_need?.map(id => ({ id, type: 'person_condition' })) || [],\n person: person.id,\n provider: referral.sendingProvider.id,\n network: referral.network.id,\n service: referral.service.id,\n ...(referral.primaryWorker?.id ? { primary_worker: referral.primaryWorker.id } : null),\n ...(formSubmissionId ? { originating_form_submission: formSubmissionId } : null),\n ...(screeningId ? { screening2_id: screeningId } : null),\n };\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 if (isOON) {\n caseValues = { ...caseValues, opened_date: formatShortDate2FromTimestamp(referral.opened_date) };\n }\n\n try {\n let caseResponse;\n if (assistanceRequestId && i === 0) {\n const arCase = get(assistanceRequestId, 'case', null);\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 && referral.client_need?.id) {\n payload.client_need_id = referral.client_need.id;\n }\n\n caseResponse = await updateCase(arCase.id, payload);\n } else {\n caseResponse = await createCase(caseValues);\n }\n createdCaseOrExistingAR = get(caseResponse, 'data.data', {});\n\n const feeScheduleProgram = referral.programs[0].fee_schedule_program;\n\n let item = result.shippingDetail.find(item => item.index === i);\n if (item) item.caseId = createdCaseOrExistingAR.id;\n\n if (feeScheduleProgram?.authorization_required) {\n const serviceStart = referral?.paymentAuthForm?.service_start;\n let requestedStartDate = serviceStart && moment.unix(serviceStart).toISOString();\n const serviceEnd = referral?.paymentAuthForm?.service_end;\n let requestedEndDate = serviceEnd && moment.unix(serviceEnd).toISOString();\n\n if (pays5590RefactorInsuranceFilters) {\n requestedStartDate = serviceStart && moment(requestedStartDate).add(1, 'day').toISOString();\n requestedEndDate = serviceEnd && moment(requestedEndDate).subtract(1, 'day').toISOString();\n }\n\n const amountRequested = referral.paymentAuthForm.amount_requested;\n const icd10Codes = referral.paymentAuthForm.icd10_code.id ?\n [referral.paymentAuthForm.icd10_code.id] : [];\n\n const queryInsuranceParams = {\n person: person.id,\n state: 'active',\n enrolled_before: requestedStartDate,\n expired_after: requestedEndDate,\n 'plan.fee_schedules': feeScheduleProgram.fee_schedule.id,\n sort: '-enrolled_at',\n }\n\n const responseInsurances = await coreApi.query('insurance', queryInsuranceParams);\n const insurances = responseInsurances?.data?.data;\n\n await createServiceAuthorization({\n state: draft ? 'draft' : 'requested',\n requested_starts_at: requestedStartDate,\n requested_ends_at: requestedEndDate,\n ...(\n fspUtils.isCostPaymentType(feeScheduleProgram.payment_type) ?\n { requested_cents: amountRequested } : { requested_unit_amount: parseInt(amountRequested) }\n ),\n case: createdCaseOrExistingAR.id,\n fee_schedule_program: feeScheduleProgram.id,\n requester: currentEmployee.id,\n insurance: insurances[0].id,\n person: person.id,\n clinical_modifications: icd10Codes,\n });\n authorizationCreated = true;\n }\n\n result.cases.push(createdCaseOrExistingAR);\n } catch (err) {\n result.shippingDetail[i].error = `Error creating the Case: ${createErrorMessage(err)}`;\n continue;\n }\n }\n\n uploadDocuments(referral, createdCaseOrExistingAR);\n\n let state;\n if (draft) {\n state = 'draft';\n } else if (referralIsOON(referral)) {\n state = 'off_platform';\n } else if (authorizationCreated) {\n state = 'pending_authorization';\n } else {\n state = 'sent';\n }\n\n if (hint542SupersetUnlistedPrograms && isUnlistedProgram(programData)) {\n const createNoteForUnlistedProgramValues = {\n subjectType: 'case',\n subject: createdCaseOrExistingAR.id,\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[i].error = `The following fields for the unlisted program are required: ${missingNoteValues.join(', ')}`;\n continue;\n }\n\n try {\n createNote(createNoteForUnlistedProgramValues);\n const noteReferral = { index: i, sent: true, referralIndex: i };\n result.referrals.push(noteReferral);\n let item = result.shippingDetail.find(item => item.index === i);\n if (item) item.sent = true;\n } catch (err) {\n result.shippingDetail[i].error = \"Error creating the note on the case for the unlisted program\";\n continue;\n }\n } else {\n const referralValues = {\n state,\n case: createdCaseOrExistingAR.id,\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 };\n\n const missingReferralValues = validateRequiredValues('referral', referralValues);\n if (missingReferralValues.length) {\n result.shippingDetail[i].error = `The following fields for the referral are required: ${missingReferralValues.join(', ')}`;\n continue;\n }\n\n try {\n const responseReferral = await createReferral(referralValues);\n\n result.referrals.push({\n ...responseReferral.data.data,\n referralIndex: i,\n });\n let item = result.shippingDetail.find(item => item.index === i);\n if (item) item.sent = true;\n createdReferrals.push(responseReferral.data.data);\n } catch (err) {\n result.shippingDetail[i].error = `Error creating the Referral: ${createErrorMessage(err)}`;\n continue;\n }\n }\n }\n // From one referral multiple referrals could be created (grouped referrals)\n const referralData = await referralToConsent({\n originalReferral: referral,\n createdReferrals,\n });\n if (referralData) result.referralsToConsent.push(referralData);\n }\n } catch (err) {\n result.shippingDetail[i].error = `Unexpected error: ${err.message}`;\n }\n }\n return result;\n };\n\n const updateDraftReferralCrtb1239 = async (referral) => {\n try {\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 const serviceTypeChanged = referral.service.id !== oldCase.service_type.id;\n const descriptionChanged = referral.description && referral.description !== oldCase.description;\n\n const serviceCasePayload = {\n ...(serviceTypeChanged && { service: { id: referral.service.id } }),\n ...(descriptionChanged && { description: referral.description }),\n };\n\n const caseResponse = isEmpty(serviceCasePayload) ? oldCase : await updateCase(referral.case.id, serviceCasePayload);\n\n uploadDocuments(referral, oldCase);\n\n const referralsToDelete = [];\n oldReferrals.forEach((r) => {\n referralsToDelete.push(coreApi.deleteRecord('referral', r.id));\n });\n\n if (referralsToDelete.length) {\n await Promise.all(referralsToDelete);\n }\n\n const formRecipientsIds = map(referral.programs, (r) => ({\n provider_id: r.provider.id,\n network: referral.network,\n program_id: r.id,\n }));\n\n const createReferralPromises = [];\n formRecipientsIds.forEach((r) => {\n const newReferral = createReferral({\n state: 'sent',\n case: oldCase.id,\n receiving_program: r.program_id,\n receiving_provider: r.provider_id,\n receiving_network: r.network.id,\n sending_provider: oldCase.provider.id,\n sending_network: oldCase.network.id,\n });\n\n createReferralPromises.push(newReferral);\n });\n\n const referralsResponse = await Promise.all(createReferralPromises);\n\n return {\n cases: [(caseResponse?.data?.data) ? caseResponse?.data?.data : oldCase],\n referrals: referralsResponse.map((referralResponse) => referralResponse?.data?.data),\n };\n } catch (err) {\n CALLBACKS.notify.error(\"Error updating the Draft Referral\");\n throw err;\n }\n }\n\n const updateServiceAuthorizationHandler = async (referral, options = { draft: false }) => {\n const feeScheduleProgram = referral.programs[0].fee_schedule_program;\n\n const serviceStart = referral?.paymentAuthForm?.service_start;\n let requestedStartDate = serviceStart && moment.unix(serviceStart).toISOString();\n const serviceEnd = referral?.paymentAuthForm?.service_end;\n let requestedEndDate = serviceEnd && moment.unix(serviceEnd).toISOString();\n\n if (pays5590RefactorInsuranceFilters) {\n requestedStartDate = serviceStart && moment(requestedStartDate).add(1, 'day').toISOString();\n requestedEndDate = serviceEnd && moment(requestedEndDate).subtract(1, 'day').toISOString();\n }\n\n const amountRequested = referral.paymentAuthForm.amount_requested;\n\n const queryInsuranceParams = {\n person: person.id,\n state: 'active',\n enrolled_before: requestedStartDate,\n expired_after: requestedEndDate,\n 'plan.fee_schedules': feeScheduleProgram.fee_schedule.id,\n sort: '-enrolled_at',\n }\n\n const responseInsurances = await coreApi.query('insurance', queryInsuranceParams);\n const insurances = responseInsurances?.data?.data;\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 ...(\n fspUtils.isCostPaymentType(feeScheduleProgram.payment_type) ?\n { requested_cents: amountRequested } : { requested_unit_amount: parseInt(amountRequested) }\n ),\n requester: currentEmployee.id,\n insurance: insurances[0].id,\n person: person.id,\n });\n }\n\n const updateDraftReferral = async (referral, draft) => {\n try {\n const promises = [\n updateCase(referral.case.id, {\n description: referral.description,\n })\n ];\n\n const isAuthRequired = get(referral, 'programs[0].fee_schedule_program.authorization_required', false);\n\n if(!draft) {\n let newState;\n if (referralIsOON(referral)) {\n newState = 'off_platform';\n } else if (isAuthRequired) {\n newState = 'pending_authorization';\n } else {\n newState = 'sent';\n }\n promises.push(updateReferral(referral.id, {\n state: newState,\n }));\n }\n\n if(isAuthRequired) {\n promises.push(updateServiceAuthorizationHandler(referral, { draft }));\n }\n\n const responses = await Promise.all(\n promises\n );\n\n return {\n referrals: draft ? [] : [responses[1].data.data],\n cases: [responses[0].data.data],\n }\n } catch (err) {\n CALLBACKS.notify.error(\"Error updating the Draft Referral\");\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","fspUtils","isUnlistedProgram","referralIsOON","referralIsGrouped","useCreateRecord","useUpdateRecord","CALLBACKS","coreApi","useAppCreateReferralContext","useFeatureFlag","referralToConsent","formatShortDate2FromTimestamp","validateRequiredValues","type","values","requiredFields","filter","field","useCreateReferrals","state","currentEmployee","formResponses","person","referrals","formSubmissionId","assistanceRequestId","screeningId","hint542SupersetUnlistedPrograms","pays5590RefactorInsuranceFilters","showClientNeed","createRecord","createReferral","createCase","createServiceAuthorization","createFormSubmission","createNote","updateRecord","updateReferral","updateCase","updateServiceAuthorization","createErrorMessage","error","response","data","errors","title","join","uploadDocuments","referral","caseToUploadDoc","attachableDocuments","filteredDocuments","doc","attached","attachedDocuments","ad","document","id","attachDocumentsToResource","setRelationship","relationshipModel","value","a","uploadPromises","Promise","all","uploadedDocuments","uploadDocumentsToResource","d","uploadFile","file","submitAssessments","_ref","cases","latestResponses","promises","serviceCase","assessment","_assessment$form","form","service_type_ids","includes","service","push","context","contextType","provider","responses","submitter","then","catch","err","notify","createReferrals","_ref2","draft","result","shippingDetail","referralsToConsent","groupedReferrals","some","r","length","i","index","sent","caseId","_referrals$i$case","resultDraft","undefined","case","service_authorization","updateDraftReferralCrtb1239","updateDraftReferral","item","find","referralData","originalReferral","createdReferrals","referredToPrograms","isGrouped","isOON","createdCaseOrExistingAR","authorizationCreated","j","programData","_referral$client_need","_referral$primaryWork","caseValues","_objectSpread","description","person_conditions","client_need","sendingProvider","network","primaryWorker","primary_worker","originating_form_submission","screening2_id","missingCaseValues","Error","concat","opened_date","caseResponse","_referral$client_need2","arCase","payload","feeScheduleProgram","programs","fee_schedule_program","authorization_required","_referral$paymentAuth","_referral$paymentAuth2","_responseInsurances$d","serviceStart","paymentAuthForm","service_start","requestedStartDate","unix","toISOString","serviceEnd","service_end","requestedEndDate","add","subtract","amountRequested","amount_requested","icd10Codes","icd10_code","queryInsuranceParams","enrolled_before","expired_after","fee_schedule","sort","responseInsurances","query","insurances","requested_starts_at","requested_ends_at","isCostPaymentType","payment_type","requested_cents","requested_unit_amount","parseInt","requester","insurance","clinical_modifications","createNoteForUnlistedProgramValues","subjectType","subject","employee","visibility","category","text","name","missingNoteValues","noteReferral","referralIndex","referralValues","is_grouped","receiving_program","receiving_provider","receiving_network","sending_provider","sending_network","missingReferralValues","responseReferral","message","_caseResponse$data","_caseResponse$data2","caseRequestResponse","referralsRequestResponse","findRecord","oldCase","oldReferrals","serviceTypeChanged","service_type","descriptionChanged","serviceCasePayload","referralsToDelete","forEach","deleteRecord","formRecipientsIds","provider_id","program_id","createReferralPromises","newReferral","referralsResponse","referralResponse","_referralResponse$dat","updateServiceAuthorizationHandler","_referral$paymentAuth3","_referral$paymentAuth4","_responseInsurances$d2","options","arguments","isAuthRequired","newState"],"sources":["../../src/hooks/useCreateReferrals.js"],"sourcesContent":["import { get, map, isEmpty } from 'lodash';\nimport moment from 'moment';\nimport fspUtils from '@unite-us/client-utils/dist/utils/feeSchedulePrograms';\nimport { isUnlistedProgram, referralIsOON, referralIsGrouped } from '../pages/builder/utils';\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';\n\nconst validateRequiredValues = (type, values) => {\n let requiredFields = [];\n if (type === 'case') {\n requiredFields = ['description', 'service', 'provider', 'network', 'person'];\n } else if (type === 'note') {\n requiredFields = ['subjectType', 'subject', 'visibility', 'text'];\n } else if (type === 'referral') {\n requiredFields = ['case', 'receiving_program', 'receiving_provider', 'receiving_network', 'sending_provider', 'sending_network'];\n }\n\n return requiredFields.filter(field => !values[field]);\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 uploadDocuments = ((referral, caseToUploadDoc) => {\n const attachableDocuments = get(referral, 'attachableDocuments', []);\n const filteredDocuments = attachableDocuments.filter((doc) => doc.attached === true);\n const attachedDocuments = filteredDocuments.map((ad) => ({\n title: ad.document.title,\n id: ad.document.id,\n }));\n\n if(!isEmpty(attachedDocuments)) {\n const attachDocumentsToResource = () => (\n coreApi.setRelationship(\n 'case',\n caseToUploadDoc.id,\n { relationshipModel: 'file_upload', value: attachedDocuments.map((a) => a.id) },\n )\n );\n\n const uploadPromises = !isEmpty(attachedDocuments) && attachDocumentsToResource();\n\n Promise.all([uploadPromises]);\n }\n\n const uploadedDocuments = get(referral, 'attachments', []);\n\n if (!isEmpty(uploadedDocuments)) {\n const uploadDocumentsToResource = () => (\n uploadedDocuments.map((d) => coreApi.uploadFile('case', caseToUploadDoc.id, d.file))\n );\n\n const uploadPromises = uploadDocumentsToResource();\n Promise.all([\n ...(uploadPromises || []),\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 createReferrals = async ({ referrals, person, draft }) => {\n const result = {\n referrals: [],\n cases: [],\n shippingDetail: [],\n referralsToConsent: [],\n };\n\n let groupedReferrals = referrals.some(r => get(r, 'programs', []).length > 1);\n\n for (let i = 0; i < referrals.length; i += 1) {\n result.shippingDetail.push({ index: i, sent: false, error: null, caseId: null });\n\n try {\n if (referrals[i].state === \"draft\") {\n let resultDraft = undefined;\n if (isEmpty(referrals[i].case?.service_authorization)) {\n resultDraft = await updateDraftReferralCrtb1239(referrals[i]);\n } else {\n resultDraft = await updateDraftReferral(referrals[i], draft);\n }\n\n let item = result.shippingDetail.find(item => item.index === i);\n if (item) item.sent = true;\n result.cases.push(resultDraft.cases[0]);\n result.referrals.push(...resultDraft.referrals);\n\n // From one draft multiple referrals could be created (grouped referrals)\n const referralData = await referralToConsent({\n originalReferral: referrals[i],\n createdReferrals: resultDraft.referrals,\n });\n if (referralData) result.referralsToConsent.push(referralData);\n } else {\n const referral = referrals[i];\n const referredToPrograms = get(referral, 'programs', []);\n const isGrouped = referralIsGrouped(referral);\n const isOON = referralIsOON(referral);\n\n let createdCaseOrExistingAR = null;\n let authorizationCreated = false;\n\n const createdReferrals = [];\n for (let j = 0; j < referredToPrograms.length; j += 1) {\n const programData = referredToPrograms[j];\n\n if ((groupedReferrals && !createdCaseOrExistingAR) || !groupedReferrals) {\n let caseValues = {\n description: referral.description,\n state: referralIsOON(referral) ? 'off_platform' : 'draft',\n person_conditions: referral.client_need?.map(id => ({ id, type: 'person_condition' })) || [],\n person: person.id,\n provider: referral.sendingProvider.id,\n network: referral.network.id,\n service: referral.service.id,\n ...(referral.primaryWorker?.id ? { primary_worker: referral.primaryWorker.id } : null),\n ...(formSubmissionId ? { originating_form_submission: formSubmissionId } : null),\n ...(screeningId ? { screening2_id: screeningId } : null),\n };\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 if (isOON) {\n caseValues = { ...caseValues, opened_date: formatShortDate2FromTimestamp(referral.opened_date) };\n }\n\n try {\n let caseResponse;\n if (assistanceRequestId && i === 0) {\n const arCase = get(assistanceRequestId, 'case', null);\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 && referral.client_need?.length > 0) {\n payload.person_conditions = referral.client_need.map(id => ({ id, type: 'person_condition' }));\n }\n\n caseResponse = await updateCase(arCase.id, payload);\n } else {\n caseResponse = await createCase(caseValues);\n }\n createdCaseOrExistingAR = get(caseResponse, 'data.data', {});\n\n const feeScheduleProgram = referral.programs[0].fee_schedule_program;\n\n let item = result.shippingDetail.find(item => item.index === i);\n if (item) item.caseId = createdCaseOrExistingAR.id;\n\n if (feeScheduleProgram?.authorization_required) {\n const serviceStart = referral?.paymentAuthForm?.service_start;\n let requestedStartDate = serviceStart && moment.unix(serviceStart).toISOString();\n const serviceEnd = referral?.paymentAuthForm?.service_end;\n let requestedEndDate = serviceEnd && moment.unix(serviceEnd).toISOString();\n\n if (pays5590RefactorInsuranceFilters) {\n requestedStartDate = serviceStart && moment(requestedStartDate).add(1, 'day').toISOString();\n requestedEndDate = serviceEnd && moment(requestedEndDate).subtract(1, 'day').toISOString();\n }\n\n const amountRequested = referral.paymentAuthForm.amount_requested;\n const icd10Codes = referral.paymentAuthForm.icd10_code.id ?\n [referral.paymentAuthForm.icd10_code.id] : [];\n\n const queryInsuranceParams = {\n person: person.id,\n state: 'active',\n enrolled_before: requestedStartDate,\n expired_after: requestedEndDate,\n 'plan.fee_schedules': feeScheduleProgram.fee_schedule.id,\n sort: '-enrolled_at',\n }\n\n const responseInsurances = await coreApi.query('insurance', queryInsuranceParams);\n const insurances = responseInsurances?.data?.data;\n\n await createServiceAuthorization({\n state: draft ? 'draft' : 'requested',\n requested_starts_at: requestedStartDate,\n requested_ends_at: requestedEndDate,\n ...(\n fspUtils.isCostPaymentType(feeScheduleProgram.payment_type) ?\n { requested_cents: amountRequested } : { requested_unit_amount: parseInt(amountRequested) }\n ),\n case: createdCaseOrExistingAR.id,\n fee_schedule_program: feeScheduleProgram.id,\n requester: currentEmployee.id,\n insurance: insurances[0].id,\n person: person.id,\n clinical_modifications: icd10Codes,\n });\n authorizationCreated = true;\n }\n\n result.cases.push(createdCaseOrExistingAR);\n } catch (err) {\n result.shippingDetail[i].error = `Error creating the Case: ${createErrorMessage(err)}`;\n continue;\n }\n }\n\n uploadDocuments(referral, createdCaseOrExistingAR);\n\n let state;\n if (draft) {\n state = 'draft';\n } else if (referralIsOON(referral)) {\n state = 'off_platform';\n } else if (authorizationCreated) {\n state = 'pending_authorization';\n } else {\n state = 'sent';\n }\n\n if (hint542SupersetUnlistedPrograms && isUnlistedProgram(programData)) {\n const createNoteForUnlistedProgramValues = {\n subjectType: 'case',\n subject: createdCaseOrExistingAR.id,\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[i].error = `The following fields for the unlisted program are required: ${missingNoteValues.join(', ')}`;\n continue;\n }\n\n try {\n createNote(createNoteForUnlistedProgramValues);\n const noteReferral = { index: i, sent: true, referralIndex: i };\n result.referrals.push(noteReferral);\n let item = result.shippingDetail.find(item => item.index === i);\n if (item) item.sent = true;\n } catch (err) {\n result.shippingDetail[i].error = \"Error creating the note on the case for the unlisted program\";\n continue;\n }\n } else {\n const referralValues = {\n state,\n case: createdCaseOrExistingAR.id,\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 };\n\n const missingReferralValues = validateRequiredValues('referral', referralValues);\n if (missingReferralValues.length) {\n result.shippingDetail[i].error = `The following fields for the referral are required: ${missingReferralValues.join(', ')}`;\n continue;\n }\n\n try {\n const responseReferral = await createReferral(referralValues);\n\n result.referrals.push({\n ...responseReferral.data.data,\n referralIndex: i,\n });\n let item = result.shippingDetail.find(item => item.index === i);\n if (item) item.sent = true;\n createdReferrals.push(responseReferral.data.data);\n } catch (err) {\n result.shippingDetail[i].error = `Error creating the Referral: ${createErrorMessage(err)}`;\n continue;\n }\n }\n }\n // From one referral multiple referrals could be created (grouped referrals)\n const referralData = await referralToConsent({\n originalReferral: referral,\n createdReferrals,\n });\n if (referralData) result.referralsToConsent.push(referralData);\n }\n } catch (err) {\n result.shippingDetail[i].error = `Unexpected error: ${err.message}`;\n }\n }\n return result;\n };\n\n const updateDraftReferralCrtb1239 = async (referral) => {\n try {\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 const serviceTypeChanged = referral.service.id !== oldCase.service_type.id;\n const descriptionChanged = referral.description && referral.description !== oldCase.description;\n\n const serviceCasePayload = {\n ...(serviceTypeChanged && { service: { id: referral.service.id } }),\n ...(descriptionChanged && { description: referral.description }),\n };\n\n const caseResponse = isEmpty(serviceCasePayload) ? oldCase : await updateCase(referral.case.id, serviceCasePayload);\n\n uploadDocuments(referral, oldCase);\n\n const referralsToDelete = [];\n oldReferrals.forEach((r) => {\n referralsToDelete.push(coreApi.deleteRecord('referral', r.id));\n });\n\n if (referralsToDelete.length) {\n await Promise.all(referralsToDelete);\n }\n\n const formRecipientsIds = map(referral.programs, (r) => ({\n provider_id: r.provider.id,\n network: referral.network,\n program_id: r.id,\n }));\n\n const createReferralPromises = [];\n formRecipientsIds.forEach((r) => {\n const newReferral = createReferral({\n state: 'sent',\n case: oldCase.id,\n receiving_program: r.program_id,\n receiving_provider: r.provider_id,\n receiving_network: r.network.id,\n sending_provider: oldCase.provider.id,\n sending_network: oldCase.network.id,\n });\n\n createReferralPromises.push(newReferral);\n });\n\n const referralsResponse = await Promise.all(createReferralPromises);\n\n return {\n cases: [(caseResponse?.data?.data) ? caseResponse?.data?.data : oldCase],\n referrals: referralsResponse.map((referralResponse) => referralResponse?.data?.data),\n };\n } catch (err) {\n CALLBACKS.notify.error(\"Error updating the Draft Referral\");\n throw err;\n }\n }\n\n const updateServiceAuthorizationHandler = async (referral, options = { draft: false }) => {\n const feeScheduleProgram = referral.programs[0].fee_schedule_program;\n\n const serviceStart = referral?.paymentAuthForm?.service_start;\n let requestedStartDate = serviceStart && moment.unix(serviceStart).toISOString();\n const serviceEnd = referral?.paymentAuthForm?.service_end;\n let requestedEndDate = serviceEnd && moment.unix(serviceEnd).toISOString();\n\n if (pays5590RefactorInsuranceFilters) {\n requestedStartDate = serviceStart && moment(requestedStartDate).add(1, 'day').toISOString();\n requestedEndDate = serviceEnd && moment(requestedEndDate).subtract(1, 'day').toISOString();\n }\n\n const amountRequested = referral.paymentAuthForm.amount_requested;\n\n const queryInsuranceParams = {\n person: person.id,\n state: 'active',\n enrolled_before: requestedStartDate,\n expired_after: requestedEndDate,\n 'plan.fee_schedules': feeScheduleProgram.fee_schedule.id,\n sort: '-enrolled_at',\n }\n\n const responseInsurances = await coreApi.query('insurance', queryInsuranceParams);\n const insurances = responseInsurances?.data?.data;\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 ...(\n fspUtils.isCostPaymentType(feeScheduleProgram.payment_type) ?\n { requested_cents: amountRequested } : { requested_unit_amount: parseInt(amountRequested) }\n ),\n requester: currentEmployee.id,\n insurance: insurances[0].id,\n person: person.id,\n });\n }\n\n const updateDraftReferral = async (referral, draft) => {\n try {\n const promises = [\n updateCase(referral.case.id, {\n description: referral.description,\n })\n ];\n\n const isAuthRequired = get(referral, 'programs[0].fee_schedule_program.authorization_required', false);\n\n if(!draft) {\n let newState;\n if (referralIsOON(referral)) {\n newState = 'off_platform';\n } else if (isAuthRequired) {\n newState = 'pending_authorization';\n } else {\n newState = 'sent';\n }\n promises.push(updateReferral(referral.id, {\n state: newState,\n }));\n }\n\n if(isAuthRequired) {\n promises.push(updateServiceAuthorizationHandler(referral, { draft }));\n }\n\n const responses = await Promise.all(\n promises\n );\n\n return {\n referrals: draft ? [] : [responses[1].data.data],\n cases: [responses[0].data.data],\n }\n } catch (err) {\n CALLBACKS.notify.error(\"Error updating the Draft Referral\");\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":";;;AAAA,SAASA,GAAG,EAAEC,GAAG,EAAEC,OAAO,QAAQ,QAAQ;AAC1C,OAAOC,MAAM,MAAM,QAAQ;AAC3B,OAAOC,QAAQ,MAAM,uDAAuD;AAC5E,SAASC,iBAAiB,EAAEC,aAAa,EAAEC,iBAAiB,QAAQ,wBAAwB;AAC5F,SAASC,eAAe,EAAEC,eAAe,QAAQ,iBAAiB;AAClE,SAASC,SAAS,EAAEC,OAAO,QAAQ,eAAe;AAClD,SAASC,2BAA2B,QAAQ,sCAAsC;AAClF,SAASC,cAAc,QAAQ,yBAAyB;AACxD,OAAOC,iBAAiB,MAAM,4BAA4B;AAC1D,SAASC,6BAA6B,QAAQ,qDAAqD;AAEnG,MAAMC,sBAAsB,GAAGA,CAACC,IAAI,EAAEC,MAAM,KAAK;EAC/C,IAAIC,cAAc,GAAG,EAAE;EACvB,IAAIF,IAAI,KAAK,MAAM,EAAE;IACnBE,cAAc,GAAG,CAAC,aAAa,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,CAAC;EAC9E,CAAC,MAAM,IAAIF,IAAI,KAAK,MAAM,EAAE;IAC1BE,cAAc,GAAG,CAAC,aAAa,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,CAAC;EACnE,CAAC,MAAM,IAAIF,IAAI,KAAK,UAAU,EAAE;IAC9BE,cAAc,GAAG,CAAC,MAAM,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,iBAAiB,CAAC;EAClI;EAEA,OAAOA,cAAc,CAACC,MAAM,CAACC,KAAK,IAAI,CAACH,MAAM,CAACG,KAAK,CAAC,CAAC;AACvD,CAAC;AAED,eAAe,SAASC,kBAAkBA,CAAA,EAAG;EAC3C,MAAM;IACJC,KAAK,EAAE;MACLC,eAAe;MACfC,aAAa;MACbC,MAAM;MACNC,SAAS;MACTC,gBAAgB;MAChBC,mBAAmB;MACnBC;IACF;EACF,CAAC,GAAGlB,2BAA2B,CAAC,CAAC;EAEjC,MAAMmB,+BAA+B,GAAGlB,cAAc,CAAC,iCAAiC,EAAE,KAAK,CAAC;EAChG,MAAMmB,gCAAgC,GAAGnB,cAAc,CAAC,kCAAkC,EAAE,KAAK,CAAC;EAClG,MAAMoB,cAAc,GAAGpB,cAAc,CAAC,6BAA6B,EAAE,KAAK,CAAC;EAE3E,MAAM;IAAEqB,YAAY,EAAEC;EAAe,CAAC,GAAG3B,eAAe,CAAC,UAAU,CAAC;EACpE,MAAM;IAAE0B,YAAY,EAAEE;EAAW,CAAC,GAAG5B,eAAe,CAAC,MAAM,CAAC;EAC5D,MAAM;IAAE0B,YAAY,EAAEG;EAA2B,CAAC,GAAG7B,eAAe,CAAC,uBAAuB,CAAC;EAC7F,MAAM;IAAE0B,YAAY,EAAEI;EAAqB,CAAC,GAAG9B,eAAe,CAAC,iBAAiB,CAAC;EACjF,MAAM;IAAE0B,YAAY,EAAEK;EAAW,CAAC,GAAG/B,eAAe,CAAC,MAAM,CAAC;EAC5D,MAAM;IAAEgC,YAAY,EAAEC;EAAe,CAAC,GAAGhC,eAAe,CAAC,UAAU,CAAC;EACpE,MAAM;IAAE+B,YAAY,EAAEE;EAAW,CAAC,GAAGjC,eAAe,CAAC,MAAM,CAAC;EAC5D,MAAM;IAAE+B,YAAY,EAAEG;EAA2B,CAAC,GAAGlC,eAAe,CAAC,uBAAuB,CAAC;EAE7F,MAAMmC,kBAAkB,GAAIC,KAAK,IAAK;IACpC,OAAOA,KAAK,CAACC,QAAQ,CAACC,IAAI,CAACC,MAAM,CAAC/C,GAAG,CAAE4C,KAAK,IAAKA,KAAK,CAACI,KAAK,CAAC,CAACC,IAAI,CAAC,IAAI,CAAC;EAC1E,CAAC;EAED,MAAMC,eAAe,GAAIA,CAACC,QAAQ,EAAEC,eAAe,KAAK;IACtD,MAAMC,mBAAmB,GAAGtD,GAAG,CAACoD,QAAQ,EAAE,qBAAqB,EAAE,EAAE,CAAC;IACpE,MAAMG,iBAAiB,GAAGD,mBAAmB,CAAClC,MAAM,CAAEoC,GAAG,IAAKA,GAAG,CAACC,QAAQ,KAAK,IAAI,CAAC;IACpF,MAAMC,iBAAiB,GAAGH,iBAAiB,CAACtD,GAAG,CAAE0D,EAAE,KAAM;MACvDV,KAAK,EAAEU,EAAE,CAACC,QAAQ,CAACX,KAAK;MACxBY,EAAE,EAAEF,EAAE,CAACC,QAAQ,CAACC;IAClB,CAAC,CAAC,CAAC;IAEH,IAAG,CAAC3D,OAAO,CAACwD,iBAAiB,CAAC,EAAE;MAC9B,MAAMI,yBAAyB,GAAGA,CAAA,KAChCnD,OAAO,CAACoD,eAAe,CACrB,MAAM,EACNV,eAAe,CAACQ,EAAE,EAClB;QAAEG,iBAAiB,EAAE,aAAa;QAAEC,KAAK,EAAEP,iBAAiB,CAACzD,GAAG,CAAEiE,CAAC,IAAKA,CAAC,CAACL,EAAE;MAAE,CAChF,CACD;MAED,MAAMM,cAAc,GAAG,CAACjE,OAAO,CAACwD,iBAAiB,CAAC,IAAII,yBAAyB,CAAC,CAAC;MAEjFM,OAAO,CAACC,GAAG,CAAC,CAACF,cAAc,CAAC,CAAC;IAC/B;IAEA,MAAMG,iBAAiB,GAAGtE,GAAG,CAACoD,QAAQ,EAAE,aAAa,EAAE,EAAE,CAAC;IAE1D,IAAI,CAAClD,OAAO,CAACoE,iBAAiB,CAAC,EAAE;MAC/B,MAAMC,yBAAyB,GAAGA,CAAA,KAChCD,iBAAiB,CAACrE,GAAG,CAAEuE,CAAC,IAAK7D,OAAO,CAAC8D,UAAU,CAAC,MAAM,EAAEpB,eAAe,CAACQ,EAAE,EAAEW,CAAC,CAACE,IAAI,CAAC,CACpF;MAED,MAAMP,cAAc,GAAGI,yBAAyB,CAAC,CAAC;MAClDH,OAAO,CAACC,GAAG,CAAC,CACV,IAAIF,cAAc,IAAI,EAAE,CAAC,CAC1B,CAAC;IACJ;EACF,CAAE;EAEF,MAAMQ,iBAAiB,GAAGC,IAAA,IAAgC;IAAA,IAA/B;MAAEC,KAAK;MAAEC;IAAgB,CAAC,GAAAF,IAAA;IACnD,IAAIG,QAAQ,GAAG,EAAE;IACjB9E,GAAG,CAAC4E,KAAK,EAAGG,WAAW,IAAK;MAC1B/E,GAAG,CAAE6E,eAAe,IAAIrD,aAAa,EAAIwD,UAAU,IAAK;QAAA,IAAAC,gBAAA;QACtD,IAAI,CAAChF,OAAO,CAAC+E,UAAU,CAAC,KAAAC,gBAAA,GAAID,UAAU,CAACE,IAAI,cAAAD,gBAAA,gBAAAA,gBAAA,GAAfA,gBAAA,CAAiBE,gBAAgB,cAAAF,gBAAA,eAAjCA,gBAAA,CAAmCG,QAAQ,CAACL,WAAW,CAACM,OAAO,CAACzB,EAAE,CAAC,EAAE;UAC/FkB,QAAQ,CAACQ,IAAI,CAACjD,oBAAoB,CAAC;YACjCkD,OAAO,EAAER,WAAW,CAACnB,EAAE;YACvB4B,WAAW,EAAE,MAAM;YACnBN,IAAI,EAAEF,UAAU,CAACE,IAAI,CAACtB,EAAE;YACxB6B,QAAQ,EAAEV,WAAW,CAACU,QAAQ,CAAC7B,EAAE;YACjC8B,SAAS,EAAEV,UAAU,CAACU,SAAS;YAC/BC,SAAS,EAAEpE,eAAe,CAACqC;UAC7B,CAAC,CAAC,CAAC;QACL;MACF,CAAC,CAAC;IACJ,CAAC,CAAC;IAEF,OAAOO,OAAO,CAACC,GAAG,CAACU,QAAQ,CAAC,CAACc,IAAI,CAAEF,SAAS,IAAK;MAC/C,OAAOA,SAAS;IAClB,CAAC,CAAC,CAACG,KAAK,CAACC,GAAG,IAAI;MACdrF,SAAS,CAACsF,MAAM,CAACnD,KAAK,CAAC,8BAA8B,CAAC;MACtD,MAAMkD,GAAG;IACX,CAAC,CAAC;EACJ,CAAC;EAED,MAAME,eAAe,GAAG,MAAAC,KAAA,IAAwC;IAAA,IAAjC;MAAEvE,SAAS;MAAED,MAAM;MAAEyE;IAAM,CAAC,GAAAD,KAAA;IACzD,MAAME,MAAM,GAAG;MACbzE,SAAS,EAAE,EAAE;MACbkD,KAAK,EAAE,EAAE;MACTwB,cAAc,EAAE,EAAE;MAClBC,kBAAkB,EAAE;IACtB,CAAC;IAED,IAAIC,gBAAgB,GAAG5E,SAAS,CAAC6E,IAAI,CAACC,CAAC,IAAIzG,GAAG,CAACyG,CAAC,EAAE,UAAU,EAAE,EAAE,CAAC,CAACC,MAAM,GAAG,CAAC,CAAC;IAE7E,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGhF,SAAS,CAAC+E,MAAM,EAAEC,CAAC,IAAI,CAAC,EAAE;MAC5CP,MAAM,CAACC,cAAc,CAACd,IAAI,CAAC;QAAEqB,KAAK,EAAED,CAAC;QAAEE,IAAI,EAAE,KAAK;QAAEhE,KAAK,EAAE,IAAI;QAAEiE,MAAM,EAAE;MAAK,CAAC,CAAC;MAEhF,IAAI;QACF,IAAInF,SAAS,CAACgF,CAAC,CAAC,CAACpF,KAAK,KAAK,OAAO,EAAE;UAAA,IAAAwF,iBAAA;UAClC,IAAIC,WAAW,GAAGC,SAAS;UAC3B,IAAI/G,OAAO,EAAA6G,iBAAA,GAACpF,SAAS,CAACgF,CAAC,CAAC,CAACO,IAAI,cAAAH,iBAAA,uBAAjBA,iBAAA,CAAmBI,qBAAqB,CAAC,EAAE;YACrDH,WAAW,GAAG,MAAMI,2BAA2B,CAACzF,SAAS,CAACgF,CAAC,CAAC,CAAC;UAC/D,CAAC,MAAM;YACLK,WAAW,GAAG,MAAMK,mBAAmB,CAAC1F,SAAS,CAACgF,CAAC,CAAC,EAAER,KAAK,CAAC;UAC9D;UAEA,IAAImB,IAAI,GAAGlB,MAAM,CAACC,cAAc,CAACkB,IAAI,CAACD,IAAI,IAAIA,IAAI,CAACV,KAAK,KAAKD,CAAC,CAAC;UAC/D,IAAIW,IAAI,EAAEA,IAAI,CAACT,IAAI,GAAG,IAAI;UAC1BT,MAAM,CAACvB,KAAK,CAACU,IAAI,CAACyB,WAAW,CAACnC,KAAK,CAAC,CAAC,CAAC,CAAC;UACvCuB,MAAM,CAACzE,SAAS,CAAC4D,IAAI,CAAC,GAAGyB,WAAW,CAACrF,SAAS,CAAC;;UAE/C;UACA,MAAM6F,YAAY,GAAG,MAAM1G,iBAAiB,CAAC;YAC3C2G,gBAAgB,EAAE9F,SAAS,CAACgF,CAAC,CAAC;YAC9Be,gBAAgB,EAAEV,WAAW,CAACrF;UAChC,CAAC,CAAC;UACF,IAAI6F,YAAY,EAAEpB,MAAM,CAACE,kBAAkB,CAACf,IAAI,CAACiC,YAAY,CAAC;QAChE,CAAC,MAAM;UACL,MAAMpE,QAAQ,GAAGzB,SAAS,CAACgF,CAAC,CAAC;UAC7B,MAAMgB,kBAAkB,GAAG3H,GAAG,CAACoD,QAAQ,EAAE,UAAU,EAAE,EAAE,CAAC;UACxD,MAAMwE,SAAS,GAAGrH,iBAAiB,CAAC6C,QAAQ,CAAC;UAC7C,MAAMyE,KAAK,GAAGvH,aAAa,CAAC8C,QAAQ,CAAC;UAErC,IAAI0E,uBAAuB,GAAG,IAAI;UAClC,IAAIC,oBAAoB,GAAG,KAAK;UAEhC,MAAML,gBAAgB,GAAG,EAAE;UAC3B,KAAK,IAAIM,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGL,kBAAkB,CAACjB,MAAM,EAAEsB,CAAC,IAAI,CAAC,EAAE;YACrD,MAAMC,WAAW,GAAGN,kBAAkB,CAACK,CAAC,CAAC;YAEzC,IAAKzB,gBAAgB,IAAI,CAACuB,uBAAuB,IAAK,CAACvB,gBAAgB,EAAE;cAAA,IAAA2B,qBAAA,EAAAC,qBAAA;cACvE,IAAIC,UAAU,GAAAC,aAAA,CAAAA,aAAA,CAAAA,aAAA;gBACZC,WAAW,EAAElF,QAAQ,CAACkF,WAAW;gBACjC/G,KAAK,EAAEjB,aAAa,CAAC8C,QAAQ,CAAC,GAAG,cAAc,GAAG,OAAO;gBACzDmF,iBAAiB,EAAE,EAAAL,qBAAA,GAAA9E,QAAQ,CAACoF,WAAW,cAAAN,qBAAA,uBAApBA,qBAAA,CAAsBjI,GAAG,CAAC4D,EAAE,KAAK;kBAAEA,EAAE;kBAAE5C,IAAI,EAAE;gBAAmB,CAAC,CAAC,CAAC,KAAI,EAAE;gBAC5FS,MAAM,EAAEA,MAAM,CAACmC,EAAE;gBACjB6B,QAAQ,EAAEtC,QAAQ,CAACqF,eAAe,CAAC5E,EAAE;gBACrC6E,OAAO,EAAEtF,QAAQ,CAACsF,OAAO,CAAC7E,EAAE;gBAC5ByB,OAAO,EAAElC,QAAQ,CAACkC,OAAO,CAACzB;cAAE,GACxB,CAAAsE,qBAAA,GAAA/E,QAAQ,CAACuF,aAAa,cAAAR,qBAAA,eAAtBA,qBAAA,CAAwBtE,EAAE,GAAG;gBAAE+E,cAAc,EAAExF,QAAQ,CAACuF,aAAa,CAAC9E;cAAG,CAAC,GAAG,IAAI,GACjFjC,gBAAgB,GAAG;gBAAEiH,2BAA2B,EAAEjH;cAAiB,CAAC,GAAG,IAAI,GAC3EE,WAAW,GAAG;gBAAEgH,aAAa,EAAEhH;cAAY,CAAC,GAAG,IAAI,CACxD;cAED,MAAMiH,iBAAiB,GAAG/H,sBAAsB,CAAC,MAAM,EAAEoH,UAAU,CAAC;cACpE,IAAIW,iBAAiB,CAACrC,MAAM,EAAE;gBAC5B,MAAM,IAAIsC,KAAK,oDAAAC,MAAA,CAAoDF,iBAAiB,CAAC7F,IAAI,CAAC,IAAI,CAAC,CAAE,CAAC;cACpG;cAEA,IAAI2E,KAAK,EAAE;gBACTO,UAAU,GAAAC,aAAA,CAAAA,aAAA,KAAQD,UAAU;kBAAEc,WAAW,EAAEnI,6BAA6B,CAACqC,QAAQ,CAAC8F,WAAW;gBAAC,EAAE;cAClG;cAEA,IAAI;gBACF,IAAIC,YAAY;gBAChB,IAAItH,mBAAmB,IAAI8E,CAAC,KAAK,CAAC,EAAE;kBAAA,IAAAyC,sBAAA;kBAClC,MAAMC,MAAM,GAAGrJ,GAAG,CAAC6B,mBAAmB,EAAE,MAAM,EAAE,IAAI,CAAC;kBACrD,IAAIyH,OAAO,GAAG;oBACZhB,WAAW,EAAElF,QAAQ,CAACkF,WAAW;oBACjCI,OAAO,EAAEtF,QAAQ,CAACsF,OAAO,CAAC7E;kBAC5B,CAAC;kBAED,IAAIT,QAAQ,CAACkC,OAAO,CAACzB,EAAE,IAAK7D,GAAG,CAACqJ,MAAM,EAAE,YAAY,CAAC,KAAKjG,QAAQ,CAACkC,OAAO,CAACzB,EAAG,EAAE;oBAC9EyF,OAAO,GAAAjB,aAAA,CAAAA,aAAA,KAAQiB,OAAO;sBAAEhE,OAAO,EAAElC,QAAQ,CAACkC,OAAO,CAACzB;oBAAE,EAAE;kBACxD;kBAEA,IAAIgE,KAAK,EAAE;oBACTyB,OAAO,GAAAjB,aAAA,CAAAA,aAAA,KACFiB,OAAO;sBACVV,cAAc,EAAExF,QAAQ,CAACuF,aAAa,CAAC9E,EAAE;sBACzCtC,KAAK,EAAE,cAAc;sBACrB2H,WAAW,EAAEnI,6BAA6B,CAACqC,QAAQ,CAAC8F,WAAW;oBAAC,EACjE;kBACH;kBAEA,IAAIjH,cAAc,IAAI,EAAAmH,sBAAA,GAAAhG,QAAQ,CAACoF,WAAW,cAAAY,sBAAA,uBAApBA,sBAAA,CAAsB1C,MAAM,IAAG,CAAC,EAAE;oBACtD4C,OAAO,CAACf,iBAAiB,GAAGnF,QAAQ,CAACoF,WAAW,CAACvI,GAAG,CAAC4D,EAAE,KAAK;sBAAEA,EAAE;sBAAE5C,IAAI,EAAE;oBAAmB,CAAC,CAAC,CAAC;kBAChG;kBAEAkI,YAAY,GAAG,MAAMzG,UAAU,CAAC2G,MAAM,CAACxF,EAAE,EAAEyF,OAAO,CAAC;gBACrD,CAAC,MAAM;kBACLH,YAAY,GAAG,MAAM/G,UAAU,CAACgG,UAAU,CAAC;gBAC7C;gBACAN,uBAAuB,GAAG9H,GAAG,CAACmJ,YAAY,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC;gBAE5D,MAAMI,kBAAkB,GAAGnG,QAAQ,CAACoG,QAAQ,CAAC,CAAC,CAAC,CAACC,oBAAoB;gBAEpE,IAAInC,IAAI,GAAGlB,MAAM,CAACC,cAAc,CAACkB,IAAI,CAACD,IAAI,IAAIA,IAAI,CAACV,KAAK,KAAKD,CAAC,CAAC;gBAC/D,IAAIW,IAAI,EAAEA,IAAI,CAACR,MAAM,GAAGgB,uBAAuB,CAACjE,EAAE;gBAElD,IAAI0F,kBAAkB,aAAlBA,kBAAkB,eAAlBA,kBAAkB,CAAEG,sBAAsB,EAAE;kBAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA;kBAC9C,MAAMC,YAAY,GAAG1G,QAAQ,aAARA,QAAQ,gBAAAuG,qBAAA,GAARvG,QAAQ,CAAE2G,eAAe,cAAAJ,qBAAA,uBAAzBA,qBAAA,CAA2BK,aAAa;kBAC7D,IAAIC,kBAAkB,GAAGH,YAAY,IAAI3J,MAAM,CAAC+J,IAAI,CAACJ,YAAY,CAAC,CAACK,WAAW,CAAC,CAAC;kBAChF,MAAMC,UAAU,GAAGhH,QAAQ,aAARA,QAAQ,gBAAAwG,sBAAA,GAARxG,QAAQ,CAAE2G,eAAe,cAAAH,sBAAA,uBAAzBA,sBAAA,CAA2BS,WAAW;kBACzD,IAAIC,gBAAgB,GAAGF,UAAU,IAAIjK,MAAM,CAAC+J,IAAI,CAACE,UAAU,CAAC,CAACD,WAAW,CAAC,CAAC;kBAE5E,IAAInI,gCAAgC,EAAE;oBACpCiI,kBAAkB,GAAGH,YAAY,IAAI3J,MAAM,CAAC8J,kBAAkB,CAAC,CAACM,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAACJ,WAAW,CAAC,CAAC;oBAC3FG,gBAAgB,GAAGF,UAAU,IAAIjK,MAAM,CAACmK,gBAAgB,CAAC,CAACE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAACL,WAAW,CAAC,CAAC;kBAC5F;kBAEA,MAAMM,eAAe,GAAGrH,QAAQ,CAAC2G,eAAe,CAACW,gBAAgB;kBACjE,MAAMC,UAAU,GAAGvH,QAAQ,CAAC2G,eAAe,CAACa,UAAU,CAAC/G,EAAE,GACvD,CAACT,QAAQ,CAAC2G,eAAe,CAACa,UAAU,CAAC/G,EAAE,CAAC,GAAG,EAAE;kBAE/C,MAAMgH,oBAAoB,GAAG;oBAC3BnJ,MAAM,EAAEA,MAAM,CAACmC,EAAE;oBACjBtC,KAAK,EAAE,QAAQ;oBACfuJ,eAAe,EAAEb,kBAAkB;oBACnCc,aAAa,EAAET,gBAAgB;oBAC/B,oBAAoB,EAAEf,kBAAkB,CAACyB,YAAY,CAACnH,EAAE;oBACxDoH,IAAI,EAAE;kBACR,CAAC;kBAED,MAAMC,kBAAkB,GAAG,MAAMvK,OAAO,CAACwK,KAAK,CAAC,WAAW,EAAEN,oBAAoB,CAAC;kBACjF,MAAMO,UAAU,GAAGF,kBAAkB,aAAlBA,kBAAkB,gBAAArB,qBAAA,GAAlBqB,kBAAkB,CAAEnI,IAAI,cAAA8G,qBAAA,uBAAxBA,qBAAA,CAA0B9G,IAAI;kBAEjD,MAAMV,0BAA0B,CAAAgG,aAAA,CAAAA,aAAA;oBAC9B9G,KAAK,EAAE4E,KAAK,GAAG,OAAO,GAAG,WAAW;oBACpCkF,mBAAmB,EAAEpB,kBAAkB;oBACvCqB,iBAAiB,EAAEhB;kBAAgB,GAEjClK,QAAQ,CAACmL,iBAAiB,CAAChC,kBAAkB,CAACiC,YAAY,CAAC,GAC3D;oBAAEC,eAAe,EAAEhB;kBAAgB,CAAC,GAAG;oBAAEiB,qBAAqB,EAAEC,QAAQ,CAAClB,eAAe;kBAAE,CAAC;oBAE7FvD,IAAI,EAAEY,uBAAuB,CAACjE,EAAE;oBAChC4F,oBAAoB,EAAEF,kBAAkB,CAAC1F,EAAE;oBAC3C+H,SAAS,EAAEpK,eAAe,CAACqC,EAAE;oBAC7BgI,SAAS,EAAET,UAAU,CAAC,CAAC,CAAC,CAACvH,EAAE;oBAC3BnC,MAAM,EAAEA,MAAM,CAACmC,EAAE;oBACjBiI,sBAAsB,EAAEnB;kBAAU,EACnC,CAAC;kBACF5C,oBAAoB,GAAG,IAAI;gBAC7B;gBAEE3B,MAAM,CAACvB,KAAK,CAACU,IAAI,CAACuC,uBAAuB,CAAC;cAC5C,CAAC,CAAC,OAAO/B,GAAG,EAAE;gBACZK,MAAM,CAACC,cAAc,CAACM,CAAC,CAAC,CAAC9D,KAAK,+BAAAoG,MAAA,CAA+BrG,kBAAkB,CAACmD,GAAG,CAAC,CAAE;gBACtF;cACF;YACF;YAEA5C,eAAe,CAACC,QAAQ,EAAE0E,uBAAuB,CAAC;YAElD,IAAIvG,KAAK;YACT,IAAI4E,KAAK,EAAE;cACT5E,KAAK,GAAG,OAAO;YACjB,CAAC,MAAM,IAAIjB,aAAa,CAAC8C,QAAQ,CAAC,EAAE;cAClC7B,KAAK,GAAG,cAAc;YACxB,CAAC,MAAM,IAAIwG,oBAAoB,EAAE;cAC/BxG,KAAK,GAAG,uBAAuB;YACjC,CAAC,MAAM;cACLA,KAAK,GAAG,MAAM;YAChB;YAEA,IAAIQ,+BAA+B,IAAI1B,iBAAiB,CAAC4H,WAAW,CAAC,EAAE;cACrE,MAAM8D,kCAAkC,GAAG;gBACzCC,WAAW,EAAE,MAAM;gBACnBC,OAAO,EAAEnE,uBAAuB,CAACjE,EAAE;gBACnCqI,QAAQ,EAAE1K,eAAe,CAACqC,EAAE;gBAC5BsI,UAAU,EAAE,QAAQ;gBACpBC,QAAQ,EAAE,mBAAmB;gBAC7BC,IAAI,8BAAApD,MAAA,CAA8BhB,WAAW,CAACqE,IAAI;cACpD,CAAC;cAED,MAAMC,iBAAiB,GAAGvL,sBAAsB,CAAC,MAAM,EAAE+K,kCAAkC,CAAC;cAC5F,IAAIQ,iBAAiB,CAAC7F,MAAM,EAAE;gBAC5BN,MAAM,CAACC,cAAc,CAACM,CAAC,CAAC,CAAC9D,KAAK,kEAAAoG,MAAA,CAAkEsD,iBAAiB,CAACrJ,IAAI,CAAC,IAAI,CAAC,CAAE;gBAC9H;cACF;cAEA,IAAI;gBACFX,UAAU,CAACwJ,kCAAkC,CAAC;gBAC9C,MAAMS,YAAY,GAAG;kBAAE5F,KAAK,EAAED,CAAC;kBAAEE,IAAI,EAAE,IAAI;kBAAE4F,aAAa,EAAE9F;gBAAE,CAAC;gBAC/DP,MAAM,CAACzE,SAAS,CAAC4D,IAAI,CAACiH,YAAY,CAAC;gBACnC,IAAIlF,IAAI,GAAGlB,MAAM,CAACC,cAAc,CAACkB,IAAI,CAACD,IAAI,IAAIA,IAAI,CAACV,KAAK,KAAKD,CAAC,CAAC;gBAC/D,IAAIW,IAAI,EAAEA,IAAI,CAACT,IAAI,GAAG,IAAI;cAC5B,CAAC,CAAC,OAAOd,GAAG,EAAE;gBACZK,MAAM,CAACC,cAAc,CAACM,CAAC,CAAC,CAAC9D,KAAK,GAAG,8DAA8D;gBAC/F;cACF;YACF,CAAC,MAAM;cACL,MAAM6J,cAAc,GAAG;gBACrBnL,KAAK;gBACL2F,IAAI,EAAEY,uBAAuB,CAACjE,EAAE;gBAChC8I,UAAU,EAAE/E,SAAS;gBACrBgF,iBAAiB,EAAE3E,WAAW,CAACpE,EAAE;gBACjCgJ,kBAAkB,EAAE5E,WAAW,CAACvC,QAAQ,CAAC7B,EAAE;gBAC3CiJ,iBAAiB,EAAE1J,QAAQ,CAACsF,OAAO,CAAC7E,EAAE;gBACtCkJ,gBAAgB,EAAE3J,QAAQ,CAACqF,eAAe,CAAC5E,EAAE;gBAC7CmJ,eAAe,EAAE5J,QAAQ,CAACsF,OAAO,CAAC7E;cACpC,CAAC;cAED,MAAMoJ,qBAAqB,GAAGjM,sBAAsB,CAAC,UAAU,EAAE0L,cAAc,CAAC;cAChF,IAAIO,qBAAqB,CAACvG,MAAM,EAAE;gBAChCN,MAAM,CAACC,cAAc,CAACM,CAAC,CAAC,CAAC9D,KAAK,0DAAAoG,MAAA,CAA0DgE,qBAAqB,CAAC/J,IAAI,CAAC,IAAI,CAAC,CAAE;gBAC1H;cACF;cAEA,IAAI;gBACF,MAAMgK,gBAAgB,GAAG,MAAM/K,cAAc,CAACuK,cAAc,CAAC;gBAE7DtG,MAAM,CAACzE,SAAS,CAAC4D,IAAI,CAAA8C,aAAA,CAAAA,aAAA,KAChB6E,gBAAgB,CAACnK,IAAI,CAACA,IAAI;kBAC7B0J,aAAa,EAAE9F;gBAAC,EACjB,CAAC;gBACF,IAAIW,IAAI,GAAGlB,MAAM,CAACC,cAAc,CAACkB,IAAI,CAACD,IAAI,IAAIA,IAAI,CAACV,KAAK,KAAKD,CAAC,CAAC;gBAC/D,IAAIW,IAAI,EAAEA,IAAI,CAACT,IAAI,GAAG,IAAI;gBAC1Ba,gBAAgB,CAACnC,IAAI,CAAC2H,gBAAgB,CAACnK,IAAI,CAACA,IAAI,CAAC;cACnD,CAAC,CAAC,OAAOgD,GAAG,EAAE;gBACZK,MAAM,CAACC,cAAc,CAACM,CAAC,CAAC,CAAC9D,KAAK,mCAAAoG,MAAA,CAAmCrG,kBAAkB,CAACmD,GAAG,CAAC,CAAE;gBAC1F;cACF;YACF;UACF;UACA;UACA,MAAMyB,YAAY,GAAG,MAAM1G,iBAAiB,CAAC;YAC3C2G,gBAAgB,EAAErE,QAAQ;YAC1BsE;UACF,CAAC,CAAC;UACF,IAAIF,YAAY,EAAEpB,MAAM,CAACE,kBAAkB,CAACf,IAAI,CAACiC,YAAY,CAAC;QAChE;MACF,CAAC,CAAC,OAAOzB,GAAG,EAAE;QACZK,MAAM,CAACC,cAAc,CAACM,CAAC,CAAC,CAAC9D,KAAK,wBAAAoG,MAAA,CAAwBlD,GAAG,CAACoH,OAAO,CAAE;MACrE;IACF;IACA,OAAO/G,MAAM;EACf,CAAC;EAED,MAAMgB,2BAA2B,GAAG,MAAOhE,QAAQ,IAAK;IACtD,IAAI;MAAA,IAAAgK,kBAAA,EAAAC,mBAAA;MACF,MAAM,CAACC,mBAAmB,EAAEC,wBAAwB,CAAC,GAAG,MAAMnJ,OAAO,CAACC,GAAG,CAAC,CACxE1D,OAAO,CAAC6M,UAAU,CAAC,MAAM,EAAEpK,QAAQ,CAAC8D,IAAI,CAACrD,EAAE,CAAC,EAC5ClD,OAAO,CAACwK,KAAK,CAAC,UAAU,EAAE;QAAEjE,IAAI,EAAE9D,QAAQ,CAAC8D,IAAI,CAACrD;MAAG,CAAC,CAAC,CACtD,CAAC;MAEF,MAAM4J,OAAO,GAAGzN,GAAG,CAACsN,mBAAmB,EAAE,WAAW,EAAE,IAAI,CAAC;MAC3D,MAAMI,YAAY,GAAG1N,GAAG,CAACuN,wBAAwB,EAAE,WAAW,EAAE,IAAI,CAAC;MAErE,MAAMI,kBAAkB,GAAGvK,QAAQ,CAACkC,OAAO,CAACzB,EAAE,KAAK4J,OAAO,CAACG,YAAY,CAAC/J,EAAE;MAC1E,MAAMgK,kBAAkB,GAAGzK,QAAQ,CAACkF,WAAW,IAAIlF,QAAQ,CAACkF,WAAW,KAAKmF,OAAO,CAACnF,WAAW;MAE/F,MAAMwF,kBAAkB,GAAAzF,aAAA,CAAAA,aAAA,KAClBsF,kBAAkB,IAAI;QAAErI,OAAO,EAAE;UAAEzB,EAAE,EAAET,QAAQ,CAACkC,OAAO,CAACzB;QAAG;MAAE,CAAC,GAC9DgK,kBAAkB,IAAI;QAAEvF,WAAW,EAAElF,QAAQ,CAACkF;MAAY,CAAC,CAChE;MAED,MAAMa,YAAY,GAAGjJ,OAAO,CAAC4N,kBAAkB,CAAC,GAAGL,OAAO,GAAG,MAAM/K,UAAU,CAACU,QAAQ,CAAC8D,IAAI,CAACrD,EAAE,EAAEiK,kBAAkB,CAAC;MAEnH3K,eAAe,CAACC,QAAQ,EAAEqK,OAAO,CAAC;MAElC,MAAMM,iBAAiB,GAAG,EAAE;MAC5BL,YAAY,CAACM,OAAO,CAAEvH,CAAC,IAAK;QAC1BsH,iBAAiB,CAACxI,IAAI,CAAC5E,OAAO,CAACsN,YAAY,CAAC,UAAU,EAAExH,CAAC,CAAC5C,EAAE,CAAC,CAAC;MAChE,CAAC,CAAC;MAEF,IAAIkK,iBAAiB,CAACrH,MAAM,EAAE;QAC5B,MAAMtC,OAAO,CAACC,GAAG,CAAC0J,iBAAiB,CAAC;MACtC;MAEA,MAAMG,iBAAiB,GAAGjO,GAAG,CAACmD,QAAQ,CAACoG,QAAQ,EAAG/C,CAAC,KAAM;QACvD0H,WAAW,EAAE1H,CAAC,CAACf,QAAQ,CAAC7B,EAAE;QAC1B6E,OAAO,EAAEtF,QAAQ,CAACsF,OAAO;QACzB0F,UAAU,EAAE3H,CAAC,CAAC5C;MAChB,CAAC,CAAC,CAAC;MAEH,MAAMwK,sBAAsB,GAAG,EAAE;MACjCH,iBAAiB,CAACF,OAAO,CAAEvH,CAAC,IAAK;QAC/B,MAAM6H,WAAW,GAAGnM,cAAc,CAAC;UACjCZ,KAAK,EAAE,MAAM;UACb2F,IAAI,EAAEuG,OAAO,CAAC5J,EAAE;UAChB+I,iBAAiB,EAAEnG,CAAC,CAAC2H,UAAU;UAC/BvB,kBAAkB,EAAEpG,CAAC,CAAC0H,WAAW;UACjCrB,iBAAiB,EAAErG,CAAC,CAACiC,OAAO,CAAC7E,EAAE;UAC/BkJ,gBAAgB,EAAEU,OAAO,CAAC/H,QAAQ,CAAC7B,EAAE;UACrCmJ,eAAe,EAAES,OAAO,CAAC/E,OAAO,CAAC7E;QACnC,CAAC,CAAC;QAEFwK,sBAAsB,CAAC9I,IAAI,CAAC+I,WAAW,CAAC;MAC1C,CAAC,CAAC;MAEF,MAAMC,iBAAiB,GAAG,MAAMnK,OAAO,CAACC,GAAG,CAACgK,sBAAsB,CAAC;MAEnE,OAAO;QACLxJ,KAAK,EAAE,CAAEsE,YAAY,aAAZA,YAAY,gBAAAiE,kBAAA,GAAZjE,YAAY,CAAEpG,IAAI,cAAAqK,kBAAA,eAAlBA,kBAAA,CAAoBrK,IAAI,GAAIoG,YAAY,aAAZA,YAAY,gBAAAkE,mBAAA,GAAZlE,YAAY,CAAEpG,IAAI,cAAAsK,mBAAA,uBAAlBA,mBAAA,CAAoBtK,IAAI,GAAG0K,OAAO,CAAC;QACxE9L,SAAS,EAAE4M,iBAAiB,CAACtO,GAAG,CAAEuO,gBAAgB;UAAA,IAAAC,qBAAA;UAAA,OAAKD,gBAAgB,aAAhBA,gBAAgB,gBAAAC,qBAAA,GAAhBD,gBAAgB,CAAEzL,IAAI,cAAA0L,qBAAA,uBAAtBA,qBAAA,CAAwB1L,IAAI;QAAA;MACrF,CAAC;IACH,CAAC,CAAC,OAAOgD,GAAG,EAAE;MACZrF,SAAS,CAACsF,MAAM,CAACnD,KAAK,CAAC,mCAAmC,CAAC;MAC3D,MAAMkD,GAAG;IACX;EACF,CAAC;EAED,MAAM2I,iCAAiC,GAAG,eAAAA,CAAOtL,QAAQ,EAAiC;IAAA,IAAAuL,sBAAA,EAAAC,sBAAA,EAAAC,sBAAA;IAAA,IAA/BC,OAAO,GAAAC,SAAA,CAAArI,MAAA,QAAAqI,SAAA,QAAA9H,SAAA,GAAA8H,SAAA,MAAG;MAAE5I,KAAK,EAAE;IAAM,CAAC;IACnF,MAAMoD,kBAAkB,GAAGnG,QAAQ,CAACoG,QAAQ,CAAC,CAAC,CAAC,CAACC,oBAAoB;IAEpE,MAAMK,YAAY,GAAG1G,QAAQ,aAARA,QAAQ,gBAAAuL,sBAAA,GAARvL,QAAQ,CAAE2G,eAAe,cAAA4E,sBAAA,uBAAzBA,sBAAA,CAA2B3E,aAAa;IAC7D,IAAIC,kBAAkB,GAAGH,YAAY,IAAI3J,MAAM,CAAC+J,IAAI,CAACJ,YAAY,CAAC,CAACK,WAAW,CAAC,CAAC;IAChF,MAAMC,UAAU,GAAGhH,QAAQ,aAARA,QAAQ,gBAAAwL,sBAAA,GAARxL,QAAQ,CAAE2G,eAAe,cAAA6E,sBAAA,uBAAzBA,sBAAA,CAA2BvE,WAAW;IACzD,IAAIC,gBAAgB,GAAGF,UAAU,IAAIjK,MAAM,CAAC+J,IAAI,CAACE,UAAU,CAAC,CAACD,WAAW,CAAC,CAAC;IAE1E,IAAInI,gCAAgC,EAAE;MACpCiI,kBAAkB,GAAGH,YAAY,IAAI3J,MAAM,CAAC8J,kBAAkB,CAAC,CAACM,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAACJ,WAAW,CAAC,CAAC;MAC3FG,gBAAgB,GAAGF,UAAU,IAAIjK,MAAM,CAACmK,gBAAgB,CAAC,CAACE,QAAQ,CAAC,CAAC,EAAE,KAAK,CAAC,CAACL,WAAW,CAAC,CAAC;IAC5F;IAEA,MAAMM,eAAe,GAAGrH,QAAQ,CAAC2G,eAAe,CAACW,gBAAgB;IAEjE,MAAMG,oBAAoB,GAAG;MAC3BnJ,MAAM,EAAEA,MAAM,CAACmC,EAAE;MACjBtC,KAAK,EAAE,QAAQ;MACfuJ,eAAe,EAAEb,kBAAkB;MACnCc,aAAa,EAAET,gBAAgB;MAC/B,oBAAoB,EAAEf,kBAAkB,CAACyB,YAAY,CAACnH,EAAE;MACxDoH,IAAI,EAAE;IACR,CAAC;IAED,MAAMC,kBAAkB,GAAG,MAAMvK,OAAO,CAACwK,KAAK,CAAC,WAAW,EAAEN,oBAAoB,CAAC;IACjF,MAAMO,UAAU,GAAGF,kBAAkB,aAAlBA,kBAAkB,gBAAA2D,sBAAA,GAAlB3D,kBAAkB,CAAEnI,IAAI,cAAA8L,sBAAA,uBAAxBA,sBAAA,CAA0B9L,IAAI;IAEjD,MAAMJ,0BAA0B,CAACS,QAAQ,CAAC8D,IAAI,CAACC,qBAAqB,CAACtD,EAAE,EAAAwE,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACjEyG,OAAO,CAAC3I,KAAK,GAAG,CAAC,CAAC,GAAG;MAAE5E,KAAK,EAAE;IAAY,CAAC;MAC/C8J,mBAAmB,EAAEpB,kBAAkB;MACvCqB,iBAAiB,EAAEhB;IAAgB,GAEjClK,QAAQ,CAACmL,iBAAiB,CAAChC,kBAAkB,CAACiC,YAAY,CAAC,GAC3D;MAAEC,eAAe,EAAEhB;IAAgB,CAAC,GAAG;MAAEiB,qBAAqB,EAAEC,QAAQ,CAAClB,eAAe;IAAE,CAAC;MAE7FmB,SAAS,EAAEpK,eAAe,CAACqC,EAAE;MAC7BgI,SAAS,EAAET,UAAU,CAAC,CAAC,CAAC,CAACvH,EAAE;MAC3BnC,MAAM,EAAEA,MAAM,CAACmC;IAAE,EAClB,CAAC;EACJ,CAAC;EAED,MAAMwD,mBAAmB,GAAG,MAAAA,CAAOjE,QAAQ,EAAE+C,KAAK,KAAK;IACrD,IAAI;MACF,MAAMpB,QAAQ,GAAG,CACfrC,UAAU,CAACU,QAAQ,CAAC8D,IAAI,CAACrD,EAAE,EAAE;QAC3ByE,WAAW,EAAElF,QAAQ,CAACkF;MACxB,CAAC,CAAC,CACH;MAED,MAAM0G,cAAc,GAAGhP,GAAG,CAACoD,QAAQ,EAAE,yDAAyD,EAAE,KAAK,CAAC;MAEtG,IAAG,CAAC+C,KAAK,EAAE;QACT,IAAI8I,QAAQ;QACZ,IAAI3O,aAAa,CAAC8C,QAAQ,CAAC,EAAE;UAC3B6L,QAAQ,GAAG,cAAc;QAC3B,CAAC,MAAM,IAAID,cAAc,EAAE;UACzBC,QAAQ,GAAG,uBAAuB;QACpC,CAAC,MAAM;UACLA,QAAQ,GAAG,MAAM;QACnB;QACAlK,QAAQ,CAACQ,IAAI,CAAC9C,cAAc,CAACW,QAAQ,CAACS,EAAE,EAAE;UACxCtC,KAAK,EAAE0N;QACT,CAAC,CAAC,CAAC;MACL;MAEA,IAAGD,cAAc,EAAE;QACjBjK,QAAQ,CAACQ,IAAI,CAACmJ,iCAAiC,CAACtL,QAAQ,EAAE;UAAE+C;QAAM,CAAC,CAAC,CAAC;MACvE;MAEA,MAAMR,SAAS,GAAG,MAAMvB,OAAO,CAACC,GAAG,CACjCU,QACF,CAAC;MAED,OAAO;QACLpD,SAAS,EAAEwE,KAAK,GAAG,EAAE,GAAG,CAACR,SAAS,CAAC,CAAC,CAAC,CAAC5C,IAAI,CAACA,IAAI,CAAC;QAChD8B,KAAK,EAAE,CAACc,SAAS,CAAC,CAAC,CAAC,CAAC5C,IAAI,CAACA,IAAI;MAChC,CAAC;IACH,CAAC,CAAC,OAAOgD,GAAG,EAAE;MACZrF,SAAS,CAACsF,MAAM,CAACnD,KAAK,CAAC,mCAAmC,CAAC;MAC3D,MAAMkD,GAAG;IACX;EACF,CAAC;EAED,OAAO,kBAAmD;IAAA,IAA5C;MAAEI,KAAK,GAAG,KAAK;MAAErB;IAAgB,CAAC,GAAAiK,SAAA,CAAArI,MAAA,QAAAqI,SAAA,QAAA9H,SAAA,GAAA8H,SAAA,MAAG,CAAC,CAAC;IACnD,IAAIjM,QAAQ,GAAG;MACbwD,kBAAkB,EAAE;IACtB,CAAC;IAEDxD,QAAQ,GAAG,MAAMmD,eAAe,CAAC;MAAEtE,SAAS;MAAED,MAAM;MAAEyE;IAAM,CAAC,CAAC;IAE9D,IAAI1E,aAAa,IAAIqD,eAAe,EAAE;MACpC,MAAMH,iBAAiB,CAAC;QAAEE,KAAK,EAAE/B,QAAQ,CAAC+B,KAAK;QAAEC;MAAgB,CAAC,CAAC;IACrE;IAEA,OAAO;MACLD,KAAK,EAAE/B,QAAQ,CAAC+B,KAAK;MACrBlD,SAAS,EAAEmB,QAAQ,CAACnB,SAAS;MAC7B0E,cAAc,EAAEvD,QAAQ,CAACuD,cAAc;MACvCC,kBAAkB,EAAExD,QAAQ,CAACwD;IAC/B,CAAC;EACH,CAAC;AACH;AAAC","ignoreList":[]}
|
|
@@ -16,7 +16,7 @@ export default function useForwardReferral() {
|
|
|
16
16
|
} = useAppCreateReferralContext();
|
|
17
17
|
const hasMultipleReferrals = () => referrals.length > 1;
|
|
18
18
|
const buildCase = _ref => {
|
|
19
|
-
var _referralToForward$
|
|
19
|
+
var _referralToForward$pr;
|
|
20
20
|
let {
|
|
21
21
|
referralToForward,
|
|
22
22
|
isOON
|
|
@@ -25,8 +25,8 @@ export default function useForwardReferral() {
|
|
|
25
25
|
id: caseId,
|
|
26
26
|
service_type_id: referralToForward.service.id,
|
|
27
27
|
description: referralToForward.description
|
|
28
|
-
}, (referralToForward === null || referralToForward === void 0
|
|
29
|
-
|
|
28
|
+
}, (referralToForward === null || referralToForward === void 0 ? void 0 : referralToForward.client_need) && {
|
|
29
|
+
client_need: referralToForward.client_need
|
|
30
30
|
}), isOON && {
|
|
31
31
|
primary_worker_id: referralToForward === null || referralToForward === void 0 || (_referralToForward$pr = referralToForward.primaryWorker) === null || _referralToForward$pr === void 0 ? void 0 : _referralToForward$pr.id,
|
|
32
32
|
opened_date: referralToForward === null || referralToForward === void 0 ? void 0 : referralToForward.opened_date
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useForwardReferral.js","names":["coreApi","useAppCreateReferralContext","referralIsOON","isUnlistedProgram","sendReferrals","useForwardReferral","state","referrals","referralId","caseId","currentProvider","hasMultipleReferrals","length","buildCase","_ref","_referralToForward$
|
|
1
|
+
{"version":3,"file":"useForwardReferral.js","names":["coreApi","useAppCreateReferralContext","referralIsOON","isUnlistedProgram","sendReferrals","useForwardReferral","state","referrals","referralId","caseId","currentProvider","hasMultipleReferrals","length","buildCase","_ref","_referralToForward$pr","referralToForward","isOON","_objectSpread","id","service_type_id","service","description","client_need","primary_worker_id","primaryWorker","opened_date","buildReferral","_ref2","_program$provider","_referralToForward$ne","lastReferralData","isGroupedReferral","program","programs","providerId","programId","groupId","provider","referredNetwork","network","baseReferral","case_id","referred_by_network_id","sending_network","referred_by_group_id","includes","receiving_provider","is_grouped","referred_to_network_id","out_of_network_providers","provider_id","program_id","provider_type","custom_name","name","referred_to_groups","group_id","forwardReferral","_ref3","_referralToForward$ne2","data","caseReferralsData","query","case","find","referral","newReferrals","map","kase","oldReferral","old_receiving_network","receiving_network","new_receiving_network","_ref4","response"],"sources":["../../src/hooks/useForwardReferral.js"],"sourcesContent":["import { coreApi } from '../api/config';\nimport { useAppCreateReferralContext } from '../context/AppCreateReferralProvider';\nimport { referralIsOON, isUnlistedProgram } from '../pages/builder/utils';\nimport sendReferrals from './sendReferral';\n\nexport default function useForwardReferral() {\n const {\n state: {\n referrals,\n referralId,\n caseId,\n currentProvider,\n }\n } = useAppCreateReferralContext();\n\n const hasMultipleReferrals = () => referrals.length > 1;\n\n const buildCase = ({ referralToForward, isOON }) => {\n return {\n id: caseId,\n service_type_id: referralToForward.service.id,\n description: referralToForward.description,\n ...(referralToForward?.client_need && { client_need: referralToForward.client_need }),\n ...(isOON && {\n primary_worker_id: referralToForward?.primaryWorker?.id,\n opened_date: referralToForward?.opened_date,\n })\n };\n };\n\n const buildReferral = ({ lastReferralData, referralToForward, isGroupedReferral, isOON }) => {\n const program = referralToForward.programs[0];\n const providerId = currentProvider.id;\n const programId = program?.id;\n const groupId = program?.provider?.id;\n const referredNetwork = referralToForward?.network?.id;\n\n const baseReferral = {\n id: lastReferralData.id,\n case_id: caseId,\n referred_by_network_id: lastReferralData.sending_network.id,\n referred_by_group_id: [\"recalled\", \"declined\"].includes(lastReferralData.state)\n ? providerId\n : lastReferralData.receiving_provider.id,\n state: lastReferralData.state || \"\",\n is_grouped: isGroupedReferral,\n ...( referredNetwork && { referred_to_network_id: referredNetwork }),\n };\n\n if (isOON) {\n return {\n ...baseReferral,\n out_of_network_providers: [{\n provider_id: groupId || null,\n ...(programId && { program_id: programId }),\n provider_type: isUnlistedProgram(program) ? \"CUSTOM\" : \"\",\n custom_name: program?.name || null,\n }],\n };\n } else {\n return {\n ...baseReferral,\n referred_to_groups: [{ group_id: groupId, program_id: programId }],\n };\n }\n };\n\n const forwardReferral = async ({ caseId, referralToForward }) => {\n const { data: { data: caseReferralsData } } = await coreApi.query('referral', { case: caseId });\n const lastReferralData = caseReferralsData.find((referral) => referral.id === referralId);\n const isOON = referralIsOON(hasMultipleReferrals() ? referralToForward : referrals[referrals.length - 1]);\n const isGroupedReferral = referralToForward.programs.length > 1;\n\n const newReferrals = referralToForward.programs.map(program => {\n return buildReferral({\n lastReferralData,\n referralToForward: { ...referralToForward, programs: [program] },\n isGroupedReferral,\n isOON\n });\n });\n\n const kase = buildCase({ referralToForward, isOON });\n return await sendReferrals({\n oldReferral: lastReferralData,\n isOON, newReferrals,\n kase,\n old_receiving_network: lastReferralData.receiving_network.id,\n new_receiving_network: referralToForward?.network?.id,\n });\n };\n\n return async ({ caseId, referralToForward }) => {\n let response = await forwardReferral({ caseId, referralToForward });\n return response;\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -17,7 +17,7 @@ import NoReferralsDisplay from './NoReferralsDisplay';
|
|
|
17
17
|
import { removeReferralProgram } from '../../actions/Referral/removeReferralProgram';
|
|
18
18
|
import Spinner from '../../components/spinners/Spinner';
|
|
19
19
|
import useCreateReferrals from '../../hooks/useCreateReferrals';
|
|
20
|
-
import { CALLBACKS } from '../../api/config';
|
|
20
|
+
import { CALLBACKS, coreApi } from '../../api/config';
|
|
21
21
|
import fetchContactDocuments from '../../actions/Document/Contact/Group/fetchContactDocuments';
|
|
22
22
|
import fetchCaseDocuments from '../../actions/Document/Contact/Group/fetchCaseDocuments';
|
|
23
23
|
import classNames from 'classnames';
|
|
@@ -74,6 +74,7 @@ export default function ReferralBuilder() {
|
|
|
74
74
|
const [loadedDocuments, setloadedDocuments] = useState(false);
|
|
75
75
|
const isEmrSource = source === 'emr';
|
|
76
76
|
const [networksUnlistedProgram, setNetworksUnlistedProgram] = useState([]);
|
|
77
|
+
const [caseData, setCaseData] = useState(null);
|
|
77
78
|
const hasDraftReferral = (draftState === null || draftState === void 0 ? void 0 : draftState.state) === 'draft';
|
|
78
79
|
const referralBuilderTitle = hasDraftReferral ? 'Edit Your Referrals' : 'Prepare Your Referrals';
|
|
79
80
|
const isWindowsSizeLarge = width > (isEmrSource ? 800 : 1200);
|
|
@@ -210,6 +211,23 @@ export default function ReferralBuilder() {
|
|
|
210
211
|
});
|
|
211
212
|
}
|
|
212
213
|
}, []);
|
|
214
|
+
useEffect(() => {
|
|
215
|
+
const fetchCaseData = async () => {
|
|
216
|
+
if (caseId) {
|
|
217
|
+
try {
|
|
218
|
+
const {
|
|
219
|
+
data: {
|
|
220
|
+
data: caseData
|
|
221
|
+
}
|
|
222
|
+
} = await coreApi.findRecord('case', caseId);
|
|
223
|
+
setCaseData(caseData);
|
|
224
|
+
} catch (error) {
|
|
225
|
+
console.error('Error fetching case data:', error);
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
};
|
|
229
|
+
fetchCaseData();
|
|
230
|
+
}, [caseId]);
|
|
213
231
|
useEffect(() => {
|
|
214
232
|
if (!isEmpty(referrals) && !loadedDocuments && (!isEmpty(documents) || !isEmpty(caseDocuments))) {
|
|
215
233
|
const updatedReferrals = referrals.map(referral => {
|
|
@@ -576,7 +594,8 @@ export default function ReferralBuilder() {
|
|
|
576
594
|
setReferralErrors: setReferralErrors,
|
|
577
595
|
referralDescription: referralDescription,
|
|
578
596
|
expandReferralsCard: expandReferralsCard,
|
|
579
|
-
person: person
|
|
597
|
+
person: person,
|
|
598
|
+
caseData: caseData
|
|
580
599
|
}) : null]
|
|
581
600
|
})]
|
|
582
601
|
}) : /*#__PURE__*/_jsx(NoReferralsDisplay, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReferralBuilder.js","names":["React","useEffect","useState","useRef","useCallback","isEqual","isEmpty","get","some","values","intersectionBy","compact","useNavigate","useLocation","Button","Icon","setData","useAppCreateReferralContext","StepHeader","ReferralCard","ReferralBuilderForm","isUnlistedProgram","getReferralSubtitle","initializeReferralErrors","generateErrorMessage","hasOffPlatformReferrals","isEmptyErrors","removeErrorByIndex","updatedReferralsBySelectedServices","useBuildReferrals","CreateReferralContainer","NavButtons","NoReferralsDisplay","removeReferralProgram","Spinner","useCreateReferrals","CALLBACKS","fetchContactDocuments","fetchCaseDocuments","classNames","fetchNetworks","useFeatureFlag","ChooseOneServiceTypeModal","REFERRAL_BUILDER_DESCRIPTION","handleKeyDown","AboutGroupedReferralsModal","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ReferralBuilder","_location$state$selec","_location$state","location","navigate","dispatch","state","referrals","selectedPrograms","currentEmployee","currentProvider","fieldsConfig","source","person","draftState","referralDescription","caseId","referralId","referralType","form","ChooseOneServiceTypeModalRef","openChooseOneServiceTypeModal","current","openDialog","closeChooseOneServiceTypeModal","closeDialog","hint542SupersetUnlistedPrograms","crtb854ForwardingSuperset","showClientNeeds","servicesState","setServicesState","aboutGroupedReferralsModalIsOpen","setAboutGroupedReferralsModalIsOpen","isOpenChooseOneServiceTypeModal","setChooseOneServiceTypeModalIsOpen","selectedIndex","setSelectedIndex","selectedReferral","fieldErrors","setFieldErrors","nextClicked","setNextClicked","saveDraftClicked","setSaveDraftClicked","expandReferralsCard","setExpandReferralsCard","width","setWidth","window","innerWidth","documents","setDocuments","caseDocuments","setCaseDocuments","loadedDocuments","setloadedDocuments","isEmrSource","networksUnlistedProgram","setNetworksUnlistedProgram","hasDraftReferral","referralBuilderTitle","isWindowsSizeLarge","isForwardReferralPath","errors","Object","keys","reduce","acc","index","fieldError","service","network","primary_worker","description","amount_requested","amount_exceeded","service_end","invalid_insurance_auth_dates","passthrough_dates","opened_date","icd10_code","client_need","setReferralErrors","referralIndex","newErrors","prevFieldErrors","currentErrors","updatedErrors","_objectSpread","onReferralsBuilt","groupedReferrals","initErrors","forEach","_referral","isLoading","handleServiceSelectionChange","programId","serviceId","prevState","map","selected","findServiceName","_ref","_referralThatHasTheSe","serviceToFind","referralThatHasTheService","find","referral","_referral$service","id","name","mapProgramsToServicesState","flatMap","program","services","serviceName","length","initialState","hasUnlistedPrograms","then","networks","handleResize","addEventListener","removeEventListener","handleExpandReferralsCard","changeWidthReferralCard","onLearnMoreClick","onCloseGroupedReferralsModal","refModal","openModal","closeModal","onReferralCardClick","result","updatedReferrals","attachableDocuments","doc","attached","document","hasMoreThanOneServiceType","_program$services","getSelected","saveValuesOnChange","props","setTimeout","firstIndexWithErrors","entries","findIndex","_ref2","_index","Boolean","focusErrors","setFocus","onNextClick","concat","errorFieldMap","key","fieldName","getElement","getElementById","_document$getElementB","parentElement","_document$getElementB2","_document$getElementB3","errorObj","_form$current","mutators","setFieldTouched","element","focus","moveToExistingReferral","programs","filter","p","newIndex","moveToNewReferral","newReferral","newReferrals","removeProgram","programName","newReferralPrograms","r","newSelectedPrograms","updateAttachments","attachments","navigateBack","onNavigateBack","navigateToAddResources","onNavigateToAddResources","createReferrals","handleSaveDraftReferral","draft","onSaveDraftReferral","notify","success","showMargin","center","referralSubtitle","unselectedReferralIndexes","allPrograms","errorMessage","currentReferral","xlOrLgInvisibleChevron","xlOrLgSpaceReferralDiv","onConfirmApplyChanges","filteredSelectedServices","filteredNonSelectedServices","onDeselectProgram","children","className","header","type","onClick","onKeyDown","event","label","link","ref","onClose","modalRef","onConfirm","onServiceSelectionChange","onBackClick","onForwardClick","primaryLabel","hideForwardButtons","hideSaveDraftLink","icon","color","direction","ariaLabel","onChange","unselected","onSetForm","newForm"],"sources":["../../../src/pages/builder/ReferralBuilder.js"],"sourcesContent":["import React, { useEffect, useState, useRef, useCallback } from 'react';\nimport { isEqual, isEmpty, get, some, values, intersectionBy, compact } from 'lodash';\nimport { useNavigate, useLocation } from 'react-router-dom';\nimport { Button, Icon } from '@unite-us/app-components';\nimport { setData, useAppCreateReferralContext } from '../../context/AppCreateReferralProvider';\nimport StepHeader from '../../components/StepHeader';\nimport ReferralCard from './ReferralCard';\nimport ReferralBuilderForm from './ReferralBuilderForm';\nimport { isUnlistedProgram, getReferralSubtitle, initializeReferralErrors, generateErrorMessage, hasOffPlatformReferrals, isEmptyErrors, removeErrorByIndex, updatedReferralsBySelectedServices } from './utils';\nimport useBuildReferrals from './useBuildReferrals';\nimport CreateReferralContainer from '../../components/CreateReferralContainer';\nimport NavButtons from '../../components/NavButtons';\nimport NoReferralsDisplay from './NoReferralsDisplay';\nimport { removeReferralProgram } from '../../actions/Referral/removeReferralProgram';\nimport Spinner from '../../components/spinners/Spinner';\nimport useCreateReferrals from '../../hooks/useCreateReferrals';\nimport { CALLBACKS } from '../../api/config';\nimport fetchContactDocuments from '../../actions/Document/Contact/Group/fetchContactDocuments';\nimport fetchCaseDocuments from '../../actions/Document/Contact/Group/fetchCaseDocuments';\nimport classNames from 'classnames';\nimport fetchNetworks from '../../actions/Referral/fetchNetworks';\nimport { useFeatureFlag } from '../../utils/useFeatureFlag';\nimport ChooseOneServiceTypeModal from './ChooseOneServiceTypeModal';\nimport {\n REFERRAL_BUILDER_DESCRIPTION,\n} from './constants';\nimport { handleKeyDown } from '../../common/utils/utils';\nimport AboutGroupedReferralsModal from './AboutGroupedReferralsModal';\n\nexport default function ReferralBuilder() {\n const location = useLocation();\n const navigate = useNavigate();\n const {\n dispatch,\n state: {\n referrals,\n selectedPrograms,\n currentEmployee,\n currentProvider,\n fieldsConfig,\n source,\n person,\n draftState,\n referralDescription,\n caseId,\n referralId,\n referralType,\n },\n } = useAppCreateReferralContext();\n const form = useRef();\n const ChooseOneServiceTypeModalRef = useRef();\n\n const openChooseOneServiceTypeModal = useCallback(() => {\n ChooseOneServiceTypeModalRef.current.openDialog();\n }, []);\n\n const closeChooseOneServiceTypeModal = useCallback(() => {\n ChooseOneServiceTypeModalRef.current.closeDialog();\n }, []);\n\n const hint542SupersetUnlistedPrograms = useFeatureFlag('hint542SupersetUnlistedPrograms', false);\n const crtb854ForwardingSuperset = useFeatureFlag('crtb854ForwardingSuperset', false);\n const showClientNeeds = useFeatureFlag('crtb2130MultipleClientNeeds', false);\n\n const [servicesState, setServicesState] = useState([]);\n const [aboutGroupedReferralsModalIsOpen, setAboutGroupedReferralsModalIsOpen] = useState(false);\n const [isOpenChooseOneServiceTypeModal, setChooseOneServiceTypeModalIsOpen] = useState(false);\n const [selectedIndex, setSelectedIndex] = useState(location.state?.selectedReferral ?? 0);\n const [fieldErrors, setFieldErrors] = useState({})\n const [nextClicked, setNextClicked] = useState(false);\n const [saveDraftClicked, setSaveDraftClicked] = useState(false);\n const [expandReferralsCard, setExpandReferralsCard] = useState(false);\n const [width, setWidth] = useState(window.innerWidth);\n const [documents, setDocuments] = useState([]);\n const [caseDocuments, setCaseDocuments] = useState([]);\n const [loadedDocuments, setloadedDocuments] = useState(false);\n const isEmrSource = source === 'emr';\n const [networksUnlistedProgram, setNetworksUnlistedProgram] = useState([]);\n const hasDraftReferral = draftState?.state === 'draft';\n const referralBuilderTitle = hasDraftReferral ? 'Edit Your Referrals' : 'Prepare Your Referrals';\n const isWindowsSizeLarge = width > (isEmrSource ? 800 : 1200);\n const isForwardReferralPath = !!referralId && !!referralType;\n\n const errors = Object.keys(fieldErrors).reduce((acc, index) => {\n const fieldError = fieldErrors[index];\n acc[index] = {\n service: fieldError?.service,\n network: fieldError?.network,\n primary_worker: fieldError?.primary_worker,\n description: fieldError?.description,\n amount_requested: fieldError?.amount_requested || fieldError?.amount_exceeded,\n service_end: fieldError?.service_end || fieldError?.invalid_insurance_auth_dates,\n passthrough_dates: fieldError?.passthrough_dates,\n opened_date: fieldError?.opened_date,\n icd10_code: fieldError?.icd10_code,\n client_need: fieldError?.client_need,\n }\n return acc;\n }, {});\n const setReferralErrors = (referralIndex, newErrors) => {\n setFieldErrors((prevFieldErrors) => {\n const currentErrors = prevFieldErrors[referralIndex];\n const updatedErrors = { ...currentErrors, ...newErrors };\n \n if (isEqual(updatedErrors, currentErrors)) {\n return prevFieldErrors;\n }\n \n return {\n ...prevFieldErrors,\n [referralIndex]: updatedErrors,\n };\n });\n };\n\n const onReferralsBuilt = (groupedReferrals) => {\n if(!isEmpty(groupedReferrals)) {\n const initErrors = initializeReferralErrors(groupedReferrals, showClientNeeds);\n groupedReferrals.forEach((_referral, index) => {\n setReferralErrors(index, initErrors[index]);\n });\n }\n };\n\n const { isLoading } = useBuildReferrals(onReferralsBuilt);\n\n const handleServiceSelectionChange = (programId, serviceId) => {\n setServicesState(prevState =>\n prevState.map(service =>\n service.programId === programId && service.serviceId === serviceId\n ? { ...service, selected: !service.selected }\n : service\n )\n );\n };\n\n const findServiceName = ({ serviceToFind }) => {\n const referralThatHasTheService = referrals?.find((referral) => referral?.service?.id === serviceToFind);\n return referralThatHasTheService?.service?.name;\n };\n\n const mapProgramsToServicesState = () => {\n return selectedPrograms?.flatMap(program =>\n program.services.map(serviceToFind => {\n const serviceName = findServiceName({ serviceToFind });\n return {\n programId: program.id,\n serviceId: serviceToFind,\n serviceName,\n selected: program.services.length === 1\n };\n })\n ) || [];\n };\n\n useEffect(() => {\n const initialState = mapProgramsToServicesState();\n setServicesState(initialState);\n }, [selectedPrograms]);\n\n useEffect(() => {\n if (!isLoading && hint542SupersetUnlistedPrograms) {\n // If the selected programs contain unlisted programs, fetch the networks from the user provider\n const hasUnlistedPrograms = selectedPrograms?.some((program) => isUnlistedProgram(program));\n if (hasUnlistedPrograms) {\n fetchNetworks(currentProvider).then((networks) => {\n setNetworksUnlistedProgram(networks);\n });\n }\n }\n }, [isLoading]);\n\n useEffect(() => {\n const handleResize = () => {\n setWidth(window.innerWidth);\n }\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, [width]);\n\n useEffect(() => {\n isWindowsSizeLarge && handleExpandReferralsCard();\n }, [width]);\n\n const handleExpandReferralsCard = () => {\n if (expandReferralsCard) {\n changeWidthReferralCard();\n }\n }\n\n const onLearnMoreClick = () => {\n setAboutGroupedReferralsModalIsOpen(true);\n };\n\n const onCloseGroupedReferralsModal = () => {\n setAboutGroupedReferralsModalIsOpen(false);\n }\n\n const refModal = useRef(null);\n useEffect(() => {\n if (aboutGroupedReferralsModalIsOpen) {\n refModal.current.openModal();\n } else {\n refModal.current.closeModal();\n }\n }, [aboutGroupedReferralsModalIsOpen]);\n\n useEffect(() => {\n if (!isLoading && isOpenChooseOneServiceTypeModal) {\n openChooseOneServiceTypeModal();\n }\n }, [isLoading]);\n\n const onReferralCardClick = (index) => {\n setSelectedIndex(index);\n }\n\n useEffect(() => {\n fetchContactDocuments(person.id).then((result) => {\n setDocuments(result);\n });\n }, []);\n\n useEffect(() => {\n if (caseId && crtb854ForwardingSuperset) {\n fetchCaseDocuments(caseId).then((result) => {\n setCaseDocuments(result);\n });\n }\n }, []);\n\n useEffect(() => {\n if (!isEmpty(referrals) && !loadedDocuments && (!isEmpty(documents) || !isEmpty(caseDocuments))) {\n const updatedReferrals = referrals.map((referral) => {\n if(!referral.attachableDocuments) {\n return {\n ...referral,\n attachableDocuments: [...documents, ...caseDocuments].map((doc) => ({ attached: false, document: doc })),\n };\n } else {\n return referral;\n }\n });\n\n dispatch(setData({\n referrals: updatedReferrals,\n }));\n\n setloadedDocuments(true);\n }\n\n const hasMoreThanOneServiceType = selectedPrograms?.some((program) => {\n return program?.services?.length > 1\n })\n setChooseOneServiceTypeModalIsOpen(hasMoreThanOneServiceType)\n }, [referrals]);\n\n const getSelected = () => referrals && referrals[selectedIndex]\n\n const saveValuesOnChange = (props) => {\n const { values } = props;\n const updatedReferrals = referrals;\n updatedReferrals[selectedIndex] = {\n ...values\n }\n\n // Testing: Avoid React Final Form error: FormSpy Cannot update a component while rendering\n // https://github.com/final-form/react-final-form/issues/809#issue-638963034\n setTimeout(() =>\n dispatch(setData({\n referrals: [...updatedReferrals]\n })), 0\n )\n }\n\n const firstIndexWithErrors = Object.entries(errors).findIndex(([_index, values]) => Object.values(values).some(Boolean));\n\n const focusErrors = () => {\n let index = selectedIndex;\n if (!some(values(errors[index]), Boolean)) {\n index = firstIndexWithErrors; \n setSelectedIndex(index);\n }\n\n setFocus(index);\n }\n\n const onNextClick = () => {\n if (isEmptyErrors(errors)) {\n return navigate(`/create/${isForwardReferralPath ? 'review' : 'supporting-info'}`);\n }\n\n focusErrors();\n setNextClicked(true);\n }\n\n const setFocus = (index) => {\n setTimeout(() => {\n const errorFieldMap = [\n { key: 'description', fieldName: 'description', getElement: () => document.getElementById(\"referral-description\") },\n { key: 'opened_date', fieldName: 'opened_date', getElement: () => document.getElementById(\"opened-date\") },\n { key: 'network', fieldName: 'network', getElement: () => document.getElementById(\"network-selection\")?.parentElement?.parentElement },\n { key: 'amount_requested', fieldName: 'paymentAuthForm.amount_requested', getElement: () => document.getElementById(\"authorization-request-amount-requested\") },\n { key: 'service_end', fieldName: 'paymentAuthForm.service_end', getElement: () => document.getElementById(\"authorization-request-service-dates\") },\n { key: 'passthrough_dates', fieldName: 'paymentAuthForm.service_end', getElement: () => document.getElementById(\"authorization-request-service-dates\") },\n { key: 'icd10_code', fieldName: 'paymentAuthForm.icd10_code', getElement: () => document.getElementById(\"authorization-request-icd10-code\") },\n { key: 'primary_worker', fieldName: 'primaryWorker', getElement: () => document.getElementById(\"primary-worker\")?.parentElement?.parentElement },\n { key: 'client_need', fieldName: 'client_need', getElement: () => document.getElementById(\"client_need\")?.parentElement?.parentElement },\n ];\n\n const errorObj = errors[index];\n for (const { key, fieldName, getElement } of errorFieldMap) {\n if (errorObj?.[key]) {\n form.current?.mutators?.setFieldTouched(fieldName, true);\n\n const element = getElement();\n if (element) element.focus();\n\n break;\n }\n }\n }, 100);\n };\n\n const moveToExistingReferral = (index, program) => {\n const { programs } = referrals[selectedIndex];\n\n referrals[selectedIndex] = {\n ...referrals[selectedIndex],\n programs: programs.filter((p) => p.id !== program.id),\n }\n if (isEmpty(referrals[selectedIndex].programs)) {\n referrals[selectedIndex] = null;\n }\n\n referrals[index] = {\n ...referrals[index],\n programs: [...referrals[index].programs, program]\n }\n\n const newErrors = removeErrorByIndex(errors, selectedIndex);\n setFieldErrors(newErrors);\n\n dispatch(setData({\n referrals: compact(referrals),\n }));\n\n const newIndex = selectedIndex < index ? index - 1 : index;\n setSelectedIndex(newIndex);\n }\n\n const moveToNewReferral = (program) => {\n const referral = referrals[selectedIndex];\n referral.programs = referral.programs.filter((p) => p.id !== program.id);\n\n const newReferral = {\n ...referral,\n programs: [program],\n description: '',\n }\n\n const newReferrals = [...referrals, newReferral];\n\n dispatch(setData({\n referrals: newReferrals,\n }));\n\n setSelectedIndex(newReferrals.length - 1);\n }\n\n const removeProgram = (programName, programId, serviceId) => {\n const referral = referrals[selectedIndex];\n const newReferral = removeReferralProgram({ referral, programName, programId, serviceId });\n\n referrals[selectedIndex] = newReferral ? {\n ...newReferral\n } : null;\n\n const newReferrals = compact(referrals);\n const newReferralPrograms = newReferrals.flatMap((r) => r.programs);\n const newSelectedPrograms = intersectionBy(selectedPrograms, newReferralPrograms, 'id');\n\n dispatch(setData({\n referrals: [...newReferrals],\n selectedPrograms: [...newSelectedPrograms],\n }));\n\n if (!referrals[selectedIndex]) {\n const newErrors = removeErrorByIndex(errors, selectedIndex);\n setFieldErrors(newErrors);\n setSelectedIndex(0);\n }\n }\n\n const updateAttachments = (attachments) => {\n referrals[selectedIndex] = {\n ...referrals[selectedIndex],\n attachments,\n };\n \n dispatch(setData({\n referrals,\n }));\n };\n\n const navigateBack = () => {\n if (CALLBACKS.onNavigateBack) {\n CALLBACKS.onNavigateBack(crtb854ForwardingSuperset ? { referralId, referralDescription } : { referralDescription });\n } else {\n navigate(-1);\n }\n }; \n const navigateToAddResources = () => CALLBACKS.onNavigateToAddResources();\n\n const createReferrals = useCreateReferrals();\n const handleSaveDraftReferral = async () => {\n setSaveDraftClicked(true);\n if (isEmptyErrors(errors)) {\n await createReferrals({ draft: true });\n const { onSaveDraftReferral } = CALLBACKS;\n onSaveDraftReferral && onSaveDraftReferral();\n CALLBACKS.notify.success('Draft referral successfully saved');\n } else {\n focusErrors();\n }\n };\n\n const changeWidthReferralCard = () => {\n setExpandReferralsCard(!expandReferralsCard);\n };\n\n const showMargin = () => {\n return isWindowsSizeLarge && !isEmrSource ? 'mr-5 ' : ' ';\n }\n\n if (isLoading) return <Spinner center />;\n\n const referralSubtitle = getReferralSubtitle(referrals, getSelected());\n const unselectedReferralIndexes = referrals.map((_referral, index) => index).filter((index) => index !== selectedIndex);\n const allPrograms = referrals?.flatMap((r) => r.programs);\n const errorMessage = generateErrorMessage(errors);\n const currentReferral = getSelected();\n\n const xlOrLgInvisibleChevron = classNames({\n 'lg:invisible': isEmrSource,\n 'xl:invisible': !isEmrSource,\n });\n\n const xlOrLgSpaceReferralDiv = classNames({\n 'lg:space-x-6': isEmrSource,\n 'lg:space-x-0 xl:space-x-6': !isEmrSource,\n });\n\n const onConfirmApplyChanges = () => {\n const filteredSelectedServices = servicesState.filter((service) => { return service.selected });\n const filteredNonSelectedServices = servicesState.filter((service) => { return !service.selected });\n const updatedReferrals = updatedReferralsBySelectedServices(referrals, filteredSelectedServices);\n\n const initErrors = initializeReferralErrors(updatedReferrals, showClientNeeds);\n setFieldErrors(initErrors);\n\n dispatch(setData({\n referrals: updatedReferrals,\n }));\n\n filteredNonSelectedServices.forEach((service) => {\n CALLBACKS.onDeselectProgram({\n id: service.programId,\n service: service.serviceId,\n });\n });\n\n closeChooseOneServiceTypeModal();\n };\n\n return (\n <CreateReferralContainer>\n <div className=\"px-12\">\n <StepHeader header={referralBuilderTitle}>\n {REFERRAL_BUILDER_DESCRIPTION}\n <br />\n <Button\n type=\"button\"\n onClick={onLearnMoreClick}\n onKeyDown={(event) => handleKeyDown(event, onLearnMoreClick)}\n aria-expanded={aboutGroupedReferralsModalIsOpen}\n label=\"Click here to learn more about referrals.\"\n link\n />\n </StepHeader>\n\n <AboutGroupedReferralsModal ref={refModal} onClose={onCloseGroupedReferralsModal} />\n\n {isOpenChooseOneServiceTypeModal && (\n <ChooseOneServiceTypeModal \n closeDialog={closeChooseOneServiceTypeModal}\n programs={selectedPrograms}\n referrals={referrals}\n modalRef={ChooseOneServiceTypeModalRef}\n findServiceName={findServiceName}\n onConfirm={onConfirmApplyChanges}\n onServiceSelectionChange={handleServiceSelectionChange}\n servicesState={servicesState}\n />\n )}\n <>\n <NavButtons\n onBackClick={navigateBack}\n onForwardClick={onNextClick}\n onSaveDraftReferral={handleSaveDraftReferral}\n primaryLabel=\"Next\"\n hideForwardButtons={isEmpty(referrals)}\n hideSaveDraftLink={get(fieldsConfig, 'hideSaveDraftLink')}\n hasOffPlatformReferrals={hasOffPlatformReferrals(referrals)}\n hasDraftReferral={hasDraftReferral}\n isForwardReferralPath={isForwardReferralPath}\n />\n\n {\n !isEmpty(allPrograms) ? (\n <div className=\"relative mx-auto responsive-max-width\">\n {\n (errorMessage && (nextClicked || saveDraftClicked)) ? (\n <div className=\"flex justify-end\">\n <Icon icon=\"InfoCircle\" color=\"red\" className=\"mr-2 mt-px\" />\n <p className=\"text-red\">{errorMessage}</p>\n </div>\n ) : null\n }\n <div className={`flex justify-end my-5 ${xlOrLgSpaceReferralDiv}`}>\n <div id=\"referrals-card\"\n className={`bg-white border border-solid border-blue-border rounded ${showMargin()}\n ${expandReferralsCard ? 'relative md:max-w-none lg:w-3/6 z-20' : 'md:w-2/6 lg:w-2/6'}`}>\n <div className=\"p-5 h-full\">\n <div className=\"flex justify-between relative\">\n <div>\n <h2 className=\"text-xl font-black mb-5\">\n Referrals\n </h2>\n </div>\n <div className={xlOrLgInvisibleChevron}>\n <Icon \n icon='ChevronArrow' \n direction={expandReferralsCard ? \"left\" : \"right\"} \n ariaLabel={expandReferralsCard ? \"Collapse sidebar\" : \"Expand Sidebar\"} \n className=\"w-6 h-6\" \n onClick={() => changeWidthReferralCard()}\n />\n </div>\n </div>\n {referrals?.map((referral, index) => (\n <div className=\"mb-5\" key={`referral-card-${index}-wrapper`}>\n <ReferralCard\n referral={referral}\n index={index}\n selectedIndex={selectedIndex}\n onClick={onReferralCardClick}\n errors={errors[index]}\n expandReferralsCard={expandReferralsCard}\n isEmrSource={isEmrSource}\n />\n </div>\n ))}\n </div>\n </div>\n {\n !isEmpty(get(currentReferral, 'programs', [])) ? (\n <ReferralBuilderForm\n currentEmployee={currentEmployee}\n currentProvider={currentProvider} \n hasDraftReferral={hasDraftReferral}\n navigateToAddResources={navigateToAddResources}\n referral={currentReferral}\n referrals={referrals}\n referralSubtitle={referralSubtitle}\n index={selectedIndex}\n onChange={saveValuesOnChange}\n unselected={unselectedReferralIndexes}\n removeProgram={removeProgram}\n onSetForm={(newForm) => { form.current = newForm; }}\n moveToNewReferral={moveToNewReferral}\n moveToExistingReferral={moveToExistingReferral}\n updateAttachments={updateAttachments}\n source={source}\n networksUnlistedProgram={networksUnlistedProgram}\n setReferralErrors={setReferralErrors}\n referralDescription={referralDescription}\n expandReferralsCard={expandReferralsCard}\n person={person}\n />\n ) : null\n }\n </div>\n </div>\n ) : (\n <NoReferralsDisplay\n hasDraftReferral={hasDraftReferral}\n navigateToAddResources={navigateToAddResources}\n onClick={navigateBack}\n />\n )\n }\n\n <NavButtons\n onBackClick={navigateBack}\n onForwardClick={onNextClick}\n onSaveDraftReferral={handleSaveDraftReferral}\n primaryLabel=\"Next\"\n hideForwardButtons={isEmpty(referrals)}\n hideSaveDraftLink={get(fieldsConfig, 'hideSaveDraftLink')}\n hasDraftReferral={hasDraftReferral}\n hasOffPlatformReferrals={hasOffPlatformReferrals(referrals)}\n isForwardReferralPath={isForwardReferralPath}\n />\n </>\n </div>\n </CreateReferralContainer>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ReferralBuilder.js","names":["React","useEffect","useState","useRef","useCallback","isEqual","isEmpty","get","some","values","intersectionBy","compact","useNavigate","useLocation","Button","Icon","setData","useAppCreateReferralContext","StepHeader","ReferralCard","ReferralBuilderForm","isUnlistedProgram","getReferralSubtitle","initializeReferralErrors","generateErrorMessage","hasOffPlatformReferrals","isEmptyErrors","removeErrorByIndex","updatedReferralsBySelectedServices","useBuildReferrals","CreateReferralContainer","NavButtons","NoReferralsDisplay","removeReferralProgram","Spinner","useCreateReferrals","CALLBACKS","coreApi","fetchContactDocuments","fetchCaseDocuments","classNames","fetchNetworks","useFeatureFlag","ChooseOneServiceTypeModal","REFERRAL_BUILDER_DESCRIPTION","handleKeyDown","AboutGroupedReferralsModal","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","ReferralBuilder","_location$state$selec","_location$state","location","navigate","dispatch","state","referrals","selectedPrograms","currentEmployee","currentProvider","fieldsConfig","source","person","draftState","referralDescription","caseId","referralId","referralType","form","ChooseOneServiceTypeModalRef","openChooseOneServiceTypeModal","current","openDialog","closeChooseOneServiceTypeModal","closeDialog","hint542SupersetUnlistedPrograms","crtb854ForwardingSuperset","showClientNeeds","servicesState","setServicesState","aboutGroupedReferralsModalIsOpen","setAboutGroupedReferralsModalIsOpen","isOpenChooseOneServiceTypeModal","setChooseOneServiceTypeModalIsOpen","selectedIndex","setSelectedIndex","selectedReferral","fieldErrors","setFieldErrors","nextClicked","setNextClicked","saveDraftClicked","setSaveDraftClicked","expandReferralsCard","setExpandReferralsCard","width","setWidth","window","innerWidth","documents","setDocuments","caseDocuments","setCaseDocuments","loadedDocuments","setloadedDocuments","isEmrSource","networksUnlistedProgram","setNetworksUnlistedProgram","caseData","setCaseData","hasDraftReferral","referralBuilderTitle","isWindowsSizeLarge","isForwardReferralPath","errors","Object","keys","reduce","acc","index","fieldError","service","network","primary_worker","description","amount_requested","amount_exceeded","service_end","invalid_insurance_auth_dates","passthrough_dates","opened_date","icd10_code","client_need","setReferralErrors","referralIndex","newErrors","prevFieldErrors","currentErrors","updatedErrors","_objectSpread","onReferralsBuilt","groupedReferrals","initErrors","forEach","_referral","isLoading","handleServiceSelectionChange","programId","serviceId","prevState","map","selected","findServiceName","_ref","_referralThatHasTheSe","serviceToFind","referralThatHasTheService","find","referral","_referral$service","id","name","mapProgramsToServicesState","flatMap","program","services","serviceName","length","initialState","hasUnlistedPrograms","then","networks","handleResize","addEventListener","removeEventListener","handleExpandReferralsCard","changeWidthReferralCard","onLearnMoreClick","onCloseGroupedReferralsModal","refModal","openModal","closeModal","onReferralCardClick","result","fetchCaseData","data","findRecord","error","console","updatedReferrals","attachableDocuments","doc","attached","document","hasMoreThanOneServiceType","_program$services","getSelected","saveValuesOnChange","props","setTimeout","firstIndexWithErrors","entries","findIndex","_ref2","_index","Boolean","focusErrors","setFocus","onNextClick","concat","errorFieldMap","key","fieldName","getElement","getElementById","_document$getElementB","parentElement","_document$getElementB2","_document$getElementB3","errorObj","_form$current","mutators","setFieldTouched","element","focus","moveToExistingReferral","programs","filter","p","newIndex","moveToNewReferral","newReferral","newReferrals","removeProgram","programName","newReferralPrograms","r","newSelectedPrograms","updateAttachments","attachments","navigateBack","onNavigateBack","navigateToAddResources","onNavigateToAddResources","createReferrals","handleSaveDraftReferral","draft","onSaveDraftReferral","notify","success","showMargin","center","referralSubtitle","unselectedReferralIndexes","allPrograms","errorMessage","currentReferral","xlOrLgInvisibleChevron","xlOrLgSpaceReferralDiv","onConfirmApplyChanges","filteredSelectedServices","filteredNonSelectedServices","onDeselectProgram","children","className","header","type","onClick","onKeyDown","event","label","link","ref","onClose","modalRef","onConfirm","onServiceSelectionChange","onBackClick","onForwardClick","primaryLabel","hideForwardButtons","hideSaveDraftLink","icon","color","direction","ariaLabel","onChange","unselected","onSetForm","newForm"],"sources":["../../../src/pages/builder/ReferralBuilder.js"],"sourcesContent":["import React, { useEffect, useState, useRef, useCallback } from 'react';\nimport { isEqual, isEmpty, get, some, values, intersectionBy, compact } from 'lodash';\nimport { useNavigate, useLocation } from 'react-router-dom';\nimport { Button, Icon } from '@unite-us/app-components';\nimport { setData, useAppCreateReferralContext } from '../../context/AppCreateReferralProvider';\nimport StepHeader from '../../components/StepHeader';\nimport ReferralCard from './ReferralCard';\nimport ReferralBuilderForm from './ReferralBuilderForm';\nimport { isUnlistedProgram, getReferralSubtitle, initializeReferralErrors, generateErrorMessage, hasOffPlatformReferrals, isEmptyErrors, removeErrorByIndex, updatedReferralsBySelectedServices } from './utils';\nimport useBuildReferrals from './useBuildReferrals';\nimport CreateReferralContainer from '../../components/CreateReferralContainer';\nimport NavButtons from '../../components/NavButtons';\nimport NoReferralsDisplay from './NoReferralsDisplay';\nimport { removeReferralProgram } from '../../actions/Referral/removeReferralProgram';\nimport Spinner from '../../components/spinners/Spinner';\nimport useCreateReferrals from '../../hooks/useCreateReferrals';\nimport { CALLBACKS, coreApi } from '../../api/config';\nimport fetchContactDocuments from '../../actions/Document/Contact/Group/fetchContactDocuments';\nimport fetchCaseDocuments from '../../actions/Document/Contact/Group/fetchCaseDocuments';\nimport classNames from 'classnames';\nimport fetchNetworks from '../../actions/Referral/fetchNetworks';\nimport { useFeatureFlag } from '../../utils/useFeatureFlag';\nimport ChooseOneServiceTypeModal from './ChooseOneServiceTypeModal';\nimport {\n REFERRAL_BUILDER_DESCRIPTION,\n} from './constants';\nimport { handleKeyDown } from '../../common/utils/utils';\nimport AboutGroupedReferralsModal from './AboutGroupedReferralsModal';\n\nexport default function ReferralBuilder() {\n const location = useLocation();\n const navigate = useNavigate();\n const {\n dispatch,\n state: {\n referrals,\n selectedPrograms,\n currentEmployee,\n currentProvider,\n fieldsConfig,\n source,\n person,\n draftState,\n referralDescription,\n caseId,\n referralId,\n referralType,\n },\n } = useAppCreateReferralContext();\n const form = useRef();\n const ChooseOneServiceTypeModalRef = useRef();\n\n const openChooseOneServiceTypeModal = useCallback(() => {\n ChooseOneServiceTypeModalRef.current.openDialog();\n }, []);\n\n const closeChooseOneServiceTypeModal = useCallback(() => {\n ChooseOneServiceTypeModalRef.current.closeDialog();\n }, []);\n\n const hint542SupersetUnlistedPrograms = useFeatureFlag('hint542SupersetUnlistedPrograms', false);\n const crtb854ForwardingSuperset = useFeatureFlag('crtb854ForwardingSuperset', false);\n const showClientNeeds = useFeatureFlag('crtb2130MultipleClientNeeds', false);\n\n const [servicesState, setServicesState] = useState([]);\n const [aboutGroupedReferralsModalIsOpen, setAboutGroupedReferralsModalIsOpen] = useState(false);\n const [isOpenChooseOneServiceTypeModal, setChooseOneServiceTypeModalIsOpen] = useState(false);\n const [selectedIndex, setSelectedIndex] = useState(location.state?.selectedReferral ?? 0);\n const [fieldErrors, setFieldErrors] = useState({})\n const [nextClicked, setNextClicked] = useState(false);\n const [saveDraftClicked, setSaveDraftClicked] = useState(false);\n const [expandReferralsCard, setExpandReferralsCard] = useState(false);\n const [width, setWidth] = useState(window.innerWidth);\n const [documents, setDocuments] = useState([]);\n const [caseDocuments, setCaseDocuments] = useState([]);\n const [loadedDocuments, setloadedDocuments] = useState(false);\n const isEmrSource = source === 'emr';\n const [networksUnlistedProgram, setNetworksUnlistedProgram] = useState([]);\n const [caseData, setCaseData] = useState(null);\n const hasDraftReferral = draftState?.state === 'draft';\n const referralBuilderTitle = hasDraftReferral ? 'Edit Your Referrals' : 'Prepare Your Referrals';\n const isWindowsSizeLarge = width > (isEmrSource ? 800 : 1200);\n const isForwardReferralPath = !!referralId && !!referralType;\n\n const errors = Object.keys(fieldErrors).reduce((acc, index) => {\n const fieldError = fieldErrors[index];\n acc[index] = {\n service: fieldError?.service,\n network: fieldError?.network,\n primary_worker: fieldError?.primary_worker,\n description: fieldError?.description,\n amount_requested: fieldError?.amount_requested || fieldError?.amount_exceeded,\n service_end: fieldError?.service_end || fieldError?.invalid_insurance_auth_dates,\n passthrough_dates: fieldError?.passthrough_dates,\n opened_date: fieldError?.opened_date,\n icd10_code: fieldError?.icd10_code,\n client_need: fieldError?.client_need,\n }\n return acc;\n }, {});\n const setReferralErrors = (referralIndex, newErrors) => {\n setFieldErrors((prevFieldErrors) => {\n const currentErrors = prevFieldErrors[referralIndex];\n const updatedErrors = { ...currentErrors, ...newErrors };\n \n if (isEqual(updatedErrors, currentErrors)) {\n return prevFieldErrors;\n }\n \n return {\n ...prevFieldErrors,\n [referralIndex]: updatedErrors,\n };\n });\n };\n\n const onReferralsBuilt = (groupedReferrals) => {\n if(!isEmpty(groupedReferrals)) {\n const initErrors = initializeReferralErrors(groupedReferrals, showClientNeeds);\n groupedReferrals.forEach((_referral, index) => {\n setReferralErrors(index, initErrors[index]);\n });\n }\n };\n\n const { isLoading } = useBuildReferrals(onReferralsBuilt);\n\n const handleServiceSelectionChange = (programId, serviceId) => {\n setServicesState(prevState =>\n prevState.map(service =>\n service.programId === programId && service.serviceId === serviceId\n ? { ...service, selected: !service.selected }\n : service\n )\n );\n };\n\n const findServiceName = ({ serviceToFind }) => {\n const referralThatHasTheService = referrals?.find((referral) => referral?.service?.id === serviceToFind);\n return referralThatHasTheService?.service?.name;\n };\n\n const mapProgramsToServicesState = () => {\n return selectedPrograms?.flatMap(program =>\n program.services.map(serviceToFind => {\n const serviceName = findServiceName({ serviceToFind });\n return {\n programId: program.id,\n serviceId: serviceToFind,\n serviceName,\n selected: program.services.length === 1\n };\n })\n ) || [];\n };\n\n useEffect(() => {\n const initialState = mapProgramsToServicesState();\n setServicesState(initialState);\n }, [selectedPrograms]);\n\n useEffect(() => {\n if (!isLoading && hint542SupersetUnlistedPrograms) {\n // If the selected programs contain unlisted programs, fetch the networks from the user provider\n const hasUnlistedPrograms = selectedPrograms?.some((program) => isUnlistedProgram(program));\n if (hasUnlistedPrograms) {\n fetchNetworks(currentProvider).then((networks) => {\n setNetworksUnlistedProgram(networks);\n });\n }\n }\n }, [isLoading]);\n\n useEffect(() => {\n const handleResize = () => {\n setWidth(window.innerWidth);\n }\n window.addEventListener(\"resize\", handleResize);\n return () => window.removeEventListener(\"resize\", handleResize);\n }, [width]);\n\n useEffect(() => {\n isWindowsSizeLarge && handleExpandReferralsCard();\n }, [width]);\n\n const handleExpandReferralsCard = () => {\n if (expandReferralsCard) {\n changeWidthReferralCard();\n }\n }\n\n const onLearnMoreClick = () => {\n setAboutGroupedReferralsModalIsOpen(true);\n };\n\n const onCloseGroupedReferralsModal = () => {\n setAboutGroupedReferralsModalIsOpen(false);\n }\n\n const refModal = useRef(null);\n useEffect(() => {\n if (aboutGroupedReferralsModalIsOpen) {\n refModal.current.openModal();\n } else {\n refModal.current.closeModal();\n }\n }, [aboutGroupedReferralsModalIsOpen]);\n\n useEffect(() => {\n if (!isLoading && isOpenChooseOneServiceTypeModal) {\n openChooseOneServiceTypeModal();\n }\n }, [isLoading]);\n\n const onReferralCardClick = (index) => {\n setSelectedIndex(index);\n }\n\n useEffect(() => {\n fetchContactDocuments(person.id).then((result) => {\n setDocuments(result);\n });\n }, []);\n\n useEffect(() => {\n if (caseId && crtb854ForwardingSuperset) {\n fetchCaseDocuments(caseId).then((result) => {\n setCaseDocuments(result);\n });\n }\n }, []);\n\n useEffect(() => {\n const fetchCaseData = async () => {\n if (caseId) {\n try {\n const { data: { data: caseData } } = await coreApi.findRecord('case', caseId);\n setCaseData(caseData);\n } catch (error) {\n console.error('Error fetching case data:', error);\n }\n }\n };\n fetchCaseData();\n }, [caseId]);\n\n useEffect(() => {\n if (!isEmpty(referrals) && !loadedDocuments && (!isEmpty(documents) || !isEmpty(caseDocuments))) {\n const updatedReferrals = referrals.map((referral) => {\n if(!referral.attachableDocuments) {\n return {\n ...referral,\n attachableDocuments: [...documents, ...caseDocuments].map((doc) => ({ attached: false, document: doc })),\n };\n } else {\n return referral;\n }\n });\n\n dispatch(setData({\n referrals: updatedReferrals,\n }));\n\n setloadedDocuments(true);\n }\n\n const hasMoreThanOneServiceType = selectedPrograms?.some((program) => {\n return program?.services?.length > 1\n })\n setChooseOneServiceTypeModalIsOpen(hasMoreThanOneServiceType)\n }, [referrals]);\n\n const getSelected = () => referrals && referrals[selectedIndex]\n\n const saveValuesOnChange = (props) => {\n const { values } = props;\n const updatedReferrals = referrals;\n updatedReferrals[selectedIndex] = {\n ...values\n }\n\n // Testing: Avoid React Final Form error: FormSpy Cannot update a component while rendering\n // https://github.com/final-form/react-final-form/issues/809#issue-638963034\n setTimeout(() =>\n dispatch(setData({\n referrals: [...updatedReferrals]\n })), 0\n )\n }\n\n const firstIndexWithErrors = Object.entries(errors).findIndex(([_index, values]) => Object.values(values).some(Boolean));\n\n const focusErrors = () => {\n let index = selectedIndex;\n if (!some(values(errors[index]), Boolean)) {\n index = firstIndexWithErrors; \n setSelectedIndex(index);\n }\n\n setFocus(index);\n }\n\n const onNextClick = () => {\n if (isEmptyErrors(errors)) {\n return navigate(`/create/${isForwardReferralPath ? 'review' : 'supporting-info'}`);\n }\n\n focusErrors();\n setNextClicked(true);\n }\n\n const setFocus = (index) => {\n setTimeout(() => {\n const errorFieldMap = [\n { key: 'description', fieldName: 'description', getElement: () => document.getElementById(\"referral-description\") },\n { key: 'opened_date', fieldName: 'opened_date', getElement: () => document.getElementById(\"opened-date\") },\n { key: 'network', fieldName: 'network', getElement: () => document.getElementById(\"network-selection\")?.parentElement?.parentElement },\n { key: 'amount_requested', fieldName: 'paymentAuthForm.amount_requested', getElement: () => document.getElementById(\"authorization-request-amount-requested\") },\n { key: 'service_end', fieldName: 'paymentAuthForm.service_end', getElement: () => document.getElementById(\"authorization-request-service-dates\") },\n { key: 'passthrough_dates', fieldName: 'paymentAuthForm.service_end', getElement: () => document.getElementById(\"authorization-request-service-dates\") },\n { key: 'icd10_code', fieldName: 'paymentAuthForm.icd10_code', getElement: () => document.getElementById(\"authorization-request-icd10-code\") },\n { key: 'primary_worker', fieldName: 'primaryWorker', getElement: () => document.getElementById(\"primary-worker\")?.parentElement?.parentElement },\n { key: 'client_need', fieldName: 'client_need', getElement: () => document.getElementById(\"client_need\")?.parentElement?.parentElement },\n ];\n\n const errorObj = errors[index];\n for (const { key, fieldName, getElement } of errorFieldMap) {\n if (errorObj?.[key]) {\n form.current?.mutators?.setFieldTouched(fieldName, true);\n\n const element = getElement();\n if (element) element.focus();\n\n break;\n }\n }\n }, 100);\n };\n\n const moveToExistingReferral = (index, program) => {\n const { programs } = referrals[selectedIndex];\n\n referrals[selectedIndex] = {\n ...referrals[selectedIndex],\n programs: programs.filter((p) => p.id !== program.id),\n }\n if (isEmpty(referrals[selectedIndex].programs)) {\n referrals[selectedIndex] = null;\n }\n\n referrals[index] = {\n ...referrals[index],\n programs: [...referrals[index].programs, program]\n }\n\n const newErrors = removeErrorByIndex(errors, selectedIndex);\n setFieldErrors(newErrors);\n\n dispatch(setData({\n referrals: compact(referrals),\n }));\n\n const newIndex = selectedIndex < index ? index - 1 : index;\n setSelectedIndex(newIndex);\n }\n\n const moveToNewReferral = (program) => {\n const referral = referrals[selectedIndex];\n referral.programs = referral.programs.filter((p) => p.id !== program.id);\n\n const newReferral = {\n ...referral,\n programs: [program],\n description: '',\n }\n\n const newReferrals = [...referrals, newReferral];\n\n dispatch(setData({\n referrals: newReferrals,\n }));\n\n setSelectedIndex(newReferrals.length - 1);\n }\n\n const removeProgram = (programName, programId, serviceId) => {\n const referral = referrals[selectedIndex];\n const newReferral = removeReferralProgram({ referral, programName, programId, serviceId });\n\n referrals[selectedIndex] = newReferral ? {\n ...newReferral\n } : null;\n\n const newReferrals = compact(referrals);\n const newReferralPrograms = newReferrals.flatMap((r) => r.programs);\n const newSelectedPrograms = intersectionBy(selectedPrograms, newReferralPrograms, 'id');\n\n dispatch(setData({\n referrals: [...newReferrals],\n selectedPrograms: [...newSelectedPrograms],\n }));\n\n if (!referrals[selectedIndex]) {\n const newErrors = removeErrorByIndex(errors, selectedIndex);\n setFieldErrors(newErrors);\n setSelectedIndex(0);\n }\n }\n\n const updateAttachments = (attachments) => {\n referrals[selectedIndex] = {\n ...referrals[selectedIndex],\n attachments,\n };\n \n dispatch(setData({\n referrals,\n }));\n };\n\n const navigateBack = () => {\n if (CALLBACKS.onNavigateBack) {\n CALLBACKS.onNavigateBack(crtb854ForwardingSuperset ? { referralId, referralDescription } : { referralDescription });\n } else {\n navigate(-1);\n }\n }; \n const navigateToAddResources = () => CALLBACKS.onNavigateToAddResources();\n\n const createReferrals = useCreateReferrals();\n const handleSaveDraftReferral = async () => {\n setSaveDraftClicked(true);\n if (isEmptyErrors(errors)) {\n await createReferrals({ draft: true });\n const { onSaveDraftReferral } = CALLBACKS;\n onSaveDraftReferral && onSaveDraftReferral();\n CALLBACKS.notify.success('Draft referral successfully saved');\n } else {\n focusErrors();\n }\n };\n\n const changeWidthReferralCard = () => {\n setExpandReferralsCard(!expandReferralsCard);\n };\n\n const showMargin = () => {\n return isWindowsSizeLarge && !isEmrSource ? 'mr-5 ' : ' ';\n }\n\n if (isLoading) return <Spinner center />;\n\n const referralSubtitle = getReferralSubtitle(referrals, getSelected());\n const unselectedReferralIndexes = referrals.map((_referral, index) => index).filter((index) => index !== selectedIndex);\n const allPrograms = referrals?.flatMap((r) => r.programs);\n const errorMessage = generateErrorMessage(errors);\n const currentReferral = getSelected();\n\n const xlOrLgInvisibleChevron = classNames({\n 'lg:invisible': isEmrSource,\n 'xl:invisible': !isEmrSource,\n });\n\n const xlOrLgSpaceReferralDiv = classNames({\n 'lg:space-x-6': isEmrSource,\n 'lg:space-x-0 xl:space-x-6': !isEmrSource,\n });\n\n const onConfirmApplyChanges = () => {\n const filteredSelectedServices = servicesState.filter((service) => { return service.selected });\n const filteredNonSelectedServices = servicesState.filter((service) => { return !service.selected });\n const updatedReferrals = updatedReferralsBySelectedServices(referrals, filteredSelectedServices);\n\n const initErrors = initializeReferralErrors(updatedReferrals, showClientNeeds);\n setFieldErrors(initErrors);\n\n dispatch(setData({\n referrals: updatedReferrals,\n }));\n\n filteredNonSelectedServices.forEach((service) => {\n CALLBACKS.onDeselectProgram({\n id: service.programId,\n service: service.serviceId,\n });\n });\n\n closeChooseOneServiceTypeModal();\n };\n\n return (\n <CreateReferralContainer>\n <div className=\"px-12\">\n <StepHeader header={referralBuilderTitle}>\n {REFERRAL_BUILDER_DESCRIPTION}\n <br />\n <Button\n type=\"button\"\n onClick={onLearnMoreClick}\n onKeyDown={(event) => handleKeyDown(event, onLearnMoreClick)}\n aria-expanded={aboutGroupedReferralsModalIsOpen}\n label=\"Click here to learn more about referrals.\"\n link\n />\n </StepHeader>\n\n <AboutGroupedReferralsModal ref={refModal} onClose={onCloseGroupedReferralsModal} />\n\n {isOpenChooseOneServiceTypeModal && (\n <ChooseOneServiceTypeModal \n closeDialog={closeChooseOneServiceTypeModal}\n programs={selectedPrograms}\n referrals={referrals}\n modalRef={ChooseOneServiceTypeModalRef}\n findServiceName={findServiceName}\n onConfirm={onConfirmApplyChanges}\n onServiceSelectionChange={handleServiceSelectionChange}\n servicesState={servicesState}\n />\n )}\n <>\n <NavButtons\n onBackClick={navigateBack}\n onForwardClick={onNextClick}\n onSaveDraftReferral={handleSaveDraftReferral}\n primaryLabel=\"Next\"\n hideForwardButtons={isEmpty(referrals)}\n hideSaveDraftLink={get(fieldsConfig, 'hideSaveDraftLink')}\n hasOffPlatformReferrals={hasOffPlatformReferrals(referrals)}\n hasDraftReferral={hasDraftReferral}\n isForwardReferralPath={isForwardReferralPath}\n />\n\n {\n !isEmpty(allPrograms) ? (\n <div className=\"relative mx-auto responsive-max-width\">\n {\n (errorMessage && (nextClicked || saveDraftClicked)) ? (\n <div className=\"flex justify-end\">\n <Icon icon=\"InfoCircle\" color=\"red\" className=\"mr-2 mt-px\" />\n <p className=\"text-red\">{errorMessage}</p>\n </div>\n ) : null\n }\n <div className={`flex justify-end my-5 ${xlOrLgSpaceReferralDiv}`}>\n <div id=\"referrals-card\"\n className={`bg-white border border-solid border-blue-border rounded ${showMargin()}\n ${expandReferralsCard ? 'relative md:max-w-none lg:w-3/6 z-20' : 'md:w-2/6 lg:w-2/6'}`}>\n <div className=\"p-5 h-full\">\n <div className=\"flex justify-between relative\">\n <div>\n <h2 className=\"text-xl font-black mb-5\">\n Referrals\n </h2>\n </div>\n <div className={xlOrLgInvisibleChevron}>\n <Icon \n icon='ChevronArrow' \n direction={expandReferralsCard ? \"left\" : \"right\"} \n ariaLabel={expandReferralsCard ? \"Collapse sidebar\" : \"Expand Sidebar\"} \n className=\"w-6 h-6\" \n onClick={() => changeWidthReferralCard()}\n />\n </div>\n </div>\n {referrals?.map((referral, index) => (\n <div className=\"mb-5\" key={`referral-card-${index}-wrapper`}>\n <ReferralCard\n referral={referral}\n index={index}\n selectedIndex={selectedIndex}\n onClick={onReferralCardClick}\n errors={errors[index]}\n expandReferralsCard={expandReferralsCard}\n isEmrSource={isEmrSource}\n />\n </div>\n ))}\n </div>\n </div>\n {\n !isEmpty(get(currentReferral, 'programs', [])) ? (\n <ReferralBuilderForm\n currentEmployee={currentEmployee}\n currentProvider={currentProvider} \n hasDraftReferral={hasDraftReferral}\n navigateToAddResources={navigateToAddResources}\n referral={currentReferral}\n referrals={referrals}\n referralSubtitle={referralSubtitle}\n index={selectedIndex}\n onChange={saveValuesOnChange}\n unselected={unselectedReferralIndexes}\n removeProgram={removeProgram}\n onSetForm={(newForm) => { form.current = newForm; }}\n moveToNewReferral={moveToNewReferral}\n moveToExistingReferral={moveToExistingReferral}\n updateAttachments={updateAttachments}\n source={source}\n networksUnlistedProgram={networksUnlistedProgram}\n setReferralErrors={setReferralErrors}\n referralDescription={referralDescription}\n expandReferralsCard={expandReferralsCard}\n person={person}\n caseData={caseData}\n />\n ) : null\n }\n </div>\n </div>\n ) : (\n <NoReferralsDisplay\n hasDraftReferral={hasDraftReferral}\n navigateToAddResources={navigateToAddResources}\n onClick={navigateBack}\n />\n )\n }\n\n <NavButtons\n onBackClick={navigateBack}\n onForwardClick={onNextClick}\n onSaveDraftReferral={handleSaveDraftReferral}\n primaryLabel=\"Next\"\n hideForwardButtons={isEmpty(referrals)}\n hideSaveDraftLink={get(fieldsConfig, 'hideSaveDraftLink')}\n hasDraftReferral={hasDraftReferral}\n hasOffPlatformReferrals={hasOffPlatformReferrals(referrals)}\n isForwardReferralPath={isForwardReferralPath}\n />\n </>\n </div>\n </CreateReferralContainer>\n )\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
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
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
|
-
import React, { useCallback, useEffect, useState } from 'react';
|
|
4
|
+
import React, { useCallback, useEffect, useState, useMemo } from 'react';
|
|
5
5
|
import { PropTypes } from 'prop-types';
|
|
6
6
|
import { Form, Field, FormSpy } from 'react-final-form';
|
|
7
7
|
import { get, isEmpty, isNil, uniqBy, upperFirst } from 'lodash';
|
|
@@ -106,7 +106,7 @@ const validateForm = params => {
|
|
|
106
106
|
return errors;
|
|
107
107
|
};
|
|
108
108
|
export function ReferralBuilderForm(_ref2) {
|
|
109
|
-
var _referral$case2
|
|
109
|
+
var _referral$case2;
|
|
110
110
|
let {
|
|
111
111
|
currentEmployee,
|
|
112
112
|
currentProvider,
|
|
@@ -128,7 +128,8 @@ export function ReferralBuilderForm(_ref2) {
|
|
|
128
128
|
referralDescription,
|
|
129
129
|
expandReferralsCard,
|
|
130
130
|
person,
|
|
131
|
-
referralSubtitle
|
|
131
|
+
referralSubtitle,
|
|
132
|
+
caseData
|
|
132
133
|
} = _ref2;
|
|
133
134
|
const {
|
|
134
135
|
service,
|
|
@@ -236,6 +237,33 @@ export function ReferralBuilderForm(_ref2) {
|
|
|
236
237
|
}));
|
|
237
238
|
setMoveReferralMenus(programMenus);
|
|
238
239
|
}, [programs]);
|
|
240
|
+
const {
|
|
241
|
+
data: clientNeedsData
|
|
242
|
+
} = useFind("people/".concat(person.id, "/person_condition"), {
|
|
243
|
+
most_recent: true
|
|
244
|
+
}, {
|
|
245
|
+
queryConfig: {
|
|
246
|
+
placeholderData: undefined
|
|
247
|
+
}
|
|
248
|
+
});
|
|
249
|
+
const clientNeeds = useMemo(() => {
|
|
250
|
+
var _clientNeedsData$data, _clientNeedsData$data2;
|
|
251
|
+
return (_clientNeedsData$data = clientNeedsData === null || clientNeedsData === void 0 || (_clientNeedsData$data2 = clientNeedsData.data) === null || _clientNeedsData$data2 === void 0 || (_clientNeedsData$data2 = _clientNeedsData$data2.data) === null || _clientNeedsData$data2 === void 0 ? void 0 : _clientNeedsData$data2.map(condition => ({
|
|
252
|
+
label: upperFirst(condition === null || condition === void 0 ? void 0 : condition.name),
|
|
253
|
+
value: condition === null || condition === void 0 ? void 0 : condition.id
|
|
254
|
+
}))) !== null && _clientNeedsData$data !== void 0 ? _clientNeedsData$data : [];
|
|
255
|
+
}, [clientNeedsData]);
|
|
256
|
+
const selectedClientNeeds = useMemo(() => clientNeeds.filter(clientNeed => {
|
|
257
|
+
var _caseData$person_cond;
|
|
258
|
+
return caseData === null || caseData === void 0 || (_caseData$person_cond = caseData.person_condition_ids) === null || _caseData$person_cond === void 0 ? void 0 : _caseData$person_cond.includes(clientNeed.value);
|
|
259
|
+
}), [clientNeeds, caseData === null || caseData === void 0 ? void 0 : caseData.person_condition_ids]);
|
|
260
|
+
useEffect(() => {
|
|
261
|
+
if (selectedClientNeeds.length > 0 && !referral.client_need) {
|
|
262
|
+
setInitialValues(prev => _objectSpread(_objectSpread({}, prev), {}, {
|
|
263
|
+
client_need: selectedClientNeeds.map(need => need.value)
|
|
264
|
+
}));
|
|
265
|
+
}
|
|
266
|
+
}, [selectedClientNeeds]);
|
|
239
267
|
useEffect(() => {
|
|
240
268
|
setInitialValues(_objectSpread(_objectSpread(_objectSpread({}, referral), isNil(referral.primaryWorker) && isOON ? {
|
|
241
269
|
primaryWorker: primaryWorkers.find(worker => worker.id === currentEmployee.id)
|
|
@@ -251,19 +279,6 @@ export function ReferralBuilderForm(_ref2) {
|
|
|
251
279
|
useEffect(() => {
|
|
252
280
|
initializePaymentFormValues();
|
|
253
281
|
}, [initializePaymentFormValues]);
|
|
254
|
-
const {
|
|
255
|
-
data: clientNeedsData
|
|
256
|
-
} = useFind("people/".concat(person.id, "/person_condition"), {
|
|
257
|
-
most_recent: true
|
|
258
|
-
}, {
|
|
259
|
-
queryConfig: {
|
|
260
|
-
placeholderData: undefined
|
|
261
|
-
}
|
|
262
|
-
});
|
|
263
|
-
const clientNeeds = (_clientNeedsData$data = clientNeedsData === null || clientNeedsData === void 0 || (_clientNeedsData$data2 = clientNeedsData.data) === null || _clientNeedsData$data2 === void 0 || (_clientNeedsData$data2 = _clientNeedsData$data2.data) === null || _clientNeedsData$data2 === void 0 ? void 0 : _clientNeedsData$data2.map(condition => ({
|
|
264
|
-
label: upperFirst(condition === null || condition === void 0 ? void 0 : condition.name),
|
|
265
|
-
value: condition === null || condition === void 0 ? void 0 : condition.id
|
|
266
|
-
}))) !== null && _clientNeedsData$data !== void 0 ? _clientNeedsData$data : [];
|
|
267
282
|
const showClientNeeds = featureFlagCMultiplelientNeeds && !isEmpty(clientNeeds);
|
|
268
283
|
const validateOpenDate = date => {
|
|
269
284
|
try {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReferralBuilderForm.js","names":["React","useCallback","useEffect","useState","PropTypes","Form","Field","FormSpy","get","isEmpty","isNil","uniqBy","upperFirst","DateField","TextField","SelectField","validateCostAmount","validateUnitAmount","InfoPanel","isRequired","feeSchedulePrograms","fspUtils","moment","coreApi","REFERRAL_PII_PHI_DESCRIPTION","AuthorizationSubform","ReferralProgramCard","FileUpload","isUnlistedReferral","programIsOffPlatform","referralIsOON","referralIsGrouped","shouldShowNetworkSelect","filterNetworks","referralIsFunded","fetchPrimaryWorkers","useDebounce","useFeatureFlag","cannotMoveToReferralReasons","ContactDocumentsSelector","useFind","ReferralClientNeedsField","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","validateBasicFields","values","showClientNeeds","showNetworkSelect","_values$client_need","errors","description","trim","client_need","length","network","validateOONFields","isOON","validateOpenDate","opened_date","primaryWorker","validatePaymentAuth","_ref","_paymentAuthForm$icd","feeScheduleProgram","authorization_required","undefined","paymentAuthForm","amountRequested","amount_requested","serviceEnd","service_end","icd10Code","icd10_code","value","isCostBased","isCostPaymentType","payment_type","cmCodeRequired","cm_code_required_on_authorization","validateForm","params","_errors$paymentAuthFo","_errors$paymentAuthFo2","_errors$paymentAuthFo3","setReferralErrors","index","_objectSpread","fieldErrors","primary_worker","ReferralBuilderForm","_ref2","_referral$case2","_clientNeedsData$data","_clientNeedsData$data2","currentEmployee","currentProvider","hasDraftReferral","navigateToAddResources","referral","referrals","onChange","unselected","removeProgram","onSetForm","moveToNewReferral","moveToExistingReferral","updateAttachments","source","networksUnlistedProgram","referralDescription","expandReferralsCard","person","referralSubtitle","service","programs","attachments","attachableDocuments","moveReferralMenus","setMoveReferralMenus","uploadedFiles","setUploadedFiles","primaryWorkers","setPrimaryWorkers","initialValues","setInitialValues","query","setQuery","debouncedQuery","rejectedFiles","setRejectedFiles","filesTooBig","filesWrongType","filesTooBigAndWrongType","isGrouped","isFunded","referralTitle","concat","name","crtb854ForwardingSuperset","featureFlagCMultiplelientNeeds","newLanguageDashboard","today","startOf","unix","networks","onProgramClick","id","programMenus","map","p","menuIsOpen","getPrimaryWorkers","primary_workers","providerId","sendingProvider","initializePaymentFormValues","state","_referral$case","_kase$data","_kaseData$service_aut","_kaseServiceAuthoriza","kase","findRecord","case","kaseData","data","kaseServiceAuthorization","service_authorization","kaseServiceAuthorizationData","clinicalModifications","clinical_modifications","clinicalModificationData","_clinicalModification","clinicalModification","isUnitBased","amountRequestedInitialValue","requested_unit_amount","requested_cents","paymentAuthFormValues","requested_ends_at","service_start","requested_starts_at","code","previousValues","_previousValues$case","find","worker","clientNeedsData","most_recent","queryConfig","placeholderData","clientNeeds","condition","label","date","openDate","Date","parseInt","maxDate","minDate","subtract","isNaN","getTime","error","console","onSubmit","validate","mutators","setFieldTouched","args","touched","field","fields","render","_ref3","form","children","subscription","className","style","marginLeft","program","_moveReferralMenus$fi","cannotMoveReasons","i","onClick","required","placeholder","options","labelKey","valueKey","validations","formValues","afterLabelContent","message","rows","inline","text","input","loadOptions","search","documentFields","propTypes","object","shape","string","array","number","func","defaultProps"],"sources":["../../../src/pages/builder/ReferralBuilderForm.js"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { PropTypes } from 'prop-types';\nimport { Form, Field, FormSpy } from 'react-final-form';\nimport { get, isEmpty, isNil, uniqBy, upperFirst } from 'lodash';\nimport {\n DateField,\n TextField,\n SelectField,\n} from '@unite-us/ui';\nimport validateCostAmount from '../../utils/validateCostAmount';\nimport validateUnitAmount from '../../utils/validateUnitAmount';\nimport InfoPanel from '@unite-us/client-utils/dist/InfoPanel/InfoPanel';\nimport {\n isRequired,\n} from '@unite-us/client-utils/dist/utils/validations/validations';\nimport { feeSchedulePrograms as fspUtils } from '@unite-us/client-utils';\nimport moment from 'moment';\nimport { coreApi } from '../../api/config';\nimport { REFERRAL_PII_PHI_DESCRIPTION } from './constants';\nimport AuthorizationSubform from './AuthorizationSubform';\nimport ReferralProgramCard from './ReferralProgramCard';\nimport { FileUpload } from '../../common/form/FileUploadV2/FileUpload';\nimport {\n isUnlistedReferral,\n programIsOffPlatform,\n referralIsOON,\n referralIsGrouped,\n shouldShowNetworkSelect,\n filterNetworks,\n referralIsFunded,\n} from './utils';\nimport fetchPrimaryWorkers from '../../actions/Referral/fetchPrimaryWorkers';\nimport { useDebounce } from '../../utils/useDebounce';\nimport { useFeatureFlag } from '../../utils/useFeatureFlag';\nimport { cannotMoveToReferralReasons } from '../../actions/Referral/cannotMoveToReferralReasons';\nimport ContactDocumentsSelector from '../../common/form/DocumentUploader/components/ContactDocumentsSelector'\nimport { useFind } from '../../api/ApiHooks';\nimport './ReferralBuilderForm.scss';\nimport ReferralClientNeedsField from './ReferralClientNeedsField';\n\nconst validateBasicFields = (values, showClientNeeds, showNetworkSelect) => {\n const errors = {};\n if (!values.description || values.description.trim() === '') errors.description = \"Required\";\n if (showClientNeeds && (!values?.client_need || values?.client_need?.length === 0)) errors.client_need = \"Required\";\n if (showNetworkSelect && !values.network) errors.network = \"Required\";\n return errors;\n};\n\nconst validateOONFields = (values, isOON, validateOpenDate) => {\n const errors = {};\n if (isOON) {\n if (!values.opened_date) {\n errors.opened_date = \"Required\"\n } else if (!validateOpenDate(values.opened_date)) {\n errors.opened_date = \"Invalid date\";\n }\n if (!values.primaryWorker) errors.primaryWorker = \"Required\";\n }\n return errors;\n};\n\nconst validatePaymentAuth = ({ values, feeScheduleProgram, validateCostAmount, validateUnitAmount, fspUtils }) => {\n if (!feeScheduleProgram?.authorization_required) return undefined;\n\n const paymentAuthForm = values?.paymentAuthForm;\n const amountRequested = paymentAuthForm?.amount_requested;\n const serviceEnd = paymentAuthForm?.service_end;\n const icd10Code = paymentAuthForm?.icd10_code?.value;\n const isCostBased = fspUtils.isCostPaymentType(feeScheduleProgram.payment_type);\n const cmCodeRequired = feeScheduleProgram.cm_code_required_on_authorization;\n\n return {\n amount_requested: isCostBased ? validateCostAmount(amountRequested) : validateUnitAmount(amountRequested),\n service_end: serviceEnd ? undefined : 'Required',\n icd10_code: (icd10Code || !cmCodeRequired) ? undefined : 'Required'\n };\n};\n\nconst validateForm = (params) => {\n const { values, isOON, showClientNeeds, showNetworkSelect, feeScheduleProgram, validateOpenDate, validateCostAmount, validateUnitAmount, fspUtils, setReferralErrors, index } = params;\n \n const errors = {\n ...validateBasicFields(values, showClientNeeds, showNetworkSelect),\n ...validateOONFields(values, isOON, validateOpenDate)\n };\n \n errors.paymentAuthForm = validatePaymentAuth({ values, feeScheduleProgram, validateCostAmount, validateUnitAmount, fspUtils });\n\n const fieldErrors = {\n description: !!errors.description,\n opened_date: !!errors.opened_date,\n client_need: !!errors.client_need,\n primary_worker: !!errors.primaryWorker,\n network: !!errors.network,\n service_end: !!errors?.paymentAuthForm?.service_end,\n amount_requested: !!errors?.paymentAuthForm?.amount_requested,\n icd10_code: !!errors?.paymentAuthForm?.icd10_code\n };\n\n setReferralErrors(index, fieldErrors);\n return errors;\n};\n\nexport function ReferralBuilderForm({\n currentEmployee,\n currentProvider,\n hasDraftReferral,\n navigateToAddResources,\n referral,\n referrals,\n index,\n onChange,\n unselected,\n removeProgram,\n onSetForm,\n moveToNewReferral,\n moveToExistingReferral,\n updateAttachments,\n source,\n networksUnlistedProgram,\n setReferralErrors,\n referralDescription,\n expandReferralsCard,\n person,\n referralSubtitle,\n}) {\n const { service, programs, primaryWorker, attachments, attachableDocuments } = referral;\n const [moveReferralMenus, setMoveReferralMenus] = useState({});\n const [uploadedFiles, setUploadedFiles] = useState(attachments);\n const [primaryWorkers, setPrimaryWorkers] = useState(primaryWorker ? [primaryWorker] : []);\n const [initialValues, setInitialValues] = useState(referral);\n const [query, setQuery] = useState('');\n const debouncedQuery = useDebounce(query, 500);\n\n const [rejectedFiles, setRejectedFiles] = useState({\n filesTooBig: [],\n filesWrongType: [],\n filesTooBigAndWrongType: [],\n });\n const isOON = referralIsOON(referral);\n const isGrouped = referralIsGrouped(referral);\n const isFunded = referralIsFunded(referral)\n const referralTitle = `Referral ${index + 1}: ${service?.name}${isGrouped ? ', Grouped' : ''}${isOON ? ', Off-Platform' : ''}${isFunded ? ', Funded' : ''}`;\n const crtb854ForwardingSuperset = useFeatureFlag('crtb854ForwardingSuperset', false);\n const featureFlagCMultiplelientNeeds = useFeatureFlag('crtb2130MultipleClientNeeds', false);\n const newLanguageDashboard = useFeatureFlag('crtb2182ClarifyReferralLanguage', false);\n const today = moment().startOf('day').unix();\n\n // If all the programs in the referral are unlisted, show the user provider networks\n const networks = isUnlistedReferral(referral) ? networksUnlistedProgram : filterNetworks(referral);\n const showNetworkSelect = shouldShowNetworkSelect(networks, programs);\n\n const onProgramClick = (id) => {\n const programMenus = moveReferralMenus.map((p) => {\n if (p.id === id) {\n p.menuIsOpen = !p.menuIsOpen;\n } else {\n p.menuIsOpen = false;\n }\n return p;\n });\n\n setMoveReferralMenus(programMenus);\n };\n\n const getPrimaryWorkers = useCallback(async () => {\n const { primary_workers } = await fetchPrimaryWorkers({\n providerId: referral.sendingProvider.id,\n currentEmployee,\n query: debouncedQuery,\n });\n\n // if the query is empty, keep the queried employees and the current primary worker in select field's options array\n isEmpty(query) ?\n setPrimaryWorkers(uniqBy([...primaryWorkers, ...primary_workers, (primaryWorker && primaryWorker)], 'id')) :\n setPrimaryWorkers(primary_workers);\n }, [currentEmployee, referral.sendingProvider.id, debouncedQuery]);\n\n const feeScheduleProgram = get(programs, '[0].fee_schedule_program');\n\n const initializePaymentFormValues = useCallback(async () => {\n if (referral.state === \"draft\" && feeScheduleProgram?.authorization_required) {\n const kase = await coreApi.findRecord('case', referral.case?.id);\n const kaseData = kase?.data?.data;\n const kaseServiceAuthorization = await coreApi.findRecord('service_authorization', kaseData?.service_authorization?.id);\n const kaseServiceAuthorizationData = kaseServiceAuthorization?.data?.data;\n \n const clinicalModifications = kaseServiceAuthorizationData?.clinical_modifications;\n let clinicalModificationData = null;\n \n if (clinicalModifications && clinicalModifications.length > 0) {\n const clinicalModification = await coreApi.findRecord('clinical_modifications', clinicalModifications[0].id);\n clinicalModificationData = clinicalModification?.data?.data;\n }\n\n const isUnitBased = !fspUtils.isCostPaymentType(feeScheduleProgram?.payment_type);\n const amountRequestedInitialValue = isUnitBased ? \n kaseServiceAuthorizationData?.requested_unit_amount :\n kaseServiceAuthorizationData?.requested_cents / 100;\n\n const paymentAuthFormValues = {\n amount_requested: amountRequestedInitialValue,\n service_end: moment(kaseServiceAuthorizationData?.requested_ends_at).unix(),\n service_start: moment(kaseServiceAuthorizationData?.requested_starts_at).unix(),\n icd10_code: !isEmpty(clinicalModificationData) ? {\n value: clinicalModificationData.code, \n id: clinicalModificationData.id,\n } : {},\n }\n\n setInitialValues((previousValues) => {\n const initialValues = {\n ...previousValues,\n case: {\n ...previousValues.case,\n service_authorization: {\n ...previousValues.case?.service_authorization,\n ...kaseServiceAuthorizationData,\n }\n },\n paymentAuthForm: {\n ...previousValues.paymentAuthForm,\n ...paymentAuthFormValues,\n }\n };\n if (crtb854ForwardingSuperset && referralDescription) {\n initialValues.description = referralDescription;\n }\n return initialValues;\n });\n }\n }, [referral.case?.id, referral.state, feeScheduleProgram?.payment_type, feeScheduleProgram?.authorization_required]);\n\n useEffect(() => {\n if (isOON) {\n getPrimaryWorkers();\n }\n }, [getPrimaryWorkers, isOON]);\n\n useEffect(() => {\n const programMenus = programs.map((p) => ({ id: p.id, menuIsOpen: false }));\n setMoveReferralMenus(programMenus);\n }, [programs]);\n\n useEffect(() => {\n setInitialValues({\n ...referral,\n ...((isNil(referral.primaryWorker) && isOON) ?\n { primaryWorker: primaryWorkers.find((worker) => worker.id === currentEmployee.id) } :\n null\n ),\n ...(crtb854ForwardingSuperset && referralDescription) ? { referralDescription } : {},\n })\n }, [primaryWorkers, currentEmployee.id, index, isOON, referral, referralDescription]);\n\n useEffect(() => {\n if (!isEmpty(uploadedFiles)) {\n updateAttachments(uploadedFiles);\n }\n }, [uploadedFiles]);\n\n useEffect(() => {\n initializePaymentFormValues();\n }, [initializePaymentFormValues]);\n \n const { data: clientNeedsData } = useFind(\n `people/${person.id}/person_condition`,\n {\n most_recent: true,\n },\n {\n queryConfig: {\n placeholderData: undefined,\n },\n },\n );\n const clientNeeds = clientNeedsData?.data?.data?.map(condition => ({ \n label: upperFirst(condition?.name), \n value: condition?.id \n })) ?? [];\n \n const showClientNeeds = featureFlagCMultiplelientNeeds && !isEmpty(clientNeeds);\n\n const validateOpenDate = (date) => { \n try {\n const openDate = new Date(parseInt(date) * 1000);\n const maxDate = new Date(parseInt(today) * 1000);\n const minDate = new Date(moment().subtract(1, 'year').unix() * 1000);\n \n return (isNaN(openDate.getTime()) || openDate.getTime() < minDate || openDate.getTime() > maxDate) ? false : true;\n } catch (error) {\n console.error('Error validating open date', error);\n return false;\n }\n }\n\n\n\n return (\n <Form\n initialValues={initialValues}\n onSubmit={() => { }}\n validate={(values) => validateForm({\n values,\n isOON,\n showClientNeeds,\n showNetworkSelect,\n feeScheduleProgram,\n validateOpenDate,\n validateCostAmount,\n validateUnitAmount,\n fspUtils,\n setReferralErrors,\n index\n })}\n mutators={{\n setFieldTouched: (args, state) => {\n const [name, touched] = args;\n const field = state.fields[name];\n if (field) {\n field.touched = !!touched;\n }\n }\n }}\n render={({ form, values }) => {\n onSetForm && onSetForm(form);\n return (\n <>\n <FormSpy\n subscription={{ values: true }}\n onChange={onChange}\n />\n <div className={\"bg-white border border-solid border-blue-border rounded md:w-4/6 lg:w-4/6\"} style={{ marginLeft: expandReferralsCard && '-7.5rem'}}>\n <div className=\"p-5 bg-dark-fill-blue\">\n <h2 className=\"text-xl font-black mb-1\">\n {referralTitle}\n </h2>\n {!newLanguageDashboard && <h3>\n {referralSubtitle}\n </h3>}\n </div>\n <div className=\"p-5\">\n {!newLanguageDashboard && isOON && (\n <div className=\"bg-alert-yellow border border-solid border-canary-yellow rounded p-3 mb-5\">\n <p className=\"text-brand-blue\">\n You need to contact these programs directly because\n they're not receiving referrals on the Unite Us Platform.\n </p>\n </div>\n )}\n <h5>PROGRAMS</h5>\n {programs.map((program) => {\n const menuIsOpen = isEmpty(moveReferralMenus) ? false : moveReferralMenus?.find((p) => p.id === program.id)?.menuIsOpen;\n\n const cannotMoveReasons = {}\n unselected.map((i) => {\n return cannotMoveReasons[i] = cannotMoveToReferralReasons({ program, referral, referrals, index: i, currentProvider })\n })\n\n return (\n <ReferralProgramCard\n key={`referral-program-${program?.id}-card`}\n program={program}\n onClick={onProgramClick}\n isOON={programIsOffPlatform(program)}\n menuIsOpen={menuIsOpen}\n unselected={unselected}\n referral={referral}\n removeProgram={removeProgram}\n moveToNewReferral={moveToNewReferral}\n moveToExistingReferral={moveToExistingReferral}\n cannotMoveReasons={cannotMoveReasons}\n />\n );\n })}\n <p className=\"text-center text-dark-grey my-10\">\n Click on the three-dot icon to edit referral groupings.\n {hasDraftReferral ? (\n <div>\n To add more programs, go to the <a onClick={navigateToAddResources}>Add Resources</a> page.\n </div>\n ) : null}\n </p>\n\n {showNetworkSelect && (\n <div className=\"mb-10\">\n <Field\n name=\"network\"\n required\n key={`referral-${index}-network`}\n >\n {(params) => (\n <SelectField\n required\n id=\"network-selection\"\n label=\"Network Selection\"\n placeholder=\"Choose one...\"\n options={networks}\n labelKey=\"name\"\n valueKey=\"id\"\n validations={isRequired}\n {...params}\n />\n )}\n </Field>\n </div>\n )}\n\n {feeScheduleProgram?.authorization_required && (\n <AuthorizationSubform \n feeScheduleProgram={feeScheduleProgram}\n formValues={values}\n setReferralErrors={(errors) => setReferralErrors(index, errors)} \n />\n )}\n\n {newLanguageDashboard && isOON && <h5 className='mb-2'>CASE INFORMATION</h5>}\n\n {newLanguageDashboard && isOON && (\n <div className=\"bg-alert-yellow border border-solid border-canary-yellow rounded p-3 mb-5\">\n <p className=\"text-brand-blue\">\n These programs aren't accepting referrals in Unite Us.\n We'll create an off-platform case where you can document communication with or services provided by the program.\n </p>\n </div>\n )}\n\n <Field\n name=\"description\"\n required\n key={`referral-${index}-description`}\n >\n {(params) => (\n <TextField\n afterLabelContent={(\n <InfoPanel\n className=\"mb-4 mt-2\"\n message={REFERRAL_PII_PHI_DESCRIPTION}\n />\n )}\n id=\"referral-description\"\n label={newLanguageDashboard ? \"Description\" : \"Referral Description\"}\n placeholder={newLanguageDashboard ? \"E.g. Client needs food assistance. These programs are off-platform and need to be contacted in order to facilitate the referral.\" : \"Describe your client's current situation and reason for referral.\"}\n rows={3}\n inline={false}\n validations={isRequired}\n required\n style={source === 'emr' && get(params, 'meta.touched') && !get(params, 'meta.valid') ? { text: { 'border-color': 'red' } } : {}}\n {...params}\n />\n )}\n </Field>\n\n { isOON && (\n <Field\n name=\"opened_date\"\n required\n key={`opened-${index}-date`}\n >\n {(params) => (\n <DateField\n required\n id=\"opened-date\"\n label={newLanguageDashboard ? \"Case open date\": \"Open date\"}\n validations={validateOpenDate(params.input.value)}\n minDate={moment().subtract(1, 'year').unix()}\n maxDate={today}\n style={source === 'emr' && get(params, 'meta.touched') && !get(params, 'meta.valid') ? { text: { 'border-color': 'red' } } : {}}\n {...params}\n />\n )}\n </Field>) }\n\n {isOON && (\n <Field\n name=\"primaryWorker\"\n required\n key={`referral-${index}-primary-worker`}\n >\n {(params) => (\n <SelectField\n required\n id=\"primary-worker\"\n label=\"Primary Worker\"\n placeholder=\"Choose one...\"\n loadOptions={(search) => setQuery(search)}\n options={primaryWorkers}\n labelKey=\"full_name\"\n valueKey=\"id\"\n validations={isRequired}\n {...params}\n />\n )}\n </Field>\n )}\n\n {showClientNeeds && (\n <>\n <p className=\"mb-4 mt-2 text-dark-blue\">Select the identified need from the client’s screening or assessment that relates to this referral.</p>\n <Field\n name=\"client_need\"\n required\n key={`associated-${index}-need`}\n >\n {(params) => (\n <ReferralClientNeedsField params={params} clientNeeds={clientNeeds} />\n )}\n </Field>\n\n </>\n )}\n\n {attachableDocuments && (\n <div className=\"upload-documents\">\n <h5>Documents</h5>\n <ContactDocumentsSelector documentFields={attachableDocuments} />\n </div>\n )}\n\n {/* Attachment area */}\n <FileUpload\n rejectedFiles={rejectedFiles}\n setRejectedFiles={setRejectedFiles}\n setUploadedFiles={setUploadedFiles}\n uploadedFiles={attachments || []}\n />\n </div>\n </div>\n </>\n )}}\n />\n )\n}\n\nReferralBuilderForm.propTypes = {\n currentEmployee: PropTypes.object.isRequired,\n currentProvider: PropTypes.object.isRequired,\n referral: PropTypes.shape({\n service: PropTypes.shape({\n name: PropTypes.string.isRequired,\n }).isRequired,\n programs: PropTypes.array.isRequired,\n }).isRequired,\n index: PropTypes.number.isRequired,\n onChange: PropTypes.func.isRequired,\n unselected: PropTypes.array,\n removeProgram: PropTypes.func.isRequired,\n moveToNewReferral: PropTypes.func.isRequired,\n moveToExistingReferral: PropTypes.func.isRequired,\n onSetForm: PropTypes.func.isRequired,\n setReferralErrors: PropTypes.func.isRequired,\n referralSubtitle: PropTypes.string,\n}\n\nReferralBuilderForm.defaultProps = {\n unselected: [],\n referralSubtitle: '',\n}\n\nexport default ReferralBuilderForm;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ReferralBuilderForm.js","names":["React","useCallback","useEffect","useState","useMemo","PropTypes","Form","Field","FormSpy","get","isEmpty","isNil","uniqBy","upperFirst","DateField","TextField","SelectField","validateCostAmount","validateUnitAmount","InfoPanel","isRequired","feeSchedulePrograms","fspUtils","moment","coreApi","REFERRAL_PII_PHI_DESCRIPTION","AuthorizationSubform","ReferralProgramCard","FileUpload","isUnlistedReferral","programIsOffPlatform","referralIsOON","referralIsGrouped","shouldShowNetworkSelect","filterNetworks","referralIsFunded","fetchPrimaryWorkers","useDebounce","useFeatureFlag","cannotMoveToReferralReasons","ContactDocumentsSelector","useFind","ReferralClientNeedsField","jsx","_jsx","jsxs","_jsxs","Fragment","_Fragment","validateBasicFields","values","showClientNeeds","showNetworkSelect","_values$client_need","errors","description","trim","client_need","length","network","validateOONFields","isOON","validateOpenDate","opened_date","primaryWorker","validatePaymentAuth","_ref","_paymentAuthForm$icd","feeScheduleProgram","authorization_required","undefined","paymentAuthForm","amountRequested","amount_requested","serviceEnd","service_end","icd10Code","icd10_code","value","isCostBased","isCostPaymentType","payment_type","cmCodeRequired","cm_code_required_on_authorization","validateForm","params","_errors$paymentAuthFo","_errors$paymentAuthFo2","_errors$paymentAuthFo3","setReferralErrors","index","_objectSpread","fieldErrors","primary_worker","ReferralBuilderForm","_ref2","_referral$case2","currentEmployee","currentProvider","hasDraftReferral","navigateToAddResources","referral","referrals","onChange","unselected","removeProgram","onSetForm","moveToNewReferral","moveToExistingReferral","updateAttachments","source","networksUnlistedProgram","referralDescription","expandReferralsCard","person","referralSubtitle","caseData","service","programs","attachments","attachableDocuments","moveReferralMenus","setMoveReferralMenus","uploadedFiles","setUploadedFiles","primaryWorkers","setPrimaryWorkers","initialValues","setInitialValues","query","setQuery","debouncedQuery","rejectedFiles","setRejectedFiles","filesTooBig","filesWrongType","filesTooBigAndWrongType","isGrouped","isFunded","referralTitle","concat","name","crtb854ForwardingSuperset","featureFlagCMultiplelientNeeds","newLanguageDashboard","today","startOf","unix","networks","onProgramClick","id","programMenus","map","p","menuIsOpen","getPrimaryWorkers","primary_workers","providerId","sendingProvider","initializePaymentFormValues","state","_referral$case","_kase$data","_kaseData$service_aut","_kaseServiceAuthoriza","kase","findRecord","case","kaseData","data","kaseServiceAuthorization","service_authorization","kaseServiceAuthorizationData","clinicalModifications","clinical_modifications","clinicalModificationData","_clinicalModification","clinicalModification","isUnitBased","amountRequestedInitialValue","requested_unit_amount","requested_cents","paymentAuthFormValues","requested_ends_at","service_start","requested_starts_at","code","previousValues","_previousValues$case","clientNeedsData","most_recent","queryConfig","placeholderData","clientNeeds","_clientNeedsData$data","_clientNeedsData$data2","condition","label","selectedClientNeeds","filter","clientNeed","_caseData$person_cond","person_condition_ids","includes","prev","need","find","worker","date","openDate","Date","parseInt","maxDate","minDate","subtract","isNaN","getTime","error","console","onSubmit","validate","mutators","setFieldTouched","args","touched","field","fields","render","_ref3","form","children","subscription","className","style","marginLeft","program","_moveReferralMenus$fi","cannotMoveReasons","i","onClick","required","placeholder","options","labelKey","valueKey","validations","formValues","afterLabelContent","message","rows","inline","text","input","loadOptions","search","documentFields","propTypes","object","shape","string","array","number","func","defaultProps"],"sources":["../../../src/pages/builder/ReferralBuilderForm.js"],"sourcesContent":["import React, { useCallback, useEffect, useState, useMemo } from 'react';\nimport { PropTypes } from 'prop-types';\nimport { Form, Field, FormSpy } from 'react-final-form';\nimport { get, isEmpty, isNil, uniqBy, upperFirst } from 'lodash';\nimport {\n DateField,\n TextField,\n SelectField,\n} from '@unite-us/ui';\nimport validateCostAmount from '../../utils/validateCostAmount';\nimport validateUnitAmount from '../../utils/validateUnitAmount';\nimport InfoPanel from '@unite-us/client-utils/dist/InfoPanel/InfoPanel';\nimport {\n isRequired,\n} from '@unite-us/client-utils/dist/utils/validations/validations';\nimport { feeSchedulePrograms as fspUtils } from '@unite-us/client-utils';\nimport moment from 'moment';\nimport { coreApi } from '../../api/config';\nimport { REFERRAL_PII_PHI_DESCRIPTION } from './constants';\nimport AuthorizationSubform from './AuthorizationSubform';\nimport ReferralProgramCard from './ReferralProgramCard';\nimport { FileUpload } from '../../common/form/FileUploadV2/FileUpload';\nimport {\n isUnlistedReferral,\n programIsOffPlatform,\n referralIsOON,\n referralIsGrouped,\n shouldShowNetworkSelect,\n filterNetworks,\n referralIsFunded,\n} from './utils';\nimport fetchPrimaryWorkers from '../../actions/Referral/fetchPrimaryWorkers';\nimport { useDebounce } from '../../utils/useDebounce';\nimport { useFeatureFlag } from '../../utils/useFeatureFlag';\nimport { cannotMoveToReferralReasons } from '../../actions/Referral/cannotMoveToReferralReasons';\nimport ContactDocumentsSelector from '../../common/form/DocumentUploader/components/ContactDocumentsSelector'\nimport { useFind } from '../../api/ApiHooks';\nimport './ReferralBuilderForm.scss';\nimport ReferralClientNeedsField from './ReferralClientNeedsField';\n\nconst validateBasicFields = (values, showClientNeeds, showNetworkSelect) => {\n const errors = {};\n if (!values.description || values.description.trim() === '') errors.description = \"Required\";\n if (showClientNeeds && (!values?.client_need || values?.client_need?.length === 0)) errors.client_need = \"Required\";\n if (showNetworkSelect && !values.network) errors.network = \"Required\";\n return errors;\n};\n\nconst validateOONFields = (values, isOON, validateOpenDate) => {\n const errors = {};\n if (isOON) {\n if (!values.opened_date) {\n errors.opened_date = \"Required\"\n } else if (!validateOpenDate(values.opened_date)) {\n errors.opened_date = \"Invalid date\";\n }\n if (!values.primaryWorker) errors.primaryWorker = \"Required\";\n }\n return errors;\n};\n\nconst validatePaymentAuth = ({ values, feeScheduleProgram, validateCostAmount, validateUnitAmount, fspUtils }) => {\n if (!feeScheduleProgram?.authorization_required) return undefined;\n\n const paymentAuthForm = values?.paymentAuthForm;\n const amountRequested = paymentAuthForm?.amount_requested;\n const serviceEnd = paymentAuthForm?.service_end;\n const icd10Code = paymentAuthForm?.icd10_code?.value;\n const isCostBased = fspUtils.isCostPaymentType(feeScheduleProgram.payment_type);\n const cmCodeRequired = feeScheduleProgram.cm_code_required_on_authorization;\n\n return {\n amount_requested: isCostBased ? validateCostAmount(amountRequested) : validateUnitAmount(amountRequested),\n service_end: serviceEnd ? undefined : 'Required',\n icd10_code: (icd10Code || !cmCodeRequired) ? undefined : 'Required'\n };\n};\n\nconst validateForm = (params) => {\n const { values, isOON, showClientNeeds, showNetworkSelect, feeScheduleProgram, validateOpenDate, validateCostAmount, validateUnitAmount, fspUtils, setReferralErrors, index } = params;\n \n const errors = {\n ...validateBasicFields(values, showClientNeeds, showNetworkSelect),\n ...validateOONFields(values, isOON, validateOpenDate)\n };\n \n errors.paymentAuthForm = validatePaymentAuth({ values, feeScheduleProgram, validateCostAmount, validateUnitAmount, fspUtils });\n\n const fieldErrors = {\n description: !!errors.description,\n opened_date: !!errors.opened_date,\n client_need: !!errors.client_need,\n primary_worker: !!errors.primaryWorker,\n network: !!errors.network,\n service_end: !!errors?.paymentAuthForm?.service_end,\n amount_requested: !!errors?.paymentAuthForm?.amount_requested,\n icd10_code: !!errors?.paymentAuthForm?.icd10_code\n };\n\n setReferralErrors(index, fieldErrors);\n return errors;\n};\n\nexport function ReferralBuilderForm({\n currentEmployee,\n currentProvider,\n hasDraftReferral,\n navigateToAddResources,\n referral,\n referrals,\n index,\n onChange,\n unselected,\n removeProgram,\n onSetForm,\n moveToNewReferral,\n moveToExistingReferral,\n updateAttachments,\n source,\n networksUnlistedProgram,\n setReferralErrors,\n referralDescription,\n expandReferralsCard,\n person,\n referralSubtitle,\n caseData,\n}) {\n const { service, programs, primaryWorker, attachments, attachableDocuments } = referral;\n const [moveReferralMenus, setMoveReferralMenus] = useState({});\n const [uploadedFiles, setUploadedFiles] = useState(attachments);\n const [primaryWorkers, setPrimaryWorkers] = useState(primaryWorker ? [primaryWorker] : []);\n const [initialValues, setInitialValues] = useState(referral);\n const [query, setQuery] = useState('');\n const debouncedQuery = useDebounce(query, 500);\n\n const [rejectedFiles, setRejectedFiles] = useState({\n filesTooBig: [],\n filesWrongType: [],\n filesTooBigAndWrongType: [],\n });\n const isOON = referralIsOON(referral);\n const isGrouped = referralIsGrouped(referral);\n const isFunded = referralIsFunded(referral)\n const referralTitle = `Referral ${index + 1}: ${service?.name}${isGrouped ? ', Grouped' : ''}${isOON ? ', Off-Platform' : ''}${isFunded ? ', Funded' : ''}`;\n const crtb854ForwardingSuperset = useFeatureFlag('crtb854ForwardingSuperset', false);\n const featureFlagCMultiplelientNeeds = useFeatureFlag('crtb2130MultipleClientNeeds', false);\n const newLanguageDashboard = useFeatureFlag('crtb2182ClarifyReferralLanguage', false);\n const today = moment().startOf('day').unix();\n\n // If all the programs in the referral are unlisted, show the user provider networks\n const networks = isUnlistedReferral(referral) ? networksUnlistedProgram : filterNetworks(referral);\n const showNetworkSelect = shouldShowNetworkSelect(networks, programs);\n\n const onProgramClick = (id) => {\n const programMenus = moveReferralMenus.map((p) => {\n if (p.id === id) {\n p.menuIsOpen = !p.menuIsOpen;\n } else {\n p.menuIsOpen = false;\n }\n return p;\n });\n\n setMoveReferralMenus(programMenus);\n };\n\n const getPrimaryWorkers = useCallback(async () => {\n const { primary_workers } = await fetchPrimaryWorkers({\n providerId: referral.sendingProvider.id,\n currentEmployee,\n query: debouncedQuery,\n });\n\n // if the query is empty, keep the queried employees and the current primary worker in select field's options array\n isEmpty(query) ?\n setPrimaryWorkers(uniqBy([...primaryWorkers, ...primary_workers, (primaryWorker && primaryWorker)], 'id')) :\n setPrimaryWorkers(primary_workers);\n }, [currentEmployee, referral.sendingProvider.id, debouncedQuery]);\n\n const feeScheduleProgram = get(programs, '[0].fee_schedule_program');\n\n const initializePaymentFormValues = useCallback(async () => {\n if (referral.state === \"draft\" && feeScheduleProgram?.authorization_required) {\n const kase = await coreApi.findRecord('case', referral.case?.id);\n const kaseData = kase?.data?.data;\n const kaseServiceAuthorization = await coreApi.findRecord('service_authorization', kaseData?.service_authorization?.id);\n const kaseServiceAuthorizationData = kaseServiceAuthorization?.data?.data;\n \n const clinicalModifications = kaseServiceAuthorizationData?.clinical_modifications;\n let clinicalModificationData = null;\n \n if (clinicalModifications && clinicalModifications.length > 0) {\n const clinicalModification = await coreApi.findRecord('clinical_modifications', clinicalModifications[0].id);\n clinicalModificationData = clinicalModification?.data?.data;\n }\n\n const isUnitBased = !fspUtils.isCostPaymentType(feeScheduleProgram?.payment_type);\n const amountRequestedInitialValue = isUnitBased ? \n kaseServiceAuthorizationData?.requested_unit_amount :\n kaseServiceAuthorizationData?.requested_cents / 100;\n\n const paymentAuthFormValues = {\n amount_requested: amountRequestedInitialValue,\n service_end: moment(kaseServiceAuthorizationData?.requested_ends_at).unix(),\n service_start: moment(kaseServiceAuthorizationData?.requested_starts_at).unix(),\n icd10_code: !isEmpty(clinicalModificationData) ? {\n value: clinicalModificationData.code, \n id: clinicalModificationData.id,\n } : {},\n }\n\n setInitialValues((previousValues) => {\n const initialValues = {\n ...previousValues,\n case: {\n ...previousValues.case,\n service_authorization: {\n ...previousValues.case?.service_authorization,\n ...kaseServiceAuthorizationData,\n }\n },\n paymentAuthForm: {\n ...previousValues.paymentAuthForm,\n ...paymentAuthFormValues,\n }\n };\n if (crtb854ForwardingSuperset && referralDescription) {\n initialValues.description = referralDescription;\n }\n return initialValues;\n });\n }\n }, [referral.case?.id, referral.state, feeScheduleProgram?.payment_type, feeScheduleProgram?.authorization_required]);\n\n useEffect(() => {\n if (isOON) {\n getPrimaryWorkers();\n }\n }, [getPrimaryWorkers, isOON]);\n\n useEffect(() => {\n const programMenus = programs.map((p) => ({ id: p.id, menuIsOpen: false }));\n setMoveReferralMenus(programMenus);\n }, [programs]);\n\n const { data: clientNeedsData } = useFind(\n `people/${person.id}/person_condition`,\n {\n most_recent: true,\n },\n {\n queryConfig: {\n placeholderData: undefined,\n },\n },\n );\n\n const clientNeeds = useMemo(() => \n clientNeedsData?.data?.data?.map(condition => ({ \n label: upperFirst(condition?.name), \n value: condition?.id \n })) ?? [], [clientNeedsData]\n );\n\n const selectedClientNeeds = useMemo(() => \n clientNeeds.filter(clientNeed => \n caseData?.person_condition_ids?.includes(clientNeed.value)\n ), [clientNeeds, caseData?.person_condition_ids]\n );\n\n useEffect(() => {\n if (selectedClientNeeds.length > 0 && !referral.client_need) {\n setInitialValues(prev => ({\n ...prev,\n client_need: selectedClientNeeds.map(need => need.value)\n }));\n }\n }, [selectedClientNeeds]);\n\n useEffect(() => {\n setInitialValues({\n ...referral,\n ...((isNil(referral.primaryWorker) && isOON) ?\n { primaryWorker: primaryWorkers.find((worker) => worker.id === currentEmployee.id) } :\n null\n ),\n ...(crtb854ForwardingSuperset && referralDescription) ? { referralDescription } : {},\n })\n }, [primaryWorkers, currentEmployee.id, index, isOON, referral, referralDescription]);\n\n useEffect(() => {\n if (!isEmpty(uploadedFiles)) {\n updateAttachments(uploadedFiles);\n }\n }, [uploadedFiles]);\n\n useEffect(() => {\n initializePaymentFormValues();\n }, [initializePaymentFormValues]);\n const showClientNeeds = featureFlagCMultiplelientNeeds && !isEmpty(clientNeeds);\n\n const validateOpenDate = (date) => { \n try {\n const openDate = new Date(parseInt(date) * 1000);\n const maxDate = new Date(parseInt(today) * 1000);\n const minDate = new Date(moment().subtract(1, 'year').unix() * 1000);\n \n return (isNaN(openDate.getTime()) || openDate.getTime() < minDate || openDate.getTime() > maxDate) ? false : true;\n } catch (error) {\n console.error('Error validating open date', error);\n return false;\n }\n }\n\n\n\n return (\n <Form\n initialValues={initialValues}\n onSubmit={() => { }}\n validate={(values) => validateForm({\n values,\n isOON,\n showClientNeeds,\n showNetworkSelect,\n feeScheduleProgram,\n validateOpenDate,\n validateCostAmount,\n validateUnitAmount,\n fspUtils,\n setReferralErrors,\n index\n })}\n mutators={{\n setFieldTouched: (args, state) => {\n const [name, touched] = args;\n const field = state.fields[name];\n if (field) {\n field.touched = !!touched;\n }\n }\n }}\n render={({ form, values }) => {\n onSetForm && onSetForm(form);\n return (\n <>\n <FormSpy\n subscription={{ values: true }}\n onChange={onChange}\n />\n <div className={\"bg-white border border-solid border-blue-border rounded md:w-4/6 lg:w-4/6\"} style={{ marginLeft: expandReferralsCard && '-7.5rem'}}>\n <div className=\"p-5 bg-dark-fill-blue\">\n <h2 className=\"text-xl font-black mb-1\">\n {referralTitle}\n </h2>\n {!newLanguageDashboard && <h3>\n {referralSubtitle}\n </h3>}\n </div>\n <div className=\"p-5\">\n {!newLanguageDashboard && isOON && (\n <div className=\"bg-alert-yellow border border-solid border-canary-yellow rounded p-3 mb-5\">\n <p className=\"text-brand-blue\">\n You need to contact these programs directly because\n they're not receiving referrals on the Unite Us Platform.\n </p>\n </div>\n )}\n <h5>PROGRAMS</h5>\n {programs.map((program) => {\n const menuIsOpen = isEmpty(moveReferralMenus) ? false : moveReferralMenus?.find((p) => p.id === program.id)?.menuIsOpen;\n\n const cannotMoveReasons = {}\n unselected.map((i) => {\n return cannotMoveReasons[i] = cannotMoveToReferralReasons({ program, referral, referrals, index: i, currentProvider })\n })\n\n return (\n <ReferralProgramCard\n key={`referral-program-${program?.id}-card`}\n program={program}\n onClick={onProgramClick}\n isOON={programIsOffPlatform(program)}\n menuIsOpen={menuIsOpen}\n unselected={unselected}\n referral={referral}\n removeProgram={removeProgram}\n moveToNewReferral={moveToNewReferral}\n moveToExistingReferral={moveToExistingReferral}\n cannotMoveReasons={cannotMoveReasons}\n />\n );\n })}\n <p className=\"text-center text-dark-grey my-10\">\n Click on the three-dot icon to edit referral groupings.\n {hasDraftReferral ? (\n <div>\n To add more programs, go to the <a onClick={navigateToAddResources}>Add Resources</a> page.\n </div>\n ) : null}\n </p>\n\n {showNetworkSelect && (\n <div className=\"mb-10\">\n <Field\n name=\"network\"\n required\n key={`referral-${index}-network`}\n >\n {(params) => (\n <SelectField\n required\n id=\"network-selection\"\n label=\"Network Selection\"\n placeholder=\"Choose one...\"\n options={networks}\n labelKey=\"name\"\n valueKey=\"id\"\n validations={isRequired}\n {...params}\n />\n )}\n </Field>\n </div>\n )}\n\n {feeScheduleProgram?.authorization_required && (\n <AuthorizationSubform \n feeScheduleProgram={feeScheduleProgram}\n formValues={values}\n setReferralErrors={(errors) => setReferralErrors(index, errors)} \n />\n )}\n\n {newLanguageDashboard && isOON && <h5 className='mb-2'>CASE INFORMATION</h5>}\n\n {newLanguageDashboard && isOON && (\n <div className=\"bg-alert-yellow border border-solid border-canary-yellow rounded p-3 mb-5\">\n <p className=\"text-brand-blue\">\n These programs aren't accepting referrals in Unite Us.\n We'll create an off-platform case where you can document communication with or services provided by the program.\n </p>\n </div>\n )}\n\n <Field\n name=\"description\"\n required\n key={`referral-${index}-description`}\n >\n {(params) => (\n <TextField\n afterLabelContent={(\n <InfoPanel\n className=\"mb-4 mt-2\"\n message={REFERRAL_PII_PHI_DESCRIPTION}\n />\n )}\n id=\"referral-description\"\n label={newLanguageDashboard ? \"Description\" : \"Referral Description\"}\n placeholder={newLanguageDashboard ? \"E.g. Client needs food assistance. These programs are off-platform and need to be contacted in order to facilitate the referral.\" : \"Describe your client's current situation and reason for referral.\"}\n rows={3}\n inline={false}\n validations={isRequired}\n required\n style={source === 'emr' && get(params, 'meta.touched') && !get(params, 'meta.valid') ? { text: { 'border-color': 'red' } } : {}}\n {...params}\n />\n )}\n </Field>\n\n { isOON && (\n <Field\n name=\"opened_date\"\n required\n key={`opened-${index}-date`}\n >\n {(params) => (\n <DateField\n required\n id=\"opened-date\"\n label={newLanguageDashboard ? \"Case open date\": \"Open date\"}\n validations={validateOpenDate(params.input.value)}\n minDate={moment().subtract(1, 'year').unix()}\n maxDate={today}\n style={source === 'emr' && get(params, 'meta.touched') && !get(params, 'meta.valid') ? { text: { 'border-color': 'red' } } : {}}\n {...params}\n />\n )}\n </Field>) }\n\n {isOON && (\n <Field\n name=\"primaryWorker\"\n required\n key={`referral-${index}-primary-worker`}\n >\n {(params) => (\n <SelectField\n required\n id=\"primary-worker\"\n label=\"Primary Worker\"\n placeholder=\"Choose one...\"\n loadOptions={(search) => setQuery(search)}\n options={primaryWorkers}\n labelKey=\"full_name\"\n valueKey=\"id\"\n validations={isRequired}\n {...params}\n />\n )}\n </Field>\n )}\n\n {showClientNeeds && (\n <>\n <p className=\"mb-4 mt-2 text-dark-blue\">Select the identified need from the client’s screening or assessment that relates to this referral.</p>\n <Field\n name=\"client_need\"\n required\n key={`associated-${index}-need`}\n >\n {(params) => (\n <ReferralClientNeedsField params={params} clientNeeds={clientNeeds} />\n )}\n </Field>\n\n </>\n )}\n\n {attachableDocuments && (\n <div className=\"upload-documents\">\n <h5>Documents</h5>\n <ContactDocumentsSelector documentFields={attachableDocuments} />\n </div>\n )}\n\n {/* Attachment area */}\n <FileUpload\n rejectedFiles={rejectedFiles}\n setRejectedFiles={setRejectedFiles}\n setUploadedFiles={setUploadedFiles}\n uploadedFiles={attachments || []}\n />\n </div>\n </div>\n </>\n )}}\n />\n )\n}\n\nReferralBuilderForm.propTypes = {\n currentEmployee: PropTypes.object.isRequired,\n currentProvider: PropTypes.object.isRequired,\n referral: PropTypes.shape({\n service: PropTypes.shape({\n name: PropTypes.string.isRequired,\n }).isRequired,\n programs: PropTypes.array.isRequired,\n }).isRequired,\n index: PropTypes.number.isRequired,\n onChange: PropTypes.func.isRequired,\n unselected: PropTypes.array,\n removeProgram: PropTypes.func.isRequired,\n moveToNewReferral: PropTypes.func.isRequired,\n moveToExistingReferral: PropTypes.func.isRequired,\n onSetForm: PropTypes.func.isRequired,\n setReferralErrors: PropTypes.func.isRequired,\n referralSubtitle: PropTypes.string,\n}\n\nReferralBuilderForm.defaultProps = {\n unselected: [],\n referralSubtitle: '',\n}\n\nexport default ReferralBuilderForm;\n"],"mappings":"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","ignoreList":[]}
|