diff --git a/cypress/e2e/characteristics.spec.js b/cypress/e2e/characteristics.spec.js
index eed44c46b5..f3fa4cc0cb 100644
--- a/cypress/e2e/characteristics.spec.js
+++ b/cypress/e2e/characteristics.spec.js
@@ -1,16 +1,6 @@
-import { aliasQuery } from '../support/graphql-test-utils';
-
describe('The Model Plan General Characteristics Form', () => {
beforeEach(() => {
cy.localLogin({ name: 'MINT', role: 'MINT_USER_NONPROD' });
-
- cy.intercept('POST', '/api/graph/query', req => {
- aliasQuery(req, 'GetGeneralCharacteristics');
- aliasQuery(req, 'GetKeyCharacteristics');
- aliasQuery(req, 'GetInvolvements');
- aliasQuery(req, 'GetTargetsAndOptions');
- aliasQuery(req, 'GetAuthority');
- });
});
it('completes a Model Plan Characteristics', () => {
@@ -19,19 +9,14 @@ describe('The Model Plan General Characteristics Form', () => {
// Clicks the General Charactstics tasklist item
cy.get('[data-testid="characteristics"]').click();
+ // Page - /characteristics
+
cy.location().should(loc => {
expect(loc.pathname).to.match(
/\/models\/.{36}\/task-list\/characteristics/
);
});
- // Page - /characteristics
-
- cy.wait('@GetGeneralCharacteristics')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(100);
-
cy.get('[data-testid="model-plan-name"]').contains('for Empty Plan');
cy.get('#plan-characteristics-is-new-model-no')
@@ -74,13 +59,8 @@ describe('The Model Plan General Characteristics Form', () => {
// Page - /characteristics/key-charactertics
- cy.wait('@GetKeyCharacteristics')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(100);
-
cy.get('#plan-characteristics-alternative-payment-MIPS')
- .check({ force: true })
+ .should('not.be.disabled')
.check({ force: true })
.should('be.checked');
@@ -90,6 +70,7 @@ describe('The Model Plan General Characteristics Form', () => {
cy.get('#plan-characteristics-key-characteristics').within(() => {
cy.get("input[type='text']")
+ .should('not.be.disabled')
.type('payment')
.should('have.value', 'payment');
});
@@ -108,13 +89,8 @@ describe('The Model Plan General Characteristics Form', () => {
// Page - /characteristics/involvements
- cy.wait('@GetInvolvements')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(100);
-
cy.get('#plan-characteristics-care-coordination-involved')
- .check({ force: true })
+ .should('not.be.disabled')
.check({ force: true })
.should('be.checked');
@@ -148,12 +124,8 @@ describe('The Model Plan General Characteristics Form', () => {
// Page - /characteristics/targets-and-options
- cy.wait('@GetTargetsAndOptions')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(100);
-
cy.get('#plan-characteristics-geographies-targeted')
+ .should('not.be.disabled')
.check({ force: true })
.should('be.checked');
@@ -189,12 +161,8 @@ describe('The Model Plan General Characteristics Form', () => {
// Page - /characteristics/authority
- cy.wait('@GetAuthority')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(100);
-
cy.get('#plan-characteristics-rulemaking-required')
+ .should('not.be.disabled')
.check({ force: true })
.should('be.checked');
diff --git a/cypress/e2e/collaborator.spec.js b/cypress/e2e/collaborator.spec.js
index ce093fb9d0..3952f18bbe 100644
--- a/cypress/e2e/collaborator.spec.js
+++ b/cypress/e2e/collaborator.spec.js
@@ -28,8 +28,11 @@ describe('The Collaborator/Team Member Form', () => {
cy.get('#react-select-model-team-cedar-contact-input')
.click()
- .type('Jerry{enter}', { delay: 500 })
- .should('have.value', 'Jerry Seinfeld, SF13');
+ .type('Jerry', { delay: 1000 });
+
+ cy.get('#react-select-model-team-cedar-contact-option-0')
+ .contains('Jerry Seinfeld, SF13')
+ .click();
cy.contains('button', 'Add team member').should('be.disabled');
@@ -57,7 +60,10 @@ describe('The Collaborator/Team Member Form', () => {
cy.get('input').should('be.disabled');
- cy.get('select').select('Model Team').should('have.value', 'MODEL_TEAM');
+ cy.get('select')
+ .should('not.be.disabled')
+ .select('Model Team')
+ .should('have.value', 'MODEL_TEAM');
cy.contains('button', 'Update team member').click();
diff --git a/cypress/e2e/discussions.spec.js b/cypress/e2e/discussions.spec.js
index 9c19a64021..bb5adbe5ae 100644
--- a/cypress/e2e/discussions.spec.js
+++ b/cypress/e2e/discussions.spec.js
@@ -42,6 +42,7 @@ describe('Discussion Center', () => {
cy.contains('button', 'Save answer').should('be.disabled');
cy.get('#discussion-content')
+ .should('not.be.disabled')
.type('Model characteristics is located within the task list.')
.should(
'have.value',
diff --git a/cypress/e2e/filterGroups.spec.js b/cypress/e2e/filterGroups.spec.js
index 9b8ba9eb61..0291af38a7 100644
--- a/cypress/e2e/filterGroups.spec.js
+++ b/cypress/e2e/filterGroups.spec.js
@@ -42,6 +42,8 @@ describe('Filter Group in Read Only Sections', () => {
cy.get('#read-only-side-nav__wrapper').should('not.exist');
cy.get('.filtered-view-section--model-team').should('exist');
+ // Clear filter after viewing the CCW filtered group view
+
cy.get('[data-testid="group-filter-banner"]').within(() => {
cy.get('button').contains('Clear filter').click();
});
diff --git a/cypress/e2e/modelPlan.spec.js b/cypress/e2e/modelPlan.spec.js
index 155667f12a..8c4cfad823 100644
--- a/cypress/e2e/modelPlan.spec.js
+++ b/cypress/e2e/modelPlan.spec.js
@@ -1,20 +1,6 @@
-import { aliasQuery } from '../support/graphql-test-utils';
-import verifyStatus from '../support/verifyRequestStatus';
-
describe('The Model Plan Form', () => {
beforeEach(() => {
cy.localLogin({ name: 'MINT', role: 'MINT_USER_NONPROD' });
-
- cy.intercept('POST', '/api/graph/query', req => {
- aliasQuery(req, 'GetModelPlan');
- aliasQuery(req, 'GetIsCollaborator');
- aliasQuery(req, 'GetModelPlanBase');
- aliasQuery(req, 'GetModelCollaborators');
- aliasQuery(req, 'GetModelPlanInfo');
- aliasQuery(req, 'GetBasics');
- aliasQuery(req, 'GetMilestones');
- aliasQuery(req, 'GetAllModelPlans');
- });
});
it('fills out model plan name and creates plan', () => {
@@ -32,45 +18,31 @@ describe('The Model Plan Form', () => {
cy.contains('button', 'Next').click();
- cy.wait([
- '@GetIsCollaborator',
- '@GetModelPlanBase',
- '@GetModelCollaborators'
- ])
- .then(verifyStatus)
- .wait(500);
-
cy.location().should(loc => {
expect(loc.pathname).to.match(/\/models\/.{36}\/collaborators/);
});
- cy.get('[data-testid="continue-to-tasklist"]').click();
-
- cy.wait('@GetModelPlan')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
+ cy.get('[data-testid="page-loading"]').should('not.exist');
- cy.contains('h1', 'Model Plan task list');
+ cy.get('[data-testid="continue-to-tasklist"]').click();
// renames a model plan
cy.location().should(loc => {
expect(loc.pathname).to.match(/\/models\/.{36}\/task-list/);
});
+ cy.contains('h1', 'Model Plan task list');
+
cy.contains('h3', 'Model basics');
cy.contains('button', 'Start').click();
- cy.wait('@GetModelPlanInfo')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
cy.location().should(loc => {
expect(loc.pathname).to.match(/\/models\/.{36}\/task-list\/basics/);
});
+ cy.get('[data-testid="fieldset"]').should('not.be.disabled');
+
cy.get('#plan-basics-model-name')
.clear()
.type('Renamed Model Plan Name')
@@ -78,11 +50,6 @@ describe('The Model Plan Form', () => {
cy.contains('button', 'Save and return to task list').click();
- cy.wait('@GetModelPlan')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
cy.location().should(loc => {
expect(loc.pathname).to.match(/\/models\/.{36}\/task-list/);
});
@@ -94,10 +61,7 @@ describe('The Model Plan Form', () => {
cy.get('[data-testid="basics"]').click();
- cy.wait('@GetModelPlanInfo')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
+ cy.get('[data-testid="fieldset"]').should('not.be.disabled');
cy.get('#plan-basics-abbreviation').type('RMP').should('have.value', 'RMP');
@@ -119,17 +83,14 @@ describe('The Model Plan Form', () => {
cy.contains('button', 'Next').click();
- cy.wait('@GetBasics')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
cy.location().should(loc => {
expect(loc.pathname).to.match(
/\/models\/.{36}\/task-list\/basics\/overview/
);
});
+ cy.get('[data-testid="fieldset"]').should('not.be.disabled');
+
cy.get('#ModelType-Voluntary').check({ force: true }).should('be.checked');
cy.get('#ModelType-Problem')
@@ -149,17 +110,14 @@ describe('The Model Plan Form', () => {
cy.contains('button', 'Next').click();
- cy.wait('@GetMilestones')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
cy.location().should(loc => {
expect(loc.pathname).to.match(
/\/models\/.{36}\/task-list\/basics\/milestones/
);
});
+ cy.get('[data-testid="fieldset"]').should('not.be.disabled');
+
cy.contains('h3', 'Anticipated high level timeline');
cy.get('#Milestone-completeICIP')
@@ -202,11 +160,6 @@ describe('The Model Plan Form', () => {
cy.contains('button', 'Save and return to task list').click();
- cy.wait('@GetModelPlan')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
cy.location().should(loc => {
expect(loc.pathname).to.match(/\/models\/.{36}\/task-list/);
});
@@ -240,11 +193,6 @@ describe('The Model Plan Form', () => {
.should('be.not.disabled')
.click();
- cy.wait('@GetModelPlan')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
cy.location().should(loc => {
expect(loc.pathname).to.match(/\/models\/.{36}\/task-list/);
});
@@ -254,10 +202,7 @@ describe('The Model Plan Form', () => {
// favorites and unfavorites a model plan
cy.visit('/models');
- cy.wait('@GetAllModelPlans')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
+ cy.get('[data-testid="page-loading"]').should('not.exist');
cy.contains('tr', 'Empty Plan').get('[data-cy="favorited"]');
diff --git a/cypress/e2e/opsEvalAndLearning.spec.js b/cypress/e2e/opsEvalAndLearning.spec.js
index d00b302d87..2a209aa08f 100644
--- a/cypress/e2e/opsEvalAndLearning.spec.js
+++ b/cypress/e2e/opsEvalAndLearning.spec.js
@@ -6,15 +6,6 @@ describe('The Model Plan Ops Eval and Learning Form', () => {
cy.intercept('POST', '/api/graph/query', req => {
aliasQuery(req, 'GetModelPlan');
- aliasQuery(req, 'GetOpsEvalAndLearning');
- aliasQuery(req, 'GetIDDOC');
- aliasQuery(req, 'GetIDDOCTesting');
- aliasQuery(req, 'GetIDDOCMonitoring');
- aliasQuery(req, 'GetPerformance');
- aliasQuery(req, 'GetEvaluation');
- aliasQuery(req, 'GetCCWAndQuality');
- aliasQuery(req, 'GetDataSharing');
- aliasQuery(req, 'GetLearning');
});
});
@@ -29,18 +20,12 @@ describe('The Model Plan Ops Eval and Learning Form', () => {
// Clicks the Ops Eval and Learning tasklist item
cy.get('[data-testid="ops-eval-and-learning"]').click();
- cy.wait('@GetOpsEvalAndLearning')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
+ // Page - /ops-eval-and-learning
- cy.location().should(loc => {
- expect(loc.pathname).to.match(
- /\/models\/.{36}\/task-list\/ops-eval-and-learning/
- );
- });
+ cy.get('#ops-eval-and-learning-agency-or-state-help-YES_AGENCY_IAA').should(
+ 'not.be.disabled'
+ );
- // Page - /ops-eval-and-learning
cy.get('[data-testid="model-plan-name"]').contains('for Empty Plan');
cy.get('#ops-eval-and-learning-agency-or-state-help-YES_AGENCY_IAA')
@@ -89,11 +74,10 @@ describe('The Model Plan Ops Eval and Learning Form', () => {
// Page - /ops-eval-and-learning/iddoc
- cy.wait('@GetIDDOC').its('response.statusCode').should('eq', 200).wait(500);
+ cy.get('#ops-eval-and-learning-technical-contacts-identified-use-true')
+ .as('contacts')
+ .should('not.be.disabled');
- cy.get('#ops-eval-and-learning-technical-contacts-identified-use-true').as(
- 'contacts'
- );
cy.get('@contacts').check({ force: true });
cy.get('@contacts').should('be.checked');
@@ -120,10 +104,7 @@ describe('The Model Plan Ops Eval and Learning Form', () => {
// Page - /ops-eval-and-learning/iddoc-testing
- cy.wait('@GetIDDOCTesting')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
+ cy.get('#ops-eval-and-learning-uat-needs').should('not.be.disabled');
cy.get('#ops-eval-and-learning-uat-needs')
.type('Users to make sure this works correctly')
@@ -162,10 +143,7 @@ describe('The Model Plan Ops Eval and Learning Form', () => {
// Page - /ops-eval-and-learning/iddoc-monitoring
- cy.wait('@GetIDDOCMonitoring')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(200);
+ cy.get('#ops-eval-and-learning-eft-setup-true').should('not.be.disabled');
cy.get('#ops-eval-and-learning-fulltime-or-incremental-INCREMENTAL')
.check({ force: true })
@@ -196,10 +174,9 @@ describe('The Model Plan Ops Eval and Learning Form', () => {
// Page - /ops-eval-and-learning/performance
- cy.wait('@GetPerformance')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
+ cy.get('#ops-eval-and-learning-benchmark-performance-YES_RECONCILE').should(
+ 'not.be.disabled'
+ );
cy.get('#ops-eval-and-learning-benchmark-performance-YES_RECONCILE')
.check({ force: true })
@@ -245,10 +222,9 @@ describe('The Model Plan Ops Eval and Learning Form', () => {
// Page - /ops-eval-and-learning/evaluation
- cy.wait('@GetEvaluation')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
+ cy.get('#ops-eval-and-learning-evaluation-approach-OTHER').should(
+ 'not.be.disabled'
+ );
cy.get('#ops-eval-and-learning-evaluation-approach-OTHER')
.check({ force: true })
@@ -302,10 +278,7 @@ describe('The Model Plan Ops Eval and Learning Form', () => {
// Page - /ops-eval-and-learning/ccw-and-quality
- cy.wait('@GetCCWAndQuality')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
+ cy.get('#ops-eval-and-learning-send-files-true').should('not.be.disabled');
cy.get('#ops-eval-and-learning-send-files-true')
.check({ force: true })
@@ -331,10 +304,9 @@ describe('The Model Plan Ops Eval and Learning Form', () => {
// Page - /ops-eval-and-learning/data-sharing
- cy.wait('@GetDataSharing')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
+ cy.get('#ops-eval-and-learning-data-sharing-starts').should(
+ 'not.be.disabled'
+ );
cy.get('#ops-eval-and-learning-data-sharing-starts').select('Other');
@@ -382,10 +354,9 @@ describe('The Model Plan Ops Eval and Learning Form', () => {
// Page - /ops-eval-and-learning/learning
- cy.wait('@GetLearning')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
+ cy.get('#ops-eval-and-learning-learning-systems-OTHER').should(
+ 'not.be.disabled'
+ );
cy.get('#ops-eval-and-learning-learning-systems-OTHER')
.check({ force: true })
diff --git a/cypress/e2e/participantsAndProviders.spec.js b/cypress/e2e/participantsAndProviders.spec.js
index c043d8ca32..809309cc2f 100644
--- a/cypress/e2e/participantsAndProviders.spec.js
+++ b/cypress/e2e/participantsAndProviders.spec.js
@@ -1,47 +1,28 @@
-import { aliasQuery } from '../support/graphql-test-utils';
-
describe('The Model Plan Participants and Providers Form', () => {
beforeEach(() => {
cy.localLogin({ name: 'MINT', role: 'MINT_USER_NONPROD' });
-
- cy.intercept('POST', '/api/graph/query', req => {
- aliasQuery(req, 'GetModelPlan');
- aliasQuery(req, 'GetParticipantsAndProviders');
- aliasQuery(req, 'GetParticipantOptions');
- aliasQuery(req, 'GetCommunication');
- aliasQuery(req, 'GetCoordination');
- aliasQuery(req, 'GetProviderOptions');
- });
});
it('completes a Model Plan Participants and Providers', () => {
cy.clickPlanTableByName('Empty Plan');
- cy.wait('@GetModelPlan')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
// Clicks the Participants and Providers tasklist item
cy.get('[data-testid="participants-and-providers"]').click();
- cy.wait('@GetParticipantsAndProviders')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
+ // Page - /participants-and-providers
cy.location().should(loc => {
expect(loc.pathname).to.match(
/\/models\/.{36}\/task-list\/participants-and-providers/
);
});
-
- // Page - /participants-and-providers
cy.get('[data-testid="model-plan-name"]').contains('for Empty Plan');
- cy.get('#participants-and-providers-participants').within(() => {
- cy.get("input[type='text']").click();
- });
+ cy.get('#participants-and-providers-participants')
+ .should('not.be.disabled')
+ .within(() => {
+ cy.get("input[type='text']").click();
+ });
cy.get('[data-testid="option-MEDICARE_PROVIDERS"]')
.check({ force: true })
@@ -88,12 +69,8 @@ describe('The Model Plan Participants and Providers Form', () => {
// Page - /participants-and-providers/participant-options
- cy.wait('@GetParticipantOptions')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
cy.get('#participants-and-providers-expected-participants')
+ .should('not.be.disabled')
.invoke('val', 2345)
.trigger('change')
.should('have.value', 2345);
@@ -131,12 +108,8 @@ describe('The Model Plan Participants and Providers Form', () => {
// Page - /participants-and-providers/communication
- cy.wait('@GetCommunication')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
cy.get('#participants-and-providers-communication-method-IT_TOOL')
+ .should('not.be.disabled')
.as('communication')
.check({ force: true });
cy.get('@communication').should('be.checked');
@@ -161,12 +134,8 @@ describe('The Model Plan Participants and Providers Form', () => {
// Page - /participants-and-providers/coordination
- cy.wait('@GetCoordination')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
cy.get('#participants-and-providers-coordniate-work')
+ .should('not.be.disabled')
.check({ force: true })
.should('be.checked');
@@ -190,13 +159,8 @@ describe('The Model Plan Participants and Providers Form', () => {
// Page - /participants-and-providers/provider-options
- cy.wait('@GetProviderOptions')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
cy.get('#participants-and-providers-additional-frequency-OTHER')
- .check({ force: true })
+ .should('not.be.disabled')
.check({ force: true })
.should('be.checked');
@@ -247,11 +211,6 @@ describe('The Model Plan Participants and Providers Form', () => {
cy.contains('button', 'Save and return to task list').click();
- cy.wait('@GetModelPlan')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
cy.location().should(loc => {
expect(loc.pathname).to.match(/\/models\/.{36}\/task-list/);
});
diff --git a/cypress/e2e/payments.spec.js b/cypress/e2e/payments.spec.js
index 8dfa4a1726..9c0bbce9ba 100644
--- a/cypress/e2e/payments.spec.js
+++ b/cypress/e2e/payments.spec.js
@@ -1,44 +1,22 @@
-import { aliasQuery } from '../support/graphql-test-utils';
-
describe('The Model Plan Payment Form', () => {
beforeEach(() => {
cy.localLogin({ name: 'MINT', role: 'MINT_USER_NONPROD' });
-
- cy.intercept('POST', '/api/graph/query', req => {
- aliasQuery(req, 'GetModelPlan');
- aliasQuery(req, 'GetFunding');
- aliasQuery(req, 'GetClaimsBasedPayment');
- aliasQuery(req, 'GetAnticipateDependencies');
- aliasQuery(req, 'GetBeneficiaryCostSharing');
- aliasQuery(req, 'GetNonClaimsBasedPayment');
- aliasQuery(req, 'GetComplexity');
- aliasQuery(req, 'GetRecover');
- });
});
it('completes a Model Plan Ops Eval and Learning form', () => {
cy.clickPlanTableByName('Empty Plan');
- cy.wait('@GetModelPlan')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
// Clicks the Payment tasklist item
cy.get('[data-testid="payment"]').click();
// Page - /payment
- cy.wait('@GetFunding')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
cy.location().should(loc => {
expect(loc.pathname).to.match(/\/models\/.{36}\/task-list\/payment/);
});
cy.get('#payment-funding-source-PATIENT_PROTECTION_AFFORDABLE_CARE_ACT')
+ .should('not.be.disabled')
.check({ force: true })
.should('be.checked');
@@ -72,17 +50,14 @@ describe('The Model Plan Payment Form', () => {
// Page - /payment/claims-based-payment
- cy.wait('@GetClaimsBasedPayment')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
cy.location().should(loc => {
expect(loc.pathname).to.match(
/\/models\/.{36}\/task-list\/payment\/claims-based-payment/
);
});
+ cy.get('[data-testid="fieldset"').first().should('not.be.disabled');
+
cy.get('#payment-pay-claims').within(() => {
cy.get("input[type='text']").click();
});
@@ -115,11 +90,6 @@ describe('The Model Plan Payment Form', () => {
// Page - /payment/anticipating-dependencies
- cy.wait('@GetAnticipateDependencies')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
cy.location().should(loc => {
expect(loc.pathname).to.match(
/\/models\/.{36}\/task-list\/payment\/anticipating-dependencies/
@@ -127,6 +97,7 @@ describe('The Model Plan Payment Form', () => {
});
cy.get('#payment-creating-dependencies-between-services-true')
+ .should('not.be.disabled')
.check({ force: true })
.should('be.checked');
@@ -146,11 +117,6 @@ describe('The Model Plan Payment Form', () => {
// Page - /payment/beneficiary-cost-sharing
- cy.wait('@GetBeneficiaryCostSharing')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
cy.location().should(loc => {
expect(loc.pathname).to.match(
/\/models\/.{36}\/task-list\/payment\/beneficiary-cost-sharing/
@@ -158,6 +124,7 @@ describe('The Model Plan Payment Form', () => {
});
cy.get('#payment-beneficiary-cost-sharing')
+ .should('not.be.disabled')
.type('Bill in accounting')
.should('have.value', 'Bill in accounting');
@@ -177,17 +144,14 @@ describe('The Model Plan Payment Form', () => {
// Page - /payment/non-claims-based-payment
- cy.wait('@GetNonClaimsBasedPayment')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
cy.location().should(loc => {
expect(loc.pathname).to.match(
/\/models\/.{36}\/task-list\/payment\/non-claims-based-payment/
);
});
+ cy.get('[data-testid="fieldset"').first().should('not.be.disabled');
+
cy.get('#payment-nonclaims-payments').within(() => {
cy.get("input[type='text']").click();
});
@@ -222,11 +186,6 @@ describe('The Model Plan Payment Form', () => {
// Page - /payment/complexity
- cy.wait('@GetComplexity')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
cy.location().should(loc => {
expect(loc.pathname).to.match(
/\/models\/.{36}\/task-list\/payment\/complexity/
@@ -234,6 +193,7 @@ describe('The Model Plan Payment Form', () => {
});
cy.get('#payment-complexity-LOW')
+ .should('not.be.disabled')
.check({ force: true })
.should('be.checked');
@@ -263,11 +223,6 @@ describe('The Model Plan Payment Form', () => {
// Page - /payment/recover-payment
- cy.wait('@GetRecover')
- .its('response.statusCode')
- .should('eq', 200)
- .wait(500);
-
cy.location().should(loc => {
expect(loc.pathname).to.match(
/\/models\/.{36}\/task-list\/payment\/recover-payment/
@@ -275,6 +230,7 @@ describe('The Model Plan Payment Form', () => {
});
cy.get('#payment-recover-payment-true')
+ .should('not.be.disabled')
.check({ force: true })
.should('be.checked');
@@ -286,14 +242,14 @@ describe('The Model Plan Payment Form', () => {
.type('10/26/2028')
.should('have.value', '10/26/2028');
- cy.contains('button', 'Save and start next Model Plan section').should(
- 'not.exist'
- );
-
- // Uncomment the code below once IT Lead Experience is PROD
- // cy.contains('button', 'Continue to IT solutions and implementation status').click();
- // cy.location().should(loc => {
- // expect(loc.pathname).to.match(/\/models\/.{36}\/task-list\/it-solutions$/);
- // });
+ cy.contains(
+ 'button',
+ 'Continue to IT solutions and implementation status'
+ ).click();
+ cy.location().should(loc => {
+ expect(loc.pathname).to.match(
+ /\/models\/.{36}\/task-list\/it-solutions$/
+ );
+ });
});
});
diff --git a/cypress/support/model-plan-by-name.js b/cypress/support/model-plan-by-name.js
index 9a3ec7d4d2..18baf02c18 100644
--- a/cypress/support/model-plan-by-name.js
+++ b/cypress/support/model-plan-by-name.js
@@ -5,4 +5,5 @@ Cypress.Commands.add('clickPlanTableByName', name => {
cy.location().should(loc => {
expect(loc.pathname).to.match(/\/models\/.{36}\/task-list/);
});
+ cy.get('[data-testid="page-loading"]').should('not.exist');
});
diff --git a/src/components/AskAQuestion/index.test.tsx b/src/components/AskAQuestion/index.test.tsx
index 31f1a25355..a23a7e5106 100644
--- a/src/components/AskAQuestion/index.test.tsx
+++ b/src/components/AskAQuestion/index.test.tsx
@@ -3,7 +3,6 @@ import { Provider } from 'react-redux';
import { MemoryRouter, Route } from 'react-router-dom';
import { MockedProvider } from '@apollo/client/testing';
import { render, screen, waitFor } from '@testing-library/react';
-import userEvent from '@testing-library/user-event';
import configureMockStore from 'redux-mock-store';
import { ASSESSMENT } from 'constants/jobCodes';
@@ -110,13 +109,5 @@ describe('Ask a Question Component', () => {
expect(getByText('Type your question')).toBeInTheDocument();
});
-
- const feedbackField = screen.getByRole('textbox', {
- name: /Type your question/i
- });
-
- userEvent.type(feedbackField, 'Test feedback');
-
- expect(feedbackField).toHaveValue('Test feedback');
});
});
diff --git a/src/views/ModelPlan/CRTDL/AddCRTDL/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/CRTDL/AddCRTDL/__snapshots__/index.test.tsx.snap
index 695970f0d9..3ff0622aaf 100644
--- a/src/views/ModelPlan/CRTDL/AddCRTDL/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/CRTDL/AddCRTDL/__snapshots__/index.test.tsx.snap
@@ -234,19 +234,19 @@ exports[`Model Plan Add CR and TDL page matches snapshot 1`] = `
-
-
-
- Update a CR or TDL
-
-
+
+ Update a CR or TDL
+
+
+
{
window.scrollTo(0, 0);
}}
>
-
+
{
+
+
+ setErrors({})}
+ >
+ {!crtdlID ? t('addCRTDL') : t('updateCRTDL')}
+
+
-
- setErrors({})}
- >
- {!crtdlID ? t('addCRTDL') : t('updateCRTDL')}
-
-
>
);
diff --git a/src/views/ModelPlan/Collaborators/AddCollaborator/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/Collaborators/AddCollaborator/__snapshots__/index.test.tsx.snap
index 4f60f1d118..1ead4d19d6 100644
--- a/src/views/ModelPlan/Collaborators/AddCollaborator/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/Collaborators/AddCollaborator/__snapshots__/index.test.tsx.snap
@@ -29,212 +29,217 @@ exports[`Adding a collaborator page matches snapshot 1`] = `
{
UpdateModelPlanCollaboratorVariables
>(UpdateModelPlanCollaborator);
- const { data } = useQuery(GetModelPlanCollaborator, {
- variables: {
- id: collaboratorId
- },
- skip: !collaboratorId
- });
+ const { data, loading: queryLoading } = useQuery(
+ GetModelPlanCollaborator,
+ {
+ variables: {
+ id: collaboratorId
+ },
+ skip: !collaboratorId
+ }
+ );
const collaborator =
data?.planCollaboratorByID ?? ({ userAccount: {} } as CollaboratorFormType);
@@ -206,121 +215,125 @@ const Collaborators = () => {
window.scrollTo(0, 0);
}}
>
-
-
+
- {t('teamMemberName')}
-
-
- {flatErrors['userAccount.commonName']}
-
+
+ {t('teamMemberName')}
+
+
+ {flatErrors['userAccount.commonName']}
+
- {collaboratorId ? (
-
- ) : (
- <>
-
- {t('startTyping')}
-
-
- {
- setFieldValue(
- 'userAccount.commonName',
- oktaUser?.displayName
- );
- setFieldValue(
- 'userAccount.username',
- oktaUser?.username
- );
- }}
+ {collaboratorId ? (
+
- >
- )}
-
-
-
-
- {t('teamMemberRole')}
-
- {flatErrors.teamRole}
- ) => {
- setFieldValue('teamRole', e.target.value);
- }}
- >
-
- {`-${h('select')}-`}
-
- {Object.keys(teamRoles).map(role => {
- return (
-
+
- {translateTeamRole(teamRoles[role])}
-
- );
- })}
-
-
+ {t('startTyping')}
+
-
-
- {t('searchMemberInfo')}
-
-
+ {
+ setFieldValue(
+ 'userAccount.commonName',
+ oktaUser?.displayName
+ );
+ setFieldValue(
+ 'userAccount.username',
+ oktaUser?.username
+ );
+ }}
+ />
+ >
+ )}
+
-
-
- {!collaboratorId
- ? t('addTeamMemberButton')
- : t('updateTeamMember')}
-
- {(loading || updateLoading) && (
-
- )}
-
+
+ {t('teamMemberRole')}
+
+ {flatErrors.teamRole}
+
+ ) => {
+ setFieldValue('teamRole', e.target.value);
+ }}
+ >
+
+ {`-${h('select')}-`}
+
+ {Object.keys(teamRoles).map(role => {
+ return (
+
+ {translateTeamRole(teamRoles[role])}
+
+ );
+ })}
+
+
+
+
+
+ {t('searchMemberInfo')}
+
+
+
+
+
+ {!collaboratorId
+ ? t('addTeamMemberButton')
+ : t('updateTeamMember')}
+
+ {(loading || updateLoading) && (
+
+ )}
+
+
>
);
diff --git a/src/views/ModelPlan/Collaborators/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/Collaborators/__snapshots__/index.test.tsx.snap
index 4e8ca6a2d5..4aefd7b7c2 100644
--- a/src/views/ModelPlan/Collaborators/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/Collaborators/__snapshots__/index.test.tsx.snap
@@ -71,23 +71,24 @@ exports[`Collaborator/Team Member page w/table matches snapshot 1`] = `
Add team member
-
- No associated team members
-
-
-
-
+
+
+ Loading the page
+
{
DeleteModelPlanCollaborator
);
- const { error, data, refetch } = useQuery
(
+ const { error, data, refetch, loading } = useQuery(
GetModelPlanCollaborators,
{
variables: {
@@ -209,16 +210,18 @@ export const CollaboratorsContent = () => {
{t('addTeamMemberButton')}
- {collaborators.length === 0 ? (
-
- ) : (
-
- )}
+ {loading && }
+ {!loading &&
+ (collaborators.length === 0 ? (
+
+ ) : (
+
+ ))}
(
+ const { data, loading, error } = useQuery(
GetMostRecentRoleSelection
);
@@ -172,132 +173,135 @@ const QuestionAndReply = ({
window.scrollTo(0, 0);
}}
>
-
-
- {t('role')}
-
-
+
+
+
+ {t('role')}
+
+
- {t('roleInfo')}
+ {t('roleInfo')}
- {flatErrors.userRole}
+ {flatErrors.userRole}
- ) => {
- setFieldValue('userRole', e.target.value);
- }}
- >
-
- {`-${t('select')}-`}
-
- {Object.keys(DiscussionUserRole)
- .sort(sortOtherEnum)
- .map(role => {
- return (
-
- {t(`userRole.${role}`)}
-
- );
- })}
-
+ ) => {
+ setFieldValue('userRole', e.target.value);
+ }}
+ >
+
+ {`-${t('select')}-`}
+
+ {Object.keys(DiscussionUserRole)
+ .sort(sortOtherEnum)
+ .map(role => {
+ return (
+
+ {t(`userRole.${role}`)}
+
+ );
+ })}
+
- {values.userRole === DiscussionUserRole.NONE_OF_THE_ABOVE && (
-
-
- {t('enterDescription')}
-
-
-
- {flatErrors.userRoleDescription}
-
-
-
- )}
-
+ {values.userRole ===
+ DiscussionUserRole.NONE_OF_THE_ABOVE && (
+
+
+ {t('enterDescription')}
+
+
+
+ {flatErrors.userRoleDescription}
+
+
+
+ )}
+
-
-
- {renderType === 'question'
- ? t('typeQuestion')
- : t('typeAnswer')}
-
- {flatErrors.content}
-
-
-
- {
- if (closeModal) {
- closeModal();
- }
- if (
- discussionReplyID &&
- setDiscussionReplyID &&
- queryParams &&
- setInitQuestion
- ) {
- setDiscussionReplyID(null);
- queryParams.delete('discussionID');
- history.replace({
- search: queryParams.toString()
- });
- setInitQuestion(false);
- }
- if (
- renderType &&
- setDiscussionStatusMessage &&
- setDiscussionType
- ) {
- setDiscussionStatusMessage('');
- setDiscussionType('discussion');
- }
- }}
>
- {h('cancel')}
-
- setErrors({})}
- >
- {renderType === 'question' ? t('save') : t('saveAnswer')}
-
-
+
+ {renderType === 'question'
+ ? t('typeQuestion')
+ : t('typeAnswer')}
+
+ {flatErrors.content}
+
+
+
+ {
+ if (closeModal) {
+ closeModal();
+ }
+ if (
+ discussionReplyID &&
+ setDiscussionReplyID &&
+ queryParams &&
+ setInitQuestion
+ ) {
+ setDiscussionReplyID(null);
+ queryParams.delete('discussionID');
+ history.replace({
+ search: queryParams.toString()
+ });
+ setInitQuestion(false);
+ }
+ if (
+ renderType &&
+ setDiscussionStatusMessage &&
+ setDiscussionType
+ ) {
+ setDiscussionStatusMessage('');
+ setDiscussionType('discussion');
+ }
+ }}
+ >
+ {h('cancel')}
+
+ setErrors({})}
+ >
+ {renderType === 'question' ? t('save') : t('saveAnswer')}
+
+
+
>
);
diff --git a/src/views/ModelPlan/TaskList/Basics/Milestones/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/Basics/Milestones/__snapshots__/index.test.tsx.snap
index fa49635ff9..a372d9cf3f 100644
--- a/src/views/ModelPlan/TaskList/Basics/Milestones/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/Basics/Milestones/__snapshots__/index.test.tsx.snap
@@ -95,6 +95,1027 @@ exports[`Model Plan Documents page matches snapshot 1`] = `
+
diff --git a/src/views/ModelPlan/TaskList/Basics/Milestones/index.tsx b/src/views/ModelPlan/TaskList/Basics/Milestones/index.tsx
index 9aa50503be..baacd7eded 100644
--- a/src/views/ModelPlan/TaskList/Basics/Milestones/index.tsx
+++ b/src/views/ModelPlan/TaskList/Basics/Milestones/index.tsx
@@ -180,72 +180,72 @@ const Milestones = () => {
- {!loading && (
-
{
- handleFormSubmit();
- }}
- enableReinitialize
- validateOnBlur={false}
- validateOnChange={false}
- validateOnMount={false}
- innerRef={formikRef}
- >
- {(formikProps: FormikProps) => {
- const {
- errors,
- handleSubmit,
- setErrors,
- setFieldError,
- setFieldValue,
- validateForm,
- values
- } = formikProps;
- const flatErrors = flattenErrors(errors);
-
- const handleOnBlur = (
- e: React.ChangeEvent,
- field: string
- ) => {
- if (e.target.value === '') {
- setFieldValue(field, null);
- return;
- }
- try {
- setFieldValue(field, new Date(e.target.value).toISOString());
- delete errors[field as keyof InitialValueType];
- } catch (err) {
- setFieldError(field, generalT('validDate'));
- }
- };
- return (
- <>
- {Object.keys(errors).length > 0 && (
-
- {Object.keys(flatErrors).map(key => {
- return (
-
- );
- })}
-
- )}
-
-
+ >
+ );
+ }}
+
);
diff --git a/src/views/ModelPlan/TaskList/Basics/Overview/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/Basics/Overview/__snapshots__/index.test.tsx.snap
index d4d68c5855..9a01b0962e 100644
--- a/src/views/ModelPlan/TaskList/Basics/Overview/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/Basics/Overview/__snapshots__/index.test.tsx.snap
@@ -99,125 +99,174 @@ exports[`Model Plan Documents page matches snapshot 1`] = `
action="#"
class="tablet:grid-col-6 margin-top-6"
>
-
-
-
+
+ Voluntary
+
+
+
+
+
+ Mandatory
+
+
+
+
+
- Problem statement
-
-
-
-
-
+ Problem statement
+
+
+
+
+
+ Goal
+
+
+ Please include the high level goal of the program and a description of the project.
+
+
+
+
- Goal
-
-
+ Test Interventions
+
+
+
+
- Please include the high level goal of the program and a description of the project.
-
-
-
-
+
- Test Interventions
-
-
-
-
+
+ Back
+
+
+ Next
+
+
- Add an additional note
+ Save and return to task list
-
-
-
- Back
-
-
- Next
-
-
-
-
-
-
-
- Save and return to task list
-
+
{
window.scrollTo(0, 0);
}}
>
-
-
- {planBasicsT('modelType.question')}
-
- {flatErrors.modelType}
-
+
+
+
+ {planBasicsT('modelType.question')}
+
+ {flatErrors.modelType}
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
+
-
-
-
-
-
-
-
+
+
+
-
+
-
+
+ handleFormSubmit('back')}
+ >
+ {generalT('back')}
+
+ setErrors({})}
+ >
+ {generalT('next')}
+
+
handleFormSubmit('back')}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {generalT('back')}
+
+ {generalT('saveAndReturn')}
-
setErrors({})}
- >
- {generalT('next')}
-
-
-
handleFormSubmit('task-list')}
- >
-
- {generalT('saveAndReturn')}
-
+
{id && (
-
-
- Model name
-
- *
-
-
-
-
-
-
- Short name
-
-
- The abbreviation, acronym, or other common name used for the model.
-
-
-
-
-
- Other identifiers
-
-
+ *
+
+
+
+
+
-
-
-
-
- Model category
-
- *
-
-
-
-
- -Select-
-
-
- Accountable Care
-
-
- Demonstration
-
-
- Episode-based Payment Initiatives
-
-
- Initiatives to Accelerate the Development and Testing of New Payment and Service Delivery Models
-
-
- Initiatives Focused on the Medicaid and CHIP Population
-
-
- Initiatives to Speed the Adoption of Best Practices
-
-
- Initiatives Focused on the Medicare and Medicaid Enrollees
-
-
- Primary Care Transformation
-
-
- Unknown
-
-
-
-
+
-
-
- Next
+
+
+
+
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
{
window.scrollTo(0, 0);
}}
>
-
-
- {modelPlanT('modelName.question')}
-
-
-
- {flatErrors.modelName}
-
+
-
-
-
-
- {modelPlanT('abbreviation.question')}
-
-
-
- {modelPlanT('abbreviation.hint')}
-
+ className="margin-top-4"
+ >
+
+ {modelPlanT('modelName.question')}
+
+
+
+ {flatErrors.modelName}
+
+
-
{flatErrors.abbreviation}
-
-
-
-
-
- {planBasicsMiscT('otherIdentifiers')}
-
-
-
- {planBasicsMiscT('otherIdentifiersInfo1')}
-
-
- {planBasicsMiscT('otherIdentifiersInfo2')}
-
-
- {planBasicsMiscT('otherIdentifiersInfo3')}
-
-
-
-
-
- {planBasicsT('amsModelID.question')}
-
-
-
- {flatErrors['basics.amsModelID']}
-
-
-
-
-
-
-
- {planBasicsT('demoCode.question')}
-
-
-
- {flatErrors['basics.demoCode']}
-
-
-
-
-
-
+
+ {modelPlanT('abbreviation.question')}
+
+
+
+ {modelPlanT('abbreviation.hint')}
+
+
+
+ {flatErrors.abbreviation}
+
+
+
-
-
- {planBasicsT('modelCategory.question')}
-
-
-
-
- {flatErrors['basics.modelCategory']}
-
-
-
- ) => {
- setFieldValue(
- 'basics.modelCategory',
- e.target.value
- );
- }}
- >
-
- {`-${generalT('select')}-`}
-
- {Object.keys(modelCategoryConfig.options).map(
- category => {
- return (
-
- {modelCategoryConfig.options[category]}
-
- );
+
-
+ >
+
+ {planBasicsMiscT('otherIdentifiers')}
+
+
+
+ {planBasicsMiscT('otherIdentifiersInfo1')}
+
+
+ {planBasicsMiscT('otherIdentifiersInfo2')}
+
+
+ {planBasicsMiscT('otherIdentifiersInfo3')}
+
+
+
+
+
+ {planBasicsT('amsModelID.question')}
+
-
-
- (
- <>
-
- {planBasicsT('cmsCenters.question')}
-
+
+ {flatErrors['basics.amsModelID']}
+
+
+
+
+
+
+
+ {planBasicsT('demoCode.question')}
- {flatErrors['basics.cmsCenters']}
+ {flatErrors['basics.demoCode']}
+
+
+
+
+
- {Object.keys(modelCMSCenterConfig.options).map(
- center => {
+
+
+ {planBasicsT('modelCategory.question')}
+
+
+
+
+ {flatErrors['basics.modelCategory']}
+
+
+
+ ) => {
+ setFieldValue(
+ 'basics.modelCategory',
+ e.target.value
+ );
+ }}
+ >
+
+ {`-${generalT('select')}-`}
+
+ {Object.keys(modelCategoryConfig.options).map(
+ category => {
+ return (
+
+ {modelCategoryConfig.options[category]}
+
+ );
+ }
+ )}
+
+
+
+
+
+ (
+ <>
+
+ {planBasicsT('cmsCenters.question')}
+
+
+
+
+ {flatErrors['basics.cmsCenters']}
+
+
+ {Object.keys(
+ modelCMSCenterConfig.options
+ ).map(center => {
return (
{
}}
/>
);
- }
- )}
-
- {values.basics.cmsCenters.includes(
- CMSCenter.OTHER
- ) && (
-
-
- {generalT('pleaseSpecify')}
-
-
- {flatErrors['basics.cmsOther']}
-
-
-
- )}
- >
- )}
- />
-
-
-
-
+
+ {generalT('pleaseSpecify')}
+
+
+ {flatErrors['basics.cmsOther']}
+
+
+
+ )}
+ >
+ )}
+ />
+
+
+
- {planBasicsT('cmmiGroups.question')}
-
+
+ {planBasicsT('cmmiGroups.question')}
+
-
- {planBasicsT('cmmiGroups.hint')}
-
+
+ {planBasicsT('cmmiGroups.hint')}
+
-
- {flatErrors['basics.cmmiGroups']}
-
- {Object.keys(CMMIGroup).map(group => {
- return (
-
-
-
- );
- })}
-
-
-
+
+ {flatErrors['basics.cmmiGroups']}
+
+ {Object.keys(CMMIGroup).map(group => {
+ return (
+
+
+
+ );
+ })}
+
+
+
+ setErrors({})}
+ >
+ {generalT('next')}
+
+
setErrors({})}
+ type="button"
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit(values, 'back')}
>
- {generalT('next')}
+
+ {generalT('saveAndReturn')}
-
-
handleFormSubmit(values, 'back')}
- >
-
- {generalT('saveAndReturn')}
-
+
diff --git a/src/views/ModelPlan/TaskList/Beneficiaries/BeneficiaryIdentification/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/Beneficiaries/BeneficiaryIdentification/__snapshots__/index.test.tsx.snap
index 7f4c4a98c3..defbd21620 100644
--- a/src/views/ModelPlan/TaskList/Beneficiaries/BeneficiaryIdentification/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/Beneficiaries/BeneficiaryIdentification/__snapshots__/index.test.tsx.snap
@@ -109,81 +109,106 @@ exports[`Model Plan Beneficiaries matches snapshot 1`] = `
class="margin-top-6"
data-testid="beneficiaries-identification-form"
>
-
-
-
+
-
-
- Should beneficiaries with certain characteristics or enrollments be excluded?
-
-
+
+ How so?
+
+
+ This is how
+
+
+
+
+
+ No
+
+
+
+
+
+ Not applicable
+
+
+
-
-
- Yes
-
+
+ Notes
+
+
+ This is note
+
+
-
-
+
-
-
- Notes
-
-
- Note
-
-
+ Next
+
-
-
- Next
+
+
+
+
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
diff --git a/src/views/ModelPlan/TaskList/Beneficiaries/BeneficiaryIdentification/index.tsx b/src/views/ModelPlan/TaskList/Beneficiaries/BeneficiaryIdentification/index.tsx
index 9c93932717..51d17850d9 100644
--- a/src/views/ModelPlan/TaskList/Beneficiaries/BeneficiaryIdentification/index.tsx
+++ b/src/views/ModelPlan/TaskList/Beneficiaries/BeneficiaryIdentification/index.tsx
@@ -214,292 +214,297 @@ const BeneficiaryIdentification = () => {
handleSubmit(e);
}}
>
-
-
+
- {t('beneficiaries')}
-
-
- {flatErrors.beneficiaries}
-
-
- {
- setFieldValue('beneficiaries', value);
- }}
- initialValues={initialValues.beneficiaries}
- />
-
- {(values?.beneficiaries || []).includes(
- BeneficiariesType.OTHER
- ) && (
-
-
- {t('beneficiariesOther')}
-
-
- {flatErrors.beneficiariesOther}
-
-
-
- )}
+ {t('beneficiaries')}
+
+
+ {flatErrors.beneficiaries}
+
- {(values?.beneficiaries || []).includes(
- BeneficiariesType.NA
- ) && (
-
- {t('beneficiariesNA')}
-
- )}
-
-
-
-
-
-
- {t('dualEligibility')}
-
-
- {flatErrors.treatDualElligibleDifferent}
-
-
{
- setFieldValue(
- 'treatDualElligibleDifferent',
- 'YES'
- );
+ as={MultiSelect}
+ id="beneficiaries-beneficiaries"
+ name="beneficiaries"
+ ariaLabel="label-beneficiaries-beneficiaries"
+ options={mappedBeneficiariesType}
+ selectedLabel={t('selectedGroup')}
+ onChange={(value: string[] | []) => {
+ setFieldValue('beneficiaries', value);
}}
+ initialValues={initialValues.beneficiaries}
/>
- {values?.treatDualElligibleDifferent ===
- TriStateAnswer.YES && (
+ {(values?.beneficiaries || []).includes(
+ BeneficiariesType.OTHER
+ ) && (
- {h('howSo')}
+ {t('beneficiariesOther')}
- {flatErrors.treatDualElligibleDifferentHow}
+ {flatErrors.beneficiariesOther}
)}
- {
- setFieldValue(
- 'treatDualElligibleDifferent',
- 'NO'
- );
- }}
- />
- {
- setFieldValue(
- 'treatDualElligibleDifferent',
- 'TBD'
- );
- }}
- />
-
-
-
-
-
- {t('excluded')}
-
-
- {flatErrors.excludeCertainCharacteristics}
-
-
- {
- setFieldValue(
- 'excludeCertainCharacteristics',
- 'YES'
- );
- }}
+ {(values?.beneficiaries || []).includes(
+ BeneficiariesType.NA
+ ) && (
+
+ {t('beneficiariesNA')}
+
+ )}
+
+
+
- {values?.excludeCertainCharacteristics ===
- TriStateAnswer.YES && (
-
+
+ {t('dualEligibility')}
+
+
+ {flatErrors.treatDualElligibleDifferent}
+
+
+
-
- {t('excludedNestedQuestion')}
-
-
- {
- flatErrors.excludeCertainCharacteristicsCriteria
+ onChange={() => {
+ setFieldValue(
+ 'treatDualElligibleDifferent',
+ 'YES'
+ );
+ }}
+ />
+
+ {values?.treatDualElligibleDifferent ===
+ TriStateAnswer.YES && (
+
-
+
+ {h('howSo')}
+
+
+ {flatErrors.treatDualElligibleDifferentHow}
+
+
+
+ )}
+ {
+ setFieldValue(
+ 'treatDualElligibleDifferent',
+ 'NO'
+ );
+ }}
+ />
+ {
+ setFieldValue(
+ 'treatDualElligibleDifferent',
+ 'TBD'
+ );
+ }}
+ />
+
+
+
+
+
+
+ {t('excluded')}
+
+
+ {flatErrors.excludeCertainCharacteristics}
+
+
+ {
+ setFieldValue(
+ 'excludeCertainCharacteristics',
+ 'YES'
+ );
+ }}
+ />
+
+ {values?.excludeCertainCharacteristics ===
+ TriStateAnswer.YES && (
+
-
- )}
+ >
+
+ {t('excludedNestedQuestion')}
+
+
+ {
+ flatErrors.excludeCertainCharacteristicsCriteria
+ }
+
+
+
+ )}
- {
- setFieldValue(
- 'excludeCertainCharacteristics',
- 'NO'
- );
- }}
- />
- {
- setFieldValue(
- 'excludeCertainCharacteristics',
- 'TBD'
- );
- }}
+ {
+ setFieldValue(
+ 'excludeCertainCharacteristics',
+ 'NO'
+ );
+ }}
+ />
+ {
+ setFieldValue(
+ 'excludeCertainCharacteristics',
+ 'TBD'
+ );
+ }}
+ />
+
+
-
-
-
+
-
-
setErrors({})}>
- {h('next')}
+
+ setErrors({})}>
+ {h('next')}
+
+
+ handleFormSubmit('back')}
+ >
+
+ {h('saveAndReturn')}
-
- handleFormSubmit('back')}
- >
-
- {h('saveAndReturn')}
-
+
diff --git a/src/views/ModelPlan/TaskList/Beneficiaries/PeopleImpact/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/Beneficiaries/PeopleImpact/__snapshots__/index.test.tsx.snap
index 96fd7a0a22..ae2522b621 100644
--- a/src/views/ModelPlan/TaskList/Beneficiaries/PeopleImpact/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/Beneficiaries/PeopleImpact/__snapshots__/index.test.tsx.snap
@@ -109,240 +109,265 @@ exports[`Model Plan Beneficiaries matches snapshot 1`] = `
class="margin-top-6"
data-testid="beneficiaries-people-impact-form"
>
-
-
-
-
-
- Back
-
+
+ Back
+
+
+ Next
+
+
- Next
+
+
+
+
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
diff --git a/src/views/ModelPlan/TaskList/Beneficiaries/PeopleImpact/index.tsx b/src/views/ModelPlan/TaskList/Beneficiaries/PeopleImpact/index.tsx
index 202bab9cc3..b728fd671a 100644
--- a/src/views/ModelPlan/TaskList/Beneficiaries/PeopleImpact/index.tsx
+++ b/src/views/ModelPlan/TaskList/Beneficiaries/PeopleImpact/index.tsx
@@ -211,184 +211,194 @@ const PeopleImpact = () => {
handleSubmit(e);
}}
>
-
-
- {t('howManyImpacted')}
-
-
- {flatErrors.numberPeopleImpacted}
-
- ) => {
- setFieldValue(
- 'numberPeopleImpacted',
- Number(e.target.value)
- );
- }}
- />
-
- {t('zero')}
- {t('tenThousand')}
-
-
+
- {t('numberOfPeopleImpacted')}
-
-
- {flatErrors.numberPeopleImpacted}
-
-
- ) => {
- if (Number.isNaN(e.target.value)) return;
- setFieldValue(
- 'numberPeopleImpacted',
- Number(e.target.value)
- );
- }}
- />
+
+ {t('howManyImpacted')}
+
+
+ {flatErrors.numberPeopleImpacted}
+
+
+ ) => {
+ setFieldValue(
+ 'numberPeopleImpacted',
+ Number(e.target.value)
+ );
+ }}
+ />
+
+ {t('zero')}
+ {t('tenThousand')}
+
+
+ {t('numberOfPeopleImpacted')}
+
+
+ {flatErrors.numberPeopleImpacted}
+
+
+ ) => {
+ if (Number.isNaN(e.target.value)) return;
+ setFieldValue(
+ 'numberPeopleImpacted',
+ Number(e.target.value)
+ );
+ }}
+ />
-
- {t('levelOfConfidence')}
-
-
- {flatErrors.participantsCurrentlyInModels}
-
-
- {[
- ConfidenceType.NOT_AT_ALL,
- ConfidenceType.SLIGHTLY,
- ConfidenceType.FAIRLY,
- ConfidenceType.COMPLETELY
- ].map(key => (
- {
- setFieldValue('estimateConfidence', key);
- }}
- />
- ))}
-
-
-
+
+ {t('levelOfConfidence')}
+
+
+ {flatErrors.participantsCurrentlyInModels}
+
+
+ {[
+ ConfidenceType.NOT_AT_ALL,
+ ConfidenceType.SLIGHTLY,
+ ConfidenceType.FAIRLY,
+ ConfidenceType.COMPLETELY
+ ].map(key => (
+ {
+ setFieldValue('estimateConfidence', key);
+ }}
+ />
+ ))}
+
+
+
-
-
- {t('chooseBeneficiaries')}
-
-
- {flatErrors.beneficiarySelectionMethod}
-
+
+ {t('chooseBeneficiaries')}
+
+
+ {flatErrors.beneficiarySelectionMethod}
+
- {
- setFieldValue('beneficiarySelectionMethod', value);
- }}
- initialValues={
- initialValues.beneficiarySelectionMethod
- }
- />
+ {
+ setFieldValue(
+ 'beneficiarySelectionMethod',
+ value
+ );
+ }}
+ initialValues={
+ initialValues.beneficiarySelectionMethod
+ }
+ />
- {(values?.beneficiarySelectionMethod || []).includes(
- SelectionMethodType.OTHER
- ) && (
-
-
- {t('selectionMethodOther')}
-
-
- {flatErrors.beneficiarySelectionOther}
-
-
-
- )}
+
+ {t('selectionMethodOther')}
+
+
+ {flatErrors.beneficiarySelectionOther}
+
+
+
+ )}
-
-
+
+
-
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('next')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
-
-
setErrors({})}>
- {h('next')}
+
+ {h('saveAndReturn')}
-
- handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
diff --git a/src/views/ModelPlan/TaskList/GeneralCharacteristics/Authority/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/GeneralCharacteristics/Authority/__snapshots__/index.test.tsx.snap
index 004cd88bf8..618789b60b 100644
--- a/src/views/ModelPlan/TaskList/GeneralCharacteristics/Authority/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/GeneralCharacteristics/Authority/__snapshots__/index.test.tsx.snap
@@ -97,286 +97,380 @@ exports[`Model Plan Characteristics matches snapshot 1`] = `
class="desktop:grid-col-6 margin-top-6"
data-testid="plan-characteristics-authority-form"
>
-
+
-
-
-
-
- Add an additional note
-
-
-
- What authority allows CMMI to test the model?
-
-
+
- 3021 (ACA)
-
-
-
-
-
-
+
- Congressionally Mandated Demonstration
-
-
-
-
+
- Section 1833(e) (Part B services) of the Social Security Act
-
-
-
-
-
-
+
+ Congressionally Mandated Demonstration
+
+
+
+
-
-
+
+ Section 1833(e) (Part B services) of the Social Security Act
+
+
+
+
-
+
-
-
-
- Add an additional note
-
-
-
+
- Are waivers required?
-
-
+
+
+
+
+ Add an additional note
+
+
+
+
+
+
+
+
+
+ Add an additional note
+
+
+
-
-
-
+
+
+
+ Back
+
+
+ Save and start next Model Plan section
+
+
- Add an additional note
+ Save and return to task list
-
-
-
-
- Back
-
-
- Save and start next Model Plan section
-
-
-
-
-
-
-
- Save and return to task list
-
+
{
handleSubmit(e);
}}
>
-
-
- {t('rulemakingRequired')}
-
- {flatErrors.rulemakingRequired}
-
- {
- setFieldValue('rulemakingRequired', true);
- }}
- />
- {values.rulemakingRequired === true && (
-
-
-
- {t('ruleMakingInfo')}
-
-
- {flatErrors.rulemakingRequiredDescription}
-
-
+
+
+ {t('rulemakingRequired')}
+
+
+ {flatErrors.rulemakingRequired}
+
+
+ {
+ setFieldValue('rulemakingRequired', true);
+ }}
+ />
+ {values.rulemakingRequired === true && (
+
+
-
-
- )}
- {
- setFieldValue('rulemakingRequired', false);
- }}
- />
-
-
-
-
-
- (
- <>
-
- {t('authorityAllowed')}
-
-
- {flatErrors.authorityAllowances}
-
-
- {Object.keys(AuthorityAllowance)
- .sort(sortOtherEnum)
- .map(type => {
- return (
-
-
- ) => {
- if (e.target.checked) {
- arrayHelpers.push(e.target.value);
- } else {
- const idx = values.authorityAllowances.indexOf(
- e.target.value as AuthorityAllowance
- );
- arrayHelpers.remove(idx);
- }
- }}
- />
- {type === 'OTHER' &&
- values.authorityAllowances.includes(
- type as AuthorityAllowance
- ) && (
-
-
- {h('pleaseSpecify')}
-
-
- {flatErrors.authorityAllowancesOther}
-
-
-
- )}
-
- );
- })}
- >
- )}
- />
-
-
+ >
+
+ {t('ruleMakingInfo')}
+
+
+ {flatErrors.rulemakingRequiredDescription}
+
+
+
+
+ )}
+ {
+ setFieldValue('rulemakingRequired', false);
+ }}
+ />
+
+
-
-
- {t('waiversRequired')}
-
- {flatErrors.waiversRequired}
-
- {
- setFieldValue('waiversRequired', true);
- }}
- />
- {
- setFieldValue('waiversRequired', false);
- }}
- />
-
-
+
- {values.waiversRequired && (
(
<>
-
- {t('waiverTypes')}
+
+ {t('authorityAllowed')}
- {flatErrors.waiversRequiredTypes}
+ {flatErrors.authorityAllowances}
- {Object.keys(WaiverType).map(type => {
- return (
-
-
- ) => {
- if (e.target.checked) {
- arrayHelpers.push(e.target.value);
- } else {
- const idx = values.waiversRequiredTypes.indexOf(
- e.target.value as WaiverType
- );
- arrayHelpers.remove(idx);
- }
- }}
- />
-
- );
- })}
+ {Object.keys(AuthorityAllowance)
+ .sort(sortOtherEnum)
+ .map(type => {
+ return (
+
+
+ ) => {
+ if (e.target.checked) {
+ arrayHelpers.push(e.target.value);
+ } else {
+ const idx = values.authorityAllowances.indexOf(
+ e.target.value as AuthorityAllowance
+ );
+ arrayHelpers.remove(idx);
+ }
+ }}
+ />
+ {type === 'OTHER' &&
+ values.authorityAllowances.includes(
+ type as AuthorityAllowance
+ ) && (
+
+
+ {h('pleaseSpecify')}
+
+
+ {flatErrors.authorityAllowancesOther}
+
+
+
+ )}
+
+ );
+ })}
>
)}
/>
- )}
-
+
+
+
+
+ {t('waiversRequired')}
+
+ {flatErrors.waiversRequired}
+
+ {
+ setFieldValue('waiversRequired', true);
+ }}
+ />
+ {
+ setFieldValue('waiversRequired', false);
+ }}
+ />
+
+
- {!loading && values.status && (
- (
+ <>
+
+ {t('waiverTypes')}
+
+
+ {flatErrors.waiversRequiredTypes}
+
+
+ {Object.keys(WaiverType).map(type => {
+ return (
+
+
+ ) => {
+ if (e.target.checked) {
+ arrayHelpers.push(e.target.value);
+ } else {
+ const idx = values.waiversRequiredTypes.indexOf(
+ e.target.value as WaiverType
+ );
+ arrayHelpers.remove(idx);
+ }
+ }}
+ />
+
+ );
+ })}
+ >
+ )}
+ />
+ )}
+
+
- )}
-
+ {!loading && values.status && (
+
+ )}
+
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('saveAndStartNext')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
-
-
setErrors({})}>
- {h('saveAndStartNext')}
+
+ {h('saveAndReturn')}
-
- handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
{id && (
-
-
-
+
+ Yes
+
+
+
+
+
+ No
+
+
+
+
+
-
-
-
-
- Add an additional note
-
-
-
+
+
-
-
-
-
- Add an additional note
-
-
-
+
+
+
-
-
- No
-
-
-
-
-
+
+
+
+ Add an additional note
+
+
+
+
+ Back
+
+
+ Next
+
+
- Add an additional note
+ Save and return to task list
-
-
-
- Back
-
-
- Next
-
-
-
-
-
-
-
- Save and return to task list
-
+
{
handleSubmit(e);
}}
>
-
-
- {t('careCoordination')}
-
-
- {flatErrors.careCoordinationInvolved}
-
-
- {
- setFieldValue('careCoordinationInvolved', true);
- setFieldValue(
- 'careCoordinationInvolvedDescription',
- ''
- );
- }}
- />
- {values.careCoordinationInvolved === true && (
-
-
-
- {h('howSo')}
-
-
- {flatErrors.careCoordinationInvolvedDescription}
-
-
+
+
+ {t('careCoordination')}
+
+
+ {flatErrors.careCoordinationInvolved}
+
+
+ {
+ setFieldValue('careCoordinationInvolved', true);
+ setFieldValue(
+ 'careCoordinationInvolvedDescription',
+ ''
+ );
+ }}
+ />
+ {values.careCoordinationInvolved === true && (
+
+
-
-
- )}
- {
- setFieldValue('careCoordinationInvolved', false);
- }}
- />
-
-
+ >
+
+ {h('howSo')}
+
+
+ {flatErrors.careCoordinationInvolvedDescription}
+
+
+
+
+ )}
+ {
+ setFieldValue('careCoordinationInvolved', false);
+ }}
+ />
+
+
-
+
-
-
- {t('additionalServices')}
-
-
- {flatErrors.additionalServicesInvolved}
-
-
- {
- setFieldValue('additionalServicesInvolved', true);
- setFieldValue(
- 'additionalServicesInvolvedDescription',
- ''
- );
- }}
- />
- {values.additionalServicesInvolved === true && (
-
-
-
- {h('howSo')}
-
-
- {flatErrors.additionalServicesInvolvedDescription}
-
-
+
+ {t('additionalServices')}
+
+
+ {flatErrors.additionalServicesInvolved}
+
+
+ {
+ setFieldValue('additionalServicesInvolved', true);
+ setFieldValue(
+ 'additionalServicesInvolvedDescription',
+ ''
+ );
+ }}
+ />
+ {values.additionalServicesInvolved === true && (
+
+
-
-
- )}
- {
- setFieldValue('additionalServicesInvolved', false);
- }}
- />
-
-
+ >
+
+ {h('howSo')}
+
+
+ {flatErrors.additionalServicesInvolvedDescription}
+
+
+
+
+ )}
+ {
+ setFieldValue('additionalServicesInvolved', false);
+ }}
+ />
+
+
-
+
-
-
- {t('communityInvolved')}
-
-
- {flatErrors.communityPartnersInvolved}
-
-
-
+
-
+
-
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('next')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
-
-
setErrors({})}>
- {h('next')}
+
+ {h('saveAndReturn')}
-
-
handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
{id && (
-
-
-
-
-
-
+
+ Advanced APM
+
+
+
+
-
+
+
+
+ Regular APM
+
+
+
+
+
+
+ It is not an APM
+
+
+
+
-
-
- It is not an APM
-
-
+
+
+
+
+ Add an additional note
+
-
+
-
-
+
+
-
-
-
- Add an additional note
-
-
-
-
-
-
+
+
+
+
+
+
+ Add an additional note
+
+
+
+
+
+ Back
+
+
+ Next
+
+
- Add an additional note
-
-
-
-
-
- Back
-
-
- Next
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
{
handleSubmit(e);
}}
>
-
-
- {t('modelAPM')}
-
-
-
- {t('MIPSInfo')}
-
-
+
+
+
+ {t('modelAPM')}
+
+
+
+ {t('MIPSInfo')}
+
+
-
- {flatErrors.alternativePaymentModelTypes}
-
+
+ {flatErrors.alternativePaymentModelTypes}
+
-
- {Object.keys(AlternativePaymentModelType)
- .filter(x => x !== AlternativePaymentModelType.NOT_APM)
- .map(type => {
- return (
-
-
-
- );
- })}
- ) => {
- if (e.target.checked) {
- setFieldValue(
- 'alternativePaymentModelTypes',
- AlternativePaymentModelType.NOT_APM
+
+ {Object.keys(AlternativePaymentModelType)
+ .filter(x => x !== AlternativePaymentModelType.NOT_APM)
+ .map(type => {
+ return (
+
+
+
);
- } else {
- setFieldValue('alternativePaymentModelTypes', []);
- }
- }}
- />
-
-
-
-
-
-
-
- {t('keyCharacteristics')}
-
- {flatErrors.keyCharacteristics}
-
- {
- setFieldValue('keyCharacteristics', value);
- }}
- initialValues={initialValues.keyCharacteristics}
- />
-
+ })}
+ ) => {
+ if (e.target.checked) {
+ setFieldValue(
+ 'alternativePaymentModelTypes',
+ AlternativePaymentModelType.NOT_APM
+ );
+ } else {
+ setFieldValue('alternativePaymentModelTypes', []);
+ }
+ }}
+ />
+
-
+
+
- {values.keyCharacteristics.includes(
- KeyCharacteristic.OTHER
- ) && (
-
- {t('specificQuestions')}
+
+ {t('keyCharacteristics')}
-
- {t('pleaseDescribe')}
-
- {flatErrors.keyCharacteristicsOther}
+ {flatErrors.keyCharacteristics}
+
{
+ setFieldValue('keyCharacteristics', value);
+ }}
+ initialValues={initialValues.keyCharacteristics}
/>
- )}
- {(values.keyCharacteristics.includes(
- 'PART_C' as KeyCharacteristic
- ) ||
- values.keyCharacteristics.includes(
- 'PART_D' as KeyCharacteristic
- )) && (
- <>
+
+
+ {values.keyCharacteristics.includes(
+ KeyCharacteristic.OTHER
+ ) && (
-
- {t('reviewPlanBids')}
+
+ {t('specificQuestions')}
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
- />
- )}
+
+ {t('pleaseDescribe')}
+
- {flatErrors.collectPlanBids}
+ {flatErrors.keyCharacteristicsOther}
-
- {
- setFieldValue('collectPlanBids', true);
- }}
- />
- {
- setFieldValue('collectPlanBids', false);
- }}
- />
-
+
+ )}
-
+ {(values.keyCharacteristics.includes(
+ 'PART_C' as KeyCharacteristic
+ ) ||
+ values.keyCharacteristics.includes(
+ 'PART_D' as KeyCharacteristic
+ )) && (
+ <>
+
+
+ {t('reviewPlanBids')}
+
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
+ />
+ )}
+
+ {flatErrors.collectPlanBids}
+
+
+ {
+ setFieldValue('collectPlanBids', true);
+ }}
+ />
+ {
+ setFieldValue('collectPlanBids', false);
+ }}
+ />
+
+
-
-
+
+
- {t('manageEnrollment')}
-
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
- />
- )}
-
- {flatErrors.managePartCDEnrollment}
-
-
- {
- setFieldValue('managePartCDEnrollment', true);
- }}
- />
- {
- setFieldValue('managePartCDEnrollment', false);
- }}
- />
-
-
+
+ {t('manageEnrollment')}
+
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
+ />
+ )}
+
+ {flatErrors.managePartCDEnrollment}
+
+
+ {
+ setFieldValue('managePartCDEnrollment', true);
+ }}
+ />
+ {
+ setFieldValue('managePartCDEnrollment', false);
+ }}
+ />
+
+
-
+
-
-
- {t('updatedContract')}
-
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
- />
- )}
-
- {flatErrors.planContractUpdated}
-
-
- {
- setFieldValue('planContractUpdated', true);
- }}
- />
- {
- setFieldValue('planContractUpdated', false);
- }}
- />
-
-
+
+ {t('updatedContract')}
+
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
+ />
+ )}
+
+ {flatErrors.planContractUpdated}
+
+
+ {
+ setFieldValue('planContractUpdated', true);
+ }}
+ />
+ {
+ setFieldValue('planContractUpdated', false);
+ }}
+ />
+
+
-
- >
- )}
+
+ >
+ )}
-
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('next')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
+
+ {h('saveAndReturn')}
-
setErrors({})}>
- {h('next')}
-
-
- handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
{id && (
-
-
-
-
+
+
+ Back
+
+
+ Next
+
+
- Add an additional note
-
-
-
-
-
- Back
-
-
- Next
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
{
handleSubmit(e);
}}
>
-
-
- {t('specificGeographies')}
-
-
- {flatErrors.geographiesTargeted}
-
-
- {
- setFieldValue('geographiesTargeted', true);
- }}
- />
- {
- setFieldValue('geographiesTargeted', false);
- }}
- />
-
- {values.geographiesTargeted && (
- <>
- (
- <>
-
- {t('geographyType')}
-
-
- {flatErrors.geographiesTargetedTypes}
-
+
+
+
+ {t('specificGeographies')}
+
+
+ {flatErrors.geographiesTargeted}
+
+
+ {
+ setFieldValue('geographiesTargeted', true);
+ }}
+ />
+ {
+ setFieldValue('geographiesTargeted', false);
+ }}
+ />
+
+ {values.geographiesTargeted && (
+ <>
+ (
+ <>
+
+ {t('geographyType')}
+
+
+ {flatErrors.geographiesTargetedTypes}
+
- {Object.keys(GeographyType)
- .sort(sortOtherEnum)
- .map(type => {
- return (
-
-
- ) => {
- if (e.target.checked) {
- arrayHelpers.push(e.target.value);
- } else {
- const idx = values.geographiesTargetedTypes.indexOf(
- e.target.value as GeographyType
- );
- arrayHelpers.remove(idx);
- }
- }}
- />
- {type === 'OTHER' &&
- values.geographiesTargetedTypes.includes(
- type as GeographyType
- ) && (
- {
+ return (
+
+
+ ) => {
+ if (e.target.checked) {
+ arrayHelpers.push(e.target.value);
+ } else {
+ const idx = values.geographiesTargetedTypes.indexOf(
+ e.target.value as GeographyType
+ );
+ arrayHelpers.remove(idx);
}
- >
-
- {t('geographySpecify')}
-
-
- {
- flatErrors.geographiesTargetedTypesOther
+ }}
+ />
+ {type === 'OTHER' &&
+ values.geographiesTargetedTypes.includes(
+ type as GeographyType
+ ) && (
+
-
-
- )}
-
- );
- })}
- >
- )}
- />
+ >
+
+ {t('geographySpecify')}
+
+
+ {
+ flatErrors.geographiesTargetedTypesOther
+ }
+
+
+
+ )}
+
+ );
+ })}
+ >
+ )}
+ />
- (
- <>
-
- {t('geographyApplied')}
-
-
- {flatErrors.geographiesTargetedAppliedTo}
-
+ (
+ <>
+
+ {t('geographyApplied')}
+
+
+ {flatErrors.geographiesTargetedAppliedTo}
+
- {Object.keys(GeographyApplication)
- .sort(sortOtherEnum)
- .map(type => {
- return (
-
-
- ) => {
- if (e.target.checked) {
- arrayHelpers.push(e.target.value);
- } else {
- const idx = values.geographiesTargetedAppliedTo.indexOf(
- e.target
- .value as GeographyApplication
- );
- arrayHelpers.remove(idx);
- }
- }}
- />
- {type === 'OTHER' &&
- values.geographiesTargetedAppliedTo.includes(
- type as GeographyApplication
- ) && (
- {
+ return (
+
+
+ ) => {
+ if (e.target.checked) {
+ arrayHelpers.push(e.target.value);
+ } else {
+ const idx = values.geographiesTargetedAppliedTo.indexOf(
+ e.target
+ .value as GeographyApplication
+ );
+ arrayHelpers.remove(idx);
}
- >
-
- {t('geographyAppliedSpecify')}
-
-
- {
- flatErrors.geographiesTargetedAppliedToOther
+ }}
+ />
+ {type === 'OTHER' &&
+ values.geographiesTargetedAppliedTo.includes(
+ type as GeographyApplication
+ ) && (
+
-
-
- )}
-
- );
- })}
- >
- )}
- />
+ >
+
+ {t('geographyAppliedSpecify')}
+
+
+ {
+ flatErrors.geographiesTargetedAppliedToOther
+ }
+
+
+
+ )}
+
+ );
+ })}
+ >
+ )}
+ />
-
- >
- )}
-
+
+ >
+ )}
+
-
-
- {t('participationOptions')}
-
-
- {flatErrors.participationOptions}
-
-
- {
- setFieldValue('participationOptions', true);
- }}
- />
- {
- setFieldValue('participationOptions', false);
- }}
- />
-
-
+
+
+ {t('participationOptions')}
+
+
+ {flatErrors.participationOptions}
+
+
+ {
+ setFieldValue('participationOptions', true);
+ }}
+ />
+ {
+ setFieldValue('participationOptions', false);
+ }}
+ />
+
+
-
+
-
- (
- <>
-
- {t('agreementType')}
-
+
+ (
+ <>
+
+ {t('agreementType')}
+
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
- />
- )}
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
+ />
+ )}
-
- {t('agreementNote')}
-
+
+ {t('agreementNote')}
+
-
- {flatErrors.agreementTypes}
-
+
+ {flatErrors.agreementTypes}
+
- {Object.keys(AgreementType)
- .sort(sortOtherEnum)
- .map(type => {
- return (
-
-
- ) => {
- if (e.target.checked) {
- arrayHelpers.push(e.target.value);
- } else {
- const idx = values.agreementTypes.indexOf(
- e.target.value as AgreementType
- );
- arrayHelpers.remove(idx);
- }
- }}
- />
- {type === 'OTHER' &&
- values.agreementTypes.includes(
- type as AgreementType
- ) && (
-
- {
+ return (
+
+
+ ) => {
+ if (e.target.checked) {
+ arrayHelpers.push(e.target.value);
+ } else {
+ const idx = values.agreementTypes.indexOf(
+ e.target.value as AgreementType
+ );
+ arrayHelpers.remove(idx);
+ }
+ }}
+ />
+ {type === 'OTHER' &&
+ values.agreementTypes.includes(
+ type as AgreementType
+ ) && (
+
- {h('pleaseSpecify')}
-
-
- {flatErrors.agreementTypesOther}
-
-
-
- )}
-
- );
- })}
- >
- )}
- />
-
+
+ {h('pleaseSpecify')}
+
+
+ {flatErrors.agreementTypesOther}
+
+
+
+ )}
+
+ );
+ })}
+ >
+ )}
+ />
+
- {values.agreementTypes.includes(
- 'PARTICIPATION' as AgreementType
- ) && (
- <>
-
-
+
- {t('moreParticipation')}
-
-
- {t('agreementDepending')}
-
-
- {flatErrors.multiplePatricipationAgreementsNeeded}
-
-
- {
- setFieldValue(
- 'multiplePatricipationAgreementsNeeded',
+
+ {t('moreParticipation')}
+
+
+ {t('agreementDepending')}
+
+
+ {flatErrors.multiplePatricipationAgreementsNeeded}
+
+
+
- {
- setFieldValue(
- 'multiplePatricipationAgreementsNeeded',
+ }
+ onChange={() => {
+ setFieldValue(
+ 'multiplePatricipationAgreementsNeeded',
+ true
+ );
+ }}
+ />
+
-
-
+ }
+ onChange={() => {
+ setFieldValue(
+ 'multiplePatricipationAgreementsNeeded',
+ false
+ );
+ }}
+ />
+
+
-
- >
- )}
+
+ >
+ )}
-
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('next')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
+
+ {h('saveAndReturn')}
-
setErrors({})}>
- {h('next')}
-
-
-
handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
{id && (
-
-
-
-
- Are there different components/tracks?
-
-
+
+ Yes
+
+
+
+
+
+ No
+
+
+
+
+
-
-
- Notes
-
-
- Component note
-
-
+ Next
+
-
-
- Next
+
+
+
+
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
{
>(null);
const history = useHistory();
- const { data: modelData, error: modelError } = useQuery<
- GetDraftModelPlansType,
- GetModelPlansVariables
- >(GetDraftModelPlans, {
- variables: {
- filter: ModelPlanFilter.INCLUDE_ALL,
- isMAC: false
+ const {
+ data: modelData,
+ error: modelError,
+ loading: modelLoading
+ } = useQuery
(
+ GetDraftModelPlans,
+ {
+ variables: {
+ filter: ModelPlanFilter.INCLUDE_ALL,
+ isMAC: false
+ }
}
- });
+ );
const {
data: existingModelData,
- error: existingModelError
+ error: existingModelError,
+ loading: existingModelLoading
} = useQuery(GetExistingModelPlans);
// Combined MINT models with existing models from DB. Sorts them alphabetically and returns options for MultiSelect
@@ -280,274 +285,282 @@ export const CharacteristicsContent = () => {
handleSubmit(e);
}}
>
-
-
- {t('isNewModel')}
-
- {flatErrors.isNewModel}
-
- {
- setFieldValue('isNewModel', true);
- setFieldValue('existingModel', '');
- }}
- />
- {
- setFieldValue('isNewModel', false);
- }}
- />
-
- {values.isNewModel === false && (
-
-
- {t('whichExistingModel')}
-
- {t('startTypeing')}
- {flatErrors.existingModel}
-
-
+
+ {t('isNewModel')}
+
+ {flatErrors.isNewModel}
+
+ {
+ setFieldValue('isNewModel', true);
+ setFieldValue('existingModel', '');
}}
- options={modelPlanOptions}
- defaultValue={
- modelPlanOptions.find(
- modelPlan => modelPlan.label === existingModel
- )?.value || ''
- }
- onChange={modelPlanID => {
- const model = modelPlanOptions.find(
- modelPlan => modelPlan.value === modelPlanID
- );
- if (model) {
- setFieldValue('existingModel', model.label);
- } else {
- setFieldValue('existingModel', '');
- }
+ />
+ {
+ setFieldValue('isNewModel', false);
}}
/>
-
- )}
-
-
-
-
- {t('resembleModel')}
-
-
- {flatErrors.resemblesExistingModel}
-
-
- {
- setFieldValue('resemblesExistingModel', true);
- }}
- />
- {
- setFieldValue('resemblesExistingModel', false);
- }}
- />
-
- {values.resemblesExistingModel && (
- <>
+
+ {values.isNewModel === false && (
- {t('modelResemblance')}
+ {t('whichExistingModel')}
-
+
{t('startTypeing')}
- {flatErrors.resemblesExistingModelWhich}
+ {flatErrors.existingModel}
- {
- setFieldValue('existingModelLinks', value);
+ defaultValue={
+ modelPlanOptions.find(
+ modelPlan => modelPlan.label === existingModel
+ )?.value || ''
+ }
+ onChange={modelPlanID => {
+ const model = modelPlanOptions.find(
+ modelPlan => modelPlan.value === modelPlanID
+ );
+ if (model) {
+ setFieldValue('existingModel', model.label);
+ } else {
+ setFieldValue('existingModel', '');
+ }
}}
- initialValues={initialValues.existingModelLinks}
/>
-
-
+
+
+
+ {t('resembleModel')}
+
+
+ {flatErrors.resemblesExistingModel}
+
+
+ {
+ setFieldValue('resemblesExistingModel', true);
+ }}
+ />
+ {
+ setFieldValue('resemblesExistingModel', false);
+ }}
+ />
+
+ {values.resemblesExistingModel && (
+ <>
+
- {t('waysResembleModel')}
-
-
- {flatErrors.resemblesExistingModelHow}
-
-
-
+
+ {t('modelResemblance')}
+
+
+ {t('startTypeing')}
+
+
+ {flatErrors.resemblesExistingModelWhich}
+
-
- >
- )}
-
-
-
-
- {t('differentComponents')}
-
-
- {flatErrors.hasComponentsOrTracks}
-
-
- {
- setFieldValue('hasComponentsOrTracks', true);
- setFieldValue('hasComponentsOrTracksDiffer', '');
- }}
- />
- {values.hasComponentsOrTracks === true && (
-
+ {
+ setFieldValue('existingModelLinks', value);
+ }}
+ initialValues={initialValues.existingModelLinks}
+ />
+
- {t('tracksDiffer')}
+ {t('waysResembleModel')}
- {flatErrors.hasComponentsOrTracksDiffer}
+ {flatErrors.resemblesExistingModelHow}
-
- )}
- {
- setFieldValue('hasComponentsOrTracks', false);
- }}
- />
-
-
-
+
+ >
+ )}
+
+
+
+
+ {t('differentComponents')}
+
+
+ {flatErrors.hasComponentsOrTracks}
+
+
+ {
+ setFieldValue('hasComponentsOrTracks', true);
+ setFieldValue('hasComponentsOrTracksDiffer', '');
+ }}
+ />
+ {values.hasComponentsOrTracks === true && (
+
+
+
+ {t('tracksDiffer')}
+
+
+ {flatErrors.hasComponentsOrTracksDiffer}
+
+
+
+
+ )}
+ {
+ setFieldValue('hasComponentsOrTracks', false);
+ }}
+ />
+
-
-
setErrors({})}>
- {h('next')}
+
+
+
+
+ setErrors({})}>
+ {h('next')}
+
+
+ handleFormSubmit('back')}
+ >
+
+ {h('saveAndReturn')}
-
- handleFormSubmit('back')}
- >
-
- {h('saveAndReturn')}
-
+
- {id && (
+ {id && !(loading || modelLoading || existingModelLoading) && (
{
diff --git a/src/views/ModelPlan/TaskList/ITSolutions/AddCustomSolution/index.tsx b/src/views/ModelPlan/TaskList/ITSolutions/AddCustomSolution/index.tsx
index 1476a0a199..99cf1484c7 100644
--- a/src/views/ModelPlan/TaskList/ITSolutions/AddCustomSolution/index.tsx
+++ b/src/views/ModelPlan/TaskList/ITSolutions/AddCustomSolution/index.tsx
@@ -101,7 +101,7 @@ const AddCustomSolution = () => {
const { showMessageOnNextPage } = useMessage();
- const { data, loading } = useQuery<
+ const { data, loading, error } = useQuery<
GetOperationalSolutionType,
GetOperationalSolutionVariables
>(GetOperationalSolution, {
@@ -291,7 +291,7 @@ const AddCustomSolution = () => {
)}
)}
-
+
{selectedSolution === null ? (
{
const isUpdating = !!operationalNeedID;
- const { data } = useQuery<
+ const { data, loading, error } = useQuery<
GetOperationalNeedType,
GetOperationalNeedVariables
>(GetOperationalNeed, {
@@ -226,7 +226,7 @@ const AddOrUpdateOperationalNeed = () => {
handleSubmit(e);
}}
>
-
+
{
handleSubmit(e);
}}
>
-
+
-
- Choose from common solutions
-
-
-
-
- Select another solution not listed
-
-
+
+
+
- Continue
+ Select another solution not listed
-
-
-
-
-
-
- Don’t add solutions and return to tracker
-
+
+ Continue
+
+
+
+
+
+
+
+ Don’t add solutions and return to tracker
+
+
diff --git a/src/views/ModelPlan/TaskList/ITSolutions/SelectSolutions/index.tsx b/src/views/ModelPlan/TaskList/ITSolutions/SelectSolutions/index.tsx
index 2e6ebfe01a..9b14d3ab37 100644
--- a/src/views/ModelPlan/TaskList/ITSolutions/SelectSolutions/index.tsx
+++ b/src/views/ModelPlan/TaskList/ITSolutions/SelectSolutions/index.tsx
@@ -10,6 +10,7 @@ import { useMutation, useQuery } from '@apollo/client';
import {
Button,
CardGroup,
+ Fieldset,
Grid,
IconArrowBack
} from '@trussworks/react-uswds';
@@ -309,105 +310,108 @@ const SelectSolutions = () => {
handleSubmit(e);
}}
>
-
- {t('chooseCommonSolution')}
-
-
- {loading ? (
-
- ) : (
-
- {commonSolutions.map(
- (solution: GetOperationalNeedSolutionsType) => (
-
- x.id === '00000000-0000-0000-0000-000000000000'
- ? x.name === solution.name
- : x.id === solution.id
+
+
+ {t('chooseCommonSolution')}
+
+
+ {loading ? (
+
+ ) : (
+
+ {commonSolutions.map(
+ (solution: GetOperationalNeedSolutionsType) => (
+
+ x.id ===
+ '00000000-0000-0000-0000-000000000000'
+ ? x.name === solution.name
+ : x.id === solution.id
+ )}
+ // Default Operational Solutions start with an id full of zeroes.
+ // if solution is default solution, then check name to find index
+ // otherwise, continue to use id to find index
+ key={`${
+ solution.nameOther
+ ?.toLowerCase()
+ .replaceAll(' ', '-') ||
+ solution.name
+ ?.toLowerCase()
+ .replaceAll(' ', '-')
+ }--${solution.id}`}
+ />
+ )
+ )}
+
+ )}
+
+ {otherSolutions.length > 0 && (
+ <>
+
+ {t('chooseOtherSolution')}
+
+ {loading ? (
+
+ ) : (
+
+ {otherSolutions.map(
+ (solution: GetOperationalNeedSolutionsType) => (
+
+ x.id ===
+ '00000000-0000-0000-0000-000000000000'
+ ? x.name === solution.name
+ : x.id === solution.id
+ )}
+ key={solution.nameOther || solution.name}
+ />
+ )
)}
- // Default Operational Solutions start with an id full of zeroes.
- // if solution is default solution, then check name to find index
- // otherwise, continue to use id to find index
- key={`${
- solution.nameOther
- ?.toLowerCase()
- .replaceAll(' ', '-') ||
- solution.name
- ?.toLowerCase()
- .replaceAll(' ', '-')
- }--${solution.id}`}
- />
- )
- )}
-
- )}
-
- {otherSolutions.length > 0 && (
- <>
-
- {t('chooseOtherSolution')}
-
- {loading ? (
-
- ) : (
-
- {otherSolutions.map(
- (solution: GetOperationalNeedSolutionsType) => (
-
- x.id ===
- '00000000-0000-0000-0000-000000000000'
- ? x.name === solution.name
- : x.id === solution.id
- )}
- key={solution.nameOther || solution.name}
- />
- )
- )}
-
- )}
- >
- )}
-
- {
- history.push(
- `/models/${modelID}/task-list/it-solutions/${operationalNeedID}/add-solution?isCustomNeed=${!!isCustomNeed}`
- );
- }}
- >
- {t('selectAnother')}
-
+
+ )}
+ >
+ )}
-
solution.needed)
- .length === 0
+ type="button"
+ id="add-solution-not-listed"
+ className="usa-button usa-button--outline margin-top-2"
+ onClick={() => {
+ history.push(
+ `/models/${modelID}/task-list/it-solutions/${operationalNeedID}/add-solution?isCustomNeed=${!!isCustomNeed}`
+ );
+ }}
+ >
+ {t('selectAnother')}
+
+
+
+ solution.needed)
+ .length === 0
+ }
+ >
+ {t('continue')}
+
+
+
+ history.push(
+ `/models/${modelID}/task-list/it-solutions`
+ )
}
>
- {t('continue')}
+
+ {update ? t('dontUpdate') : t('dontAdd')}
-
-
- history.push(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
- >
-
- {update ? t('dontUpdate') : t('dontAdd')}
-
+
>
);
diff --git a/src/views/ModelPlan/TaskList/ITSolutions/SolutionImplementation/index.tsx b/src/views/ModelPlan/TaskList/ITSolutions/SolutionImplementation/index.tsx
index aad2160758..ad3763d1de 100644
--- a/src/views/ModelPlan/TaskList/ITSolutions/SolutionImplementation/index.tsx
+++ b/src/views/ModelPlan/TaskList/ITSolutions/SolutionImplementation/index.tsx
@@ -336,7 +336,7 @@ const SolutionImplementation = () => {
handleSubmit(e);
}}
>
-
+
{loading ? (
) : (
diff --git a/src/views/ModelPlan/TaskList/ITSolutions/Subtasks/index.tsx b/src/views/ModelPlan/TaskList/ITSolutions/Subtasks/index.tsx
index 8e549b7f55..3b86da3f31 100644
--- a/src/views/ModelPlan/TaskList/ITSolutions/Subtasks/index.tsx
+++ b/src/views/ModelPlan/TaskList/ITSolutions/Subtasks/index.tsx
@@ -387,7 +387,7 @@ const Subtasks = ({
handleSubmit(e);
}}
>
-
+
{({ push, remove }) => {
const { subtasks } = formValues;
diff --git a/src/views/ModelPlan/TaskList/OpsEvalAndLearning/CCWAndQuality/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/OpsEvalAndLearning/CCWAndQuality/__snapshots__/index.test.tsx.snap
index dcf9191c6f..10149e312b 100644
--- a/src/views/ModelPlan/TaskList/OpsEvalAndLearning/CCWAndQuality/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/OpsEvalAndLearning/CCWAndQuality/__snapshots__/index.test.tsx.snap
@@ -97,491 +97,496 @@ exports[`Model Plan Ops Eval and Learning CCW and Qualtiy matches snapshot 1`] =
class="desktop:grid-col-6 margin-top-6"
data-testid="ops-eval-and-learning-ccw-and-quality-form"
>
-
- Chronic Conditions Warehouse (CCW) questions
-
-
-
+
-
-
- No
-
+
+
+
+
+ Add an additional note
+
-
+
-
-
+
+
-
-
-
- Add an additional note
-
-
-
-
+
-
-
- No
-
+
+
+
+
+ Add an additional note
+
-
+
-
+ Will you use the CCW to distribute files to and from model participants?
+
+
-
-
-
+ Yes
+
+
+
+
-
- Add an additional note
-
-
-
-
- Quality questions
-
-
-
+ Quality questions
+
+
+
+
+
+
+ Yes
+
+
+
+
+
+ No
+
+
+
-
-
- No
-
+
+
+
+
+ Add an additional note
+
-
+
-
-
+
+
-
-
-
- Add an additional note
-
-
-
-
+
-
-
- No
-
+
+
+
+
+ Add an additional note
+
-
+
-
-
-
-
- Add an additional note
+ Back
+
+
+ Next
-
-
- Back
-
-
- Next
+
+
+
+
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
{
handleSubmit(e);
}}
>
- {isCCWInvolvement(ccmInvolvment) && (
- <>
-
{t('ccwSpecific')}
-
-
-
+ {isCCWInvolvement(ccmInvolvment) && (
+ <>
+ {t('ccwSpecific')}
+
+
- {t('ccwSendFiles')}
-
-
- {flatErrors.sendFilesBetweenCcw}
-
-
- {[true, false].map(key => (
- {
- setFieldValue('sendFilesBetweenCcw', key);
- }}
- />
- ))}
-
+
+ {t('ccwSendFiles')}
+
+
+ {flatErrors.sendFilesBetweenCcw}
+
+
+ {[true, false].map(key => (
+ {
+ setFieldValue('sendFilesBetweenCcw', key);
+ }}
+ />
+ ))}
+
-
-
+
+
-
-
- {t('fileTransfers')}
-
-
- {flatErrors.appToSendFilesToKnown}
-
-
- {[true, false].map(key => (
-
+
+ {t('fileTransfers')}
+
+
+ {flatErrors.appToSendFilesToKnown}
+
+
+ {[true, false].map(key => (
+
+ {
+ setFieldValue('appToSendFilesToKnown', key);
+ }}
+ />
+ {key === true &&
+ values.appToSendFilesToKnown === key && (
+
+
+ {h('pleaseSpecify')}
+
+
+ {flatErrors.appToSendFilesToWhich}
+
+
+
+ )}
+
+ ))}
+
+
+
+
+
+
+
+ {t('distributeFiles')}
+
+
+ {flatErrors.useCcwForFileDistribiutionToParticipants}
+
+
+ {[true, false].map(key => (
{
- setFieldValue('appToSendFilesToKnown', key);
+ setFieldValue(
+ 'useCcwForFileDistribiutionToParticipants',
+ key
+ );
}}
/>
- {key === true &&
- values.appToSendFilesToKnown === key && (
-
-
- {h('pleaseSpecify')}
-
-
- {flatErrors.appToSendFilesToWhich}
-
-
-
- )}
-
- ))}
-
-
-
-
+ ))}
+
-
-
+
+ >
+ )}
+
+ {isQualityMeasures(dataNeededForMonitoring) && (
+ <>
+
{t('qualityQuestions')}
+
+
- {t('distributeFiles')}
-
-
- {flatErrors.useCcwForFileDistribiutionToParticipants}
-
-
- {[true, false].map(key => (
-
+ {t('validatedQuality')}
+
+
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
}
- onChange={() => {
- setFieldValue(
- 'useCcwForFileDistribiutionToParticipants',
- key
- );
- }}
/>
- ))}
-
-
-
-
- >
- )}
+ )}
- {isQualityMeasures(dataNeededForMonitoring) && (
- <>
-
{t('qualityQuestions')}
+
+ {flatErrors.developNewQualityMeasures}
+
+
+ {[true, false].map(key => (
+ {
+ setFieldValue('developNewQualityMeasures', key);
+ }}
+ />
+ ))}
+
-
-
- {t('validatedQuality')}
-
-
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
+
- )}
-
-
- {flatErrors.developNewQualityMeasures}
-
-
- {[true, false].map(key => (
- {
- setFieldValue('developNewQualityMeasures', key);
- }}
- />
- ))}
-
-
-
-
+
-
-
- {t('impactPayment')}
-
-
- {flatErrors.qualityPerformanceImpactsPayment}
-
-
- {[true, false].map(key => (
- {
- setFieldValue(
- 'qualityPerformanceImpactsPayment',
- key
- );
- }}
- />
- ))}
-
-
-
-
- >
- )}
+
+ {t('impactPayment')}
+
+
+ {flatErrors.qualityPerformanceImpactsPayment}
+
+
+ {[true, false].map(key => (
+ {
+ setFieldValue(
+ 'qualityPerformanceImpactsPayment',
+ key
+ );
+ }}
+ />
+ ))}
+
-
+
+
+ >
+ )}
+
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('next')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
-
-
setErrors({})}>
- {h('next')}
+
+ {h('saveAndReturn')}
-
-
handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
{id && (
diff --git a/src/views/ModelPlan/TaskList/OpsEvalAndLearning/DataSharing/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/OpsEvalAndLearning/DataSharing/__snapshots__/index.test.tsx.snap
index 8b70240a5a..8b229192f6 100644
--- a/src/views/ModelPlan/TaskList/OpsEvalAndLearning/DataSharing/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/OpsEvalAndLearning/DataSharing/__snapshots__/index.test.tsx.snap
@@ -97,557 +97,562 @@ exports[`Model Plan Ops Eval and Learning Data Sharing matches snapshot 1`] = `
class="desktop:grid-col-6 margin-top-6"
data-testid="ops-eval-and-learning-data-sharing-form"
>
-
-
+
-
-
- Data collection timing and frequency
-
-
- Data collection starts
-
-
-
- -Select-
-
-
- During application period
-
-
- Shortly before the start date
-
-
- Early in the first performance year
-
-
- Later in the first performance year
-
-
- In the subsequent performance year
-
-
- At some other point in time
-
-
- Not planning to do this
-
-
- Other
-
-
-
-
-
-
-
- Back
-
-
- Next
+
+
+
+
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
{
handleSubmit(e);
}}
>
-
- {t('reportingTiming')}
-
+
- {t('dataSharing')}
-
-
- {t('dataSharingInfo')}
-
- {flatErrors.dataSharingStarts}
- ) => {
- setFieldValue('dataSharingStarts', e.target.value);
- }}
+ {t('reportingTiming')}
+
+ {t('dataSharing')}
+
+
+ {t('dataSharingInfo')}
+
+
+ {flatErrors.dataSharingStarts}
+
+ ) => {
+ setFieldValue('dataSharingStarts', e.target.value);
+ }}
+ >
+
+ {`-${h('select')}-`}
+
+ {dataSharingOptions.map(type => {
+ return (
+
+ {translateDataStartsType(type)}
+
+ );
+ })}
+
+
+ {values.dataSharingStarts === 'OTHER' && (
+
+
+ {h('pleaseSpecify')}
+
+
+ {flatErrors.dataSharingStartsOther}
+
+
+
+ )}
+
+
+
-
- {`-${h('select')}-`}
-
- {dataSharingOptions.map(type => {
- return (
-
- {translateDataStartsType(type)}
-
- );
- })}
-
-
- {values.dataSharingStarts === 'OTHER' && (
-
-
- {h('pleaseSpecify')}
-
-
- {flatErrors.dataSharingStartsOther}
-
-
-
- )}
-
-
-
-
+ {t('dataSharingHowOften')}
+
+
+
+ {flatErrors.dataSharingFrequency}
+
+ ({
+ value: key,
+ label: translateDataFrequencyType(key)
+ }))}
+ selectedLabel={t('dataSharingHowOftenSeleted')}
+ onChange={(value: string[] | []) => {
+ setFieldValue('dataSharingFrequency', value);
+ }}
+ initialValues={initialValues.dataSharingFrequency}
+ />
+ {(values?.dataSharingFrequency || []).includes(
+ DataFrequencyType.OTHER
+ ) && (
+
+
+ {h('pleaseSpecify')}
+
+
+ {flatErrors.dataSharingFrequencyOther}
+
+
+
+ )}
+
+
+
+
+
- {t('dataSharingHowOften')}
-
-
-
- {flatErrors.dataSharingFrequency}
-
- ({
- value: key,
- label: translateDataFrequencyType(key)
- }))}
- selectedLabel={t('dataSharingHowOftenSeleted')}
- onChange={(value: string[] | []) => {
- setFieldValue('dataSharingFrequency', value);
- }}
- initialValues={initialValues.dataSharingFrequency}
- />
- {(values?.dataSharingFrequency || []).includes(
- DataFrequencyType.OTHER
- ) && (
-
-
- {h('pleaseSpecify')}
-
-
- {flatErrors.dataSharingFrequencyOther}
-
-
-
- )}
-
-
-
-
-
- {t('dataCollectionTiming')}
- {t('dataCollectionTiming')}
+
+ {t('dataCollection')}
+
+
+ {flatErrors.dataCollectionStarts}
+
+ ) => {
+ setFieldValue('dataCollectionStarts', e.target.value);
+ }}
+ >
+
+ {`-${h('select')}-`}
+
+ {dataSharingOptions.map(type => {
+ return (
+
+ {translateDataStartsType(type)}
+
+ );
+ })}
+
+
+ {values.dataCollectionStarts === 'OTHER' && (
+
+
+ {h('pleaseSpecify')}
+
+
+ {flatErrors.dataCollectionStartsOther}
+
+
+
+ )}
+
+
+
- {t('dataCollection')}
-
-
- {flatErrors.dataCollectionStarts}
-
- ) => {
- setFieldValue('dataCollectionStarts', e.target.value);
- }}
+
+ {t('dataCollectionHowOften')}
+
+
+
+ {flatErrors.dataCollectionFrequency}
+
+ ({
+ value: key,
+ label: translateDataFrequencyType(key)
+ }))}
+ selectedLabel={t('dataSharingHowOftenSeleted')}
+ onChange={(value: string[] | []) => {
+ setFieldValue('dataCollectionFrequency', value);
+ }}
+ initialValues={initialValues.dataCollectionFrequency}
+ />
+ {(values?.dataCollectionFrequency || []).includes(
+ DataFrequencyType.OTHER
+ ) && (
+
+
+ {h('pleaseSpecify')}
+
+
+ {flatErrors.dataCollectionFrequencyOther}
+
+
+
+ )}
+
+
+
+
+
-
- {`-${h('select')}-`}
-
- {dataSharingOptions.map(type => {
- return (
-
- {translateDataStartsType(type)}
-
- );
- })}
-
-
- {values.dataCollectionStarts === 'OTHER' && (
-
-
- {h('pleaseSpecify')}
-
-
- {flatErrors.dataCollectionStartsOther}
-
-
-
- )}
-
-
-
-
- {t('dataCollectionHowOften')}
-
-
-
- {flatErrors.dataCollectionFrequency}
-
- ({
- value: key,
- label: translateDataFrequencyType(key)
- }))}
- selectedLabel={t('dataSharingHowOftenSeleted')}
- onChange={(value: string[] | []) => {
- setFieldValue('dataCollectionFrequency', value);
- }}
- initialValues={initialValues.dataCollectionFrequency}
- />
- {(values?.dataCollectionFrequency || []).includes(
- DataFrequencyType.OTHER
- ) && (
-
-
- {h('pleaseSpecify')}
-
-
- {flatErrors.dataCollectionFrequencyOther}
-
-
-
- )}
-
-
-
-
-
-
- {t('dataReporting')}
-
-
- {flatErrors.qualityReportingStarts}
-
- ) => {
- setFieldValue('qualityReportingStarts', e.target.value);
- }}
- >
-
- {`-${h('select')}-`}
-
- {dataSharingOptions.map(type => {
- return (
-
- {translateDataStartsType(type)}
-
- );
- })}
-
-
- {values.qualityReportingStarts === 'OTHER' && (
-
-
- {h('pleaseSpecify')}
-
-
- {flatErrors.qualityReportingStartsOther}
-
-
-
- )}
-
-
-
-
-
+
+ {t('dataReporting')}
+
+
+ {flatErrors.qualityReportingStarts}
+
+
) => {
+ setFieldValue('qualityReportingStarts', e.target.value);
+ }}
+ >
+
+ {`-${h('select')}-`}
+
+ {dataSharingOptions.map(type => {
+ return (
+
+ {translateDataStartsType(type)}
+
+ );
+ })}
+
+
+ {values.qualityReportingStarts === 'OTHER' && (
+
+
+ {h('pleaseSpecify')}
+
+
+ {flatErrors.qualityReportingStartsOther}
+
+
+
+ )}
+
+
+
+
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('next')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
+
+ {h('saveAndReturn')}
-
setErrors({})}>
- {h('next')}
-
-
-
handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
{id && (
diff --git a/src/views/ModelPlan/TaskList/OpsEvalAndLearning/Evaluation/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/OpsEvalAndLearning/Evaluation/__snapshots__/index.test.tsx.snap
index f6980515e3..a8e5e156b9 100644
--- a/src/views/ModelPlan/TaskList/OpsEvalAndLearning/Evaluation/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/OpsEvalAndLearning/Evaluation/__snapshots__/index.test.tsx.snap
@@ -97,50 +97,174 @@ exports[`Model Plan Ops Eval and Learning matches snapshot 1`] = `
class="desktop:grid-col-6 margin-top-6"
data-testid="ops-eval-and-learning-evaluation-form"
>
-
-
- Is Chronic Conditions Warehouse (CCW) involved in the model?
-
-
- If you select either yes option, there will be additional questions to answer.
-
-
-
-
- Yes, for evaluation
-
-
-
-
-
-
- Yes, for implementation
-
-
-
-
-
-
-
-
-
-
-
- Add an additional note
-
-
-
-
-
-
-
-
-
- Add an additional note
+ Back
+
+
+ Next
-
-
- Back
-
-
- Next
+
+
+
+
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
{
handleSubmit(e);
}}
>
-
+
+
+ (
+ <>
+
+ {t('evaluationApproach')}
+
+
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
+ />
+ )}
+
+
+ {flatErrors.evaluationApproaches}
+
+
+ {Object.keys(EvaluationApproachType)
+ .sort(sortOtherEnum)
+ .map(type => {
+ return (
+
+
+ ) => {
+ if (e.target.checked) {
+ arrayHelpers.push(e.target.value);
+ } else {
+ const idx = values.evaluationApproaches.indexOf(
+ e.target
+ .value as EvaluationApproachType
+ );
+ arrayHelpers.remove(idx);
+ }
+ }}
+ />
+ {type === EvaluationApproachType.OTHER &&
+ values.evaluationApproaches.includes(
+ type
+ ) && (
+
+
+ {t('evaluationOther')}
+
+
+ {flatErrors.evaluationApproachOther}
+
+
+
+ )}
+
+ );
+ })}
+
+ >
+ )}
+ />
+
+
(
<>
-
- {t('evaluationApproach')}
-
-
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
- />
- )}
+ {t('ccw')}
+
+ {t('ccwInfo')}
- {flatErrors.evaluationApproaches}
+ {flatErrors.ccmInvolvment}
- {Object.keys(EvaluationApproachType)
+ {Object.keys(CcmInvolvmentType)
.sort(sortOtherEnum)
.map(type => {
return (
@@ -303,33 +381,31 @@ const Evaluation = () => {
if (e.target.checked) {
arrayHelpers.push(e.target.value);
} else {
- const idx = values.evaluationApproaches.indexOf(
- e.target.value as EvaluationApproachType
+ const idx = values.ccmInvolvment.indexOf(
+ e.target.value as CcmInvolvmentType
);
arrayHelpers.remove(idx);
}
}}
/>
- {type === EvaluationApproachType.OTHER &&
- values.evaluationApproaches.includes(
- type
- ) && (
+ {type === CcmInvolvmentType.OTHER &&
+ values.ccmInvolvment.includes(type) && (
- {t('evaluationOther')}
+ {h('pleaseSpecify')}
- {flatErrors.evaluationApproachOther}
+ {flatErrors.ccmInvolvmentOther}
)}
@@ -337,284 +413,217 @@ const Evaluation = () => {
);
})}
>
)}
/>
-
-
-
(
- <>
- {t('ccw')}
-
- {t('ccwInfo')}
-
- {flatErrors.ccmInvolvment}
-
- {Object.keys(CcmInvolvmentType)
- .sort(sortOtherEnum)
- .map(type => {
- return (
-
-
- ) => {
- if (e.target.checked) {
- arrayHelpers.push(e.target.value);
- } else {
- const idx = values.ccmInvolvment.indexOf(
- e.target.value as CcmInvolvmentType
- );
- arrayHelpers.remove(idx);
- }
- }}
- />
- {type === CcmInvolvmentType.OTHER &&
- values.ccmInvolvment.includes(type) && (
-
-
- {h('pleaseSpecify')}
-
-
- {flatErrors.ccmInvolvmentOther}
-
-
-
- )}
-
- );
- })}
-
- >
- )}
- />
-
-
- {t('dataNeeded')}
-
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
+
+ {t('dataNeeded')}
+
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
+ />
+ )}
+
+
+ {t('dataNeededInfo')}
+
+
+
+ {flatErrors.dataNeededForMonitoring}
+
+ {
+ setFieldValue('dataNeededForMonitoring', value);
+ }}
+ initialValues={initialValues.dataNeededForMonitoring}
/>
- )}
-
- {t('dataNeededInfo')}
-
-
- {flatErrors.dataNeededForMonitoring}
-
-
+
+ {t('dataNeededOther')}
+
+
+ {flatErrors.dataNeededForMonitoringOther}
+
+
+
)}
- selectedLabel={t('selectedData')}
- onChange={(value: string[] | []) => {
- setFieldValue('dataNeededForMonitoring', value);
- }}
- initialValues={initialValues.dataNeededForMonitoring}
- />
- {(values?.dataNeededForMonitoring || []).includes(
- DataForMonitoringType.OTHER
- ) && (
-
-
- {t('dataNeededOther')}
-
-
- {flatErrors.dataNeededForMonitoringOther}
-
-
-
- )}
-
-
+
+
-
-
- {t('dataToSend')}
-
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
+
+ {t('dataToSend')}
+
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
+ />
+ )}
+
+
+ {flatErrors.dataToSendParticicipants}
+
+ {
+ setFieldValue('dataToSendParticicipants', value);
+ }}
+ initialValues={initialValues.dataToSendParticicipants}
/>
- )}
-
-
- {flatErrors.dataToSendParticicipants}
-
-
+
+ {t('dataToSendOther')}
+
+
+ {flatErrors.dataToSendParticicipantsgOther}
+
+
+
)}
- selectedLabel={t('selectedData')}
- onChange={(value: string[] | []) => {
- setFieldValue('dataToSendParticicipants', value);
- }}
- initialValues={initialValues.dataToSendParticicipants}
- />
- {(values?.dataToSendParticicipants || []).includes(
- DataToSendParticipantsType.OTHER_MIPS_DATA
- ) && (
-
-
- {t('dataToSendOther')}
-
-
- {flatErrors.dataToSendParticicipantsgOther}
-
-
-
- )}
-
-
+
+
-
-
- {t('claimLineFeed')}
-
-
- {flatErrors.shareCclfData}
-
- {[true, false].map(key => (
- {
- setFieldValue('shareCclfData', key);
- }}
- />
- ))}
-
-
-
-
+
+ {t('claimLineFeed')}
+
+
+ {flatErrors.shareCclfData}
+
+ {[true, false].map(key => (
+ {
+ setFieldValue('shareCclfData', key);
+ }}
+ />
+ ))}
+
-
+
+
+
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('next')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
+
+ {h('saveAndReturn')}
-
setErrors({})}>
- {h('next')}
-
-
- handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
{id && (
diff --git a/src/views/ModelPlan/TaskList/OpsEvalAndLearning/IDDOC/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/OpsEvalAndLearning/IDDOC/__snapshots__/index.test.tsx.snap
index 03dc375109..0eea61eaa2 100644
--- a/src/views/ModelPlan/TaskList/OpsEvalAndLearning/IDDOC/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/OpsEvalAndLearning/IDDOC/__snapshots__/index.test.tsx.snap
@@ -97,148 +97,289 @@ exports[`Model Plan Ops Eval and Learning IDDOC matches snapshot 1`] = `
class="desktop:grid-col-6 margin-top-6"
data-testid="ops-eval-and-learning-iddoc-form"
>
-
- IDDOC operations questions
-
-
-
+
-
+
@@ -268,120 +409,27 @@ exports[`Model Plan Ops Eval and Learning IDDOC matches snapshot 1`] = `
Add an additional note
-
-
- Interface Control Document (ICD) questions
-
-
- An interface control document provides a record of all interface information generated for a project.
-
-
-
- ICD owner
-
-
-
-
-
- Add an additional note
-
-
-
-
- Back
-
-
- Next
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
{
handleSubmit(e);
}}
>
-
{t('iddocHeading')}
-
-
- {t('technicalContacts')}
-
-
- {flatErrors.technicalContactsIdentified}
-
-
-
- {[true, false].map(key => (
-
- {
- setFieldValue('technicalContactsIdentified', key);
- }}
- />
- {values.technicalContactsIdentified === true &&
- key === true && (
-
-
- {h('pleaseSpecify')}
-
-
- {flatErrors.technicalContactsIdentifiedDetail}
-
-
-
- )}
-
- ))}
-
+
+ {t('iddocHeading')}
+
+
+ {t('technicalContacts')}
+
+
+ {flatErrors.technicalContactsIdentified}
+
-
-
+
+ {[true, false].map(key => (
+
+ {
+ setFieldValue('technicalContactsIdentified', key);
+ }}
+ />
+ {values.technicalContactsIdentified === true &&
+ key === true && (
+
+
+ {h('pleaseSpecify')}
+
+
+ {flatErrors.technicalContactsIdentifiedDetail}
+
+
+
+ )}
+
+ ))}
+
-
-
- {t('participantInformation')}
-
-
- {t('participantInformationInfo')}
-
-
- {flatErrors.captureParticipantInfo}
-
-
- {
- setFieldValue('captureParticipantInfo', true);
- }}
- />
- {
- setFieldValue('captureParticipantInfo', false);
- }}
+
-
+
+
+
+
+ {t('participantInformation')}
+
+
+ {t('participantInformationInfo')}
+
+
+ {flatErrors.captureParticipantInfo}
+
+
+ {
+ setFieldValue('captureParticipantInfo', true);
+ }}
+ />
+ {
+ setFieldValue('captureParticipantInfo', false);
+ }}
+ />
+
-
-
+
+
-
{t('icdHeading')}
+
{t('icdHeading')}
-
- {t('icdSubheading')}
-
+
+ {t('icdSubheading')}
+
-
-
- {t('icdOwner')}
-
- {flatErrors.icdOwner}
-
-
-
- {!loading && (
- <>
-
+
+ {t('icdOwner')}
+
+ {flatErrors.icdOwner}
+
+
-
- >
- )}
+ {!loading && (
+ <>
+
+
+
+ >
+ )}
-
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('next')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
-
-
setErrors({})}>
- {h('next')}
+
+ {h('saveAndReturn')}
-
- handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
{id && (
diff --git a/src/views/ModelPlan/TaskList/OpsEvalAndLearning/IDDOCMonitoring/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/OpsEvalAndLearning/IDDOCMonitoring/__snapshots__/index.test.tsx.snap
index 57d02237a6..6171c60c78 100644
--- a/src/views/ModelPlan/TaskList/OpsEvalAndLearning/IDDOCMonitoring/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/OpsEvalAndLearning/IDDOCMonitoring/__snapshots__/index.test.tsx.snap
@@ -97,305 +97,353 @@ exports[`Model Plan Ops Eval and Learning IDDOC matches snapshot 1`] = `
class="desktop:grid-col-6 margin-top-6"
data-testid="ops-eval-and-learning-iddoc-monitoring-form"
>
-
- Data monitoring questions continued
-
-
+
-
-
- Will unsolicited adjustments be included?
-
-
+
+ Yes
+
+
+
+
+
+ No
+
+
+
+
+
-
-
- Are data flow diagrams needed?
-
-
+
+ Yes
+
+
+
+
+
+ No
+
+
+
+
+
-
+
+
+
+ No
+
+
+
+
+
+
+
-
-
+
+
+
+
+
- No
-
-
-
-
-
+
- File naming conventions
-
-
-
-
+
+ Back
+
+
+ Next
+
+
- Add an additional note
-
-
-
-
- Back
+ Save and return to task list
-
- Next
-
-
-
-
-
-
-
- Save and return to task list
-
+
{
handleSubmit(e);
}}
>
-
{t('dataMonitoringContinued')}
+
+ {t('dataMonitoringContinued')}
-
-
- {t('timeFrequency')}
-
-
- {flatErrors.dataFullTimeOrIncremental}
-
-
- {Object.keys(DataFullTimeOrIncrementalType).map(key => (
- {
- setFieldValue('dataFullTimeOrIncremental', key);
- }}
- />
- ))}
-
-
+
+
+ {t('timeFrequency')}
+
+
+ {flatErrors.dataFullTimeOrIncremental}
+
+
+ {Object.keys(DataFullTimeOrIncrementalType).map(key => (
+ {
+ setFieldValue('dataFullTimeOrIncremental', key);
+ }}
+ />
+ ))}
+
+
-
-
- {t('eftAndConnectivity')}
-
- {flatErrors.eftSetUp}
-
- {[true, false].map(key => (
- {
- setFieldValue('eftSetUp', key);
- }}
- />
- ))}
-
-
+
+
+ {t('eftAndConnectivity')}
+
+ {flatErrors.eftSetUp}
+
+ {[true, false].map(key => (
+ {
+ setFieldValue('eftSetUp', key);
+ }}
+ />
+ ))}
+
+
-
-
- {t('adjustments')}
-
-
- {flatErrors.unsolicitedAdjustmentsIncluded}
-
-
- {[true, false].map(key => (
- {
- setFieldValue('unsolicitedAdjustmentsIncluded', key);
- }}
- />
- ))}
-
-
+
+
+ {t('adjustments')}
+
+
+ {flatErrors.unsolicitedAdjustmentsIncluded}
+
+
+ {[true, false].map(key => (
+ {
+ setFieldValue(
+ 'unsolicitedAdjustmentsIncluded',
+ key
+ );
+ }}
+ />
+ ))}
+
+
-
-
- {t('diagrams')}
-
-
- {flatErrors.dataFlowDiagramsNeeded}
-
-
- {[true, false].map(key => (
- {
- setFieldValue('dataFlowDiagramsNeeded', key);
- }}
- />
- ))}
-
-
+
+
+ {t('diagrams')}
+
+
+ {flatErrors.dataFlowDiagramsNeeded}
+
+
+ {[true, false].map(key => (
+ {
+ setFieldValue('dataFlowDiagramsNeeded', key);
+ }}
+ />
+ ))}
+
+
-
-
- {t('benefitEnhancement')}
-
-
- {t('benefitEnhancementInfo')}
-
-
- {flatErrors.produceBenefitEnhancementFiles}
-
-
- {[true, false].map(key => (
- {
- setFieldValue('produceBenefitEnhancementFiles', key);
- }}
- />
- ))}
-
-
+
+
+ {t('benefitEnhancement')}
+
+
+ {t('benefitEnhancementInfo')}
+
+
+ {flatErrors.produceBenefitEnhancementFiles}
+
+
+ {[true, false].map(key => (
+ {
+ setFieldValue(
+ 'produceBenefitEnhancementFiles',
+ key
+ );
+ }}
+ />
+ ))}
+
+
-
-
- {t('namingConventions')}
-
-
- {flatErrors.fileNamingConventions}
-
-
-
+ >
+
+ {t('namingConventions')}
+
+
+ {flatErrors.fileNamingConventions}
+
+
+
-
+
-
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('next')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
+
+ {h('saveAndReturn')}
-
setErrors({})}>
- {h('next')}
-
-
- handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
{id && (
diff --git a/src/views/ModelPlan/TaskList/OpsEvalAndLearning/IDDOCTesting/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/OpsEvalAndLearning/IDDOCTesting/__snapshots__/index.test.tsx.snap
index 21b02f442c..112aefd37d 100644
--- a/src/views/ModelPlan/TaskList/OpsEvalAndLearning/IDDOCTesting/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/OpsEvalAndLearning/IDDOCTesting/__snapshots__/index.test.tsx.snap
@@ -97,92 +97,288 @@ exports[`Model Plan Ops Eval and Learning IDDOC matches snapshot 1`] = `
class="desktop:grid-col-6 margin-top-6"
data-testid="ops-eval-and-learning-iddoc-testing-form"
>
-
- Testing questions
-
-
+
+ Testing questions
+
-
-
-
- SSM request to begin analysis at least 1 year before implementation
+
+
+
+ SSM request to begin analysis at least 1 year before implementation
+
-
-
+
+
-
-
-
- User Acceptance Testing (UAT) – test data needs
-
-
-
-
-
+ User Acceptance Testing (UAT) – test data needs
+
+
+
+
+
+ STC – test data needs
+
+
+ Yes needs
+
+
+
- STC – test data needs
-
-
+ Define the testing timelines
+
+
+
+
- Yes needs
-
-
-
+
+ Data monitoring questions
+
+
- Define the testing timelines
-
-
-
-
+ What types of files? Select all that apply.
+
+
+
+
+
+
+
+
+ What types of responses?
+
+
+
+
+
+ Frequency of files?
+
+
+
+
+
+ Back
+
+
+ Next
+
+
- Add an additional note
-
-
-
- Data monitoring questions
-
-
- What types of files? Select all that apply.
-
-
-
-
-
-
-
-
- What types of responses?
-
-
-
-
-
- Frequency of files?
-
-
-
-
-
- Back
-
-
- Next
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
{
handleSubmit(e);
}}
>
-
{t('testingQuestions')}
+
+ {t('testingQuestions')}
-
-
- {t('ssmRequest')}
-
-
+
+
+ {t('ssmRequest')}
+
+
-
-
- {t('uatNeeds')}
-
- {flatErrors.uatNeeds}
-
-
+
+
+ {t('uatNeeds')}
+
+ {flatErrors.uatNeeds}
+
+
-
-
- {t('stcNeeds')}
-
- {flatErrors.stcNeeds}
-
-
+
+
+ {t('stcNeeds')}
+
+ {flatErrors.stcNeeds}
+
+
-
-
- {t('testingTimelines')}
-
- {flatErrors.testingTimelines}
-
-
+
+
+ {t('testingTimelines')}
+
+ {flatErrors.testingTimelines}
+
+
-
+
- {t('dataMonitoring')}
+ {t('dataMonitoring')}
- (
- <>
-
- {t('fileTypes')}
-
-
- {flatErrors.dataMonitoringFileTypes}
-
+ (
+ <>
+
+ {t('fileTypes')}
+
+
+ {flatErrors.dataMonitoringFileTypes}
+
- {Object.keys(MonitoringFileType)
- .sort(sortOtherEnum)
- .map(type => {
- return (
-
-
- ) => {
- if (e.target.checked) {
- arrayHelpers.push(e.target.value);
- } else {
- const idx = values.dataMonitoringFileTypes.indexOf(
- e.target.value as MonitoringFileType
- );
- arrayHelpers.remove(idx);
- }
- }}
- />
- {type === 'OTHER' &&
- values.dataMonitoringFileTypes.includes(
- MonitoringFileType.OTHER
- ) && (
-
-
- {h('pleaseSpecify')}
-
-
- {flatErrors.dataMonitoringFileOther}
-
-
-
- )}
-
- );
- })}
- >
- )}
- />
+ {Object.keys(MonitoringFileType)
+ .sort(sortOtherEnum)
+ .map(type => {
+ return (
+
+
+ ) => {
+ if (e.target.checked) {
+ arrayHelpers.push(e.target.value);
+ } else {
+ const idx = values.dataMonitoringFileTypes.indexOf(
+ e.target.value as MonitoringFileType
+ );
+ arrayHelpers.remove(idx);
+ }
+ }}
+ />
+ {type === 'OTHER' &&
+ values.dataMonitoringFileTypes.includes(
+ MonitoringFileType.OTHER
+ ) && (
+
+
+ {h('pleaseSpecify')}
+
+
+ {flatErrors.dataMonitoringFileOther}
+
+
+
+ )}
+
+ );
+ })}
+ >
+ )}
+ />
-
-
- {t('responseTypes')}
-
- {flatErrors.dataResponseType}
-
-
+ >
+
+ {t('responseTypes')}
+
+ {flatErrors.dataResponseType}
+
+
-
-
- {t('fileFrequency')}
-
-
- {flatErrors.dataResponseFileFrequency}
-
-
-
+ >
+
+ {t('fileFrequency')}
+
+
+ {flatErrors.dataResponseFileFrequency}
+
+
+
-
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('next')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
+
+ {h('saveAndReturn')}
-
setErrors({})}>
- {h('next')}
-
-
- handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
{id && (
diff --git a/src/views/ModelPlan/TaskList/OpsEvalAndLearning/Learning/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/OpsEvalAndLearning/Learning/__snapshots__/index.test.tsx.snap
index d17e2fd878..e30be2d50d 100644
--- a/src/views/ModelPlan/TaskList/OpsEvalAndLearning/Learning/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/OpsEvalAndLearning/Learning/__snapshots__/index.test.tsx.snap
@@ -97,304 +97,309 @@ exports[`Model Plan Ops Eval and Learning - Learning matches snapshot 1`] = `
class="desktop:grid-col-6 margin-top-6"
data-testid="ops-eval-and-learning-learning-form"
>
-
-
- No, we will not have a learning strategy
+ What challenges do you anticipate during Model design and implementation?
-
-
-
-
-
-
-
- Add an additional note
-
+ Please list and known ’unknowns,’ that is, are there policy decisions that you are aware of that are still pending or are subject to change? If so, please list to the best of your ability.
+
+
+ Hard challenges
+
-
-
-
-
-
- Back
-
+
+ Back
+
+
+ Save and start next Model Plan section
+
+
- Save and start next Model Plan section
+
+
+
+
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
{
handleSubmit(e);
}}
>
-
- (
- <>
-
- {t('learningSystem')}
-
+
+
+ (
+ <>
+
+ {t('learningSystem')}
+
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
- />
- )}
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
+ />
+ )}
-
- {flatErrors.modelLearningSystems}
-
+
+ {flatErrors.modelLearningSystems}
+
- {Object.keys(ModelLearningSystemType)
- .sort(sortOtherEnum)
- .map(type => {
- return (
-
-
- ) => {
- if (e.target.checked) {
- arrayHelpers.push(e.target.value);
- } else {
- const idx = values.modelLearningSystems.indexOf(
- e.target
- .value as ModelLearningSystemType
- );
- arrayHelpers.remove(idx);
- }
- }}
- />
- {type === ModelLearningSystemType.OTHER &&
- values.modelLearningSystems.includes(
- type
- ) && (
-
-
- {h('pleaseSpecify')}
-
-
- {flatErrors.modelLearningSystemsOther}
-
-
-
- )}
-
- );
- })}
-
- >
- )}
- />
-
+ {Object.keys(ModelLearningSystemType)
+ .sort(sortOtherEnum)
+ .map(type => {
+ return (
+
+
+ ) => {
+ if (e.target.checked) {
+ arrayHelpers.push(e.target.value);
+ } else {
+ const idx = values.modelLearningSystems.indexOf(
+ e.target
+ .value as ModelLearningSystemType
+ );
+ arrayHelpers.remove(idx);
+ }
+ }}
+ />
+ {type === ModelLearningSystemType.OTHER &&
+ values.modelLearningSystems.includes(
+ type
+ ) && (
+
+
+ {h('pleaseSpecify')}
+
+
+ {flatErrors.modelLearningSystemsOther}
+
+
+
+ )}
+
+ );
+ })}
+
+ >
+ )}
+ />
+
-
-
- {t('obstacles')}
-
-
- {t('obstaclesInfo')}
-
-
- {flatErrors.anticipatedChallenges}
-
-
-
+
+
+ {t('obstacles')}
+
+
+ {t('obstaclesInfo')}
+
+
+ {flatErrors.anticipatedChallenges}
+
+
+
- {!loading && values.status && (
-
- )}
+ {!loading && values.status && (
+
+ )}
-
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('saveAndStartNext')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
+
+ {h('saveAndReturn')}
-
setErrors({})}>
- {h('saveAndStartNext')}
-
-
-
handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
{id && (
diff --git a/src/views/ModelPlan/TaskList/OpsEvalAndLearning/Performance/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/OpsEvalAndLearning/Performance/__snapshots__/index.test.tsx.snap
index 825fab7523..4599ef6f38 100644
--- a/src/views/ModelPlan/TaskList/OpsEvalAndLearning/Performance/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/OpsEvalAndLearning/Performance/__snapshots__/index.test.tsx.snap
@@ -97,715 +97,720 @@ exports[`Model Plan Ops Eval and Learning Performance matches snapshot 1`] = `
class="desktop:grid-col-6 margin-top-6"
data-testid="ops-eval-and-learning-performance-form"
>
-
-
+
-
-
+
- No
-
+
+
+
+
+ Add an additional note
+
-
+
-
+ Will you compute performance scores?
+
+
-
-
-
-
- Add an additional note
-
-
-
-
+
-
-
+
- No
-
+
+
+
+
+ Add an additional note
+
-
-
- Feedback Results
-
-
+
-
-
-
-
- Add an additional note
+ Back
+
+
+ Next
-
-
- Back
-
-
- Next
+
+
+
+
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
{
handleSubmit(e);
}}
>
-
-
- {t('establishBenchmark')}
-
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
+
+
+
+ {t('establishBenchmark')}
+
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
+ />
+ )}
+
+ {flatErrors.benchmarkForPerformance}
+
+
+ {Object.keys(BenchmarkForPerformanceType)
+ .sort(sortOtherEnum)
+ .map(key => (
+ {
+ setFieldValue('benchmarkForPerformance', key);
+ }}
+ />
+ ))}
+
+
+
- )}
-
- {flatErrors.benchmarkForPerformance}
-
-
- {Object.keys(BenchmarkForPerformanceType)
- .sort(sortOtherEnum)
- .map(key => (
+
+
+
+
+ {t('computeScores')}
+
+
+
+ {flatErrors.computePerformanceScores}
+
+
+ {[true, false].map(key => (
{
- setFieldValue('benchmarkForPerformance', key);
+ setFieldValue('computePerformanceScores', key);
}}
/>
))}
-
-
-
-
-
-
-
- {t('computeScores')}
-
-
-
- {flatErrors.computePerformanceScores}
-
-
- {[true, false].map(key => (
- {
- setFieldValue('computePerformanceScores', key);
- }}
- />
- ))}
-
-
-
-
-
-
-
- {t('riskAdjustments')}
-
-
-
- {t('performanceScores')}
-
-
- {flatErrors.riskAdjustPerformance}
-
-
- {[true, false].map(key => (
- {
- setFieldValue('riskAdjustPerformance', key);
- }}
- />
- ))}
-
+
-
- {t('feedbackResults')}
-
- {flatErrors.riskAdjustFeedback}
-
- {[true, false].map(key => (
- {
- setFieldValue('riskAdjustFeedback', key);
- }}
- />
- ))}
-
-
-
- {t('payments')}
-
- {flatErrors.riskAdjustPayments}
-
- {[true, false].map(key => (
- {
- setFieldValue('riskAdjustPayments', key);
- }}
- />
- ))}
-
-
-
- {t('others')}
-
- {flatErrors.riskAdjustOther}
-
- {[true, false].map(key => (
- {
- setFieldValue('riskAdjustOther', key);
- }}
- />
- ))}
-
-
-
-
-
-
-
- {t('participantAppeal')}
-
-
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
- className="margin-top-2"
+
- )}
-
-
- {t('appealsWarning')}
-
-
-
- {t('performanceScores')}
-
- {flatErrors.appealPerformance}
-
- {[true, false].map(key => (
- {
- setFieldValue('appealPerformance', key);
- }}
- />
- ))}
-
+
-
- {t('feedbackResults')}
-
-
{flatErrors.appealFeedback}
-
- {[true, false].map(key => (
- {
- setFieldValue('appealFeedback', key);
- }}
- />
- ))}
-
+
+ {t('riskAdjustments')}
+
+
+
+ {t('performanceScores')}
+
+
+ {flatErrors.riskAdjustPerformance}
+
+
+ {[true, false].map(key => (
+ {
+ setFieldValue('riskAdjustPerformance', key);
+ }}
+ />
+ ))}
+
+
+
+ {t('feedbackResults')}
+
+
+ {flatErrors.riskAdjustFeedback}
+
+
+ {[true, false].map(key => (
+ {
+ setFieldValue('riskAdjustFeedback', key);
+ }}
+ />
+ ))}
+
+
+
+ {t('payments')}
+
+
+ {flatErrors.riskAdjustPayments}
+
+
+ {[true, false].map(key => (
+ {
+ setFieldValue('riskAdjustPayments', key);
+ }}
+ />
+ ))}
+
+
+
+ {t('others')}
+
+
{flatErrors.riskAdjustOther}
+
+ {[true, false].map(key => (
+ {
+ setFieldValue('riskAdjustOther', key);
+ }}
+ />
+ ))}
+
-
- {t('payments')}
-
-
{flatErrors.appealPayments}
-
- {[true, false].map(key => (
- {
- setFieldValue('appealPayments', key);
- }}
- />
- ))}
-
+
+
-
- {t('others')}
-
-
{flatErrors.appealOther}
-
- {[true, false].map(key => (
- {
- setFieldValue('appealOther', key);
- }}
+
+ {t('participantAppeal')}
+
+
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
+ className="margin-top-2"
/>
- ))}
-
-
-
-
+ )}
+
+
+ {t('appealsWarning')}
+
+
+
+ {t('performanceScores')}
+
+
+ {flatErrors.appealPerformance}
+
+
+ {[true, false].map(key => (
+ {
+ setFieldValue('appealPerformance', key);
+ }}
+ />
+ ))}
+
+
+
+ {t('feedbackResults')}
+
+
{flatErrors.appealFeedback}
+
+ {[true, false].map(key => (
+ {
+ setFieldValue('appealFeedback', key);
+ }}
+ />
+ ))}
+
+
+
+ {t('payments')}
+
+
{flatErrors.appealPayments}
+
+ {[true, false].map(key => (
+ {
+ setFieldValue('appealPayments', key);
+ }}
+ />
+ ))}
+
+
+
+ {t('others')}
+
+
{flatErrors.appealOther}
+
+ {[true, false].map(key => (
+ {
+ setFieldValue('appealOther', key);
+ }}
+ />
+ ))}
+
-
+
+
+
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('next')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
+
+ {h('saveAndReturn')}
-
setErrors({})}>
- {h('next')}
-
-
-
handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
{id && (
diff --git a/src/views/ModelPlan/TaskList/OpsEvalAndLearning/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/OpsEvalAndLearning/__snapshots__/index.test.tsx.snap
index bf7807035f..14e2289c15 100644
--- a/src/views/ModelPlan/TaskList/OpsEvalAndLearning/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/OpsEvalAndLearning/__snapshots__/index.test.tsx.snap
@@ -97,235 +97,114 @@ exports[`Model Plan Ops Eval and Learning matches snapshot 1`] = `
class="desktop:grid-col-6 margin-top-6"
data-testid="ops-eval-and-learning-form"
>
-
- Will another Agency or State help design/operate the model? Select all that apply.
-
-
-
-
- Yes, we will get support from another agency through Inter Agency Agreement (IAA)
-
-
-
-
-
-
- Yes, we will get ideas from another agency
-
-
-
-
-
-
+
- Yes, we will partner with states
-
-
-
-
-
-
+
+ Yes, we will get support from another agency through Inter Agency Agreement (IAA)
+
+
+
+
-
-
-
+
+ Yes, we will get ideas from another agency
+
+
+
+
-
-
+
+ Yes, we will partner with states
+
+
+
+
-
+
-
-
-
- Add an additional note
-
-
-
+
- What stakeholders do you plan to communicate with?
-
-
+ No
+
+
-
-
+
+
+ What contractors will support your model?
+
+
+
+
+ One contractor to support implementation
+
+
+
+
+
+
+ May have separate contractors for different implementation functions
+
+
+
+
+
+
+ Do not plan to use an implemenation contractor
+
+
+
+
+
@@ -438,124 +583,112 @@ exports[`Model Plan Ops Eval and Learning matches snapshot 1`] = `
Add an additional note
-
-
- What contractors will support your model?
-
-
-
-
- One contractor to support implementation
-
-
-
-
-
-
- May have separate contractors for different implementation functions
-
-
-
-
-
-
- Do not plan to use an implemenation contractor
-
-
-
-
-
+
- Differ text
-
-
-
+
+ Next
+
+
- Add an additional note
-
-
-
-
-
- Next
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
{
handleSubmit(e);
}}
>
-
(
- <>
-
- {t('anotherAgency')}
-
-
- {flatErrors.agencyOrStateHelp}
-
-
- {Object.keys(AgencyOrStateHelpType)
- .sort(sortOtherEnum)
- .map(type => {
+
+ (
+ <>
+
+ {t('anotherAgency')}
+
+
+ {flatErrors.agencyOrStateHelp}
+
+
+ {Object.keys(AgencyOrStateHelpType)
+ .sort(sortOtherEnum)
+ .map(type => {
+ return (
+
+
+ ) => {
+ if (e.target.checked) {
+ arrayHelpers.push(e.target.value);
+ } else {
+ const idx = values.agencyOrStateHelp.indexOf(
+ e.target.value as AgencyOrStateHelpType
+ );
+ arrayHelpers.remove(idx);
+ }
+ }}
+ />
+ {type === 'OTHER' &&
+ values.agencyOrStateHelp.includes(
+ AgencyOrStateHelpType.OTHER
+ ) && (
+
+
+ {h('pleaseSpecify')}
+
+
+ {flatErrors.agencyOrStateHelpOther}
+
+
+
+ )}
+
+ );
+ })}
+
+ >
+ )}
+ />
+
+
+
+ {t('stakeholders')}
+
+ {flatErrors.stakeholders}
+
+ {
+ setFieldValue('stakeholders', value);
+ }}
+ initialValues={initialValues.stakeholders}
+ />
+
+ {values.stakeholders.includes(StakeholdersType.OTHER) && (
+ <>
+
+ {t('pleaseDescribe')}
+
+
+ {flatErrors.stakeholdersOther}
+
+
+ >
+ )}
+
+
+
+
+
+
+ {t('helpDesk')}
+
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
+ />
+ )}
+ {flatErrors.helpdeskUse}
+
+ {[true, false].map(key => (
+ {
+ setFieldValue('helpdeskUse', key);
+ }}
+ />
+ ))}
+
+
+
+
+
+ (
+ <>
+
+ {t('whatContractors')}
+
+
+ {flatErrors.contractorSupport}
+
+
+ {[
+ ContractorSupportType.ONE,
+ ContractorSupportType.MULTIPLE,
+ ContractorSupportType.NONE,
+ ContractorSupportType.OTHER
+ ].map(type => {
return (
@@ -329,315 +502,144 @@ export const OpsEvalAndLearningContent = () => {
if (e.target.checked) {
arrayHelpers.push(e.target.value);
} else {
- const idx = values.agencyOrStateHelp.indexOf(
- e.target.value as AgencyOrStateHelpType
+ const idx = values.contractorSupport.indexOf(
+ e.target.value as ContractorSupportType
);
arrayHelpers.remove(idx);
}
}}
/>
{type === 'OTHER' &&
- values.agencyOrStateHelp.includes(
- AgencyOrStateHelpType.OTHER
+ values.contractorSupport.includes(
+ ContractorSupportType.OTHER
) && (
{h('pleaseSpecify')}
- {flatErrors.agencyOrStateHelpOther}
+ {flatErrors.contractorSupportOther}
)}
);
})}
-
- >
- )}
- />
-
-
- {t('stakeholders')}
-
- {flatErrors.stakeholders}
-
-
+
+ {t('whatContractorsHow')}
+
+
+ {t('whatContractorsHowInfo')}
+
+
+ {flatErrors.contractorSupportHow}
+
+
+
+
+
+ >
)}
- selectedLabel={t('selectedStakeholders')}
- onChange={(value: string[] | []) => {
- setFieldValue('stakeholders', value);
- }}
- initialValues={initialValues.stakeholders}
/>
- {values.stakeholders.includes(StakeholdersType.OTHER) && (
- <>
-
- {t('pleaseDescribe')}
-
-
- {flatErrors.stakeholdersOther}
-
-
+
+ {t('iddocSupport')}
+
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
/>
- >
- )}
-
-
-
-
-
-
- {t('helpDesk')}
-
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
- />
- )}
- {flatErrors.helpdeskUse}
-
- {[true, false].map(key => (
+ )}
+
+ {t('iddocSupportInfo')}
+
+
+ {t('iddocSupportInfo2')}
+
+ {flatErrors.iddocSupport}
+
{
- setFieldValue('helpdeskUse', key);
+ setFieldValue('iddocSupport', true);
}}
/>
- ))}
-
-
-
-
-
- (
- <>
-
- {t('whatContractors')}
-
-
- {flatErrors.contractorSupport}
-
-
- {[
- ContractorSupportType.ONE,
- ContractorSupportType.MULTIPLE,
- ContractorSupportType.NONE,
- ContractorSupportType.OTHER
- ].map(type => {
- return (
-
-
- ) => {
- if (e.target.checked) {
- arrayHelpers.push(e.target.value);
- } else {
- const idx = values.contractorSupport.indexOf(
- e.target.value as ContractorSupportType
- );
- arrayHelpers.remove(idx);
- }
- }}
- />
- {type === 'OTHER' &&
- values.contractorSupport.includes(
- ContractorSupportType.OTHER
- ) && (
-
-
- {h('pleaseSpecify')}
-
-
- {flatErrors.contractorSupportOther}
-
-
-
- )}
-
- );
- })}
-
-
-
- {t('whatContractorsHow')}
-
-
- {t('whatContractorsHowInfo')}
-
-
- {flatErrors.contractorSupportHow}
-
-
-
-
- {
+ setFieldValue('iddocSupport', false);
+ }}
/>
- >
- )}
- />
+
-
-
- {t('iddocSupport')}
-
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
- />
- )}
-
- {t('iddocSupportInfo')}
-
-
- {t('iddocSupportInfo2')}
-
- {flatErrors.iddocSupport}
-
- {
- setFieldValue('iddocSupport', true);
- }}
+
- {
- setFieldValue('iddocSupport', false);
- }}
- />
-
-
-
-
-
-
-
setErrors({})}>
- {h('next')}
+
+
+
+ setErrors({})}>
+ {h('next')}
+
+
+ handleFormSubmit('back')}
+ >
+
+ {h('saveAndReturn')}
-
- handleFormSubmit('back')}
- >
-
- {h('saveAndReturn')}
-
+
{id && (
diff --git a/src/views/ModelPlan/TaskList/ParticipantsAndProviders/Communication/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/ParticipantsAndProviders/Communication/__snapshots__/index.test.tsx.snap
index 5829107a2a..44d2926cc2 100644
--- a/src/views/ModelPlan/TaskList/ParticipantsAndProviders/Communication/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/ParticipantsAndProviders/Communication/__snapshots__/index.test.tsx.snap
@@ -97,438 +97,443 @@ exports[`Model Plan Communication matches snapshot 1`] = `
class="desktop:grid-col-6 margin-top-6"
data-testid="participants-and-providers-communication-form"
>
-
-
-
-
- Will the risk arrangement change as the model progresses?
-
-
+
+ No
+
+
+
+
+ What type of risk will the participant assume?
+
+
+
+
+
+ Capitalization
+
+
+
+
+
+ One-sided
+
+
+
+
+
+ Two-sided
+
+
+
+
+
+ Other
+
+
+
+
+ Please specify
+
+
+ Programmatic Risk
+
+
+
-
-
- Yes
-
+
+
+
+
+ Add an additional note
+
+
+
-
-
-
-
- Add an additional note
+ Back
+
+
+ Next
-
-
- Back
-
-
- Next
+
+
+
+
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
{
handleSubmit(e);
}}
>
-
- (
- <>
-
- {t('participantCommunication')}
-
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
+
+
+ (
+ <>
+
+ {t('participantCommunication')}
+
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
+ />
+ )}
+
+ {flatErrors.communicationMethod}
+
+
+ {Object.keys(ParticipantCommunicationType)
+ .sort(sortOtherEnum)
+ .map(type => {
+ return (
+
+
+ ) => {
+ if (e.target.checked) {
+ arrayHelpers.push(e.target.value);
+ } else {
+ const idx = values.communicationMethod.indexOf(
+ e.target
+ .value as ParticipantCommunicationType
+ );
+ arrayHelpers.remove(idx);
+ }
+ }}
+ />
+ {type === 'OTHER' &&
+ values.communicationMethod.includes(
+ 'OTHER' as ParticipantCommunicationType
+ ) && (
+
+
+ {h('pleaseSpecify')}
+
+
+ {flatErrors.communicationMethodOther}
+
+
+
+ )}
+
+ );
+ })}
+
- )}
-
- {flatErrors.communicationMethod}
-
+ >
+ )}
+ />
+
- {Object.keys(ParticipantCommunicationType)
- .sort(sortOtherEnum)
- .map(type => {
- return (
-
+
+
+ {t('assumeRisk')}
+
+
+ {flatErrors.participantAssumeRisk}
+
+
+ {
+ setFieldValue('participantAssumeRisk', true);
+ }}
+ />
+ {
+ setFieldValue('participantAssumeRisk', false);
+ }}
+ />
+
+
+ {values.participantAssumeRisk && (
+ <>
+
+ {t('riskType')}
+
+ {flatErrors.riskType}
+
+ {Object.keys(ParticipantRiskType)
+ .sort(sortOtherEnum)
+ .map(key => (
+
- ) => {
- if (e.target.checked) {
- arrayHelpers.push(e.target.value);
- } else {
- const idx = values.communicationMethod.indexOf(
- e.target
- .value as ParticipantCommunicationType
- );
- arrayHelpers.remove(idx);
- }
+ as={Radio}
+ id={`participants-and-providers-risk-type-${key}`}
+ name="riskType"
+ label={translateRiskType(key)}
+ value={key}
+ checked={values.riskType === key}
+ onChange={() => {
+ setFieldValue('riskType', key);
}}
/>
- {type === 'OTHER' &&
- values.communicationMethod.includes(
- 'OTHER' as ParticipantCommunicationType
- ) && (
-
-
- {h('pleaseSpecify')}
-
-
- {flatErrors.communicationMethodOther}
-
-
-
- )}
+ {key === 'OTHER' && values.riskType === key && (
+
+
+ {h('pleaseSpecify')}
+
+
+ {flatErrors.riskOther}
+
+
+
+ )}
- );
- })}
-
+ ))}
+
>
)}
- />
-
-
-
-
- {t('assumeRisk')}
-
-
- {flatErrors.participantAssumeRisk}
-
-
- {
- setFieldValue('participantAssumeRisk', true);
- }}
+
- {
- setFieldValue('participantAssumeRisk', false);
- }}
- />
-
-
- {values.participantAssumeRisk && (
- <>
-
- {t('riskType')}
-
- {flatErrors.riskType}
-
- {Object.keys(ParticipantRiskType)
- .sort(sortOtherEnum)
- .map(key => (
-
- {
- setFieldValue('riskType', key);
- }}
- />
- {key === 'OTHER' && values.riskType === key && (
-
-
- {h('pleaseSpecify')}
-
-
- {flatErrors.riskOther}
-
-
-
- )}
-
- ))}
-
- >
- )}
-
-
+
-
-
- {t('changeRisk')}
-
- {flatErrors.willRiskChange}
-
- {
- setFieldValue('willRiskChange', true);
- }}
- />
- {
- setFieldValue('willRiskChange', false);
- }}
+
+
+ {t('changeRisk')}
+
+ {flatErrors.willRiskChange}
+
+ {
+ setFieldValue('willRiskChange', true);
+ }}
+ />
+ {
+ setFieldValue('willRiskChange', false);
+ }}
+ />
+
+
-
-
-
+
-
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('next')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
-
-
setErrors({})}>
- {h('next')}
+
+ {h('saveAndReturn')}
-
-
handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
{id && (
-
+
+
-
-
-
- Note: If this will be a MIPS or Advanced APM, you need to collect provider TIN-NPIs for participants to benefit from QPP. In addition, CPI vetting needs to be preformed.
-
-
-
-
-
-
-
- Please specify
-
-
- Candy Kingdom Operations Number
-
-
-
-
-
- No, we will not collect provider identifiers
-
-
+
+
+
+
+
+ Add an additional note
+
+
-
-
-
-
- Add an additional note
+ Back
+
+
+ Next
-
-
- Back
-
-
- Next
+
+
+
+
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
{
handleSubmit(e);
}}
>
-
-
- {t('workCoordination')}
-
-
- {t('workCoordinationNote')}
-
- {flatErrors.coordinateWork}
-
- {
- setFieldValue('coordinateWork', true);
- }}
- />
- {
- setFieldValue('coordinateWork', false);
- }}
- />
-
-
-
-
-
-
- {t('gainsharing')}
-
- {flatErrors.gainsharePayments}
-
- {
- setFieldValue('gainsharePayments', true);
- }}
- />
- {
- setFieldValue('gainsharePayments', false);
- }}
+
+
+
+ {t('workCoordination')}
+
+
+ {t('workCoordinationNote')}
+
+ {flatErrors.coordinateWork}
+
+ {
+ setFieldValue('coordinateWork', true);
+ }}
+ />
+ {
+ setFieldValue('coordinateWork', false);
+ }}
+ />
+
+
-
+
- {values.gainsharePayments && (
- <>
-
- {t('trackPayments')}
-
-
- {flatErrors.gainsharePaymentsTrack}
-
-
- {
- setFieldValue('gainsharePaymentsTrack', true);
- }}
- />
- {
- setFieldValue('gainsharePaymentsTrack', false);
- }}
- />
-
- >
- )}
-
-
+
+
+ {t('gainsharing')}
+
+
+ {flatErrors.gainsharePayments}
+
+
+ {
+ setFieldValue('gainsharePayments', true);
+ }}
+ />
+ {
+ setFieldValue('gainsharePayments', false);
+ }}
+ />
+
-
- (
+ {values.gainsharePayments && (
<>
-
- {t('collectTINs')}
-
-
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
- />
- )}
-
-
- {t('collectTINsInfo')}
-
-
+
+ {t('trackPayments')}
+
- {flatErrors.participantsIds}
+ {flatErrors.gainsharePaymentsTrack}
-
- {Object.keys(ParticipantsIDType)
- .sort(sortOtherEnum)
- .map(type => {
- return (
-
-
- ) => {
- if (e.target.checked) {
- arrayHelpers.push(e.target.value);
- } else {
- const idx = values.participantsIds.indexOf(
- e.target.value as ParticipantsIDType
- );
- arrayHelpers.remove(idx);
- }
- }}
- />
- {type === ('OTHER' as ParticipantsIDType) &&
- values.participantsIds.includes(type) && (
-
-
- {h('pleaseSpecify')}
-
-
- {flatErrors.participantsIdsOther}
-
-
-
- )}
-
- );
- })}
-
+
+ {
+ setFieldValue('gainsharePaymentsTrack', true);
+ }}
+ />
+ {
+ setFieldValue('gainsharePaymentsTrack', false);
+ }}
+ />
+
>
)}
- />
-
+
+
+
+
+ (
+ <>
+
+ {t('collectTINs')}
+
-
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
+ />
+ )}
+
+
+ {t('collectTINsInfo')}
+
+
+
+ {flatErrors.participantsIds}
+
+
+ {Object.keys(ParticipantsIDType)
+ .sort(sortOtherEnum)
+ .map(type => {
+ return (
+
+
+ ) => {
+ if (e.target.checked) {
+ arrayHelpers.push(e.target.value);
+ } else {
+ const idx = values.participantsIds.indexOf(
+ e.target.value as ParticipantsIDType
+ );
+ arrayHelpers.remove(idx);
+ }
+ }}
+ />
+ {type === ('OTHER' as ParticipantsIDType) &&
+ values.participantsIds.includes(type) && (
+
+
+ {h('pleaseSpecify')}
+
+
+ {flatErrors.participantsIdsOther}
+
+
+
+ )}
+
+ );
+ })}
+
+ >
+ )}
+ />
+
+
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('next')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
+
+ {h('saveAndReturn')}
- setErrors({})}>
- {h('next')}
-
-
- handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
{id && (
-
-
+ How will you recruit the participants?
+
+
-
-
-
+ Use an application collection tool
+
+
+
+
-
- Add an additional note
-
-
-
-
-
+
-
-
- Not applicable
-
+
+
+
+
+ Add an additional note
+
-
+
-
-
+
+
-
-
-
- Add an additional note
-
-
-
-
-
-
-
-
- Add an additional note
+ Back
+
+
+ Next
-
-
- Back
-
-
- Next
+
+
+
+
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
{
handleSubmit(e);
}}
>
-
-
- {t('howManyParticipants')}
-
-
- {t('howManyInfo')}
-
-
- {flatErrors.expectedNumberOfParticipants}
-
- ) => {
- setFieldValue(
- 'expectedNumberOfParticipants',
- Number(e.target.value)
- );
- }}
- />
-
- {t('zero')}
- {t('tenThousand')}
-
-
+
- {t('numberOfParticipants')}
-
-
- {flatErrors.expectedNumberOfParticipants}
-
- ) => {
- if (Number.isNaN(e.target.value)) return;
- setFieldValue(
- 'expectedNumberOfParticipants',
- Number(e.target.value)
- );
- }}
- />
+
+ {t('howManyParticipants')}
+
+
+ {t('howManyInfo')}
+
+
+ {flatErrors.expectedNumberOfParticipants}
+
+ ) => {
+ setFieldValue(
+ 'expectedNumberOfParticipants',
+ Number(e.target.value)
+ );
+ }}
+ />
+
+ {t('zero')}
+ {t('tenThousand')}
+
+
+ {t('numberOfParticipants')}
+
+
+ {flatErrors.expectedNumberOfParticipants}
+
+ ) => {
+ if (Number.isNaN(e.target.value)) return;
+ setFieldValue(
+ 'expectedNumberOfParticipants',
+ Number(e.target.value)
+ );
+ }}
+ />
+
+
+ {t('estimateConfidence')}
+
+
+ {flatErrors.participantsCurrentlyInModels}
+
+
+ {[
+ ConfidenceType.NOT_AT_ALL,
+ ConfidenceType.SLIGHTLY,
+ ConfidenceType.FAIRLY,
+ ConfidenceType.COMPLETELY
+ ].map(key => (
+ {
+ setFieldValue('estimateConfidence', key);
+ }}
+ />
+ ))}
+
+
+
-
- {t('estimateConfidence')}
-
-
- {flatErrors.participantsCurrentlyInModels}
-
-
- {[
- ConfidenceType.NOT_AT_ALL,
- ConfidenceType.SLIGHTLY,
- ConfidenceType.FAIRLY,
- ConfidenceType.COMPLETELY
- ].map(key => (
- {
- setFieldValue('estimateConfidence', key);
- }}
+
+ {t('recruitParticipants')}
+
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
/>
- ))}
-
-
-
-
-
-
- {t('recruitParticipants')}
-
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
- />
- )}
- {flatErrors.recruitmentMethod}
-
- {Object.keys(RecruitmentType)
- .sort(sortOtherEnum)
- .map(key => (
-
- {
- setFieldValue('recruitmentMethod', key);
- }}
- />
- {key === RecruitmentType.NOFO && (
-
- {t('recruitOptions.recruitInfo')}
-
- )}
- {key === RecruitmentType.OTHER &&
- values.recruitmentMethod === key && (
-
-
- {h('pleaseSpecify')}
-
-
- {flatErrors.recruitmentOther}
-
-
-
+ )}
+
+ {flatErrors.recruitmentMethod}
+
+
+ {Object.keys(RecruitmentType)
+ .sort(sortOtherEnum)
+ .map(key => (
+
+ {
+ setFieldValue('recruitmentMethod', key);
+ }}
+ />
+ {key === RecruitmentType.NOFO && (
+
+ {t('recruitOptions.recruitInfo')}
+
)}
-
- ))}
-
+ {key === RecruitmentType.OTHER &&
+ values.recruitmentMethod === key && (
+
+
+ {h('pleaseSpecify')}
+
+
+ {flatErrors.recruitmentOther}
+
+
+
+ )}
+
+ ))}
+
-
-
-
-
- {t('howWillYouSelect')}
-
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
+
- )}
- {flatErrors.participants}
- {
- setFieldValue('selectionMethod', value);
- }}
- initialValues={initialValues.selectionMethod}
- />
- {(values?.selectionMethod || []).includes(
- 'OTHER' as ParticipantSelectionType
- ) && (
-
+
+
-
- {t('describeOther')}
-
- {flatErrors.selectionOther}
-
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
/>
-
- )}
+ )}
+ {flatErrors.participants}
+ {
+ setFieldValue('selectionMethod', value);
+ }}
+ initialValues={initialValues.selectionMethod}
+ />
+ {(values?.selectionMethod || []).includes(
+ 'OTHER' as ParticipantSelectionType
+ ) && (
+
+
+ {t('describeOther')}
+
+
+ {flatErrors.selectionOther}
+
+
+
+ )}
-
-
+
+
-
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('next')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
-
-
setErrors({})}>
- {h('next')}
+
+ {h('saveAndReturn')}
-
-
handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
{id && (
-
+
+
+
+ Rolling
+
+
+
+
+
+ Other
+
+
+
-
-
- Other
-
+
+
+
+
+ Add an additional note
+
-
+
-
-
-
-
-
- Add an additional note
-
-
-
-
-
-
-
-
-
- Save and return to task list
-
+
{
handleSubmit(e);
}}
>
-
-
- {t('frequency')}
-
-
- {flatErrors.providerAdditionFrequency}
-
-
-
- {flatErrors.providerAdditionFrequency}
-
-
- {Object.keys(FrequencyType)
- .sort(sortOtherEnum)
- .map(key => (
-
- {
- setFieldValue('providerAdditionFrequency', key);
- }}
- />
- {key === 'OTHER' &&
- values.providerAdditionFrequency === key && (
-
-
- {h('pleaseSpecify')}
-
-
- {flatErrors.providerAdditionFrequencyOther}
-
-
-
- )}
-
- ))}
-
-
-
-
-
-
+
- {t('decideProviders')}
-
-
- {t('decideProvidersInfo')}
-
- {flatErrors.providerAddMethod}
-
- {
- setFieldValue('providerAddMethod', value);
- }}
- initialValues={initialValues.providerAddMethod}
- />
-
- {(values?.providerAddMethod || []).includes(
- 'OTHER' as ProviderAddType
- ) && (
-
-
- {t('decideProvidersDescribe')}
-
-
- {flatErrors.providerAddMethodOther}
-
-
-
- )}
-
-
-
-
-
(
- <>
-
- {t('canProvidersLeave')}
-
-
- {t('canProvidersLeaveInfo')}
-
-
- {flatErrors.providerLeaveMethod}
-
-
- {[
- ProviderLeaveType.VARIES_BY_TYPE_OF_PROVIDER,
- ProviderLeaveType.NOT_ALLOWED_TO_LEAVE,
- ProviderLeaveType.AFTER_A_CERTAIN_WITH_IMPLICATIONS,
- ProviderLeaveType.VOLUNTARILY_WITHOUT_IMPLICATIONS,
- ProviderLeaveType.OTHER,
- ProviderLeaveType.NOT_APPLICABLE
- ].map(type => {
- return (
-
+
+ {t('frequency')}
+
+
+ {flatErrors.providerAdditionFrequency}
+
+
+
+ {flatErrors.providerAdditionFrequency}
+
+
+ {Object.keys(FrequencyType)
+ .sort(sortOtherEnum)
+ .map(key => (
+
- ) => {
- if (e.target.checked) {
- arrayHelpers.push(e.target.value);
- } else {
- const idx = values.providerLeaveMethod.indexOf(
- e.target.value as ProviderLeaveType
- );
- arrayHelpers.remove(idx);
- }
+ as={Radio}
+ id={`participants-and-providers-additional-frequency-${key}`}
+ name="providerAdditionFrequency"
+ label={translateFrequencyType(key)}
+ value={key}
+ checked={values.providerAdditionFrequency === key}
+ onChange={() => {
+ setFieldValue('providerAdditionFrequency', key);
}}
/>
- {type === ('OTHER' as ProviderLeaveType) &&
- values.providerLeaveMethod.includes(type) && (
-
+ {key === 'OTHER' &&
+ values.providerAdditionFrequency === key && (
+
{h('pleaseSpecify')}
- {flatErrors.providerLeaveMethodOther}
+ {flatErrors.providerAdditionFrequencyOther}
)}
- );
- })}
-
- >
- )}
- />
-
-
-
- {t('overlap')}
-
-
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
+ ))}
+
+
- )}
+
-
{flatErrors.providerOverlap}
-
-
- {Object.keys(OverlapType)
- .sort(sortOtherEnum)
- .map(key => (
-
- {
- setFieldValue('providerOverlap', key);
- }}
- />
-
- ))}
-
- {(values.providerOverlap === 'YES_NEED_POLICIES' ||
- values.providerOverlap === 'YES_NO_ISSUES') && (
-
+
-
+
+ {t('decideProvidersInfo')}
+
+
+ {flatErrors.providerAddMethod}
+
+
+ {
+ setFieldValue('providerAddMethod', value);
+ }}
+ initialValues={initialValues.providerAddMethod}
+ />
+
+ {(values?.providerAddMethod || []).includes(
+ 'OTHER' as ProviderAddType
+ ) && (
+
- {t('overlapInfo')}
-
-
- {flatErrors.providerOverlapHierarchy}
-
-
+ {t('decideProvidersDescribe')}
+
+
+ {flatErrors.providerAddMethodOther}
+
+
+
+ )}
+
+
+
+
+
(
+ <>
+
+ {t('canProvidersLeave')}
+
+
+ {t('canProvidersLeaveInfo')}
+
+
+ {flatErrors.providerLeaveMethod}
+
+
+ {[
+ ProviderLeaveType.VARIES_BY_TYPE_OF_PROVIDER,
+ ProviderLeaveType.NOT_ALLOWED_TO_LEAVE,
+ ProviderLeaveType.AFTER_A_CERTAIN_WITH_IMPLICATIONS,
+ ProviderLeaveType.VOLUNTARILY_WITHOUT_IMPLICATIONS,
+ ProviderLeaveType.OTHER,
+ ProviderLeaveType.NOT_APPLICABLE
+ ].map(type => {
+ return (
+
+
+ ) => {
+ if (e.target.checked) {
+ arrayHelpers.push(e.target.value);
+ } else {
+ const idx = values.providerLeaveMethod.indexOf(
+ e.target.value as ProviderLeaveType
+ );
+ arrayHelpers.remove(idx);
+ }
+ }}
+ />
+ {type === ('OTHER' as ProviderLeaveType) &&
+ values.providerLeaveMethod.includes(type) && (
+
+
+ {h('pleaseSpecify')}
+
+
+ {flatErrors.providerLeaveMethodOther}
+
+
+
+ )}
+
+ );
+ })}
+
+ >
+ )}
+ />
+
+
+
+ {t('overlap')}
+
+
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
/>
-
+ )}
+
+ {flatErrors.providerOverlap}
+
+
+ {Object.keys(OverlapType)
+ .sort(sortOtherEnum)
+ .map(key => (
+
+ {
+ setFieldValue('providerOverlap', key);
+ }}
+ />
+
+ ))}
+
+ {(values.providerOverlap === 'YES_NEED_POLICIES' ||
+ values.providerOverlap === 'YES_NO_ISSUES') && (
+
+
+ {t('overlapInfo')}
+
+
+ {flatErrors.providerOverlapHierarchy}
+
+
+
+ )}
+
+
+
+ {!loading && values.status && (
+
)}
-
-
-
- {!loading && values.status && (
-
- )}
-
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('saveAndStartNext')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
+
+ {h('saveAndReturn')}
-
setErrors({})}>
- {h('saveAndStartNext')}
-
-
- handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
{id && (
-
-
-
-
-
- Next
+
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
{
handleSubmit(e);
}}
>
-
-
+
- {t('whoAreParticipants')}
-
- {flatErrors.participants}
+
+ {t('whoAreParticipants')}
+
+
+ {flatErrors.participants}
+
- {
- setFieldValue('participants', value);
- }}
- initialValues={initialValues.participants}
- />
+ {
+ setFieldValue('participants', value);
+ }}
+ initialValues={initialValues.participants}
+ />
- {((values?.participants || []).includes(
- ParticipantsType.MEDICARE_PROVIDERS
- ) ||
- (values?.participants || []).includes(
- ParticipantsType.STATES
+ {((values?.participants || []).includes(
+ ParticipantsType.MEDICARE_PROVIDERS
) ||
- (values?.participants || []).includes(
- ParticipantsType.OTHER
- )) && (
-
- {t('participantQuestions')}
-
- )}
+ (values?.participants || []).includes(
+ ParticipantsType.STATES
+ ) ||
+ (values?.participants || []).includes(
+ ParticipantsType.OTHER
+ )) && (
+
+ {t('participantQuestions')}
+
+ )}
- {(values?.participants || []).includes(
- ParticipantsType.MEDICARE_PROVIDERS
- ) && (
-
-
- {t('typeMedicateProvider')}
-
-
- {flatErrors.medicareProviderType}
-
-
-
- )}
+
+ {t('typeMedicateProvider')}
+
+
+ {flatErrors.medicareProviderType}
+
+
+
+ )}
- {(values?.participants || []).includes(
- ParticipantsType.STATES
- ) && (
-
-
- {t('describeStates')}
-
-
- {flatErrors.statesEngagement}
-
-
-
- )}
+
+ {t('describeStates')}
+
+
+ {flatErrors.statesEngagement}
+
+
+
+ )}
- {(values?.participants || []).includes(
- ParticipantsType.OTHER
- ) && (
-
-
- {t('describeOther')}
-
-
- {flatErrors.participantsOther}
-
-
-
- )}
+
+ {t('describeOther')}
+
+
+ {flatErrors.participantsOther}
+
+
+
+ )}
-
-
+
+
-
-
- {t('participantsCMMI')}
-
-
- {t('participantsCMMIInfo')}
-
-
- {flatErrors.participantsCurrentlyInModels}
-
-
- {
- setFieldValue(
- 'participantsCurrentlyInModels',
- true
- );
- }}
+
+
+ {t('participantsCMMI')}
+
+
+ {t('participantsCMMIInfo')}
+
+
+ {flatErrors.participantsCurrentlyInModels}
+
+
+ {
+ setFieldValue(
+ 'participantsCurrentlyInModels',
+ true
+ );
+ }}
+ />
+ {
+ setFieldValue(
+ 'participantsCurrentlyInModels',
+ false
+ );
+ }}
+ />
+
+
+
+
+
+
+ {t('modelLevel')}
+
+
+ {t('modelLevelInfo')}
+
+
+ {flatErrors.modelApplicationLevel}
+
{
- setFieldValue(
- 'participantsCurrentlyInModels',
- false
- );
- }}
+ as={TextAreaField}
+ error={flatErrors.modelApplicationLevel}
+ id="participants-and-providers-application-level"
+ name="modelApplicationLevel"
/>
-
-
-
-
-
-
- {t('modelLevel')}
-
-
- {t('modelLevelInfo')}
-
-
- {flatErrors.modelApplicationLevel}
-
-
-
+
-
-
setErrors({})}>
- {h('next')}
+
+ setErrors({})}>
+ {h('next')}
+
+
+ handleFormSubmit('back')}
+ >
+
+ {h('saveAndReturn')}
-
-
handleFormSubmit('back')}
- >
-
- {h('saveAndReturn')}
-
+
diff --git a/src/views/ModelPlan/TaskList/Payment/AnticipateDependencies/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/Payment/AnticipateDependencies/__snapshots__/index.test.tsx.snap
index 5bb24b45a2..064789aef8 100644
--- a/src/views/ModelPlan/TaskList/Payment/AnticipateDependencies/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/Payment/AnticipateDependencies/__snapshots__/index.test.tsx.snap
@@ -109,360 +109,365 @@ exports[`Model Plan -- Anticipate Dependencies matches snapshot 1`] = `
class="margin-top-6"
data-testid="payment-anticipate-dependencies-form"
>
-
- Claims-based payment questions continued
-
-
-
+ Will your contractor be providing data (a Third Party File) that will be used in claims processing?
+
+
-
-
-
+ Yes
+
+
+
+
-
- Add an additional note
-
+
+ No
+
+
+
-
-
-
+
-
-
-
+ Next
+
+
- Back
-
-
- Next
+
+
+
+
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
diff --git a/src/views/ModelPlan/TaskList/Payment/AnticipateDependencies/index.tsx b/src/views/ModelPlan/TaskList/Payment/AnticipateDependencies/index.tsx
index 769f5aca78..48f7d55e67 100644
--- a/src/views/ModelPlan/TaskList/Payment/AnticipateDependencies/index.tsx
+++ b/src/views/ModelPlan/TaskList/Payment/AnticipateDependencies/index.tsx
@@ -216,199 +216,211 @@ const AnticipateDependencies = () => {
handleSubmit(e);
}}
>
-
- {t('claimSpecificQuestionsContinued')}
-
+
+
+ {t('claimSpecificQuestionsContinued')}
+
-
-
- {t('ancitipateCreatingDependencies')}
-
-
- {t('ancitipateCreatingDependenciesSubcopy')}
-
-
- {flatErrors.creatingDependenciesBetweenServices}
-
-
- {[true, false].map(key => (
- {
- setFieldValue(
- 'creatingDependenciesBetweenServices',
+
+ {t('ancitipateCreatingDependencies')}
+
+
+ {t('ancitipateCreatingDependenciesSubcopy')}
+
+
+ {flatErrors.creatingDependenciesBetweenServices}
+
+
+ {[true, false].map(key => (
+
- ))}
-
-
-
+ }
+ onChange={() => {
+ setFieldValue(
+ 'creatingDependenciesBetweenServices',
+ key
+ );
+ }}
+ />
+ ))}
+
+
+
-
-
- {t('needsClaimsDataCollection')}
-
-
- {t('needsClaimsDataCollectionSubcopy')}
-
-
- {flatErrors.needsClaimsDataCollection}
-
-
- {[true, false].map(key => (
- {
- setFieldValue('needsClaimsDataCollection', key);
- }}
- />
- ))}
-
-
-
+
+ {t('needsClaimsDataCollection')}
+
+
+ {t('needsClaimsDataCollectionSubcopy')}
+
+
+ {flatErrors.needsClaimsDataCollection}
+
+
+ {[true, false].map(key => (
+ {
+ setFieldValue(
+ 'needsClaimsDataCollection',
+ key
+ );
+ }}
+ />
+ ))}
+
+
+
-
-
- {t('thirdParty')}
-
-
- {flatErrors.providingThirdPartyFile}
-
-
- {[true, false].map(key => (
- {
- setFieldValue('providingThirdPartyFile', key);
- }}
- />
- ))}
-
-
+
+ {t('thirdParty')}
+
+
+ {flatErrors.providingThirdPartyFile}
+
+
+ {[true, false].map(key => (
+ {
+ setFieldValue('providingThirdPartyFile', key);
+ }}
+ />
+ ))}
+
+
-
- {t('alert')}
-
+
+ {t('alert')}
+
-
-
- {t('isContractorAwareTestDataRequirements')}
-
-
- {flatErrors.isContractorAwareTestDataRequirements}
-
-
- {[true, false].map(key => (
- {
- setFieldValue(
- 'isContractorAwareTestDataRequirements',
+
+ {t('isContractorAwareTestDataRequirements')}
+
+
+ {flatErrors.isContractorAwareTestDataRequirements}
+
+
+ {[true, false].map(key => (
+
- ))}
-
-
+ }
+ onChange={() => {
+ setFieldValue(
+ 'isContractorAwareTestDataRequirements',
+ key
+ );
+ }}
+ />
+ ))}
+
+
-
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('next')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
-
-
setErrors({})}>
- {h('next')}
+
+ {h('saveAndReturn')}
-
- handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
diff --git a/src/views/ModelPlan/TaskList/Payment/BeneficiaryCostSharing/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/Payment/BeneficiaryCostSharing/__snapshots__/index.test.tsx.snap
index 1ac44cbe3b..45e7419a88 100644
--- a/src/views/ModelPlan/TaskList/Payment/BeneficiaryCostSharing/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/Payment/BeneficiaryCostSharing/__snapshots__/index.test.tsx.snap
@@ -109,121 +109,49 @@ exports[`Model Plan -- BeneficiaryCostSharing matches snapshot 1`] = `
class="margin-top-6"
data-testid="payment-beneficiary-cost-sharing-form"
>
-
- Beneficiary cost-sharing questions
-
-
-
- What is the intended level of beneficiary cost-sharing and how will it be handled?
-
-
- This is a string
-
-
-
-
-
-
-
- Add an additional note
+ Back
+
+
+ Next
-
-
- Back
-
-
- Next
+
+
+
+
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
diff --git a/src/views/ModelPlan/TaskList/Payment/BeneficiaryCostSharing/index.tsx b/src/views/ModelPlan/TaskList/Payment/BeneficiaryCostSharing/index.tsx
index f60b9949d3..d3a76459c1 100644
--- a/src/views/ModelPlan/TaskList/Payment/BeneficiaryCostSharing/index.tsx
+++ b/src/views/ModelPlan/TaskList/Payment/BeneficiaryCostSharing/index.tsx
@@ -208,197 +208,206 @@ const BeneficiaryCostSharing = () => {
handleSubmit(e);
}}
>
-
- {t('beneficaryCostSharingQuestions')}
-
-
-
-
+
- {t('beneficiaryCostSharingLevelAndHandling')}
-
-
- {flatErrors.beneficiaryCostSharingLevelAndHandling}
-
-
+
+
-
-
-
-
- {t('waiveBeneficiaryCostSharingForAnyServices')}
-
-
- {flatErrors.waiveBeneficiaryCostSharingForAnyServices}
-
-
+
+ {t('beneficiaryCostSharingLevelAndHandling')}
+
+
+ {flatErrors.beneficiaryCostSharingLevelAndHandling}
+
{
- setFieldValue(
- 'waiveBeneficiaryCostSharingForAnyServices',
- true
- );
- }}
+ id="payment-beneficiary-cost-sharing"
+ data-testid="payment-beneficiary-cost-sharing"
+ name="beneficiaryCostSharingLevelAndHandling"
/>
+
+
+
+
+ {t('waiveBeneficiaryCostSharingForAnyServices')}
+
+
+ {
+ flatErrors.waiveBeneficiaryCostSharingForAnyServices
+ }
+
+
+ {
+ setFieldValue(
+ 'waiveBeneficiaryCostSharingForAnyServices',
+ true
+ );
+ }}
+ />
+ {values.waiveBeneficiaryCostSharingForAnyServices && (
+
+
+ {t(
+ 'waiveBeneficiaryCostSharingServiceSpecification'
+ )}
+
+
+ {
+ flatErrors.waiveBeneficiaryCostSharingServiceSpecification
+ }
+
+
+
+ )}
+
+ {
+ setFieldValue(
+ 'waiveBeneficiaryCostSharingForAnyServices',
+ false
+ );
+ }}
+ />
+
{values.waiveBeneficiaryCostSharingForAnyServices && (
- {t(
- 'waiveBeneficiaryCostSharingServiceSpecification'
- )}
+ {t('waiverOnlyAppliesPartOfPayment')}
+
+ {t('waiverOnlyAppliesPartOfPaymentSubcopy')}
+
- {
- flatErrors.waiveBeneficiaryCostSharingServiceSpecification
- }
+ {flatErrors.waiverOnlyAppliesPartOfPayment}
-
+
+ {[true, false].map(key => (
+ {
+ setFieldValue(
+ 'waiverOnlyAppliesPartOfPayment',
+ key
+ );
+ }}
+ />
+ ))}
+
)}
+
+
- {
- setFieldValue(
- 'waiveBeneficiaryCostSharingForAnyServices',
- false
- );
+
+
{
+ handleFormSubmit('back');
}}
- />
-
- {values.waiveBeneficiaryCostSharingForAnyServices && (
-
-
- {t('waiverOnlyAppliesPartOfPayment')}
-
-
- {t('waiverOnlyAppliesPartOfPaymentSubcopy')}
-
-
- {flatErrors.waiverOnlyAppliesPartOfPayment}
-
-
- {[true, false].map(key => (
- {
- setFieldValue(
- 'waiverOnlyAppliesPartOfPayment',
- key
- );
- }}
- />
- ))}
-
-
- )}
-
-
-
-
+ {h('back')}
+
+ setErrors({})}>
+ {h('next')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
-
- setErrors({})}>
- {h('next')}
+
+ {h('saveAndReturn')}
-
- handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
diff --git a/src/views/ModelPlan/TaskList/Payment/ClaimsBasedPayment/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/Payment/ClaimsBasedPayment/__snapshots__/index.test.tsx.snap
index 10b35e189e..0d0975e9e2 100644
--- a/src/views/ModelPlan/TaskList/Payment/ClaimsBasedPayment/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/Payment/ClaimsBasedPayment/__snapshots__/index.test.tsx.snap
@@ -109,93 +109,118 @@ exports[`Model Plan -- Claims Based Payment matches snapshot 1`] = `
class="margin-top-6"
data-testid="payment-claims-based-payment-form"
>
-
- Claims-based payment questions
-
-
-
+ Does the model affect Medicare Secondary Payer claims?
+
+
-
-
-
+ Yes
+
+
+
+
-
- Add an additional note
-
-
-
-
-
- Does the model affect Medicare Secondary Payer claims?
-
-
+
+ No
+
+
+
-
-
- Yes
-
+
+
+
+
+ Add an additional note
+
-
+
+
-
-
- No
-
-
-
+ How does the model differ from current policy, especially in terms of payment rates and periodicity of payment?
+
+
+
-
-
-
-
- Add an additional note
+ Back
+
+
+ Next
-
-
-
- How does the model differ from current policy, especially in terms of payment rates and periodicity of payment?
-
-
-
-
- Back
-
-
- Next
+
+
+
+
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
diff --git a/src/views/ModelPlan/TaskList/Payment/ClaimsBasedPayment/index.tsx b/src/views/ModelPlan/TaskList/Payment/ClaimsBasedPayment/index.tsx
index c73e3a45e4..09c81db0da 100644
--- a/src/views/ModelPlan/TaskList/Payment/ClaimsBasedPayment/index.tsx
+++ b/src/views/ModelPlan/TaskList/Payment/ClaimsBasedPayment/index.tsx
@@ -231,309 +231,318 @@ const ClaimsBasedPayment = () => {
handleSubmit(e);
}}
>
-
- {t('claimSpecificQuestions')}
-
+
+
+ {t('claimSpecificQuestions')}
+
-
-
- {t('selectClaims')}
-
-
- {t('selectClaimsSubcopy')}
-
- {flatErrors.payClaims}
+
+ {t('selectClaims')}
+
+
+ {t('selectClaimsSubcopy')}
+
+ {flatErrors.payClaims}
+
+ {
+ setFieldValue('payClaims', value);
+ }}
+ initialValues={initialValues.payClaims}
+ />
-
+
+ {t('selectClaimsOther')}
+
+
+ {flatErrors.payClaimsOther}
+
+
+
)}
- selectedLabel={t('selectedClaimsOptions')}
- onChange={(value: string[] | []) => {
- setFieldValue('payClaims', value);
- }}
- initialValues={initialValues.payClaims}
- />
- {(values?.payClaims || []).includes(
- ClaimsBasedPayType.OTHER
- ) && (
-
+
+
+
+
-
- {t('selectClaimsOther')}
-
-
- {flatErrors.payClaimsOther}
-
-
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
/>
-
- )}
-
-
-
+ )}
+
+ {flatErrors.shouldAnyProvidersExcludedFFSSystems}
+
+
+ {[true, false].map(key => (
+ {
+ setFieldValue(
+ 'shouldAnyProvidersExcludedFFSSystems',
+ key
+ );
+ }}
+ />
+ ))}
+
+
+
-
-
- {t('excludedFromPayment')}
-
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
+
+ {t('chageMedicareFeeSchedule')}
+
+
+ {t('chageMedicareFeeScheduleSubcopy')}
+
+
+ {flatErrors.changesMedicarePhysicianFeeSchedule}
+
+
+ {[true, false].map(key => (
+ {
+ setFieldValue(
+ 'changesMedicarePhysicianFeeSchedule',
+ key
+ );
+ }}
+ />
+ ))}
+
+
- )}
-
- {flatErrors.shouldAnyProvidersExcludedFFSSystems}
-
-
- {[true, false].map(key => (
+
+
+
+
+ {t('affectMedicareSecondaryPayerClaim')}
+
+
+ {flatErrors.affectsMedicareSecondaryPayerClaims}
+
+
{
setFieldValue(
- 'shouldAnyProvidersExcludedFFSSystems',
- key
+ 'affectsMedicareSecondaryPayerClaims',
+ true
);
}}
/>
- ))}
-
-
-
-
-
-
- {t('chageMedicareFeeSchedule')}
-
-
- {t('chageMedicareFeeScheduleSubcopy')}
-
-
- {flatErrors.changesMedicarePhysicianFeeSchedule}
-
-
- {[true, false].map(key => (
+ {values.affectsMedicareSecondaryPayerClaims && (
+
+
+ {h('howSo')}
+
+
+ {
+ flatErrors.affectsMedicareSecondaryPayerClaimsHow
+ }
+
+
+
+ )}
{
setFieldValue(
- 'changesMedicarePhysicianFeeSchedule',
- key
+ 'affectsMedicareSecondaryPayerClaims',
+ false
);
}}
/>
- ))}
-
-
-
+
+
+
-
-
- {t('affectMedicareSecondaryPayerClaim')}
-
-
- {flatErrors.affectsMedicareSecondaryPayerClaims}
-
-
- {
- setFieldValue(
- 'affectsMedicareSecondaryPayerClaims',
- true
- );
- }}
- />
- {values.affectsMedicareSecondaryPayerClaims && (
-
-
- {h('howSo')}
-
-
- {
- flatErrors.affectsMedicareSecondaryPayerClaimsHow
- }
-
-
-
- )}
+
+ {t('affectCurrentPolicy')}
+
+
+ {flatErrors.payModelDifferentiation}
+
{
- setFieldValue(
- 'affectsMedicareSecondaryPayerClaims',
- false
- );
- }}
+ as={TextAreaField}
+ className="height-15"
+ error={flatErrors.payModelDifferentiation}
+ id="payment-affect-current-policy"
+ data-testid="payment-affect-current-policy"
+ name="payModelDifferentiation"
/>
-
-
-
-
-
-
- {t('affectCurrentPolicy')}
-
-
- {flatErrors.payModelDifferentiation}
-
-
-
+
-
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('next')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
-
-
setErrors({})}>
- {h('next')}
+
+ {h('saveAndReturn')}
-
- handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
diff --git a/src/views/ModelPlan/TaskList/Payment/Complexity/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/Payment/Complexity/__snapshots__/index.test.tsx.snap
index 7b90d0ca23..2ae73340d6 100644
--- a/src/views/ModelPlan/TaskList/Payment/Complexity/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/Payment/Complexity/__snapshots__/index.test.tsx.snap
@@ -109,285 +109,310 @@ exports[`Model Plan -- Complexity matches snapshot 1`] = `
class="margin-top-6"
data-testid="payment-complexity-form"
>
-
+
+
+
+ Middle level
+
+
+
+
+
+ High level
+
+
+
-
-
- High level
-
+
+
+
+
+ Add an additional note
+
-
+
-
+ Will participants be allowed to select between multiple payment mechanisms?
+
+
-
-
-
-
- Add an additional note
-
-
-
-
+
-
-
- No
-
+
+
+
+
+ Add an additional note
+
-
+
-
-
+
+
-
-
-
- Add an additional note
-
-
-
-
diff --git a/src/views/ModelPlan/TaskList/Payment/Complexity/index.tsx b/src/views/ModelPlan/TaskList/Payment/Complexity/index.tsx
index db39a9b462..da63a5d113 100644
--- a/src/views/ModelPlan/TaskList/Payment/Complexity/index.tsx
+++ b/src/views/ModelPlan/TaskList/Payment/Complexity/index.tsx
@@ -252,237 +252,249 @@ const Complexity = () => {
handleSubmit(e);
}}
>
-
-
+
- {t('expectedCalculationComplexityLevel')}
-
-
- {flatErrors.expectedCalculationComplexityLevel}
-
-
- {[
- ComplexityCalculationLevelType.LOW,
- ComplexityCalculationLevelType.MIDDLE,
- ComplexityCalculationLevelType.HIGH
- ].map(key => (
+
+ {t('expectedCalculationComplexityLevel')}
+
+
+ {flatErrors.expectedCalculationComplexityLevel}
+
+
+ {[
+ ComplexityCalculationLevelType.LOW,
+ ComplexityCalculationLevelType.MIDDLE,
+ ComplexityCalculationLevelType.HIGH
+ ].map(key => (
+ {
+ setFieldValue(
+ 'expectedCalculationComplexityLevel',
+ key
+ );
+ }}
+ />
+ ))}
+
+
+
+
+
+
+ {t('canParticipantsSelectBetweenPaymentMechanisms')}
+
+
+ {
+ flatErrors.canParticipantsSelectBetweenPaymentMechanisms
+ }
+
+
{
setFieldValue(
- 'expectedCalculationComplexityLevel',
- key
+ 'canParticipantsSelectBetweenPaymentMechanisms',
+ true
);
}}
/>
- ))}
-
-
-
+ {values.canParticipantsSelectBetweenPaymentMechanisms && (
+
+
+ {t(
+ 'canParticipantsSelectBetweenPaymentMechanismsHow'
+ )}
+
+
+ {
+ flatErrors.canParticipantsSelectBetweenPaymentMechanismsHow
+ }
+
+
+
+ )}
+ {
+ setFieldValue(
+ 'canParticipantsSelectBetweenPaymentMechanisms',
+ false
+ );
+ }}
+ />
+
+
+
-
-
- {t('canParticipantsSelectBetweenPaymentMechanisms')}
-
-
- {
- flatErrors.canParticipantsSelectBetweenPaymentMechanisms
- }
-
-
+
+ {t('anticipatedPaymentFrequency')}
+
+
+ {flatErrors.anticipatedPaymentFrequency}
+
+
{
+ as={MultiSelect}
+ id="payment-frequency-payments"
+ name="anticipatedPaymentFrequency"
+ ariaLabel="label-anticipatedPaymentFrequency"
+ options={dataFrequencyOptions.map(key => ({
+ value: key,
+ label: translateAnticipatedPaymentFrequencyType(
+ key
+ )
+ }))}
+ selectedLabel={t(
+ 'selectedAnticipatedPaymentFrequency'
+ )}
+ onChange={(value: string[] | []) => {
setFieldValue(
- 'canParticipantsSelectBetweenPaymentMechanisms',
- true
+ 'anticipatedPaymentFrequency',
+ value
);
}}
+ initialValues={
+ initialValues.anticipatedPaymentFrequency
+ }
/>
- {values.canParticipantsSelectBetweenPaymentMechanisms && (
+
+ {(values?.anticipatedPaymentFrequency || []).includes(
+ AnticipatedPaymentFrequencyType.OTHER
+ ) && (
- {t(
- 'canParticipantsSelectBetweenPaymentMechanismsHow'
- )}
+ {t('selectClaimsOther')}
- {
- flatErrors.canParticipantsSelectBetweenPaymentMechanismsHow
- }
+ {flatErrors.anticipatedPaymentFrequencyOther}
)}
- {
- setFieldValue(
- 'canParticipantsSelectBetweenPaymentMechanisms',
- false
- );
- }}
+
-
-
-
+
-
-
- {t('anticipatedPaymentFrequency')}
-
-
- {flatErrors.anticipatedPaymentFrequency}
-
-
- ({
- value: key,
- label: translateAnticipatedPaymentFrequencyType(key)
- }))}
- selectedLabel={t(
- 'selectedAnticipatedPaymentFrequency'
- )}
- onChange={(value: string[] | []) => {
- setFieldValue('anticipatedPaymentFrequency', value);
- }}
- initialValues={
- initialValues.anticipatedPaymentFrequency
- }
- />
-
- {(values?.anticipatedPaymentFrequency || []).includes(
- AnticipatedPaymentFrequencyType.OTHER
- ) && (
-
+ {
+ handleFormSubmit('back');
+ }}
>
-
- {t('selectClaimsOther')}
-
-
- {flatErrors.anticipatedPaymentFrequencyOther}
-
-
-
- )}
-
-
-
-
+ {h('back')}
+
+ setErrors({})}>
+ {h('next')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
-
- setErrors({})}>
- {h('next')}
+
+ {h('saveAndReturn')}
-
- handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
diff --git a/src/views/ModelPlan/TaskList/Payment/FundingSource/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/Payment/FundingSource/__snapshots__/index.test.tsx.snap
index f71494096a..e350e33af4 100644
--- a/src/views/ModelPlan/TaskList/Payment/FundingSource/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/Payment/FundingSource/__snapshots__/index.test.tsx.snap
@@ -109,530 +109,535 @@ exports[`Model Plan Payment matches snapshot 1`] = `
class="margin-top-6"
data-testid="payment-funding-source-form"
>
-
+
+
+ Which type?
+
+
+
+
+
-
-
- Other
-
-
+
+
+
+
+ Add an additional note
+
-
+
-
-
+
+
-
-
+ Patient Protection Affordable Care Act (Sec 3021)
+
+
-
- Add an additional note
-
-
-
-
-
+ Who will you pay? Select all that apply.
+
+
-
-
-
+ Beneficiaries
+
+
-
- Add an additional note
-
-
-
-
-
-
+
+ If you select claims-based payments or non-claims-based payments, there will be additional questions to answer.
+
+
+
-
-
+ Claims-Based Payments
+
+
-
- Add an additional note
-
-
-
-
-
-
-
-
- Add an additional note
+ Next
-
-
- Next
+
+
+
+
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
diff --git a/src/views/ModelPlan/TaskList/Payment/FundingSource/index.tsx b/src/views/ModelPlan/TaskList/Payment/FundingSource/index.tsx
index 228d7c52fb..06c2032d64 100644
--- a/src/views/ModelPlan/TaskList/Payment/FundingSource/index.tsx
+++ b/src/views/ModelPlan/TaskList/Payment/FundingSource/index.tsx
@@ -238,314 +238,323 @@ const FundingSource = () => {
handleSubmit(e);
}}
>
-
-
- {t('fundingSource')}
-
-
- {flatErrors.fundingSource}
-
-
- {Object.keys(FundingSourceEnum)
- .sort(sortOtherEnum)
- .map(type => {
- return (
-
-
- {type === 'TRUST_FUND' &&
- values.fundingSource?.includes(
- type as FundingSourceEnum
- ) && (
-
-
+
+
+ {t('fundingSource')}
+
+
+ {flatErrors.fundingSource}
+
+
+ {Object.keys(FundingSourceEnum)
+ .sort(sortOtherEnum)
+ .map(type => {
+ return (
+
+
+ {type === 'TRUST_FUND' &&
+ values.fundingSource?.includes(
+ type as FundingSourceEnum
+ ) && (
+
- {t('whichType')}
-
-
- {flatErrors.fundingSourceTrustFund}
-
-
-
- )}
- {type === 'OTHER' &&
- values.fundingSource?.includes(
- type as FundingSourceEnum
- ) && (
-
-
+ {t('whichType')}
+
+
+ {flatErrors.fundingSourceTrustFund}
+
+
+
+ )}
+ {type === 'OTHER' &&
+ values.fundingSource?.includes(
+ type as FundingSourceEnum
+ ) && (
+
- {t('otherSourceOption')}
-
-
- {flatErrors.fundingSourceOther}
-
-
-
- )}
-
- );
- })}
-
-
-
+
+ {t('otherSourceOption')}
+
+
+ {flatErrors.fundingSourceOther}
+
+
+
+ )}
+
+ );
+ })}
+
+
+
-
-
- {t('reconciliation')}
-
-
- {flatErrors.fundingSourceR}
-
-
- {Object.keys(FundingSourceEnum)
- .sort(sortOtherEnum)
- .map(type => {
- return (
-
-
- {type === 'TRUST_FUND' &&
- values.fundingSourceR?.includes(
- type as FundingSourceEnum
- ) && (
-
-
+
+ {t('reconciliation')}
+
+
+ {flatErrors.fundingSourceR}
+
+
+ {Object.keys(FundingSourceEnum)
+ .sort(sortOtherEnum)
+ .map(type => {
+ return (
+
+
+ {type === 'TRUST_FUND' &&
+ values.fundingSourceR?.includes(
+ type as FundingSourceEnum
+ ) && (
+
- {t('whichType')}
-
-
- {flatErrors.fundingSourceRTrustFund}
-
-
-
- )}
- {type === 'OTHER' &&
- values.fundingSourceR?.includes(
- type as FundingSourceEnum
- ) && (
-
-
+ {t('whichType')}
+
+
+ {flatErrors.fundingSourceRTrustFund}
+
+
+
+ )}
+ {type === 'OTHER' &&
+ values.fundingSourceR?.includes(
+ type as FundingSourceEnum
+ ) && (
+
- {t('otherSourceOption')}
-
-
- {flatErrors.fundingSourceROther}
-
-
-
- )}
-
- );
- })}
-
-
-
+
+ {t('otherSourceOption')}
+
+
+ {flatErrors.fundingSourceROther}
+
+
+
+ )}
+
+ );
+ })}
+
+
+
+
+
+
+ {t('whoWillYouPay')}
+
+
+ {flatErrors.payRecipients}
+
+
+ {Object.keys(PayRecipient)
+ .sort(sortOtherEnum)
+ .map(type => {
+ return (
+
+
+ {type === 'OTHER' &&
+ values.payRecipients.includes(
+ type as PayRecipient
+ ) && (
+
+
+ {t('otherPayOption')}
+
+
+ {
+ flatErrors.payRecipientsOtherSpecification
+ }
+
+
+
+ )}
+
+ );
+ })}
+
+
+
-
-
- {t('whoWillYouPay')}
-
-
- {flatErrors.payRecipients}
-
-
- {Object.keys(PayRecipient)
- .sort(sortOtherEnum)
- .map(type => {
- return (
-
+
+
+ {t('whatWillYouPay')}
+
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
+ />
+ )}
+
+ {t('whatWillYouPaySubCopy')}
+
+ {flatErrors.payType}
+
+ {Object.keys(PayType)
+ .sort(sortPayTypeEnums)
+ .map(type => {
+ return (
- {type === 'OTHER' &&
- values.payRecipients.includes(
- type as PayRecipient
- ) && (
-
-
- {t('otherPayOption')}
-
-
- {
- flatErrors.payRecipientsOtherSpecification
- }
-
-
-
- )}
-
- );
- })}
-
-
-
-
-
-
- {t('whatWillYouPay')}
-
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
+ );
+ })}
+
+
- )}
-
- {t('whatWillYouPaySubCopy')}
-
- {flatErrors.payType}
-
- {Object.keys(PayType)
- .sort(sortPayTypeEnums)
- .map(type => {
- return (
-
- );
- })}
-
-
-
+
-
-
setErrors({})}>
- {h('next')}
+
+ setErrors({})}>
+ {h('next')}
+
+
+ handleFormSubmit('back')}
+ >
+
+ {h('saveAndReturn')}
-
- handleFormSubmit('back')}
- >
-
- {h('saveAndReturn')}
-
+
diff --git a/src/views/ModelPlan/TaskList/Payment/NonClaimsBasedPayment/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/Payment/NonClaimsBasedPayment/__snapshots__/index.test.tsx.snap
index 9b29371e8c..1e81bad9a5 100644
--- a/src/views/ModelPlan/TaskList/Payment/NonClaimsBasedPayment/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/Payment/NonClaimsBasedPayment/__snapshots__/index.test.tsx.snap
@@ -109,88 +109,113 @@ exports[`Model Plan -- NonClaimsBasedPayment matches snapshot 1`] = `
class="margin-top-6"
data-testid="payment-non-claims-based-payment-form"
>
-
- Non-claims-based payment questions
-
-
diff --git a/src/views/ModelPlan/TaskList/Payment/NonClaimsBasedPayment/index.tsx b/src/views/ModelPlan/TaskList/Payment/NonClaimsBasedPayment/index.tsx
index ad23a95c8d..6e04fba0e1 100644
--- a/src/views/ModelPlan/TaskList/Payment/NonClaimsBasedPayment/index.tsx
+++ b/src/views/ModelPlan/TaskList/Payment/NonClaimsBasedPayment/index.tsx
@@ -250,275 +250,284 @@ const NonClaimsBasedPayment = () => {
handleSubmit(e);
}}
>
-
- {t('nonClaimsBasedPaymentQuestion')}
-
-
-
-
+
- {t('nonClaimsPayments')}
-
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
- />
- )}
-
- {flatErrors.nonClaimsPayments}
-
-
- {
- setFieldValue('nonClaimsPayments', value);
- }}
- initialValues={initialValues.nonClaimsPayments}
- />
+ {t('nonClaimsBasedPaymentQuestion')}
+
- {(values?.nonClaimsPayments || []).includes(
- NonClaimsBasedPayType.OTHER
- ) && (
-
+
-
- {t('selectClaimsOther')}
-
-
- {flatErrors.nonClaimsPaymentOther}
-
-
+ {itSolutionsStarted && (
+
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
+ }
/>
-
- )}
+ )}
+
+ {flatErrors.nonClaimsPayments}
+
-
-
+ {
+ setFieldValue('nonClaimsPayments', value);
+ }}
+ initialValues={initialValues.nonClaimsPayments}
+ />
-
-
- {t('paymentCalculationOwner')}
-
-
- {flatErrors.paymentCalculationOwner}
-
-
-
+ {(values?.nonClaimsPayments || []).includes(
+ NonClaimsBasedPayType.OTHER
+ ) && (
+
+
+ {t('selectClaimsOther')}
+
+
+ {flatErrors.nonClaimsPaymentOther}
+
+
+
+ )}
-
-
- {t('numberPaymentsPerPayCycle')}
-
-
- {t('numberPaymentsPerPayCycleSubcopy')}
-
-
- {flatErrors.numberPaymentsPerPayCycle}
-
-
-
-
+
+
-
-
- {t('sharedSystemsInvolvedAdditionalClaimPayment')}
-
-
- {
- flatErrors.sharedSystemsInvolvedAdditionalClaimPayment
+
+ {t('paymentCalculationOwner')}
+
+
+ {flatErrors.paymentCalculationOwner}
+
+
+
+
+
+
+ {t('numberPaymentsPerPayCycle')}
+
+
+ {t('numberPaymentsPerPayCycleSubcopy')}
+
+
+ {flatErrors.numberPaymentsPerPayCycle}
+
+
+
+
+
+
-
- {[true, false].map(key => (
- {
- setFieldValue(
- 'sharedSystemsInvolvedAdditionalClaimPayment',
+ className="margin-top-4"
+ >
+
+ {t('sharedSystemsInvolvedAdditionalClaimPayment')}
+
+
+ {
+ flatErrors.sharedSystemsInvolvedAdditionalClaimPayment
+ }
+
+
+ {[true, false].map(key => (
+
- ))}
-
-
-
+ }
+ onChange={() => {
+ setFieldValue(
+ 'sharedSystemsInvolvedAdditionalClaimPayment',
+ key
+ );
+ }}
+ />
+ ))}
+
+
+
-
-
- {t('planningToUseInnovationPaymentContractor')}
-
-
- {t('planningToUseInnovationPaymentContractorSubcopy')}
-
-
- {flatErrors.planningToUseInnovationPaymentContractor}
-
-
- {[true, false].map(key => (
- {
- setFieldValue(
- 'planningToUseInnovationPaymentContractor',
+
+ {t('planningToUseInnovationPaymentContractor')}
+
+
+ {t(
+ 'planningToUseInnovationPaymentContractorSubcopy'
+ )}
+
+
+ {
+ flatErrors.planningToUseInnovationPaymentContractor
+ }
+
+
+ {[true, false].map(key => (
+
- ))}
-
-
-
+ }
+ onChange={() => {
+ setFieldValue(
+ 'planningToUseInnovationPaymentContractor',
+ key
+ );
+ }}
+ />
+ ))}
+
+
+
-
-
- {t('fundingStructure')}
-
-
- {t('fundingStructureSubcopy')}
-
-
- {flatErrors.fundingStructure}
-
-
-
+
+ {t('fundingStructure')}
+
+
+ {t('fundingStructureSubcopy')}
+
+
+ {flatErrors.fundingStructure}
+
+
+
-
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ setErrors({})}>
+ {h('next')}
+
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
-
-
setErrors({})}>
- {h('next')}
+
+ {h('saveAndReturn')}
-
- handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
diff --git a/src/views/ModelPlan/TaskList/Payment/Recover/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/Payment/Recover/__snapshots__/index.test.tsx.snap
index 962b9f422f..bb2dbdd7a6 100644
--- a/src/views/ModelPlan/TaskList/Payment/Recover/__snapshots__/index.test.tsx.snap
+++ b/src/views/ModelPlan/TaskList/Payment/Recover/__snapshots__/index.test.tsx.snap
@@ -109,139 +109,252 @@ exports[`Model Plan -- Recover matches snapshot 1`] = `
class="margin-top-6"
data-testid="payment-recover-form"
>
-
-
+
-
-
+
@@ -250,220 +363,112 @@ exports[`Model Plan -- Recover matches snapshot 1`] = `
>
Notes
string
-
-
-
-
-
- Notes
-
-
- string
-
-
-
-
-
- Back
-
-
- Continue to IT solutions and implementation status
+
+
+
+
+ Save and return to task list
-
-
-
-
-
-
- Save and return to task list
-
+
diff --git a/src/views/ModelPlan/TaskList/Payment/Recover/index.tsx b/src/views/ModelPlan/TaskList/Payment/Recover/index.tsx
index d9d10e12ac..cb1289ea67 100644
--- a/src/views/ModelPlan/TaskList/Payment/Recover/index.tsx
+++ b/src/views/ModelPlan/TaskList/Payment/Recover/index.tsx
@@ -251,162 +251,167 @@ const Recover = () => {
handleSubmit(e);
}}
>
-
-
+
- {t('willRecoverPayments')}
-
+
+ {t('willRecoverPayments')}
+
- {itSolutionsStarted && (
-
- handleFormSubmit(
- `/models/${modelID}/task-list/it-solutions`
- )
- }
- />
- )}
-
-
- {flatErrors.willRecoverPayments}
-
-
- {[true, false].map(key => (
- {
- setFieldValue('willRecoverPayments', key);
- }}
- />
- ))}
-
-
-
-
-
-
- {t('anticipateReconcilingPaymentsRetrospectively')}
-
-
- {
- flatErrors.anticipateReconcilingPaymentsRetrospectively
- }
-
-
- {[true, false].map(key => (
-
+ handleFormSubmit(
+ `/models/${modelID}/task-list/it-solutions`
+ )
}
- onChange={() => {
- setFieldValue(
- 'anticipateReconcilingPaymentsRetrospectively',
- key
- );
- }}
/>
- ))}
-
-
-
+ )}
- {!loading && (
- <>
-
+ {flatErrors.willRecoverPayments}
+
+
+ {[true, false].map(key => (
+ {
+ setFieldValue('willRecoverPayments', key);
+ }}
+ />
+ ))}
+
+
+
+
+
+ {t('anticipateReconcilingPaymentsRetrospectively')}
+
+
+ {
+ flatErrors.anticipateReconcilingPaymentsRetrospectively
+ }
+
+
+ {[true, false].map(key => (
+ {
+ setFieldValue(
+ 'anticipateReconcilingPaymentsRetrospectively',
+ key
+ );
+ }}
+ />
+ ))}
+
- >
- )}
+
- {!loading && values.status && (
-
- )}
+ {!loading && (
+ <>
+
-
+
+ >
+ )}
+
+ {!loading && values.status && (
+
+ )}
+
+
+ {
+ handleFormSubmit('back');
+ }}
+ >
+ {h('back')}
+
+ {!flags.hideITLeadExperience && (
+ setErrors({})}>
+ {t('continueToITSolutions')}
+
+ )}
+
{
- handleFormSubmit('back');
- }}
+ className="usa-button usa-button--unstyled"
+ onClick={() => handleFormSubmit('task-list')}
>
- {h('back')}
+
+ {h('saveAndReturn')}
- {!flags.hideITLeadExperience && (
-
setErrors({})}>
- {t('continueToITSolutions')}
-
- )}
-
- handleFormSubmit('task-list')}
- >
-
- {h('saveAndReturn')}
-
+
diff --git a/src/views/ModelPlan/TaskList/PrepareForClearance/Checklist/index.tsx b/src/views/ModelPlan/TaskList/PrepareForClearance/Checklist/index.tsx
index 593be75cbd..f9486751a7 100644
--- a/src/views/ModelPlan/TaskList/PrepareForClearance/Checklist/index.tsx
+++ b/src/views/ModelPlan/TaskList/PrepareForClearance/Checklist/index.tsx
@@ -248,7 +248,7 @@ const PrepareForClearanceCheckList = ({
>
{t('subheading')}
-
+