@unite-us/app-create-referral 0.4.0 → 0.4.1
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/actions/Referral/cannotMoveToReferralReasons.js +6 -8
- package/dist/actions/Referral/cannotMoveToReferralReasons.js.map +1 -1
- package/dist/pages/builder/ReferralProgramCard.js +3 -0
- package/dist/pages/builder/ReferralProgramCard.js.map +1 -1
- package/dist/pages/builder/ReferralProgramMenu.js +25 -2
- package/dist/pages/builder/ReferralProgramMenu.js.map +1 -1
- package/dist/pages/builder/buildGroupedReferrals.js +75 -44
- package/dist/pages/builder/buildGroupedReferrals.js.map +1 -1
- package/dist/pages/builder/useBuildReferrals.js +13 -6
- package/dist/pages/builder/useBuildReferrals.js.map +1 -1
- package/package.json +1 -1
|
@@ -19,8 +19,9 @@ var cannotMoveToReferralReasons = exports.cannotMoveToReferralReasons = function
|
|
|
19
19
|
index = _ref.index,
|
|
20
20
|
currentProvider = _ref.currentProvider;
|
|
21
21
|
if (index < referrals.length) {
|
|
22
|
-
var _referral$service, _nextReferral$service, _head$provider, _context, _nextReferral$network, _context2, _context3, _context4, _head$provider2, _head$provider3;
|
|
23
|
-
var
|
|
22
|
+
var _referral$service, _nextReferral$service, _head$provider, _context, _nextReferral$network, _context2, _context3, _context4, _head$provider2, _head$provider3, _head$fee_schedule_pr, _head$fee_schedule_pr2, _head$fee_schedule_pr3, _head$fee_schedule_pr4;
|
|
23
|
+
var fee_schedule_program = program.fee_schedule_program,
|
|
24
|
+
provider = program.provider;
|
|
24
25
|
var nextReferral = referrals[index];
|
|
25
26
|
// both referral have the same service type id
|
|
26
27
|
var sameService = (referral === null || referral === void 0 || (_referral$service = referral.service) === null || _referral$service === void 0 ? void 0 : _referral$service.id) === (nextReferral === null || nextReferral === void 0 || (_nextReferral$service = nextReferral.service) === null || _nextReferral$service === void 0 ? void 0 : _nextReferral$service.id);
|
|
@@ -51,12 +52,9 @@ var cannotMoveToReferralReasons = exports.cannotMoveToReferralReasons = function
|
|
|
51
52
|
var isSensitive = !(0, _utils.isUnlistedReferral)(referral) && !(0, _utils.isUnlistedReferral)(nextReferral) ? (provider === null || provider === void 0 ? void 0 : provider.sensitive) || ((_head$provider3 = (0, _lodash.head)(nextReferral.programs).provider) === null || _head$provider3 === void 0 ? void 0 : _head$provider3.sensitive) : false;
|
|
52
53
|
// sensitive organizations cannot send grouped referrals
|
|
53
54
|
var currentProviderIsSensitive = currentProvider === null || currentProvider === void 0 ? void 0 : currentProvider.sensitive;
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
var reasons = [!sameNetwork ? 'Program is in a different network.' : null, isCC ? 'Coordination centers cannot be part of grouped referrals.' : null, !sameStatus ? 'On and Off-Platform programs cannot be grouped together. ' : null, !sameService ? 'Service type is different.' : null, isSensitive ? 'Sensitive programs cannot be part of grouped referrals.' : null, sameProvider ? 'Programs at the same organization cannot be part of grouped referrals.' : null, currentProviderIsSensitive ? 'Users at sensitive organizations cannot send grouped referrals.' : null
|
|
57
|
-
// isFunded ? 'Funded programs can only be grouped with other programs in the same fee schedule' : null,
|
|
58
|
-
];
|
|
59
|
-
|
|
55
|
+
var differentFeeScheduleProgram = (fee_schedule_program === null || fee_schedule_program === void 0 ? void 0 : fee_schedule_program.authorization_required) && ((_head$fee_schedule_pr = (0, _lodash.head)(nextReferral.programs).fee_schedule_program) === null || _head$fee_schedule_pr === void 0 ? void 0 : _head$fee_schedule_pr.authorization_required) && !(0, _lodash.isEqual)(fee_schedule_program === null || fee_schedule_program === void 0 ? void 0 : fee_schedule_program.id, (_head$fee_schedule_pr2 = (0, _lodash.head)(nextReferral.programs).fee_schedule_program) === null || _head$fee_schedule_pr2 === void 0 ? void 0 : _head$fee_schedule_pr2.id);
|
|
56
|
+
var feeScheduleAuthRequired = (fee_schedule_program === null || fee_schedule_program === void 0 ? void 0 : fee_schedule_program.id) && ((_head$fee_schedule_pr3 = (0, _lodash.head)(nextReferral.programs).fee_schedule_program) === null || _head$fee_schedule_pr3 === void 0 ? void 0 : _head$fee_schedule_pr3.id) && (fee_schedule_program === null || fee_schedule_program === void 0 ? void 0 : fee_schedule_program.authorization_required) !== ((_head$fee_schedule_pr4 = (0, _lodash.head)(nextReferral.programs).fee_schedule_program) === null || _head$fee_schedule_pr4 === void 0 ? void 0 : _head$fee_schedule_pr4.authorization_required);
|
|
57
|
+
var reasons = [!sameNetwork ? 'Program is in a different network.' : null, isCC ? 'Coordination centers cannot be part of grouped referrals.' : null, !sameStatus ? 'On and Off-Platform programs cannot be grouped together. ' : null, !sameService ? 'Service type is different.' : null, isSensitive ? 'Sensitive programs cannot be part of grouped referrals.' : null, sameProvider ? 'Programs at the same organization cannot be part of grouped referrals.' : null, currentProviderIsSensitive ? 'Users at sensitive organizations cannot send grouped referrals.' : null, differentFeeScheduleProgram ? 'All programs on a grouped referral with an authorization request must be the same.' : null, feeScheduleAuthRequired ? "Programs that require authorization cannot be grouped with ones that don't." : null];
|
|
60
58
|
return (0, _lodash.compact)(reasons);
|
|
61
59
|
}
|
|
62
60
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cannotMoveToReferralReasons.js","names":["_utils","require","_lodash","cannotMoveToReferralReasons","exports","_ref","program","referral","referrals","index","currentProvider","length","_referral$service","_nextReferral$service","_head$provider","_context","_nextReferral$network","_context2","_context3","_context4","_head$provider2","_head$provider3","provider","nextReferral","sameService","service","id","sameNetwork","isUnlistedProgram","network","nextwork","intersectionBy","networks","head","programs","isEqual","_includes","default","_mapInstanceProperty2","n","call","sameStatus","referralIsOON","sameProvider","_filter","_map","p","_p$provider","undefined","isCC","provider_type","isSensitive","isUnlistedReferral","sensitive","currentProviderIsSensitive","reasons","compact"],"sources":["../../../src/actions/Referral/cannotMoveToReferralReasons.js"],"sourcesContent":["import { isUnlistedProgram, isUnlistedReferral, referralIsOON } from '../../pages/builder/utils.js'\nimport { compact, map, head, isEqual, intersectionBy } from 'lodash';\n\nexport const cannotMoveToReferralReasons = ({ program, referral, referrals, index, currentProvider }) => {\n if (index < referrals.length) {\n const { provider } = program;\n const nextReferral = referrals[index];\n // both referral have the same service type id\n const sameService = referral?.service?.id === nextReferral?.service?.id;\n const sameNetwork = \n isUnlistedProgram(program) ||\n // neither referral has a network but they have a network in common\n // if the next referral's network is empty, it should only have one program\n (!referral?.network && !nextReferral.nextwork && intersectionBy(provider?.networks, head(nextReferral.programs).provider?.networks)) ||\n // both referrals have the same network\n (referral?.network && nextReferral.network && isEqual(referral.network.id, nextReferral.network.id)) ||\n // the referral to be moved does not have a network but its provider is part of the next referral's network\n (!referral?.network && map(provider?.networks, (n) => n.id).includes(nextReferral?.network?.id));\n // both referrals have the same in or out-of-network status\n const sameStatus = referralIsOON(referral) === referralIsOON(nextReferral);\n // at least one of next referral's programs are part of the same provider as the referral's program\n const sameProvider = !isUnlistedProgram(program) && nextReferral.programs.map((p) => p.provider?.id).filter((id) => id !== null && id !== undefined).includes(provider?.id);\n // the referral's or the next referral's program's provider is a coordination center\n // because coordination centers cannot be grouped, the next referral should only have one program if the provider is a CC\n const isCC = provider?.provider_type === 'coordination_center' || head(nextReferral.programs).provider?.provider_type === 'coordination_center';\n // the referral's or the next referral's program is sensitive\n // because sensitive programs cannot be grouped, the next referral should only have one program if it is sensitive\n const isSensitive = (!isUnlistedReferral(referral) && !isUnlistedReferral(nextReferral)) ? (provider?.sensitive || head(nextReferral.programs).provider?.sensitive) : false;\n // sensitive organizations cannot send grouped referrals\n const currentProviderIsSensitive = currentProvider?.sensitive;\n
|
|
1
|
+
{"version":3,"file":"cannotMoveToReferralReasons.js","names":["_utils","require","_lodash","cannotMoveToReferralReasons","exports","_ref","program","referral","referrals","index","currentProvider","length","_referral$service","_nextReferral$service","_head$provider","_context","_nextReferral$network","_context2","_context3","_context4","_head$provider2","_head$provider3","_head$fee_schedule_pr","_head$fee_schedule_pr2","_head$fee_schedule_pr3","_head$fee_schedule_pr4","fee_schedule_program","provider","nextReferral","sameService","service","id","sameNetwork","isUnlistedProgram","network","nextwork","intersectionBy","networks","head","programs","isEqual","_includes","default","_mapInstanceProperty2","n","call","sameStatus","referralIsOON","sameProvider","_filter","_map","p","_p$provider","undefined","isCC","provider_type","isSensitive","isUnlistedReferral","sensitive","currentProviderIsSensitive","differentFeeScheduleProgram","authorization_required","feeScheduleAuthRequired","reasons","compact"],"sources":["../../../src/actions/Referral/cannotMoveToReferralReasons.js"],"sourcesContent":["import { isUnlistedProgram, isUnlistedReferral, referralIsOON } from '../../pages/builder/utils.js'\nimport { compact, map, head, isEqual, intersectionBy } from 'lodash';\n\nexport const cannotMoveToReferralReasons = ({ program, referral, referrals, index, currentProvider }) => {\n if (index < referrals.length) {\n const { fee_schedule_program, provider } = program;\n const nextReferral = referrals[index];\n // both referral have the same service type id\n const sameService = referral?.service?.id === nextReferral?.service?.id;\n const sameNetwork = \n isUnlistedProgram(program) ||\n // neither referral has a network but they have a network in common\n // if the next referral's network is empty, it should only have one program\n (!referral?.network && !nextReferral.nextwork && intersectionBy(provider?.networks, head(nextReferral.programs).provider?.networks)) ||\n // both referrals have the same network\n (referral?.network && nextReferral.network && isEqual(referral.network.id, nextReferral.network.id)) ||\n // the referral to be moved does not have a network but its provider is part of the next referral's network\n (!referral?.network && map(provider?.networks, (n) => n.id).includes(nextReferral?.network?.id));\n // both referrals have the same in or out-of-network status\n const sameStatus = referralIsOON(referral) === referralIsOON(nextReferral);\n // at least one of next referral's programs are part of the same provider as the referral's program\n const sameProvider = !isUnlistedProgram(program) && nextReferral.programs.map((p) => p.provider?.id).filter((id) => id !== null && id !== undefined).includes(provider?.id);\n // the referral's or the next referral's program's provider is a coordination center\n // because coordination centers cannot be grouped, the next referral should only have one program if the provider is a CC\n const isCC = provider?.provider_type === 'coordination_center' || head(nextReferral.programs).provider?.provider_type === 'coordination_center';\n // the referral's or the next referral's program is sensitive\n // because sensitive programs cannot be grouped, the next referral should only have one program if it is sensitive\n const isSensitive = (!isUnlistedReferral(referral) && !isUnlistedReferral(nextReferral)) ? (provider?.sensitive || head(nextReferral.programs).provider?.sensitive) : false;\n // sensitive organizations cannot send grouped referrals\n const currentProviderIsSensitive = currentProvider?.sensitive;\n const differentFeeScheduleProgram = \n fee_schedule_program?.authorization_required && head(nextReferral.programs).fee_schedule_program?.authorization_required &&\n !isEqual(fee_schedule_program?.id, head(nextReferral.programs).fee_schedule_program?.id);\n const feeScheduleAuthRequired =\n fee_schedule_program?.id &&\n head(nextReferral.programs).fee_schedule_program?.id &&\n fee_schedule_program?.authorization_required !== head(nextReferral.programs).fee_schedule_program?.authorization_required;\n\n const reasons = [\n !sameNetwork ? 'Program is in a different network.' : null,\n isCC ? 'Coordination centers cannot be part of grouped referrals.' : null,\n !sameStatus ? 'On and Off-Platform programs cannot be grouped together. ' : null,\n !sameService ? 'Service type is different.' : null,\n isSensitive ? 'Sensitive programs cannot be part of grouped referrals.' : null,\n sameProvider ? 'Programs at the same organization cannot be part of grouped referrals.' : null,\n currentProviderIsSensitive ? 'Users at sensitive organizations cannot send grouped referrals.' : null,\n differentFeeScheduleProgram ? 'All programs on a grouped referral with an authorization request must be the same.' : null,\n feeScheduleAuthRequired ? `Programs that require authorization cannot be grouped with ones that don't.` : null,\n ];\n\n return compact(reasons);\n }\n};\n"],"mappings":"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"}
|
|
@@ -39,6 +39,7 @@ function ReferralProgramCard(_ref) {
|
|
|
39
39
|
_useState4 = (0, _slicedToArray2.default)(_useState3, 2),
|
|
40
40
|
moveToReferralIndex = _useState4[0],
|
|
41
41
|
setMoveToReferralIndex = _useState4[1];
|
|
42
|
+
var preventUngroup = referral.prevent_ungroup;
|
|
42
43
|
var moveToNewReferralDisabled = referral.programs.length < 2;
|
|
43
44
|
var onMoveToExistingReferralClick = function onMoveToExistingReferralClick(index) {
|
|
44
45
|
setMoveToReferralIndex(index + 1);
|
|
@@ -55,6 +56,7 @@ function ReferralProgramCard(_ref) {
|
|
|
55
56
|
}
|
|
56
57
|
};
|
|
57
58
|
var onMoveToNewReferralClick = function onMoveToNewReferralClick() {
|
|
59
|
+
if (preventUngroup) return;
|
|
58
60
|
moveToNewReferral(program);
|
|
59
61
|
setReasonMenuIsOpen(false);
|
|
60
62
|
};
|
|
@@ -93,6 +95,7 @@ function ReferralProgramCard(_ref) {
|
|
|
93
95
|
}
|
|
94
96
|
})), menuIsOpen ? /*#__PURE__*/_react.default.createElement(_ReferralProgramMenu.default, {
|
|
95
97
|
unselected: unselected,
|
|
98
|
+
preventUngroup: preventUngroup,
|
|
96
99
|
onMoveToExistingReferralClick: onMoveToExistingReferralClick,
|
|
97
100
|
onMoveToExistingReferralReasonsHover: onMoveToExistingReferralReasonsHover,
|
|
98
101
|
moveToNewReferralDisabled: moveToNewReferralDisabled,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReferralProgramCard.js","names":["_react","_interopRequireWildcard","require","_propTypes","_ui","_utils","_ReferralProgramMenu","_interopRequireDefault","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","ReferralProgramCard","_ref","_program$provider","program","onClick","isOON","menuIsOpen","unselected","referral","cannotMoveReasons","removeProgram","moveToNewReferral","moveToExistingReferral","programStatus","getProgramStatusDisplay","receiving_referrals","_useState","useState","_useState2","_slicedToArray2","reasonMenuIsOpen","setReasonMenuIsOpen","_useState3","_useState4","moveToReferralIndex","setMoveToReferralIndex","moveToNewReferralDisabled","programs","length","onMoveToExistingReferralClick","index","onMoveToExistingReferralReasonsHover","onMoveToNewReferralClick","onRemoveClick","id","service","useEffect","createElement","className","key","concat","name","provider","Icon","icon","color","title","onClickThreeDotIcon","propTypes","PropTypes","shape","string","isRequired","bool","func","array","object","defaultProps","_default","exports"],"sources":["../../../src/pages/builder/ReferralProgramCard.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { PropTypes } from 'prop-types';\nimport { Icon } from '@unite-us/ui';\nimport { getProgramStatusDisplay } from './utils';\nimport ReferralProgramMenu from './ReferralProgramMenu';\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}) {\n const programStatus = getProgramStatusDisplay(program.receiving_referrals, isOON);\n const [reasonMenuIsOpen, setReasonMenuIsOpen] = useState(false);\n const [moveToReferralIndex, setMoveToReferralIndex] = useState(null);\n const moveToNewReferralDisabled = referral.programs.length < 2;\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 }\n\n const onMoveToExistingReferralReasonsHover = (index) => {\n setMoveToReferralIndex(index + 1);\n\n if (cannotMoveReasons[index].length) {\n setReasonMenuIsOpen(true);\n }\n }\n\n const onMoveToNewReferralClick = () => {\n moveToNewReferral(program);\n setReasonMenuIsOpen(false);\n }\n\n const onRemoveClick = () => {\n removeProgram(program.id, referral.service.id);\n }\n\n useEffect(() => {\n if (!menuIsOpen) {\n setReasonMenuIsOpen(false);\n }\n }, [menuIsOpen])\n\n return (\n <div className=\"bg-white border border-solid border-blue-border rounded mb-4\" key={`referral-builder-program-${program?.id}-wrapper`}>\n <div className=\"mx-5 my-2\">\n <div className=\"flex justify-between relative\">\n <div>\n <h3 className=\"font-black text-dark-blue underline\">\n {program?.name} {program?.provider?.name ? `(${program.provider.name})` : ''}\n </h3>\n <div className=\"flex my-1\">\n <Icon icon={programStatus?.icon} color={programStatus?.color} className=\"mt-px\" />\n <p className=\"ml-2\">{programStatus?.title}</p>\n </div>\n </div>\n <div className=\"mr-6 transform rotate-90\">\n <Icon icon={menuIsOpen ? \"IconCrossCircle\" : \"IconEllipsisV\"} className={menuIsOpen ? \"w-6 h-6\" : \"\"} onClick={() => onClick(program?.id)} />\n </div>\n {\n menuIsOpen ? (\n <ReferralProgramMenu\n unselected={unselected}\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 onClickThreeDotIcon={() => onClick(program?.id)}\n />\n ) : null\n }\n </div>\n </div>\n </div>\n )\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 cannotMoveReasons: PropTypes.object,\n}\n\nReferralProgramCard.defaultProps = {\n menuIsOpen: false,\n unselected: [],\n cannotMoveReasons: {},\n}\n\nexport default ReferralProgramCard;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReferralProgramCard.js","names":["_react","_interopRequireWildcard","require","_propTypes","_ui","_utils","_ReferralProgramMenu","_interopRequireDefault","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","ReferralProgramCard","_ref","_program$provider","program","onClick","isOON","menuIsOpen","unselected","referral","cannotMoveReasons","removeProgram","moveToNewReferral","moveToExistingReferral","programStatus","getProgramStatusDisplay","receiving_referrals","_useState","useState","_useState2","_slicedToArray2","reasonMenuIsOpen","setReasonMenuIsOpen","_useState3","_useState4","moveToReferralIndex","setMoveToReferralIndex","preventUngroup","prevent_ungroup","moveToNewReferralDisabled","programs","length","onMoveToExistingReferralClick","index","onMoveToExistingReferralReasonsHover","onMoveToNewReferralClick","onRemoveClick","id","service","useEffect","createElement","className","key","concat","name","provider","Icon","icon","color","title","onClickThreeDotIcon","propTypes","PropTypes","shape","string","isRequired","bool","func","array","object","defaultProps","_default","exports"],"sources":["../../../src/pages/builder/ReferralProgramCard.js"],"sourcesContent":["import React, { useState, useEffect } from 'react';\nimport { PropTypes } from 'prop-types';\nimport { Icon } from '@unite-us/ui';\nimport { getProgramStatusDisplay } from './utils';\nimport ReferralProgramMenu from './ReferralProgramMenu';\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}) {\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;\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 }\n\n const onMoveToExistingReferralReasonsHover = (index) => {\n setMoveToReferralIndex(index + 1);\n\n if (cannotMoveReasons[index].length) {\n setReasonMenuIsOpen(true);\n }\n }\n\n const onMoveToNewReferralClick = () => {\n if (preventUngroup) return;\n\n moveToNewReferral(program);\n setReasonMenuIsOpen(false);\n }\n\n const onRemoveClick = () => {\n removeProgram(program.id, referral.service.id);\n }\n\n useEffect(() => {\n if (!menuIsOpen) {\n setReasonMenuIsOpen(false);\n }\n }, [menuIsOpen])\n\n return (\n <div className=\"bg-white border border-solid border-blue-border rounded mb-4\" key={`referral-builder-program-${program?.id}-wrapper`}>\n <div className=\"mx-5 my-2\">\n <div className=\"flex justify-between relative\">\n <div>\n <h3 className=\"font-black text-dark-blue underline\">\n {program?.name} {program?.provider?.name ? `(${program.provider.name})` : ''}\n </h3>\n <div className=\"flex my-1\">\n <Icon icon={programStatus?.icon} color={programStatus?.color} className=\"mt-px\" />\n <p className=\"ml-2\">{programStatus?.title}</p>\n </div>\n </div>\n <div className=\"mr-6 transform rotate-90\">\n <Icon icon={menuIsOpen ? \"IconCrossCircle\" : \"IconEllipsisV\"} className={menuIsOpen ? \"w-6 h-6\" : \"\"} onClick={() => onClick(program?.id)} />\n </div>\n {\n menuIsOpen ? (\n <ReferralProgramMenu\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 onClickThreeDotIcon={() => onClick(program?.id)}\n />\n ) : null\n }\n </div>\n </div>\n </div>\n )\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 cannotMoveReasons: PropTypes.object,\n}\n\nReferralProgramCard.defaultProps = {\n menuIsOpen: false,\n unselected: [],\n cannotMoveReasons: {},\n}\n\nexport default ReferralProgramCard;\n"],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
10
10
|
});
|
|
11
11
|
exports.default = void 0;
|
|
12
12
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
13
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/slicedToArray"));
|
|
13
14
|
var _react = _interopRequireWildcard(require("react"));
|
|
14
15
|
var _propTypes = require("prop-types");
|
|
15
16
|
var _lodash = require("lodash");
|
|
@@ -18,6 +19,7 @@ function _getRequireWildcardCache(e) { if ("function" != typeof _WeakMap) return
|
|
|
18
19
|
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != _typeof(e) && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = _Object$defineProperty && _Object$getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && Object.prototype.hasOwnProperty.call(e, u)) { var i = a ? _Object$getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? _Object$defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
19
20
|
var ReferralProgramMenu = function ReferralProgramMenu(_ref) {
|
|
20
21
|
var unselected = _ref.unselected,
|
|
22
|
+
preventUngroup = _ref.preventUngroup,
|
|
21
23
|
moveToNewReferralDisabled = _ref.moveToNewReferralDisabled,
|
|
22
24
|
onMoveToExistingReferralClick = _ref.onMoveToExistingReferralClick,
|
|
23
25
|
onMoveToExistingReferralReasonsHover = _ref.onMoveToExistingReferralReasonsHover,
|
|
@@ -30,6 +32,10 @@ var ReferralProgramMenu = function ReferralProgramMenu(_ref) {
|
|
|
30
32
|
setReasonMenuIsOpen = _ref.setReasonMenuIsOpen;
|
|
31
33
|
var reasons = cannotMoveReasons[moveToReferralIndex - 1];
|
|
32
34
|
var referralOptionsMenu = (0, _react.useRef)();
|
|
35
|
+
var _useState = (0, _react.useState)(false),
|
|
36
|
+
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
37
|
+
showUngroupMessageError = _useState2[0],
|
|
38
|
+
setShowUngroupMessageError = _useState2[1];
|
|
33
39
|
(0, _react.useEffect)(function () {
|
|
34
40
|
document.addEventListener('mousedown', handleClickListener);
|
|
35
41
|
return function () {
|
|
@@ -43,6 +49,9 @@ var ReferralProgramMenu = function ReferralProgramMenu(_ref) {
|
|
|
43
49
|
}
|
|
44
50
|
;
|
|
45
51
|
};
|
|
52
|
+
var handleShowUngroupMessageError = function handleShowUngroupMessageError() {
|
|
53
|
+
if (!showUngroupMessageError) setShowUngroupMessageError(true);else setShowUngroupMessageError(false);
|
|
54
|
+
};
|
|
46
55
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
47
56
|
className: "absolute z-10 right-0 mt-10 mr-6"
|
|
48
57
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
@@ -73,11 +82,17 @@ var ReferralProgramMenu = function ReferralProgramMenu(_ref) {
|
|
|
73
82
|
tabIndex: 0
|
|
74
83
|
}, "Move to Referral ", i.index + 1);
|
|
75
84
|
}), !moveToNewReferralDisabled ? /*#__PURE__*/_react.default.createElement("li", {
|
|
76
|
-
className:
|
|
85
|
+
className: "p-3 hover:bg-med-pale-blue ".concat(preventUngroup ? 'text-gray-400' : ''),
|
|
77
86
|
onClick: onMoveToNewReferralClick,
|
|
78
87
|
onKeyDown: function onKeyDown(e) {
|
|
79
88
|
return (0, _utils.handleKeyPress)(e, onMoveToNewReferralClick);
|
|
80
89
|
},
|
|
90
|
+
onMouseEnter: preventUngroup ? function () {
|
|
91
|
+
return handleShowUngroupMessageError();
|
|
92
|
+
} : null,
|
|
93
|
+
onMouseOut: preventUngroup ? function () {
|
|
94
|
+
return handleShowUngroupMessageError();
|
|
95
|
+
} : null,
|
|
81
96
|
tabIndex: 0
|
|
82
97
|
}, "Move to new referral") : null, /*#__PURE__*/_react.default.createElement("li", {
|
|
83
98
|
className: "p-3 hover:bg-med-pale-blue",
|
|
@@ -97,7 +112,15 @@ var ReferralProgramMenu = function ReferralProgramMenu(_ref) {
|
|
|
97
112
|
className: "text-red ml-6",
|
|
98
113
|
key: "cannot-move-reason-".concat(index)
|
|
99
114
|
}, reason);
|
|
100
|
-
}))) : null
|
|
115
|
+
}))) : null, showUngroupMessageError ? /*#__PURE__*/_react.default.createElement("div", {
|
|
116
|
+
className: "mr-2 p-4 min-w-2/3 bg-med-pale-blue border border-solid border-blue-border"
|
|
117
|
+
}, /*#__PURE__*/_react.default.createElement("p", {
|
|
118
|
+
className: "mb-2"
|
|
119
|
+
}, "Cannot move to new referral for the following reasons:"), /*#__PURE__*/_react.default.createElement("ul", {
|
|
120
|
+
className: "list-disc pl-0"
|
|
121
|
+
}, /*#__PURE__*/_react.default.createElement("li", {
|
|
122
|
+
className: "text-red ml-6"
|
|
123
|
+
}, "Referrals to a program that requires authorization must be sent as a group."))) : null));
|
|
101
124
|
};
|
|
102
125
|
ReferralProgramMenu.propTypes = {
|
|
103
126
|
unselected: _propTypes.PropTypes.array.isRequired,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReferralProgramMenu.js","names":["_react","_interopRequireWildcard","require","_propTypes","_lodash","_utils","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","ReferralProgramMenu","_ref","unselected","moveToNewReferralDisabled","onMoveToExistingReferralClick","onMoveToExistingReferralReasonsHover","onMoveToNewReferralClick","onRemoveClick","reasonMenuIsOpen","moveToReferralIndex","cannotMoveReasons","onClickThreeDotIcon","setReasonMenuIsOpen","reasons","referralOptionsMenu","useRef","useEffect","document","addEventListener","handleClickListener","removeEventListener","event","clickedInside","current","contains","target","createElement","className","ref","_map","concat","isEmpty","index","onClick","onMouseEnter","onMouseOut","onKeyDown","handleKeyPress","key","tabIndex","reason","propTypes","PropTypes","array","isRequired","bool","func","number","object","defaultProps","_default","exports"],"sources":["../../../src/pages/builder/ReferralProgramMenu.js"],"sourcesContent":["import React, { useEffect, useRef } from 'react';\nimport { PropTypes } from 'prop-types';\nimport { isEmpty } from 'lodash';\nimport { handleKeyPress } from './utils';\n\nconst ReferralProgramMenu = ({\n unselected,\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\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 return (\n <div className=\"absolute z-10 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\">\n {\n unselected.map((i) => (\n <li\n className={`p-3 hover:bg-med-pale-blue ${!isEmpty(cannotMoveReasons[i.index]) ? 'text-gray-400' : ''}`}\n onClick={() => onMoveToExistingReferralClick(i.index)}\n onMouseEnter={() => onMoveToExistingReferralReasonsHover(i.index)}\n onMouseOut={() => setReasonMenuIsOpen(false)}\n onKeyDown={(e) => handleKeyPress(e, () => onMoveToExistingReferralClick(i.index))}\n key={`move-to-referral-${i.index}-button`}\n tabIndex={0}\n >\n Move to Referral {i.index + 1}\n </li>\n ))\n }\n {!moveToNewReferralDisabled ? (\n <li\n className={'p-3 hover:bg-med-pale-blue'}\n onClick={onMoveToNewReferralClick}\n onKeyDown={(e) => handleKeyPress(e, onMoveToNewReferralClick)}\n tabIndex={0}\n >\n Move to new referral\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 </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\">\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 </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};\n\nReferralProgramMenu.defaultProps = {\n cannotMoveReasons: {},\n}\n\nexport default ReferralProgramMenu;\n"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,MAAA,GAAAH,OAAA;AAAyC,SAAAI,yBAAAC,CAAA,6BAAAC,QAAA,mBAAAC,CAAA,OAAAD,QAAA,IAAAE,CAAA,OAAAF,QAAA,YAAAF,wBAAA,YAAAA,yBAAAC,CAAA,WAAAA,CAAA,GAAAG,CAAA,GAAAD,CAAA,KAAAF,CAAA;AAAA,SAAAN,wBAAAM,CAAA,EAAAE,CAAA,SAAAA,CAAA,IAAAF,CAAA,IAAAA,CAAA,CAAAI,UAAA,SAAAJ,CAAA,eAAAA,CAAA,gBAAAK,OAAA,CAAAL,CAAA,0BAAAA,CAAA,WAAAM,OAAA,EAAAN,CAAA,QAAAG,CAAA,GAAAJ,wBAAA,CAAAG,CAAA,OAAAC,CAAA,IAAAA,CAAA,CAAAI,GAAA,CAAAP,CAAA,UAAAG,CAAA,CAAAK,GAAA,CAAAR,CAAA,OAAAS,CAAA,KAAAC,SAAA,UAAAC,CAAA,GAAAC,sBAAA,IAAAC,gCAAA,WAAAC,CAAA,IAAAd,CAAA,oBAAAc,CAAA,IAAAC,MAAA,CAAAC,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAlB,CAAA,EAAAc,CAAA,SAAAK,CAAA,GAAAR,CAAA,GAAAE,gCAAA,CAAAb,CAAA,EAAAc,CAAA,UAAAK,CAAA,KAAAA,CAAA,CAAAX,GAAA,IAAAW,CAAA,CAAAC,GAAA,IAAAR,sBAAA,CAAAH,CAAA,EAAAK,CAAA,EAAAK,CAAA,IAAAV,CAAA,CAAAK,CAAA,IAAAd,CAAA,CAAAc,CAAA,YAAAL,CAAA,CAAAH,OAAA,GAAAN,CAAA,EAAAG,CAAA,IAAAA,CAAA,CAAAiB,GAAA,CAAApB,CAAA,EAAAS,CAAA,GAAAA,CAAA;AAEzC,IAAMY,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAAC,IAAA,EAYnB;EAAA,IAXJC,UAAU,GAAAD,IAAA,CAAVC,UAAU;IACVC,yBAAyB,GAAAF,IAAA,CAAzBE,yBAAyB;IACzBC,6BAA6B,GAAAH,IAAA,CAA7BG,6BAA6B;IAC7BC,oCAAoC,GAAAJ,IAAA,CAApCI,oCAAoC;IACpCC,wBAAwB,GAAAL,IAAA,CAAxBK,wBAAwB;IACxBC,aAAa,GAAAN,IAAA,CAAbM,aAAa;IACbC,gBAAgB,GAAAP,IAAA,CAAhBO,gBAAgB;IAChBC,mBAAmB,GAAAR,IAAA,CAAnBQ,mBAAmB;IACnBC,iBAAiB,GAAAT,IAAA,CAAjBS,iBAAiB;IACjBC,mBAAmB,GAAAV,IAAA,CAAnBU,mBAAmB;IACnBC,mBAAmB,GAAAX,IAAA,CAAnBW,mBAAmB;EAEnB,IAAMC,OAAO,GAAGH,iBAAiB,CAACD,mBAAmB,GAAG,CAAC,CAAC;EAC1D,IAAMK,mBAAmB,GAAG,IAAAC,aAAM,EAAC,CAAC;EAEpC,IAAAC,gBAAS,EAAC,YAAM;IACdC,QAAQ,CAACC,gBAAgB,CAAC,WAAW,EAAEC,mBAAmB,CAAC;IAE3D,OAAO;MAAA,OAAMF,QAAQ,CAACG,mBAAmB,CAAC,WAAW,EAAED,mBAAmB,CAAC;IAAA;EAC7E,CAAC,EAAE,EAAE,CAAC;EAEN,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAmBA,CAAIE,KAAK,EAAK;IACrC,IAAIC,aAAa,GAAGR,mBAAmB,IAAIA,mBAAmB,CAACS,OAAO,CAACC,QAAQ,CAACH,KAAK,CAACI,MAAM,CAAC;IAC7F,IAAI,CAACH,aAAa,EAAE;MAClBX,mBAAmB,CAAC,CAAC;IACvB;IAAC;EACH,CAAC;EAED,oBACEvC,MAAA,CAAAa,OAAA,CAAAyC,aAAA;IAAKC,SAAS,EAAC;EAAkC,gBAC/CvD,MAAA,CAAAa,OAAA,CAAAyC,aAAA;IAAKC,SAAS,EAAC;EAAmC,gBAChDvD,MAAA,CAAAa,OAAA,CAAAyC,aAAA;IAAKE,GAAG,EAAEd,mBAAoB;IAACa,SAAS,EAAC;EAA2D,gBAClGvD,MAAA,CAAAa,OAAA,CAAAyC,aAAA;IAAIC,SAAS,EAAC;EAAqB,GAE/B,IAAAE,IAAA,CAAA5C,OAAA,EAAAiB,UAAU,EAAAL,IAAA,CAAVK,UAAU,EAAK,UAACJ,CAAC;IAAA,oBACf1B,MAAA,CAAAa,OAAA,CAAAyC,aAAA;MACEC,SAAS,gCAAAG,MAAA,CAAgC,CAAC,IAAAC,eAAO,EAACrB,iBAAiB,CAACZ,CAAC,CAACkC,KAAK,CAAC,CAAC,GAAG,eAAe,GAAG,EAAE,CAAG;MACvGC,OAAO,EAAE,SAAAA,QAAA;QAAA,OAAM7B,6BAA6B,CAACN,CAAC,CAACkC,KAAK,CAAC;MAAA,CAAC;MACtDE,YAAY,EAAE,SAAAA,aAAA;QAAA,OAAM7B,oCAAoC,CAACP,CAAC,CAACkC,KAAK,CAAC;MAAA,CAAC;MAClEG,UAAU,EAAE,SAAAA,WAAA;QAAA,OAAMvB,mBAAmB,CAAC,KAAK,CAAC;MAAA,CAAC;MAC7CwB,SAAS,EAAE,SAAAA,UAACzD,CAAC;QAAA,OAAK,IAAA0D,qBAAc,EAAC1D,CAAC,EAAE;UAAA,OAAMyB,6BAA6B,CAACN,CAAC,CAACkC,KAAK,CAAC;QAAA,EAAC;MAAA,CAAC;MAClFM,GAAG,sBAAAR,MAAA,CAAsBhC,CAAC,CAACkC,KAAK,YAAU;MAC1CO,QAAQ,EAAE;IAAE,GACb,mBACkB,EAACzC,CAAC,CAACkC,KAAK,GAAG,CAC1B,CAAC;EAAA,CACN,CAAC,EAEH,CAAC7B,yBAAyB,gBACzB/B,MAAA,CAAAa,OAAA,CAAAyC,aAAA;IACEC,SAAS,EAAE,4BAA6B;IACxCM,OAAO,EAAE3B,wBAAyB;IAClC8B,SAAS,EAAE,SAAAA,UAACzD,CAAC;MAAA,OAAK,IAAA0D,qBAAc,EAAC1D,CAAC,EAAE2B,wBAAwB,CAAC;IAAA,CAAC;IAC9DiC,QAAQ,EAAE;EAAE,GACb,sBAEG,CAAC,GACH,IAAI,eACRnE,MAAA,CAAAa,OAAA,CAAAyC,aAAA;IACEC,SAAS,EAAC,4BAA4B;IACtCM,OAAO,EAAE1B,aAAc;IACvB6B,SAAS,EAAE,SAAAA,UAACzD,CAAC;MAAA,OAAK,IAAA0D,qBAAc,EAAC1D,CAAC,EAAE4B,aAAa,CAAC;IAAA,CAAC;IACnDgC,QAAQ,EAAE;EAAE,GACb,QAEG,CACF,CACC,CAAC,EAEJ/B,gBAAgB,IAAI,CAAC,IAAAuB,eAAO,EAAClB,OAAO,CAAC,gBACnCzC,MAAA,CAAAa,OAAA,CAAAyC,aAAA;IAAKC,SAAS,EAAC;EAA4E,gBACzFvD,MAAA,CAAAa,OAAA,CAAAyC,aAAA;IAAGC,SAAS,EAAC;EAAM,GAAC,0BAAwB,EAAClB,mBAAmB,EAAC,6BAA8B,CAAC,eAChGrC,MAAA,CAAAa,OAAA,CAAAyC,aAAA;IAAIC,SAAS,EAAC;EAAgB,GAE1B,IAAAE,IAAA,CAAA5C,OAAA,EAAA4B,OAAO,EAAAhB,IAAA,CAAPgB,OAAO,EAAK,UAAC2B,MAAM,EAAER,KAAK;IAAA,oBACxB5D,MAAA,CAAAa,OAAA,CAAAyC,aAAA;MAAIC,SAAS,EAAC,eAAe;MAACW,GAAG,wBAAAR,MAAA,CAAwBE,KAAK;IAAG,GAC9DQ,MACC,CAAC;EAAA,CACN,CAED,CACD,CAAC,GACJ,IAEL,CACF,CAAC;AAEV,CAAC;AAEDxC,mBAAmB,CAACyC,SAAS,GAAG;EAC9BvC,UAAU,EAAEwC,oBAAS,CAACC,KAAK,CAACC,UAAU;EACtCzC,yBAAyB,EAAEuC,oBAAS,CAACG,IAAI,CAACD,UAAU;EACpDxC,6BAA6B,EAAEsC,oBAAS,CAACI,IAAI,CAACF,UAAU;EACxDtC,wBAAwB,EAAEoC,oBAAS,CAACI,IAAI,CAACF,UAAU;EACnDrC,aAAa,EAAEmC,oBAAS,CAACI,IAAI,CAACF,UAAU;EACxCpC,gBAAgB,EAAEkC,oBAAS,CAACG,IAAI,CAACD,UAAU;EAC3CnC,mBAAmB,EAAEiC,oBAAS,CAACK,MAAM,CAACH,UAAU;EAChDlC,iBAAiB,EAAEgC,oBAAS,CAACM;AAC/B,CAAC;AAEDhD,mBAAmB,CAACiD,YAAY,GAAG;EACjCvC,iBAAiB,EAAE,CAAC;AACtB,CAAC;AAAA,IAAAwC,QAAA,GAAAC,OAAA,CAAAlE,OAAA,GAEce,mBAAmB"}
|
|
1
|
+
{"version":3,"file":"ReferralProgramMenu.js","names":["_react","_interopRequireWildcard","require","_propTypes","_lodash","_utils","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","ReferralProgramMenu","_ref","unselected","preventUngroup","moveToNewReferralDisabled","onMoveToExistingReferralClick","onMoveToExistingReferralReasonsHover","onMoveToNewReferralClick","onRemoveClick","reasonMenuIsOpen","moveToReferralIndex","cannotMoveReasons","onClickThreeDotIcon","setReasonMenuIsOpen","reasons","referralOptionsMenu","useRef","_useState","useState","_useState2","_slicedToArray2","showUngroupMessageError","setShowUngroupMessageError","useEffect","document","addEventListener","handleClickListener","removeEventListener","event","clickedInside","current","contains","target","handleShowUngroupMessageError","createElement","className","ref","_map","concat","isEmpty","index","onClick","onMouseEnter","onMouseOut","onKeyDown","handleKeyPress","key","tabIndex","reason","propTypes","PropTypes","array","isRequired","bool","func","number","object","defaultProps","_default","exports"],"sources":["../../../src/pages/builder/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 [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 return (\n <div className=\"absolute z-10 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\">\n {\n unselected.map((i) => (\n <li\n className={`p-3 hover:bg-med-pale-blue ${!isEmpty(cannotMoveReasons[i.index]) ? 'text-gray-400' : ''}`}\n onClick={() => onMoveToExistingReferralClick(i.index)}\n onMouseEnter={() => onMoveToExistingReferralReasonsHover(i.index)}\n onMouseOut={() => setReasonMenuIsOpen(false)}\n onKeyDown={(e) => handleKeyPress(e, () => onMoveToExistingReferralClick(i.index))}\n key={`move-to-referral-${i.index}-button`}\n tabIndex={0}\n >\n Move to Referral {i.index + 1}\n </li>\n ))\n }\n {!moveToNewReferralDisabled ? (\n <li\n className={`p-3 hover:bg-med-pale-blue ${preventUngroup ? 'text-gray-400' : ''}`}\n onClick={onMoveToNewReferralClick}\n onKeyDown={(e) => handleKeyPress(e, onMoveToNewReferralClick)}\n onMouseEnter={preventUngroup ? () => handleShowUngroupMessageError() : null}\n onMouseOut={preventUngroup ? () => handleShowUngroupMessageError() : null}\n tabIndex={0}\n >\n Move to new referral\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 </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\">\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\">\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};\n\nReferralProgramMenu.defaultProps = {\n cannotMoveReasons: {},\n}\n\nexport default ReferralProgramMenu;\n"],"mappings":"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"}
|
|
@@ -19,11 +19,12 @@ var _filter = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-sta
|
|
|
19
19
|
var _map = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/map"));
|
|
20
20
|
var _values = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/object/values"));
|
|
21
21
|
var _concat = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/concat"));
|
|
22
|
-
var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
|
|
23
22
|
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
|
23
|
+
var _includes = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/includes"));
|
|
24
24
|
var _splice = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/splice"));
|
|
25
25
|
var _lodash = require("lodash");
|
|
26
26
|
var _utils = require("./utils");
|
|
27
|
+
var _useFeatureFlag = require("../../utils/useFeatureFlag");
|
|
27
28
|
var _constants = require("./constants");
|
|
28
29
|
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty2(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
29
30
|
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) { (0, _defineProperty2.default)(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; }
|
|
@@ -35,7 +36,7 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t =
|
|
|
35
36
|
// - Programs in sensitive providers cannot be grouped
|
|
36
37
|
// - Programs at the same provider cannot be grouped
|
|
37
38
|
// - Users at sensitive providers cannot group programs
|
|
38
|
-
// - Funded programs
|
|
39
|
+
// - Funded programs that require authroization with the same fee schedule program can be grouped
|
|
39
40
|
// - Unlisted programs can only be grouped with programs in the same service and with off platform referrals
|
|
40
41
|
var groupByNetwork = function groupByNetwork(referral) {
|
|
41
42
|
var _context, _context2, _context3, _context4, _context5;
|
|
@@ -109,82 +110,78 @@ var groupByNetworkStatus = function groupByNetworkStatus(referral) {
|
|
|
109
110
|
})] : []));
|
|
110
111
|
};
|
|
111
112
|
var groupByProviderId = function groupByProviderId(referral) {
|
|
112
|
-
var
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
113
|
+
var groupedPrograms = [];
|
|
114
|
+
referral.programs.forEach(function (program) {
|
|
115
|
+
var foundGroup = (0, _find.default)(groupedPrograms).call(groupedPrograms, function (group) {
|
|
116
|
+
return group.every(function (p) {
|
|
117
|
+
var _p$provider, _program$provider4;
|
|
118
|
+
return ((_p$provider = p.provider) === null || _p$provider === void 0 ? void 0 : _p$provider.id) !== ((_program$provider4 = program.provider) === null || _program$provider4 === void 0 ? void 0 : _program$provider4.id);
|
|
119
|
+
});
|
|
120
|
+
});
|
|
121
|
+
foundGroup ? foundGroup.push(program) : groupedPrograms.push([program]);
|
|
122
|
+
});
|
|
123
|
+
var referralsGroupedByProviders = (0, _map.default)(groupedPrograms).call(groupedPrograms, function (programs) {
|
|
120
124
|
return _objectSpread(_objectSpread({}, referral), {}, {
|
|
121
|
-
programs:
|
|
125
|
+
programs: programs
|
|
122
126
|
});
|
|
123
127
|
});
|
|
124
|
-
|
|
125
|
-
var uniqueProviderPrograms = (0, _flatMapInstanceProperty(_lodash))((0, _filter.default)(_context12 = (0, _values.default)(programsGroupedByProviderID)).call(_context12, function (program) {
|
|
126
|
-
return program.length === 1;
|
|
127
|
-
}));
|
|
128
|
-
var uniqueProviderReferrals = !(0, _lodash.isEmpty)(uniqueProviderPrograms) ? [_objectSpread(_objectSpread({}, referral), {}, {
|
|
129
|
-
programs: uniqueProviderPrograms
|
|
130
|
-
})] : [];
|
|
131
|
-
return (0, _concat.default)(_context13 = []).call(_context13, (0, _toConsumableArray2.default)(sameProviderReferrals), uniqueProviderReferrals);
|
|
128
|
+
return (0, _toConsumableArray2.default)(referralsGroupedByProviders);
|
|
132
129
|
};
|
|
133
130
|
var groupBySensitivity = function groupBySensitivity(referral) {
|
|
134
|
-
var
|
|
131
|
+
var _context11, _head, _context12, _context13, _context14, _context15;
|
|
135
132
|
// if every program is non-sensitive or the referral contains only one sensitive program, return referral
|
|
136
|
-
if ((0, _lodash.every)((0, _map.default)(
|
|
137
|
-
var _p$
|
|
138
|
-
return !(p !== null && p !== void 0 && (_p$
|
|
133
|
+
if ((0, _lodash.every)((0, _map.default)(_context11 = referral.programs).call(_context11, function (p) {
|
|
134
|
+
var _p$provider2;
|
|
135
|
+
return !(p !== null && p !== void 0 && (_p$provider2 = p.provider) !== null && _p$provider2 !== void 0 && _p$provider2.sensitive);
|
|
139
136
|
})) || referral.programs.length === 1 && (_head = (0, _lodash.head)(referral.programs)) !== null && _head !== void 0 && (_head = _head.provider) !== null && _head !== void 0 && _head.sensitive) {
|
|
140
137
|
return [referral];
|
|
141
138
|
}
|
|
142
139
|
// create a new referral for each sensitive program
|
|
143
|
-
var sensitivePrograms = (0, _map.default)(
|
|
144
|
-
var _p$
|
|
145
|
-
return p === null || p === void 0 || (_p$
|
|
146
|
-
})).call(
|
|
140
|
+
var sensitivePrograms = (0, _map.default)(_context12 = (0, _filter.default)(_context13 = referral.programs).call(_context13, function (p) {
|
|
141
|
+
var _p$provider3;
|
|
142
|
+
return p === null || p === void 0 || (_p$provider3 = p.provider) === null || _p$provider3 === void 0 ? void 0 : _p$provider3.sensitive;
|
|
143
|
+
})).call(_context12, function (program) {
|
|
147
144
|
return _objectSpread(_objectSpread({}, referral), {}, {
|
|
148
145
|
programs: [program]
|
|
149
146
|
});
|
|
150
147
|
});
|
|
151
148
|
// create a new referral for non-sensitive programs
|
|
152
|
-
var nonSensitivePrograms = (0, _filter.default)(
|
|
153
|
-
var _p$
|
|
154
|
-
return !(p !== null && p !== void 0 && (_p$
|
|
149
|
+
var nonSensitivePrograms = (0, _filter.default)(_context14 = referral.programs).call(_context14, function (p) {
|
|
150
|
+
var _p$provider4;
|
|
151
|
+
return !(p !== null && p !== void 0 && (_p$provider4 = p.provider) !== null && _p$provider4 !== void 0 && _p$provider4.sensitive);
|
|
155
152
|
});
|
|
156
153
|
var nonSensitiveReferrals = !(0, _lodash.isEmpty)(nonSensitivePrograms) ? [_objectSpread(_objectSpread({}, referral), {}, {
|
|
157
154
|
programs: nonSensitivePrograms
|
|
158
155
|
})] : [];
|
|
159
|
-
return (0, _concat.default)(
|
|
156
|
+
return (0, _concat.default)(_context15 = []).call(_context15, (0, _toConsumableArray2.default)(sensitivePrograms), nonSensitiveReferrals);
|
|
160
157
|
};
|
|
161
158
|
var groupByCC = function groupByCC(referral) {
|
|
162
|
-
var
|
|
159
|
+
var _context16, _head2, _context17, _context18, _context19, _context20;
|
|
163
160
|
// if no programs are in a coordination center or the referral contains only one program in a cc, return referral
|
|
164
|
-
if ((0, _lodash.every)((0, _map.default)(
|
|
165
|
-
var _p$
|
|
166
|
-
return (p === null || p === void 0 || (_p$
|
|
161
|
+
if ((0, _lodash.every)((0, _map.default)(_context16 = referral.programs).call(_context16, function (p) {
|
|
162
|
+
var _p$provider5;
|
|
163
|
+
return (p === null || p === void 0 || (_p$provider5 = p.provider) === null || _p$provider5 === void 0 ? void 0 : _p$provider5.provider_type) !== 'coordination_center';
|
|
167
164
|
})) || referral.programs.length === 1 && ((_head2 = (0, _lodash.head)(referral.programs)) === null || _head2 === void 0 || (_head2 = _head2.provider) === null || _head2 === void 0 ? void 0 : _head2.provider_type) === 'coordination_center') {
|
|
168
165
|
return [referral];
|
|
169
166
|
}
|
|
170
167
|
// create a new referral for each program in a cc
|
|
171
|
-
var ccPrograms = (0, _map.default)(
|
|
172
|
-
var _p$
|
|
173
|
-
return (p === null || p === void 0 || (_p$
|
|
174
|
-
})).call(
|
|
168
|
+
var ccPrograms = (0, _map.default)(_context17 = (0, _filter.default)(_context18 = referral.programs).call(_context18, function (p) {
|
|
169
|
+
var _p$provider6;
|
|
170
|
+
return (p === null || p === void 0 || (_p$provider6 = p.provider) === null || _p$provider6 === void 0 ? void 0 : _p$provider6.provider_type) === 'coordination_center';
|
|
171
|
+
})).call(_context17, function (program) {
|
|
175
172
|
return _objectSpread(_objectSpread({}, referral), {}, {
|
|
176
173
|
programs: [program]
|
|
177
174
|
});
|
|
178
175
|
});
|
|
179
176
|
// create a new referral for programs not in a cc
|
|
180
|
-
var nonCCPrograms = (0, _filter.default)(
|
|
181
|
-
var _p$
|
|
182
|
-
return (p === null || p === void 0 || (_p$
|
|
177
|
+
var nonCCPrograms = (0, _filter.default)(_context19 = referral.programs).call(_context19, function (p) {
|
|
178
|
+
var _p$provider7;
|
|
179
|
+
return (p === null || p === void 0 || (_p$provider7 = p.provider) === null || _p$provider7 === void 0 ? void 0 : _p$provider7.provider_type) !== 'coordination_center';
|
|
183
180
|
});
|
|
184
181
|
var nonCCReferrals = !(0, _lodash.isEmpty)(nonCCPrograms) ? [_objectSpread(_objectSpread({}, referral), {}, {
|
|
185
182
|
programs: nonCCPrograms
|
|
186
183
|
})] : [];
|
|
187
|
-
return (0, _concat.default)(
|
|
184
|
+
return (0, _concat.default)(_context20 = []).call(_context20, (0, _toConsumableArray2.default)(ccPrograms), nonCCReferrals);
|
|
188
185
|
};
|
|
189
186
|
var preventGroupingForSensitiveProvider = function preventGroupingForSensitiveProvider(referral) {
|
|
190
187
|
var networks = (0, _utils.filterNetworks)(referral);
|
|
@@ -199,6 +196,35 @@ var preventGroupingForSensitiveProvider = function preventGroupingForSensitivePr
|
|
|
199
196
|
});
|
|
200
197
|
}) : [referral];
|
|
201
198
|
};
|
|
199
|
+
var groupByFunded = function groupByFunded(referral) {
|
|
200
|
+
var _context21, _context22, _context23;
|
|
201
|
+
var fundedWithAuthorizationPrograms = (0, _filter.default)(_context21 = referral.programs).call(_context21, function (p) {
|
|
202
|
+
var _p$fee_schedule_progr;
|
|
203
|
+
return (_p$fee_schedule_progr = p.fee_schedule_program) === null || _p$fee_schedule_progr === void 0 ? void 0 : _p$fee_schedule_progr.authorization_required;
|
|
204
|
+
});
|
|
205
|
+
var fundedWithoutAuthorizationPrograms = (0, _filter.default)(_context22 = referral.programs).call(_context22, function (p) {
|
|
206
|
+
var _p$fee_schedule_progr2;
|
|
207
|
+
return !((_p$fee_schedule_progr2 = p.fee_schedule_program) !== null && _p$fee_schedule_progr2 !== void 0 && _p$fee_schedule_progr2.authorization_required);
|
|
208
|
+
});
|
|
209
|
+
var programsGroupedByFeeSchedule = (0, _lodash.groupBy)(fundedWithAuthorizationPrograms, 'fee_schedule_program.id');
|
|
210
|
+
var sameFeePrograms = (0, _values.default)(programsGroupedByFeeSchedule);
|
|
211
|
+
|
|
212
|
+
// Create a new referral for each program with a shared fee schedule program
|
|
213
|
+
var sameFeeReferrals = (0, _map.default)(sameFeePrograms).call(sameFeePrograms, function (program) {
|
|
214
|
+
return _objectSpread(_objectSpread({}, referral), {}, {
|
|
215
|
+
programs: program
|
|
216
|
+
}, program.length >= 2 ? {
|
|
217
|
+
prevent_ungroup: true
|
|
218
|
+
} : null);
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
// Create a new referral for programs without fee authorization required
|
|
222
|
+
var nonAuthReferrals = !(0, _lodash.isEmpty)(fundedWithoutAuthorizationPrograms) ? [_objectSpread(_objectSpread({}, referral), {}, {
|
|
223
|
+
programs: fundedWithoutAuthorizationPrograms,
|
|
224
|
+
ungroup: true
|
|
225
|
+
})] : [];
|
|
226
|
+
return (0, _concat.default)(_context23 = []).call(_context23, nonAuthReferrals, (0, _toConsumableArray2.default)(sameFeeReferrals));
|
|
227
|
+
};
|
|
202
228
|
var groupUnlistedProgramsToReferrals = function groupUnlistedProgramsToReferrals(referrals) {
|
|
203
229
|
var _context26;
|
|
204
230
|
var unlistedReferrals = [],
|
|
@@ -242,12 +268,17 @@ var groupUnlistedProgramsToReferrals = function groupUnlistedProgramsToReferrals
|
|
|
242
268
|
return (0, _concat.default)(_context26 = []).call(_context26, listedReferrals, (0, _toConsumableArray2.default)(updatedUnlistedReferrals));
|
|
243
269
|
};
|
|
244
270
|
var buildGroupedReferrals = exports.buildGroupedReferrals = function buildGroupedReferrals(newReferrals, currentProvider) {
|
|
271
|
+
var crtb1127AuthPaymentProgramsInReferrals = (0, _useFeatureFlag.useFeatureFlag)('crtb1127AuthPaymentProgramsInReferrals', false);
|
|
245
272
|
var groupedReferrals = newReferrals;
|
|
246
273
|
// if the current provider is sensitive, prevent grouping
|
|
247
274
|
if (currentProvider !== null && currentProvider !== void 0 && currentProvider.sensitive) {
|
|
248
275
|
groupedReferrals = (0, _flatMapInstanceProperty(_lodash))(groupedReferrals, preventGroupingForSensitiveProvider);
|
|
249
276
|
} else {
|
|
250
|
-
var groupOperations = [
|
|
277
|
+
var groupOperations = [];
|
|
278
|
+
if (crtb1127AuthPaymentProgramsInReferrals) {
|
|
279
|
+
groupOperations.push(groupByFunded);
|
|
280
|
+
}
|
|
281
|
+
groupOperations.push(groupByNetwork, groupByNetworkStatus, groupByProviderId, groupBySensitivity, groupByCC);
|
|
251
282
|
groupOperations.forEach(function (operation) {
|
|
252
283
|
groupedReferrals = (0, _flatMapInstanceProperty(_lodash))(groupedReferrals, operation);
|
|
253
284
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"buildGroupedReferrals.js","names":["_lodash","require","_utils","_constants","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","_filterInstanceProperty2","call","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","groupByNetwork","referral","_context","_context2","_context3","_context4","_context5","networks","filterNetworks","isUnlistedReferral","network","head","singleNetworkPrograms","_filter","programs","program","_program$provider","provider","multipleNetworkPrograms","_program$provider2","noNetworkPrograms","_program$provider3","programsGroupedByNetworkId","groupBy","sameNetworkReferrals","_map","_values","_programs$0$provider","multipleNetworkReferrals","noNetworkReferrals","_concat","_toConsumableArray2","groupByNetworkStatus","_context6","_context7","_context8","_context9","_context10","every","p","programIsOnPlatform","programIsOffPlatform","inNetworkPrograms","OONPrograms","groupByProviderId","_context11","_context12","_context13","programsGroupedByProviderID","sameProviderPrograms","_flatMapInstanceProperty","sameProviderReferrals","uniqueProviderPrograms","uniqueProviderReferrals","isEmpty","groupBySensitivity","_context14","_head","_context15","_context16","_context17","_context18","_p$provider","sensitive","sensitivePrograms","_p$provider2","nonSensitivePrograms","_p$provider3","nonSensitiveReferrals","groupByCC","_context19","_head2","_context20","_context21","_context22","_context23","_p$provider4","provider_type","ccPrograms","_p$provider5","nonCCPrograms","_p$provider6","nonCCReferrals","preventGroupingForSensitiveProvider","groupUnlistedProgramsToReferrals","referrals","_context26","unlistedReferrals","listedReferrals","_context24","_includes","id","unlistedReferral","processReferral","foundReferral","_find","_unlistedReferral$pro","_referral$programs$","services","service","status","toLowerCase","OFF_PLATFORM_REFERRALS_ONLY","_context25","_splice","updatedUnlistedReferrals","_unlistedReferral$pro2","buildGroupedReferrals","exports","newReferrals","currentProvider","groupedReferrals","groupOperations","operation"],"sources":["../../../src/pages/builder/buildGroupedReferrals.js"],"sourcesContent":["import { isEmpty, every, head, groupBy, flatMap } from 'lodash';\nimport { isUnlistedReferral, filterNetworks, programIsOffPlatform, programIsOnPlatform } from './utils';\nimport { OFF_PLATFORM_REFERRALS_ONLY } from './constants';\n\n// Grouping Rules:\n// - On- and off-platform programs cannot be grouped\n// - Service must be the same\n// - Programs in coordination centers cannot be grouped\n// - Programs must be in the same network\n// - Programs in sensitive providers cannot be grouped\n// - Programs at the same provider cannot be grouped\n// - Users at sensitive providers cannot group programs\n// - Funded programs can only be grouped with other programs in the same fee schedule (not implemented)\n// - Unlisted programs can only be grouped with programs in the same service and with off platform referrals\n\nconst groupByNetwork = (referral) => {\n const networks = filterNetworks(referral);\n // if there is only one possible network, set the referral's network and return the referral\n if (networks.length === 1 || isUnlistedReferral(referral)) {\n referral.network = head(networks);\n return [referral];\n }\n // if there is more than one possible network, divide the programs into multiple referrals:\n // referrals with programs in providers in a single network and\n // referrals with programs in providers in multiple networks\n // referrals with unlisted programs, don't have network\n const singleNetworkPrograms = referral.programs.filter(program => program.provider?.networks?.length === 1);\n const multipleNetworkPrograms = referral.programs.filter(program => program.provider?.networks?.length > 1);\n const noNetworkPrograms = referral.programs.filter(program => !program.provider?.networks?.length);\n // group single network programs by network id\n const programsGroupedByNetworkId = groupBy(singleNetworkPrograms, 'provider.networks[0].id');\n // create a grouped referral for programs with the same single network\n const sameNetworkReferrals = Object.values(programsGroupedByNetworkId).map(programs => ({\n ...referral,\n programs,\n network: head(programs[0].provider?.networks),\n }))\n // create separate referrals for each program with multiple networks\n const multipleNetworkReferrals = multipleNetworkPrograms.map(program => ({\n ...referral,\n programs: [program],\n }))\n // create separate referrals for each program with no network\n const noNetworkReferrals = noNetworkPrograms.map(program => ({\n ...referral,\n programs: [program],\n }))\n\n return [...multipleNetworkReferrals, ...sameNetworkReferrals, ...noNetworkReferrals];\n}\n\nconst groupByNetworkStatus = (referral) => {\n // if every program is on-platform or every programs is off-platform, return the referral\n if (every(referral.programs.map(p => programIsOnPlatform(p))) ||\n every(referral.programs.map(p => programIsOffPlatform(p)))) {\n return [referral];\n }\n // divide programs into on- and off-platform referrals\n const inNetworkPrograms = referral.programs.filter(p => programIsOnPlatform(p));\n const OONPrograms = referral.programs.filter(p => programIsOffPlatform(p));\n\n return [\n ...inNetworkPrograms.length ? [{ ...referral, programs: inNetworkPrograms }] : [],\n ...OONPrograms.length ? [{ ...referral, programs: OONPrograms }] : []\n ];\n}\n\nconst groupByProviderId = (referral) => {\n // group programs by provider id\n const programsGroupedByProviderID = groupBy(referral.programs, 'provider.id');\n // create a new referral for each program with a shared provider id\n const sameProviderPrograms = flatMap(Object.values(programsGroupedByProviderID).filter(program => program.length > 1));\n const sameProviderReferrals = sameProviderPrograms.map(program => ({\n ...referral, programs: [program]\n }))\n // create a new referral for programs with unique provider ids\n const uniqueProviderPrograms = flatMap(Object.values(programsGroupedByProviderID).filter(program => program.length === 1));\n const uniqueProviderReferrals = !isEmpty(uniqueProviderPrograms) ? [{ ...referral, programs: uniqueProviderPrograms }] : [];\n\n return [...sameProviderReferrals, ...uniqueProviderReferrals];\n}\n\nconst groupBySensitivity = (referral) => {\n // if every program is non-sensitive or the referral contains only one sensitive program, return referral\n if (every(referral.programs.map(p => !p?.provider?.sensitive)) ||\n (referral.programs.length === 1 && head(referral.programs)?.provider?.sensitive)) {\n return [referral];\n }\n // create a new referral for each sensitive program\n const sensitivePrograms = referral.programs.filter(p => p?.provider?.sensitive).map(program => ({\n ...referral, programs: [program]\n }));\n // create a new referral for non-sensitive programs\n const nonSensitivePrograms = referral.programs.filter(p => !p?.provider?.sensitive);\n const nonSensitiveReferrals = !isEmpty(nonSensitivePrograms) ? [{ ...referral, programs: nonSensitivePrograms }] : [];\n\n return [...sensitivePrograms, ...nonSensitiveReferrals];\n}\n\nconst groupByCC = (referral) => {\n // if no programs are in a coordination center or the referral contains only one program in a cc, return referral\n if (every(referral.programs.map(p => p?.provider?.provider_type !== 'coordination_center')) ||\n (referral.programs.length === 1 && head(referral.programs)?.provider?.provider_type === 'coordination_center')) {\n return [referral];\n }\n // create a new referral for each program in a cc\n const ccPrograms = referral.programs.filter(p => p?.provider?.provider_type === 'coordination_center')\n .map(program => ({\n ...referral, programs: [program]\n }));\n // create a new referral for programs not in a cc\n const nonCCPrograms = referral.programs.filter(p => p?.provider?.provider_type !== 'coordination_center');\n const nonCCReferrals = !isEmpty(nonCCPrograms) ? [{ ...referral, programs: nonCCPrograms }] : [];\n\n return [...ccPrograms, ...nonCCReferrals];\n}\n\nconst preventGroupingForSensitiveProvider = (referral) => {\n const networks = filterNetworks(referral);\n // if there is only one possible network, set the referral's network\n if (networks.length === 1) {\n referral.network = head(networks);\n }\n const { programs } = referral;\n return programs.length > 1 ?\n programs.map(program => ({ ...referral, programs: [program] })) :\n [referral];\n};\n\nconst groupUnlistedProgramsToReferrals = (referrals) => {\n const unlistedReferrals = [], listedReferrals = [];\n\n referrals.forEach(referral => {\n if (every(referral.programs, p => p.id.includes('unlisted')))\n unlistedReferrals.push(referral);\n else\n listedReferrals.push(referral);\n });\n\n if (unlistedReferrals.length === 0) {\n return listedReferrals;\n }\n\n // Loop over the unlisted referrals, in case of a match, add the unlisted program to the referral \n // and remove it from the unlisted referral\n unlistedReferrals.forEach(unlistedReferral => {\n const processReferral = (referrals) => {\n // Find a referral with the same service and off-platform status\n const foundReferral = referrals.find(referral =>\n unlistedReferral.programs[0]?.services[0] === referral.service.id &&\n referral.programs[0]?.status?.toLowerCase() === OFF_PLATFORM_REFERRALS_ONLY\n );\n \n if (foundReferral) {\n // Add the unlisted program to the referral\n foundReferral.programs.push(unlistedReferral.programs[0]);\n // Remove the unlisted program from the referral, otherwise, it will be added to referrals multiple times\n unlistedReferral.programs.splice(0, 1);\n }\n };\n \n processReferral(listedReferrals);\n processReferral(unlistedReferrals);\n });\n\n // Remove referrals with no programs\n const updatedUnlistedReferrals = unlistedReferrals.filter(unlistedReferral => {\n if (unlistedReferral?.programs?.length > 0)\n return unlistedReferral;\n });\n\n return [...listedReferrals, ...updatedUnlistedReferrals];\n}\n\nexport const buildGroupedReferrals = (newReferrals, currentProvider) => {\n let groupedReferrals = newReferrals;\n // if the current provider is sensitive, prevent grouping\n if (currentProvider?.sensitive) {\n groupedReferrals = flatMap(groupedReferrals, preventGroupingForSensitiveProvider);\n } else {\n const groupOperations = [groupByNetwork, groupByNetworkStatus, groupByProviderId, groupBySensitivity, groupByCC];\n groupOperations.forEach(operation => {\n groupedReferrals = flatMap(groupedReferrals, operation);\n });\n\n groupedReferrals = groupUnlistedProgramsToReferrals(groupedReferrals);\n }\n\n return groupedReferrals;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"buildGroupedReferrals.js","names":["_lodash","require","_utils","_useFeatureFlag","_constants","ownKeys","e","r","t","_Object$keys","_Object$getOwnPropertySymbols","o","_filterInstanceProperty2","call","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","groupByNetwork","referral","_context","_context2","_context3","_context4","_context5","networks","filterNetworks","isUnlistedReferral","network","head","singleNetworkPrograms","_filter","programs","program","_program$provider","provider","multipleNetworkPrograms","_program$provider2","noNetworkPrograms","_program$provider3","programsGroupedByNetworkId","groupBy","sameNetworkReferrals","_map","_values","_programs$0$provider","multipleNetworkReferrals","noNetworkReferrals","_concat","_toConsumableArray2","groupByNetworkStatus","_context6","_context7","_context8","_context9","_context10","every","p","programIsOnPlatform","programIsOffPlatform","inNetworkPrograms","OONPrograms","groupByProviderId","groupedPrograms","foundGroup","_find","group","_p$provider","_program$provider4","id","referralsGroupedByProviders","groupBySensitivity","_context11","_head","_context12","_context13","_context14","_context15","_p$provider2","sensitive","sensitivePrograms","_p$provider3","nonSensitivePrograms","_p$provider4","nonSensitiveReferrals","isEmpty","groupByCC","_context16","_head2","_context17","_context18","_context19","_context20","_p$provider5","provider_type","ccPrograms","_p$provider6","nonCCPrograms","_p$provider7","nonCCReferrals","preventGroupingForSensitiveProvider","groupByFunded","_context21","_context22","_context23","fundedWithAuthorizationPrograms","_p$fee_schedule_progr","fee_schedule_program","authorization_required","fundedWithoutAuthorizationPrograms","_p$fee_schedule_progr2","programsGroupedByFeeSchedule","sameFeePrograms","sameFeeReferrals","prevent_ungroup","nonAuthReferrals","ungroup","groupUnlistedProgramsToReferrals","referrals","_context26","unlistedReferrals","listedReferrals","_context24","_includes","unlistedReferral","processReferral","foundReferral","_unlistedReferral$pro","_referral$programs$","services","service","status","toLowerCase","OFF_PLATFORM_REFERRALS_ONLY","_context25","_splice","updatedUnlistedReferrals","_unlistedReferral$pro2","buildGroupedReferrals","exports","newReferrals","currentProvider","crtb1127AuthPaymentProgramsInReferrals","useFeatureFlag","groupedReferrals","_flatMapInstanceProperty","groupOperations","operation"],"sources":["../../../src/pages/builder/buildGroupedReferrals.js"],"sourcesContent":["import { isEmpty, every, head, groupBy, flatMap } from 'lodash';\nimport { isUnlistedReferral, filterNetworks, programIsOffPlatform, programIsOnPlatform } from './utils';\nimport { useFeatureFlag } from '../../utils/useFeatureFlag';\nimport { OFF_PLATFORM_REFERRALS_ONLY } from './constants';\n\n// Grouping Rules:\n// - On- and off-platform programs cannot be grouped\n// - Service must be the same\n// - Programs in coordination centers cannot be grouped\n// - Programs must be in the same network\n// - Programs in sensitive providers cannot be grouped\n// - Programs at the same provider cannot be grouped\n// - Users at sensitive providers cannot group programs\n// - Funded programs that require authroization with the same fee schedule program can be grouped\n// - Unlisted programs can only be grouped with programs in the same service and with off platform referrals\n\nconst groupByNetwork = (referral) => {\n const networks = filterNetworks(referral);\n // if there is only one possible network, set the referral's network and return the referral\n if (networks.length === 1 || isUnlistedReferral(referral)) {\n referral.network = head(networks);\n return [referral];\n }\n // if there is more than one possible network, divide the programs into multiple referrals:\n // referrals with programs in providers in a single network and\n // referrals with programs in providers in multiple networks\n // referrals with unlisted programs, don't have network\n const singleNetworkPrograms = referral.programs.filter(program => program.provider?.networks?.length === 1);\n const multipleNetworkPrograms = referral.programs.filter(program => program.provider?.networks?.length > 1);\n const noNetworkPrograms = referral.programs.filter(program => !program.provider?.networks?.length);\n // group single network programs by network id\n const programsGroupedByNetworkId = groupBy(singleNetworkPrograms, 'provider.networks[0].id');\n // create a grouped referral for programs with the same single network\n const sameNetworkReferrals = Object.values(programsGroupedByNetworkId).map(programs => ({\n ...referral,\n programs,\n network: head(programs[0].provider?.networks),\n }))\n // create separate referrals for each program with multiple networks\n const multipleNetworkReferrals = multipleNetworkPrograms.map(program => ({\n ...referral,\n programs: [program],\n }))\n // create separate referrals for each program with no network\n const noNetworkReferrals = noNetworkPrograms.map(program => ({\n ...referral,\n programs: [program],\n }))\n\n return [...multipleNetworkReferrals, ...sameNetworkReferrals, ...noNetworkReferrals];\n}\n\nconst groupByNetworkStatus = (referral) => {\n // if every program is on-platform or every programs is off-platform, return the referral\n if (every(referral.programs.map(p => programIsOnPlatform(p))) ||\n every(referral.programs.map(p => programIsOffPlatform(p)))) {\n return [referral];\n }\n // divide programs into on- and off-platform referrals\n const inNetworkPrograms = referral.programs.filter(p => programIsOnPlatform(p));\n const OONPrograms = referral.programs.filter(p => programIsOffPlatform(p));\n\n return [\n ...inNetworkPrograms.length ? [{ ...referral, programs: inNetworkPrograms }] : [],\n ...OONPrograms.length ? [{ ...referral, programs: OONPrograms }] : []\n ];\n}\n\nconst groupByProviderId = (referral) => {\n const groupedPrograms = [];\n referral.programs.forEach(program => {\n let foundGroup = groupedPrograms.find(group => group.every(p => p.provider?.id !== program.provider?.id));\n\n (foundGroup) ? foundGroup.push(program) : groupedPrograms.push([program]);\n });\n\n const referralsGroupedByProviders = groupedPrograms.map(programs => ({ ...referral, programs }));\n\n return [...referralsGroupedByProviders];\n}\n\nconst groupBySensitivity = (referral) => {\n // if every program is non-sensitive or the referral contains only one sensitive program, return referral\n if (every(referral.programs.map(p => !p?.provider?.sensitive)) ||\n (referral.programs.length === 1 && head(referral.programs)?.provider?.sensitive)) {\n return [referral];\n }\n // create a new referral for each sensitive program\n const sensitivePrograms = referral.programs.filter(p => p?.provider?.sensitive).map(program => ({\n ...referral, programs: [program]\n }));\n // create a new referral for non-sensitive programs\n const nonSensitivePrograms = referral.programs.filter(p => !p?.provider?.sensitive);\n const nonSensitiveReferrals = !isEmpty(nonSensitivePrograms) ? [{ ...referral, programs: nonSensitivePrograms }] : [];\n\n return [...sensitivePrograms, ...nonSensitiveReferrals];\n}\n\nconst groupByCC = (referral) => {\n // if no programs are in a coordination center or the referral contains only one program in a cc, return referral\n if (every(referral.programs.map(p => p?.provider?.provider_type !== 'coordination_center')) ||\n (referral.programs.length === 1 && head(referral.programs)?.provider?.provider_type === 'coordination_center')) {\n return [referral];\n }\n // create a new referral for each program in a cc\n const ccPrograms = referral.programs.filter(p => p?.provider?.provider_type === 'coordination_center')\n .map(program => ({\n ...referral, programs: [program]\n }));\n // create a new referral for programs not in a cc\n const nonCCPrograms = referral.programs.filter(p => p?.provider?.provider_type !== 'coordination_center');\n const nonCCReferrals = !isEmpty(nonCCPrograms) ? [{ ...referral, programs: nonCCPrograms }] : [];\n\n return [...ccPrograms, ...nonCCReferrals];\n}\n\nconst preventGroupingForSensitiveProvider = (referral) => {\n const networks = filterNetworks(referral);\n // if there is only one possible network, set the referral's network\n if (networks.length === 1) {\n referral.network = head(networks);\n }\n const { programs } = referral;\n return programs.length > 1 ?\n programs.map(program => ({ ...referral, programs: [program] })) :\n [referral];\n};\n\nconst groupByFunded = (referral) => {\n const fundedWithAuthorizationPrograms = referral.programs.filter(p => p.fee_schedule_program?.authorization_required);\n const fundedWithoutAuthorizationPrograms = referral.programs.filter(p => !p.fee_schedule_program?.authorization_required);\n\n const programsGroupedByFeeSchedule = groupBy(fundedWithAuthorizationPrograms, 'fee_schedule_program.id');\n const sameFeePrograms = Object.values(programsGroupedByFeeSchedule);\n\n // Create a new referral for each program with a shared fee schedule program\n const sameFeeReferrals = sameFeePrograms.map(program => ({\n ...referral,\n programs: program,\n ...(program.length >= 2 ? { prevent_ungroup: true } : null) // A referral with two or more programs with the same fee schedule cannot be ungrouped\n }));\n\n // Create a new referral for programs without fee authorization required\n const nonAuthReferrals = !isEmpty(fundedWithoutAuthorizationPrograms) ? [{ ...referral, programs: fundedWithoutAuthorizationPrograms, ungroup: true }] : [];\n\n return [...nonAuthReferrals, ...sameFeeReferrals];\n};\n\nconst groupUnlistedProgramsToReferrals = (referrals) => {\n const unlistedReferrals = [], listedReferrals = [];\n\n referrals.forEach(referral => {\n if (every(referral.programs, p => p.id.includes('unlisted')))\n unlistedReferrals.push(referral);\n else\n listedReferrals.push(referral);\n });\n\n if (unlistedReferrals.length === 0) {\n return listedReferrals;\n }\n\n // Loop over the unlisted referrals, in case of a match, add the unlisted program to the referral \n // and remove it from the unlisted referral\n unlistedReferrals.forEach(unlistedReferral => {\n const processReferral = (referrals) => {\n // Find a referral with the same service and off-platform status\n const foundReferral = referrals.find(referral =>\n unlistedReferral.programs[0]?.services[0] === referral.service.id &&\n referral.programs[0]?.status?.toLowerCase() === OFF_PLATFORM_REFERRALS_ONLY\n );\n \n if (foundReferral) {\n // Add the unlisted program to the referral\n foundReferral.programs.push(unlistedReferral.programs[0]);\n // Remove the unlisted program from the referral, otherwise, it will be added to referrals multiple times\n unlistedReferral.programs.splice(0, 1);\n }\n };\n \n processReferral(listedReferrals);\n processReferral(unlistedReferrals);\n });\n\n // Remove referrals with no programs\n const updatedUnlistedReferrals = unlistedReferrals.filter(unlistedReferral => {\n if (unlistedReferral?.programs?.length > 0)\n return unlistedReferral;\n });\n\n return [...listedReferrals, ...updatedUnlistedReferrals];\n}\n\nexport const buildGroupedReferrals = (newReferrals, currentProvider) => {\n const crtb1127AuthPaymentProgramsInReferrals = useFeatureFlag('crtb1127AuthPaymentProgramsInReferrals', false);\n\n let groupedReferrals = newReferrals;\n // if the current provider is sensitive, prevent grouping\n if (currentProvider?.sensitive) {\n groupedReferrals = flatMap(groupedReferrals, preventGroupingForSensitiveProvider);\n } else {\n const groupOperations = [];\n\n if (crtb1127AuthPaymentProgramsInReferrals) {\n groupOperations.push(groupByFunded);\n }\n\n groupOperations.push(groupByNetwork, groupByNetworkStatus, groupByProviderId, groupBySensitivity, groupByCC);\n\n groupOperations.forEach(operation => {\n groupedReferrals = flatMap(groupedReferrals, operation);\n });\n\n groupedReferrals = groupUnlistedProgramsToReferrals(groupedReferrals);\n }\n\n return groupedReferrals;\n}\n"],"mappings":"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"}
|
|
@@ -35,10 +35,11 @@ function useBuildReferrals() {
|
|
|
35
35
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
36
36
|
isLoading = _useState2[0],
|
|
37
37
|
setIsLoading = _useState2[1];
|
|
38
|
+
var crtb1127AuthPaymentProgramsInReferrals = (0, _useFeatureFlag.useFeatureFlag)('crtb1127AuthPaymentProgramsInReferrals', false);
|
|
38
39
|
var hint542SupersetUnlistedPrograms = (0, _useFeatureFlag.useFeatureFlag)('hint542SupersetUnlistedPrograms', false);
|
|
39
40
|
var buildReferrals = /*#__PURE__*/function () {
|
|
40
41
|
var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
41
|
-
var assistanceRequest, assistanceRequestResponse, selectedProgramsFiltered, newReferrals, newReferralsClone, newReferralsCloneWithoutUnlisted, flatPrograms, filteredReferrals, providerPromises, networkPromises, groupedReferrals, _assistanceRequest, _assistanceRequest2;
|
|
42
|
+
var assistanceRequest, assistanceRequestResponse, selectedProgramsFiltered, newReferrals, newReferralsClone, newReferralsCloneWithoutUnlisted, flatPrograms, filteredReferrals, providerPromises, networkPromises, feeSchedulePromises, groupedReferrals, _assistanceRequest, _assistanceRequest2;
|
|
42
43
|
return _regenerator.default.wrap(function _callee2$(_context4) {
|
|
43
44
|
while (1) switch (_context4.prev = _context4.next) {
|
|
44
45
|
case 0:
|
|
@@ -95,14 +96,16 @@ function useBuildReferrals() {
|
|
|
95
96
|
_context4.next = 21;
|
|
96
97
|
return _config.coreApi.populateRelationship('service', 'service', filteredReferrals);
|
|
97
98
|
case 21:
|
|
98
|
-
providerPromises = [];
|
|
99
|
-
networkPromises = [];
|
|
99
|
+
providerPromises = [], networkPromises = [], feeSchedulePromises = [];
|
|
100
100
|
filteredReferrals.forEach(function (referral) {
|
|
101
101
|
referral.programs.forEach(function (program) {
|
|
102
102
|
providerPromises.push(_config.coreApi.populateRelationship('provider', 'provider', program));
|
|
103
|
+
if (crtb1127AuthPaymentProgramsInReferrals) {
|
|
104
|
+
feeSchedulePromises.push(_config.coreApi.populateRelationship('fee_schedule_program', 'fee_schedule_program', program));
|
|
105
|
+
}
|
|
103
106
|
});
|
|
104
107
|
});
|
|
105
|
-
_context4.next =
|
|
108
|
+
_context4.next = 25;
|
|
106
109
|
return _promise.default.all(providerPromises).then(function (programs) {
|
|
107
110
|
programs.forEach( /*#__PURE__*/function () {
|
|
108
111
|
var _ref2 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(program) {
|
|
@@ -121,9 +124,13 @@ function useBuildReferrals() {
|
|
|
121
124
|
};
|
|
122
125
|
}());
|
|
123
126
|
});
|
|
124
|
-
case
|
|
127
|
+
case 25:
|
|
128
|
+
if (!crtb1127AuthPaymentProgramsInReferrals) {
|
|
129
|
+
_context4.next = 28;
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
125
132
|
_context4.next = 28;
|
|
126
|
-
return _promise.default.all(
|
|
133
|
+
return _promise.default.all(feeSchedulePromises);
|
|
127
134
|
case 28:
|
|
128
135
|
groupedReferrals = (0, _buildGroupedReferrals.buildGroupedReferrals)(filteredReferrals, currentProvider);
|
|
129
136
|
if (!(0, _lodash.isEmpty)(assistanceRequest)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBuildReferrals.js","names":["_react","require","_AppCreateReferralProvider","_utils","_lodash","_buildGroupedReferrals","_config","_useFeatureFlag","useBuildReferrals","_useAppCreateReferral","useAppCreateReferralContext","dispatch","_useAppCreateReferral2","state","selectedPrograms","referrals","currentProvider","draftState","assistanceRequestId","_useState","useState","_useState2","_slicedToArray2","default","isLoading","setIsLoading","hint542SupersetUnlistedPrograms","useFeatureFlag","buildReferrals","_ref","_asyncToGenerator2","_regenerator","mark","_callee2","assistanceRequest","assistanceRequestResponse","selectedProgramsFiltered","newReferrals","newReferralsClone","newReferralsCloneWithoutUnlisted","flatPrograms","filteredReferrals","providerPromises","networkPromises","groupedReferrals","_assistanceRequest","_assistanceRequest2","wrap","_callee2$","_context4","prev","next","isEmpty","coreApi","findRecord","include","sent","get","addIdToUnlistedPrograms","_filter","call","obj","id","buildReferralsFromPrograms","addProgramToReferral","isUnlistedProgram","JSON","parse","_stringify","_map","referral","_context","programs","p","_context2","_includes","populateRelationship","_flatMap","filterProgramsReceivingReferrals","forEach","program","push","_promise","all","then","_ref2","_callee","_callee$","_context3","provider","stop","_x","apply","arguments","buildGroupedReferrals","description","case","setData","t0","finish","useEffect"],"sources":["../../../src/pages/builder/useBuildReferrals.js"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { setData, useAppCreateReferralContext } from '../../context/AppCreateReferralProvider';\nimport {\n addProgramToReferral,\n addIdToUnlistedPrograms,\n buildReferralsFromPrograms,\n isUnlistedProgram,\n filterProgramsReceivingReferrals\n} from './utils';\nimport { isEmpty, get } from 'lodash';\nimport { buildGroupedReferrals } from './buildGroupedReferrals';\nimport { coreApi } from '../../api/config';\nimport { useFeatureFlag } from '../../utils/useFeatureFlag';\n\nexport default function useBuildReferrals() {\n const { dispatch, state: {\n selectedPrograms,\n referrals,\n currentProvider,\n draftState,\n assistanceRequestId,\n } } = useAppCreateReferralContext();\n const [isLoading, setIsLoading] = useState(false);\n const hint542SupersetUnlistedPrograms = useFeatureFlag('hint542SupersetUnlistedPrograms', false);\n\n const buildReferrals = async () => {\n try {\n // Build the referrals only one time\n if (isEmpty(referrals)) {\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 coreApi.populateRelationship('service', 'service', filteredReferrals);\n\n let providerPromises = [];\n let networkPromises = [];\n\n filteredReferrals.forEach((referral) => {\n referral.programs.forEach((program) => {\n providerPromises.push(coreApi.populateRelationship('provider', 'provider', 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(networkPromises);\n\n const groupedReferrals = buildGroupedReferrals(filteredReferrals, currentProvider);\n\n if (!isEmpty(assistanceRequest)) {\n groupedReferrals[0].description = assistanceRequest?.description || assistanceRequest?.case?.description;\n }\n\n dispatch(setData({\n assistanceRequestId: assistanceRequest,\n referrals: groupedReferrals\n }))\n }\n } catch (err) { }\n finally { setIsLoading(false) }\n }\n\n useEffect(() => {\n buildReferrals();\n }, [selectedPrograms])\n\n return {\n referrals,\n isLoading\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useBuildReferrals.js","names":["_react","require","_AppCreateReferralProvider","_utils","_lodash","_buildGroupedReferrals","_config","_useFeatureFlag","useBuildReferrals","_useAppCreateReferral","useAppCreateReferralContext","dispatch","_useAppCreateReferral2","state","selectedPrograms","referrals","currentProvider","draftState","assistanceRequestId","_useState","useState","_useState2","_slicedToArray2","default","isLoading","setIsLoading","crtb1127AuthPaymentProgramsInReferrals","useFeatureFlag","hint542SupersetUnlistedPrograms","buildReferrals","_ref","_asyncToGenerator2","_regenerator","mark","_callee2","assistanceRequest","assistanceRequestResponse","selectedProgramsFiltered","newReferrals","newReferralsClone","newReferralsCloneWithoutUnlisted","flatPrograms","filteredReferrals","providerPromises","networkPromises","feeSchedulePromises","groupedReferrals","_assistanceRequest","_assistanceRequest2","wrap","_callee2$","_context4","prev","next","isEmpty","coreApi","findRecord","include","sent","get","addIdToUnlistedPrograms","_filter","call","obj","id","buildReferralsFromPrograms","addProgramToReferral","isUnlistedProgram","JSON","parse","_stringify","_map","referral","_context","programs","p","_context2","_includes","populateRelationship","_flatMap","filterProgramsReceivingReferrals","forEach","program","push","_promise","all","then","_ref2","_callee","_callee$","_context3","provider","stop","_x","apply","arguments","buildGroupedReferrals","description","case","setData","t0","finish","useEffect"],"sources":["../../../src/pages/builder/useBuildReferrals.js"],"sourcesContent":["import { useEffect, useState } from 'react';\nimport { setData, useAppCreateReferralContext } from '../../context/AppCreateReferralProvider';\nimport {\n addProgramToReferral,\n addIdToUnlistedPrograms,\n buildReferralsFromPrograms,\n isUnlistedProgram,\n filterProgramsReceivingReferrals\n} from './utils';\nimport { isEmpty, get } from 'lodash';\nimport { buildGroupedReferrals } from './buildGroupedReferrals';\nimport { coreApi } from '../../api/config';\nimport { useFeatureFlag } from '../../utils/useFeatureFlag';\n\nexport default function useBuildReferrals() {\n const { dispatch, state: {\n selectedPrograms,\n referrals,\n currentProvider,\n draftState,\n assistanceRequestId,\n } } = useAppCreateReferralContext();\n const [isLoading, setIsLoading] = useState(false);\n\n const crtb1127AuthPaymentProgramsInReferrals = useFeatureFlag('crtb1127AuthPaymentProgramsInReferrals', false);\n const hint542SupersetUnlistedPrograms = useFeatureFlag('hint542SupersetUnlistedPrograms', false);\n\n const buildReferrals = async () => {\n try {\n // Build the referrals only one time\n if (isEmpty(referrals)) {\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 coreApi.populateRelationship('service', 'service', filteredReferrals);\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 if (crtb1127AuthPaymentProgramsInReferrals) {\n feeSchedulePromises.push(coreApi.populateRelationship('fee_schedule_program', 'fee_schedule_program', program));\n }\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 if (crtb1127AuthPaymentProgramsInReferrals) {\n await Promise.all(feeSchedulePromises);\n }\n\n const groupedReferrals = buildGroupedReferrals(filteredReferrals, currentProvider);\n\n if (!isEmpty(assistanceRequest)) {\n groupedReferrals[0].description = assistanceRequest?.description || assistanceRequest?.case?.description;\n }\n\n dispatch(setData({\n assistanceRequestId: assistanceRequest,\n referrals: groupedReferrals\n }))\n }\n } catch (err) { }\n finally { setIsLoading(false) }\n }\n\n useEffect(() => {\n buildReferrals();\n }, [selectedPrograms])\n\n return {\n referrals,\n isLoading\n }\n}\n"],"mappings":"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"}
|