@unite-us/app-create-referral 0.2.4 → 0.2.6-CRTB-985-e6aa149
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/README.md +220 -26
- package/dist/hooks/useCreateReferrals.js +9 -7
- package/dist/hooks/useCreateReferrals.js.map +1 -1
- package/dist/pages/builder/ReferralBuilderForm.js +10 -9
- package/dist/pages/builder/ReferralBuilderForm.js.map +1 -1
- package/dist/pages/builder/utils.js +10 -9
- package/dist/pages/builder/utils.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,10 +1,19 @@
|
|
|
1
|
-
# App Create Referral
|
|
2
1
|
|
|
3
2
|
This project is intended to be used from a parent application like [unite-us/front-end](https://github.com/unite-us/front-end) or [unite-us/uniteus-emr](https://github.com/unite-us/uniteus-emr)
|
|
4
3
|
|
|
5
|
-
|
|
4
|
+
## Table of Contents
|
|
5
|
+
- [Table of Contents](#table-of-contents)
|
|
6
|
+
- [Setup](#setup)
|
|
7
|
+
- [For Frontend (WebApp) Parent project](#for-frontend-webapp-parent-project)
|
|
8
|
+
- [For SmartApp (EMR) Parent project](#for-smartapp-emr-parent-project)
|
|
9
|
+
- [Architecture](#architecture)
|
|
10
|
+
- [Usages in parent apps](#usages-in-parent-apps)
|
|
11
|
+
- [Testing](#testing)
|
|
12
|
+
- [Releases](#releases)
|
|
13
|
+
- [How to update `app-create-referral` version in parent apps](#how-to-update-app-create-referral-version-in-parent-apps)
|
|
14
|
+
- [When to update the version in parent apps?](#when-to-update-the-version-in-parent-apps)
|
|
6
15
|
|
|
7
|
-
|
|
16
|
+
## Setup
|
|
8
17
|
To develop locally follow this steps:
|
|
9
18
|
|
|
10
19
|
1- Open a command line console:
|
|
@@ -13,48 +22,233 @@ To develop locally follow this steps:
|
|
|
13
22
|
|
|
14
23
|
$ npm i && npm link && npm run build:dist:watch
|
|
15
24
|
```
|
|
16
|
-
This
|
|
25
|
+
This installs the packages, creates a link for this project (to be consumed from a parent app) and starts the server in watch mode. Development changes will trigger a rebuild and refresh the browser.
|
|
17
26
|
|
|
18
|
-
|
|
27
|
+
### For Frontend (WebApp) Parent project
|
|
19
28
|
|
|
20
|
-
|
|
29
|
+
```
|
|
30
|
+
// open a new terminal
|
|
31
|
+
// from the folder in `front-end/packages/app-client`
|
|
32
|
+
$ npm link @unite-us/app-create-referral
|
|
33
|
+
$ npm start
|
|
34
|
+
```
|
|
35
|
+
- Go to http://localhost:8080 and log in as a user with the `uup-459-superset-phase-2` feature flag enabled (ex: `spero@perms.test`)
|
|
36
|
+
- Find the entrypoint you want to check, e.g from the Client Facesheet, click the Refer button, it should take you to the Search step and then land in the referral flow
|
|
37
|
+
|
|
38
|
+
### For SmartApp (EMR) Parent project
|
|
21
39
|
|
|
22
40
|
```
|
|
41
|
+
// open a new terminal
|
|
23
42
|
// from the root folder in uniteus-emr project
|
|
24
43
|
$ npm i
|
|
25
|
-
$ git checkout smrt-create-referral
|
|
26
44
|
$ npm link @unite-us/app-create-referral
|
|
27
45
|
$ npm start
|
|
28
46
|
```
|
|
29
|
-
- Go to http://localhost:8081 and log in as a user with the `
|
|
30
|
-
-
|
|
31
|
-
|
|
47
|
+
- Go to http://localhost:8081 and log in as a user with the `uup-459-superset-phase-2` feature flag enabled (ex: `costanza@uniteus.com`)
|
|
48
|
+
- Find the entry point you want to check (e.g click the "Create Referral" button); it should take you to the Search step. Once you select program(s), click the "Added Resources" button to open the drawer and click the "Create Referrals" button to land in the referral flow.
|
|
49
|
+
|
|
50
|
+
## Architecture
|
|
51
|
+
|
|
52
|
+
Please find the [Technical Design Document](https://uniteus.atlassian.net/wiki/spaces/AppEng/pages/3819208813/Tech+Design+Create+Referral+Project) to know about the project.
|
|
53
|
+
|
|
54
|
+
The application includes it's own Router and React Query Client. This allows us to use React Testing Library with Mock Service Workers (MswJS) for testing as an standalone app.
|
|
55
|
+
|
|
56
|
+
- `__testUtils__/`: Testing utils and mock server
|
|
57
|
+
- `actions/`: Custom api calls
|
|
58
|
+
- `api/`: Default hooks and axios instances setup
|
|
59
|
+
- `common/`: Common components (this can be merged with the components folder)
|
|
60
|
+
- `components/`: Components
|
|
61
|
+
- `constants/`: Constants
|
|
62
|
+
- `context/`: App Context to serve as source of truth of the data.
|
|
63
|
+
- `hooks/`: Custom hooks
|
|
64
|
+
- `pages/`: Pages components that relates to each route
|
|
65
|
+
- `styles/`: Custom scss files
|
|
66
|
+
- `utils/`: Utils functions
|
|
67
|
+
|
|
68
|
+
`AppReferrals.js`: This is the main component (entry point) of the app with the Router
|
|
69
|
+
|
|
70
|
+
## Usages in parent apps
|
|
71
|
+
|
|
72
|
+
The AppReferrals component is wired up in AppClient and EMR in specific routes:
|
|
73
|
+
|
|
74
|
+
AppClient:
|
|
32
75
|
|
|
33
|
-
|
|
76
|
+
- `<Route path="referrals/2/*" component={Referrals} />`
|
|
77
|
+
- Points to: https://github.com/unite-us/front-end/blob/master/packages/app-client/src/pages/referrals/2/Referrals.jsx
|
|
34
78
|
|
|
35
|
-
After you are done with your changes, create a PR and **AFTER** it's merged, a Github Action will bump the version for you automatically and will create a new commit in the history, just only need to wait for the action to finish and check the commits for one that looks like this, eg:
|
|
36
79
|
```
|
|
37
|
-
|
|
80
|
+
<AppReferrals
|
|
81
|
+
// general settings, urls needed to build the axios instances
|
|
82
|
+
appSettings={
|
|
83
|
+
{
|
|
84
|
+
env: {
|
|
85
|
+
getAuthToken,
|
|
86
|
+
coreUrl: CORE_API,
|
|
87
|
+
employeeId: currentEmployee?.id,
|
|
88
|
+
providerId: currentEmployee?.provider.id,
|
|
89
|
+
sharesUrl: SHARES_URL,
|
|
90
|
+
consentUrl: CONSENT_APP_URL,
|
|
91
|
+
},
|
|
92
|
+
basename,
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// this will be set to the app context
|
|
97
|
+
appState={{
|
|
98
|
+
currentEmployee,
|
|
99
|
+
currentProvider,
|
|
100
|
+
enums,
|
|
101
|
+
source: 'app-client',
|
|
102
|
+
}}
|
|
103
|
+
|
|
104
|
+
// callbacks functions invoked in specific places throughout the app
|
|
105
|
+
callbacks={{
|
|
106
|
+
notify: {
|
|
107
|
+
error: (message) => Notifier.dispatch('error', message),
|
|
108
|
+
success: (message) => Notifier.dispatch('success', message),
|
|
109
|
+
warn: (message) => Notifier.dispatch('warning', message),
|
|
110
|
+
},
|
|
111
|
+
trackEventCallback: trackEvent,
|
|
112
|
+
consent: {
|
|
113
|
+
updateGlobalState,
|
|
114
|
+
},
|
|
115
|
+
onReferralCompleted: ({ hasOnlyOONReferrals }) => {
|
|
116
|
+
browserHistory.push({
|
|
117
|
+
pathname: hasOnlyOONReferrals ? '/dashboard/oon-cases/open' : '/dashboard/referrals/sent/all',
|
|
118
|
+
});
|
|
119
|
+
},
|
|
120
|
+
onSaveDraftReferral: () => {
|
|
121
|
+
browserHistory.push({
|
|
122
|
+
pathname: '/dashboard/referrals/sent/draft',
|
|
123
|
+
});
|
|
124
|
+
},
|
|
125
|
+
onSubmitConsent: async () => {
|
|
126
|
+
// refresh ClientHeader to refetch person to show new consent status
|
|
127
|
+
setShowHeader(false);
|
|
128
|
+
setTimeout(() => {
|
|
129
|
+
setShowHeader(true);
|
|
130
|
+
});
|
|
131
|
+
},
|
|
132
|
+
onDeselectProgram: dispatchRemoveProgram,
|
|
133
|
+
onClickSearchStep: (searchParams, selectedPrograms) => {
|
|
134
|
+
dispatchRemoveAllPrograms();
|
|
135
|
+
if (!isEmpty(selectedPrograms)) {
|
|
136
|
+
dispatchAddPrograms(selectedPrograms);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
const serializedSearchParams = serializeQueryParams(omitBy(searchParams, isNil));
|
|
140
|
+
const search = serializedSearchParams ? `?${serializedSearchParams}` : '';
|
|
141
|
+
|
|
142
|
+
browserHistory.push({
|
|
143
|
+
pathname: '/referrals/create/add-resources',
|
|
144
|
+
search,
|
|
145
|
+
});
|
|
146
|
+
},
|
|
147
|
+
onClickBackFromBuilder: () => {
|
|
148
|
+
let backUrl = `/referrals/create/add-resources?person=${personId}`;
|
|
149
|
+
if (resourceListId) { backUrl += `&resource_list=${resourceListId}`; }
|
|
150
|
+
|
|
151
|
+
browserHistory.replace(`${backUrl}&from-referral=true`);
|
|
152
|
+
},
|
|
153
|
+
}}
|
|
154
|
+
|
|
155
|
+
// components as props to avoid adding dependencies inside the app-create-referral repo
|
|
156
|
+
components={{
|
|
157
|
+
consent: ConsentReferrals,
|
|
158
|
+
}}
|
|
159
|
+
/>
|
|
160
|
+
|
|
161
|
+
//...
|
|
38
162
|
```
|
|
39
|
-
|
|
163
|
+
EMR:
|
|
164
|
+
- `<Route path="referrals/2/*" components={Referrals} />`
|
|
165
|
+
- Points to: https://github.com/unite-us/uniteus-emr/blob/master/src/pages/%5Bsession_id%5D/2/referrals/Referrals.jsx
|
|
40
166
|
|
|
41
|
-
|
|
167
|
+
In both WebApp and SmartApp, where the user navigates to the referral flow, we need to set the `selectedPrograms`, as in `SupersetSearch.jsx`
|
|
42
168
|
|
|
43
|
-
|
|
169
|
+
```
|
|
170
|
+
...
|
|
171
|
+
const { dispatch } = useAppCreateReferralContext();
|
|
44
172
|
|
|
45
|
-
|
|
173
|
+
const onClickNext = () => {
|
|
174
|
+
const programsToUse = Object.keys(programToServiceTypesDict)
|
|
175
|
+
.map((id) => ({ id, services: programToServiceTypesDict[id] }));
|
|
46
176
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
177
|
+
// this sets the selected programs needed inside the referral flow
|
|
178
|
+
dispatch(
|
|
179
|
+
init({
|
|
180
|
+
selectedPrograms: programsToUse,
|
|
181
|
+
person: personId,
|
|
182
|
+
resourceListId,
|
|
183
|
+
}),
|
|
184
|
+
);
|
|
185
|
+
|
|
186
|
+
browserHistory.push({
|
|
187
|
+
pathname: '/referrals/2/create/builder',
|
|
188
|
+
});
|
|
189
|
+
}
|
|
190
|
+
```
|
|
191
|
+
|
|
192
|
+
## Testing
|
|
193
|
+
|
|
194
|
+
The app uses React Testing Library and Mock Service Worker (MswJS) for unit testing and integration testing across components.
|
|
195
|
+
|
|
196
|
+
`/__testUtils__/`: Includes the custom `render` using React Testing Library and the Mock Server that intercepts http requests during the tests
|
|
197
|
+
|
|
198
|
+
`/pages/*/__tests__`: Each page includes a folder with the tests for the screen.
|
|
199
|
+
|
|
200
|
+
Please review the existing tests and follow along to keep adding more scenarios as new features are being added.
|
|
201
|
+
|
|
202
|
+
## Releases
|
|
203
|
+
|
|
204
|
+
There is Github Action configured for the `main` branch that will generate a new version after a PR has been merged into `main`, usually it's the latest commit in the history for the main branch, e.g:
|
|
205
|
+
```
|
|
206
|
+
Automated Version Bump [skip ci] bumps version to 0.1.85
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
The new version created is `0.1.85`
|
|
210
|
+
|
|
211
|
+
### How to update `app-create-referral` version in parent apps
|
|
212
|
+
|
|
213
|
+
There are a few steps:
|
|
214
|
+
1. Update the dependency in the corresponding `package.json`
|
|
215
|
+
2. Install the dependencies
|
|
216
|
+
3. Create the PR to merge the new version
|
|
217
|
+
|
|
218
|
+
- unite-us/front-end
|
|
219
|
+
|
|
220
|
+
Update the `package.json`: https://github.com/unite-us/front-end/blob/master/packages/app-client/package.json
|
|
221
|
+
|
|
222
|
+
```
|
|
223
|
+
"@unite-us/app-create-referral": "0.1.85"
|
|
224
|
+
```
|
|
225
|
+
- Open the terminal
|
|
226
|
+
```
|
|
227
|
+
// from the root folder of the front-end repo, run yarn:
|
|
228
|
+
$ yarn
|
|
229
|
+
```
|
|
230
|
+
This will update the `yarn.lock` file with the new version, your PR to bump the version should include the `package.json` and the `yarn.lock` file changes, e.g:
|
|
231
|
+
https://github.com/unite-us/front-end/pull/4522/files
|
|
232
|
+
|
|
233
|
+
- unite-us/uniteus-emr
|
|
234
|
+
|
|
235
|
+
Update the `package.json`: https://github.com/unite-us/uniteus-emr/blob/master/package.json
|
|
236
|
+
|
|
237
|
+
```
|
|
238
|
+
"@unite-us/app-create-referral": "0.1.85"
|
|
239
|
+
```
|
|
240
|
+
- Open the terminal
|
|
53
241
|
```
|
|
54
242
|
$ npm i
|
|
55
243
|
```
|
|
56
|
-
|
|
57
|
-
|
|
244
|
+
This will update the `package-lock.json` file with the new version, your PR to bump the version should include the `package.json` and the `package-lock.json` file changes, e.g:
|
|
245
|
+
https://github.com/unite-us/uniteus-emr/pull/1883/files
|
|
246
|
+
|
|
247
|
+
Finally, create a PR in the parent project to use the new version.
|
|
248
|
+
|
|
249
|
+
### When to update the version in parent apps?
|
|
250
|
+
It depends on the release cadence and the speed to verify the features by the team; one approach could be keeping the parent apps with the latest versions at all times, shipping faster but also brings the risk of "untested" features might go into production because in very small timeframes probably the tester doesn't have time to verified the feature; and any team can do a release of the parent app with a version that you still dont want to make it to production.
|
|
58
251
|
|
|
252
|
+
Another more conservative approach could be to update the version only when the team is ready to test the features and ensured they will be tested in a short timeframe (before any team does a release) to avoid the risk mentioned above; this approach is potentially not as fast, but it should keep the production releases more controlled.
|
|
59
253
|
|
|
60
|
-
|
|
254
|
+
It's up to the team to decide the cadence and speed of the releases.
|
|
@@ -86,12 +86,13 @@ function useCreateReferrals() {
|
|
|
86
86
|
return (0, _lodash.get)(r, 'programs', []).length > 1;
|
|
87
87
|
});
|
|
88
88
|
_loop = /*#__PURE__*/_regenerator.default.mark(function _loop() {
|
|
89
|
-
var referral, referredToPrograms, caseCreated, _loop2, j;
|
|
89
|
+
var referral, referredToPrograms, isGrouped, caseCreated, _loop2, j;
|
|
90
90
|
return _regenerator.default.wrap(function _loop$(_context2) {
|
|
91
91
|
while (1) switch (_context2.prev = _context2.next) {
|
|
92
92
|
case 0:
|
|
93
93
|
referral = referrals[i];
|
|
94
94
|
referredToPrograms = (0, _lodash.get)(referral, 'programs', []);
|
|
95
|
+
isGrouped = (0, _utils.referralIsGrouped)(referral);
|
|
95
96
|
caseCreated = null;
|
|
96
97
|
_loop2 = /*#__PURE__*/_regenerator.default.mark(function _loop2() {
|
|
97
98
|
var programData, _referral$primaryWork, caseValues, response, attachableDocuments, filteredDocuments, attachedDocuments, attachDocumentsToResource, uploadPromises, uploadedDocuments, uploadDocumentsToResource, _uploadPromises, state, referralValues, responseReferral;
|
|
@@ -168,6 +169,7 @@ function useCreateReferrals() {
|
|
|
168
169
|
referralValues = {
|
|
169
170
|
state: state,
|
|
170
171
|
case: caseCreated.id,
|
|
172
|
+
is_grouped: isGrouped,
|
|
171
173
|
receiving_program: programData.id,
|
|
172
174
|
receiving_provider: programData.provider.id,
|
|
173
175
|
receiving_network: referral.network.id,
|
|
@@ -194,17 +196,17 @@ function useCreateReferrals() {
|
|
|
194
196
|
}, _loop2, null, [[3, 11], [24, 31]]);
|
|
195
197
|
});
|
|
196
198
|
j = 0;
|
|
197
|
-
case
|
|
199
|
+
case 6:
|
|
198
200
|
if (!(j < referredToPrograms.length)) {
|
|
199
|
-
_context2.next =
|
|
201
|
+
_context2.next = 11;
|
|
200
202
|
break;
|
|
201
203
|
}
|
|
202
|
-
return _context2.delegateYield(_loop2(), "t0",
|
|
203
|
-
case
|
|
204
|
+
return _context2.delegateYield(_loop2(), "t0", 8);
|
|
205
|
+
case 8:
|
|
204
206
|
j += 1;
|
|
205
|
-
_context2.next =
|
|
207
|
+
_context2.next = 6;
|
|
206
208
|
break;
|
|
207
|
-
case
|
|
209
|
+
case 11:
|
|
208
210
|
case "end":
|
|
209
211
|
return _context2.stop();
|
|
210
212
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCreateReferrals.js","names":["_lodash","require","_utils","_ApiHooks","_config","_AppCreateReferralProvider","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","useCreateReferrals","_useAppCreateReferral","useAppCreateReferralContext","_useAppCreateReferral2","state","currentEmployee","formResponses","person","referrals","_useCreateRecord","useCreateRecord","createReferral","createRecord","_useCreateRecord2","createCase","_useCreateRecord3","createFormSubmission","_useUpdateRecord","useUpdateRecord","updateReferral","updateRecord","_useUpdateRecord2","updateCase","submitAssessments","_ref","cases","latestResponses","promises","_mapInstanceProperty2","serviceCase","assessment","_assessment$form","isEmpty","form","service_type_ids","_includes","service","id","context","contextType","provider","responses","submitter","_promise","all","then","catch","err","CALLBACKS","notify","error","createReferrals","_ref3","_asyncToGenerator2","_regenerator","mark","_callee","_ref2","draft","result","groupedReferrals","_loop","i","wrap","_callee$","_context3","prev","next","some","get","referral","referredToPrograms","caseCreated","_loop2","j","_loop$","_context2","programData","_referral$primaryWork","caseValues","response","attachableDocuments","filteredDocuments","attachedDocuments","attachDocumentsToResource","uploadPromises","uploadedDocuments","uploadDocumentsToResource","_uploadPromises","referralValues","responseReferral","_loop2$","_context","description","referralIsOON","sendingProvider","network","primaryWorker","primary_worker","sent","data","t0","_filter","doc","attached","_map","ad","title","document","coreApi","setRelationship","relationshipModel","value","a","d","uploadFile","file","_toConsumableArray2","case","receiving_program","receiving_provider","receiving_network","sending_provider","sending_network","t1","stop","delegateYield","abrupt","_x","updateDraftReferral","_ref4","_callee2","_callee2$","_context4","_x2","_callee3","_ref6","_ref6$draft","_args5","_callee3$","_context5","undefined"],"sources":["../../src/hooks/useCreateReferrals.js"],"sourcesContent":["import { get, map, isEmpty } from 'lodash';\nimport { referralIsOON } from '../pages/builder/utils';\nimport { useCreateRecord, useUpdateRecord } from '../api/ApiHooks';\nimport { CALLBACKS, coreApi } from '../api/config';\nimport { useAppCreateReferralContext } from '../context/AppCreateReferralProvider';\n\nexport default function useCreateReferrals() {\n const {\n state: {\n currentEmployee,\n formResponses,\n person,\n referrals,\n }\n } = useAppCreateReferralContext();\n\n const { createRecord: createReferral } = useCreateRecord('referral');\n const { createRecord: createCase } = useCreateRecord('case');\n const { createRecord: createFormSubmission } = useCreateRecord('form_submission');\n const { updateRecord: updateReferral } = useUpdateRecord('referral');\n const { updateRecord: updateCase } = useUpdateRecord('case');\n\n\n const submitAssessments = ({ cases, latestResponses }) => {\n let promises = [];\n map(cases, (serviceCase) => {\n map((latestResponses || formResponses), (assessment) => {\n if (!isEmpty(assessment) && assessment.form?.service_type_ids?.includes(serviceCase.service.id)) {\n promises.push(createFormSubmission({\n context: serviceCase.id,\n contextType: 'case',\n form: assessment.form.id,\n provider: serviceCase.provider.id,\n responses: assessment.responses,\n submitter: currentEmployee.id,\n }));\n }\n });\n });\n\n return Promise.all(promises).then((responses) => {\n return responses;\n }).catch(err => {\n CALLBACKS.notify.error(\"Error submitting Assessments\");\n throw err;\n });\n };\n\n const createReferrals = async ({ referrals, person, draft }) => {\n const result = {\n referrals: [],\n cases: []\n };\n\n let groupedReferrals = referrals.some(r => get(r, 'programs', []).length > 1);\n\n for (let i = 0; i < referrals.length; i += 1) {\n const referral = referrals[i];\n const referredToPrograms = get(referral, 'programs', [])\n\n let caseCreated = null;\n\n for (let j = 0; j < referredToPrograms.length; j += 1) {\n const programData = referredToPrograms[j];\n\n // for grouped, created only 1 case and attach it to all referrals;\n // for individual create a new case/referral for each\n if ((groupedReferrals && !caseCreated) || !groupedReferrals) {\n const caseValues = {\n description: referral.description,\n state: referralIsOON(referral) ? 'off_platform' : 'draft',\n person: person.id,\n provider: referral.sendingProvider.id,\n network: referral.network.id,\n service: referral.service.id,\n ...(referral.primaryWorker?.id ? { primary_worker: referral.primaryWorker.id } : null),\n }\n try {\n const response = await createCase(caseValues)\n caseCreated = response.data.data;\n result.cases.push(caseCreated);\n } catch (err) {\n CALLBACKS.notify.error(\"Error creating the Case\");\n throw err;\n }\n }\n\n const attachableDocuments = get(referral, 'attachableDocuments', []);\n const filteredDocuments = attachableDocuments.filter((doc) => doc.attached === true);\n const attachedDocuments = filteredDocuments.map((ad) => ({\n title: ad.document.title,\n id: ad.document.id,\n }));\n\n if(!isEmpty(attachedDocuments)) {\n const attachDocumentsToResource = () => (\n coreApi.setRelationship(\n 'case',\n caseCreated.id,\n { relationshipModel: 'file_upload', value: attachedDocuments.map((a) => a.id) },\n )\n );\n\n const uploadPromises = !isEmpty(attachedDocuments) && attachDocumentsToResource();\n\n Promise.all([uploadPromises]);\n }\n\n const uploadedDocuments = get(referral, 'attachments', []);\n\n if (!isEmpty(uploadedDocuments)) {\n const uploadDocumentsToResource = () => (\n uploadedDocuments.map((d) => coreApi.uploadFile('case', caseCreated.id, d.file))\n );\n\n const uploadPromises = !isEmpty(uploadedDocuments) && uploadDocumentsToResource();\n Promise.all([\n ...(uploadPromises || []),\n ]);\n }\n\n let state = referralIsOON(referral) ? 'off_platform' : 'sent';\n if (draft) {\n state = 'draft';\n }\n\n const referralValues = {\n state,\n case: caseCreated.id,\n receiving_program: programData.id,\n receiving_provider: programData.provider.id,\n receiving_network: referral.network.id,\n sending_provider: referral.sendingProvider.id,\n sending_network: referral.network.id,\n }\n\n try {\n const responseReferral = await createReferral(referralValues);\n result.referrals.push(responseReferral.data.data);\n } catch (err) {\n CALLBACKS.notify.error(\"Error creating the Referral\");\n throw err;\n }\n }\n }\n return result;\n }\n\n const updateDraftReferral = async (referral) => {\n try {\n const responses = await Promise.all([\n updateReferral(referral.id, {\n state: referralIsOON(referral) ? 'off_platform' : 'sent',\n }),\n updateCase(referral.case.id, {\n description: referral.description,\n }),\n ]);\n\n return {\n referrals: [responses[0].data.data],\n cases: [responses[1].data.data],\n }\n } catch (err) {\n CALLBACKS.notify.error(\"Error updating the Draft Referral\");\n throw err;\n }\n }\n\n return async ({ draft = false, latestResponses } = {}) => {\n\n let response = null;\n // Update the Draft Referral to the sent state\n if (referrals.length === 1 && referrals[0].id && referrals[0].state === \"draft\") {\n response = await updateDraftReferral(referrals[0]);\n } else {\n // Create or Save the Referral as a Draft\n response = await createReferrals({ referrals, person, draft })\n }\n\n if (formResponses || latestResponses) {\n await submitAssessments({ cases: response.cases, latestResponses });\n }\n\n return {\n cases: response.cases,\n referrals: response.referrals,\n };\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useCreateReferrals.js","names":["_lodash","require","_utils","_ApiHooks","_config","_AppCreateReferralProvider","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","useCreateReferrals","_useAppCreateReferral","useAppCreateReferralContext","_useAppCreateReferral2","state","currentEmployee","formResponses","person","referrals","_useCreateRecord","useCreateRecord","createReferral","createRecord","_useCreateRecord2","createCase","_useCreateRecord3","createFormSubmission","_useUpdateRecord","useUpdateRecord","updateReferral","updateRecord","_useUpdateRecord2","updateCase","submitAssessments","_ref","cases","latestResponses","promises","_mapInstanceProperty2","serviceCase","assessment","_assessment$form","isEmpty","form","service_type_ids","_includes","service","id","context","contextType","provider","responses","submitter","_promise","all","then","catch","err","CALLBACKS","notify","error","createReferrals","_ref3","_asyncToGenerator2","_regenerator","mark","_callee","_ref2","draft","result","groupedReferrals","_loop","i","wrap","_callee$","_context3","prev","next","some","get","referral","referredToPrograms","isGrouped","caseCreated","_loop2","j","_loop$","_context2","referralIsGrouped","programData","_referral$primaryWork","caseValues","response","attachableDocuments","filteredDocuments","attachedDocuments","attachDocumentsToResource","uploadPromises","uploadedDocuments","uploadDocumentsToResource","_uploadPromises","referralValues","responseReferral","_loop2$","_context","description","referralIsOON","sendingProvider","network","primaryWorker","primary_worker","sent","data","t0","_filter","doc","attached","_map","ad","title","document","coreApi","setRelationship","relationshipModel","value","a","d","uploadFile","file","_toConsumableArray2","case","is_grouped","receiving_program","receiving_provider","receiving_network","sending_provider","sending_network","t1","stop","delegateYield","abrupt","_x","updateDraftReferral","_ref4","_callee2","_callee2$","_context4","_x2","_callee3","_ref6","_ref6$draft","_args5","_callee3$","_context5","undefined"],"sources":["../../src/hooks/useCreateReferrals.js"],"sourcesContent":["import { get, map, isEmpty } from 'lodash';\nimport { referralIsOON, referralIsGrouped } from '../pages/builder/utils';\nimport { useCreateRecord, useUpdateRecord } from '../api/ApiHooks';\nimport { CALLBACKS, coreApi } from '../api/config';\nimport { useAppCreateReferralContext } from '../context/AppCreateReferralProvider';\n\nexport default function useCreateReferrals() {\n const {\n state: {\n currentEmployee,\n formResponses,\n person,\n referrals,\n }\n } = useAppCreateReferralContext();\n\n const { createRecord: createReferral } = useCreateRecord('referral');\n const { createRecord: createCase } = useCreateRecord('case');\n const { createRecord: createFormSubmission } = useCreateRecord('form_submission');\n const { updateRecord: updateReferral } = useUpdateRecord('referral');\n const { updateRecord: updateCase } = useUpdateRecord('case');\n\n\n const submitAssessments = ({ cases, latestResponses }) => {\n let promises = [];\n map(cases, (serviceCase) => {\n map((latestResponses || formResponses), (assessment) => {\n if (!isEmpty(assessment) && assessment.form?.service_type_ids?.includes(serviceCase.service.id)) {\n promises.push(createFormSubmission({\n context: serviceCase.id,\n contextType: 'case',\n form: assessment.form.id,\n provider: serviceCase.provider.id,\n responses: assessment.responses,\n submitter: currentEmployee.id,\n }));\n }\n });\n });\n\n return Promise.all(promises).then((responses) => {\n return responses;\n }).catch(err => {\n CALLBACKS.notify.error(\"Error submitting Assessments\");\n throw err;\n });\n };\n\n const createReferrals = async ({ referrals, person, draft }) => {\n const result = {\n referrals: [],\n cases: []\n };\n\n let groupedReferrals = referrals.some(r => get(r, 'programs', []).length > 1);\n\n for (let i = 0; i < referrals.length; i += 1) {\n const referral = referrals[i];\n const referredToPrograms = get(referral, 'programs', [])\n const isGrouped = referralIsGrouped(referral);\n\n let caseCreated = null;\n\n for (let j = 0; j < referredToPrograms.length; j += 1) {\n const programData = referredToPrograms[j];\n\n // for grouped, created only 1 case and attach it to all referrals;\n // for individual create a new case/referral for each\n if ((groupedReferrals && !caseCreated) || !groupedReferrals) {\n const caseValues = {\n description: referral.description,\n state: referralIsOON(referral) ? 'off_platform' : 'draft',\n person: person.id,\n provider: referral.sendingProvider.id,\n network: referral.network.id,\n service: referral.service.id,\n ...(referral.primaryWorker?.id ? { primary_worker: referral.primaryWorker.id } : null),\n }\n try {\n const response = await createCase(caseValues)\n caseCreated = response.data.data;\n result.cases.push(caseCreated);\n } catch (err) {\n CALLBACKS.notify.error(\"Error creating the Case\");\n throw err;\n }\n }\n\n const attachableDocuments = get(referral, 'attachableDocuments', []);\n const filteredDocuments = attachableDocuments.filter((doc) => doc.attached === true);\n const attachedDocuments = filteredDocuments.map((ad) => ({\n title: ad.document.title,\n id: ad.document.id,\n }));\n\n if(!isEmpty(attachedDocuments)) {\n const attachDocumentsToResource = () => (\n coreApi.setRelationship(\n 'case',\n caseCreated.id,\n { relationshipModel: 'file_upload', value: attachedDocuments.map((a) => a.id) },\n )\n );\n\n const uploadPromises = !isEmpty(attachedDocuments) && attachDocumentsToResource();\n\n Promise.all([uploadPromises]);\n }\n\n const uploadedDocuments = get(referral, 'attachments', []);\n\n if (!isEmpty(uploadedDocuments)) {\n const uploadDocumentsToResource = () => (\n uploadedDocuments.map((d) => coreApi.uploadFile('case', caseCreated.id, d.file))\n );\n\n const uploadPromises = !isEmpty(uploadedDocuments) && uploadDocumentsToResource();\n Promise.all([\n ...(uploadPromises || []),\n ]);\n }\n\n let state = referralIsOON(referral) ? 'off_platform' : 'sent';\n if (draft) {\n state = 'draft';\n }\n\n const referralValues = {\n state,\n case: caseCreated.id,\n is_grouped: isGrouped,\n receiving_program: programData.id,\n receiving_provider: programData.provider.id,\n receiving_network: referral.network.id,\n sending_provider: referral.sendingProvider.id,\n sending_network: referral.network.id,\n }\n\n try {\n const responseReferral = await createReferral(referralValues);\n result.referrals.push(responseReferral.data.data);\n } catch (err) {\n CALLBACKS.notify.error(\"Error creating the Referral\");\n throw err;\n }\n }\n }\n return result;\n }\n\n const updateDraftReferral = async (referral) => {\n try {\n const responses = await Promise.all([\n updateReferral(referral.id, {\n state: referralIsOON(referral) ? 'off_platform' : 'sent',\n }),\n updateCase(referral.case.id, {\n description: referral.description,\n }),\n ]);\n\n return {\n referrals: [responses[0].data.data],\n cases: [responses[1].data.data],\n }\n } catch (err) {\n CALLBACKS.notify.error(\"Error updating the Draft Referral\");\n throw err;\n }\n }\n\n return async ({ draft = false, latestResponses } = {}) => {\n\n let response = null;\n // Update the Draft Referral to the sent state\n if (referrals.length === 1 && referrals[0].id && referrals[0].state === \"draft\") {\n response = await updateDraftReferral(referrals[0]);\n } else {\n // Create or Save the Referral as a Draft\n response = await createReferrals({ referrals, person, draft })\n }\n\n if (formResponses || latestResponses) {\n await submitAssessments({ cases: response.cases, latestResponses });\n }\n\n return {\n cases: response.cases,\n referrals: response.referrals,\n };\n };\n};\n"],"mappings":"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"}
|
|
@@ -46,7 +46,7 @@ function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e;
|
|
|
46
46
|
function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = _filterInstanceProperty(o).call(o, function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
47
47
|
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; }
|
|
48
48
|
function ReferralBuilderForm(_ref) {
|
|
49
|
-
var _context, _context2, _context3;
|
|
49
|
+
var _context, _context2, _context3, _context4;
|
|
50
50
|
var currentEmployee = _ref.currentEmployee,
|
|
51
51
|
currentProvider = _ref.currentProvider,
|
|
52
52
|
referral = _ref.referral,
|
|
@@ -97,7 +97,8 @@ function ReferralBuilderForm(_ref) {
|
|
|
97
97
|
setRejectedFiles = _useState12[1];
|
|
98
98
|
var isOON = (0, _utils.referralIsOON)(referral);
|
|
99
99
|
var isGrouped = (0, _utils.referralIsGrouped)(referral);
|
|
100
|
-
var
|
|
100
|
+
var isFunded = (0, _utils.referralIsFunded)(referral);
|
|
101
|
+
var referralTitle = (0, _concat.default)(_context = (0, _concat.default)(_context2 = (0, _concat.default)(_context3 = (0, _concat.default)(_context4 = "Referral ".concat(index + 1, ": ")).call(_context4, service === null || service === void 0 ? void 0 : service.name)).call(_context3, isGrouped ? ', Grouped' : '')).call(_context2, isOON ? ', Off-Platform' : '')).call(_context, isFunded ? ', Funded' : '');
|
|
101
102
|
var networks = (0, _utils.filterNetworks)(referral);
|
|
102
103
|
var showNetworkSelect = (0, _utils.shouldShowNetworkSelect)(networks, programs);
|
|
103
104
|
var onProgramClick = function onProgramClick(id) {
|
|
@@ -112,25 +113,25 @@ function ReferralBuilderForm(_ref) {
|
|
|
112
113
|
setMoveReferralMenus(programMenus);
|
|
113
114
|
};
|
|
114
115
|
var getPrimaryWorkers = (0, _react.useCallback)( /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
115
|
-
var
|
|
116
|
+
var _context5;
|
|
116
117
|
var _yield$fetchPrimaryWo, primary_workers;
|
|
117
|
-
return _regenerator.default.wrap(function _callee$(
|
|
118
|
-
while (1) switch (
|
|
118
|
+
return _regenerator.default.wrap(function _callee$(_context6) {
|
|
119
|
+
while (1) switch (_context6.prev = _context6.next) {
|
|
119
120
|
case 0:
|
|
120
|
-
|
|
121
|
+
_context6.next = 2;
|
|
121
122
|
return (0, _fetchPrimaryWorkers.default)({
|
|
122
123
|
providerId: referral.sendingProvider.id,
|
|
123
124
|
currentEmployee: currentEmployee,
|
|
124
125
|
query: debouncedQuery
|
|
125
126
|
});
|
|
126
127
|
case 2:
|
|
127
|
-
_yield$fetchPrimaryWo =
|
|
128
|
+
_yield$fetchPrimaryWo = _context6.sent;
|
|
128
129
|
primary_workers = _yield$fetchPrimaryWo.primary_workers;
|
|
129
130
|
// if the query is empty, keep the queried employees and the current primary worker in select field's options array
|
|
130
|
-
(0, _lodash.isEmpty)(query) ? setPrimaryWorkers((0, _lodash.uniqBy)((0, _concat.default)(
|
|
131
|
+
(0, _lodash.isEmpty)(query) ? setPrimaryWorkers((0, _lodash.uniqBy)((0, _concat.default)(_context5 = []).call(_context5, (0, _toConsumableArray2.default)(primaryWorkers), (0, _toConsumableArray2.default)(primary_workers), [primaryWorker && primaryWorker]), 'id')) : setPrimaryWorkers(primary_workers);
|
|
131
132
|
case 5:
|
|
132
133
|
case "end":
|
|
133
|
-
return
|
|
134
|
+
return _context6.stop();
|
|
134
135
|
}
|
|
135
136
|
}, _callee);
|
|
136
137
|
})), [currentEmployee, referral.sendingProvider.id, debouncedQuery]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReferralBuilderForm.js","names":["_react","_interopRequireWildcard","require","_propTypes","_reactFinalForm","_ReferralProgramCard","_interopRequireDefault","_ui","_InfoPanel","_validations","_constants","_FileUpload","_lodash","_utils","_fetchPrimaryWorkers","_useDebounce","_cannotMoveToReferralReasons","_ContactDocumentsSelector","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","ownKeys","_Object$keys","_Object$getOwnPropertySymbols","o","_filterInstanceProperty","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","ReferralBuilderForm","_ref","_context","_context2","_context3","currentEmployee","currentProvider","referral","referrals","index","referralSubtitle","onChange","unselected","removeProgram","onSetForm","moveToNewReferral","moveToExistingReferral","updateAttachments","source","service","programs","primaryWorker","attachments","attachableDocuments","_useState","useState","_useState2","_slicedToArray2","moveReferralMenus","setMoveReferralMenus","_useState3","_useState4","uploadedFiles","setUploadedFiles","_useState5","_useState6","primaryWorkers","setPrimaryWorkers","_useState7","_useState8","initialValues","setInitialValues","_useState9","_useState10","query","setQuery","debouncedQuery","useDebounce","_useState11","filesTooBig","filesWrongType","filesTooBigAndWrongType","_useState12","rejectedFiles","setRejectedFiles","isOON","referralIsOON","isGrouped","referralIsGrouped","referralTitle","_concat","concat","name","networks","filterNetworks","showNetworkSelect","shouldShowNetworkSelect","onProgramClick","id","programMenus","_map","p","menuIsOpen","getPrimaryWorkers","useCallback","_asyncToGenerator2","_regenerator","mark","_callee","_context4","_yield$fetchPrimaryWo","primary_workers","wrap","_callee$","_context5","prev","next","fetchPrimaryWorkers","providerId","sendingProvider","sent","isEmpty","uniqBy","_toConsumableArray2","stop","useEffect","isNil","_find","worker","createElement","Form","onSubmit","validate","values","errors","description","network","mutators","setFieldTouched","args","state","_args2","touched","field","fields","render","_ref3","form","_values","Fragment","FormSpy","subscription","className","program","_moveReferralMenus$fi","cannotMoveReasons","cannotMoveToReferralReasons","key","onClick","programIsOffPlatform","Field","required","params","SelectField","_extends2","label","placeholder","options","labelKey","valueKey","validations","isRequired","TextField","afterLabelContent","message","REFERRAL_PII_PHI_DESCRIPTION","rows","inline","style","text","loadOptions","search","documentFields","FileUpload","propTypes","PropTypes","object","shape","string","array","number","func","defaultProps","_default","exports"],"sources":["../../../src/pages/builder/ReferralBuilderForm.js"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { PropTypes } from 'prop-types';\nimport { Form, Field, FormSpy } from 'react-final-form';\nimport ReferralProgramCard from './ReferralProgramCard';\nimport { TextField, SelectField } from '@unite-us/ui';\nimport InfoPanel from '@unite-us/client-utils/dist/InfoPanel/InfoPanel';\nimport {\n isRequired,\n} from '@unite-us/client-utils/dist/utils/validations/validations';\nimport { REFERRAL_PII_PHI_DESCRIPTION } from './constants';\nimport { FileUpload } from '../../common/form/FileUploadV2/FileUpload';\nimport { get, isEmpty, isNil, uniqBy } from 'lodash';\nimport {\n programIsOffPlatform,\n referralIsOON,\n referralIsGrouped,\n shouldShowNetworkSelect,\n filterNetworks,\n} from './utils';\nimport fetchPrimaryWorkers from '../../actions/Referral/fetchPrimaryWorkers';\nimport { useDebounce } from '../../utils/useDebounce';\nimport { cannotMoveToReferralReasons } from '../../actions/Referral/cannotMoveToReferralReasons';\nimport ContactDocumentsSelector from '../../common/form/DocumentUploader/components/ContactDocumentsSelector'\nimport './ReferralBuilderForm.scss';\nexport function ReferralBuilderForm({\n currentEmployee,\n currentProvider,\n referral,\n referrals,\n index,\n referralSubtitle,\n onChange,\n unselected,\n removeProgram,\n onSetForm,\n moveToNewReferral,\n moveToExistingReferral,\n updateAttachments,\n source,\n}) {\n const { service, programs, primaryWorker, attachments, attachableDocuments } = referral;\n const [moveReferralMenus, setMoveReferralMenus] = useState({});\n const [uploadedFiles, setUploadedFiles] = useState(attachments);\n const [primaryWorkers, setPrimaryWorkers] = useState(primaryWorker ? [primaryWorker] : []);\n const [initialValues, setInitialValues] = useState(referral);\n const [query, setQuery] = useState('');\n const debouncedQuery = useDebounce(query, 500);\n\n const [rejectedFiles, setRejectedFiles] = useState({\n filesTooBig: [],\n filesWrongType: [],\n filesTooBigAndWrongType: [],\n });\n const isOON = referralIsOON(referral);\n const isGrouped = referralIsGrouped(referral);\n const referralTitle = `Referral ${index + 1}: ${service?.name}${isGrouped ? ', Grouped' : ''}${isOON ? ', Off-Platform' : ''}`;\n\n const networks = filterNetworks(referral);\n const showNetworkSelect = shouldShowNetworkSelect(networks, programs);\n\n const onProgramClick = (id) => {\n const programMenus = moveReferralMenus.map((p) => {\n if (p.id === id) {\n p.menuIsOpen = !p.menuIsOpen;\n } else {\n p.menuIsOpen = false;\n }\n return p;\n });\n\n setMoveReferralMenus(programMenus);\n };\n\n const getPrimaryWorkers = useCallback(async () => {\n const { primary_workers } = await fetchPrimaryWorkers({\n providerId: referral.sendingProvider.id,\n currentEmployee,\n query: debouncedQuery,\n });\n\n // if the query is empty, keep the queried employees and the current primary worker in select field's options array\n isEmpty(query) ?\n setPrimaryWorkers(uniqBy([...primaryWorkers, ...primary_workers, (primaryWorker && primaryWorker)], 'id')) :\n setPrimaryWorkers(primary_workers);\n }, [currentEmployee, referral.sendingProvider.id, debouncedQuery]);\n\n useEffect(() => {\n if (isOON) {\n getPrimaryWorkers();\n }\n }, [getPrimaryWorkers, isOON]);\n\n useEffect(() => {\n const programMenus = programs.map((p) => ({ id: p.id, menuIsOpen: false }));\n setMoveReferralMenus(programMenus);\n }, [programs]);\n\n useEffect(() => {\n setInitialValues({\n ...referral,\n ...((isNil(referral.primaryWorker) && isOON) ?\n { primaryWorker: primaryWorkers.find((worker) => worker.id === currentEmployee.id) } :\n null\n ),\n })\n }, [primaryWorkers, currentEmployee.id, index, isOON, referral]);\n\n useEffect(() => {\n if (!isEmpty(uploadedFiles)) {\n updateAttachments(uploadedFiles);\n }\n }, [uploadedFiles]);\n\n return (\n <Form\n initialValues={initialValues}\n onSubmit={() => { }}\n validate={(values) => {\n const errors = {};\n if (!values.description) { errors.description = \"Required\" };\n if (isOON && !values.primaryWorker) { errors.primaryWorker = \"Required\" };\n if (showNetworkSelect && !values.network) { errors.network = \"Required\" };\n return errors;\n }}\n mutators={{\n setFieldTouched: (args, state) => {\n const [name, touched] = args;\n const field = state.fields[name];\n if (field) {\n field.touched = !!touched;\n }\n }\n }}\n render={({ form, values }) => {\n onSetForm && onSetForm(form);\n return (\n <>\n <FormSpy\n subscription={{ values: true }}\n onChange={onChange}\n />\n <div className=\"bg-white border border-solid border-blue-border rounded md:w-4/6 lg:w-4/6\">\n <div className=\"p-5 bg-med-pale-blue\">\n <h2 className=\"text-xl font-black\">\n {referralTitle}\n </h2>\n <h3>\n {referralSubtitle}\n </h3>\n </div>\n <div className=\"p-5\">\n {isOON ? (\n <div className=\"bg-alert-yellow border border-solid border-canary-yellow rounded p-3 mb-5\">\n <p className=\"text-brand-blue\">\n You need to contact these programs directly because\n they're not receiving referrals on the Unite Us Platform.\n </p>\n </div>\n ) : null}\n <h5 className=\"text-sm ui-form-field__label\">PROGRAMS</h5>\n {programs.map((program) => {\n const menuIsOpen = isEmpty(moveReferralMenus) ? false : moveReferralMenus?.find((p) => p.id === program.id)?.menuIsOpen;\n\n const cannotMoveReasons = {}\n unselected.map((i) => {\n const { index } = i\n return cannotMoveReasons[index] = cannotMoveToReferralReasons({ program, referral, referrals, index, currentProvider })\n })\n\n return (\n <ReferralProgramCard\n key={`referral-program-${program?.id}-card`}\n program={program}\n onClick={onProgramClick}\n isOON={programIsOffPlatform(program)}\n menuIsOpen={menuIsOpen}\n unselected={unselected}\n referral={referral}\n removeProgram={removeProgram}\n moveToNewReferral={moveToNewReferral}\n moveToExistingReferral={moveToExistingReferral}\n cannotMoveReasons={cannotMoveReasons}\n />\n );\n })}\n <p className=\"text-center text-gray-600 my-10\">\n Click on the three-dot icon to edit referral groupings.\n </p>\n\n {showNetworkSelect ? (\n <div className=\"mb-10\">\n <Field\n name=\"network\"\n required\n key={`referral-${index}-network`}\n >\n {(params) => (\n <SelectField\n required\n id=\"network-selection\"\n label=\"Network Selection\"\n placeholder=\"Choose one...\"\n options={networks}\n labelKey=\"name\"\n valueKey=\"id\"\n validations={isRequired}\n {...params}\n />\n )}\n </Field>\n </div>\n ) : null}\n\n <Field\n name=\"description\"\n required\n key={`referral-${index}-description`}\n >\n {(params) => (\n <TextField\n afterLabelContent={(\n <InfoPanel\n className=\"mb-4 mt-2\"\n message={REFERRAL_PII_PHI_DESCRIPTION}\n />\n )}\n id=\"referral-description\"\n label=\"Referral Description\"\n placeholder=\"Describe your client's current situation and reason for referral.\"\n rows={3}\n inline={false}\n validations={isRequired}\n required\n style={source === 'emr' && get(params, 'meta.touched') && !get(params, 'meta.valid') ? { text: { 'border-color': 'red' } } : {}}\n {...params}\n />\n )}\n </Field>\n\n {isOON ? (\n <Field\n name=\"primaryWorker\"\n required\n key={`referral-${index}-primary-worker`}\n >\n {(params) => (\n <SelectField\n required\n id=\"primary-worker\"\n label=\"Primary Worker\"\n placeholder=\"Choose one...\"\n loadOptions={(search) => setQuery(search)}\n options={primaryWorkers}\n labelKey=\"full_name\"\n valueKey=\"id\"\n validations={isRequired}\n {...params}\n />\n )}\n </Field>\n ) : null}\n\n {attachableDocuments && (\n <div className=\"upload-documents\">\n <h5>Documents</h5>\n <ContactDocumentsSelector documentFields={attachableDocuments} />\n </div>\n )}\n\n {/* Attachment area */}\n <FileUpload\n rejectedFiles={rejectedFiles}\n setRejectedFiles={setRejectedFiles}\n setUploadedFiles={setUploadedFiles}\n uploadedFiles={attachments || []}\n />\n </div>\n\n {/* Payment auth form */}\n </div>\n </>\n )}}\n />\n )\n}\n\nReferralBuilderForm.propTypes = {\n currentEmployee: PropTypes.object.isRequired,\n currentProvider: PropTypes.object.isRequired,\n referral: PropTypes.shape({\n service: PropTypes.shape({\n name: PropTypes.string.isRequired,\n }).isRequired,\n programs: PropTypes.array.isRequired,\n }).isRequired,\n index: PropTypes.number.isRequired,\n referralSubtitle: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n unselected: PropTypes.array,\n removeProgram: PropTypes.func.isRequired,\n moveToNewReferral: PropTypes.func.isRequired,\n moveToExistingReferral: PropTypes.func.isRequired,\n onSetForm: PropTypes.func.isRequired,\n}\n\nReferralBuilderForm.defaultProps = {\n referralSubtitle: '',\n unselected: [],\n}\n\nexport default ReferralBuilderForm;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReferralBuilderForm.js","names":["_react","_interopRequireWildcard","require","_propTypes","_reactFinalForm","_ReferralProgramCard","_interopRequireDefault","_ui","_InfoPanel","_validations","_constants","_FileUpload","_lodash","_utils","_fetchPrimaryWorkers","_useDebounce","_cannotMoveToReferralReasons","_ContactDocumentsSelector","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","ownKeys","_Object$keys","_Object$getOwnPropertySymbols","o","_filterInstanceProperty","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","ReferralBuilderForm","_ref","_context","_context2","_context3","_context4","currentEmployee","currentProvider","referral","referrals","index","referralSubtitle","onChange","unselected","removeProgram","onSetForm","moveToNewReferral","moveToExistingReferral","updateAttachments","source","service","programs","primaryWorker","attachments","attachableDocuments","_useState","useState","_useState2","_slicedToArray2","moveReferralMenus","setMoveReferralMenus","_useState3","_useState4","uploadedFiles","setUploadedFiles","_useState5","_useState6","primaryWorkers","setPrimaryWorkers","_useState7","_useState8","initialValues","setInitialValues","_useState9","_useState10","query","setQuery","debouncedQuery","useDebounce","_useState11","filesTooBig","filesWrongType","filesTooBigAndWrongType","_useState12","rejectedFiles","setRejectedFiles","isOON","referralIsOON","isGrouped","referralIsGrouped","isFunded","referralIsFunded","referralTitle","_concat","concat","name","networks","filterNetworks","showNetworkSelect","shouldShowNetworkSelect","onProgramClick","id","programMenus","_map","p","menuIsOpen","getPrimaryWorkers","useCallback","_asyncToGenerator2","_regenerator","mark","_callee","_context5","_yield$fetchPrimaryWo","primary_workers","wrap","_callee$","_context6","prev","next","fetchPrimaryWorkers","providerId","sendingProvider","sent","isEmpty","uniqBy","_toConsumableArray2","stop","useEffect","isNil","_find","worker","createElement","Form","onSubmit","validate","values","errors","description","network","mutators","setFieldTouched","args","state","_args2","touched","field","fields","render","_ref3","form","_values","Fragment","FormSpy","subscription","className","program","_moveReferralMenus$fi","cannotMoveReasons","cannotMoveToReferralReasons","key","onClick","programIsOffPlatform","Field","required","params","SelectField","_extends2","label","placeholder","options","labelKey","valueKey","validations","isRequired","TextField","afterLabelContent","message","REFERRAL_PII_PHI_DESCRIPTION","rows","inline","style","text","loadOptions","search","documentFields","FileUpload","propTypes","PropTypes","object","shape","string","array","number","func","defaultProps","_default","exports"],"sources":["../../../src/pages/builder/ReferralBuilderForm.js"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { PropTypes } from 'prop-types';\nimport { Form, Field, FormSpy } from 'react-final-form';\nimport ReferralProgramCard from './ReferralProgramCard';\nimport { TextField, SelectField } from '@unite-us/ui';\nimport InfoPanel from '@unite-us/client-utils/dist/InfoPanel/InfoPanel';\nimport {\n isRequired,\n} from '@unite-us/client-utils/dist/utils/validations/validations';\nimport { REFERRAL_PII_PHI_DESCRIPTION } from './constants';\nimport { FileUpload } from '../../common/form/FileUploadV2/FileUpload';\nimport { get, isEmpty, isNil, uniqBy } from 'lodash';\nimport {\n programIsOffPlatform,\n referralIsOON,\n referralIsGrouped,\n shouldShowNetworkSelect,\n filterNetworks,\n referralIsFunded,\n} from './utils';\nimport fetchPrimaryWorkers from '../../actions/Referral/fetchPrimaryWorkers';\nimport { useDebounce } from '../../utils/useDebounce';\nimport { cannotMoveToReferralReasons } from '../../actions/Referral/cannotMoveToReferralReasons';\nimport ContactDocumentsSelector from '../../common/form/DocumentUploader/components/ContactDocumentsSelector'\nimport './ReferralBuilderForm.scss';\nexport function ReferralBuilderForm({\n currentEmployee,\n currentProvider,\n referral,\n referrals,\n index,\n referralSubtitle,\n onChange,\n unselected,\n removeProgram,\n onSetForm,\n moveToNewReferral,\n moveToExistingReferral,\n updateAttachments,\n source,\n}) {\n const { service, programs, primaryWorker, attachments, attachableDocuments } = referral;\n const [moveReferralMenus, setMoveReferralMenus] = useState({});\n const [uploadedFiles, setUploadedFiles] = useState(attachments);\n const [primaryWorkers, setPrimaryWorkers] = useState(primaryWorker ? [primaryWorker] : []);\n const [initialValues, setInitialValues] = useState(referral);\n const [query, setQuery] = useState('');\n const debouncedQuery = useDebounce(query, 500);\n\n const [rejectedFiles, setRejectedFiles] = useState({\n filesTooBig: [],\n filesWrongType: [],\n filesTooBigAndWrongType: [],\n });\n const isOON = referralIsOON(referral);\n const isGrouped = referralIsGrouped(referral);\n const isFunded = referralIsFunded(referral)\n const referralTitle = `Referral ${index + 1}: ${service?.name}${isGrouped ? ', Grouped' : ''}${isOON ? ', Off-Platform' : ''}${isFunded ? ', Funded' : ''}`;\n\n const networks = filterNetworks(referral);\n const showNetworkSelect = shouldShowNetworkSelect(networks, programs);\n\n const onProgramClick = (id) => {\n const programMenus = moveReferralMenus.map((p) => {\n if (p.id === id) {\n p.menuIsOpen = !p.menuIsOpen;\n } else {\n p.menuIsOpen = false;\n }\n return p;\n });\n\n setMoveReferralMenus(programMenus);\n };\n\n const getPrimaryWorkers = useCallback(async () => {\n const { primary_workers } = await fetchPrimaryWorkers({\n providerId: referral.sendingProvider.id,\n currentEmployee,\n query: debouncedQuery,\n });\n\n // if the query is empty, keep the queried employees and the current primary worker in select field's options array\n isEmpty(query) ?\n setPrimaryWorkers(uniqBy([...primaryWorkers, ...primary_workers, (primaryWorker && primaryWorker)], 'id')) :\n setPrimaryWorkers(primary_workers);\n }, [currentEmployee, referral.sendingProvider.id, debouncedQuery]);\n\n useEffect(() => {\n if (isOON) {\n getPrimaryWorkers();\n }\n }, [getPrimaryWorkers, isOON]);\n\n useEffect(() => {\n const programMenus = programs.map((p) => ({ id: p.id, menuIsOpen: false }));\n setMoveReferralMenus(programMenus);\n }, [programs]);\n\n useEffect(() => {\n setInitialValues({\n ...referral,\n ...((isNil(referral.primaryWorker) && isOON) ?\n { primaryWorker: primaryWorkers.find((worker) => worker.id === currentEmployee.id) } :\n null\n ),\n })\n }, [primaryWorkers, currentEmployee.id, index, isOON, referral]);\n\n useEffect(() => {\n if (!isEmpty(uploadedFiles)) {\n updateAttachments(uploadedFiles);\n }\n }, [uploadedFiles]);\n\n return (\n <Form\n initialValues={initialValues}\n onSubmit={() => { }}\n validate={(values) => {\n const errors = {};\n if (!values.description) { errors.description = \"Required\" };\n if (isOON && !values.primaryWorker) { errors.primaryWorker = \"Required\" };\n if (showNetworkSelect && !values.network) { errors.network = \"Required\" };\n return errors;\n }}\n mutators={{\n setFieldTouched: (args, state) => {\n const [name, touched] = args;\n const field = state.fields[name];\n if (field) {\n field.touched = !!touched;\n }\n }\n }}\n render={({ form, values }) => {\n onSetForm && onSetForm(form);\n return (\n <>\n <FormSpy\n subscription={{ values: true }}\n onChange={onChange}\n />\n <div className=\"bg-white border border-solid border-blue-border rounded md:w-4/6 lg:w-4/6\">\n <div className=\"p-5 bg-med-pale-blue\">\n <h2 className=\"text-xl font-black\">\n {referralTitle}\n </h2>\n <h3>\n {referralSubtitle}\n </h3>\n </div>\n <div className=\"p-5\">\n {isOON ? (\n <div className=\"bg-alert-yellow border border-solid border-canary-yellow rounded p-3 mb-5\">\n <p className=\"text-brand-blue\">\n You need to contact these programs directly because\n they're not receiving referrals on the Unite Us Platform.\n </p>\n </div>\n ) : null}\n <h5 className=\"text-sm ui-form-field__label\">PROGRAMS</h5>\n {programs.map((program) => {\n const menuIsOpen = isEmpty(moveReferralMenus) ? false : moveReferralMenus?.find((p) => p.id === program.id)?.menuIsOpen;\n\n const cannotMoveReasons = {}\n unselected.map((i) => {\n const { index } = i\n return cannotMoveReasons[index] = cannotMoveToReferralReasons({ program, referral, referrals, index, currentProvider })\n })\n\n return (\n <ReferralProgramCard\n key={`referral-program-${program?.id}-card`}\n program={program}\n onClick={onProgramClick}\n isOON={programIsOffPlatform(program)}\n menuIsOpen={menuIsOpen}\n unselected={unselected}\n referral={referral}\n removeProgram={removeProgram}\n moveToNewReferral={moveToNewReferral}\n moveToExistingReferral={moveToExistingReferral}\n cannotMoveReasons={cannotMoveReasons}\n />\n );\n })}\n <p className=\"text-center text-gray-600 my-10\">\n Click on the three-dot icon to edit referral groupings.\n </p>\n\n {showNetworkSelect ? (\n <div className=\"mb-10\">\n <Field\n name=\"network\"\n required\n key={`referral-${index}-network`}\n >\n {(params) => (\n <SelectField\n required\n id=\"network-selection\"\n label=\"Network Selection\"\n placeholder=\"Choose one...\"\n options={networks}\n labelKey=\"name\"\n valueKey=\"id\"\n validations={isRequired}\n {...params}\n />\n )}\n </Field>\n </div>\n ) : null}\n\n <Field\n name=\"description\"\n required\n key={`referral-${index}-description`}\n >\n {(params) => (\n <TextField\n afterLabelContent={(\n <InfoPanel\n className=\"mb-4 mt-2\"\n message={REFERRAL_PII_PHI_DESCRIPTION}\n />\n )}\n id=\"referral-description\"\n label=\"Referral Description\"\n placeholder=\"Describe your client's current situation and reason for referral.\"\n rows={3}\n inline={false}\n validations={isRequired}\n required\n style={source === 'emr' && get(params, 'meta.touched') && !get(params, 'meta.valid') ? { text: { 'border-color': 'red' } } : {}}\n {...params}\n />\n )}\n </Field>\n\n {isOON ? (\n <Field\n name=\"primaryWorker\"\n required\n key={`referral-${index}-primary-worker`}\n >\n {(params) => (\n <SelectField\n required\n id=\"primary-worker\"\n label=\"Primary Worker\"\n placeholder=\"Choose one...\"\n loadOptions={(search) => setQuery(search)}\n options={primaryWorkers}\n labelKey=\"full_name\"\n valueKey=\"id\"\n validations={isRequired}\n {...params}\n />\n )}\n </Field>\n ) : null}\n\n {attachableDocuments && (\n <div className=\"upload-documents\">\n <h5>Documents</h5>\n <ContactDocumentsSelector documentFields={attachableDocuments} />\n </div>\n )}\n\n {/* Attachment area */}\n <FileUpload\n rejectedFiles={rejectedFiles}\n setRejectedFiles={setRejectedFiles}\n setUploadedFiles={setUploadedFiles}\n uploadedFiles={attachments || []}\n />\n </div>\n\n {/* Payment auth form */}\n </div>\n </>\n )}}\n />\n )\n}\n\nReferralBuilderForm.propTypes = {\n currentEmployee: PropTypes.object.isRequired,\n currentProvider: PropTypes.object.isRequired,\n referral: PropTypes.shape({\n service: PropTypes.shape({\n name: PropTypes.string.isRequired,\n }).isRequired,\n programs: PropTypes.array.isRequired,\n }).isRequired,\n index: PropTypes.number.isRequired,\n referralSubtitle: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n unselected: PropTypes.array,\n removeProgram: PropTypes.func.isRequired,\n moveToNewReferral: PropTypes.func.isRequired,\n moveToExistingReferral: PropTypes.func.isRequired,\n onSetForm: PropTypes.func.isRequired,\n}\n\nReferralBuilderForm.defaultProps = {\n referralSubtitle: '',\n unselected: [],\n}\n\nexport default ReferralBuilderForm;\n"],"mappings":"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"}
|
|
@@ -12,7 +12,7 @@ var _interopRequireDefault = require("@babel/runtime-corejs3/helpers/interopRequ
|
|
|
12
12
|
_Object$defineProperty(exports, "__esModule", {
|
|
13
13
|
value: true
|
|
14
14
|
});
|
|
15
|
-
exports.shouldShowNetworkSelect = exports.referralIsOON = exports.referralIsGrouped = exports.programIsOnPlatform = exports.programIsOffPlatform = exports.mapReferralErrorsToIndex = exports.hasOffPlatformReferrals = exports.handleKeyPress = exports.getReferralSubtitle = exports.getReferralStatus = exports.getProgramStatusDisplay = exports.generateErrorMessage = exports.filterProgramsReceivingReferrals = exports.filterNetworks = exports.buildReferralsFromPrograms = void 0;
|
|
15
|
+
exports.shouldShowNetworkSelect = exports.referralIsOON = exports.referralIsGrouped = exports.referralIsFunded = exports.programIsOnPlatform = exports.programIsOffPlatform = exports.programIsFunded = exports.mapReferralErrorsToIndex = exports.hasOffPlatformReferrals = exports.handleKeyPress = exports.getReferralSubtitle = exports.getReferralStatus = exports.getProgramStatusDisplay = exports.generateErrorMessage = exports.filterProgramsReceivingReferrals = exports.filterNetworks = exports.buildReferralsFromPrograms = void 0;
|
|
16
16
|
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs3/helpers/defineProperty"));
|
|
17
17
|
var _reduce = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/reduce"));
|
|
18
18
|
var _find = _interopRequireDefault(require("@babel/runtime-corejs3/core-js-stable/instance/find"));
|
|
@@ -66,11 +66,7 @@ var buildReferral = function buildReferral(programIds, service, currentProvider,
|
|
|
66
66
|
sendingProvider: currentProvider,
|
|
67
67
|
id: draftState === null || draftState === void 0 ? void 0 : draftState.id,
|
|
68
68
|
state: draftState === null || draftState === void 0 ? void 0 : draftState.state,
|
|
69
|
-
case: draftState === null || draftState === void 0 ? void 0 : draftState.case
|
|
70
|
-
// Implement this when the payments are implemented
|
|
71
|
-
get isFunded() {
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
69
|
+
case: draftState === null || draftState === void 0 ? void 0 : draftState.case
|
|
74
70
|
};
|
|
75
71
|
};
|
|
76
72
|
var buildReferralsFromPrograms = exports.buildReferralsFromPrograms = function buildReferralsFromPrograms(programs, currentProvider, draftState) {
|
|
@@ -101,6 +97,12 @@ var filterProgramsReceivingReferrals = exports.filterProgramsReceivingReferrals
|
|
|
101
97
|
var referralIsGrouped = exports.referralIsGrouped = function referralIsGrouped(referral) {
|
|
102
98
|
return referral.programs.length > 1;
|
|
103
99
|
};
|
|
100
|
+
var programIsFunded = exports.programIsFunded = function programIsFunded(program) {
|
|
101
|
+
return program.fee_schedule_program != null;
|
|
102
|
+
};
|
|
103
|
+
var referralIsFunded = exports.referralIsFunded = function referralIsFunded(referral) {
|
|
104
|
+
return referral.programs.every(programIsFunded);
|
|
105
|
+
};
|
|
104
106
|
var programIsOffPlatform = exports.programIsOffPlatform = function programIsOffPlatform(program) {
|
|
105
107
|
var _program$status2;
|
|
106
108
|
return !program.provider.licensed || program.provider.licensed && (program === null || program === void 0 || (_program$status2 = program.status) === null || _program$status2 === void 0 ? void 0 : _program$status2.toLowerCase()) === _constants.OFF_PLATFORM_REFERRALS_ONLY;
|
|
@@ -116,11 +118,10 @@ var referralIsOON = exports.referralIsOON = function referralIsOON(referral) {
|
|
|
116
118
|
}));
|
|
117
119
|
};
|
|
118
120
|
var getReferralStatus = exports.getReferralStatus = function getReferralStatus(referral) {
|
|
119
|
-
var isFunded = referral.isFunded;
|
|
120
121
|
var grouped = referralIsGrouped(referral) ? 'Grouped' : '';
|
|
121
|
-
var funded =
|
|
122
|
+
var funded = referralIsFunded(referral) ? 'Funded' : '';
|
|
122
123
|
var oon = referralIsOON(referral) ? 'Off-Platform' : 'On-Platform';
|
|
123
|
-
return (0, _lodash.compact)([grouped,
|
|
124
|
+
return (0, _lodash.compact)([grouped, oon, funded]).join(', ');
|
|
124
125
|
};
|
|
125
126
|
var getProgramStatusDisplay = exports.getProgramStatusDisplay = function getProgramStatusDisplay(isReceivingReferrals, isOON) {
|
|
126
127
|
if (isOON) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["_lodash","require","_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","mapProgramsPerService","programs","result","_reduce","out","program","services","serviceId","existingService","_find","item","service","id","buildReferral","programIds","currentProvider","draftState","_context","_context2","_draftState$descripti","_draftState$attachmen","_draftState$network","_map","_concat","description","primaryWorker","attachments","paymentAuthForm","network","sendingProvider","state","case","isFunded","buildReferralsFromPrograms","exports","programsByService","referrals","referral","filterProgramsReceivingReferrals","_context3","_filter","ref","_context4","_program$status","receiving_referrals","status","toLowerCase","OFF_PLATFORM_REFERRALS_ONLY","referralIsGrouped","programIsOffPlatform","_program$status2","provider","licensed","programIsOnPlatform","_program$status3","referralIsOON","_context5","some","getReferralStatus","grouped","funded","oon","compact","join","getProgramStatusDisplay","isReceivingReferrals","isOON","title","icon","color","getReferralSubtitle","selected","mapReferralErrorsToIndex","indexes","errors","i","index","networks","filterNetworks","missingRequiredFields","shouldShowNetworkSelect","isEmpty","undefined","generateErrorMessage","_context6","errorCount","_flat","_values","prefix","concat","_context7","sendingNetworks","get","receivingNetworks","_flatMapInstanceProperty","uniqBy","head","intersectionBy","hasOffPlatformReferrals","handleKeyPress","action","_context8","_includes","key"],"sources":["../../../src/pages/builder/utils.js"],"sourcesContent":["import {\n compact,\n some,\n isEmpty,\n get,\n head,\n flatMap,\n intersectionBy,\n uniqBy,\n} from 'lodash';\nimport { OFF_PLATFORM_REFERRALS_ONLY } from './constants';\n\nconst mapProgramsPerService = (programs) => {\n const result = programs.reduce((out, program) => {\n if (program.services) {\n program.services.forEach((serviceId) => {\n const existingService = out.find(item => item.service === serviceId)\n if (!existingService) {\n out.push({\n service: serviceId,\n programs: [program.id]\n })\n } else {\n existingService.programs.push(program.id)\n }\n })\n }\n return out;\n }, [])\n\n return result;\n}\n\nconst buildReferral = (programIds, service, currentProvider, draftState) => {\n return {\n programs: [].concat(programIds).map(id => ({ id })),\n service: {\n id: service\n },\n description: draftState?.description ?? '',\n primaryWorker: null,\n attachments: draftState?.attachments ?? null,\n paymentAuthForm: null,\n network: draftState?.network ?? null,\n sendingProvider: currentProvider,\n id: draftState?.id,\n state: draftState?.state,\n case: draftState?.case,\n\n // Implement this when the payments are implemented\n get isFunded() { return false; },\n }\n}\n\nexport const buildReferralsFromPrograms = (programs, currentProvider, draftState) => {\n const programsByService = mapProgramsPerService(programs);\n let referrals = [];\n if (programsByService) {\n referrals = programsByService.map(item => {\n const referral = buildReferral(item.programs, item.service, currentProvider, draftState);\n return referral;\n })\n }\n\n return referrals;\n}\n\nexport const filterProgramsReceivingReferrals = (referrals) => referrals.map((ref) => ({\n ...ref,\n programs: ref.programs.filter((program) =>\n program.receiving_referrals ||\n program?.status?.toLowerCase() === OFF_PLATFORM_REFERRALS_ONLY\n ),\n})).filter((ref) => ref.programs.length > 0);\n\nexport const referralIsGrouped = (referral) => referral.programs.length > 1;\n\nexport const programIsOffPlatform = (program) => (\n !program.provider.licensed ||\n (program.provider.licensed && program?.status?.toLowerCase() === OFF_PLATFORM_REFERRALS_ONLY)\n);\n\nexport const programIsOnPlatform = (program) => (\n program.provider.licensed && program?.status?.toLowerCase() !== OFF_PLATFORM_REFERRALS_ONLY\n)\n\nexport const referralIsOON = (referral) => some(referral.programs.map((program) => programIsOffPlatform(program)));\n\nexport const getReferralStatus = (referral) => {\n const { isFunded } = referral;\n const grouped = referralIsGrouped(referral) ? 'Grouped' : '';\n const funded = isFunded ? 'Funded' : '';\n const oon = referralIsOON(referral) ? 'Off-Platform' : 'On-Platform';\n\n return compact([grouped, funded, oon]).join(', ');\n};\n\nexport const getProgramStatusDisplay = (isReceivingReferrals, isOON) => {\n if (isOON) { return { title: 'Off-Platform', icon: 'IconElectronsArrow', color: '' }; }\n if (isReceivingReferrals) { return { title: 'Accepting Referrals', icon: 'IconCheckCircle', color: '#1CCA21' }; }\n if (!isReceivingReferrals) { return { title: 'Not Accepting Referrals', icon: 'IconCrossCircle', color: '#E53E3E' }; }\n\n return { title: '', icon: '', color: '' }\n};\n\nexport const getReferralSubtitle = (referrals, selected) => {\n if (selected && referralIsOON(selected)) { return 'The case manager will be responsible for following up with the client.'; }\n if (referrals && referrals.length > 1 && referralIsGrouped(selected)) { return 'The first recipient to accept the referral will become the case manager.'; }\n\n return 'The recipient will be able to accept, reject, or forward this referral.';\n};\n\nexport const mapReferralErrorsToIndex = (referrals, indexes) => {\n const errors = {};\n indexes.map((i) => {\n const referral = referrals[i.index];\n if (referral) {\n const { programs } = referral;\n const networks = filterNetworks(referral);\n\n const missingRequiredFields = compact([\n !referral.description ? 'description' : null,\n (referralIsOON(referral) && !referral.primaryWorker) ? 'primary_worker' : null,\n (shouldShowNetworkSelect(networks, programs) && !referral.network ? 'network' : null),\n ]);\n if (!isEmpty(missingRequiredFields)) {\n errors[i.index] = missingRequiredFields;\n }\n }\n return null;\n });\n\n return errors;\n};\n\nexport const shouldShowNetworkSelect = (networks = [], programs) => networks.length > 1 && programs.length === 1;\n\nexport const generateErrorMessage = (errors) => {\n const errorCount = Object.values(errors).flat().length\n const prefix = errorCount === 1 ? '1 action item needs' : `${errorCount} action items need`;\n return errorCount > 0 ? `${prefix} your attention before you can submit your referral(s).` : null;\n}\n\nexport const filterNetworks = (referral) => {\n const { sendingProvider, programs } = referral;\n const sendingNetworks = get(sendingProvider, 'networks');\n const receivingNetworks = flatMap(programs, (program) => get(program, 'provider.networks')).filter((network) => network.state === 'active');\n\n if (sendingNetworks.length === 1) { // 1 sending network and 1+ receiving networks, return sending network\n return uniqBy(receivingNetworks.filter((network) => network.id === head(sendingNetworks).id), 'id');\n } else if (receivingNetworks.length > 1) { // 2+ sending networks and 2+ receiving network, return common networks\n return intersectionBy(receivingNetworks, sendingNetworks, 'id');\n } else { // 2+ sending networks and 1 receiving network, return receiving network\n return receivingNetworks;\n }\n}\n\nexport const hasOffPlatformReferrals = (referrals) => some(referrals?.map((r) => referralIsOON(r)));\n\nexport const handleKeyPress = (e, action) => {\n if (['Enter', ' '].includes(e.key)) {\n action();\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"utils.js","names":["_lodash","require","_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","mapProgramsPerService","programs","result","_reduce","out","program","services","serviceId","existingService","_find","item","service","id","buildReferral","programIds","currentProvider","draftState","_context","_context2","_draftState$descripti","_draftState$attachmen","_draftState$network","_map","_concat","description","primaryWorker","attachments","paymentAuthForm","network","sendingProvider","state","case","buildReferralsFromPrograms","exports","programsByService","referrals","referral","filterProgramsReceivingReferrals","_context3","_filter","ref","_context4","_program$status","receiving_referrals","status","toLowerCase","OFF_PLATFORM_REFERRALS_ONLY","referralIsGrouped","programIsFunded","fee_schedule_program","referralIsFunded","every","programIsOffPlatform","_program$status2","provider","licensed","programIsOnPlatform","_program$status3","referralIsOON","_context5","some","getReferralStatus","grouped","funded","oon","compact","join","getProgramStatusDisplay","isReceivingReferrals","isOON","title","icon","color","getReferralSubtitle","selected","mapReferralErrorsToIndex","indexes","errors","i","index","networks","filterNetworks","missingRequiredFields","shouldShowNetworkSelect","isEmpty","undefined","generateErrorMessage","_context6","errorCount","_flat","_values","prefix","concat","_context7","sendingNetworks","get","receivingNetworks","_flatMapInstanceProperty","uniqBy","head","intersectionBy","hasOffPlatformReferrals","handleKeyPress","action","_context8","_includes","key"],"sources":["../../../src/pages/builder/utils.js"],"sourcesContent":["import {\n compact,\n some,\n isEmpty,\n get,\n head,\n flatMap,\n intersectionBy,\n uniqBy,\n} from 'lodash';\nimport { OFF_PLATFORM_REFERRALS_ONLY } from './constants';\n\nconst mapProgramsPerService = (programs) => {\n const result = programs.reduce((out, program) => {\n if (program.services) {\n program.services.forEach((serviceId) => {\n const existingService = out.find(item => item.service === serviceId)\n if (!existingService) {\n out.push({\n service: serviceId,\n programs: [program.id]\n })\n } else {\n existingService.programs.push(program.id)\n }\n })\n }\n return out;\n }, [])\n\n return result;\n}\n\nconst buildReferral = (programIds, service, currentProvider, draftState) => {\n return {\n programs: [].concat(programIds).map(id => ({ id })),\n service: {\n id: service\n },\n description: draftState?.description ?? '',\n primaryWorker: null,\n attachments: draftState?.attachments ?? null,\n paymentAuthForm: null,\n network: draftState?.network ?? null,\n sendingProvider: currentProvider,\n id: draftState?.id,\n state: draftState?.state,\n case: draftState?.case,\n }\n}\n\nexport const buildReferralsFromPrograms = (programs, currentProvider, draftState) => {\n const programsByService = mapProgramsPerService(programs);\n let referrals = [];\n if (programsByService) {\n referrals = programsByService.map(item => {\n const referral = buildReferral(item.programs, item.service, currentProvider, draftState);\n return referral;\n })\n }\n\n return referrals;\n}\n\nexport const filterProgramsReceivingReferrals = (referrals) => referrals.map((ref) => ({\n ...ref,\n programs: ref.programs.filter((program) =>\n program.receiving_referrals ||\n program?.status?.toLowerCase() === OFF_PLATFORM_REFERRALS_ONLY\n ),\n})).filter((ref) => ref.programs.length > 0);\n\nexport const referralIsGrouped = (referral) => referral.programs.length > 1;\n\nexport const programIsFunded = (program) => program.fee_schedule_program != null;\n\nexport const referralIsFunded = (referral) => {\n return referral.programs.every(programIsFunded);\n}\n\nexport const programIsOffPlatform = (program) => (\n !program.provider.licensed ||\n (program.provider.licensed && program?.status?.toLowerCase() === OFF_PLATFORM_REFERRALS_ONLY)\n);\n\nexport const programIsOnPlatform = (program) => (\n program.provider.licensed && program?.status?.toLowerCase() !== OFF_PLATFORM_REFERRALS_ONLY\n)\n\nexport const referralIsOON = (referral) => some(referral.programs.map((program) => programIsOffPlatform(program)));\n\nexport const getReferralStatus = (referral) => {\n const grouped = referralIsGrouped(referral) ? 'Grouped' : '';\n const funded = referralIsFunded(referral) ? 'Funded' : '';\n const oon = referralIsOON(referral) ? 'Off-Platform' : 'On-Platform';\n\n return compact([grouped, oon, funded]).join(', ');\n};\n\nexport const getProgramStatusDisplay = (isReceivingReferrals, isOON) => {\n if (isOON) { return { title: 'Off-Platform', icon: 'IconElectronsArrow', color: '' }; }\n if (isReceivingReferrals) { return { title: 'Accepting Referrals', icon: 'IconCheckCircle', color: '#1CCA21' }; }\n if (!isReceivingReferrals) { return { title: 'Not Accepting Referrals', icon: 'IconCrossCircle', color: '#E53E3E' }; }\n\n return { title: '', icon: '', color: '' }\n};\n\nexport const getReferralSubtitle = (referrals, selected) => {\n if (selected && referralIsOON(selected)) { return 'The case manager will be responsible for following up with the client.'; }\n if (referrals && referrals.length > 1 && referralIsGrouped(selected)) { return 'The first recipient to accept the referral will become the case manager.'; }\n\n return 'The recipient will be able to accept, reject, or forward this referral.';\n};\n\nexport const mapReferralErrorsToIndex = (referrals, indexes) => {\n const errors = {};\n indexes.map((i) => {\n const referral = referrals[i.index];\n if (referral) {\n const { programs } = referral;\n const networks = filterNetworks(referral);\n\n const missingRequiredFields = compact([\n !referral.description ? 'description' : null,\n (referralIsOON(referral) && !referral.primaryWorker) ? 'primary_worker' : null,\n (shouldShowNetworkSelect(networks, programs) && !referral.network ? 'network' : null),\n ]);\n if (!isEmpty(missingRequiredFields)) {\n errors[i.index] = missingRequiredFields;\n }\n }\n return null;\n });\n\n return errors;\n};\n\nexport const shouldShowNetworkSelect = (networks = [], programs) => networks.length > 1 && programs.length === 1;\n\nexport const generateErrorMessage = (errors) => {\n const errorCount = Object.values(errors).flat().length\n const prefix = errorCount === 1 ? '1 action item needs' : `${errorCount} action items need`;\n return errorCount > 0 ? `${prefix} your attention before you can submit your referral(s).` : null;\n}\n\nexport const filterNetworks = (referral) => {\n const { sendingProvider, programs } = referral;\n const sendingNetworks = get(sendingProvider, 'networks');\n const receivingNetworks = flatMap(programs, (program) => get(program, 'provider.networks')).filter((network) => network.state === 'active');\n\n if (sendingNetworks.length === 1) { // 1 sending network and 1+ receiving networks, return sending network\n return uniqBy(receivingNetworks.filter((network) => network.id === head(sendingNetworks).id), 'id');\n } else if (receivingNetworks.length > 1) { // 2+ sending networks and 2+ receiving network, return common networks\n return intersectionBy(receivingNetworks, sendingNetworks, 'id');\n } else { // 2+ sending networks and 1 receiving network, return receiving network\n return receivingNetworks;\n }\n}\n\nexport const hasOffPlatformReferrals = (referrals) => some(referrals?.map((r) => referralIsOON(r)));\n\nexport const handleKeyPress = (e, action) => {\n if (['Enter', ' '].includes(e.key)) {\n action();\n }\n}\n"],"mappings":"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"}
|