@unite-us/app-create-referral 0.15.166 → 0.15.168
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/AppReferrals.js +3 -4
- package/dist/AppReferrals.js.map +1 -1
- package/dist/AppReferrals.test.js +27 -20
- package/dist/AppReferrals.test.js.map +1 -1
- package/dist/__testUtils__/mockData/utils.js +13 -19
- package/dist/__testUtils__/mockData/utils.js.map +1 -1
- package/dist/__testUtils__/mockServer/handlers.js +7 -13
- package/dist/__testUtils__/mockServer/handlers.js.map +1 -1
- package/dist/__testUtils__/test-utils.js +10 -15
- package/dist/__testUtils__/test-utils.js.map +1 -1
- package/dist/actions/Document/Contact/Group/fileUploadUtils.js +1 -1
- package/dist/actions/Document/Contact/Group/fileUploadUtils.js.map +1 -1
- package/dist/actions/Group/fetchCoreGroupForms.js +1 -1
- package/dist/actions/Group/fetchCoreGroupForms.js.map +1 -1
- package/dist/actions/Referral/cannotMoveToReferralReasons.js +10 -11
- package/dist/actions/Referral/cannotMoveToReferralReasons.js.map +1 -1
- package/dist/actions/Referral/fetchCoreServices.js +19 -25
- package/dist/actions/Referral/fetchCoreServices.js.map +1 -1
- package/dist/actions/Referral/removeReferralProgram.js +3 -5
- package/dist/actions/Referral/removeReferralProgram.js.map +1 -1
- package/dist/api/ApiHooks.js +39 -36
- package/dist/api/ApiHooks.js.map +1 -1
- package/dist/api/config.js +9 -8
- package/dist/api/config.js.map +1 -1
- package/dist/common/form/CurrencyField/index.js +3 -5
- package/dist/common/form/CurrencyField/index.js.map +1 -1
- package/dist/common/form/DocumentUploader/components/ContactDocumentsSelector.js +3 -3
- package/dist/common/form/DocumentUploader/components/ContactDocumentsSelector.js.map +1 -1
- package/dist/common/form/DocumentUploader/components/DocumentsListView.js +1 -1
- package/dist/common/form/DocumentUploader/components/DocumentsListView.js.map +1 -1
- package/dist/common/form/FileUploadV2/FileUpload.js +27 -15
- package/dist/common/form/FileUploadV2/FileUpload.js.map +1 -1
- package/dist/common/form/FileUploadV2/FileUpload.test.js +6 -10
- package/dist/common/form/FileUploadV2/FileUpload.test.js.map +1 -1
- package/dist/common/form/FileUploadV2/components/FilePreviewWrapper.js +6 -7
- package/dist/common/form/FileUploadV2/components/FilePreviewWrapper.js.map +1 -1
- package/dist/common/form/FormForm/index.js +10 -10
- package/dist/common/form/FormForm/index.js.map +1 -1
- package/dist/components/DollarAmount.js +2 -2
- package/dist/components/DollarAmount.js.map +1 -1
- package/dist/components/LineItem.js +1 -1
- package/dist/components/LineItem.js.map +1 -1
- package/dist/components/ReferralStepper.js +4 -5
- package/dist/components/ReferralStepper.js.map +1 -1
- package/dist/components/SearchableField.js +3 -4
- package/dist/components/SearchableField.js.map +1 -1
- package/dist/components/Stepper.js +7 -7
- package/dist/components/Stepper.js.map +1 -1
- package/dist/components/modal/Dialog.js +15 -10
- package/dist/components/modal/Dialog.js.map +1 -1
- package/dist/components/service_authorization/AuthorizationSpendCard.js +5 -5
- package/dist/components/service_authorization/AuthorizationSpendCard.js.map +1 -1
- package/dist/components/service_authorization/CapsInfo.js +10 -10
- package/dist/components/service_authorization/CapsInfo.js.map +1 -1
- package/dist/components/service_authorization/CaseStatus.js +2 -2
- package/dist/components/service_authorization/CaseStatus.js.map +1 -1
- package/dist/components/service_authorization/PreviousAuthorizationRequestsDetails.js +1 -2
- package/dist/components/service_authorization/PreviousAuthorizationRequestsDetails.js.map +1 -1
- package/dist/components/service_authorization/ReferralAuthSpendExpandable.js +2 -2
- package/dist/components/service_authorization/ReferralAuthSpendExpandable.js.map +1 -1
- package/dist/components/service_authorization/ReferralAuthorizationRequestSummary.js +4 -4
- package/dist/components/service_authorization/ReferralAuthorizationRequestSummary.js.map +1 -1
- package/dist/components/service_authorization/formatShortDate.js +1 -1
- package/dist/components/service_authorization/formatShortDate.js.map +1 -1
- package/dist/components/spinners/Spinner/Spinner.js +1 -1
- package/dist/components/spinners/Spinner/Spinner.js.map +1 -1
- package/dist/context/AppCreateReferralProvider.js +4 -4
- package/dist/context/AppCreateReferralProvider.js.map +1 -1
- package/dist/context/state.js +14 -6
- package/dist/context/state.js.map +1 -1
- package/dist/context/withAppCreateReferralContext.js +3 -5
- package/dist/context/withAppCreateReferralContext.js.map +1 -1
- package/dist/hooks/__tests__/useCreateReferrals.test.js +19 -17
- package/dist/hooks/__tests__/useCreateReferrals.test.js.map +1 -1
- package/dist/hooks/sendReferral.js +38 -35
- package/dist/hooks/sendReferral.js.map +1 -1
- package/dist/hooks/useClinicalModificationOptions.js +1 -2
- package/dist/hooks/useClinicalModificationOptions.js.map +1 -1
- package/dist/hooks/useCreateReferrals.js +107 -90
- package/dist/hooks/useCreateReferrals.js.map +1 -1
- package/dist/hooks/useCreateResourceList.js +11 -12
- package/dist/hooks/useCreateResourceList.js.map +1 -1
- package/dist/hooks/useCreateShareEvent.js +2 -2
- package/dist/hooks/useCreateShareEvent.js.map +1 -1
- package/dist/hooks/useForwardReferral.js +36 -36
- package/dist/hooks/useForwardReferral.js.map +1 -1
- package/dist/hooks/useUpdateResourceList.js +16 -17
- package/dist/hooks/useUpdateResourceList.js.map +1 -1
- package/dist/pages/builder/ReferralBuilder.js +32 -31
- package/dist/pages/builder/ReferralBuilder.js.map +1 -1
- package/dist/pages/builder/ReferralBuilderForm.js +7 -10
- package/dist/pages/builder/ReferralBuilderForm.js.map +1 -1
- package/dist/pages/builder/ReferralBuilderFormContent.js +43 -36
- package/dist/pages/builder/ReferralBuilderFormContent.js.map +1 -1
- package/dist/pages/builder/__tests__/AuthorizationRequiredPrograms.test.js +1 -1
- package/dist/pages/builder/__tests__/AuthorizationRequiredPrograms.test.js.map +1 -1
- package/dist/pages/builder/__tests__/NonSensitiveGroupedPrograms.test.js +16 -16
- package/dist/pages/builder/__tests__/NonSensitiveGroupedPrograms.test.js.map +1 -1
- package/dist/pages/builder/__tests__/NonSensitiveSingleProgram.test.js +12 -12
- package/dist/pages/builder/__tests__/NonSensitiveSingleProgram.test.js.map +1 -1
- package/dist/pages/builder/__tests__/ReferralBuilderForm.attachments.test.js +19 -14
- package/dist/pages/builder/__tests__/ReferralBuilderForm.attachments.test.js.map +1 -1
- package/dist/pages/builder/__tests__/SensitiveProviderGroupedPrograms.test.js +12 -12
- package/dist/pages/builder/__tests__/SensitiveProviderGroupedPrograms.test.js.map +1 -1
- package/dist/pages/builder/__tests__/SensitiveServiceGroupedPrograms.test.js +1 -1
- package/dist/pages/builder/__tests__/SensitiveServiceGroupedPrograms.test.js.map +1 -1
- package/dist/pages/builder/__tests__/SensitiveServiceSensitiveProviderGroupedPrograms.test.js +7 -7
- package/dist/pages/builder/__tests__/SensitiveServiceSensitiveProviderGroupedPrograms.test.js.map +1 -1
- package/dist/pages/builder/__tests__/SensitiveSingleProgram.test.js +15 -17
- package/dist/pages/builder/__tests__/SensitiveSingleProgram.test.js.map +1 -1
- package/dist/pages/builder/__tests__/buildDraftState.test.js +4 -6
- package/dist/pages/builder/__tests__/buildDraftState.test.js.map +1 -1
- package/dist/pages/builder/__tests__/buildGroupedReferrals.networkBug.test.js +4 -10
- package/dist/pages/builder/__tests__/buildGroupedReferrals.networkBug.test.js.map +1 -1
- package/dist/pages/builder/buildDraftState.js +2 -2
- package/dist/pages/builder/buildDraftState.js.map +1 -1
- package/dist/pages/builder/components/AuthorizationSubform.js +19 -19
- package/dist/pages/builder/components/AuthorizationSubform.js.map +1 -1
- package/dist/pages/builder/components/ChooseOneServiceTypeModal.js +5 -6
- package/dist/pages/builder/components/ChooseOneServiceTypeModal.js.map +1 -1
- package/dist/pages/builder/components/ProgramHeader.js +1 -1
- package/dist/pages/builder/components/ProgramHeader.js.map +1 -1
- package/dist/pages/builder/components/ProgramMenu.js +1 -1
- package/dist/pages/builder/components/ProgramMenu.js.map +1 -1
- package/dist/pages/builder/components/ReferralBuilderContent.js +5 -4
- package/dist/pages/builder/components/ReferralBuilderContent.js.map +1 -1
- package/dist/pages/builder/components/ReferralCard.js +11 -11
- package/dist/pages/builder/components/ReferralCard.js.map +1 -1
- package/dist/pages/builder/components/ReferralClientNeedsField.js +4 -6
- package/dist/pages/builder/components/ReferralClientNeedsField.js.map +1 -1
- package/dist/pages/builder/components/ReferralProgramCard.js +2 -2
- package/dist/pages/builder/components/ReferralProgramCard.js.map +1 -1
- package/dist/pages/builder/components/ReferralProgramMenu.js +3 -3
- package/dist/pages/builder/components/ReferralProgramMenu.js.map +1 -1
- package/dist/pages/builder/constants.js +18 -7
- package/dist/pages/builder/constants.js.map +1 -1
- package/dist/pages/builder/hooks/useBuildReferrals.js +6 -13
- package/dist/pages/builder/hooks/useBuildReferrals.js.map +1 -1
- package/dist/pages/builder/hooks/useReferralMutations.js +22 -15
- package/dist/pages/builder/hooks/useReferralMutations.js.map +1 -1
- package/dist/pages/builder/utils/buildGroupedReferrals.js +14 -25
- package/dist/pages/builder/utils/buildGroupedReferrals.js.map +1 -1
- package/dist/pages/builder/utils/buildGroupedReferralsHelpers.js +20 -40
- package/dist/pages/builder/utils/buildGroupedReferralsHelpers.js.map +1 -1
- package/dist/pages/builder/utils/formatProgramDetail.js +16 -18
- package/dist/pages/builder/utils/formatProgramDetail.js.map +1 -1
- package/dist/pages/builder/utils/referralBuilderFormDraftAuth.js +26 -26
- package/dist/pages/builder/utils/referralBuilderFormDraftAuth.js.map +1 -1
- package/dist/pages/builder/utils/referralBuilderFormUtils.js +15 -24
- package/dist/pages/builder/utils/referralBuilderFormUtils.js.map +1 -1
- package/dist/pages/builder/utils/referralBuilderFormValidation.js +20 -24
- package/dist/pages/builder/utils/referralBuilderFormValidation.js.map +1 -1
- package/dist/pages/builder/utils/referralBuilderUtils.js +20 -34
- package/dist/pages/builder/utils/referralBuilderUtils.js.map +1 -1
- package/dist/pages/builder/utils.js +45 -64
- package/dist/pages/builder/utils.js.map +1 -1
- package/dist/pages/review/DropdownMultiplesReferrals.js +12 -14
- package/dist/pages/review/DropdownMultiplesReferrals.js.map +1 -1
- package/dist/pages/review/ReferralsSent.js +19 -26
- package/dist/pages/review/ReferralsSent.js.map +1 -1
- package/dist/pages/review/Review.js +69 -88
- package/dist/pages/review/Review.js.map +1 -1
- package/dist/pages/review/SuccessReferralRedesign.js +2 -2
- package/dist/pages/review/SuccessReferralRedesign.js.map +1 -1
- package/dist/pages/review/__tests__/ReferralsSent.test.js +16 -16
- package/dist/pages/review/__tests__/ReferralsSent.test.js.map +1 -1
- package/dist/pages/review/__tests__/Review.test.js +30 -22
- package/dist/pages/review/__tests__/Review.test.js.map +1 -1
- package/dist/pages/review/constants.js +3 -3
- package/dist/pages/review/constants.js.map +1 -1
- package/dist/pages/review/referralStatusRedesign.js +5 -6
- package/dist/pages/review/referralStatusRedesign.js.map +1 -1
- package/dist/pages/supporting-info/SupportingInfo.js +14 -21
- package/dist/pages/supporting-info/SupportingInfo.js.map +1 -1
- package/dist/utils/attachmentUtils.js +1 -1
- package/dist/utils/attachmentUtils.js.map +1 -1
- package/dist/utils/handleDraftSaveResponse.js +1 -1
- package/dist/utils/handleDraftSaveResponse.js.map +1 -1
- package/dist/utils/referralToConsent.js +5 -8
- package/dist/utils/referralToConsent.js.map +1 -1
- package/dist/utils/validateCostAmount.js +1 -1
- package/dist/utils/validateCostAmount.js.map +1 -1
- package/dist/utils/validateUnitAmount.js +1 -1
- package/dist/utils/validateUnitAmount.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReferralProgramCard.js","names":["React","useState","useEffect","PropTypes","Icon","getProgramStatusDisplay","isUnlistedProgram","DetailsDrawer","formatForProgramDetail","ProgramMenu","ProgramHeader","jsx","_jsx","jsxs","_jsxs","ReferralProgramCard","_ref","program","onClick","isOON","menuIsOpen","unselected","referral","cannotMoveReasons","removeProgram","moveToNewReferral","moveToExistingReferral","canChangePrograms","selectedProgram","setSelectedProgram","undefined","currentProgram","setCurrentProgram","programStatus","receiving_referrals","reasonMenuIsOpen","setReasonMenuIsOpen","moveToReferralIndex","setMoveToReferralIndex","preventUngroup","prevent_ungroup","moveToNewReferralDisabled","programs","length","icon","iconClasses","concat","onMoveToExistingReferralClick","index","focusThreeDotIcon","onMoveToExistingReferralReasonsHover","onMoveToNewReferralClick","onRemoveClick","name","id","service","setTimeout","element","document","querySelector","parentElement","focus","isLoadingDetails","setIsLoadingDetails","onDetailsClick","formatted","renderDetailsButton","type","className","children","size","color","renderProgramMenu","renderThreeDotIcon","ariaLabel","renderWithDetails","isLoading","propTypes","shape","string","isRequired","bool","func","array","object","defaultProps"],"sources":["../../../../src/pages/builder/components/ReferralProgramCard.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { PropTypes } from 'prop-types';\nimport { Icon } from '@unite-us/app-components';\nimport { getProgramStatusDisplay, isUnlistedProgram } from '../utils';\nimport DetailsDrawer from './DetailsDrawer';\nimport { formatForProgramDetail } from '../utils/formatProgramDetail';\nimport ProgramMenu from './ProgramMenu';\nimport ProgramHeader from './ProgramHeader';\n\nexport function ReferralProgramCard({\n program,\n onClick,\n isOON,\n menuIsOpen,\n unselected,\n referral,\n cannotMoveReasons,\n removeProgram,\n moveToNewReferral,\n moveToExistingReferral,\n canChangePrograms,\n}) {\n const [selectedProgram, setSelectedProgram] = useState(undefined);\n const [currentProgram, setCurrentProgram] = useState(undefined);\n const programStatus = getProgramStatusDisplay(program.receiving_referrals, isOON);\n const [reasonMenuIsOpen, setReasonMenuIsOpen] = useState(false);\n const [moveToReferralIndex, setMoveToReferralIndex] = useState(null);\n const preventUngroup = referral.prevent_ungroup;\n const moveToNewReferralDisabled = referral.programs.length < 2 || preventUngroup;\n const icon = menuIsOpen ? \"CrossCircleO\" : \"EllipsisV\";\n const iconClasses = `fill-current text-blue rotate-90 ${menuIsOpen ? 'w-6 h-6' : ''}`;\n\n const onMoveToExistingReferralClick = (index) => {\n setMoveToReferralIndex(index + 1);\n\n if (cannotMoveReasons[index].length) {\n setReasonMenuIsOpen(true);\n } else {\n moveToExistingReferral(index, program);\n }\n focusThreeDotIcon();\n }\n\n const onMoveToExistingReferralReasonsHover = (index) => {\n setMoveToReferralIndex(index + 1);\n\n if (cannotMoveReasons[index].length) {\n setReasonMenuIsOpen(true);\n }\n focusThreeDotIcon();\n }\n\n const onMoveToNewReferralClick = () => {\n if (preventUngroup) return;\n\n moveToNewReferral(program);\n setReasonMenuIsOpen(false);\n focusThreeDotIcon();\n }\n\n const onRemoveClick = () => {\n removeProgram(program.name, program.id, referral.service.id);\n focusThreeDotIcon();\n }\n\n const focusThreeDotIcon = () => {\n setTimeout(() => {\n const element = document.querySelector('#edit_referral_groupings');\n if (element && element.parentElement) {\n element.parentElement.focus();\n }\n }, 100); \n }\n\n useEffect(() => {\n if (!menuIsOpen) {\n setReasonMenuIsOpen(false);\n }\n }, [menuIsOpen])\n\n const [isLoadingDetails, setIsLoadingDetails] = useState(false);\n\n const onDetailsClick = async () => {\n if (currentProgram) {\n setSelectedProgram(currentProgram);\n return;\n }\n setIsLoadingDetails(true);\n const formatted = await formatForProgramDetail(program);\n setCurrentProgram(formatted);\n setSelectedProgram(formatted);\n setIsLoadingDetails(false);\n };\n\n const renderDetailsButton = () => {\n if (isUnlistedProgram(program)) return;\n\n return (\n <button\n type=\"button\"\n onClick={onDetailsClick}\n className=\"text-current-blue z-0 flex items-center\"\n >\n <Icon icon=\"Eye\" className=\"mr-1\" size={20} color=\"action-blue\" />\n Details\n </button>\n );\n };\n\n const renderProgramMenu = () => (\n <ProgramMenu\n menuIsOpen={menuIsOpen}\n onClick={onClick}\n program={program}\n unselected={unselected}\n preventUngroup={preventUngroup}\n onMoveToExistingReferralClick={onMoveToExistingReferralClick}\n onMoveToExistingReferralReasonsHover={onMoveToExistingReferralReasonsHover}\n moveToNewReferralDisabled={moveToNewReferralDisabled}\n onMoveToNewReferralClick={onMoveToNewReferralClick}\n setReasonMenuIsOpen={setReasonMenuIsOpen}\n onRemoveClick={onRemoveClick}\n reasonMenuIsOpen={reasonMenuIsOpen}\n moveToReferralIndex={moveToReferralIndex}\n cannotMoveReasons={cannotMoveReasons}\n />\n );\n\n const renderThreeDotIcon = () => (\n <Icon\n id='edit_referral_groupings'\n icon={icon}\n className={iconClasses}\n onClick={() => onClick(program?.id)}\n ariaLabel=\"Edit referral groupings\"\n />\n );\n\n const renderWithDetails = () => (\n <div className=\"flex my-4\">\n <div className=\"flex-auto p-0\">\n <div className=\"grid grid-cols-12 bg-white border border-solid border-blue-border rounded\">\n <div className=\"col-span-10 md:col-span-8 px-5 py-2\">\n <ProgramHeader program={program} programStatus={programStatus} />\n </div>\n <div className=\"col-span-2 md:col-span-4 flex justify-center items-center\">\n <DetailsDrawer selectedProgram={selectedProgram} setSelectedProgram={setSelectedProgram} isLoading={isLoadingDetails} />\n {renderDetailsButton()}\n </div>\n </div>\n </div>\n <div className=\"p-0 flex justify-center items-center ml-4 w-8\">\n {canChangePrograms && renderThreeDotIcon()}\n </div>\n {canChangePrograms && renderProgramMenu()}\n </div>\n );\n\n return renderWithDetails();\n}\n\nReferralProgramCard.propTypes = {\n program: PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n receiving_referrals: PropTypes.bool,\n }).isRequired,\n onClick: PropTypes.func.isRequired,\n isOON: PropTypes.bool.isRequired,\n menuIsOpen: PropTypes.bool,\n unselected: PropTypes.array,\n referral: PropTypes.object.isRequired,\n moveToNewReferral: PropTypes.func.isRequired,\n moveToExistingReferral: PropTypes.func.isRequired,\n canChangePrograms: PropTypes.bool,\n cannotMoveReasons: PropTypes.object,\n}\n\nReferralProgramCard.defaultProps = {\n menuIsOpen: false,\n unselected: [],\n canChangePrograms: true,\n cannotMoveReasons: {},\n}\n\nexport default ReferralProgramCard;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ReferralProgramCard.js","names":["React","useState","useEffect","PropTypes","Icon","getProgramStatusDisplay","isUnlistedProgram","DetailsDrawer","formatForProgramDetail","ProgramMenu","ProgramHeader","jsx","_jsx","jsxs","_jsxs","ReferralProgramCard","_ref","program","onClick","isOON","menuIsOpen","unselected","referral","cannotMoveReasons","removeProgram","moveToNewReferral","moveToExistingReferral","canChangePrograms","selectedProgram","setSelectedProgram","undefined","currentProgram","setCurrentProgram","programStatus","receiving_referrals","reasonMenuIsOpen","setReasonMenuIsOpen","moveToReferralIndex","setMoveToReferralIndex","preventUngroup","prevent_ungroup","moveToNewReferralDisabled","programs","length","icon","iconClasses","onMoveToExistingReferralClick","index","focusThreeDotIcon","onMoveToExistingReferralReasonsHover","onMoveToNewReferralClick","onRemoveClick","name","id","service","setTimeout","element","document","querySelector","parentElement","focus","isLoadingDetails","setIsLoadingDetails","onDetailsClick","formatted","renderDetailsButton","type","className","children","size","color","renderProgramMenu","renderThreeDotIcon","ariaLabel","renderWithDetails","isLoading","propTypes","shape","string","isRequired","bool","func","array","object","defaultProps"],"sources":["../../../../src/pages/builder/components/ReferralProgramCard.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { PropTypes } from 'prop-types';\nimport { Icon } from '@unite-us/app-components';\nimport { getProgramStatusDisplay, isUnlistedProgram } from '../utils';\nimport DetailsDrawer from './DetailsDrawer';\nimport { formatForProgramDetail } from '../utils/formatProgramDetail';\nimport ProgramMenu from './ProgramMenu';\nimport ProgramHeader from './ProgramHeader';\n\nexport function ReferralProgramCard({\n program,\n onClick,\n isOON,\n menuIsOpen,\n unselected,\n referral,\n cannotMoveReasons,\n removeProgram,\n moveToNewReferral,\n moveToExistingReferral,\n canChangePrograms,\n}) {\n const [selectedProgram, setSelectedProgram] = useState(undefined);\n const [currentProgram, setCurrentProgram] = useState(undefined);\n const programStatus = getProgramStatusDisplay(program.receiving_referrals, isOON);\n const [reasonMenuIsOpen, setReasonMenuIsOpen] = useState(false);\n const [moveToReferralIndex, setMoveToReferralIndex] = useState(null);\n const preventUngroup = referral.prevent_ungroup;\n const moveToNewReferralDisabled = referral.programs.length < 2 || preventUngroup;\n const icon = menuIsOpen ? \"CrossCircleO\" : \"EllipsisV\";\n const iconClasses = `fill-current text-blue rotate-90 ${menuIsOpen ? 'w-6 h-6' : ''}`;\n\n const onMoveToExistingReferralClick = (index) => {\n setMoveToReferralIndex(index + 1);\n\n if (cannotMoveReasons[index].length) {\n setReasonMenuIsOpen(true);\n } else {\n moveToExistingReferral(index, program);\n }\n focusThreeDotIcon();\n }\n\n const onMoveToExistingReferralReasonsHover = (index) => {\n setMoveToReferralIndex(index + 1);\n\n if (cannotMoveReasons[index].length) {\n setReasonMenuIsOpen(true);\n }\n focusThreeDotIcon();\n }\n\n const onMoveToNewReferralClick = () => {\n if (preventUngroup) return;\n\n moveToNewReferral(program);\n setReasonMenuIsOpen(false);\n focusThreeDotIcon();\n }\n\n const onRemoveClick = () => {\n removeProgram(program.name, program.id, referral.service.id);\n focusThreeDotIcon();\n }\n\n const focusThreeDotIcon = () => {\n setTimeout(() => {\n const element = document.querySelector('#edit_referral_groupings');\n if (element && element.parentElement) {\n element.parentElement.focus();\n }\n }, 100); \n }\n\n useEffect(() => {\n if (!menuIsOpen) {\n setReasonMenuIsOpen(false);\n }\n }, [menuIsOpen])\n\n const [isLoadingDetails, setIsLoadingDetails] = useState(false);\n\n const onDetailsClick = async () => {\n if (currentProgram) {\n setSelectedProgram(currentProgram);\n return;\n }\n setIsLoadingDetails(true);\n const formatted = await formatForProgramDetail(program);\n setCurrentProgram(formatted);\n setSelectedProgram(formatted);\n setIsLoadingDetails(false);\n };\n\n const renderDetailsButton = () => {\n if (isUnlistedProgram(program)) return;\n\n return (\n <button\n type=\"button\"\n onClick={onDetailsClick}\n className=\"text-current-blue z-0 flex items-center\"\n >\n <Icon icon=\"Eye\" className=\"mr-1\" size={20} color=\"action-blue\" />\n Details\n </button>\n );\n };\n\n const renderProgramMenu = () => (\n <ProgramMenu\n menuIsOpen={menuIsOpen}\n onClick={onClick}\n program={program}\n unselected={unselected}\n preventUngroup={preventUngroup}\n onMoveToExistingReferralClick={onMoveToExistingReferralClick}\n onMoveToExistingReferralReasonsHover={onMoveToExistingReferralReasonsHover}\n moveToNewReferralDisabled={moveToNewReferralDisabled}\n onMoveToNewReferralClick={onMoveToNewReferralClick}\n setReasonMenuIsOpen={setReasonMenuIsOpen}\n onRemoveClick={onRemoveClick}\n reasonMenuIsOpen={reasonMenuIsOpen}\n moveToReferralIndex={moveToReferralIndex}\n cannotMoveReasons={cannotMoveReasons}\n />\n );\n\n const renderThreeDotIcon = () => (\n <Icon\n id='edit_referral_groupings'\n icon={icon}\n className={iconClasses}\n onClick={() => onClick(program?.id)}\n ariaLabel=\"Edit referral groupings\"\n />\n );\n\n const renderWithDetails = () => (\n <div className=\"flex my-4\">\n <div className=\"flex-auto p-0\">\n <div className=\"grid grid-cols-12 bg-white border border-solid border-blue-border rounded\">\n <div className=\"col-span-10 md:col-span-8 px-5 py-2\">\n <ProgramHeader program={program} programStatus={programStatus} />\n </div>\n <div className=\"col-span-2 md:col-span-4 flex justify-center items-center\">\n <DetailsDrawer selectedProgram={selectedProgram} setSelectedProgram={setSelectedProgram} isLoading={isLoadingDetails} />\n {renderDetailsButton()}\n </div>\n </div>\n </div>\n <div className=\"p-0 flex justify-center items-center ml-4 w-8\">\n {canChangePrograms && renderThreeDotIcon()}\n </div>\n {canChangePrograms && renderProgramMenu()}\n </div>\n );\n\n return renderWithDetails();\n}\n\nReferralProgramCard.propTypes = {\n program: PropTypes.shape({\n id: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n receiving_referrals: PropTypes.bool,\n }).isRequired,\n onClick: PropTypes.func.isRequired,\n isOON: PropTypes.bool.isRequired,\n menuIsOpen: PropTypes.bool,\n unselected: PropTypes.array,\n referral: PropTypes.object.isRequired,\n moveToNewReferral: PropTypes.func.isRequired,\n moveToExistingReferral: PropTypes.func.isRequired,\n canChangePrograms: PropTypes.bool,\n cannotMoveReasons: PropTypes.object,\n}\n\nReferralProgramCard.defaultProps = {\n menuIsOpen: false,\n unselected: [],\n canChangePrograms: true,\n cannotMoveReasons: {},\n}\n\nexport default ReferralProgramCard;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -65,7 +65,7 @@ const ReferralProgramMenu = _ref => {
|
|
|
65
65
|
onMouseEnter: () => onMoveToExistingReferralReasonsHover(index),
|
|
66
66
|
onMouseOut: () => setReasonMenuIsOpen(false),
|
|
67
67
|
onKeyDown: e => handleKeyPress(e, () => onMoveToExistingReferralClick(index)),
|
|
68
|
-
className:
|
|
68
|
+
className: `w-full text-left ${!isEmpty(cannotMoveReasons[index]) ? 'text-gray-400' : ''}`,
|
|
69
69
|
children: ["Move to Referral ", index + 1]
|
|
70
70
|
})
|
|
71
71
|
})), !moveToNewReferralDisabled ? /*#__PURE__*/_jsx("li", {
|
|
@@ -75,7 +75,7 @@ const ReferralProgramMenu = _ref => {
|
|
|
75
75
|
onKeyDown: e => handleKeyPress(e, onMoveToNewReferralClick),
|
|
76
76
|
onMouseEnter: preventUngroup ? () => handleShowUngroupMessageError() : null,
|
|
77
77
|
onMouseOut: preventUngroup ? () => handleShowUngroupMessageError() : null,
|
|
78
|
-
className:
|
|
78
|
+
className: `w-full text-left ${preventUngroup ? 'text-gray-400' : ''}`,
|
|
79
79
|
children: "Move to new referral"
|
|
80
80
|
})
|
|
81
81
|
}) : null, /*#__PURE__*/_jsx("li", {
|
|
@@ -107,7 +107,7 @@ const ReferralProgramMenu = _ref => {
|
|
|
107
107
|
children: reasons.map((reason, index) => /*#__PURE__*/_jsx("li", {
|
|
108
108
|
className: "text-red ml-6",
|
|
109
109
|
children: reason
|
|
110
|
-
},
|
|
110
|
+
}, `cannot-move-reason-${index}`))
|
|
111
111
|
})]
|
|
112
112
|
}) : null, showUngroupMessageError ? /*#__PURE__*/_jsxs("div", {
|
|
113
113
|
className: "mr-2 p-4 min-w-2/3 bg-med-pale-blue border border-solid border-blue-border z-30",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReferralProgramMenu.js","names":["React","useEffect","useRef","useState","PropTypes","isEmpty","handleKeyPress","jsxs","_jsxs","jsx","_jsx","ReferralProgramMenu","_ref","unselected","preventUngroup","moveToNewReferralDisabled","onMoveToExistingReferralClick","onMoveToExistingReferralReasonsHover","onMoveToNewReferralClick","onRemoveClick","reasonMenuIsOpen","moveToReferralIndex","cannotMoveReasons","onClickThreeDotIcon","setReasonMenuIsOpen","reasons","referralOptionsMenu","buttonRef","showUngroupMessageError","setShowUngroupMessageError","document","addEventListener","handleClickListener","removeEventListener","event","clickedInside","current","contains","target","handleShowUngroupMessageError","handleButtonClick","nextElement","querySelector","parentElement","focus","error","console","className","children","ref","map","index","onClick","onMouseEnter","onMouseOut","onKeyDown","e","concat","tabIndex","reason","propTypes","array","isRequired","bool","func","number","object","defaultProps"],"sources":["../../../../src/pages/builder/components/ReferralProgramMenu.js"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { PropTypes } from 'prop-types';\nimport { isEmpty } from 'lodash';\nimport { handleKeyPress } from '../utils';\n\nconst ReferralProgramMenu = ({\n unselected,\n preventUngroup,\n moveToNewReferralDisabled,\n onMoveToExistingReferralClick,\n onMoveToExistingReferralReasonsHover,\n onMoveToNewReferralClick,\n onRemoveClick,\n reasonMenuIsOpen,\n moveToReferralIndex,\n cannotMoveReasons,\n onClickThreeDotIcon,\n setReasonMenuIsOpen,\n}) => {\n const reasons = cannotMoveReasons[moveToReferralIndex - 1];\n const referralOptionsMenu = useRef();\n const buttonRef = useRef(null);\n const [showUngroupMessageError, setShowUngroupMessageError] = useState(false);\n\n useEffect(() => {\n document.addEventListener('mousedown', handleClickListener);\n\n return () => document.removeEventListener('mousedown', handleClickListener);\n }, []);\n\n const handleClickListener = (event) => {\n let clickedInside = referralOptionsMenu && referralOptionsMenu.current.contains(event.target);\n if (!clickedInside) {\n onClickThreeDotIcon();\n };\n }\n\n const handleShowUngroupMessageError = () => {\n if (!showUngroupMessageError)\n setShowUngroupMessageError(true);\n else\n setShowUngroupMessageError(false);\n }\n\n const handleButtonClick = () => {\n try {\n onClickThreeDotIcon();\n if (!reasonMenuIsOpen) {\n const nextElement = document.querySelector('#edit_referral_groupings').parentElement;\n if (nextElement) {\n nextElement.focus();\n }\n }\n } catch (error) {\n console.error(error);\n }\n };\n\n return (\n <div className=\"absolute z-20 right-0 mt-10 mr-6\">\n <div className=\"flex flex-row-reverse items-start\">\n <div ref={referralOptionsMenu} className=\"shadow-lg bg-white border border-solid border-blue-border\">\n <ul className=\"cursor-pointer pl-0 list-none\">\n {\n unselected.map((index) => (\n <li className=\"p-3 hover:bg-med-pale-blue\">\n <button\n onClick={() => onMoveToExistingReferralClick(index)}\n onMouseEnter={() => onMoveToExistingReferralReasonsHover(index)}\n onMouseOut={() => setReasonMenuIsOpen(false)}\n onKeyDown={(e) => handleKeyPress(e, () => onMoveToExistingReferralClick(index))}\n className={`w-full text-left ${!isEmpty(cannotMoveReasons[index]) ? 'text-gray-400' : ''}`}\n >\n Move to Referral {index + 1}\n </button>\n </li>\n ))\n }\n {!moveToNewReferralDisabled ? (\n <li className=\"p-3 hover:bg-med-pale-blue\">\n <button\n onClick={onMoveToNewReferralClick}\n onKeyDown={(e) => handleKeyPress(e, onMoveToNewReferralClick)}\n onMouseEnter={preventUngroup ? () => handleShowUngroupMessageError() : null}\n onMouseOut={preventUngroup ? () => handleShowUngroupMessageError() : null}\n className={`w-full text-left ${preventUngroup ? 'text-gray-400' : ''}`}\n >\n Move to new referral\n </button>\n </li>\n ) : null}\n <li\n className=\"p-3 hover:bg-med-pale-blue\"\n onClick={onRemoveClick}\n onKeyDown={(e) => handleKeyPress(e, onRemoveClick)}\n tabIndex={0}\n >\n Remove\n </li>\n <li className=\"p-3 hover:bg-med-pale-blue\">\n <button\n ref={buttonRef}\n onClick={handleButtonClick}\n onKeyDown={(e) => handleKeyPress(e, handleButtonClick)}\n aria-expanded={reasonMenuIsOpen}\n aria-controls=\"program-menu\"\n className=\"w-full text-left\"\n >\n Close menu\n </button>\n </li>\n </ul>\n </div>\n {\n reasonMenuIsOpen && !isEmpty(reasons) ? (\n <div className=\"mr-2 p-4 min-w-2/3 bg-med-pale-blue border border-solid border-blue-border z-30\">\n <p className=\"mb-2\">Cannot move to Referral {moveToReferralIndex} for the following reasons:</p>\n <ul className=\"list-disc pl-0\">\n {\n reasons.map((reason, index) => (\n <li className=\"text-red ml-6\" key={`cannot-move-reason-${index}`}>\n {reason}\n </li>\n ))\n }\n </ul>\n </div>\n ) : null\n }\n {\n showUngroupMessageError ? (\n <div className=\"mr-2 p-4 min-w-2/3 bg-med-pale-blue border border-solid border-blue-border z-30\">\n <p className=\"mb-2\">Cannot move to new referral for the following reasons:</p>\n <ul className=\"list-disc pl-0\">\n <li className=\"text-red ml-6\">\n Referrals to a program that requires authorization must be sent as a group.\n </li>\n </ul>\n </div>\n ) : null\n }\n </div>\n </div>\n );\n};\n\nReferralProgramMenu.propTypes = {\n unselected: PropTypes.array.isRequired,\n moveToNewReferralDisabled: PropTypes.bool.isRequired,\n onMoveToExistingReferralClick: PropTypes.func.isRequired,\n onMoveToNewReferralClick: PropTypes.func.isRequired,\n onRemoveClick: PropTypes.func.isRequired,\n reasonMenuIsOpen: PropTypes.bool.isRequired,\n moveToReferralIndex: PropTypes.number.isRequired,\n cannotMoveReasons: PropTypes.object,\n onClickThreeDotIcon: PropTypes.func.isRequired,\n setReasonMenuIsOpen: PropTypes.func.isRequired,\n};\n\nReferralProgramMenu.defaultProps = {\n cannotMoveReasons: {},\n};\n\nexport default ReferralProgramMenu;\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ReferralProgramMenu.js","names":["React","useEffect","useRef","useState","PropTypes","isEmpty","handleKeyPress","jsxs","_jsxs","jsx","_jsx","ReferralProgramMenu","_ref","unselected","preventUngroup","moveToNewReferralDisabled","onMoveToExistingReferralClick","onMoveToExistingReferralReasonsHover","onMoveToNewReferralClick","onRemoveClick","reasonMenuIsOpen","moveToReferralIndex","cannotMoveReasons","onClickThreeDotIcon","setReasonMenuIsOpen","reasons","referralOptionsMenu","buttonRef","showUngroupMessageError","setShowUngroupMessageError","document","addEventListener","handleClickListener","removeEventListener","event","clickedInside","current","contains","target","handleShowUngroupMessageError","handleButtonClick","nextElement","querySelector","parentElement","focus","error","console","className","children","ref","map","index","onClick","onMouseEnter","onMouseOut","onKeyDown","e","tabIndex","reason","propTypes","array","isRequired","bool","func","number","object","defaultProps"],"sources":["../../../../src/pages/builder/components/ReferralProgramMenu.js"],"sourcesContent":["import React, { useEffect, useRef, useState } from 'react';\nimport { PropTypes } from 'prop-types';\nimport { isEmpty } from 'lodash';\nimport { handleKeyPress } from '../utils';\n\nconst ReferralProgramMenu = ({\n unselected,\n preventUngroup,\n moveToNewReferralDisabled,\n onMoveToExistingReferralClick,\n onMoveToExistingReferralReasonsHover,\n onMoveToNewReferralClick,\n onRemoveClick,\n reasonMenuIsOpen,\n moveToReferralIndex,\n cannotMoveReasons,\n onClickThreeDotIcon,\n setReasonMenuIsOpen,\n}) => {\n const reasons = cannotMoveReasons[moveToReferralIndex - 1];\n const referralOptionsMenu = useRef();\n const buttonRef = useRef(null);\n const [showUngroupMessageError, setShowUngroupMessageError] = useState(false);\n\n useEffect(() => {\n document.addEventListener('mousedown', handleClickListener);\n\n return () => document.removeEventListener('mousedown', handleClickListener);\n }, []);\n\n const handleClickListener = (event) => {\n let clickedInside = referralOptionsMenu && referralOptionsMenu.current.contains(event.target);\n if (!clickedInside) {\n onClickThreeDotIcon();\n };\n }\n\n const handleShowUngroupMessageError = () => {\n if (!showUngroupMessageError)\n setShowUngroupMessageError(true);\n else\n setShowUngroupMessageError(false);\n }\n\n const handleButtonClick = () => {\n try {\n onClickThreeDotIcon();\n if (!reasonMenuIsOpen) {\n const nextElement = document.querySelector('#edit_referral_groupings').parentElement;\n if (nextElement) {\n nextElement.focus();\n }\n }\n } catch (error) {\n console.error(error);\n }\n };\n\n return (\n <div className=\"absolute z-20 right-0 mt-10 mr-6\">\n <div className=\"flex flex-row-reverse items-start\">\n <div ref={referralOptionsMenu} className=\"shadow-lg bg-white border border-solid border-blue-border\">\n <ul className=\"cursor-pointer pl-0 list-none\">\n {\n unselected.map((index) => (\n <li className=\"p-3 hover:bg-med-pale-blue\">\n <button\n onClick={() => onMoveToExistingReferralClick(index)}\n onMouseEnter={() => onMoveToExistingReferralReasonsHover(index)}\n onMouseOut={() => setReasonMenuIsOpen(false)}\n onKeyDown={(e) => handleKeyPress(e, () => onMoveToExistingReferralClick(index))}\n className={`w-full text-left ${!isEmpty(cannotMoveReasons[index]) ? 'text-gray-400' : ''}`}\n >\n Move to Referral {index + 1}\n </button>\n </li>\n ))\n }\n {!moveToNewReferralDisabled ? (\n <li className=\"p-3 hover:bg-med-pale-blue\">\n <button\n onClick={onMoveToNewReferralClick}\n onKeyDown={(e) => handleKeyPress(e, onMoveToNewReferralClick)}\n onMouseEnter={preventUngroup ? () => handleShowUngroupMessageError() : null}\n onMouseOut={preventUngroup ? () => handleShowUngroupMessageError() : null}\n className={`w-full text-left ${preventUngroup ? 'text-gray-400' : ''}`}\n >\n Move to new referral\n </button>\n </li>\n ) : null}\n <li\n className=\"p-3 hover:bg-med-pale-blue\"\n onClick={onRemoveClick}\n onKeyDown={(e) => handleKeyPress(e, onRemoveClick)}\n tabIndex={0}\n >\n Remove\n </li>\n <li className=\"p-3 hover:bg-med-pale-blue\">\n <button\n ref={buttonRef}\n onClick={handleButtonClick}\n onKeyDown={(e) => handleKeyPress(e, handleButtonClick)}\n aria-expanded={reasonMenuIsOpen}\n aria-controls=\"program-menu\"\n className=\"w-full text-left\"\n >\n Close menu\n </button>\n </li>\n </ul>\n </div>\n {\n reasonMenuIsOpen && !isEmpty(reasons) ? (\n <div className=\"mr-2 p-4 min-w-2/3 bg-med-pale-blue border border-solid border-blue-border z-30\">\n <p className=\"mb-2\">Cannot move to Referral {moveToReferralIndex} for the following reasons:</p>\n <ul className=\"list-disc pl-0\">\n {\n reasons.map((reason, index) => (\n <li className=\"text-red ml-6\" key={`cannot-move-reason-${index}`}>\n {reason}\n </li>\n ))\n }\n </ul>\n </div>\n ) : null\n }\n {\n showUngroupMessageError ? (\n <div className=\"mr-2 p-4 min-w-2/3 bg-med-pale-blue border border-solid border-blue-border z-30\">\n <p className=\"mb-2\">Cannot move to new referral for the following reasons:</p>\n <ul className=\"list-disc pl-0\">\n <li className=\"text-red ml-6\">\n Referrals to a program that requires authorization must be sent as a group.\n </li>\n </ul>\n </div>\n ) : null\n }\n </div>\n </div>\n );\n};\n\nReferralProgramMenu.propTypes = {\n unselected: PropTypes.array.isRequired,\n moveToNewReferralDisabled: PropTypes.bool.isRequired,\n onMoveToExistingReferralClick: PropTypes.func.isRequired,\n onMoveToNewReferralClick: PropTypes.func.isRequired,\n onRemoveClick: PropTypes.func.isRequired,\n reasonMenuIsOpen: PropTypes.bool.isRequired,\n moveToReferralIndex: PropTypes.number.isRequired,\n cannotMoveReasons: PropTypes.object,\n onClickThreeDotIcon: PropTypes.func.isRequired,\n setReasonMenuIsOpen: PropTypes.func.isRequired,\n};\n\nReferralProgramMenu.defaultProps = {\n cannotMoveReasons: {},\n};\n\nexport default ReferralProgramMenu;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,13 +1,24 @@
|
|
|
1
|
-
export const REFERRAL_BUILDER_DESCRIPTION =
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export const
|
|
5
|
-
|
|
6
|
-
export const
|
|
1
|
+
export const REFERRAL_BUILDER_DESCRIPTION = `We automatically group compatible referrals.
|
|
2
|
+
Reorganize referrals based on your client's needs,
|
|
3
|
+
add referral descriptions, and upload any attachments. `;
|
|
4
|
+
export const SUPPORTING_INFO = `Provide supporting information to help
|
|
5
|
+
quickly connect your client with services.`;
|
|
6
|
+
export const ON_PLATFORM_REFERRALS = `An on-platform program uses Unite Us, just like you.
|
|
7
|
+
If you send them a referral, then can accept, reject, or forward it using Unite Us.`;
|
|
8
|
+
export const OFF_PLATFORM_REFERRALS = `An off-platform program doesn't use Unite Us yet.
|
|
9
|
+
If you send them a referral, you must contact them directly to request services, share
|
|
10
|
+
their information with your client, and document the outcome in Unite Us.`;
|
|
11
|
+
export const GROUPED_REFERRALS_EXPLANATION = `With grouped referrals, you can send referrals
|
|
12
|
+
to multiple, on-platform programs at once. Whoever accepts the referral first works with
|
|
13
|
+
the client and the rest of the referrals are recalled. To be grouped, referrals must
|
|
14
|
+
have the same: `;
|
|
15
|
+
export const UNGROUP_REFERRAL_EXPLANATION = `We automatically group compatible referrals for
|
|
16
|
+
you. You can ungroup referrals by clicking the three-dot icon next to any program and move
|
|
17
|
+
it to a new referral.`;
|
|
7
18
|
export const GROUPED_REFERRAL_MUST_HAVE_SAME = ['Service type', 'Program status (on- or off-platform)', 'Authorization (required or not)'];
|
|
8
19
|
export const REFERRAL_PII_PHI_DESCRIPTION = "Include personally identifiable information (PII), protected health information (PHI), or other sensitive information only if it's necessary to provide services.";
|
|
9
20
|
export const CFR_PART_2_REFERRAL_MESSAGE = 'If this referral is for a 42 CFR Part 2 covered service, Part 2 prohibits the unauthorized re-disclosure of these records.';
|
|
10
|
-
export const REFERRAL_SENT_SUCCESS =
|
|
21
|
+
export const REFERRAL_SENT_SUCCESS = `We've saved these referred programs to the Resources tab on the client's profile.`;
|
|
11
22
|
export const OFF_PLATFORM_REFERRALS_ONLY = 'off-platform referrals only';
|
|
12
23
|
export const ROLE_KEYS = ['case_manager', 'referrals_user', 'referrals_admin', 'oversight', 'org_admin'];
|
|
13
24
|
export const NEXT_STEPS = ['Share these resources with the client by text, email, or print.', 'Confirm whether any on-platform referrals have been accepted by any organizations.', 'Contact any off-platform programs directly, follow up with your client, and update the case.'];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","names":["REFERRAL_BUILDER_DESCRIPTION","SUPPORTING_INFO","ON_PLATFORM_REFERRALS","OFF_PLATFORM_REFERRALS","GROUPED_REFERRALS_EXPLANATION","UNGROUP_REFERRAL_EXPLANATION","GROUPED_REFERRAL_MUST_HAVE_SAME","REFERRAL_PII_PHI_DESCRIPTION","CFR_PART_2_REFERRAL_MESSAGE","REFERRAL_SENT_SUCCESS","OFF_PLATFORM_REFERRALS_ONLY","ROLE_KEYS","NEXT_STEPS"],"sources":["../../../src/pages/builder/constants.js"],"sourcesContent":["export const REFERRAL_BUILDER_DESCRIPTION = `We automatically group compatible referrals.\n Reorganize referrals based on your client's needs, \n add referral descriptions, and upload any attachments. `;\n\nexport const SUPPORTING_INFO = `Provide supporting information to help\n quickly connect your client with services.`;\n\nexport const ON_PLATFORM_REFERRALS = `An on-platform program uses Unite Us, just like you. \n If you send them a referral, then can accept, reject, or forward it using Unite Us.`;\n\nexport const OFF_PLATFORM_REFERRALS = `An off-platform program doesn't use Unite Us yet. \n If you send them a referral, you must contact them directly to request services, share\n their information with your client, and document the outcome in Unite Us.`;\n\nexport const GROUPED_REFERRALS_EXPLANATION = `With grouped referrals, you can send referrals\n to multiple, on-platform programs at once. Whoever accepts the referral first works with\n the client and the rest of the referrals are recalled. To be grouped, referrals must\n have the same: `;\n\nexport const UNGROUP_REFERRAL_EXPLANATION = `We automatically group compatible referrals for \n you. You can ungroup referrals by clicking the three-dot icon next to any program and move\n it to a new referral.`;\n\nexport const GROUPED_REFERRAL_MUST_HAVE_SAME = ['Service type', 'Program status (on- or off-platform)', 'Authorization (required or not)'];\n\nexport const REFERRAL_PII_PHI_DESCRIPTION = \"Include personally identifiable information (PII), protected health information (PHI), or other sensitive information only if it's necessary to provide services.\";\n\nexport const CFR_PART_2_REFERRAL_MESSAGE = 'If this referral is for a 42 CFR Part 2 covered service, Part 2 prohibits the unauthorized re-disclosure of these records.';\n\nexport const REFERRAL_SENT_SUCCESS = `We've saved these referred programs to the Resources tab on the client's profile.`;\n\nexport const OFF_PLATFORM_REFERRALS_ONLY = 'off-platform referrals only';\n\nexport const ROLE_KEYS = ['case_manager', 'referrals_user', 'referrals_admin', 'oversight', 'org_admin'];\n\nexport const NEXT_STEPS = ['Share these resources with the client by text, email, or print.',\n 'Confirm whether any on-platform referrals have been accepted by any organizations.',\n 'Contact any off-platform programs directly, follow up with your client, and update the case.'];\n"],"mappings":"AAAA,OAAO,MAAMA,4BAA4B,
|
|
1
|
+
{"version":3,"file":"constants.js","names":["REFERRAL_BUILDER_DESCRIPTION","SUPPORTING_INFO","ON_PLATFORM_REFERRALS","OFF_PLATFORM_REFERRALS","GROUPED_REFERRALS_EXPLANATION","UNGROUP_REFERRAL_EXPLANATION","GROUPED_REFERRAL_MUST_HAVE_SAME","REFERRAL_PII_PHI_DESCRIPTION","CFR_PART_2_REFERRAL_MESSAGE","REFERRAL_SENT_SUCCESS","OFF_PLATFORM_REFERRALS_ONLY","ROLE_KEYS","NEXT_STEPS"],"sources":["../../../src/pages/builder/constants.js"],"sourcesContent":["export const REFERRAL_BUILDER_DESCRIPTION = `We automatically group compatible referrals.\n Reorganize referrals based on your client's needs, \n add referral descriptions, and upload any attachments. `;\n\nexport const SUPPORTING_INFO = `Provide supporting information to help\n quickly connect your client with services.`;\n\nexport const ON_PLATFORM_REFERRALS = `An on-platform program uses Unite Us, just like you. \n If you send them a referral, then can accept, reject, or forward it using Unite Us.`;\n\nexport const OFF_PLATFORM_REFERRALS = `An off-platform program doesn't use Unite Us yet. \n If you send them a referral, you must contact them directly to request services, share\n their information with your client, and document the outcome in Unite Us.`;\n\nexport const GROUPED_REFERRALS_EXPLANATION = `With grouped referrals, you can send referrals\n to multiple, on-platform programs at once. Whoever accepts the referral first works with\n the client and the rest of the referrals are recalled. To be grouped, referrals must\n have the same: `;\n\nexport const UNGROUP_REFERRAL_EXPLANATION = `We automatically group compatible referrals for \n you. You can ungroup referrals by clicking the three-dot icon next to any program and move\n it to a new referral.`;\n\nexport const GROUPED_REFERRAL_MUST_HAVE_SAME = ['Service type', 'Program status (on- or off-platform)', 'Authorization (required or not)'];\n\nexport const REFERRAL_PII_PHI_DESCRIPTION = \"Include personally identifiable information (PII), protected health information (PHI), or other sensitive information only if it's necessary to provide services.\";\n\nexport const CFR_PART_2_REFERRAL_MESSAGE = 'If this referral is for a 42 CFR Part 2 covered service, Part 2 prohibits the unauthorized re-disclosure of these records.';\n\nexport const REFERRAL_SENT_SUCCESS = `We've saved these referred programs to the Resources tab on the client's profile.`;\n\nexport const OFF_PLATFORM_REFERRALS_ONLY = 'off-platform referrals only';\n\nexport const ROLE_KEYS = ['case_manager', 'referrals_user', 'referrals_admin', 'oversight', 'org_admin'];\n\nexport const NEXT_STEPS = ['Share these resources with the client by text, email, or print.',\n 'Confirm whether any on-platform referrals have been accepted by any organizations.',\n 'Contact any off-platform programs directly, follow up with your client, and update the case.'];\n"],"mappings":"AAAA,OAAO,MAAMA,4BAA4B,GAAG;AAC5C;AACA,0DAA0D;AAE1D,OAAO,MAAMC,eAAe,GAAG;AAC/B,6CAA6C;AAE7C,OAAO,MAAMC,qBAAqB,GAAG;AACrC,sFAAsF;AAEtF,OAAO,MAAMC,sBAAsB,GAAG;AACtC;AACA,4EAA4E;AAE5E,OAAO,MAAMC,6BAA6B,GAAG;AAC7C;AACA;AACA,kBAAkB;AAElB,OAAO,MAAMC,4BAA4B,GAAG;AAC5C;AACA,wBAAwB;AAExB,OAAO,MAAMC,+BAA+B,GAAG,CAAC,cAAc,EAAE,sCAAsC,EAAE,iCAAiC,CAAC;AAE1I,OAAO,MAAMC,4BAA4B,GAAG,mKAAmK;AAE/M,OAAO,MAAMC,2BAA2B,GAAG,4HAA4H;AAEvK,OAAO,MAAMC,qBAAqB,GAAG,mFAAmF;AAExH,OAAO,MAAMC,2BAA2B,GAAG,6BAA6B;AAExE,OAAO,MAAMC,SAAS,GAAG,CAAC,cAAc,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,WAAW,EAAE,WAAW,CAAC;AAExG,OAAO,MAAMC,UAAU,GAAG,CAAC,iEAAiE,EAC1F,oFAAoF,EACpF,8FAA8F,CAAC","ignoreList":[]}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
1
|
import { useEffect, useRef, useState } from 'react';
|
|
5
2
|
import { useQueryClient } from 'react-query';
|
|
6
3
|
import { setData, useAppCreateReferralContext } from '../../../context/AppCreateReferralProvider';
|
|
@@ -10,10 +7,7 @@ import { buildGroupedReferrals } from '../utils/buildGroupedReferrals';
|
|
|
10
7
|
import { coreApi } from '../../../api/config';
|
|
11
8
|
import { useFeatureFlag } from '../../../utils/useFeatureFlag';
|
|
12
9
|
import fetchPrimaryWorkers from '../../../actions/Referral/fetchPrimaryWorkers';
|
|
13
|
-
const extractUniqueServiceIds = referrals => [...new Set(referrals.map(referral =>
|
|
14
|
-
var _referral$service;
|
|
15
|
-
return (_referral$service = referral.service) === null || _referral$service === void 0 ? void 0 : _referral$service.id;
|
|
16
|
-
}).filter(Boolean))];
|
|
10
|
+
const extractUniqueServiceIds = referrals => [...new Set(referrals.map(referral => referral.service?.id).filter(Boolean))];
|
|
17
11
|
const fetchServicesBatch = (queryClient, serviceIds) => {
|
|
18
12
|
const cacheKey = ['services', serviceIds.sort().join(',')];
|
|
19
13
|
return queryClient.fetchQuery(cacheKey, () => coreApi.query('services', {
|
|
@@ -22,8 +16,7 @@ const fetchServicesBatch = (queryClient, serviceIds) => {
|
|
|
22
16
|
};
|
|
23
17
|
const assignServicesToPrograms = (referrals, servicesMap) => {
|
|
24
18
|
referrals.forEach(referral => {
|
|
25
|
-
|
|
26
|
-
const service = servicesMap.get((_referral$service2 = referral.service) === null || _referral$service2 === void 0 ? void 0 : _referral$service2.id);
|
|
19
|
+
const service = servicesMap.get(referral.service?.id);
|
|
27
20
|
if (service) referral.service = service;
|
|
28
21
|
});
|
|
29
22
|
};
|
|
@@ -43,9 +36,10 @@ const getPrimaryWorkersForProvider = async (primaryWorkersByProvider, providerId
|
|
|
43
36
|
};
|
|
44
37
|
const applyDefaultPrimaryWorker = (referral, primaryWorker) => {
|
|
45
38
|
if (!primaryWorker) return referral;
|
|
46
|
-
return
|
|
39
|
+
return {
|
|
40
|
+
...referral,
|
|
47
41
|
primaryWorker
|
|
48
|
-
}
|
|
42
|
+
};
|
|
49
43
|
};
|
|
50
44
|
const hydrateDefaultPrimaryWorkers = async (referrals, currentEmployee) => {
|
|
51
45
|
const primaryWorkersByProvider = {};
|
|
@@ -142,8 +136,7 @@ export default function useBuildReferrals(onReferralsBuilt) {
|
|
|
142
136
|
await Promise.all(networkPromises);
|
|
143
137
|
const groupedReferrals = await hydrateDefaultPrimaryWorkers(buildGroupedReferrals(filteredReferrals, currentProvider), currentEmployee);
|
|
144
138
|
if (!isEmpty(assistanceRequest)) {
|
|
145
|
-
|
|
146
|
-
groupedReferrals[0].description = ((_assistanceRequest = assistanceRequest) === null || _assistanceRequest === void 0 ? void 0 : _assistanceRequest.description) || ((_assistanceRequest2 = assistanceRequest) === null || _assistanceRequest2 === void 0 || (_assistanceRequest2 = _assistanceRequest2.case) === null || _assistanceRequest2 === void 0 ? void 0 : _assistanceRequest2.description);
|
|
139
|
+
groupedReferrals[0].description = assistanceRequest?.description || assistanceRequest?.case?.description;
|
|
147
140
|
}
|
|
148
141
|
if ((crtb854ForwardingSuperset || isAssistanceRequest) && referralDescription) {
|
|
149
142
|
groupedReferrals.forEach(referral => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBuildReferrals.js","names":["useEffect","useRef","useState","useQueryClient","setData","useAppCreateReferralContext","addProgramToReferral","addIdToUnlistedPrograms","buildReferralsFromPrograms","isUnlistedProgram","filterProgramsReceivingReferrals","referralIsOON","isEmpty","get","buildGroupedReferrals","coreApi","useFeatureFlag","fetchPrimaryWorkers","extractUniqueServiceIds","referrals","Set","map","referral","_referral$service","service","id","filter","Boolean","fetchServicesBatch","queryClient","serviceIds","cacheKey","sort","join","fetchQuery","query","ids","assignServicesToPrograms","servicesMap","forEach","_referral$service2","shouldHydratePrimaryWorker","primaryWorker","getPrimaryWorkersForProvider","primaryWorkersByProvider","providerId","currentEmployee","primary_workers","primaryWorkers","applyDefaultPrimaryWorker","_objectSpread","hydrateDefaultPrimaryWorkers","Promise","all","sendingProvider","find","worker","optimizedPopulateServices","uniqueServiceIds","length","result","services","Map","s","useBuildReferrals","onReferralsBuilt","dispatch","state","selectedPrograms","currentProvider","draftState","assistanceRequestId","referralDescription","isAssistanceRequest","isLoading","setIsLoading","isBuildingRef","hint542SupersetUnlistedPrograms","crtb854ForwardingSuperset","buildReferrals","current","assistanceRequest","assistanceRequestResponse","findRecord","include","selectedProgramsFiltered","obj","newReferrals","newReferralsClone","JSON","parse","stringify","newReferralsCloneWithoutUnlisted","programs","p","includes","populateRelationship","flatPrograms","flatMap","filteredReferrals","providerPromises","networkPromises","feeSchedulePromises","program","push","then","provider","groupedReferrals","_assistanceRequest","_assistanceRequest2","description","case","err","console","error"],"sources":["../../../../src/pages/builder/hooks/useBuildReferrals.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useQueryClient } from 'react-query';\nimport { setData, useAppCreateReferralContext } from '../../../context/AppCreateReferralProvider';\nimport {\n addProgramToReferral,\n addIdToUnlistedPrograms,\n buildReferralsFromPrograms,\n isUnlistedProgram,\n filterProgramsReceivingReferrals,\n referralIsOON\n} from '../utils';\nimport { isEmpty, get } from 'lodash';\nimport { buildGroupedReferrals } from '../utils/buildGroupedReferrals';\nimport { coreApi } from '../../../api/config';\nimport { useFeatureFlag } from '../../../utils/useFeatureFlag';\nimport fetchPrimaryWorkers from '../../../actions/Referral/fetchPrimaryWorkers';\n\nconst extractUniqueServiceIds = (referrals) => [...new Set(\n referrals.map(referral => referral.service?.id).filter(Boolean)\n)];\n\nconst fetchServicesBatch = (queryClient, serviceIds) => {\n const cacheKey = ['services', serviceIds.sort().join(',')];\n return queryClient.fetchQuery(\n cacheKey,\n () => coreApi.query('services', { ids: serviceIds })\n );\n};\n\nconst assignServicesToPrograms = (referrals, servicesMap) => {\n referrals.forEach(referral => {\n const service = servicesMap.get(referral.service?.id);\n if (service) referral.service = service;\n });\n};\n\nconst shouldHydratePrimaryWorker = (referral) => {\n if (!referralIsOON(referral)) return false;\n\n return !referral.primaryWorker;\n};\n\nconst getPrimaryWorkersForProvider = async (primaryWorkersByProvider, providerId, currentEmployee) => {\n primaryWorkersByProvider[providerId] = primaryWorkersByProvider[providerId] || fetchPrimaryWorkers({\n providerId,\n currentEmployee,\n });\n\n const { primary_workers: primaryWorkers = [] } = await primaryWorkersByProvider[providerId] || {};\n return primaryWorkers;\n};\n\nconst applyDefaultPrimaryWorker = (referral, primaryWorker) => {\n if (!primaryWorker) return referral;\n\n return { ...referral, primaryWorker };\n};\n\nconst hydrateDefaultPrimaryWorkers = async (referrals, currentEmployee) => {\n const primaryWorkersByProvider = {};\n\n return Promise.all(referrals.map(async (referral) => {\n if (!shouldHydratePrimaryWorker(referral)) {\n return referral;\n }\n\n const providerId = referral.sendingProvider.id;\n const primaryWorkers = await getPrimaryWorkersForProvider(\n primaryWorkersByProvider,\n providerId,\n currentEmployee,\n );\n const primaryWorker = primaryWorkers.find((worker) => worker.id === currentEmployee.id);\n\n return applyDefaultPrimaryWorker(referral, primaryWorker);\n }));\n};\n\nconst optimizedPopulateServices = async (referrals, queryClient) => {\n const uniqueServiceIds = extractUniqueServiceIds(referrals);\n if (uniqueServiceIds.length === 0) return;\n\n const result = await fetchServicesBatch(queryClient, uniqueServiceIds);\n const services = get(result, 'response.data.data', get(result, 'data.data', []));\n assignServicesToPrograms(referrals, new Map(services.map(s => [s.id, s])));\n};\n\nexport default function useBuildReferrals(onReferralsBuilt) {\n const { dispatch, state: {\n selectedPrograms,\n referrals,\n currentProvider,\n currentEmployee,\n draftState,\n assistanceRequestId,\n referralDescription,\n isAssistanceRequest,\n } } = useAppCreateReferralContext();\n const [isLoading, setIsLoading] = useState(false);\n const isBuildingRef = useRef(false);\n const queryClient = useQueryClient();\n\n const hint542SupersetUnlistedPrograms = useFeatureFlag('hint542SupersetUnlistedPrograms', false);\n const crtb854ForwardingSuperset = useFeatureFlag('crtb854ForwardingSuperset', false);\n\n const buildReferrals = async () => {\n try {\n // Build the referrals only one time\n if (!isEmpty(selectedPrograms) && isEmpty(referrals) && !isBuildingRef.current) {\n isBuildingRef.current = true;\n\n setIsLoading(true);\n let assistanceRequest = null;\n\n if (assistanceRequestId) {\n const assistanceRequestResponse = await coreApi.findRecord('assistance_request', assistanceRequestId, {\n include: 'case',\n })\n assistanceRequest = get(assistanceRequestResponse, 'data.data', null);\n }\n\n // Add an id and status to unlisted programs(programs without an id are unlisted programs)\n // Remove unlisted programs if the feature flag is disabled\n let selectedProgramsFiltered = hint542SupersetUnlistedPrograms ? addIdToUnlistedPrograms(selectedPrograms) : selectedPrograms.filter(obj => obj.id);\n\n const newReferrals = buildReferralsFromPrograms(selectedProgramsFiltered, currentProvider, draftState);\n\n // Loop over the referrals and if the program is unlisted, replace it with the selected program,\n // because it has the name and service data\n addProgramToReferral(newReferrals, selectedProgramsFiltered, isUnlistedProgram);\n\n // Create a copy of the referrals to avoid mutating the original data. To be able to get data from the programs\n const newReferralsClone = JSON.parse(JSON.stringify(newReferrals));\n const newReferralsCloneWithoutUnlisted = newReferralsClone.map((referral) => {\n referral.programs = referral.programs.filter((p) => !p.id.includes('unlisted'));\n return referral;\n });\n\n await coreApi.populateRelationship('programs', 'program', newReferralsCloneWithoutUnlisted);\n\n // Get all the programs from the referrals\n const flatPrograms = newReferralsCloneWithoutUnlisted.flatMap(referral => referral.programs);\n\n // Loop over the original referrals object and if the program is not unlisted, \n // replace it with the program from the flatPrograms array, since flatPrograms has all the data\n addProgramToReferral(newReferrals, flatPrograms, (p) => !isUnlistedProgram(p));\n\n const filteredReferrals = filterProgramsReceivingReferrals(newReferrals);\n await optimizedPopulateServices(filteredReferrals, queryClient);\n\n let providerPromises = [], networkPromises = [], feeSchedulePromises = [];\n\n filteredReferrals.forEach((referral) => {\n referral.programs.forEach((program) => {\n providerPromises.push(coreApi.populateRelationship('provider', 'provider', program));\n feeSchedulePromises.push(coreApi.populateRelationship('fee_schedule_program', 'fee_schedule_program', program));\n })\n });\n\n await Promise.all(providerPromises).then((programs) => {\n programs.forEach(async (program) => {\n networkPromises.push(coreApi.populateRelationship('networks', 'network', program.provider));\n })\n });\n\n await Promise.all(feeSchedulePromises);\n await Promise.all(networkPromises);\n\n const groupedReferrals = await hydrateDefaultPrimaryWorkers(\n buildGroupedReferrals(filteredReferrals, currentProvider),\n currentEmployee,\n );\n\n if (!isEmpty(assistanceRequest)) {\n groupedReferrals[0].description = assistanceRequest?.description || assistanceRequest?.case?.description;\n }\n\n if ((crtb854ForwardingSuperset || isAssistanceRequest) && referralDescription) {\n groupedReferrals.forEach(referral => {\n referral.description = referralDescription;\n });\n }\n\n dispatch(setData({\n assistanceRequestId: assistanceRequest,\n referrals: groupedReferrals\n }))\n\n if (onReferralsBuilt) {\n onReferralsBuilt(groupedReferrals);\n }\n }\n } catch (err) { \n console.error(\"Error in buildReferrals:\", err);\n }\n finally {\n isBuildingRef.current = false;\n setIsLoading(false);\n }\n }\n\n useEffect(() => {\n buildReferrals();\n }, [selectedPrograms])\n\n return {\n referrals,\n isLoading\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useBuildReferrals.js","names":["useEffect","useRef","useState","useQueryClient","setData","useAppCreateReferralContext","addProgramToReferral","addIdToUnlistedPrograms","buildReferralsFromPrograms","isUnlistedProgram","filterProgramsReceivingReferrals","referralIsOON","isEmpty","get","buildGroupedReferrals","coreApi","useFeatureFlag","fetchPrimaryWorkers","extractUniqueServiceIds","referrals","Set","map","referral","service","id","filter","Boolean","fetchServicesBatch","queryClient","serviceIds","cacheKey","sort","join","fetchQuery","query","ids","assignServicesToPrograms","servicesMap","forEach","shouldHydratePrimaryWorker","primaryWorker","getPrimaryWorkersForProvider","primaryWorkersByProvider","providerId","currentEmployee","primary_workers","primaryWorkers","applyDefaultPrimaryWorker","hydrateDefaultPrimaryWorkers","Promise","all","sendingProvider","find","worker","optimizedPopulateServices","uniqueServiceIds","length","result","services","Map","s","useBuildReferrals","onReferralsBuilt","dispatch","state","selectedPrograms","currentProvider","draftState","assistanceRequestId","referralDescription","isAssistanceRequest","isLoading","setIsLoading","isBuildingRef","hint542SupersetUnlistedPrograms","crtb854ForwardingSuperset","buildReferrals","current","assistanceRequest","assistanceRequestResponse","findRecord","include","selectedProgramsFiltered","obj","newReferrals","newReferralsClone","JSON","parse","stringify","newReferralsCloneWithoutUnlisted","programs","p","includes","populateRelationship","flatPrograms","flatMap","filteredReferrals","providerPromises","networkPromises","feeSchedulePromises","program","push","then","provider","groupedReferrals","description","case","err","console","error"],"sources":["../../../../src/pages/builder/hooks/useBuildReferrals.js"],"sourcesContent":["import { useEffect, useRef, useState } from 'react';\nimport { useQueryClient } from 'react-query';\nimport { setData, useAppCreateReferralContext } from '../../../context/AppCreateReferralProvider';\nimport {\n addProgramToReferral,\n addIdToUnlistedPrograms,\n buildReferralsFromPrograms,\n isUnlistedProgram,\n filterProgramsReceivingReferrals,\n referralIsOON\n} from '../utils';\nimport { isEmpty, get } from 'lodash';\nimport { buildGroupedReferrals } from '../utils/buildGroupedReferrals';\nimport { coreApi } from '../../../api/config';\nimport { useFeatureFlag } from '../../../utils/useFeatureFlag';\nimport fetchPrimaryWorkers from '../../../actions/Referral/fetchPrimaryWorkers';\n\nconst extractUniqueServiceIds = (referrals) => [...new Set(\n referrals.map(referral => referral.service?.id).filter(Boolean)\n)];\n\nconst fetchServicesBatch = (queryClient, serviceIds) => {\n const cacheKey = ['services', serviceIds.sort().join(',')];\n return queryClient.fetchQuery(\n cacheKey,\n () => coreApi.query('services', { ids: serviceIds })\n );\n};\n\nconst assignServicesToPrograms = (referrals, servicesMap) => {\n referrals.forEach(referral => {\n const service = servicesMap.get(referral.service?.id);\n if (service) referral.service = service;\n });\n};\n\nconst shouldHydratePrimaryWorker = (referral) => {\n if (!referralIsOON(referral)) return false;\n\n return !referral.primaryWorker;\n};\n\nconst getPrimaryWorkersForProvider = async (primaryWorkersByProvider, providerId, currentEmployee) => {\n primaryWorkersByProvider[providerId] = primaryWorkersByProvider[providerId] || fetchPrimaryWorkers({\n providerId,\n currentEmployee,\n });\n\n const { primary_workers: primaryWorkers = [] } = await primaryWorkersByProvider[providerId] || {};\n return primaryWorkers;\n};\n\nconst applyDefaultPrimaryWorker = (referral, primaryWorker) => {\n if (!primaryWorker) return referral;\n\n return { ...referral, primaryWorker };\n};\n\nconst hydrateDefaultPrimaryWorkers = async (referrals, currentEmployee) => {\n const primaryWorkersByProvider = {};\n\n return Promise.all(referrals.map(async (referral) => {\n if (!shouldHydratePrimaryWorker(referral)) {\n return referral;\n }\n\n const providerId = referral.sendingProvider.id;\n const primaryWorkers = await getPrimaryWorkersForProvider(\n primaryWorkersByProvider,\n providerId,\n currentEmployee,\n );\n const primaryWorker = primaryWorkers.find((worker) => worker.id === currentEmployee.id);\n\n return applyDefaultPrimaryWorker(referral, primaryWorker);\n }));\n};\n\nconst optimizedPopulateServices = async (referrals, queryClient) => {\n const uniqueServiceIds = extractUniqueServiceIds(referrals);\n if (uniqueServiceIds.length === 0) return;\n\n const result = await fetchServicesBatch(queryClient, uniqueServiceIds);\n const services = get(result, 'response.data.data', get(result, 'data.data', []));\n assignServicesToPrograms(referrals, new Map(services.map(s => [s.id, s])));\n};\n\nexport default function useBuildReferrals(onReferralsBuilt) {\n const { dispatch, state: {\n selectedPrograms,\n referrals,\n currentProvider,\n currentEmployee,\n draftState,\n assistanceRequestId,\n referralDescription,\n isAssistanceRequest,\n } } = useAppCreateReferralContext();\n const [isLoading, setIsLoading] = useState(false);\n const isBuildingRef = useRef(false);\n const queryClient = useQueryClient();\n\n const hint542SupersetUnlistedPrograms = useFeatureFlag('hint542SupersetUnlistedPrograms', false);\n const crtb854ForwardingSuperset = useFeatureFlag('crtb854ForwardingSuperset', false);\n\n const buildReferrals = async () => {\n try {\n // Build the referrals only one time\n if (!isEmpty(selectedPrograms) && isEmpty(referrals) && !isBuildingRef.current) {\n isBuildingRef.current = true;\n\n setIsLoading(true);\n let assistanceRequest = null;\n\n if (assistanceRequestId) {\n const assistanceRequestResponse = await coreApi.findRecord('assistance_request', assistanceRequestId, {\n include: 'case',\n })\n assistanceRequest = get(assistanceRequestResponse, 'data.data', null);\n }\n\n // Add an id and status to unlisted programs(programs without an id are unlisted programs)\n // Remove unlisted programs if the feature flag is disabled\n let selectedProgramsFiltered = hint542SupersetUnlistedPrograms ? addIdToUnlistedPrograms(selectedPrograms) : selectedPrograms.filter(obj => obj.id);\n\n const newReferrals = buildReferralsFromPrograms(selectedProgramsFiltered, currentProvider, draftState);\n\n // Loop over the referrals and if the program is unlisted, replace it with the selected program,\n // because it has the name and service data\n addProgramToReferral(newReferrals, selectedProgramsFiltered, isUnlistedProgram);\n\n // Create a copy of the referrals to avoid mutating the original data. To be able to get data from the programs\n const newReferralsClone = JSON.parse(JSON.stringify(newReferrals));\n const newReferralsCloneWithoutUnlisted = newReferralsClone.map((referral) => {\n referral.programs = referral.programs.filter((p) => !p.id.includes('unlisted'));\n return referral;\n });\n\n await coreApi.populateRelationship('programs', 'program', newReferralsCloneWithoutUnlisted);\n\n // Get all the programs from the referrals\n const flatPrograms = newReferralsCloneWithoutUnlisted.flatMap(referral => referral.programs);\n\n // Loop over the original referrals object and if the program is not unlisted, \n // replace it with the program from the flatPrograms array, since flatPrograms has all the data\n addProgramToReferral(newReferrals, flatPrograms, (p) => !isUnlistedProgram(p));\n\n const filteredReferrals = filterProgramsReceivingReferrals(newReferrals);\n await optimizedPopulateServices(filteredReferrals, queryClient);\n\n let providerPromises = [], networkPromises = [], feeSchedulePromises = [];\n\n filteredReferrals.forEach((referral) => {\n referral.programs.forEach((program) => {\n providerPromises.push(coreApi.populateRelationship('provider', 'provider', program));\n feeSchedulePromises.push(coreApi.populateRelationship('fee_schedule_program', 'fee_schedule_program', program));\n })\n });\n\n await Promise.all(providerPromises).then((programs) => {\n programs.forEach(async (program) => {\n networkPromises.push(coreApi.populateRelationship('networks', 'network', program.provider));\n })\n });\n\n await Promise.all(feeSchedulePromises);\n await Promise.all(networkPromises);\n\n const groupedReferrals = await hydrateDefaultPrimaryWorkers(\n buildGroupedReferrals(filteredReferrals, currentProvider),\n currentEmployee,\n );\n\n if (!isEmpty(assistanceRequest)) {\n groupedReferrals[0].description = assistanceRequest?.description || assistanceRequest?.case?.description;\n }\n\n if ((crtb854ForwardingSuperset || isAssistanceRequest) && referralDescription) {\n groupedReferrals.forEach(referral => {\n referral.description = referralDescription;\n });\n }\n\n dispatch(setData({\n assistanceRequestId: assistanceRequest,\n referrals: groupedReferrals\n }))\n\n if (onReferralsBuilt) {\n onReferralsBuilt(groupedReferrals);\n }\n }\n } catch (err) { \n console.error(\"Error in buildReferrals:\", err);\n }\n finally {\n isBuildingRef.current = false;\n setIsLoading(false);\n }\n }\n\n useEffect(() => {\n buildReferrals();\n }, [selectedPrograms])\n\n return {\n referrals,\n isLoading\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
1
|
import { useEffect, useRef } from 'react';
|
|
5
2
|
import { isEmpty, compact, get, intersectionBy } from 'lodash';
|
|
6
3
|
import { setData } from '../../../context/AppCreateReferralProvider';
|
|
@@ -29,7 +26,10 @@ export default function useReferralMutations(_ref) {
|
|
|
29
26
|
values
|
|
30
27
|
} = props;
|
|
31
28
|
const updatedReferrals = [...referrals];
|
|
32
|
-
updatedReferrals[selectedIndex] =
|
|
29
|
+
updatedReferrals[selectedIndex] = {
|
|
30
|
+
...referrals[selectedIndex],
|
|
31
|
+
...values
|
|
32
|
+
};
|
|
33
33
|
if (saveValuesTimeoutRef.current) {
|
|
34
34
|
clearTimeout(saveValuesTimeoutRef.current);
|
|
35
35
|
}
|
|
@@ -43,13 +43,12 @@ export default function useReferralMutations(_ref) {
|
|
|
43
43
|
saveValuesTimeoutRef.current = null;
|
|
44
44
|
}, 0);
|
|
45
45
|
};
|
|
46
|
-
const selectedReferralHasAuthorization = () => !!get(referrals,
|
|
46
|
+
const selectedReferralHasAuthorization = () => !!get(referrals, `[${selectedIndex}].case.service_authorization.id`);
|
|
47
47
|
const preventAuthorizedDraftProgramChange = () => {
|
|
48
|
-
var _CALLBACKS$notify, _CALLBACKS$notify$err;
|
|
49
48
|
if (!selectedReferralHasAuthorization()) {
|
|
50
49
|
return false;
|
|
51
50
|
}
|
|
52
|
-
|
|
51
|
+
CALLBACKS.notify?.error?.(DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE);
|
|
53
52
|
return true;
|
|
54
53
|
};
|
|
55
54
|
const moveToExistingReferral = (index, program) => {
|
|
@@ -57,15 +56,17 @@ export default function useReferralMutations(_ref) {
|
|
|
57
56
|
const {
|
|
58
57
|
programs
|
|
59
58
|
} = referrals[selectedIndex];
|
|
60
|
-
referrals[selectedIndex] =
|
|
59
|
+
referrals[selectedIndex] = {
|
|
60
|
+
...referrals[selectedIndex],
|
|
61
61
|
programs: programs.filter(p => p.id !== program.id)
|
|
62
|
-
}
|
|
62
|
+
};
|
|
63
63
|
if (isEmpty(referrals[selectedIndex].programs)) {
|
|
64
64
|
referrals[selectedIndex] = null;
|
|
65
65
|
}
|
|
66
|
-
referrals[index] =
|
|
66
|
+
referrals[index] = {
|
|
67
|
+
...referrals[index],
|
|
67
68
|
programs: [...referrals[index].programs, program]
|
|
68
|
-
}
|
|
69
|
+
};
|
|
69
70
|
const newErrors = removeErrorByIndex(errors, selectedIndex);
|
|
70
71
|
setFieldErrors(newErrors);
|
|
71
72
|
dispatch(setData({
|
|
@@ -78,13 +79,14 @@ export default function useReferralMutations(_ref) {
|
|
|
78
79
|
if (preventAuthorizedDraftProgramChange()) return;
|
|
79
80
|
const referral = referrals[selectedIndex];
|
|
80
81
|
referral.programs = referral.programs.filter(p => p.id !== program.id);
|
|
81
|
-
const newReferral =
|
|
82
|
+
const newReferral = {
|
|
83
|
+
...referral,
|
|
82
84
|
programs: [program],
|
|
83
85
|
description: '',
|
|
84
86
|
persistedAttachments: [],
|
|
85
87
|
pendingAttachments: [],
|
|
86
88
|
removablePersistedAttachments: []
|
|
87
|
-
}
|
|
89
|
+
};
|
|
88
90
|
const newReferrals = [...referrals, newReferral];
|
|
89
91
|
dispatch(setData({
|
|
90
92
|
referrals: newReferrals
|
|
@@ -100,7 +102,9 @@ export default function useReferralMutations(_ref) {
|
|
|
100
102
|
programId,
|
|
101
103
|
serviceId
|
|
102
104
|
});
|
|
103
|
-
referrals[selectedIndex] = newReferral ?
|
|
105
|
+
referrals[selectedIndex] = newReferral ? {
|
|
106
|
+
...newReferral
|
|
107
|
+
} : null;
|
|
104
108
|
const newReferrals = compact(referrals);
|
|
105
109
|
const newReferralPrograms = newReferrals.flatMap(r => r.programs);
|
|
106
110
|
const newSelectedPrograms = intersectionBy(selectedPrograms, newReferralPrograms, 'id');
|
|
@@ -115,7 +119,10 @@ export default function useReferralMutations(_ref) {
|
|
|
115
119
|
}
|
|
116
120
|
};
|
|
117
121
|
const updateSelectedReferral = updatedFields => {
|
|
118
|
-
const nextReferrals = referrals.map((referral, index) => index === selectedIndex ?
|
|
122
|
+
const nextReferrals = referrals.map((referral, index) => index === selectedIndex ? {
|
|
123
|
+
...referral,
|
|
124
|
+
...updatedFields
|
|
125
|
+
} : referral);
|
|
119
126
|
dispatch(setData({
|
|
120
127
|
referrals: nextReferrals
|
|
121
128
|
}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useReferralMutations.js","names":["useEffect","useRef","isEmpty","compact","get","intersectionBy","setData","removeReferralProgram","removeErrorByIndex","CALLBACKS","DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE","useReferralMutations","_ref","referrals","selectedPrograms","selectedIndex","setSelectedIndex","errors","setFieldErrors","dispatch","saveValuesTimeoutRef","current","clearTimeout","saveValuesOnChange","props","values","updatedReferrals","_objectSpread","setTimeout","selectedReferralHasAuthorization","concat","preventAuthorizedDraftProgramChange","_CALLBACKS$notify","_CALLBACKS$notify$err","notify","error","call","moveToExistingReferral","index","program","programs","filter","p","id","newErrors","newIndex","moveToNewReferral","referral","newReferral","description","persistedAttachments","pendingAttachments","removablePersistedAttachments","newReferrals","length","removeProgram","programName","programId","serviceId","newReferralPrograms","flatMap","r","newSelectedPrograms","updateSelectedReferral","updatedFields","nextReferrals","map","updateAttachments","attachments","updatePersistedAttachments","removableAttachments"],"sources":["../../../../src/pages/builder/hooks/useReferralMutations.js"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { isEmpty, compact, get, intersectionBy } from 'lodash';\nimport { setData } from '../../../context/AppCreateReferralProvider';\nimport { removeReferralProgram } from '../../../actions/Referral/removeReferralProgram';\nimport { removeErrorByIndex } from '../utils';\nimport { CALLBACKS } from '../../../api/config';\nimport { DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE } from '../../../constants';\n\nexport default function useReferralMutations({\n referrals,\n selectedPrograms,\n selectedIndex,\n setSelectedIndex,\n errors,\n setFieldErrors,\n dispatch,\n}) {\n const saveValuesTimeoutRef = useRef(null);\n\n useEffect(() => () => {\n if (saveValuesTimeoutRef.current) {\n clearTimeout(saveValuesTimeoutRef.current);\n }\n }, []);\n\n const saveValuesOnChange = (props) => {\n const { values } = props;\n const updatedReferrals = [...referrals];\n updatedReferrals[selectedIndex] = {\n ...referrals[selectedIndex],\n ...values\n }\n\n if (saveValuesTimeoutRef.current) {\n clearTimeout(saveValuesTimeoutRef.current);\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 saveValuesTimeoutRef.current = setTimeout(() => {\n dispatch(setData({\n referrals: [...updatedReferrals]\n }));\n\n saveValuesTimeoutRef.current = null;\n }, 0);\n }\n\n const selectedReferralHasAuthorization = () => !!get(\n referrals,\n `[${selectedIndex}].case.service_authorization.id`,\n );\n\n const preventAuthorizedDraftProgramChange = () => {\n if (!selectedReferralHasAuthorization()) {\n return false;\n }\n\n CALLBACKS.notify?.error?.(DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE);\n return true;\n };\n\n const moveToExistingReferral = (index, program) => {\n if (preventAuthorizedDraftProgramChange()) return;\n\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 if (preventAuthorizedDraftProgramChange()) return;\n\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 persistedAttachments: [],\n pendingAttachments: [],\n removablePersistedAttachments: [],\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 if (preventAuthorizedDraftProgramChange()) return;\n\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 updateSelectedReferral = (updatedFields) => {\n const nextReferrals = referrals.map((referral, index) => (\n index === selectedIndex\n ? {\n ...referral,\n ...updatedFields,\n }\n : referral\n ));\n\n dispatch(setData({\n referrals: nextReferrals,\n }));\n };\n\n const updateAttachments = (attachments) => {\n updateSelectedReferral({\n pendingAttachments: attachments,\n });\n };\n\n const updatePersistedAttachments = (attachments, removableAttachments) => {\n updateSelectedReferral({\n persistedAttachments: attachments,\n removablePersistedAttachments: removableAttachments,\n });\n };\n\n return {\n saveValuesOnChange,\n moveToExistingReferral,\n moveToNewReferral,\n removeProgram,\n updateAttachments,\n updatePersistedAttachments,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useReferralMutations.js","names":["useEffect","useRef","isEmpty","compact","get","intersectionBy","setData","removeReferralProgram","removeErrorByIndex","CALLBACKS","DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE","useReferralMutations","_ref","referrals","selectedPrograms","selectedIndex","setSelectedIndex","errors","setFieldErrors","dispatch","saveValuesTimeoutRef","current","clearTimeout","saveValuesOnChange","props","values","updatedReferrals","setTimeout","selectedReferralHasAuthorization","preventAuthorizedDraftProgramChange","notify","error","moveToExistingReferral","index","program","programs","filter","p","id","newErrors","newIndex","moveToNewReferral","referral","newReferral","description","persistedAttachments","pendingAttachments","removablePersistedAttachments","newReferrals","length","removeProgram","programName","programId","serviceId","newReferralPrograms","flatMap","r","newSelectedPrograms","updateSelectedReferral","updatedFields","nextReferrals","map","updateAttachments","attachments","updatePersistedAttachments","removableAttachments"],"sources":["../../../../src/pages/builder/hooks/useReferralMutations.js"],"sourcesContent":["import { useEffect, useRef } from 'react';\nimport { isEmpty, compact, get, intersectionBy } from 'lodash';\nimport { setData } from '../../../context/AppCreateReferralProvider';\nimport { removeReferralProgram } from '../../../actions/Referral/removeReferralProgram';\nimport { removeErrorByIndex } from '../utils';\nimport { CALLBACKS } from '../../../api/config';\nimport { DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE } from '../../../constants';\n\nexport default function useReferralMutations({\n referrals,\n selectedPrograms,\n selectedIndex,\n setSelectedIndex,\n errors,\n setFieldErrors,\n dispatch,\n}) {\n const saveValuesTimeoutRef = useRef(null);\n\n useEffect(() => () => {\n if (saveValuesTimeoutRef.current) {\n clearTimeout(saveValuesTimeoutRef.current);\n }\n }, []);\n\n const saveValuesOnChange = (props) => {\n const { values } = props;\n const updatedReferrals = [...referrals];\n updatedReferrals[selectedIndex] = {\n ...referrals[selectedIndex],\n ...values\n }\n\n if (saveValuesTimeoutRef.current) {\n clearTimeout(saveValuesTimeoutRef.current);\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 saveValuesTimeoutRef.current = setTimeout(() => {\n dispatch(setData({\n referrals: [...updatedReferrals]\n }));\n\n saveValuesTimeoutRef.current = null;\n }, 0);\n }\n\n const selectedReferralHasAuthorization = () => !!get(\n referrals,\n `[${selectedIndex}].case.service_authorization.id`,\n );\n\n const preventAuthorizedDraftProgramChange = () => {\n if (!selectedReferralHasAuthorization()) {\n return false;\n }\n\n CALLBACKS.notify?.error?.(DRAFT_AUTHORIZATION_PROGRAM_CHANGE_MESSAGE);\n return true;\n };\n\n const moveToExistingReferral = (index, program) => {\n if (preventAuthorizedDraftProgramChange()) return;\n\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 if (preventAuthorizedDraftProgramChange()) return;\n\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 persistedAttachments: [],\n pendingAttachments: [],\n removablePersistedAttachments: [],\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 if (preventAuthorizedDraftProgramChange()) return;\n\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 updateSelectedReferral = (updatedFields) => {\n const nextReferrals = referrals.map((referral, index) => (\n index === selectedIndex\n ? {\n ...referral,\n ...updatedFields,\n }\n : referral\n ));\n\n dispatch(setData({\n referrals: nextReferrals,\n }));\n };\n\n const updateAttachments = (attachments) => {\n updateSelectedReferral({\n pendingAttachments: attachments,\n });\n };\n\n const updatePersistedAttachments = (attachments, removableAttachments) => {\n updateSelectedReferral({\n persistedAttachments: attachments,\n removablePersistedAttachments: removableAttachments,\n });\n };\n\n return {\n saveValuesOnChange,\n moveToExistingReferral,\n moveToNewReferral,\n removeProgram,\n updateAttachments,\n updatePersistedAttachments,\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
import _defineProperty from "@babel/runtime/helpers/defineProperty";
|
|
2
|
-
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
3
|
-
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
4
1
|
import { every, head, flatMap } from 'lodash';
|
|
5
2
|
import { isUnlistedReferral, filterNetworks, programIsOffPlatform, programIsOnPlatform, separateSensitiveAndNonSensitiveAuthPrograms, createSameFeeReferrals, createSensitiveProgramReferrals, createNonAuthReferrals } from '../utils';
|
|
6
3
|
import { assignSingleNetworkIfAvailable, attachUnlistedProgramToMatchingReferral, buildMultipleNetworkReferrals, buildNoNetworkReferrals, buildSameNetworkReferrals, createReferralSplitter, keepReferralsWithPrograms, splitProgramsByNetworkAvailability, splitReferralsByListingStatus } from './buildGroupedReferralsHelpers';
|
|
@@ -46,22 +43,18 @@ const groupByNetworkStatus = referral => {
|
|
|
46
43
|
// divide programs into on- and off-platform referrals
|
|
47
44
|
const inNetworkPrograms = referral.programs.filter(p => programIsOnPlatform(p));
|
|
48
45
|
const OONPrograms = referral.programs.filter(p => programIsOffPlatform(p));
|
|
49
|
-
return [...(inNetworkPrograms.length ? [
|
|
46
|
+
return [...(inNetworkPrograms.length ? [{
|
|
47
|
+
...referral,
|
|
50
48
|
programs: inNetworkPrograms
|
|
51
|
-
}
|
|
49
|
+
}] : []), ...(OONPrograms.length ? [{
|
|
50
|
+
...referral,
|
|
52
51
|
programs: OONPrograms
|
|
53
|
-
}
|
|
54
|
-
};
|
|
55
|
-
const isSensitiveProgram = program => {
|
|
56
|
-
var _program$provider;
|
|
57
|
-
return !!(program !== null && program !== void 0 && (_program$provider = program.provider) !== null && _program$provider !== void 0 && _program$provider.sensitive);
|
|
52
|
+
}] : [])];
|
|
58
53
|
};
|
|
54
|
+
const isSensitiveProgram = program => !!program?.provider?.sensitive;
|
|
59
55
|
const groupBySensitivityImpl = createReferralSplitter(isSensitiveProgram);
|
|
60
56
|
const groupBySensitivity = withPreventUngroup(groupBySensitivityImpl);
|
|
61
|
-
const isCoordinationCenterProgram = program =>
|
|
62
|
-
var _program$provider2;
|
|
63
|
-
return (program === null || program === void 0 || (_program$provider2 = program.provider) === null || _program$provider2 === void 0 ? void 0 : _program$provider2.provider_type) === 'coordination_center';
|
|
64
|
-
};
|
|
57
|
+
const isCoordinationCenterProgram = program => program?.provider?.provider_type === 'coordination_center';
|
|
65
58
|
const groupByCCImpl = createReferralSplitter(isCoordinationCenterProgram);
|
|
66
59
|
const groupByCC = withPreventUngroup(groupByCCImpl);
|
|
67
60
|
const preventGroupingForSensitiveProvider = referral => {
|
|
@@ -69,23 +62,19 @@ const preventGroupingForSensitiveProvider = referral => {
|
|
|
69
62
|
const {
|
|
70
63
|
programs
|
|
71
64
|
} = referral;
|
|
72
|
-
return programs.length > 1 ? programs.map(program =>
|
|
65
|
+
return programs.length > 1 ? programs.map(program => ({
|
|
66
|
+
...referral,
|
|
73
67
|
programs: [program]
|
|
74
68
|
})) : [referral];
|
|
75
69
|
};
|
|
76
|
-
const cloneReferralsWithPrograms = referrals => referrals.map(referral =>
|
|
70
|
+
const cloneReferralsWithPrograms = referrals => referrals.map(referral => ({
|
|
71
|
+
...referral,
|
|
77
72
|
programs: [...referral.programs]
|
|
78
73
|
}));
|
|
79
74
|
const groupByFunded = referral => {
|
|
80
75
|
assignSingleNetworkIfAvailable(referral);
|
|
81
|
-
const fundedWithAuthorizationPrograms = referral.programs.filter(p =>
|
|
82
|
-
|
|
83
|
-
return (_p$fee_schedule_progr = p.fee_schedule_program) === null || _p$fee_schedule_progr === void 0 ? void 0 : _p$fee_schedule_progr.authorization_required;
|
|
84
|
-
});
|
|
85
|
-
const fundedWithoutAuthorizationPrograms = referral.programs.filter(p => {
|
|
86
|
-
var _p$fee_schedule_progr2;
|
|
87
|
-
return !((_p$fee_schedule_progr2 = p.fee_schedule_program) !== null && _p$fee_schedule_progr2 !== void 0 && _p$fee_schedule_progr2.authorization_required);
|
|
88
|
-
});
|
|
76
|
+
const fundedWithAuthorizationPrograms = referral.programs.filter(p => p.fee_schedule_program?.authorization_required);
|
|
77
|
+
const fundedWithoutAuthorizationPrograms = referral.programs.filter(p => !p.fee_schedule_program?.authorization_required);
|
|
89
78
|
const {
|
|
90
79
|
sensitive: sensitiveAuthPrograms,
|
|
91
80
|
nonSensitive: nonSensitiveAuthPrograms
|
|
@@ -116,7 +105,7 @@ const groupUnlistedProgramsToReferrals = referrals => {
|
|
|
116
105
|
const GROUP_OPERATIONS = [groupByFunded, groupByNetwork, groupByNetworkStatus, groupBySensitivity, groupByCC];
|
|
117
106
|
export const buildGroupedReferrals = (newReferrals, currentProvider) => {
|
|
118
107
|
// if the current provider is sensitive, prevent grouping
|
|
119
|
-
if (currentProvider
|
|
108
|
+
if (currentProvider?.sensitive) {
|
|
120
109
|
return flatMap(newReferrals, preventGroupingForSensitiveProvider);
|
|
121
110
|
}
|
|
122
111
|
const groupedReferrals = GROUP_OPERATIONS.reduce((referrals, operation) => flatMap(referrals, operation), newReferrals);
|