@unite-us/app-create-referral 0.15.84 → 0.15.85
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/api/config.js +4 -1
- package/dist/api/config.js.map +1 -1
- package/dist/hooks/__tests__/useCreateReferrals.test.js +18 -9
- package/dist/hooks/__tests__/useCreateReferrals.test.js.map +1 -1
- package/dist/hooks/useCreateReferrals.js +9 -3
- package/dist/hooks/useCreateReferrals.js.map +1 -1
- package/dist/pages/review/ReferralsSent.js +86 -81
- package/dist/pages/review/ReferralsSent.js.map +1 -1
- package/dist/pages/review/Review.js +54 -16
- package/dist/pages/review/Review.js.map +1 -1
- package/dist/pages/review/SuccessReferralRedesign.js +67 -0
- package/dist/pages/review/SuccessReferralRedesign.js.map +1 -0
- package/dist/pages/review/constants.js +17 -0
- package/dist/pages/review/constants.js.map +1 -1
- package/dist/pages/review/referralStatusRedesign.js +140 -0
- package/dist/pages/review/referralStatusRedesign.js.map +1 -0
- package/package.json +1 -1
package/dist/api/config.js
CHANGED
|
@@ -73,7 +73,10 @@ const initApp = (appSettings, callbacks, components) => {
|
|
|
73
73
|
// Function called after the consent form is submitted (Review step)
|
|
74
74
|
onSubmitConsent: callbacks.onSubmitConsent,
|
|
75
75
|
// Functions called in ConsentDialog
|
|
76
|
-
consent: callbacks.consent
|
|
76
|
+
consent: callbacks.consent,
|
|
77
|
+
redirectToOffPlatformCaseDetails: callbacks.redirectToOffPlatformCaseDetails,
|
|
78
|
+
redirectToReferralDetails: callbacks.redirectToReferralDetails,
|
|
79
|
+
redirectToOutboundReferralsAll: callbacks.redirectToOutboundReferralsAll
|
|
77
80
|
};
|
|
78
81
|
COMPONENTS = {
|
|
79
82
|
Consent: components === null || components === void 0 ? void 0 : components.consent,
|
package/dist/api/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","names":["axios","buildSerializer","buildJSONAPIDeserializerInterceptor","JSONAPIAdapter","APP_ENVIRONMENT","CALLBACKS","COMPONENTS","FEATURE_FLAGS","INITIAL_ADDRESSES","coreAxiosInstance","coreApi","setupAxiosInstanceDefaults","url","instance","create","baseURL","applicationSource","source","defaults","headers","employeeId","providerId","interceptors","request","use","config","Authorization","concat","getAuthToken","error","Promise","reject","initApp","appSettings","callbacks","components","env","feature_flags","initialAddresses","_objectSpread","trackEventCallback","Error","notify","trackEvent","onReferralCompleted","onReferralReload","onNavigateBack","onNavigateToAddResources","onClearDraftReferral","onSaveDraftReferral","onDeselectProgram","onSubmitConsent","consent","Consent","ShareDrawer","coreUrl","serializer","JSONAPIDeserializerInterceptor","response"],"sources":["../../src/api/config.js"],"sourcesContent":["/* eslint-disable import/no-mutable-exports */\n/* eslint-disable no-param-reassign */\n// eslint-disable import/no-mutable-exports\nimport axios from 'axios';\nimport {\n buildSerializer,\n buildJSONAPIDeserializerInterceptor,\n JSONAPIAdapter,\n} from '@unite-us/json-api-resources';\n\nlet APP_ENVIRONMENT = {};\nlet CALLBACKS = {};\nlet COMPONENTS = {};\nlet FEATURE_FLAGS = {};\nlet INITIAL_ADDRESSES = {};\nlet coreAxiosInstance;\nlet coreApi;\n\nfunction setupAxiosInstanceDefaults(url) {\n const instance = axios.create({ baseURL: url });\n const applicationSource = APP_ENVIRONMENT.source === 'emr' ? 'smart_app' : 'web';\n\n instance.defaults.headers['X-EMPLOYEE-ID'] = APP_ENVIRONMENT.employeeId;\n instance.defaults.headers['X-PROVIDER-ID'] = APP_ENVIRONMENT.providerId;\n instance.defaults.headers['X-Application-Source'] = applicationSource;\n\n instance.interceptors.request.use(\n (config) => {\n config.headers.Authorization = `Bearer ${APP_ENVIRONMENT.getAuthToken()}`;\n return config;\n },\n (error) => Promise.reject(error),\n );\n\n return instance;\n}\n\nconst initApp = (appSettings, callbacks, components) => {\n const {\n env,\n feature_flags,\n initialAddresses\n } = appSettings;\n // SETTING UP APP ENVIRONMENT\n // {\n // getAuthToken: function, used for setting the Authorization header on requests\n // employeeId: string, used for setting the X-EMPLOYEE-ID header on requests\n // providerId: string, used for setting the X-PROVIDER-ID header on requests\n // isEmr: boolean: used for determining if the app is running is EMR\n // },\n APP_ENVIRONMENT = { ...env };\n\n if (!callbacks.trackEventCallback) {\n throw new Error('trackEventCallback is required in order to run APP-CREATE-REFERRAL');\n }\n CALLBACKS = {\n // notify callback is used to display notifications to the user,\n // usually toasts\n // expect the following shape for the 'notify' object:\n // {\n // success: PropTypes.func,\n // error: PropTypes.func,\n // warn: PropTypes.func,\n // }\n notify: callbacks.notify,\n // TrackEvent to send analytics event\n trackEvent: callbacks.trackEvent,\n // Function called after the referral is created (Review step)\n onReferralCompleted: callbacks.onReferralCompleted,\n // Function called after the referral is created and the user reload the page\n onReferralReload: callbacks.onReferralReload,\n // Called on Add Resources step and back button to navigate back to Search\n onNavigateBack: callbacks.onNavigateBack,\n // Called on Referral Builder step to navigate to Add Resources\n onNavigateToAddResources: callbacks.onNavigateToAddResources,\n // Function called to redirect after saving a draft referral\n onClearDraftReferral: callbacks.onClearDraftReferral,\n // Function called to redirect after saving a draft referral\n onSaveDraftReferral: callbacks.onSaveDraftReferral,\n // Update Search shopping cart when removing a program.\n onDeselectProgram: callbacks.onDeselectProgram,\n // Function called after the consent form is submitted (Review step)\n onSubmitConsent: callbacks.onSubmitConsent,\n // Functions called in ConsentDialog\n consent: callbacks.consent,\n };\n\n COMPONENTS = {\n Consent: components?.consent,\n ShareDrawer: components?.ShareDrawer,\n };\n\n FEATURE_FLAGS = { ...feature_flags };\n\n coreAxiosInstance = setupAxiosInstanceDefaults(env.coreUrl);\n\n // SETTING UP CORE ENDPOINT\n // creates a new serializer object using the buildSerializer() function.\n // Serializers are used to convert JavaScript objects into JSON API format and vice versa\n const serializer = buildSerializer();\n // creates a new interceptor object that deserializes JSON API responses.\n // Interceptors are used to modify HTTP requests and responses.\n const JSONAPIDeserializerInterceptor = buildJSONAPIDeserializerInterceptor(serializer);\n // adds the interceptor to the Axios instance's response interceptors.\n // This means that the JSONAPIDeserializerInterceptor\n // will be applied to all responses received by the instance.\n coreAxiosInstance.interceptors.response.use(JSONAPIDeserializerInterceptor);\n // This line creates a new JSONAPIAdapter object using the Axios instance and serializer objects.\n // The JSONAPIAdapter object is used to make HTTP requests\n // and handle the serialization/deserialization of data in the JSON API format.\n coreApi = new JSONAPIAdapter(coreAxiosInstance, serializer);\n\n INITIAL_ADDRESSES = initialAddresses;\n\n return true;\n};\n\nexport {\n initApp,\n coreAxiosInstance,\n coreApi,\n APP_ENVIRONMENT,\n CALLBACKS,\n COMPONENTS,\n FEATURE_FLAGS,\n INITIAL_ADDRESSES\n};\n"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SACEC,eAAe,EACfC,mCAAmC,EACnCC,cAAc,QACT,8BAA8B;AAErC,IAAIC,eAAe,GAAG,CAAC,CAAC;AACxB,IAAIC,SAAS,GAAG,CAAC,CAAC;AAClB,IAAIC,UAAU,GAAG,CAAC,CAAC;AACnB,IAAIC,aAAa,GAAG,CAAC,CAAC;AACtB,IAAIC,iBAAiB,GAAG,CAAC,CAAC;AAC1B,IAAIC,iBAAiB;AACrB,IAAIC,OAAO;AAEX,SAASC,0BAA0BA,CAACC,GAAG,EAAE;EACvC,MAAMC,QAAQ,GAAGb,KAAK,CAACc,MAAM,CAAC;IAAEC,OAAO,EAAEH;EAAI,CAAC,CAAC;EAC/C,MAAMI,iBAAiB,GAAGZ,eAAe,CAACa,MAAM,KAAK,KAAK,GAAG,WAAW,GAAG,KAAK;EAEhFJ,QAAQ,CAACK,QAAQ,CAACC,OAAO,CAAC,eAAe,CAAC,GAAGf,eAAe,CAACgB,UAAU;EACvEP,QAAQ,CAACK,QAAQ,CAACC,OAAO,CAAC,eAAe,CAAC,GAAGf,eAAe,CAACiB,UAAU;EACvER,QAAQ,CAACK,QAAQ,CAACC,OAAO,CAAC,sBAAsB,CAAC,GAAGH,iBAAiB;EAErEH,QAAQ,CAACS,YAAY,CAACC,OAAO,CAACC,GAAG,CAC9BC,MAAM,IAAK;IACVA,MAAM,CAACN,OAAO,CAACO,aAAa,aAAAC,MAAA,CAAavB,eAAe,CAACwB,YAAY,CAAC,CAAC,CAAE;IACzE,OAAOH,MAAM;EACf,CAAC,EACAI,KAAK,IAAKC,OAAO,CAACC,MAAM,CAACF,KAAK,CACjC,CAAC;EAED,OAAOhB,QAAQ;AACjB;AAEA,MAAMmB,OAAO,GAAGA,CAACC,WAAW,EAAEC,SAAS,EAAEC,UAAU,KAAK;EACtD,MAAM;IACJC,GAAG;IACHC,aAAa;IACbC;EACF,CAAC,GAAGL,WAAW;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA7B,eAAe,GAAAmC,aAAA,KAAQH,GAAG,CAAE;EAE5B,IAAI,CAACF,SAAS,CAACM,kBAAkB,EAAE;IACjC,MAAM,IAAIC,KAAK,CAAC,oEAAoE,CAAC;EACvF;EACApC,SAAS,GAAG;IACV;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACAqC,MAAM,EAAER,SAAS,CAACQ,MAAM;IACxB;IACAC,UAAU,EAAET,SAAS,CAACS,UAAU;IAChC;IACAC,mBAAmB,EAAEV,SAAS,CAACU,mBAAmB;IAClD;IACAC,gBAAgB,EAAEX,SAAS,CAACW,gBAAgB;IAC5C;IACAC,cAAc,EAAEZ,SAAS,CAACY,cAAc;IACxC;IACAC,wBAAwB,EAAEb,SAAS,CAACa,wBAAwB;IAC5D;IACAC,oBAAoB,EAAEd,SAAS,CAACc,oBAAoB;IACpD;IACAC,mBAAmB,EAAEf,SAAS,CAACe,mBAAmB;IAClD;IACAC,iBAAiB,EAAEhB,SAAS,CAACgB,iBAAiB;IAC9C;IACAC,eAAe,EAAEjB,SAAS,CAACiB,eAAe;IAC1C;IACAC,OAAO,EAAElB,SAAS,CAACkB;
|
|
1
|
+
{"version":3,"file":"config.js","names":["axios","buildSerializer","buildJSONAPIDeserializerInterceptor","JSONAPIAdapter","APP_ENVIRONMENT","CALLBACKS","COMPONENTS","FEATURE_FLAGS","INITIAL_ADDRESSES","coreAxiosInstance","coreApi","setupAxiosInstanceDefaults","url","instance","create","baseURL","applicationSource","source","defaults","headers","employeeId","providerId","interceptors","request","use","config","Authorization","concat","getAuthToken","error","Promise","reject","initApp","appSettings","callbacks","components","env","feature_flags","initialAddresses","_objectSpread","trackEventCallback","Error","notify","trackEvent","onReferralCompleted","onReferralReload","onNavigateBack","onNavigateToAddResources","onClearDraftReferral","onSaveDraftReferral","onDeselectProgram","onSubmitConsent","consent","redirectToOffPlatformCaseDetails","redirectToReferralDetails","redirectToOutboundReferralsAll","Consent","ShareDrawer","coreUrl","serializer","JSONAPIDeserializerInterceptor","response"],"sources":["../../src/api/config.js"],"sourcesContent":["/* eslint-disable import/no-mutable-exports */\n/* eslint-disable no-param-reassign */\n// eslint-disable import/no-mutable-exports\nimport axios from 'axios';\nimport {\n buildSerializer,\n buildJSONAPIDeserializerInterceptor,\n JSONAPIAdapter,\n} from '@unite-us/json-api-resources';\n\nlet APP_ENVIRONMENT = {};\nlet CALLBACKS = {};\nlet COMPONENTS = {};\nlet FEATURE_FLAGS = {};\nlet INITIAL_ADDRESSES = {};\nlet coreAxiosInstance;\nlet coreApi;\n\nfunction setupAxiosInstanceDefaults(url) {\n const instance = axios.create({ baseURL: url });\n const applicationSource = APP_ENVIRONMENT.source === 'emr' ? 'smart_app' : 'web';\n\n instance.defaults.headers['X-EMPLOYEE-ID'] = APP_ENVIRONMENT.employeeId;\n instance.defaults.headers['X-PROVIDER-ID'] = APP_ENVIRONMENT.providerId;\n instance.defaults.headers['X-Application-Source'] = applicationSource;\n\n instance.interceptors.request.use(\n (config) => {\n config.headers.Authorization = `Bearer ${APP_ENVIRONMENT.getAuthToken()}`;\n return config;\n },\n (error) => Promise.reject(error),\n );\n\n return instance;\n}\n\nconst initApp = (appSettings, callbacks, components) => {\n const {\n env,\n feature_flags,\n initialAddresses\n } = appSettings;\n // SETTING UP APP ENVIRONMENT\n // {\n // getAuthToken: function, used for setting the Authorization header on requests\n // employeeId: string, used for setting the X-EMPLOYEE-ID header on requests\n // providerId: string, used for setting the X-PROVIDER-ID header on requests\n // isEmr: boolean: used for determining if the app is running is EMR\n // },\n APP_ENVIRONMENT = { ...env };\n\n if (!callbacks.trackEventCallback) {\n throw new Error('trackEventCallback is required in order to run APP-CREATE-REFERRAL');\n }\n CALLBACKS = {\n // notify callback is used to display notifications to the user,\n // usually toasts\n // expect the following shape for the 'notify' object:\n // {\n // success: PropTypes.func,\n // error: PropTypes.func,\n // warn: PropTypes.func,\n // }\n notify: callbacks.notify,\n // TrackEvent to send analytics event\n trackEvent: callbacks.trackEvent,\n // Function called after the referral is created (Review step)\n onReferralCompleted: callbacks.onReferralCompleted,\n // Function called after the referral is created and the user reload the page\n onReferralReload: callbacks.onReferralReload,\n // Called on Add Resources step and back button to navigate back to Search\n onNavigateBack: callbacks.onNavigateBack,\n // Called on Referral Builder step to navigate to Add Resources\n onNavigateToAddResources: callbacks.onNavigateToAddResources,\n // Function called to redirect after saving a draft referral\n onClearDraftReferral: callbacks.onClearDraftReferral,\n // Function called to redirect after saving a draft referral\n onSaveDraftReferral: callbacks.onSaveDraftReferral,\n // Update Search shopping cart when removing a program.\n onDeselectProgram: callbacks.onDeselectProgram,\n // Function called after the consent form is submitted (Review step)\n onSubmitConsent: callbacks.onSubmitConsent,\n // Functions called in ConsentDialog\n consent: callbacks.consent,\n redirectToOffPlatformCaseDetails: callbacks.redirectToOffPlatformCaseDetails,\n redirectToReferralDetails: callbacks.redirectToReferralDetails,\n redirectToOutboundReferralsAll: callbacks.redirectToOutboundReferralsAll,\n };\n\n COMPONENTS = {\n Consent: components?.consent,\n ShareDrawer: components?.ShareDrawer,\n };\n\n FEATURE_FLAGS = { ...feature_flags };\n\n coreAxiosInstance = setupAxiosInstanceDefaults(env.coreUrl);\n\n // SETTING UP CORE ENDPOINT\n // creates a new serializer object using the buildSerializer() function.\n // Serializers are used to convert JavaScript objects into JSON API format and vice versa\n const serializer = buildSerializer();\n // creates a new interceptor object that deserializes JSON API responses.\n // Interceptors are used to modify HTTP requests and responses.\n const JSONAPIDeserializerInterceptor = buildJSONAPIDeserializerInterceptor(serializer);\n // adds the interceptor to the Axios instance's response interceptors.\n // This means that the JSONAPIDeserializerInterceptor\n // will be applied to all responses received by the instance.\n coreAxiosInstance.interceptors.response.use(JSONAPIDeserializerInterceptor);\n // This line creates a new JSONAPIAdapter object using the Axios instance and serializer objects.\n // The JSONAPIAdapter object is used to make HTTP requests\n // and handle the serialization/deserialization of data in the JSON API format.\n coreApi = new JSONAPIAdapter(coreAxiosInstance, serializer);\n\n INITIAL_ADDRESSES = initialAddresses;\n\n return true;\n};\n\nexport {\n initApp,\n coreAxiosInstance,\n coreApi,\n APP_ENVIRONMENT,\n CALLBACKS,\n COMPONENTS,\n FEATURE_FLAGS,\n INITIAL_ADDRESSES\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -249,12 +249,14 @@ describe('useCreateReferrals', () => {
|
|
|
249
249
|
}],
|
|
250
250
|
referrals: [{
|
|
251
251
|
id: 'referral1',
|
|
252
|
-
state: 'sent'
|
|
252
|
+
state: 'sent',
|
|
253
|
+
referralIndex: 0
|
|
253
254
|
}],
|
|
254
255
|
shippingDetail: [{
|
|
255
256
|
index: 0,
|
|
256
257
|
sent: true,
|
|
257
|
-
error: null
|
|
258
|
+
error: null,
|
|
259
|
+
caseId: "case1"
|
|
258
260
|
}],
|
|
259
261
|
referralsToConsent: [{
|
|
260
262
|
programNames: ['Unknown Program'],
|
|
@@ -333,16 +335,19 @@ describe('useCreateReferrals', () => {
|
|
|
333
335
|
}],
|
|
334
336
|
referrals: [{
|
|
335
337
|
id: 'referral1',
|
|
336
|
-
state: 'sent'
|
|
338
|
+
state: 'sent',
|
|
339
|
+
referralIndex: 0
|
|
337
340
|
}],
|
|
338
341
|
shippingDetail: [{
|
|
339
342
|
index: 0,
|
|
340
343
|
sent: true,
|
|
341
|
-
error: null
|
|
344
|
+
error: null,
|
|
345
|
+
caseId: "case1"
|
|
342
346
|
}, {
|
|
343
347
|
index: 1,
|
|
344
348
|
sent: false,
|
|
345
|
-
error: 'Unexpected error: The following fields for the case are required: description'
|
|
349
|
+
error: 'Unexpected error: The following fields for the case are required: description',
|
|
350
|
+
caseId: null
|
|
346
351
|
}],
|
|
347
352
|
referralsToConsent: [{
|
|
348
353
|
programNames: ['Unknown Program'],
|
|
@@ -388,11 +393,13 @@ describe('useCreateReferrals', () => {
|
|
|
388
393
|
shippingDetail: [{
|
|
389
394
|
index: 0,
|
|
390
395
|
sent: false,
|
|
391
|
-
error: 'Unexpected error: The following fields for the case are required: description'
|
|
396
|
+
error: 'Unexpected error: The following fields for the case are required: description',
|
|
397
|
+
caseId: null
|
|
392
398
|
}, {
|
|
393
399
|
index: 1,
|
|
394
400
|
sent: false,
|
|
395
|
-
error: 'Unexpected error: The following fields for the case are required: description'
|
|
401
|
+
error: 'Unexpected error: The following fields for the case are required: description',
|
|
402
|
+
caseId: null
|
|
396
403
|
}],
|
|
397
404
|
referralsToConsent: []
|
|
398
405
|
});
|
|
@@ -429,12 +436,14 @@ describe('useCreateReferrals', () => {
|
|
|
429
436
|
}],
|
|
430
437
|
referrals: [{
|
|
431
438
|
id: 'referral1',
|
|
432
|
-
state: 'sent'
|
|
439
|
+
state: 'sent',
|
|
440
|
+
referralIndex: 0
|
|
433
441
|
}],
|
|
434
442
|
shippingDetail: [{
|
|
435
443
|
index: 0,
|
|
436
444
|
sent: true,
|
|
437
|
-
error: null
|
|
445
|
+
error: null,
|
|
446
|
+
caseId: "case1"
|
|
438
447
|
}],
|
|
439
448
|
referralsToConsent: []
|
|
440
449
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCreateReferrals.test.js","names":["renderHook","act","useCreateReferrals","useAppCreateReferralContext","useCreateRecord","useUpdateRecord","jest","mock","fn","coreApi","populateRelationship","setRelationship","query","uploadFile","CALLBACKS","referrals","attachments","case","undefined","id","state","paymentAuthForm","amount_requested","service_start","service_end","description","programs","provider","licensed","sendingProvider","network","features","nh_consent","service","primaryWorker","describe","createBaseReferral","overrides","arguments","length","_objectSpread","setupMocks","mockReturnValue","currentEmployee","formResponses","person","formSubmissionId","assistanceRequestId","screeningId","createRecord","mockResolvedValue","data","updateRecord","it","result","createReferrals","current","response","draft","expect","toHaveProperty","mockCreateCase","mockCreateReferral","mockImplementation","type","toEqual","cases","shippingDetail","index","sent","error","referralsToConsent","programNames","serviceName","setupCreateRecordMocks","someReferrals","referralsFailed"],"sources":["../../../src/hooks/__tests__/useCreateReferrals.test.js"],"sourcesContent":["import { renderHook, act } from '@testing-library/react-hooks';\nimport useCreateReferrals from '../useCreateReferrals';\nimport { useAppCreateReferralContext } from '../../context/AppCreateReferralProvider';\nimport { useCreateRecord, useUpdateRecord } from '../../api/ApiHooks';\n\njest.mock('../../context/AppCreateReferralProvider', () => ({\n useAppCreateReferralContext: jest.fn(),\n}));\n\njest.mock('../../api/ApiHooks', () => ({\n useCreateRecord: jest.fn(),\n useUpdateRecord: jest.fn(),\n}));\n\njest.mock('../../api/config', () => ({\n coreApi: {\n populateRelationship: jest.fn(),\n setRelationship: jest.fn(),\n query: jest.fn(),\n uploadFile: jest.fn(),\n },\n CALLBACKS: {},\n}));\n\nconst referrals = [\n {\n attachments: null,\n case: undefined,\n id: undefined,\n state: undefined,\n paymentAuthForm: { amount_requested: null, service_start: null, service_end: null },\n description: 'Test Referral',\n programs: [{ id: 'program1', provider: { id: 'provider1', licensed: true } }],\n sendingProvider: { id: 'provider2' },\n network: { id: 'network1', features: { nh_consent: true } },\n service: { id: 'service1' },\n primaryWorker: { id: \"primary-worker-id\" },\n },\n];\n\ndescribe('useCreateReferrals', () => {\n const createBaseReferral = (overrides = {}) => ({\n attachments: null,\n case: undefined,\n id: undefined,\n state: undefined,\n paymentAuthForm: { amount_requested: null, service_start: null, service_end: null },\n programs: [{ id: 'program1', provider: { id: 'provider1', licensed: true } }],\n sendingProvider: { id: 'provider2' },\n network: { id: 'network1', features: { nh_consent: true } },\n service: { id: 'service1' },\n primaryWorker: { id: \"primary-worker-id\" },\n ...overrides,\n });\n\n const setupMocks = (referrals) => {\n useAppCreateReferralContext.mockReturnValue({\n state: {\n currentEmployee: { id: 'employee1' },\n formResponses: [],\n person: { id: 'person1' },\n referrals,\n formSubmissionId: null,\n assistanceRequestId: null,\n screeningId: null,\n },\n });\n\n useCreateRecord.mockReturnValue({\n createRecord: jest.fn().mockResolvedValue({ data: { data: {} } }),\n });\n\n useUpdateRecord.mockReturnValue({\n updateRecord: jest.fn().mockResolvedValue({ data: { data: {} } }),\n });\n };\n\n it('should validate response structure no matters the result', async () => {\n useAppCreateReferralContext.mockReturnValue({\n state: {\n currentEmployee: { id: 'employee1' },\n formResponses: [],\n person: { id: 'person1' },\n referrals,\n formSubmissionId: null,\n assistanceRequestId: null,\n screeningId: null,\n },\n });\n\n useCreateRecord.mockReturnValue({\n createRecord: jest.fn().mockResolvedValue({ data: { data: {} } }),\n });\n\n useUpdateRecord.mockReturnValue({\n updateRecord: jest.fn().mockResolvedValue({ data: { data: {} } }),\n });\n\n const { result } = renderHook(() => useCreateReferrals());\n\n await act(async () => {\n const createReferrals = result.current;\n const response = await createReferrals({ referrals, person: { id: 'person1' }, draft: false });\n expect(response).toHaveProperty('cases');\n expect(response).toHaveProperty('referrals');\n expect(response).toHaveProperty('shippingDetail');\n });\n });\n\n\n it('should create all referrals successfully', async () => {\n useAppCreateReferralContext.mockReturnValue({\n state: {\n currentEmployee: { id: 'employee1' },\n formResponses: [],\n person: { id: 'person1' },\n referrals,\n formSubmissionId: null,\n assistanceRequestId: null,\n screeningId: null,\n },\n });\n\n useCreateRecord.mockReturnValue({\n createRecord: jest.fn().mockResolvedValue({ data: { data: {} } }),\n });\n\n useUpdateRecord.mockReturnValue({\n updateRecord: jest.fn().mockResolvedValue({ data: { data: {} } }),\n });\n\n const mockCreateCase = jest.fn().mockResolvedValue({\n data: {\n data: { id: 'case1', description: 'Test Case' },\n },\n });\n\n const mockCreateReferral = jest.fn().mockResolvedValue({\n data: {\n data: { id: 'referral1', state: 'sent' },\n },\n });\n\n useCreateRecord.mockImplementation((type) => {\n if (type === 'case') {\n return { createRecord: mockCreateCase };\n } else if (type === 'referral') {\n return { createRecord: mockCreateReferral };\n }\n return { createRecord: jest.fn() };\n });\n\n const { result } = renderHook(() => useCreateReferrals());\n\n await act(async () => {\n const createReferrals = result.current;\n const response = await createReferrals({ referrals, person: { id: 'person1' }, draft: false });\n expect(response).toEqual({\n cases: [{ id: 'case1', description: 'Test Case' }],\n referrals: [{ id: 'referral1', state: 'sent' }],\n shippingDetail: [{ index: 0, sent: true, error: null }],\n referralsToConsent: [{\n programNames: ['Unknown Program'],\n referrals: ['referral1'],\n serviceName: 'Unknown Service',\n }],\n });\n });\n });\n\n const setupCreateRecordMocks = () => {\n const mockCreateCase = jest.fn().mockResolvedValue({\n data: {\n data: { id: 'case1', description: 'Test Case' },\n },\n });\n\n const mockCreateReferral = jest.fn().mockResolvedValue({\n data: {\n data: { id: 'referral1', state: 'sent' },\n },\n });\n\n useCreateRecord.mockImplementation((type) => {\n if (type === 'case') {\n return { createRecord: mockCreateCase };\n } else if (type === 'referral') {\n return { createRecord: mockCreateReferral };\n }\n return { createRecord: jest.fn() };\n });\n };\n\n it('should create SOME referrals', async () => {\n const someReferrals = [\n createBaseReferral({ description: 'Test Referral' }),\n createBaseReferral({\n description: null,\n programs: [{ id: 'program2', provider: { id: 'provider1', licensed: true } }],\n service: { id: 'service2' }\n }),\n ];\n\n setupMocks(someReferrals);\n setupCreateRecordMocks();\n\n const { result } = renderHook(() => useCreateReferrals());\n\n await act(async () => {\n const createReferrals = result.current;\n const response = await createReferrals({ referrals: someReferrals, person: { id: 'person1' }, draft: false });\n expect(response).toEqual(\n {\n cases: [\n { id: 'case1', description: 'Test Case' }\n ],\n referrals: [\n { id: 'referral1', state: 'sent' }\n ],\n shippingDetail: [\n { index: 0, sent: true, error: null },\n {\n index: 1,\n sent: false,\n error: 'Unexpected error: The following fields for the case are required: description'\n }\n ],\n referralsToConsent: [{\n programNames: ['Unknown Program'],\n referrals: ['referral1'],\n serviceName: 'Unknown Service',\n }],\n });\n });\n });\n\n it('should FAIL all referrals', async () => {\n const referralsFailed = [\n createBaseReferral({ description: null }),\n createBaseReferral({\n description: null,\n programs: [{ id: 'program2', provider: { id: 'provider1', licensed: true } }],\n service: { id: 'service2' }\n }),\n ];\n\n setupMocks(referralsFailed);\n setupCreateRecordMocks();\n\n const { result } = renderHook(() => useCreateReferrals());\n\n await act(async () => {\n const createReferrals = result.current;\n const response = await createReferrals({ referrals: referralsFailed, person: { id: 'person1' }, draft: false });\n expect(response).toEqual(\n {\n cases: [],\n referrals: [],\n shippingDetail: [\n {\n index: 0,\n sent: false,\n error: 'Unexpected error: The following fields for the case are required: description'\n },\n {\n index: 1,\n sent: false,\n error: 'Unexpected error: The following fields for the case are required: description'\n }\n ],\n referralsToConsent: [],\n });\n });\n });\n\n it('should not create referrals to consent when nh_consent is false', async () => {\n const referrals = [\n createBaseReferral({\n description: 'Test Referral',\n network: { id: 'network1', features: { nh_consent: false } }\n }),\n ];\n\n setupMocks(referrals);\n setupCreateRecordMocks();\n\n const { result } = renderHook(() => useCreateReferrals());\n\n await act(async () => {\n const createReferrals = result.current;\n const response = await createReferrals({ referrals, person: { id: 'person1' }, draft: false });\n expect(response).toEqual({\n cases: [{ id: 'case1', description: 'Test Case' }],\n referrals: [{ id: 'referral1', state: 'sent' }],\n shippingDetail: [{ index: 0, sent: true, error: null }],\n referralsToConsent: [],\n });\n });\n });\n});\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useCreateReferrals.test.js","names":["renderHook","act","useCreateReferrals","useAppCreateReferralContext","useCreateRecord","useUpdateRecord","jest","mock","fn","coreApi","populateRelationship","setRelationship","query","uploadFile","CALLBACKS","referrals","attachments","case","undefined","id","state","paymentAuthForm","amount_requested","service_start","service_end","description","programs","provider","licensed","sendingProvider","network","features","nh_consent","service","primaryWorker","describe","createBaseReferral","overrides","arguments","length","_objectSpread","setupMocks","mockReturnValue","currentEmployee","formResponses","person","formSubmissionId","assistanceRequestId","screeningId","createRecord","mockResolvedValue","data","updateRecord","it","result","createReferrals","current","response","draft","expect","toHaveProperty","mockCreateCase","mockCreateReferral","mockImplementation","type","toEqual","cases","referralIndex","shippingDetail","index","sent","error","caseId","referralsToConsent","programNames","serviceName","setupCreateRecordMocks","someReferrals","referralsFailed"],"sources":["../../../src/hooks/__tests__/useCreateReferrals.test.js"],"sourcesContent":["import { renderHook, act } from '@testing-library/react-hooks';\nimport useCreateReferrals from '../useCreateReferrals';\nimport { useAppCreateReferralContext } from '../../context/AppCreateReferralProvider';\nimport { useCreateRecord, useUpdateRecord } from '../../api/ApiHooks';\n\njest.mock('../../context/AppCreateReferralProvider', () => ({\n useAppCreateReferralContext: jest.fn(),\n}));\n\njest.mock('../../api/ApiHooks', () => ({\n useCreateRecord: jest.fn(),\n useUpdateRecord: jest.fn(),\n}));\n\njest.mock('../../api/config', () => ({\n coreApi: {\n populateRelationship: jest.fn(),\n setRelationship: jest.fn(),\n query: jest.fn(),\n uploadFile: jest.fn(),\n },\n CALLBACKS: {},\n}));\n\nconst referrals = [\n {\n attachments: null,\n case: undefined,\n id: undefined,\n state: undefined,\n paymentAuthForm: { amount_requested: null, service_start: null, service_end: null },\n description: 'Test Referral',\n programs: [{ id: 'program1', provider: { id: 'provider1', licensed: true } }],\n sendingProvider: { id: 'provider2' },\n network: { id: 'network1', features: { nh_consent: true } },\n service: { id: 'service1' },\n primaryWorker: { id: \"primary-worker-id\" },\n },\n];\n\ndescribe('useCreateReferrals', () => {\n const createBaseReferral = (overrides = {}) => ({\n attachments: null,\n case: undefined,\n id: undefined,\n state: undefined,\n paymentAuthForm: { amount_requested: null, service_start: null, service_end: null },\n programs: [{ id: 'program1', provider: { id: 'provider1', licensed: true } }],\n sendingProvider: { id: 'provider2' },\n network: { id: 'network1', features: { nh_consent: true } },\n service: { id: 'service1' },\n primaryWorker: { id: \"primary-worker-id\" },\n ...overrides,\n });\n\n const setupMocks = (referrals) => {\n useAppCreateReferralContext.mockReturnValue({\n state: {\n currentEmployee: { id: 'employee1' },\n formResponses: [],\n person: { id: 'person1' },\n referrals,\n formSubmissionId: null,\n assistanceRequestId: null,\n screeningId: null,\n },\n });\n\n useCreateRecord.mockReturnValue({\n createRecord: jest.fn().mockResolvedValue({ data: { data: {} } }),\n });\n\n useUpdateRecord.mockReturnValue({\n updateRecord: jest.fn().mockResolvedValue({ data: { data: {} } }),\n });\n };\n\n it('should validate response structure no matters the result', async () => {\n useAppCreateReferralContext.mockReturnValue({\n state: {\n currentEmployee: { id: 'employee1' },\n formResponses: [],\n person: { id: 'person1' },\n referrals,\n formSubmissionId: null,\n assistanceRequestId: null,\n screeningId: null,\n },\n });\n\n useCreateRecord.mockReturnValue({\n createRecord: jest.fn().mockResolvedValue({ data: { data: {} } }),\n });\n\n useUpdateRecord.mockReturnValue({\n updateRecord: jest.fn().mockResolvedValue({ data: { data: {} } }),\n });\n\n const { result } = renderHook(() => useCreateReferrals());\n\n await act(async () => {\n const createReferrals = result.current;\n const response = await createReferrals({ referrals, person: { id: 'person1' }, draft: false });\n expect(response).toHaveProperty('cases');\n expect(response).toHaveProperty('referrals');\n expect(response).toHaveProperty('shippingDetail');\n });\n });\n\n\n it('should create all referrals successfully', async () => {\n useAppCreateReferralContext.mockReturnValue({\n state: {\n currentEmployee: { id: 'employee1' },\n formResponses: [],\n person: { id: 'person1' },\n referrals,\n formSubmissionId: null,\n assistanceRequestId: null,\n screeningId: null,\n },\n });\n\n useCreateRecord.mockReturnValue({\n createRecord: jest.fn().mockResolvedValue({ data: { data: {} } }),\n });\n\n useUpdateRecord.mockReturnValue({\n updateRecord: jest.fn().mockResolvedValue({ data: { data: {} } }),\n });\n\n const mockCreateCase = jest.fn().mockResolvedValue({\n data: {\n data: { id: 'case1', description: 'Test Case' },\n },\n });\n\n const mockCreateReferral = jest.fn().mockResolvedValue({\n data: {\n data: { id: 'referral1', state: 'sent' },\n },\n });\n\n useCreateRecord.mockImplementation((type) => {\n if (type === 'case') {\n return { createRecord: mockCreateCase };\n } else if (type === 'referral') {\n return { createRecord: mockCreateReferral };\n }\n return { createRecord: jest.fn() };\n });\n\n const { result } = renderHook(() => useCreateReferrals());\n\n await act(async () => {\n const createReferrals = result.current;\n const response = await createReferrals({ referrals, person: { id: 'person1' }, draft: false });\n expect(response).toEqual({\n cases: [{ id: 'case1', description: 'Test Case' }],\n referrals: [{ id: 'referral1', state: 'sent', referralIndex: 0 }],\n shippingDetail: [{ index: 0, sent: true, error: null, caseId: \"case1\" }],\n referralsToConsent: [{\n programNames: ['Unknown Program'],\n referrals: ['referral1'],\n serviceName: 'Unknown Service',\n }],\n });\n });\n });\n\n const setupCreateRecordMocks = () => {\n const mockCreateCase = jest.fn().mockResolvedValue({\n data: {\n data: { id: 'case1', description: 'Test Case' },\n },\n });\n\n const mockCreateReferral = jest.fn().mockResolvedValue({\n data: {\n data: { id: 'referral1', state: 'sent' },\n },\n });\n\n useCreateRecord.mockImplementation((type) => {\n if (type === 'case') {\n return { createRecord: mockCreateCase };\n } else if (type === 'referral') {\n return { createRecord: mockCreateReferral };\n }\n return { createRecord: jest.fn() };\n });\n };\n\n it('should create SOME referrals', async () => {\n const someReferrals = [\n createBaseReferral({ description: 'Test Referral' }),\n createBaseReferral({\n description: null,\n programs: [{ id: 'program2', provider: { id: 'provider1', licensed: true } }],\n service: { id: 'service2' }\n }),\n ];\n\n setupMocks(someReferrals);\n setupCreateRecordMocks();\n\n const { result } = renderHook(() => useCreateReferrals());\n\n await act(async () => {\n const createReferrals = result.current;\n const response = await createReferrals({ referrals: someReferrals, person: { id: 'person1' }, draft: false });\n expect(response).toEqual(\n {\n cases: [\n { id: 'case1', description: 'Test Case' }\n ],\n referrals: [\n { id: 'referral1', state: 'sent', referralIndex: 0 }\n ],\n shippingDetail: [\n { index: 0, sent: true, error: null, caseId: \"case1\" },\n {\n index: 1,\n sent: false,\n error: 'Unexpected error: The following fields for the case are required: description',\n caseId: null,\n }\n ],\n referralsToConsent: [{\n programNames: ['Unknown Program'],\n referrals: ['referral1'],\n serviceName: 'Unknown Service',\n }],\n });\n });\n });\n\n it('should FAIL all referrals', async () => {\n const referralsFailed = [\n createBaseReferral({ description: null }),\n createBaseReferral({\n description: null,\n programs: [{ id: 'program2', provider: { id: 'provider1', licensed: true } }],\n service: { id: 'service2' }\n }),\n ];\n\n setupMocks(referralsFailed);\n setupCreateRecordMocks();\n\n const { result } = renderHook(() => useCreateReferrals());\n\n await act(async () => {\n const createReferrals = result.current;\n const response = await createReferrals({ referrals: referralsFailed, person: { id: 'person1' }, draft: false });\n expect(response).toEqual(\n {\n cases: [],\n referrals: [],\n shippingDetail: [\n {\n index: 0,\n sent: false,\n error: 'Unexpected error: The following fields for the case are required: description',\n caseId: null,\n },\n {\n index: 1,\n sent: false,\n error: 'Unexpected error: The following fields for the case are required: description',\n caseId: null,\n }\n ],\n referralsToConsent: [],\n });\n });\n });\n\n it('should not create referrals to consent when nh_consent is false', async () => {\n const referrals = [\n createBaseReferral({\n description: 'Test Referral',\n network: { id: 'network1', features: { nh_consent: false } }\n }),\n ];\n\n setupMocks(referrals);\n setupCreateRecordMocks();\n\n const { result } = renderHook(() => useCreateReferrals());\n\n await act(async () => {\n const createReferrals = result.current;\n const response = await createReferrals({ referrals, person: { id: 'person1' }, draft: false });\n expect(response).toEqual({\n cases: [{ id: 'case1', description: 'Test Case' }],\n referrals: [{ id: 'referral1', state: 'sent', referralIndex: 0 }],\n shippingDetail: [{ index: 0, sent: true, error: null, caseId: \"case1\" }],\n referralsToConsent: [],\n });\n });\n });\n});\n"],"mappings":";;;AAAA,SAASA,UAAU,EAAEC,GAAG,QAAQ,8BAA8B;AAC9D,OAAOC,kBAAkB,MAAM,uBAAuB;AACtD,SAASC,2BAA2B,QAAQ,yCAAyC;AACrF,SAASC,eAAe,EAAEC,eAAe,QAAQ,oBAAoB;AAErEC,IAAI,CAACC,IAAI,CAAC,yCAAyC,EAAE,OAAO;EAC1DJ,2BAA2B,EAAEG,IAAI,CAACE,EAAE,CAAC;AACvC,CAAC,CAAC,CAAC;AAEHF,IAAI,CAACC,IAAI,CAAC,oBAAoB,EAAE,OAAO;EACrCH,eAAe,EAAEE,IAAI,CAACE,EAAE,CAAC,CAAC;EAC1BH,eAAe,EAAEC,IAAI,CAACE,EAAE,CAAC;AAC3B,CAAC,CAAC,CAAC;AAEHF,IAAI,CAACC,IAAI,CAAC,kBAAkB,EAAE,OAAO;EACnCE,OAAO,EAAE;IACPC,oBAAoB,EAAEJ,IAAI,CAACE,EAAE,CAAC,CAAC;IAC/BG,eAAe,EAAEL,IAAI,CAACE,EAAE,CAAC,CAAC;IAC1BI,KAAK,EAAEN,IAAI,CAACE,EAAE,CAAC,CAAC;IAChBK,UAAU,EAAEP,IAAI,CAACE,EAAE,CAAC;EACtB,CAAC;EACDM,SAAS,EAAE,CAAC;AACd,CAAC,CAAC,CAAC;AAEH,MAAMC,SAAS,GAAG,CACd;EACEC,WAAW,EAAE,IAAI;EACjBC,IAAI,EAAEC,SAAS;EACfC,EAAE,EAAED,SAAS;EACbE,KAAK,EAAEF,SAAS;EAChBG,eAAe,EAAE;IAAEC,gBAAgB,EAAE,IAAI;IAAEC,aAAa,EAAE,IAAI;IAAEC,WAAW,EAAE;EAAK,CAAC;EACnFC,WAAW,EAAE,eAAe;EAC5BC,QAAQ,EAAE,CAAC;IAAEP,EAAE,EAAE,UAAU;IAAEQ,QAAQ,EAAE;MAAER,EAAE,EAAE,WAAW;MAAES,QAAQ,EAAE;IAAK;EAAE,CAAC,CAAC;EAC7EC,eAAe,EAAE;IAAEV,EAAE,EAAE;EAAY,CAAC;EACpCW,OAAO,EAAE;IAAEX,EAAE,EAAE,UAAU;IAAEY,QAAQ,EAAE;MAAEC,UAAU,EAAE;IAAK;EAAE,CAAC;EAC3DC,OAAO,EAAE;IAAEd,EAAE,EAAE;EAAW,CAAC;EAC3Be,aAAa,EAAE;IAAEf,EAAE,EAAE;EAAoB;AAC3C,CAAC,CACJ;AAEDgB,QAAQ,CAAC,oBAAoB,EAAE,MAAM;EACnC,MAAMC,kBAAkB,GAAG,SAAAA,CAAA;IAAA,IAACC,SAAS,GAAAC,SAAA,CAAAC,MAAA,QAAAD,SAAA,QAAApB,SAAA,GAAAoB,SAAA,MAAG,CAAC,CAAC;IAAA,OAAAE,aAAA;MACxCxB,WAAW,EAAE,IAAI;MACjBC,IAAI,EAAEC,SAAS;MACfC,EAAE,EAAED,SAAS;MACbE,KAAK,EAAEF,SAAS;MAChBG,eAAe,EAAE;QAAEC,gBAAgB,EAAE,IAAI;QAAEC,aAAa,EAAE,IAAI;QAAEC,WAAW,EAAE;MAAK,CAAC;MACnFE,QAAQ,EAAE,CAAC;QAAEP,EAAE,EAAE,UAAU;QAAEQ,QAAQ,EAAE;UAAER,EAAE,EAAE,WAAW;UAAES,QAAQ,EAAE;QAAK;MAAE,CAAC,CAAC;MAC7EC,eAAe,EAAE;QAAEV,EAAE,EAAE;MAAY,CAAC;MACpCW,OAAO,EAAE;QAAEX,EAAE,EAAE,UAAU;QAAEY,QAAQ,EAAE;UAAEC,UAAU,EAAE;QAAK;MAAE,CAAC;MAC3DC,OAAO,EAAE;QAAEd,EAAE,EAAE;MAAW,CAAC;MAC3Be,aAAa,EAAE;QAAEf,EAAE,EAAE;MAAoB;IAAC,GACvCkB,SAAS;EAAA,CACZ;EAEF,MAAMI,UAAU,GAAI1B,SAAS,IAAK;IAChCZ,2BAA2B,CAACuC,eAAe,CAAC;MAC1CtB,KAAK,EAAE;QACLuB,eAAe,EAAE;UAAExB,EAAE,EAAE;QAAY,CAAC;QACpCyB,aAAa,EAAE,EAAE;QACjBC,MAAM,EAAE;UAAE1B,EAAE,EAAE;QAAU,CAAC;QACzBJ,SAAS;QACT+B,gBAAgB,EAAE,IAAI;QACtBC,mBAAmB,EAAE,IAAI;QACzBC,WAAW,EAAE;MACf;IACF,CAAC,CAAC;IAEF5C,eAAe,CAACsC,eAAe,CAAC;MAC9BO,YAAY,EAAE3C,IAAI,CAACE,EAAE,CAAC,CAAC,CAAC0C,iBAAiB,CAAC;QAAEC,IAAI,EAAE;UAAEA,IAAI,EAAE,CAAC;QAAE;MAAE,CAAC;IAClE,CAAC,CAAC;IAEF9C,eAAe,CAACqC,eAAe,CAAC;MAC9BU,YAAY,EAAE9C,IAAI,CAACE,EAAE,CAAC,CAAC,CAAC0C,iBAAiB,CAAC;QAAEC,IAAI,EAAE;UAAEA,IAAI,EAAE,CAAC;QAAE;MAAE,CAAC;IAClE,CAAC,CAAC;EACJ,CAAC;EAEDE,EAAE,CAAC,0DAA0D,EAAE,YAAY;IACzElD,2BAA2B,CAACuC,eAAe,CAAC;MAC1CtB,KAAK,EAAE;QACLuB,eAAe,EAAE;UAAExB,EAAE,EAAE;QAAY,CAAC;QACpCyB,aAAa,EAAE,EAAE;QACjBC,MAAM,EAAE;UAAE1B,EAAE,EAAE;QAAU,CAAC;QACzBJ,SAAS;QACT+B,gBAAgB,EAAE,IAAI;QACtBC,mBAAmB,EAAE,IAAI;QACzBC,WAAW,EAAE;MACf;IACF,CAAC,CAAC;IAEF5C,eAAe,CAACsC,eAAe,CAAC;MAC9BO,YAAY,EAAE3C,IAAI,CAACE,EAAE,CAAC,CAAC,CAAC0C,iBAAiB,CAAC;QAAEC,IAAI,EAAE;UAAEA,IAAI,EAAE,CAAC;QAAE;MAAE,CAAC;IAClE,CAAC,CAAC;IAEF9C,eAAe,CAACqC,eAAe,CAAC;MAC9BU,YAAY,EAAE9C,IAAI,CAACE,EAAE,CAAC,CAAC,CAAC0C,iBAAiB,CAAC;QAAEC,IAAI,EAAE;UAAEA,IAAI,EAAE,CAAC;QAAE;MAAE,CAAC;IAClE,CAAC,CAAC;IAEF,MAAM;MAAEG;IAAO,CAAC,GAAGtD,UAAU,CAAC,MAAME,kBAAkB,CAAC,CAAC,CAAC;IAEzD,MAAMD,GAAG,CAAC,YAAY;MACpB,MAAMsD,eAAe,GAAGD,MAAM,CAACE,OAAO;MACtC,MAAMC,QAAQ,GAAG,MAAMF,eAAe,CAAC;QAAExC,SAAS;QAAE8B,MAAM,EAAE;UAAE1B,EAAE,EAAE;QAAU,CAAC;QAAEuC,KAAK,EAAE;MAAM,CAAC,CAAC;MAC9FC,MAAM,CAACF,QAAQ,CAAC,CAACG,cAAc,CAAC,OAAO,CAAC;MACxCD,MAAM,CAACF,QAAQ,CAAC,CAACG,cAAc,CAAC,WAAW,CAAC;MAC5CD,MAAM,CAACF,QAAQ,CAAC,CAACG,cAAc,CAAC,gBAAgB,CAAC;IACnD,CAAC,CAAC;EACJ,CAAC,CAAC;EAGFP,EAAE,CAAC,0CAA0C,EAAE,YAAY;IACzDlD,2BAA2B,CAACuC,eAAe,CAAC;MAC1CtB,KAAK,EAAE;QACLuB,eAAe,EAAE;UAAExB,EAAE,EAAE;QAAY,CAAC;QACpCyB,aAAa,EAAE,EAAE;QACjBC,MAAM,EAAE;UAAE1B,EAAE,EAAE;QAAU,CAAC;QACzBJ,SAAS;QACT+B,gBAAgB,EAAE,IAAI;QACtBC,mBAAmB,EAAE,IAAI;QACzBC,WAAW,EAAE;MACf;IACF,CAAC,CAAC;IAEF5C,eAAe,CAACsC,eAAe,CAAC;MAC9BO,YAAY,EAAE3C,IAAI,CAACE,EAAE,CAAC,CAAC,CAAC0C,iBAAiB,CAAC;QAAEC,IAAI,EAAE;UAAEA,IAAI,EAAE,CAAC;QAAE;MAAE,CAAC;IAClE,CAAC,CAAC;IAEF9C,eAAe,CAACqC,eAAe,CAAC;MAC9BU,YAAY,EAAE9C,IAAI,CAACE,EAAE,CAAC,CAAC,CAAC0C,iBAAiB,CAAC;QAAEC,IAAI,EAAE;UAAEA,IAAI,EAAE,CAAC;QAAE;MAAE,CAAC;IAClE,CAAC,CAAC;IAEF,MAAMU,cAAc,GAAGvD,IAAI,CAACE,EAAE,CAAC,CAAC,CAAC0C,iBAAiB,CAAC;MACjDC,IAAI,EAAE;QACJA,IAAI,EAAE;UAAEhC,EAAE,EAAE,OAAO;UAAEM,WAAW,EAAE;QAAY;MAChD;IACF,CAAC,CAAC;IAEF,MAAMqC,kBAAkB,GAAGxD,IAAI,CAACE,EAAE,CAAC,CAAC,CAAC0C,iBAAiB,CAAC;MACrDC,IAAI,EAAE;QACJA,IAAI,EAAE;UAAEhC,EAAE,EAAE,WAAW;UAAEC,KAAK,EAAE;QAAO;MACzC;IACF,CAAC,CAAC;IAEFhB,eAAe,CAAC2D,kBAAkB,CAAEC,IAAI,IAAK;MAC3C,IAAIA,IAAI,KAAK,MAAM,EAAE;QACnB,OAAO;UAAEf,YAAY,EAAEY;QAAe,CAAC;MACzC,CAAC,MAAM,IAAIG,IAAI,KAAK,UAAU,EAAE;QAC9B,OAAO;UAAEf,YAAY,EAAEa;QAAmB,CAAC;MAC7C;MACA,OAAO;QAAEb,YAAY,EAAE3C,IAAI,CAACE,EAAE,CAAC;MAAE,CAAC;IACpC,CAAC,CAAC;IAEF,MAAM;MAAE8C;IAAO,CAAC,GAAGtD,UAAU,CAAC,MAAME,kBAAkB,CAAC,CAAC,CAAC;IAEzD,MAAMD,GAAG,CAAC,YAAY;MACpB,MAAMsD,eAAe,GAAGD,MAAM,CAACE,OAAO;MACtC,MAAMC,QAAQ,GAAG,MAAMF,eAAe,CAAC;QAAExC,SAAS;QAAE8B,MAAM,EAAE;UAAE1B,EAAE,EAAE;QAAU,CAAC;QAAEuC,KAAK,EAAE;MAAM,CAAC,CAAC;MAC9FC,MAAM,CAACF,QAAQ,CAAC,CAACQ,OAAO,CAAC;QACvBC,KAAK,EAAE,CAAC;UAAE/C,EAAE,EAAE,OAAO;UAAEM,WAAW,EAAE;QAAY,CAAC,CAAC;QAClDV,SAAS,EAAE,CAAC;UAAEI,EAAE,EAAE,WAAW;UAAEC,KAAK,EAAE,MAAM;UAAE+C,aAAa,EAAE;QAAE,CAAC,CAAC;QACjEC,cAAc,EAAE,CAAC;UAAEC,KAAK,EAAE,CAAC;UAAEC,IAAI,EAAE,IAAI;UAAEC,KAAK,EAAE,IAAI;UAAEC,MAAM,EAAE;QAAQ,CAAC,CAAC;QACxEC,kBAAkB,EAAE,CAAC;UACnBC,YAAY,EAAE,CAAC,iBAAiB,CAAC;UACjC3D,SAAS,EAAE,CAAC,WAAW,CAAC;UACxB4D,WAAW,EAAE;QACf,CAAC;MACH,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;EAEF,MAAMC,sBAAsB,GAAGA,CAAA,KAAM;IACnC,MAAMf,cAAc,GAAGvD,IAAI,CAACE,EAAE,CAAC,CAAC,CAAC0C,iBAAiB,CAAC;MACjDC,IAAI,EAAE;QACJA,IAAI,EAAE;UAAEhC,EAAE,EAAE,OAAO;UAAEM,WAAW,EAAE;QAAY;MAChD;IACF,CAAC,CAAC;IAEF,MAAMqC,kBAAkB,GAAGxD,IAAI,CAACE,EAAE,CAAC,CAAC,CAAC0C,iBAAiB,CAAC;MACrDC,IAAI,EAAE;QACJA,IAAI,EAAE;UAAEhC,EAAE,EAAE,WAAW;UAAEC,KAAK,EAAE;QAAO;MACzC;IACF,CAAC,CAAC;IAEFhB,eAAe,CAAC2D,kBAAkB,CAAEC,IAAI,IAAK;MAC3C,IAAIA,IAAI,KAAK,MAAM,EAAE;QACnB,OAAO;UAAEf,YAAY,EAAEY;QAAe,CAAC;MACzC,CAAC,MAAM,IAAIG,IAAI,KAAK,UAAU,EAAE;QAC9B,OAAO;UAAEf,YAAY,EAAEa;QAAmB,CAAC;MAC7C;MACA,OAAO;QAAEb,YAAY,EAAE3C,IAAI,CAACE,EAAE,CAAC;MAAE,CAAC;IACpC,CAAC,CAAC;EACJ,CAAC;EAED6C,EAAE,CAAC,8BAA8B,EAAE,YAAY;IAC7C,MAAMwB,aAAa,GAAG,CACpBzC,kBAAkB,CAAC;MAAEX,WAAW,EAAE;IAAgB,CAAC,CAAC,EACpDW,kBAAkB,CAAC;MACjBX,WAAW,EAAE,IAAI;MACjBC,QAAQ,EAAE,CAAC;QAAEP,EAAE,EAAE,UAAU;QAAEQ,QAAQ,EAAE;UAAER,EAAE,EAAE,WAAW;UAAES,QAAQ,EAAE;QAAK;MAAE,CAAC,CAAC;MAC7EK,OAAO,EAAE;QAAEd,EAAE,EAAE;MAAW;IAC5B,CAAC,CAAC,CACH;IAEDsB,UAAU,CAACoC,aAAa,CAAC;IACzBD,sBAAsB,CAAC,CAAC;IAExB,MAAM;MAAEtB;IAAO,CAAC,GAAGtD,UAAU,CAAC,MAAME,kBAAkB,CAAC,CAAC,CAAC;IAEzD,MAAMD,GAAG,CAAC,YAAY;MACpB,MAAMsD,eAAe,GAAGD,MAAM,CAACE,OAAO;MACtC,MAAMC,QAAQ,GAAG,MAAMF,eAAe,CAAC;QAAExC,SAAS,EAAE8D,aAAa;QAAEhC,MAAM,EAAE;UAAE1B,EAAE,EAAE;QAAU,CAAC;QAAEuC,KAAK,EAAE;MAAM,CAAC,CAAC;MAC7GC,MAAM,CAACF,QAAQ,CAAC,CAACQ,OAAO,CACtB;QACEC,KAAK,EAAE,CACL;UAAE/C,EAAE,EAAE,OAAO;UAAEM,WAAW,EAAE;QAAY,CAAC,CAC1C;QACDV,SAAS,EAAE,CACT;UAAEI,EAAE,EAAE,WAAW;UAAEC,KAAK,EAAE,MAAM;UAAE+C,aAAa,EAAE;QAAE,CAAC,CACrD;QACDC,cAAc,EAAE,CACd;UAAEC,KAAK,EAAE,CAAC;UAAEC,IAAI,EAAE,IAAI;UAAEC,KAAK,EAAE,IAAI;UAAEC,MAAM,EAAE;QAAQ,CAAC,EACtD;UACEH,KAAK,EAAE,CAAC;UACRC,IAAI,EAAE,KAAK;UACXC,KAAK,EAAE,+EAA+E;UACtFC,MAAM,EAAE;QACV,CAAC,CACF;QACDC,kBAAkB,EAAE,CAAC;UACnBC,YAAY,EAAE,CAAC,iBAAiB,CAAC;UACjC3D,SAAS,EAAE,CAAC,WAAW,CAAC;UACxB4D,WAAW,EAAE;QACf,CAAC;MACH,CAAC,CAAC;IACN,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFtB,EAAE,CAAC,2BAA2B,EAAE,YAAY;IAC1C,MAAMyB,eAAe,GAAG,CACtB1C,kBAAkB,CAAC;MAAEX,WAAW,EAAE;IAAK,CAAC,CAAC,EACzCW,kBAAkB,CAAC;MACjBX,WAAW,EAAE,IAAI;MACjBC,QAAQ,EAAE,CAAC;QAAEP,EAAE,EAAE,UAAU;QAAEQ,QAAQ,EAAE;UAAER,EAAE,EAAE,WAAW;UAAES,QAAQ,EAAE;QAAK;MAAE,CAAC,CAAC;MAC7EK,OAAO,EAAE;QAAEd,EAAE,EAAE;MAAW;IAC5B,CAAC,CAAC,CACH;IAEDsB,UAAU,CAACqC,eAAe,CAAC;IAC3BF,sBAAsB,CAAC,CAAC;IAExB,MAAM;MAAEtB;IAAO,CAAC,GAAGtD,UAAU,CAAC,MAAME,kBAAkB,CAAC,CAAC,CAAC;IAEzD,MAAMD,GAAG,CAAC,YAAY;MACpB,MAAMsD,eAAe,GAAGD,MAAM,CAACE,OAAO;MACtC,MAAMC,QAAQ,GAAG,MAAMF,eAAe,CAAC;QAAExC,SAAS,EAAE+D,eAAe;QAAEjC,MAAM,EAAE;UAAE1B,EAAE,EAAE;QAAU,CAAC;QAAEuC,KAAK,EAAE;MAAM,CAAC,CAAC;MAC/GC,MAAM,CAACF,QAAQ,CAAC,CAACQ,OAAO,CACtB;QACEC,KAAK,EAAE,EAAE;QACTnD,SAAS,EAAE,EAAE;QACbqD,cAAc,EAAE,CACd;UACEC,KAAK,EAAE,CAAC;UACRC,IAAI,EAAE,KAAK;UACXC,KAAK,EAAE,+EAA+E;UACtFC,MAAM,EAAE;QACV,CAAC,EACD;UACEH,KAAK,EAAE,CAAC;UACRC,IAAI,EAAE,KAAK;UACXC,KAAK,EAAE,+EAA+E;UACtFC,MAAM,EAAE;QACV,CAAC,CACF;QACDC,kBAAkB,EAAE;MACtB,CAAC,CAAC;IACN,CAAC,CAAC;EACJ,CAAC,CAAC;EAEFpB,EAAE,CAAC,iEAAiE,EAAE,YAAY;IAChF,MAAMtC,SAAS,GAAG,CAChBqB,kBAAkB,CAAC;MACjBX,WAAW,EAAE,eAAe;MAC5BK,OAAO,EAAE;QAAEX,EAAE,EAAE,UAAU;QAAEY,QAAQ,EAAE;UAAEC,UAAU,EAAE;QAAM;MAAE;IAC7D,CAAC,CAAC,CACH;IAEDS,UAAU,CAAC1B,SAAS,CAAC;IACrB6D,sBAAsB,CAAC,CAAC;IAExB,MAAM;MAAEtB;IAAO,CAAC,GAAGtD,UAAU,CAAC,MAAME,kBAAkB,CAAC,CAAC,CAAC;IAEzD,MAAMD,GAAG,CAAC,YAAY;MACpB,MAAMsD,eAAe,GAAGD,MAAM,CAACE,OAAO;MACtC,MAAMC,QAAQ,GAAG,MAAMF,eAAe,CAAC;QAAExC,SAAS;QAAE8B,MAAM,EAAE;UAAE1B,EAAE,EAAE;QAAU,CAAC;QAAEuC,KAAK,EAAE;MAAM,CAAC,CAAC;MAC9FC,MAAM,CAACF,QAAQ,CAAC,CAACQ,OAAO,CAAC;QACvBC,KAAK,EAAE,CAAC;UAAE/C,EAAE,EAAE,OAAO;UAAEM,WAAW,EAAE;QAAY,CAAC,CAAC;QAClDV,SAAS,EAAE,CAAC;UAAEI,EAAE,EAAE,WAAW;UAAEC,KAAK,EAAE,MAAM;UAAE+C,aAAa,EAAE;QAAE,CAAC,CAAC;QACjEC,cAAc,EAAE,CAAC;UAAEC,KAAK,EAAE,CAAC;UAAEC,IAAI,EAAE,IAAI;UAAEC,KAAK,EAAE,IAAI;UAAEC,MAAM,EAAE;QAAQ,CAAC,CAAC;QACxEC,kBAAkB,EAAE;MACtB,CAAC,CAAC;IACJ,CAAC,CAAC;EACJ,CAAC,CAAC;AACJ,CAAC,CAAC","ignoreList":[]}
|
|
@@ -131,7 +131,8 @@ export default function useCreateReferrals() {
|
|
|
131
131
|
result.shippingDetail.push({
|
|
132
132
|
index: i,
|
|
133
133
|
sent: false,
|
|
134
|
-
error: null
|
|
134
|
+
error: null,
|
|
135
|
+
caseId: null
|
|
135
136
|
});
|
|
136
137
|
try {
|
|
137
138
|
if (referrals[i].state === "draft") {
|
|
@@ -222,6 +223,8 @@ export default function useCreateReferrals() {
|
|
|
222
223
|
}
|
|
223
224
|
createdCaseOrExistingAR = get(caseResponse, 'data.data', {});
|
|
224
225
|
const feeScheduleProgram = referral.programs[0].fee_schedule_program;
|
|
226
|
+
let item = result.shippingDetail.find(item => item.index === i);
|
|
227
|
+
if (item) item.caseId = createdCaseOrExistingAR.id;
|
|
225
228
|
if (feeScheduleProgram !== null && feeScheduleProgram !== void 0 && feeScheduleProgram.authorization_required) {
|
|
226
229
|
var _referral$paymentAuth, _referral$paymentAuth2, _responseInsurances$d;
|
|
227
230
|
const serviceStart = referral === null || referral === void 0 || (_referral$paymentAuth = referral.paymentAuthForm) === null || _referral$paymentAuth === void 0 ? void 0 : _referral$paymentAuth.service_start;
|
|
@@ -297,7 +300,8 @@ export default function useCreateReferrals() {
|
|
|
297
300
|
createNote(createNoteForUnlistedProgramValues);
|
|
298
301
|
const noteReferral = {
|
|
299
302
|
index: i,
|
|
300
|
-
sent: true
|
|
303
|
+
sent: true,
|
|
304
|
+
referralIndex: i
|
|
301
305
|
};
|
|
302
306
|
result.referrals.push(noteReferral);
|
|
303
307
|
let item = result.shippingDetail.find(item => item.index === i);
|
|
@@ -324,7 +328,9 @@ export default function useCreateReferrals() {
|
|
|
324
328
|
}
|
|
325
329
|
try {
|
|
326
330
|
const responseReferral = await createReferral(referralValues);
|
|
327
|
-
result.referrals.push(responseReferral.data.data)
|
|
331
|
+
result.referrals.push(_objectSpread(_objectSpread({}, responseReferral.data.data), {}, {
|
|
332
|
+
referralIndex: i
|
|
333
|
+
}));
|
|
328
334
|
let item = result.shippingDetail.find(item => item.index === i);
|
|
329
335
|
if (item) item.sent = true;
|
|
330
336
|
createdReferrals.push(responseReferral.data.data);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useCreateReferrals.js","names":["get","map","isEmpty","moment","fspUtils","isUnlistedProgram","referralIsOON","referralIsGrouped","useCreateRecord","useUpdateRecord","CALLBACKS","coreApi","useAppCreateReferralContext","useFeatureFlag","referralToConsent","formatShortDate2FromTimestamp","validateRequiredValues","type","values","requiredFields","filter","field","useCreateReferrals","state","currentEmployee","formResponses","person","referrals","formSubmissionId","assistanceRequestId","screeningId","hint542SupersetUnlistedPrograms","pays5590RefactorInsuranceFilters","showClientNeed","createRecord","createReferral","createCase","createServiceAuthorization","createFormSubmission","createNote","updateRecord","updateReferral","updateCase","updateServiceAuthorization","createErrorMessage","error","response","data","errors","title","join","uploadDocuments","referral","caseToUploadDoc","attachableDocuments","filteredDocuments","doc","attached","attachedDocuments","ad","document","id","attachDocumentsToResource","setRelationship","relationshipModel","value","a","uploadPromises","Promise","all","uploadedDocuments","uploadDocumentsToResource","d","uploadFile","file","submitAssessments","_ref","cases","latestResponses","promises","serviceCase","assessment","_assessment$form","form","service_type_ids","includes","service","push","context","contextType","provider","responses","submitter","then","catch","err","notify","createReferrals","_ref2","draft","result","shippingDetail","referralsToConsent","groupedReferrals","some","r","length","i","index","sent","_referrals$i$case","resultDraft","undefined","case","service_authorization","updateDraftReferralCrtb1239","updateDraftReferral","item","find","referralData","originalReferral","createdReferrals","referredToPrograms","isGrouped","isOON","createdCaseOrExistingAR","authorizationCreated","j","programData","_referral$client_need","_referral$primaryWork","caseValues","_objectSpread","description","person_conditions","client_need","sendingProvider","network","primaryWorker","primary_worker","originating_form_submission","screening2_id","missingCaseValues","Error","concat","opened_date","caseResponse","_referral$client_need2","arCase","payload","client_need_id","feeScheduleProgram","programs","fee_schedule_program","authorization_required","_referral$paymentAuth","_referral$paymentAuth2","_responseInsurances$d","serviceStart","paymentAuthForm","service_start","requestedStartDate","unix","toISOString","serviceEnd","service_end","requestedEndDate","add","subtract","amountRequested","amount_requested","icd10Codes","icd10_code","queryInsuranceParams","enrolled_before","expired_after","fee_schedule","sort","responseInsurances","query","insurances","requested_starts_at","requested_ends_at","isCostPaymentType","payment_type","requested_cents","requested_unit_amount","parseInt","requester","insurance","clinical_modifications","createNoteForUnlistedProgramValues","subjectType","subject","employee","visibility","category","text","name","missingNoteValues","noteReferral","referralValues","is_grouped","receiving_program","receiving_provider","receiving_network","sending_provider","sending_network","missingReferralValues","responseReferral","message","_caseResponse$data","_caseResponse$data2","caseRequestResponse","referralsRequestResponse","findRecord","oldCase","oldReferrals","serviceTypeChanged","service_type","descriptionChanged","serviceCasePayload","referralsToDelete","forEach","deleteRecord","formRecipientsIds","provider_id","program_id","createReferralPromises","newReferral","referralsResponse","referralResponse","_referralResponse$dat","updateServiceAuthorizationHandler","_referral$paymentAuth3","_referral$paymentAuth4","_responseInsurances$d2","options","arguments","isAuthRequired","newState"],"sources":["../../src/hooks/useCreateReferrals.js"],"sourcesContent":["import { get, map, isEmpty } from 'lodash';\nimport moment from 'moment';\nimport fspUtils from '@unite-us/client-utils/dist/utils/feeSchedulePrograms';\nimport { isUnlistedProgram, referralIsOON, referralIsGrouped } from '../pages/builder/utils';\nimport { useCreateRecord, useUpdateRecord } from '../api/ApiHooks';\nimport { CALLBACKS, coreApi } from '../api/config';\nimport { useAppCreateReferralContext } from '../context/AppCreateReferralProvider';\nimport { useFeatureFlag } from '../utils/useFeatureFlag';\nimport referralToConsent from '../utils/referralToConsent';\nimport { formatShortDate2FromTimestamp } from '../components/service_authorization/formatShortDate';\n\nconst validateRequiredValues = (type, values) => {\n let requiredFields = [];\n if (type === 'case') {\n requiredFields = ['description', 'service', 'provider', 'network', 'person'];\n } else if (type === 'note') {\n requiredFields = ['subjectType', 'subject', 'visibility', 'text'];\n } else if (type === 'referral') {\n requiredFields = ['case', 'receiving_program', 'receiving_provider', 'receiving_network', 'sending_provider', 'sending_network'];\n }\n\n return requiredFields.filter(field => !values[field]);\n};\n\nexport default function useCreateReferrals() {\n const {\n state: {\n currentEmployee,\n formResponses,\n person,\n referrals,\n formSubmissionId,\n assistanceRequestId,\n screeningId,\n }\n } = useAppCreateReferralContext();\n\n const hint542SupersetUnlistedPrograms = useFeatureFlag('hint542SupersetUnlistedPrograms', false);\n const pays5590RefactorInsuranceFilters = useFeatureFlag('pays5590RefactorInsuranceFilters', false);\n const showClientNeed = useFeatureFlag('crtb2130MultipleClientNeeds', false);\n\n const { createRecord: createReferral } = useCreateRecord('referral');\n const { createRecord: createCase } = useCreateRecord('case');\n const { createRecord: createServiceAuthorization } = useCreateRecord('service_authorization');\n const { createRecord: createFormSubmission } = useCreateRecord('form_submission');\n const { createRecord: createNote } = useCreateRecord('note');\n const { updateRecord: updateReferral } = useUpdateRecord('referral');\n const { updateRecord: updateCase } = useUpdateRecord('case');\n const { updateRecord: updateServiceAuthorization } = useUpdateRecord('service_authorization');\n\n const createErrorMessage = (error) => {\n return error.response.data.errors.map((error) => error.title).join(', ');\n }\n\n const uploadDocuments = ((referral, caseToUploadDoc) => {\n const attachableDocuments = get(referral, 'attachableDocuments', []);\n const filteredDocuments = attachableDocuments.filter((doc) => doc.attached === true);\n const attachedDocuments = filteredDocuments.map((ad) => ({\n title: ad.document.title,\n id: ad.document.id,\n }));\n\n if(!isEmpty(attachedDocuments)) {\n const attachDocumentsToResource = () => (\n coreApi.setRelationship(\n 'case',\n caseToUploadDoc.id,\n { relationshipModel: 'file_upload', value: attachedDocuments.map((a) => a.id) },\n )\n );\n\n const uploadPromises = !isEmpty(attachedDocuments) && attachDocumentsToResource();\n\n Promise.all([uploadPromises]);\n }\n\n const uploadedDocuments = get(referral, 'attachments', []);\n\n if (!isEmpty(uploadedDocuments)) {\n const uploadDocumentsToResource = () => (\n uploadedDocuments.map((d) => coreApi.uploadFile('case', caseToUploadDoc.id, d.file))\n );\n\n const uploadPromises = uploadDocumentsToResource();\n Promise.all([\n ...(uploadPromises || []),\n ]);\n }\n });\n\n const submitAssessments = ({ cases, latestResponses }) => {\n let promises = [];\n map(cases, (serviceCase) => {\n map((latestResponses || formResponses), (assessment) => {\n if (!isEmpty(assessment) && assessment.form?.service_type_ids?.includes(serviceCase.service.id)) {\n promises.push(createFormSubmission({\n context: serviceCase.id,\n contextType: 'case',\n form: assessment.form.id,\n provider: serviceCase.provider.id,\n responses: assessment.responses,\n submitter: currentEmployee.id,\n }));\n }\n });\n });\n\n return Promise.all(promises).then((responses) => {\n return responses;\n }).catch(err => {\n CALLBACKS.notify.error(\"Error submitting Assessments\");\n throw err;\n });\n };\n\n const createReferrals = async ({ referrals, person, draft }) => {\n const result = {\n referrals: [],\n cases: [],\n shippingDetail: [],\n referralsToConsent: [],\n };\n\n let groupedReferrals = referrals.some(r => get(r, 'programs', []).length > 1);\n\n for (let i = 0; i < referrals.length; i += 1) {\n result.shippingDetail.push({ index: i, sent: false, error: null });\n try {\n if (referrals[i].state === \"draft\") {\n let resultDraft = undefined;\n if (isEmpty(referrals[i].case?.service_authorization)) {\n resultDraft = await updateDraftReferralCrtb1239(referrals[i]);\n } else {\n resultDraft = await updateDraftReferral(referrals[i], draft);\n }\n\n let item = result.shippingDetail.find(item => item.index === i);\n if (item) item.sent = true;\n result.cases.push(resultDraft.cases[0]);\n result.referrals.push(...resultDraft.referrals);\n\n // From one draft multiple referrals could be created (grouped referrals)\n const referralData = await referralToConsent({\n originalReferral: referrals[i],\n createdReferrals: resultDraft.referrals,\n });\n if (referralData) result.referralsToConsent.push(referralData);\n } else {\n const referral = referrals[i];\n const referredToPrograms = get(referral, 'programs', []);\n const isGrouped = referralIsGrouped(referral);\n const isOON = referralIsOON(referral);\n\n let createdCaseOrExistingAR = null;\n let authorizationCreated = false;\n\n const createdReferrals = [];\n for (let j = 0; j < referredToPrograms.length; j += 1) {\n const programData = referredToPrograms[j];\n\n if ((groupedReferrals && !createdCaseOrExistingAR) || !groupedReferrals) {\n let caseValues = {\n description: referral.description,\n state: referralIsOON(referral) ? 'off_platform' : 'draft',\n person_conditions: referral.client_need?.map(id => ({ id, type: 'person_condition' })) || [],\n person: person.id,\n provider: referral.sendingProvider.id,\n network: referral.network.id,\n service: referral.service.id,\n ...(referral.primaryWorker?.id ? { primary_worker: referral.primaryWorker.id } : null),\n ...(formSubmissionId ? { originating_form_submission: formSubmissionId } : null),\n ...(screeningId ? { screening2_id: screeningId } : null),\n };\n\n const missingCaseValues = validateRequiredValues('case', caseValues);\n if (missingCaseValues.length) {\n throw new Error(`The following fields for the case are required: ${missingCaseValues.join(', ')}`);\n }\n\n if (isOON) {\n caseValues = { ...caseValues, opened_date: formatShortDate2FromTimestamp(referral.opened_date) };\n }\n\n try {\n let caseResponse;\n if (assistanceRequestId && i === 0) {\n const arCase = get(assistanceRequestId, 'case', null);\n let payload = {\n description: referral.description,\n network: referral.network.id,\n };\n\n if (referral.service.id && (get(arCase, 'service.id') !== referral.service.id)) {\n payload = { ...payload, service: referral.service.id };\n }\n\n if (isOON) {\n payload = {\n ...payload,\n primary_worker: referral.primaryWorker.id,\n state: 'off_platform',\n opened_date: formatShortDate2FromTimestamp(referral.opened_date),\n };\n }\n\n if (showClientNeed && referral.client_need?.id) {\n payload.client_need_id = referral.client_need.id;\n }\n\n caseResponse = await updateCase(arCase.id, payload);\n } else {\n caseResponse = await createCase(caseValues);\n }\n createdCaseOrExistingAR = get(caseResponse, 'data.data', {});\n\n const feeScheduleProgram = referral.programs[0].fee_schedule_program;\n\n if (feeScheduleProgram?.authorization_required) {\n const serviceStart = referral?.paymentAuthForm?.service_start;\n let requestedStartDate = serviceStart && moment.unix(serviceStart).toISOString();\n const serviceEnd = referral?.paymentAuthForm?.service_end;\n let requestedEndDate = serviceEnd && moment.unix(serviceEnd).toISOString();\n\n if (pays5590RefactorInsuranceFilters) {\n requestedStartDate = serviceStart && moment(requestedStartDate).add(1, 'day').toISOString();\n requestedEndDate = serviceEnd && moment(requestedEndDate).subtract(1, 'day').toISOString();\n }\n\n const amountRequested = referral.paymentAuthForm.amount_requested;\n const icd10Codes = referral.paymentAuthForm.icd10_code.id ?\n [referral.paymentAuthForm.icd10_code.id] : [];\n\n const queryInsuranceParams = {\n person: person.id,\n state: 'active',\n enrolled_before: requestedStartDate,\n expired_after: requestedEndDate,\n 'plan.fee_schedules': feeScheduleProgram.fee_schedule.id,\n sort: '-enrolled_at',\n }\n\n const responseInsurances = await coreApi.query('insurance', queryInsuranceParams);\n const insurances = responseInsurances?.data?.data;\n\n await createServiceAuthorization({\n state: draft ? 'draft' : 'requested',\n requested_starts_at: requestedStartDate,\n requested_ends_at: requestedEndDate,\n ...(\n fspUtils.isCostPaymentType(feeScheduleProgram.payment_type) ?\n { requested_cents: amountRequested } : { requested_unit_amount: parseInt(amountRequested) }\n ),\n case: createdCaseOrExistingAR.id,\n fee_schedule_program: feeScheduleProgram.id,\n requester: currentEmployee.id,\n insurance: insurances[0].id,\n person: person.id,\n clinical_modifications: icd10Codes,\n });\n authorizationCreated = true;\n }\n\n result.cases.push(createdCaseOrExistingAR);\n } catch (err) {\n result.shippingDetail[i].error = `Error creating the Case: ${createErrorMessage(err)}`;\n continue;\n }\n }\n\n uploadDocuments(referral, createdCaseOrExistingAR);\n\n let state;\n if (draft) {\n state = 'draft';\n } else if (referralIsOON(referral)) {\n state = 'off_platform';\n } else if (authorizationCreated) {\n state = 'pending_authorization';\n } else {\n state = 'sent';\n }\n\n if (hint542SupersetUnlistedPrograms && isUnlistedProgram(programData)) {\n const createNoteForUnlistedProgramValues = {\n subjectType: 'case',\n subject: createdCaseOrExistingAR.id,\n employee: currentEmployee.id,\n visibility: 'public',\n category: 'external_provider',\n text: `Referred off platform to ${programData.name}`,\n };\n\n const missingNoteValues = validateRequiredValues('note', createNoteForUnlistedProgramValues);\n if (missingNoteValues.length) {\n result.shippingDetail[i].error = `The following fields for the unlisted program are required: ${missingNoteValues.join(', ')}`;\n continue;\n }\n\n try {\n createNote(createNoteForUnlistedProgramValues);\n const noteReferral = {index: i, sent: true};\n result.referrals.push(noteReferral);\n let item = result.shippingDetail.find(item => item.index === i);\n if (item) item.sent = true;\n } catch (err) {\n result.shippingDetail[i].error = \"Error creating the note on the case for the unlisted program\";\n continue;\n }\n } else {\n const referralValues = {\n state,\n case: createdCaseOrExistingAR.id,\n is_grouped: isGrouped,\n receiving_program: programData.id,\n receiving_provider: programData.provider.id,\n receiving_network: referral.network.id,\n sending_provider: referral.sendingProvider.id,\n sending_network: referral.network.id,\n };\n\n const missingReferralValues = validateRequiredValues('referral', referralValues);\n if (missingReferralValues.length) {\n result.shippingDetail[i].error = `The following fields for the referral are required: ${missingReferralValues.join(', ')}`;\n continue;\n }\n\n try {\n const responseReferral = await createReferral(referralValues);\n\n result.referrals.push(responseReferral.data.data);\n let item = result.shippingDetail.find(item => item.index === i);\n if (item) item.sent = true;\n createdReferrals.push(responseReferral.data.data);\n } catch (err) {\n result.shippingDetail[i].error = `Error creating the Referral: ${createErrorMessage(err)}`;\n continue;\n }\n }\n }\n // From one referral multiple referrals could be created (grouped referrals)\n const referralData = await referralToConsent({\n originalReferral: referral,\n createdReferrals,\n });\n if (referralData) result.referralsToConsent.push(referralData);\n }\n } catch (err) {\n result.shippingDetail[i].error = `Unexpected error: ${err.message}`;\n }\n }\n return result;\n };\n\n const updateDraftReferralCrtb1239 = async (referral) => {\n try {\n const [caseRequestResponse, referralsRequestResponse] = await Promise.all([\n coreApi.findRecord('case', referral.case.id),\n coreApi.query('referral', { case: referral.case.id }),\n ]);\n\n const oldCase = get(caseRequestResponse, 'data.data', null);\n const oldReferrals = get(referralsRequestResponse, 'data.data', null);\n\n const serviceTypeChanged = referral.service.id !== oldCase.service_type.id;\n const descriptionChanged = referral.description && referral.description !== oldCase.description;\n\n const serviceCasePayload = {\n ...(serviceTypeChanged && { service: { id: referral.service.id } }),\n ...(descriptionChanged && { description: referral.description }),\n };\n\n const caseResponse = isEmpty(serviceCasePayload) ? oldCase : await updateCase(referral.case.id, serviceCasePayload);\n\n uploadDocuments(referral, oldCase);\n\n const referralsToDelete = [];\n oldReferrals.forEach((r) => {\n referralsToDelete.push(coreApi.deleteRecord('referral', r.id));\n });\n\n if (referralsToDelete.length) {\n await Promise.all(referralsToDelete);\n }\n\n const formRecipientsIds = map(referral.programs, (r) => ({\n provider_id: r.provider.id,\n network: referral.network,\n program_id: r.id,\n }));\n\n const createReferralPromises = [];\n formRecipientsIds.forEach((r) => {\n const newReferral = createReferral({\n state: 'sent',\n case: oldCase.id,\n receiving_program: r.program_id,\n receiving_provider: r.provider_id,\n receiving_network: r.network.id,\n sending_provider: oldCase.provider.id,\n sending_network: oldCase.network.id,\n });\n\n createReferralPromises.push(newReferral);\n });\n\n const referralsResponse = await Promise.all(createReferralPromises);\n\n return {\n cases: [(caseResponse?.data?.data) ? caseResponse?.data?.data : oldCase],\n referrals: referralsResponse.map((referralResponse) => referralResponse?.data?.data),\n };\n } catch (err) {\n CALLBACKS.notify.error(\"Error updating the Draft Referral\");\n throw err;\n }\n }\n\n const updateServiceAuthorizationHandler = async (referral, options = { draft: false }) => {\n const feeScheduleProgram = referral.programs[0].fee_schedule_program;\n\n const serviceStart = referral?.paymentAuthForm?.service_start;\n let requestedStartDate = serviceStart && moment.unix(serviceStart).toISOString();\n const serviceEnd = referral?.paymentAuthForm?.service_end;\n let requestedEndDate = serviceEnd && moment.unix(serviceEnd).toISOString();\n\n if (pays5590RefactorInsuranceFilters) {\n requestedStartDate = serviceStart && moment(requestedStartDate).add(1, 'day').toISOString();\n requestedEndDate = serviceEnd && moment(requestedEndDate).subtract(1, 'day').toISOString();\n }\n\n const amountRequested = referral.paymentAuthForm.amount_requested;\n\n const queryInsuranceParams = {\n person: person.id,\n state: 'active',\n enrolled_before: requestedStartDate,\n expired_after: requestedEndDate,\n 'plan.fee_schedules': feeScheduleProgram.fee_schedule.id,\n sort: '-enrolled_at',\n }\n\n const responseInsurances = await coreApi.query('insurance', queryInsuranceParams);\n const insurances = responseInsurances?.data?.data;\n\n await updateServiceAuthorization(referral.case.service_authorization.id, {\n ...(options.draft ? {} : { state: 'requested' }),\n requested_starts_at: requestedStartDate,\n requested_ends_at: requestedEndDate,\n ...(\n fspUtils.isCostPaymentType(feeScheduleProgram.payment_type) ?\n { requested_cents: amountRequested } : { requested_unit_amount: parseInt(amountRequested) }\n ),\n requester: currentEmployee.id,\n insurance: insurances[0].id,\n person: person.id,\n });\n }\n\n const updateDraftReferral = async (referral, draft) => {\n try {\n const promises = [\n updateCase(referral.case.id, {\n description: referral.description,\n })\n ];\n\n const isAuthRequired = get(referral, 'programs[0].fee_schedule_program.authorization_required', false);\n\n if(!draft) {\n let newState;\n if (referralIsOON(referral)) {\n newState = 'off_platform';\n } else if (isAuthRequired) {\n newState = 'pending_authorization';\n } else {\n newState = 'sent';\n }\n promises.push(updateReferral(referral.id, {\n state: newState,\n }));\n }\n\n if(isAuthRequired) {\n promises.push(updateServiceAuthorizationHandler(referral, { draft }));\n }\n\n const responses = await Promise.all(\n promises\n );\n\n return {\n referrals: draft ? [] : [responses[1].data.data],\n cases: [responses[0].data.data],\n }\n } catch (err) {\n CALLBACKS.notify.error(\"Error updating the Draft Referral\");\n throw err;\n }\n }\n\n return async ({ draft = false, latestResponses } = {}) => {\n let response = {\n referralsToConsent: [],\n };\n\n response = await createReferrals({ referrals, person, draft });\n\n if (formResponses || latestResponses) {\n await submitAssessments({ cases: response.cases, latestResponses });\n }\n\n return {\n cases: response.cases,\n referrals: response.referrals,\n shippingDetail: response.shippingDetail,\n referralsToConsent: response.referralsToConsent,\n };\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"useCreateReferrals.js","names":["get","map","isEmpty","moment","fspUtils","isUnlistedProgram","referralIsOON","referralIsGrouped","useCreateRecord","useUpdateRecord","CALLBACKS","coreApi","useAppCreateReferralContext","useFeatureFlag","referralToConsent","formatShortDate2FromTimestamp","validateRequiredValues","type","values","requiredFields","filter","field","useCreateReferrals","state","currentEmployee","formResponses","person","referrals","formSubmissionId","assistanceRequestId","screeningId","hint542SupersetUnlistedPrograms","pays5590RefactorInsuranceFilters","showClientNeed","createRecord","createReferral","createCase","createServiceAuthorization","createFormSubmission","createNote","updateRecord","updateReferral","updateCase","updateServiceAuthorization","createErrorMessage","error","response","data","errors","title","join","uploadDocuments","referral","caseToUploadDoc","attachableDocuments","filteredDocuments","doc","attached","attachedDocuments","ad","document","id","attachDocumentsToResource","setRelationship","relationshipModel","value","a","uploadPromises","Promise","all","uploadedDocuments","uploadDocumentsToResource","d","uploadFile","file","submitAssessments","_ref","cases","latestResponses","promises","serviceCase","assessment","_assessment$form","form","service_type_ids","includes","service","push","context","contextType","provider","responses","submitter","then","catch","err","notify","createReferrals","_ref2","draft","result","shippingDetail","referralsToConsent","groupedReferrals","some","r","length","i","index","sent","caseId","_referrals$i$case","resultDraft","undefined","case","service_authorization","updateDraftReferralCrtb1239","updateDraftReferral","item","find","referralData","originalReferral","createdReferrals","referredToPrograms","isGrouped","isOON","createdCaseOrExistingAR","authorizationCreated","j","programData","_referral$client_need","_referral$primaryWork","caseValues","_objectSpread","description","person_conditions","client_need","sendingProvider","network","primaryWorker","primary_worker","originating_form_submission","screening2_id","missingCaseValues","Error","concat","opened_date","caseResponse","_referral$client_need2","arCase","payload","client_need_id","feeScheduleProgram","programs","fee_schedule_program","authorization_required","_referral$paymentAuth","_referral$paymentAuth2","_responseInsurances$d","serviceStart","paymentAuthForm","service_start","requestedStartDate","unix","toISOString","serviceEnd","service_end","requestedEndDate","add","subtract","amountRequested","amount_requested","icd10Codes","icd10_code","queryInsuranceParams","enrolled_before","expired_after","fee_schedule","sort","responseInsurances","query","insurances","requested_starts_at","requested_ends_at","isCostPaymentType","payment_type","requested_cents","requested_unit_amount","parseInt","requester","insurance","clinical_modifications","createNoteForUnlistedProgramValues","subjectType","subject","employee","visibility","category","text","name","missingNoteValues","noteReferral","referralIndex","referralValues","is_grouped","receiving_program","receiving_provider","receiving_network","sending_provider","sending_network","missingReferralValues","responseReferral","message","_caseResponse$data","_caseResponse$data2","caseRequestResponse","referralsRequestResponse","findRecord","oldCase","oldReferrals","serviceTypeChanged","service_type","descriptionChanged","serviceCasePayload","referralsToDelete","forEach","deleteRecord","formRecipientsIds","provider_id","program_id","createReferralPromises","newReferral","referralsResponse","referralResponse","_referralResponse$dat","updateServiceAuthorizationHandler","_referral$paymentAuth3","_referral$paymentAuth4","_responseInsurances$d2","options","arguments","isAuthRequired","newState"],"sources":["../../src/hooks/useCreateReferrals.js"],"sourcesContent":["import { get, map, isEmpty } from 'lodash';\nimport moment from 'moment';\nimport fspUtils from '@unite-us/client-utils/dist/utils/feeSchedulePrograms';\nimport { isUnlistedProgram, referralIsOON, referralIsGrouped } from '../pages/builder/utils';\nimport { useCreateRecord, useUpdateRecord } from '../api/ApiHooks';\nimport { CALLBACKS, coreApi } from '../api/config';\nimport { useAppCreateReferralContext } from '../context/AppCreateReferralProvider';\nimport { useFeatureFlag } from '../utils/useFeatureFlag';\nimport referralToConsent from '../utils/referralToConsent';\nimport { formatShortDate2FromTimestamp } from '../components/service_authorization/formatShortDate';\n\nconst validateRequiredValues = (type, values) => {\n let requiredFields = [];\n if (type === 'case') {\n requiredFields = ['description', 'service', 'provider', 'network', 'person'];\n } else if (type === 'note') {\n requiredFields = ['subjectType', 'subject', 'visibility', 'text'];\n } else if (type === 'referral') {\n requiredFields = ['case', 'receiving_program', 'receiving_provider', 'receiving_network', 'sending_provider', 'sending_network'];\n }\n\n return requiredFields.filter(field => !values[field]);\n};\n\nexport default function useCreateReferrals() {\n const {\n state: {\n currentEmployee,\n formResponses,\n person,\n referrals,\n formSubmissionId,\n assistanceRequestId,\n screeningId,\n }\n } = useAppCreateReferralContext();\n\n const hint542SupersetUnlistedPrograms = useFeatureFlag('hint542SupersetUnlistedPrograms', false);\n const pays5590RefactorInsuranceFilters = useFeatureFlag('pays5590RefactorInsuranceFilters', false);\n const showClientNeed = useFeatureFlag('crtb2130MultipleClientNeeds', false);\n\n const { createRecord: createReferral } = useCreateRecord('referral');\n const { createRecord: createCase } = useCreateRecord('case');\n const { createRecord: createServiceAuthorization } = useCreateRecord('service_authorization');\n const { createRecord: createFormSubmission } = useCreateRecord('form_submission');\n const { createRecord: createNote } = useCreateRecord('note');\n const { updateRecord: updateReferral } = useUpdateRecord('referral');\n const { updateRecord: updateCase } = useUpdateRecord('case');\n const { updateRecord: updateServiceAuthorization } = useUpdateRecord('service_authorization');\n\n const createErrorMessage = (error) => {\n return error.response.data.errors.map((error) => error.title).join(', ');\n }\n\n const uploadDocuments = ((referral, caseToUploadDoc) => {\n const attachableDocuments = get(referral, 'attachableDocuments', []);\n const filteredDocuments = attachableDocuments.filter((doc) => doc.attached === true);\n const attachedDocuments = filteredDocuments.map((ad) => ({\n title: ad.document.title,\n id: ad.document.id,\n }));\n\n if(!isEmpty(attachedDocuments)) {\n const attachDocumentsToResource = () => (\n coreApi.setRelationship(\n 'case',\n caseToUploadDoc.id,\n { relationshipModel: 'file_upload', value: attachedDocuments.map((a) => a.id) },\n )\n );\n\n const uploadPromises = !isEmpty(attachedDocuments) && attachDocumentsToResource();\n\n Promise.all([uploadPromises]);\n }\n\n const uploadedDocuments = get(referral, 'attachments', []);\n\n if (!isEmpty(uploadedDocuments)) {\n const uploadDocumentsToResource = () => (\n uploadedDocuments.map((d) => coreApi.uploadFile('case', caseToUploadDoc.id, d.file))\n );\n\n const uploadPromises = uploadDocumentsToResource();\n Promise.all([\n ...(uploadPromises || []),\n ]);\n }\n });\n\n const submitAssessments = ({ cases, latestResponses }) => {\n let promises = [];\n map(cases, (serviceCase) => {\n map((latestResponses || formResponses), (assessment) => {\n if (!isEmpty(assessment) && assessment.form?.service_type_ids?.includes(serviceCase.service.id)) {\n promises.push(createFormSubmission({\n context: serviceCase.id,\n contextType: 'case',\n form: assessment.form.id,\n provider: serviceCase.provider.id,\n responses: assessment.responses,\n submitter: currentEmployee.id,\n }));\n }\n });\n });\n\n return Promise.all(promises).then((responses) => {\n return responses;\n }).catch(err => {\n CALLBACKS.notify.error(\"Error submitting Assessments\");\n throw err;\n });\n };\n\n const createReferrals = async ({ referrals, person, draft }) => {\n const result = {\n referrals: [],\n cases: [],\n shippingDetail: [],\n referralsToConsent: [],\n };\n\n let groupedReferrals = referrals.some(r => get(r, 'programs', []).length > 1);\n\n for (let i = 0; i < referrals.length; i += 1) {\n result.shippingDetail.push({ index: i, sent: false, error: null, caseId: null });\n\n try {\n if (referrals[i].state === \"draft\") {\n let resultDraft = undefined;\n if (isEmpty(referrals[i].case?.service_authorization)) {\n resultDraft = await updateDraftReferralCrtb1239(referrals[i]);\n } else {\n resultDraft = await updateDraftReferral(referrals[i], draft);\n }\n\n let item = result.shippingDetail.find(item => item.index === i);\n if (item) item.sent = true;\n result.cases.push(resultDraft.cases[0]);\n result.referrals.push(...resultDraft.referrals);\n\n // From one draft multiple referrals could be created (grouped referrals)\n const referralData = await referralToConsent({\n originalReferral: referrals[i],\n createdReferrals: resultDraft.referrals,\n });\n if (referralData) result.referralsToConsent.push(referralData);\n } else {\n const referral = referrals[i];\n const referredToPrograms = get(referral, 'programs', []);\n const isGrouped = referralIsGrouped(referral);\n const isOON = referralIsOON(referral);\n\n let createdCaseOrExistingAR = null;\n let authorizationCreated = false;\n\n const createdReferrals = [];\n for (let j = 0; j < referredToPrograms.length; j += 1) {\n const programData = referredToPrograms[j];\n\n if ((groupedReferrals && !createdCaseOrExistingAR) || !groupedReferrals) {\n let caseValues = {\n description: referral.description,\n state: referralIsOON(referral) ? 'off_platform' : 'draft',\n person_conditions: referral.client_need?.map(id => ({ id, type: 'person_condition' })) || [],\n person: person.id,\n provider: referral.sendingProvider.id,\n network: referral.network.id,\n service: referral.service.id,\n ...(referral.primaryWorker?.id ? { primary_worker: referral.primaryWorker.id } : null),\n ...(formSubmissionId ? { originating_form_submission: formSubmissionId } : null),\n ...(screeningId ? { screening2_id: screeningId } : null),\n };\n\n const missingCaseValues = validateRequiredValues('case', caseValues);\n if (missingCaseValues.length) {\n throw new Error(`The following fields for the case are required: ${missingCaseValues.join(', ')}`);\n }\n\n if (isOON) {\n caseValues = { ...caseValues, opened_date: formatShortDate2FromTimestamp(referral.opened_date) };\n }\n\n try {\n let caseResponse;\n if (assistanceRequestId && i === 0) {\n const arCase = get(assistanceRequestId, 'case', null);\n let payload = {\n description: referral.description,\n network: referral.network.id,\n };\n\n if (referral.service.id && (get(arCase, 'service.id') !== referral.service.id)) {\n payload = { ...payload, service: referral.service.id };\n }\n\n if (isOON) {\n payload = {\n ...payload,\n primary_worker: referral.primaryWorker.id,\n state: 'off_platform',\n opened_date: formatShortDate2FromTimestamp(referral.opened_date),\n };\n }\n\n if (showClientNeed && referral.client_need?.id) {\n payload.client_need_id = referral.client_need.id;\n }\n\n caseResponse = await updateCase(arCase.id, payload);\n } else {\n caseResponse = await createCase(caseValues);\n }\n createdCaseOrExistingAR = get(caseResponse, 'data.data', {});\n\n const feeScheduleProgram = referral.programs[0].fee_schedule_program;\n\n let item = result.shippingDetail.find(item => item.index === i);\n if (item) item.caseId = createdCaseOrExistingAR.id;\n\n if (feeScheduleProgram?.authorization_required) {\n const serviceStart = referral?.paymentAuthForm?.service_start;\n let requestedStartDate = serviceStart && moment.unix(serviceStart).toISOString();\n const serviceEnd = referral?.paymentAuthForm?.service_end;\n let requestedEndDate = serviceEnd && moment.unix(serviceEnd).toISOString();\n\n if (pays5590RefactorInsuranceFilters) {\n requestedStartDate = serviceStart && moment(requestedStartDate).add(1, 'day').toISOString();\n requestedEndDate = serviceEnd && moment(requestedEndDate).subtract(1, 'day').toISOString();\n }\n\n const amountRequested = referral.paymentAuthForm.amount_requested;\n const icd10Codes = referral.paymentAuthForm.icd10_code.id ?\n [referral.paymentAuthForm.icd10_code.id] : [];\n\n const queryInsuranceParams = {\n person: person.id,\n state: 'active',\n enrolled_before: requestedStartDate,\n expired_after: requestedEndDate,\n 'plan.fee_schedules': feeScheduleProgram.fee_schedule.id,\n sort: '-enrolled_at',\n }\n\n const responseInsurances = await coreApi.query('insurance', queryInsuranceParams);\n const insurances = responseInsurances?.data?.data;\n\n await createServiceAuthorization({\n state: draft ? 'draft' : 'requested',\n requested_starts_at: requestedStartDate,\n requested_ends_at: requestedEndDate,\n ...(\n fspUtils.isCostPaymentType(feeScheduleProgram.payment_type) ?\n { requested_cents: amountRequested } : { requested_unit_amount: parseInt(amountRequested) }\n ),\n case: createdCaseOrExistingAR.id,\n fee_schedule_program: feeScheduleProgram.id,\n requester: currentEmployee.id,\n insurance: insurances[0].id,\n person: person.id,\n clinical_modifications: icd10Codes,\n });\n authorizationCreated = true;\n }\n\n result.cases.push(createdCaseOrExistingAR);\n } catch (err) {\n result.shippingDetail[i].error = `Error creating the Case: ${createErrorMessage(err)}`;\n continue;\n }\n }\n\n uploadDocuments(referral, createdCaseOrExistingAR);\n\n let state;\n if (draft) {\n state = 'draft';\n } else if (referralIsOON(referral)) {\n state = 'off_platform';\n } else if (authorizationCreated) {\n state = 'pending_authorization';\n } else {\n state = 'sent';\n }\n\n if (hint542SupersetUnlistedPrograms && isUnlistedProgram(programData)) {\n const createNoteForUnlistedProgramValues = {\n subjectType: 'case',\n subject: createdCaseOrExistingAR.id,\n employee: currentEmployee.id,\n visibility: 'public',\n category: 'external_provider',\n text: `Referred off platform to ${programData.name}`,\n };\n\n const missingNoteValues = validateRequiredValues('note', createNoteForUnlistedProgramValues);\n if (missingNoteValues.length) {\n result.shippingDetail[i].error = `The following fields for the unlisted program are required: ${missingNoteValues.join(', ')}`;\n continue;\n }\n\n try {\n createNote(createNoteForUnlistedProgramValues);\n const noteReferral = { index: i, sent: true, referralIndex: i };\n result.referrals.push(noteReferral);\n let item = result.shippingDetail.find(item => item.index === i);\n if (item) item.sent = true;\n } catch (err) {\n result.shippingDetail[i].error = \"Error creating the note on the case for the unlisted program\";\n continue;\n }\n } else {\n const referralValues = {\n state,\n case: createdCaseOrExistingAR.id,\n is_grouped: isGrouped,\n receiving_program: programData.id,\n receiving_provider: programData.provider.id,\n receiving_network: referral.network.id,\n sending_provider: referral.sendingProvider.id,\n sending_network: referral.network.id,\n };\n\n const missingReferralValues = validateRequiredValues('referral', referralValues);\n if (missingReferralValues.length) {\n result.shippingDetail[i].error = `The following fields for the referral are required: ${missingReferralValues.join(', ')}`;\n continue;\n }\n\n try {\n const responseReferral = await createReferral(referralValues);\n\n result.referrals.push({\n ...responseReferral.data.data,\n referralIndex: i,\n });\n let item = result.shippingDetail.find(item => item.index === i);\n if (item) item.sent = true;\n createdReferrals.push(responseReferral.data.data);\n } catch (err) {\n result.shippingDetail[i].error = `Error creating the Referral: ${createErrorMessage(err)}`;\n continue;\n }\n }\n }\n // From one referral multiple referrals could be created (grouped referrals)\n const referralData = await referralToConsent({\n originalReferral: referral,\n createdReferrals,\n });\n if (referralData) result.referralsToConsent.push(referralData);\n }\n } catch (err) {\n result.shippingDetail[i].error = `Unexpected error: ${err.message}`;\n }\n }\n return result;\n };\n\n const updateDraftReferralCrtb1239 = async (referral) => {\n try {\n const [caseRequestResponse, referralsRequestResponse] = await Promise.all([\n coreApi.findRecord('case', referral.case.id),\n coreApi.query('referral', { case: referral.case.id }),\n ]);\n\n const oldCase = get(caseRequestResponse, 'data.data', null);\n const oldReferrals = get(referralsRequestResponse, 'data.data', null);\n\n const serviceTypeChanged = referral.service.id !== oldCase.service_type.id;\n const descriptionChanged = referral.description && referral.description !== oldCase.description;\n\n const serviceCasePayload = {\n ...(serviceTypeChanged && { service: { id: referral.service.id } }),\n ...(descriptionChanged && { description: referral.description }),\n };\n\n const caseResponse = isEmpty(serviceCasePayload) ? oldCase : await updateCase(referral.case.id, serviceCasePayload);\n\n uploadDocuments(referral, oldCase);\n\n const referralsToDelete = [];\n oldReferrals.forEach((r) => {\n referralsToDelete.push(coreApi.deleteRecord('referral', r.id));\n });\n\n if (referralsToDelete.length) {\n await Promise.all(referralsToDelete);\n }\n\n const formRecipientsIds = map(referral.programs, (r) => ({\n provider_id: r.provider.id,\n network: referral.network,\n program_id: r.id,\n }));\n\n const createReferralPromises = [];\n formRecipientsIds.forEach((r) => {\n const newReferral = createReferral({\n state: 'sent',\n case: oldCase.id,\n receiving_program: r.program_id,\n receiving_provider: r.provider_id,\n receiving_network: r.network.id,\n sending_provider: oldCase.provider.id,\n sending_network: oldCase.network.id,\n });\n\n createReferralPromises.push(newReferral);\n });\n\n const referralsResponse = await Promise.all(createReferralPromises);\n\n return {\n cases: [(caseResponse?.data?.data) ? caseResponse?.data?.data : oldCase],\n referrals: referralsResponse.map((referralResponse) => referralResponse?.data?.data),\n };\n } catch (err) {\n CALLBACKS.notify.error(\"Error updating the Draft Referral\");\n throw err;\n }\n }\n\n const updateServiceAuthorizationHandler = async (referral, options = { draft: false }) => {\n const feeScheduleProgram = referral.programs[0].fee_schedule_program;\n\n const serviceStart = referral?.paymentAuthForm?.service_start;\n let requestedStartDate = serviceStart && moment.unix(serviceStart).toISOString();\n const serviceEnd = referral?.paymentAuthForm?.service_end;\n let requestedEndDate = serviceEnd && moment.unix(serviceEnd).toISOString();\n\n if (pays5590RefactorInsuranceFilters) {\n requestedStartDate = serviceStart && moment(requestedStartDate).add(1, 'day').toISOString();\n requestedEndDate = serviceEnd && moment(requestedEndDate).subtract(1, 'day').toISOString();\n }\n\n const amountRequested = referral.paymentAuthForm.amount_requested;\n\n const queryInsuranceParams = {\n person: person.id,\n state: 'active',\n enrolled_before: requestedStartDate,\n expired_after: requestedEndDate,\n 'plan.fee_schedules': feeScheduleProgram.fee_schedule.id,\n sort: '-enrolled_at',\n }\n\n const responseInsurances = await coreApi.query('insurance', queryInsuranceParams);\n const insurances = responseInsurances?.data?.data;\n\n await updateServiceAuthorization(referral.case.service_authorization.id, {\n ...(options.draft ? {} : { state: 'requested' }),\n requested_starts_at: requestedStartDate,\n requested_ends_at: requestedEndDate,\n ...(\n fspUtils.isCostPaymentType(feeScheduleProgram.payment_type) ?\n { requested_cents: amountRequested } : { requested_unit_amount: parseInt(amountRequested) }\n ),\n requester: currentEmployee.id,\n insurance: insurances[0].id,\n person: person.id,\n });\n }\n\n const updateDraftReferral = async (referral, draft) => {\n try {\n const promises = [\n updateCase(referral.case.id, {\n description: referral.description,\n })\n ];\n\n const isAuthRequired = get(referral, 'programs[0].fee_schedule_program.authorization_required', false);\n\n if(!draft) {\n let newState;\n if (referralIsOON(referral)) {\n newState = 'off_platform';\n } else if (isAuthRequired) {\n newState = 'pending_authorization';\n } else {\n newState = 'sent';\n }\n promises.push(updateReferral(referral.id, {\n state: newState,\n }));\n }\n\n if(isAuthRequired) {\n promises.push(updateServiceAuthorizationHandler(referral, { draft }));\n }\n\n const responses = await Promise.all(\n promises\n );\n\n return {\n referrals: draft ? [] : [responses[1].data.data],\n cases: [responses[0].data.data],\n }\n } catch (err) {\n CALLBACKS.notify.error(\"Error updating the Draft Referral\");\n throw err;\n }\n }\n\n return async ({ draft = false, latestResponses } = {}) => {\n let response = {\n referralsToConsent: [],\n };\n\n response = await createReferrals({ referrals, person, draft });\n\n if (formResponses || latestResponses) {\n await submitAssessments({ cases: response.cases, latestResponses });\n }\n\n return {\n cases: response.cases,\n referrals: response.referrals,\n shippingDetail: response.shippingDetail,\n referralsToConsent: response.referralsToConsent,\n };\n };\n};\n"],"mappings":"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","ignoreList":[]}
|