diff --git a/cypress/e2e/characteristics.spec.js b/cypress/e2e/characteristics.spec.js index f3fa4cc0cb..553e969cb9 100644 --- a/cypress/e2e/characteristics.spec.js +++ b/cypress/e2e/characteristics.spec.js @@ -19,7 +19,7 @@ describe('The Model Plan General Characteristics Form', () => { cy.get('[data-testid="model-plan-name"]').contains('for Empty Plan'); - cy.get('#plan-characteristics-is-new-model-no') + cy.get('#plan-characteristics-is-new-model-false') .check({ force: true }) .should('be.checked'); @@ -29,12 +29,14 @@ describe('The Model Plan General Characteristics Form', () => { .type('Plan with B{downArrow}{enter}') .should('have.value', 'Plan with Basics'); - cy.get('#plan-characteristics-resembles-existing-model') + cy.get('#plan-characteristics-resembles-existing-model-true') .check({ force: true }) .should('be.checked'); cy.get('#plan-characteristics-resembles-which-model').within(() => { - cy.get("input[type='text']").type('advance payment{downArrow}{enter}'); + cy.get("input[type='text']") + .click() + .type('advance payment{downArrow}{enter}'); }); cy.get('[data-testid="multiselect-tag--Advance Payment ACO Model"]') @@ -47,7 +49,7 @@ describe('The Model Plan General Characteristics Form', () => { .type('In every way') .should('have.value', 'In every way'); - cy.get('#plan-characteristics-has-component-or-tracks') + cy.get('#plan-characteristics-has-component-or-tracks-true') .check({ force: true }) .should('be.checked'); @@ -89,7 +91,7 @@ describe('The Model Plan General Characteristics Form', () => { // Page - /characteristics/involvements - cy.get('#plan-characteristics-care-coordination-involved') + cy.get('#plan-characteristics-care-coordination-involved-true') .should('not.be.disabled') .check({ force: true }) .should('be.checked'); @@ -98,7 +100,7 @@ describe('The Model Plan General Characteristics Form', () => { .type('Yes, care coordination is involved in every way') .should('have.value', 'Yes, care coordination is involved in every way'); - cy.get('#plan-characteristics-additional-services') + cy.get('#plan-characteristics-additional-services-true') .check({ force: true }) .should('be.checked'); @@ -109,7 +111,7 @@ describe('The Model Plan General Characteristics Form', () => { 'Yes, additional services are involved in every way' ); - cy.get('#plan-characteristics-community-partners-involved') + cy.get('#plan-characteristics-community-partners-involved-true') .check({ force: true }) .should('be.checked'); @@ -124,7 +126,7 @@ describe('The Model Plan General Characteristics Form', () => { // Page - /characteristics/targets-and-options - cy.get('#plan-characteristics-geographies-targeted') + cy.get('#plan-characteristics-geographies-targeted-true') .should('not.be.disabled') .check({ force: true }) .should('be.checked'); @@ -137,7 +139,7 @@ describe('The Model Plan General Characteristics Form', () => { .check({ force: true }) .should('be.checked'); - cy.get('#plan-characteristics-participation') + cy.get('#plan-characteristics-participation-true') .check({ force: true }) .should('be.checked'); @@ -153,7 +155,7 @@ describe('The Model Plan General Characteristics Form', () => { .type('Just a different agreement type') .should('have.value', 'Just a different agreement type'); - cy.get('#plan-characteristics-multiple-participation-needed') + cy.get('#plan-characteristics-multiple-participation-needed-true') .check({ force: true }) .should('be.checked'); @@ -161,7 +163,7 @@ describe('The Model Plan General Characteristics Form', () => { // Page - /characteristics/authority - cy.get('#plan-characteristics-rulemaking-required') + cy.get('#plan-characteristics-rulemaking-required-true') .should('not.be.disabled') .check({ force: true }) .should('be.checked'); @@ -174,7 +176,7 @@ describe('The Model Plan General Characteristics Form', () => { .check({ force: true }) .should('be.checked'); - cy.get('#plan-characteristics-waivers-required') + cy.get('#plan-characteristics-waivers-required-true') .check({ force: true }) .should('be.checked'); diff --git a/cypress/e2e/modelPlan.spec.js b/cypress/e2e/modelPlan.spec.js index 8c4cfad823..925f0082cc 100644 --- a/cypress/e2e/modelPlan.spec.js +++ b/cypress/e2e/modelPlan.spec.js @@ -156,7 +156,10 @@ describe('The Model Plan Form', () => { .type('05/23/2025') .should('have.value', '05/23/2025'); - cy.get('#phasedIn-Yes').first().check({ force: true }).should('be.checked'); + cy.get('#phasedIn-true') + .first() + .check({ force: true }) + .should('be.checked'); cy.contains('button', 'Save and return to task list').click(); diff --git a/cypress/e2e/opsEvalAndLearning.spec.js b/cypress/e2e/opsEvalAndLearning.spec.js index 2a209aa08f..62aebf6085 100644 --- a/cypress/e2e/opsEvalAndLearning.spec.js +++ b/cypress/e2e/opsEvalAndLearning.spec.js @@ -66,7 +66,7 @@ describe('The Model Plan Ops Eval and Learning Form', () => { .type('They will provide wireframes of workflows') .should('have.value', 'They will provide wireframes of workflows'); - cy.get('#ops-eval-and-learning-iddoc-support') + cy.get('#ops-eval-and-learning-iddoc-support-true') .check({ force: true }) .should('be.checked'); @@ -87,7 +87,7 @@ describe('The Model Plan Ops Eval and Learning Form', () => { cy.get('@technical-contacts').type('Bill in accounting'); cy.get('@technical-contacts').should('have.value', 'Bill in accounting'); - cy.get('#ops-eval-and-learning-capture-participant-info') + cy.get('#ops-eval-and-learning-capture-participant-info-true') .check({ force: true }) .should('be.checked'); diff --git a/cypress/e2e/participantsAndProviders.spec.js b/cypress/e2e/participantsAndProviders.spec.js index 809309cc2f..a928b7b799 100644 --- a/cypress/e2e/participantsAndProviders.spec.js +++ b/cypress/e2e/participantsAndProviders.spec.js @@ -57,7 +57,7 @@ describe('The Model Plan Participants and Providers Form', () => { .type('The candy people') .should('have.value', 'The candy people'); - cy.get('#participants-and-providers-current-participants') + cy.get('#participants-and-providers-current-participants-true') .check({ force: true }) .should('be.checked'); @@ -114,7 +114,7 @@ describe('The Model Plan Participants and Providers Form', () => { .check({ force: true }); cy.get('@communication').should('be.checked'); - cy.get('#participants-and-providers-risk') + cy.get('#participants-and-providers-risk-true') .check({ force: true }) .should('be.checked'); @@ -126,7 +126,7 @@ describe('The Model Plan Participants and Providers Form', () => { .type('Programmatic Risk') .should('have.value', 'Programmatic Risk'); - cy.get('#participants-and-providers-risk-change') + cy.get('#participants-and-providers-risk-change-true') .check({ force: true }) .should('be.checked'); @@ -134,16 +134,16 @@ describe('The Model Plan Participants and Providers Form', () => { // Page - /participants-and-providers/coordination - cy.get('#participants-and-providers-coordniate-work') + cy.get('#participants-and-providers-coordniate-work-true') .should('not.be.disabled') .check({ force: true }) .should('be.checked'); - cy.get('#participants-and-providers-gainshare-payment') + cy.get('#participants-and-providers-gainshare-payment-true') .check({ force: true }) .should('be.checked'); - cy.get('#participants-and-providers-gainshare-track') + cy.get('#participants-and-providers-gainshare-track-true') .check({ force: true }) .should('be.checked'); diff --git a/src/components/BooleanRadioForm/__snapshots__/index.test.tsx.snap b/src/components/BooleanRadioForm/__snapshots__/index.test.tsx.snap index f1716d23f8..6801a95a43 100644 --- a/src/components/BooleanRadioForm/__snapshots__/index.test.tsx.snap +++ b/src/components/BooleanRadioForm/__snapshots__/index.test.tsx.snap @@ -12,14 +12,15 @@ exports[`The BooleanRadio component matches snapshot 1`] = ` > @@ -30,14 +31,15 @@ exports[`The BooleanRadio component matches snapshot 1`] = ` > diff --git a/src/components/BooleanRadioForm/index.tsx b/src/components/BooleanRadioForm/index.tsx index da7c0b3f00..bed4debfea 100644 --- a/src/components/BooleanRadioForm/index.tsx +++ b/src/components/BooleanRadioForm/index.tsx @@ -34,7 +34,8 @@ const BooleanRadio = ({
+
+
+

+ Notes +

+

+ Note beneficiary +

+
+
- null + This is how

+
+
+

+ Notes +

+

+ Treat note +

+
+
+
+
+

+ Notes +

+

+ Exclude note +

+
+
+
+
+

+ Notes +

+

+ Note of confidence +

+
+
+
+
+

+ Notes +

+

+ Note selection +

+
+
@@ -2759,6 +2854,25 @@ exports[`ShareExportModal matches the snapshot 1`] = ` Annually

+
+
+

+ Notes +

+

+ Note frequency +

+
+
+
+
+

+ Notes +

+

+ Note overlap +

+
+
- - No answer entered - + Yes precedence rules

@@ -2865,15 +2994,30 @@ exports[`ShareExportModal matches the snapshot 1`] = `
  • - - Other not specified - + Agency other
  • +
    +
    +

    + Notes +

    +

    + State note +

    +
    +
    +
    +
    +

    + Notes +

    +

    + Note stateholders +

    +
    +
    - - No answer entered - + Yes

    +
    +
    +

    + Notes +

    +

    + Note help desk +

    +
    +
    - - Other not specified - + Support other @@ -3000,43 +3174,28 @@ exports[`ShareExportModal matches the snapshot 1`] = `

    - - No answer entered - + Support how

    - -
    -

    - IDDOC Operations -

    - Are you planning to use IDDOC support? + Notes

    - - No answer entered - + Note for support

    @@ -3044,51 +3203,619 @@ exports[`ShareExportModal matches the snapshot 1`] = `
    +

    + IDDOC Operations +

    - Will you establish a benchmark to capture performance? + Are you planning to use IDDOC support?

    - - No answer entered - + Yes

    +
    +
    +

    + Notes +

    +

    + Note iddoc support +

    +
    +
    -

    - Will you compute performance scores? +

    +
    +

    + Are technical contacts identified? +

    +

    + Yes +

    +
    +
    +
    +
    +
    +
    +

    + Please specify +

    +

    + Detail of technical contacts +

    +
    +
    +
    +
    +
    +
    +

    + Notes +

    +

    + Note for contacts +

    +
    +
    +
    +
    +

    + Will you capture participant information? +

    +

    + Yes +

    +
    +
    +
    +

    + Notes +

    +

    + Note for participants +

    +
    +
    +
    +
    +
    +

    + Interface Control Document (ICD) +

    +
    +
    +

    + ICD owner +

    +

    + ICD owner +

    +
    +
    +
    +
    +

    + Draft ICD required by +

    +

    + Invalid DateTime +

    +
    +
    +
    +

    + Notes +

    +

    + Note for icd +

    +
    +
    +
    +
    +
    +

    + Testing +

    +
    +
    +

    + User Acceptance Testing (UAT) – test data needs +

    +

    + UAT needs +

    +
    +
    +
    +
    +

    + STC – test data needs +

    +

    + STC needs +

    +
    +
    +
    +
    +

    + Define the testing timelines +

    +

    + Testing timelines +

    +
    +
    +
    +

    + Notes +

    +

    + Note for testing +

    +
    +
    +
    +
    +
    +

    + Data Monitoring +

    +
    +
    +

    + What types of files? Select all that apply. +

    +
      +
    • + Part A +
    • +
    • + Part B +
    • +
    +
    +
    +
    +
    +

    + What types of responses? +

    +

    + File +

    +
    +
    +
    +
    +

    + Frequency of files? +

    +

    + Every week +

    +
    +
    +
    +
    +
    +
    +

    + Full time or incremental? +

    +

    + Full time +

    +
    +
    +
    +
    +
    +
    +

    + Are Electronic File Transfer (EFT) and connectivity set up? +

    +

    + Yes +

    +
    +
    +
    +
    +
    +
    +
    +
    +

    + Will unsolicited adjustments be included? +

    +

    + Yes +

    +
    +
    +
    +
    +
    +
    +

    + Are data flow diagrams needed? +

    +

    + Yes +

    +
    +
    +
    +
    +
    +
    +

    + Will you produce Benefit Enhancement Files?

    - +

    +
    +
    +
    +

    + File naming conventions +

    +

    + PDF +

    +
    +
    +
    +

    - No answer entered - + Notes +

    +

    + Note for monitoring +

    +
    +
    +
    +
    +
    +
    +
    +

    + Will you establish a benchmark to capture performance? +

    +

    + Yes, and we will reconcile actual performance against it +

    +
    +
    +
    +

    + Notes +

    +

    + Note for benchmark +

    +
    +
    +
    +
    +
    +

    + Will you compute performance scores? +

    +

    + Yes

    +
    +
    +

    + Notes +

    +

    + Note for computing +

    +
    +
    - - No answer entered - + Yes

    @@ -3141,11 +3864,7 @@ exports[`ShareExportModal matches the snapshot 1`] = `

    - - No answer entered - + Yes

    @@ -3174,11 +3893,7 @@ exports[`ShareExportModal matches the snapshot 1`] = `

    - - No answer entered - + Yes

    @@ -3202,16 +3917,31 @@ exports[`ShareExportModal matches the snapshot 1`] = `

    - - No answer entered - + Yes

    +
    +
    +

    + Payments +

    +

    + Note for risk +

    +
    +
    - - No answer entered - + Yes

    @@ -3263,11 +3989,7 @@ exports[`ShareExportModal matches the snapshot 1`] = `

    - - No answer entered - + Yes

    @@ -3296,11 +4018,7 @@ exports[`ShareExportModal matches the snapshot 1`] = `

    - - No answer entered - + Yes

    @@ -3324,16 +4042,31 @@ exports[`ShareExportModal matches the snapshot 1`] = `

    - - No answer entered - + Yes

    +
    +
    +

    + Payments +

    +

    + Note for appeal +

    +
    +
    - - Other not specified - + Other eval approach
    +
    +
    +

    + Notes +

    +

    + Note for approach +

    +
    +
    - - Other not specified - + CCM involvement other
    +
    +
    +

    + Notes +

    +

    + Note for involvement +

    +
    +
    - - Other not specified - + Data mon other
    +
    +
    +

    + Notes +

    +

    + Note for data mon +

    +
    +
    - - Other not specified - + Data to send other
    +
    +
    +

    + Notes +

    +

    + Note for data to send +

    +
    +
    - - No answer entered - + Yes

    +
    +
    +

    + Notes +

    +

    + Note for cclf +

    +
    +
    - - No answer entered - + Yes

    - -

    - Do you know which applications will be on the other sides of the file transfers? + Notes

    - - No answer entered - + Note for ccw

    +
    +
    +
    +
    +

    + Do you know which applications will be on the other sides of the file transfers? +

    +

    + Yes +

    +
    +
    +
    +
    +
    +
    +

    + Please specify +

    +

    + Which app to send +

    +
    +
    +
    +
    +
    +
    +

    + Notes +

    +

    + Note for app to send +

    +
    +
    - - No answer entered - + Yes

    +
    +
    +

    + Notes +

    +

    + Note for ccw disctro +

    +
    +
    - - No answer entered - + During application period

    @@ -3668,6 +4546,25 @@ exports[`ShareExportModal matches the snapshot 1`] = ` +
    +
    +

    + Notes +

    +

    + Note for data freq +

    +
    +
    - - No answer entered - + Early in the first performance year

    @@ -3714,6 +4607,25 @@ exports[`ShareExportModal matches the snapshot 1`] = ` +
    +
    +

    + Notes +

    +

    + Note for data freq +

    +
    +
    - - No answer entered - + Later in the first performance year

    +
    +
    +

    + Notes +

    +

    + Note for qual report +

    +
    +
    @@ -3776,15 +4703,30 @@ exports[`ShareExportModal matches the snapshot 1`] = `
  • - - Other not specified - + Other learning system
  • +
    +
    +

    + Notes +

    +

    + Note for learning system +

    +
    +
    - - No answer entered - + Some challenges

    diff --git a/src/data/mock/readonly.ts b/src/data/mock/readonly.ts index 2a90a50729..6d92f83308 100644 --- a/src/data/mock/readonly.ts +++ b/src/data/mock/readonly.ts @@ -22,6 +22,7 @@ import { AlternativePaymentModelType, AnticipatedPaymentFrequencyType, AuthorityAllowance, + BenchmarkForPerformanceType, BeneficiariesType, CcmInvolvmentType, ClaimsBasedPayType, @@ -32,6 +33,8 @@ import { ContractorSupportType, DataForMonitoringType, DataFrequencyType, + DataFullTimeOrIncrementalType, + DataStartsType, DataToSendParticipantsType, EvaluationApproachType, FrequencyType, @@ -291,26 +294,26 @@ const beneficiaryData: AllBeneficiariesTypes = { BeneficiariesType.DISEASE_SPECIFIC, BeneficiariesType.DUALLY_ELIGIBLE ], - beneficiariesOther: null, - beneficiariesNote: null, + beneficiariesOther: 'Other beneficiary', + beneficiariesNote: 'Note beneficiary', treatDualElligibleDifferent: TriStateAnswer.YES, - treatDualElligibleDifferentHow: 'null', - treatDualElligibleDifferentNote: null, + treatDualElligibleDifferentHow: 'This is how', + treatDualElligibleDifferentNote: 'Treat note', excludeCertainCharacteristics: TriStateAnswer.NO, - excludeCertainCharacteristicsCriteria: null, - excludeCertainCharacteristicsNote: null, + excludeCertainCharacteristicsCriteria: 'Certain criteria', + excludeCertainCharacteristicsNote: 'Exclude note', numberPeopleImpacted: 1234, estimateConfidence: ConfidenceType.COMPLETELY, - confidenceNote: null, + confidenceNote: 'Note of confidence', beneficiarySelectionMethod: [SelectionMethodType.HISTORICAL], - beneficiarySelectionOther: null, - beneficiarySelectionNote: null, + beneficiarySelectionOther: 'Selection other', + beneficiarySelectionNote: 'Note selection', beneficiarySelectionFrequency: FrequencyType.ANNUALLY, - beneficiarySelectionFrequencyOther: null, - beneficiarySelectionFrequencyNote: null, + beneficiarySelectionFrequencyOther: 'Frequency other', + beneficiarySelectionFrequencyNote: 'Note frequency', beneficiaryOverlap: OverlapType.YES_NEED_POLICIES, - beneficiaryOverlapNote: null, - precedenceRules: null, + beneficiaryOverlapNote: 'Note overlap', + precedenceRules: 'Yes precedence rules', status: TaskStatus.IN_PROGRESS }; @@ -341,123 +344,123 @@ const opsEvalAndLearningData: AllOpsEvalAndLearningTypes = { AgencyOrStateHelpType.YES_STATE, AgencyOrStateHelpType.OTHER ], - agencyOrStateHelpOther: null, - agencyOrStateHelpNote: null, + agencyOrStateHelpOther: 'Agency other', + agencyOrStateHelpNote: 'State note', stakeholders: [ StakeholdersType.BENEFICIARIES, StakeholdersType.PARTICIPANTS, StakeholdersType.PROVIDERS ], - stakeholdersOther: null, - stakeholdersNote: null, - helpdeskUse: null, - helpdeskUseNote: null, + stakeholdersOther: 'Stateholders other', + stakeholdersNote: 'Note stateholders', + helpdeskUse: true, + helpdeskUseNote: 'Note help desk', contractorSupport: [ ContractorSupportType.MULTIPLE, ContractorSupportType.OTHER ], - contractorSupportOther: null, - contractorSupportHow: null, - contractorSupportNote: null, - iddocSupport: null, - iddocSupportNote: null, - technicalContactsIdentified: null, - technicalContactsIdentifiedDetail: null, - technicalContactsIdentifiedNote: null, - captureParticipantInfo: null, - captureParticipantInfoNote: null, - icdOwner: null, - draftIcdDueDate: null, - icdNote: null, - uatNeeds: null, - stcNeeds: null, - testingTimelines: null, - testingNote: null, + contractorSupportOther: 'Support other', + contractorSupportHow: 'Support how', + contractorSupportNote: 'Note for support', + iddocSupport: true, + iddocSupportNote: 'Note iddoc support', + technicalContactsIdentified: true, + technicalContactsIdentifiedDetail: 'Detail of technical contacts', + technicalContactsIdentifiedNote: 'Note for contacts', + captureParticipantInfo: true, + captureParticipantInfoNote: 'Note for participants', + icdOwner: 'ICD owner', + draftIcdDueDate: '12/12/2026', + icdNote: 'Note for icd', + uatNeeds: 'UAT needs', + stcNeeds: 'STC needs', + testingTimelines: 'Testing timelines', + testingNote: 'Note for testing', dataMonitoringFileTypes: [ MonitoringFileType.PART_A, MonitoringFileType.PART_B ], - dataMonitoringFileOther: null, - dataResponseType: null, - dataResponseFileFrequency: null, - dataFullTimeOrIncremental: null, - eftSetUp: null, - unsolicitedAdjustmentsIncluded: null, - dataFlowDiagramsNeeded: null, - produceBenefitEnhancementFiles: null, - fileNamingConventions: null, - dataMonitoringNote: null, - benchmarkForPerformance: null, - benchmarkForPerformanceNote: null, - computePerformanceScores: null, - computePerformanceScoresNote: null, - riskAdjustPerformance: null, - riskAdjustFeedback: null, - riskAdjustPayments: null, - riskAdjustOther: null, - riskAdjustNote: null, - appealPerformance: null, - appealFeedback: null, - appealPayments: null, - appealOther: null, - appealNote: null, + dataMonitoringFileOther: 'Other data monitoring', + dataResponseType: 'File', + dataResponseFileFrequency: 'Every week', + dataFullTimeOrIncremental: DataFullTimeOrIncrementalType.FULL_TIME, + eftSetUp: true, + unsolicitedAdjustmentsIncluded: true, + dataFlowDiagramsNeeded: true, + produceBenefitEnhancementFiles: true, + fileNamingConventions: 'PDF', + dataMonitoringNote: 'Note for monitoring', + benchmarkForPerformance: BenchmarkForPerformanceType.YES_RECONCILE, + benchmarkForPerformanceNote: 'Note for benchmark', + computePerformanceScores: true, + computePerformanceScoresNote: 'Note for computing', + riskAdjustPerformance: true, + riskAdjustFeedback: true, + riskAdjustPayments: true, + riskAdjustOther: true, + riskAdjustNote: 'Note for risk ', + appealPerformance: true, + appealFeedback: true, + appealPayments: true, + appealOther: true, + appealNote: 'Note for appeal', evaluationApproaches: [ EvaluationApproachType.INTERRUPTED_TIME, EvaluationApproachType.OTHER ], - evaluationApproachOther: null, - evalutaionApproachNote: null, + evaluationApproachOther: 'Other eval approach', + evalutaionApproachNote: 'Note for approach', ccmInvolvment: [CcmInvolvmentType.YES_EVALUATION, CcmInvolvmentType.OTHER], - ccmInvolvmentOther: null, - ccmInvolvmentNote: null, + ccmInvolvmentOther: 'CCM involvement other', + ccmInvolvmentNote: 'Note for involvement', dataNeededForMonitoring: [ DataForMonitoringType.CLINICAL_DATA, DataForMonitoringType.MEDICARE_CLAIMS, DataForMonitoringType.OTHER ], - dataNeededForMonitoringOther: null, - dataNeededForMonitoringNote: null, + dataNeededForMonitoringOther: 'Data mon other', + dataNeededForMonitoringNote: 'Note for data mon', dataToSendParticicipants: [ DataToSendParticipantsType.BASELINE_HISTORICAL_DATA, DataToSendParticipantsType.BENEFICIARY_LEVEL_DATA, DataToSendParticipantsType.OTHER_MIPS_DATA ], - dataToSendParticicipantsOther: null, - dataToSendParticicipantsNote: null, - shareCclfData: null, - shareCclfDataNote: null, - sendFilesBetweenCcw: null, - sendFilesBetweenCcwNote: null, - appToSendFilesToKnown: null, - appToSendFilesToWhich: null, - appToSendFilesToNote: null, - useCcwForFileDistribiutionToParticipants: null, - useCcwForFileDistribiutionToParticipantsNote: null, - developNewQualityMeasures: null, - developNewQualityMeasuresNote: null, - qualityPerformanceImpactsPayment: null, - qualityPerformanceImpactsPaymentNote: null, - dataSharingStarts: null, - dataSharingStartsOther: null, + dataToSendParticicipantsOther: 'Data to send other', + dataToSendParticicipantsNote: 'Note for data to send', + shareCclfData: true, + shareCclfDataNote: 'Note for cclf', + sendFilesBetweenCcw: true, + sendFilesBetweenCcwNote: 'Note for ccw', + appToSendFilesToKnown: true, + appToSendFilesToWhich: 'Which app to send', + appToSendFilesToNote: 'Note for app to send', + useCcwForFileDistribiutionToParticipants: true, + useCcwForFileDistribiutionToParticipantsNote: 'Note for ccw disctro', + developNewQualityMeasures: true, + developNewQualityMeasuresNote: 'Note for develop measures', + qualityPerformanceImpactsPayment: true, + qualityPerformanceImpactsPaymentNote: 'Note for qual perf', + dataSharingStarts: DataStartsType.DURING_APPLICATION_PERIOD, + dataSharingStartsOther: 'Data sharing starts other', dataSharingFrequency: [DataFrequencyType.DAILY], - dataSharingFrequencyOther: null, - dataSharingStartsNote: null, - dataCollectionStarts: null, - dataCollectionStartsOther: null, + dataSharingFrequencyOther: 'Data frequency other', + dataSharingStartsNote: 'Note for data freq', + dataCollectionStarts: DataStartsType.EARLY_IN_THE_FIRST_PERFORMANCE_YEAR, + dataCollectionStartsOther: 'Other collection start', dataCollectionFrequency: [DataFrequencyType.MONTHLY], - dataCollectionFrequencyOther: null, - dataCollectionFrequencyNote: null, - qualityReportingStarts: null, - qualityReportingStartsOther: null, - qualityReportingStartsNote: null, + dataCollectionFrequencyOther: 'Data freq other', + dataCollectionFrequencyNote: 'Note for data freq', + qualityReportingStarts: DataStartsType.LATER_IN_THE_FIRST_PERFORMANCE_YEAR, + qualityReportingStartsOther: 'Other qual report', + qualityReportingStartsNote: 'Note for qual report', modelLearningSystems: [ ModelLearningSystemType.IT_PLATFORM_CONNECT, ModelLearningSystemType.NO_LEARNING_SYSTEM, ModelLearningSystemType.OTHER ], - modelLearningSystemsOther: null, - modelLearningSystemsNote: null, - anticipatedChallenges: null + modelLearningSystemsOther: 'Other learning system', + modelLearningSystemsNote: 'Note for learning system', + anticipatedChallenges: 'Some challenges' }; export const opsEvalAndLearningMocks = [ diff --git a/src/data/operationalNeedMap.ts b/src/data/operationalNeedMap.ts index ca3a466d77..b983ef5c16 100644 --- a/src/data/operationalNeedMap.ts +++ b/src/data/operationalNeedMap.ts @@ -17,7 +17,7 @@ const operationalNeedMap: Record = { route: 'characteristics/key-characteristics', fieldName: 'managePartCDEnrollment', parentField: 'generalCharacteristics', - question: 'generalCharacteristics:managePartCDEnrollment.question', + question: 'generalCharacteristics:managePartCDEnrollment.label', answer: 'translateBoolean', section: 'generalCharacteristicsMisc' }, @@ -25,7 +25,7 @@ const operationalNeedMap: Record = { route: 'characteristics/key-characteristics', fieldName: 'collectPlanBids', parentField: 'generalCharacteristics', - question: 'generalCharacteristics:collectPlanBids.question', + question: 'generalCharacteristics:collectPlanBids.label', answer: 'translateBoolean', section: 'generalCharacteristicsMisc' }, @@ -33,7 +33,7 @@ const operationalNeedMap: Record = { route: 'characteristics/key-characteristics', fieldName: 'planContractUpdated', parentField: 'generalCharacteristics', - question: 'generalCharacteristics:planContractUpdated.question', + question: 'generalCharacteristics:planContractUpdated.label', answer: 'translateBoolean', section: 'generalCharacteristicsMisc' }, @@ -41,7 +41,7 @@ const operationalNeedMap: Record = { route: 'characteristics/targets-and-options', fieldName: 'agreementTypes', parentField: 'generalCharacteristics', - question: 'generalCharacteristics:agreementTypes.question', + question: 'generalCharacteristics:agreementTypes.label', answer: 'translateAgreementTypes', section: 'generalCharacteristicsMisc' }, @@ -49,7 +49,7 @@ const operationalNeedMap: Record = { route: 'participants-and-providers/participants-options', fieldName: 'recruitmentMethod', parentField: 'participantsAndProviders', - question: 'participantsAndProviders:recruitmentMethod.question', + question: 'participantsAndProviders:recruitmentMethod.label', answer: 'translateRecruitmentType', section: 'participantsAndProvidersMisc' }, @@ -57,7 +57,7 @@ const operationalNeedMap: Record = { route: 'participants-and-providers/participants-options', fieldName: 'selectionMethod', parentField: 'participantsAndProviders', - question: 'participantsAndProviders:selectionMethod.question', + question: 'participantsAndProviders:selectionMethod.label', answer: 'translateParticipantSelectiontType', section: 'participantsAndProvidersMisc' }, @@ -65,7 +65,7 @@ const operationalNeedMap: Record = { route: 'participants-and-providers/participants-options', fieldName: 'selectionMethod', parentField: 'participantsAndProviders', - question: 'participantsAndProviders:selectionMethod.question', + question: 'participantsAndProviders:selectionMethod.label', answer: 'translateParticipantSelectiontType', section: 'participantsAndProvidersMisc' }, @@ -73,7 +73,7 @@ const operationalNeedMap: Record = { route: 'participants-and-providers/communication', fieldName: 'communicationMethod', parentField: 'participantsAndProviders', - question: 'participantsAndProviders:communicationMethod.question', + question: 'participantsAndProviders:communicationMethod.label', answer: 'translateCommunicationType', section: 'participantsAndProvidersMisc' }, @@ -81,7 +81,7 @@ const operationalNeedMap: Record = { route: 'participants-and-providers/provider-options', fieldName: 'providerOverlap', parentField: 'participantsAndProviders', - question: 'participantsAndProviders:providerOverlap.question', + question: 'participantsAndProviders:providerOverlap.label', answer: 'translateOverlapType', section: 'participantsAndProvidersMisc' }, @@ -89,7 +89,7 @@ const operationalNeedMap: Record = { route: 'participants-and-providers/coordination', fieldName: 'participantsIds', parentField: 'participantsAndProviders', - question: 'participantsAndProviders:participantsIds.question', + question: 'participantsAndProviders:participantsIds.label', answer: 'translateParticipantIDType', section: 'participantsAndProvidersMisc' }, @@ -97,33 +97,33 @@ const operationalNeedMap: Record = { route: 'beneficiaries/beneficiary-frequency', fieldName: 'beneficiaryOverlap', parentField: 'beneficiaries', - question: 'beneficiaries:beneficiaryOverlap', + question: 'beneficiaries:beneficiaryOverlap.label', answer: 'translateOverlapType', - section: 'beneficiaries' + section: 'beneficiariesMisc' }, HELPDESK_SUPPORT: { route: 'ops-eval-and-learning', fieldName: 'helpdeskUse', parentField: 'opsEvalAndLearning', - question: 'operationsEvaluationAndLearning:helpDesk', + question: 'opsEvalAndLearning:helpdeskUse.label', answer: 'translateBoolean', - section: 'beneficiaries' + section: 'opsEvalAndLearningMisc' }, IDDOC_SUPPORT: { route: 'ops-eval-and-learning', fieldName: 'iddocSupport', parentField: 'opsEvalAndLearning', - question: 'operationsEvaluationAndLearning:iddocSupport', + question: 'opsEvalAndLearning:iddocSupport.label', answer: 'translateBoolean', - section: 'operationsEvaluationAndLearning' + section: 'opsEvalAndLearningMisc' }, ESTABLISH_BENCH: { route: 'ops-eval-and-learning/performance', fieldName: 'benchmarkForPerformance', parentField: 'opsEvalAndLearning', - question: 'operationsEvaluationAndLearning:establishBenchmark', + question: 'opsEvalAndLearning:benchmarkForPerformance.label', answer: 'translateBenchmarkForPerformanceType', - section: 'operationsEvaluationAndLearning' + section: 'operationsEvaluaopsEvalAndLearningMisctionAndLearning' }, PROCESS_PART_APPEALS: { route: 'ops-eval-and-learning/performance', @@ -134,99 +134,99 @@ const operationalNeedMap: Record = { 'appealOther' ], parentField: 'opsEvalAndLearning', - question: 'operationsEvaluationAndLearning:participantAppeal', + question: 'opsEvalAndLearningMisc:participantAppeal', answer: 'translateBoolean', multiPart: true, multiPartQuestion: 'translateAppealsQuestionType', - section: 'operationsEvaluationAndLearning' + section: 'opsEvalAndLearningMisc' }, ACQUIRE_AN_EVAL_CONT: { route: 'ops-eval-and-learning/evaluation', fieldName: 'evaluationApproaches', parentField: 'opsEvalAndLearning', - question: 'operationsEvaluationAndLearning:evaluationApproach', + question: 'opsEvalAndLearning:evaluationApproaches.label', answer: 'translateEvaluationApproachType', - section: 'operationsEvaluationAndLearning' + section: 'opsEvalAndLearningMisc' }, QUALITY_PERFORMANCE_SCORES: { route: 'ops-eval-and-learning/evaluation', fieldName: 'dataNeededForMonitoring', parentField: 'opsEvalAndLearning', - question: 'operationsEvaluationAndLearning:dataNeeded', + question: 'opsEvalAndLearning:dataNeededForMonitoring.label', answer: 'translateDataForMonitoringType', - section: 'operationsEvaluationAndLearning' + section: 'opsEvalAndLearningMisc' }, CLAIMS_BASED_MEASURES: { route: 'ops-eval-and-learning/evaluation', fieldName: 'dataNeededForMonitoring', parentField: 'opsEvalAndLearning', - question: 'operationsEvaluationAndLearning:dataNeeded', + question: 'opsEvalAndLearning:dataNeededForMonitoring.label', answer: 'translateDataForMonitoringType', - section: 'operationsEvaluationAndLearning' + section: 'opsEvalAndLearningMisc' }, DATA_TO_SUPPORT_EVAL: { route: 'ops-eval-and-learning/evaluation', fieldName: 'dataNeededForMonitoring', parentField: 'opsEvalAndLearning', - question: 'operationsEvaluationAndLearning:dataNeeded', + question: 'opsEvalAndLearning:dataNeededForMonitoring.label', answer: 'translateDataForMonitoringType', - section: 'operationsEvaluationAndLearning' + section: 'opsEvalAndLearningMisc' }, DATA_TO_MONITOR: { route: 'ops-eval-and-learning/evaluation', fieldName: 'dataNeededForMonitoring', parentField: 'opsEvalAndLearning', - question: 'operationsEvaluationAndLearning:dataNeeded', + question: 'opsEvalAndLearning:dataNeededForMonitoring.label', answer: 'translateDataForMonitoringType', - section: 'operationsEvaluationAndLearning' + section: 'opsEvalAndLearningMisc' }, SEND_REPDATA_TO_PART: { route: 'ops-eval-and-learning/evaluation', fieldName: 'dataToSendParticicipants', parentField: 'opsEvalAndLearning', - question: 'operationsEvaluationAndLearning:dataToSend', + question: 'opsEvalAndLearning:dataToSendParticicipants.label', answer: 'translateDataToSendParticipantsType', - section: 'operationsEvaluationAndLearning' + section: 'opsEvalAndLearningMisc' }, PART_TO_PART_COLLAB: { route: 'ops-eval-and-learning/learning', fieldName: 'modelLearningSystems', parentField: 'opsEvalAndLearning', - question: 'operationsEvaluationAndLearning:learningSystem', + question: 'opsEvalAndLearning:modelLearningSystems.label', answer: 'translateModelLearningSystemType', - section: 'operationsEvaluationAndLearning' + section: 'opsEvalAndLearning' }, EDUCATE_BENEF: { route: 'ops-eval-and-learning/learning', fieldName: 'modelLearningSystems', parentField: 'opsEvalAndLearning', - question: 'operationsEvaluationAndLearning:learningSystem', + question: 'opsEvalAndLearning:modelLearningSystems.label', answer: 'translateModelLearningSystemType', - section: 'operationsEvaluationAndLearning' + section: 'opsEvalAndLearningMisc' }, ACQUIRE_A_LEARN_CONT: { route: 'ops-eval-and-learning/learning', fieldName: 'modelLearningSystems', parentField: 'opsEvalAndLearning', - question: 'operationsEvaluationAndLearning:learningSystem', + question: 'opsEvalAndLearning:modelLearningSystems.label', answer: 'translateModelLearningSystemType', - section: 'operationsEvaluationAndLearning' + section: 'opsEvalAndLearningMisc' }, UTILIZE_QUALITY_MEASURES_DEVELOPMENT_CONTRACTOR: { route: 'ops-eval-and-learning/ccw-and-quality', fieldName: 'developNewQualityMeasures', parentField: 'opsEvalAndLearning', - question: 'operationsEvaluationAndLearning:validatedQuality', + question: 'opsEvalAndLearning:developNewQualityMeasures.label', answer: 'translateBoolean', - section: 'operationsEvaluationAndLearning' + section: 'opsEvalAndLearningMisc' }, IT_PLATFORM_FOR_LEARNING: { route: 'ops-eval-and-learning/learning', fieldName: 'modelLearningSystems', parentField: 'opsEvalAndLearning', - question: 'operationsEvaluationAndLearning:learningSystem', + question: 'opsEvalAndLearning:modelLearningSystems.label', answer: 'translateModelLearningSystemType', - section: 'operationsEvaluationAndLearning' + section: 'opsEvalAndLearningMisc' }, ADJUST_FFS_CLAIMS: { route: 'payment', diff --git a/src/i18n/en-US/index.ts b/src/i18n/en-US/index.ts index d0d9b77e37..9ea242430b 100644 --- a/src/i18n/en-US/index.ts +++ b/src/i18n/en-US/index.ts @@ -1,5 +1,5 @@ import basicsOld from './draftModelPlan/basics'; -import beneficiaries from './draftModelPlan/beneficiaries'; +import beneficiariesOld from './draftModelPlan/beneficiaries'; import crtdl from './draftModelPlan/crtdl'; import discussions from './draftModelPlan/discussions'; import documents from './draftModelPlan/documents'; @@ -7,7 +7,7 @@ import draftModelPlan from './draftModelPlan/draftModelPlan'; import generalCharacteristicsOld from './draftModelPlan/generalCharacteristics'; import itSolutions from './draftModelPlan/itSolutions'; import newModel from './draftModelPlan/newModel'; -import operationsEvaluationAndLearning from './draftModelPlan/operationsEvaulationAndLearning'; +import opsEvalAndLearningOld from './draftModelPlan/operationsEvaulationAndLearning'; import participantsAndProvidersOld from './draftModelPlan/participantsAndProviders'; import payments from './draftModelPlan/payments'; import prepareForClearance from './draftModelPlan/prepareForClearance'; @@ -18,12 +18,17 @@ import sampleModelPlan from './helpAndKnowledge/Articles/sampleModelPlan'; import twoPageMeeting from './helpAndKnowledge/Articles/twoPageMeeting'; import helpAndKnowledge from './helpAndKnowledge/helpAndKnowledge'; import { basics, basicsMisc } from './modelPlan/basics'; +import { beneficiaries, beneficiariesMisc } from './modelPlan/beneficiaries'; import { generalCharacteristics, generalCharacteristicsMisc } from './modelPlan/generalCharacteristics'; import miscellaneous from './modelPlan/miscellaneous'; import modelPlan from './modelPlan/modelPlan'; +import { + opsEvalAndLearning, + opsEvalAndLearningMisc +} from './modelPlan/opsEvalAndLearning'; import { participantsAndProviders, participantsAndProvidersMisc @@ -51,7 +56,6 @@ import termsAndConditions from './termsAndConditions'; const enUS = { accessibilityStatement, auth, - beneficiaries, cookies, crtdl, discussions, @@ -74,12 +78,13 @@ const enUS = { modelSummary, nda, newModel, - operationsEvaluationAndLearning, payments, // Old Translations basicsOld, generalCharacteristicsOld, participantsAndProvidersOld, + beneficiariesOld, + opsEvalAndLearningOld, // New Translation modelPlan, basics, @@ -88,6 +93,10 @@ const enUS = { generalCharacteristicsMisc, participantsAndProviders, participantsAndProvidersMisc, + beneficiaries, + beneficiariesMisc, + opsEvalAndLearning, + opsEvalAndLearningMisc, miscellaneous, // End new translation prepareForClearance, diff --git a/src/i18n/en-US/modelPlan/basics.ts b/src/i18n/en-US/modelPlan/basics.ts index 564d19802d..33bef4cbe7 100644 --- a/src/i18n/en-US/modelPlan/basics.ts +++ b/src/i18n/en-US/modelPlan/basics.ts @@ -5,7 +5,7 @@ export const basics: TranslationBasics = { gqlField: 'modelCategory', goField: 'ModelCategory', dbField: 'model_category', - question: 'Model category', + label: 'Model category', dataType: 'enum', formType: 'select', options: { @@ -29,7 +29,7 @@ export const basics: TranslationBasics = { gqlField: 'amsModelID', goField: 'AmsModelID', dbField: 'ams_model_ID', - question: 'Model ID', + label: 'Model ID', dataType: 'string', formType: 'textarea' }, @@ -37,7 +37,7 @@ export const basics: TranslationBasics = { gqlField: 'demoCode', goField: 'DemoCode', dbField: 'demo_code', - question: 'Demo code(s)', + label: 'Demo code(s)', dataType: 'string', formType: 'textarea' }, @@ -45,7 +45,7 @@ export const basics: TranslationBasics = { gqlField: 'cmsCenters', goField: 'CMMIGroups', dbField: 'cmmi_groups', - question: 'CMS component', + label: 'CMS component', dataType: 'enum', formType: 'checkbox', options: { @@ -63,8 +63,8 @@ export const basics: TranslationBasics = { gqlField: 'cmmiGroups', goField: 'CMSCenters', dbField: 'cms_centers', - question: 'CMMI Group', - hint: + label: 'CMMI Group', + sublabel: 'You only need to select the CMMI group if CMMI is selected as the main CMS component.', dataType: 'enum', formType: 'checkbox', @@ -82,7 +82,7 @@ export const basics: TranslationBasics = { gqlField: 'modelType', goField: 'ModelType', dbField: 'model_type', - question: 'Model Type', + label: 'Model Type', dataType: 'enum', formType: 'radio', options: { @@ -96,7 +96,7 @@ export const basics: TranslationBasics = { gqlField: 'problem', goField: 'Problem', dbField: 'problem', - question: 'Problem statement', + label: 'Problem statement', dataType: 'string', formType: 'textarea' }, @@ -104,8 +104,8 @@ export const basics: TranslationBasics = { gqlField: 'goal', goField: 'Goal', dbField: 'goal', - question: 'Goal', - hint: + label: 'Goal', + sublabel: 'Please include the high level goal of the program and a description of the project.', dataType: 'string', formType: 'textarea', @@ -115,7 +115,7 @@ export const basics: TranslationBasics = { gqlField: 'testInterventions', goField: 'TestInterventions', dbField: 'test_interventions', - question: 'Test Interventions', + label: 'Test Interventions', dataType: 'string', formType: 'textarea' }, @@ -123,7 +123,7 @@ export const basics: TranslationBasics = { gqlField: 'note', goField: 'Note', dbField: 'note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea' }, @@ -131,7 +131,7 @@ export const basics: TranslationBasics = { gqlField: 'completeICIP', goField: 'CompleteICIP', dbField: 'complete_icip', - question: 'Complete ICIP', + label: 'Complete ICIP', dataType: 'date', formType: 'datePicker', filterGroups: ['ipc'] @@ -140,7 +140,7 @@ export const basics: TranslationBasics = { gqlField: 'clearanceStarts', goField: 'ClearanceStarts', dbField: 'clearance_starts', - question: 'Clearance start date', + label: 'Clearance start date', dataType: 'date', formType: 'datePicker', filterGroups: ['ipc'] @@ -149,7 +149,7 @@ export const basics: TranslationBasics = { gqlField: 'clearanceEnds', goField: 'ClearanceEnds', dbField: 'clearance_ends', - question: 'Clearance end date', + label: 'Clearance end date', dataType: 'date', formType: 'datePicker', filterGroups: ['ipc'] @@ -158,7 +158,7 @@ export const basics: TranslationBasics = { gqlField: 'announced', goField: 'Announced', dbField: 'announced', - question: 'Announce model', + label: 'Announce model', dataType: 'date', formType: 'datePicker', filterGroups: ['cbosc', 'iddoc', 'ipc', 'pbg'] @@ -167,7 +167,7 @@ export const basics: TranslationBasics = { gqlField: 'applicationsStart', goField: 'ApplicationsStart', dbField: 'applications_starts', - question: 'Application start date', + label: 'Application start date', dataType: 'date', formType: 'datePicker', filterGroups: ['cbosc', 'ipc'] @@ -176,7 +176,7 @@ export const basics: TranslationBasics = { gqlField: 'applicationsEnd', goField: 'ApplicationsEnd', dbField: 'applications_ends', - question: 'Application end date', + label: 'Application end date', dataType: 'date', formType: 'datePicker', filterGroups: ['ipc'] @@ -185,7 +185,7 @@ export const basics: TranslationBasics = { gqlField: 'performancePeriodStarts', goField: 'PerformancePeriodStarts', dbField: 'performance_period_starts', - question: 'Performance start date', + label: 'Performance start date', dataType: 'date', formType: 'datePicker', filterGroups: ['cbosc', 'ccw', 'dfsdm', 'iddoc', 'ipc', 'pbg'] @@ -194,7 +194,7 @@ export const basics: TranslationBasics = { gqlField: 'performancePeriodEnds', goField: 'PerformancePeriodEnds', dbField: 'performance_period_ends', - question: 'Performance end date', + label: 'Performance end date', dataType: 'date', formType: 'datePicker', filterGroups: ['ipc'] @@ -203,7 +203,7 @@ export const basics: TranslationBasics = { gqlField: 'highLevelNote', goField: 'HighLevelNote', dbField: 'high_level_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea' }, @@ -211,7 +211,7 @@ export const basics: TranslationBasics = { gqlField: 'wrapUpEnds', goField: 'WrapUpEnds', dbField: 'wrap_up_ends', - question: 'Model wrap-up end date', + label: 'Model wrap-up end date', dataType: 'date', formType: 'datePicker', filterGroups: ['ipc'] @@ -220,9 +220,9 @@ export const basics: TranslationBasics = { gqlField: 'phasedIn', goField: 'PhasedIn', dbField: 'phased_in', - question: + label: 'If timelines are tight, might there be pieces of the model that can be phased in over time?', - hint: + sublabel: 'That is, the basic model would start at the earliest possible date but additional facets could be phased in at a later quarter.', dataType: 'boolean', formType: 'radio', @@ -236,7 +236,7 @@ export const basics: TranslationBasics = { gqlField: 'phasedInNote', goField: 'PhasedInNote', dbField: 'phased_in_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea', filterGroups: ['iddoc', 'pbg'] @@ -245,7 +245,7 @@ export const basics: TranslationBasics = { gqlField: 'status', goField: 'Status', dbField: 'status', - question: 'Model Plan status', + label: 'Model Plan status', dataType: 'enum', formType: 'checkbox', options: { diff --git a/src/i18n/en-US/modelPlan/beneficiaries.ts b/src/i18n/en-US/modelPlan/beneficiaries.ts new file mode 100644 index 0000000000..7510cedab5 --- /dev/null +++ b/src/i18n/en-US/modelPlan/beneficiaries.ts @@ -0,0 +1,292 @@ +import { TranslationBeneficiaries } from 'types/translation'; + +export const beneficiaries: TranslationBeneficiaries = { + beneficiaries: { + gqlField: 'participantsCurrentlyInModels', + goField: 'ParticipantsCurrentlyInModels', + dbField: 'beneficiaries', + label: 'Who are the beneficiaries of this model? Select all that apply.', + readonlyLabel: 'Who are the beneficiaries of this model?', + dataType: 'enum', + formType: 'multiSelect', + multiSelectLabel: 'Selected groups', + options: { + DISEASE_SPECIFIC: 'Disease-specific', + DUALLY_ELIGIBLE: 'Dually-eligible beneficiaries', + MEDICAID: 'Medicaid', + MEDICARE_ADVANTAGE: 'Medicare Advantage', + MEDICARE_FFS: 'Medicare FFS beneficiaries', + MEDICARE_PART_D: 'Medicare Part D', + NA: 'Not applicable', + OTHER: 'Other' + }, + optionsLabels: { + DISEASE_SPECIFIC: + '(based on a diagnosis, procedure code, condition, etc.)', + DUALLY_ELIGIBLE: '', + MEDICAID: '', + MEDICARE_ADVANTAGE: '', + MEDICARE_FFS: '', + MEDICARE_PART_D: '', + NA: '', + OTHER: '' + }, + filterGroups: ['mdm'] + }, + beneficiariesOther: { + gqlField: 'beneficiariesOther', + goField: 'BeneficiariesOther', + dbField: 'beneficiaries_other', + label: 'Please describe the other groups this model will impact.', + dataType: 'string', + formType: 'textarea', + filterGroups: ['mdm'] + }, + beneficiariesNote: { + gqlField: 'beneficiariesNote', + goField: 'BeneficiariesNote', + dbField: 'beneficiaries_other', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['mdm'] + }, + treatDualElligibleDifferent: { + gqlField: 'treatDualElligibleDifferent', + goField: 'TreatDualElligibleDifferent', + dbField: 'treat_dual_elligible_different', + label: + 'Should dually-eligible beneficiaries be treated differently than non-dually eligibles?', + dataType: 'boolean', + formType: 'radio', + options: { + YES: 'Yes', + NO: 'No', + TBD: 'Not applicable' + }, + filterGroups: ['iddoc', 'pbg'] + }, + treatDualElligibleDifferentHow: { + gqlField: 'treatDualElligibleDifferentHow', + goField: 'TreatDualElligibleDifferentHow', + dbField: 'treat_dual_elligible_different', + label: 'How so?', + dataType: 'string', + formType: 'textarea', + filterGroups: ['iddoc', 'pbg'] + }, + treatDualElligibleDifferentNote: { + gqlField: 'treatDualElligibleDifferentNote', + goField: 'TreatDualElligibleDifferentNote', + dbField: 'treat_dual_elligible_different_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['iddoc', 'pbg'] + }, + excludeCertainCharacteristics: { + gqlField: 'excludeCertainCharacteristics', + goField: 'ExcludeCertainCharacteristics', + dbField: 'exclude_certain_characteristics', + label: + 'Should beneficiaries with certain characteristics or enrollments be excluded?', + dataType: 'boolean', + formType: 'radio', + options: { + YES: 'Yes', + NO: 'No', + TBD: 'Not applicable' + }, + filterGroups: ['iddoc', 'pbg'] + }, + excludeCertainCharacteristicsCriteria: { + gqlField: 'excludeCertainCharacteristicsCriteria', + goField: 'ExcludeCertainCharacteristicsCriteria', + dbField: 'exclude_certain_characteristics_criteria', + label: 'What are the exclusionary criteria?', + dataType: 'string', + formType: 'textarea', + filterGroups: ['iddoc', 'pbg'] + }, + excludeCertainCharacteristicsNote: { + gqlField: 'excludeCertainCharacteristicsNote', + goField: 'ExcludeCertainCharacteristicsNote', + dbField: 'exclude_certain_characteristics_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['iddoc', 'pbg'] + }, + numberPeopleImpacted: { + gqlField: 'numberPeopleImpacted', + goField: 'NumberPeopleImpacted', + dbField: 'number_people_impacted', + label: 'How many people do you think will be impacted by this model?', + dataType: 'number', + formType: 'rangeInput', + filterGroups: ['mdm'] + }, + estimateConfidence: { + gqlField: 'estimateConfidence', + goField: 'EstimateConfidence', + dbField: 'estimate_confidence', + label: 'What is your level of confidence on this estimate?', + dataType: 'enum', + formType: 'radio', + options: { + NOT_AT_ALL: 'Not at all confident', + SLIGHTLY: 'Slightly confident', + FAIRLY: 'Fairly confident', + COMPLETELY: 'Completely confident' + }, + filterGroups: ['cbosc', 'ccw', 'dfsdm', 'ipc', 'mdm'] + }, + confidenceNote: { + gqlField: 'confidenceNote', + goField: 'ConfidenceNote', + dbField: 'confidence_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cbosc', 'ccw', 'dfsdm', 'ipc'] + }, + beneficiarySelectionMethod: { + gqlField: 'beneficiarySelectionMethod', + goField: 'BeneficiarySelectionMethod', + dbField: 'beneficiary_selection_method', + label: 'How will you choose beneficiaries? Select all that apply.', + readonlyLabel: 'How will you choose beneficiaries?', + dataType: 'enum', + formType: 'multiSelect', + multiSelectLabel: 'Selected methods', + options: { + HISTORICAL: 'Historical claims', + PROSPECTIVE: 'Assign/capture - prospective', + RETROSPECTIVE: 'Assign/capture - retrospective', + VOLUNTARY: 'Voluntary alignment', + PROVIDER_SIGN_UP: 'Beneficiary will sign up through their provider', + OTHER: 'Other', + NA: 'Not applicable' + }, + filterGroups: ['cmmi'] + }, + beneficiarySelectionOther: { + gqlField: 'beneficiarySelectionOther', + goField: 'BeneficiarySelectionOther', + dbField: 'beneficiary_selection_other', + label: 'Please describe the other method for choosing beneficiaries.', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cmmi'] + }, + beneficiarySelectionNote: { + gqlField: 'beneficiarySelectionNote', + goField: 'BeneficiarySelectionNote', + dbField: 'beneficiary_selection_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cmmi'] + }, + beneficiarySelectionFrequency: { + gqlField: 'beneficiarySelectionFrequency', + goField: 'BeneficiarySelectionFrequency', + dbField: 'beneficiary_selection_frequency', + label: 'How frequently are beneficiaries chosen?', + dataType: 'enum', + formType: 'radio', + options: { + ANNUALLY: 'Annually', + BIANNUALLY: 'Biannually', + MONTHLY: 'Monthly', + QUARTERLY: 'Quarterly', + ROLLING: 'Rolling', + OTHER: 'Other' + }, + filterGroups: ['cmmi'] + }, + beneficiarySelectionFrequencyOther: { + gqlField: 'beneficiarySelectionFrequencyOther', + goField: 'BeneficiarySelectionFrequencyOther', + dbField: 'beneficiary_selection_frequency_other', + label: 'Please specify', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cmmi'] + }, + beneficiarySelectionFrequencyNote: { + gqlField: 'beneficiarySelectionFrequencyNote', + goField: 'BeneficiarySelectionFrequencyNote', + dbField: 'beneficiary_selection_frequency_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cmmi'] + }, + beneficiaryOverlap: { + gqlField: 'beneficiaryOverlap', + goField: 'BeneficiaryOverlap', + dbField: 'beneficiary_overlap', + label: 'Will the beneficiaries overlap with other models?', + dataType: 'enum', + formType: 'radio', + options: { + YES_NEED_POLICIES: + 'Yes, we expect to develop policies to manage the overlaps', + YES_NO_ISSUES: 'Yes, and the overlaps would not be an issue', + NO: 'No' + }, + filterGroups: ['mdm'] + }, + beneficiaryOverlapNote: { + gqlField: 'beneficiaryOverlapNote', + goField: 'BeneficiaryOverlapNote', + dbField: 'beneficiary_overlap_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['mdm'] + }, + precedenceRules: { + gqlField: 'precedenceRules', + goField: 'PrecedenceRules', + dbField: 'beneficiary_overlap_note', + label: 'Are there precedence rules between this model and other model(s)?', + sublabel: + 'i.e. other models have precedence over you (e.g. mandatory or statutory models running at the same time as yours)', + dataType: 'string', + formType: 'textarea', + filterGroups: ['mdm', 'oact'] + }, + status: { + gqlField: 'status', + goField: 'Status', + dbField: 'status', + label: 'Model Plan status', + dataType: 'enum', + formType: 'checkbox', + options: { + READY: + 'This section of the Model Plan (Model basics) is ready for review.', + IN_PROGRESS: + 'This section of the Model Plan (Model basics) is ready for review.', + READY_FOR_REVIEW: + 'This section of the Model Plan (Model basics) is ready for review.', + READY_FOR_CLEARANCE: + 'This section of the Model Plan (Model basics) is ready for review.' + } + } +}; + +export const beneficiariesMisc = { + heading: 'Beneficiaries', + clearanceHeading: 'Review beneficiciaries', + breadcrumb: 'Beneficiaries', + beneficiariesNA: + 'If you will not have beneficiaries, you can skip the rest of the questions in this section. Feel free to add any additional notes or details that would be helpful to others.', + numberOfPeopleImpacted: 'Number of people', + zero: '0', + tenThousand: '10,000+' +}; + +export default beneficiaries; diff --git a/src/i18n/en-US/modelPlan/generalCharacteristics.ts b/src/i18n/en-US/modelPlan/generalCharacteristics.ts index 9735183f2a..7f5ffc0400 100644 --- a/src/i18n/en-US/modelPlan/generalCharacteristics.ts +++ b/src/i18n/en-US/modelPlan/generalCharacteristics.ts @@ -5,7 +5,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'isNewModel', goField: 'IsNewModel', dbField: 'is_new_model', - question: 'Is this a new track of an existing model or a new model?', + label: 'Is this a new track of an existing model or a new model?', dataType: 'boolean', formType: 'radio', options: { @@ -17,8 +17,8 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'existingModel', goField: 'ExistingModel', dbField: 'existing_model', - question: 'Which existing model?', - hint: 'Start typing the name of the model', + label: 'Which existing model?', + sublabel: 'Start typing the name of the model', dataType: 'string', formType: 'select' }, @@ -26,7 +26,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'resemblesExistingModel', goField: 'ResemblesExistingModel', dbField: 'resembles_existing_model', - question: 'Does your proposed track/model resemble any existing models?', + label: 'Does your proposed track/model resemble any existing models?', dataType: 'boolean', formType: 'radio', options: { @@ -40,9 +40,9 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'existingModelLinks', goField: 'ExistingModelLinks', dbField: 'existing_model_links', - question: + label: 'Which existing models does your proposed track/model most closely resemble?', - hint: 'Start typing the name of the model', + sublabel: 'Start typing the name of the model', multiSelectLabel: 'Selected models', dataType: 'string', formType: 'multiSelect', @@ -52,7 +52,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'resemblesExistingModelHow', goField: 'ResemblesExistingModelHow', dbField: 'resembles_existing_model_how', - question: 'In what way does the new model resemble the selected model(s)?', + label: 'In what way does the new model resemble the selected model(s)?', dataType: 'string', formType: 'textarea' }, @@ -60,7 +60,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'resemblesExistingModelNote', goField: 'ResemblesExistingModelNote', dbField: 'resembles_existing_model_note', - question: 'Note', + label: 'Note', dataType: 'string', formType: 'textarea' }, @@ -68,7 +68,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'hasComponentsOrTracks', goField: 'HasComponentsOrTracks', dbField: 'has_components_or_tracks', - question: 'Are there different components/tracks?', + label: 'Are there different components/tracks?', dataType: 'boolean', formType: 'radio', options: { @@ -80,7 +80,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'hasComponentsOrTracksDiffer', goField: 'HasComponentsOrTracksDiffer', dbField: 'has_components_or_tracks_differ', - question: 'How do the tracks differ?', + label: 'How do the tracks differ?', dataType: 'string', formType: 'textarea' }, @@ -88,7 +88,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'hasComponentsOrTracksNote', goField: 'HasComponentsOrTracksNote', dbField: 'has_components_or_tracks_note', - question: 'Note', + label: 'Note', dataType: 'string', formType: 'textarea' }, @@ -96,9 +96,9 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'alternativePaymentModelTypes', goField: 'AlternativePaymentModelTypes', dbField: 'alternative_payment_model_types', - question: + label: 'What type of Alternative Payment Model (APM) do you think the model could be?', - hint: + sublabel: 'In order to be considered by the Quality Payment Program (QPP), and to be MIPS or Advanced APM, you will need to collect TINs and NPIs for providers.', dataType: 'enum', formType: 'checkbox', @@ -114,7 +114,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'alternativePaymentModelNote', goField: 'AlternativePaymentModelNote', dbField: 'alternative_payment_model_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea', filterGroups: ['cmmi', 'oact'] @@ -123,8 +123,8 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'keyCharacteristics', goField: 'KeyCharacteristics', dbField: 'key_characteristics', - question: 'What are the model key characteristics? Select all that apply.', - readonlyQuestion: 'What are the model key characteristics?', + label: 'What are the model key characteristics? Select all that apply.', + readonlyLabel: 'What are the model key characteristics?', dataType: 'enum', formType: 'multiSelect', multiSelectLabel: 'Selected key characteristics', @@ -145,7 +145,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'keyCharacteristicsNote', goField: 'KeyCharacteristicsNote', dbField: 'key_characteristics_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea', filterGroups: ['cmmi', 'iddoc', 'pbg'] @@ -154,7 +154,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'keyCharacteristicsOther', goField: 'KeyCharacteristicsOther', dbField: 'key_characteristics_other', - question: 'Please describe the other key characteristics', + label: 'Please describe the other key characteristics', dataType: 'string', formType: 'text' }, @@ -162,7 +162,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'collectPlanBids', goField: 'CollectPlanBids', dbField: 'collect_plan_bids', - question: 'Will you review and collect plan bids?', + label: 'Will you review and collect plan bids?', dataType: 'boolean', formType: 'radio', options: { @@ -175,7 +175,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'collectPlanBidsNote', goField: 'CollectPlanBidsNote', dbField: 'collect_plan_bids_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea' }, @@ -183,7 +183,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'managePartCDEnrollment', goField: 'ManagePartCDEnrollment', dbField: 'manage_part_c_d_enrollment', - question: 'Will you manage Part C/D enrollment?', + label: 'Will you manage Part C/D enrollment?', dataType: 'boolean', formType: 'radio', options: { @@ -195,7 +195,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'managePartCDEnrollmentNote', goField: 'ManagePartCDEnrollmentNote', dbField: 'manage_part_c_d_enrollment_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea' }, @@ -203,7 +203,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'planContractUpdated', goField: 'PlanContractUpdated', dbField: 'plan_contract_updated', - question: 'Have you updated the plan’s contract?', + label: 'Have you updated the plan’s contract?', dataType: 'boolean', formType: 'radio', options: { @@ -215,7 +215,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'planContractUpdatedNote', goField: 'PlanContractUpdatedNote', dbField: 'plan_contract_updated_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea' }, @@ -223,7 +223,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'careCoordinationInvolved', goField: 'CareCoordinationInvolved', dbField: 'care_coordination_involved', - question: 'Is care coordination involved?', + label: 'Is care coordination involved?', dataType: 'boolean', formType: 'radio', options: { @@ -235,7 +235,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'careCoordinationInvolvedDescription', goField: 'CareCoordinationInvolvedDescription', dbField: 'care_coordination_involved_description', - question: 'How so?', + label: 'How so?', dataType: 'string', formType: 'textarea' }, @@ -243,7 +243,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'careCoordinationInvolvedNote', goField: 'CareCoordinationInvolvedNote', dbField: 'care_coordination_involved_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea' }, @@ -251,7 +251,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'additionalServicesInvolved', goField: 'AdditionalServicesInvolved', dbField: 'additional_services_involved', - question: 'Are additional services involved?', + label: 'Are additional services involved?', dataType: 'boolean', formType: 'radio', options: { @@ -263,7 +263,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'additionalServicesInvolvedDescription', goField: 'AdditionalServicesInvolvedDescription', dbField: 'additional_services_involved_description', - question: 'How so?', + label: 'How so?', dataType: 'string', formType: 'textarea' }, @@ -271,7 +271,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'additionalServicesInvolvedNote', goField: 'AdditionalServicesInvolvedNote', dbField: 'additional_services_involved_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea' }, @@ -279,7 +279,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'communityPartnersInvolved', goField: 'CommunityPartnersInvolved', dbField: 'community_partners_involved', - question: 'Are community partners involved?', + label: 'Are community partners involved?', dataType: 'boolean', formType: 'radio', options: { @@ -291,7 +291,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'communityPartnersInvolvedDescription', goField: 'CommunityPartnersInvolvedDescription', dbField: 'community_partners_involved', - question: 'How so?', + label: 'How so?', dataType: 'string', formType: 'textarea' }, @@ -299,7 +299,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'communityPartnersInvolvedNote', goField: 'CommunityPartnersInvolvedNote', dbField: 'community_partners_involved_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea' }, @@ -307,7 +307,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'geographiesTargeted', goField: 'GeographiesTargeted', dbField: 'geographies_targeted', - question: 'Is the model targeted at specific geographies?', + label: 'Is the model targeted at specific geographies?', dataType: 'boolean', formType: 'radio', options: { @@ -320,7 +320,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'geographiesTargetedTypes', goField: 'GeographiesTargetedTypes', dbField: 'geographies_targeted_types', - question: 'Geography type is', + label: 'Geography type is', dataType: 'enum', formType: 'checkbox', options: { @@ -334,7 +334,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'geographiesTargetedTypesOther', goField: 'GeographiesTargetedTypesOther', dbField: 'geographies_targeted_types_other', - question: 'Please specify what the other geography type is.', + label: 'Please specify what the other geography type is.', dataType: 'string', formType: 'text', filterGroups: ['iddoc', 'pbg'] @@ -343,7 +343,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'geographiesTargetedAppliedTo', goField: 'GeographiesTargetedAppliedTo', dbField: 'geographies_targeted_applied_to', - question: 'Geographies are applied to', + label: 'Geographies are applied to', dataType: 'enum', formType: 'checkbox', options: { @@ -358,7 +358,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'geographiesTargetedAppliedToOther', goField: 'GeographiesTargetedAppliedToOther', dbField: 'geographies_targeted_applied_to_other', - question: 'Please specify what the geographies are applied to.', + label: 'Please specify what the geographies are applied to.', dataType: 'string', formType: 'text', filterGroups: ['iddoc', 'pbg'] @@ -367,7 +367,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'geographiesTargetedNote', goField: 'GeographiesTargetedNote', dbField: 'geographies_targeted_note', - question: 'Notes', + label: 'Notes', dataType: 'boolean', formType: 'radio', filterGroups: ['iddoc', 'pbg'] @@ -376,7 +376,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'participationOptions', goField: 'ParticipationOptions', dbField: 'participation_options', - question: 'Does the model offer different options for participation?', + label: 'Does the model offer different options for participation?', dataType: 'boolean', formType: 'radio', options: { @@ -389,7 +389,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'participationOptionsNote', goField: 'ParticipationOptionsNote', dbField: 'participation_options_note', - question: 'Notes', + label: 'Notes', dataType: 'boolean', formType: 'radio', filterGroups: ['cmmi'] @@ -398,8 +398,8 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'agreementTypes', goField: 'AgreementTypes', dbField: 'agreement_types', - question: 'What is the agreement type?', - hint: + label: 'What is the agreement type?', + sublabel: 'Note: CMMI writes, Office of General Council (OGC) approves both types of agreements', dataType: 'boolean', formType: 'radio', @@ -414,7 +414,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'agreementTypesOther', goField: 'AgreementTypesOther', dbField: 'agreement_types_other', - question: 'Please specify', + label: 'Please specify', dataType: 'string', formType: 'text', filterGroups: ['cmmi'] @@ -423,8 +423,8 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'multiplePatricipationAgreementsNeeded', goField: 'MultiplePatricipationAgreementsNeeded', dbField: 'multiple_patricipation_agreements_needed', - question: 'Will more than one participation agreement be needed?', - hint: + label: 'Will more than one participation agreement be needed?', + sublabel: 'depending on awardee selections or characteristics such as risk/type/size', dataType: 'boolean', formType: 'radio', @@ -438,7 +438,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'multiplePatricipationAgreementsNeededNote', goField: 'MultiplePatricipationAgreementsNeededNote', dbField: 'multiple_patricipation_agreements_needed_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea', filterGroups: ['cmmi'] @@ -447,7 +447,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'rulemakingRequired', goField: 'RulemakingRequired', dbField: 'rulemaking_required', - question: 'Is rulemaking required?', + label: 'Is rulemaking required?', dataType: 'boolean', formType: 'radio', options: { @@ -460,7 +460,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'multiplePatricipationAgreementsNeeded', goField: 'MultiplePatricipationAgreementsNeeded', dbField: 'multiple_patricipation_agreements_needed', - question: + label: 'Which rule do you anticipate using and what is the target date of display for that regulation?', dataType: 'string', formType: 'textarea', @@ -470,7 +470,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'rulemakingRequiredNote', goField: 'RulemakingRequiredNote', dbField: 'rulemaking_required_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea' }, @@ -478,7 +478,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'authorityAllowances', goField: 'AuthorityAllowances', dbField: 'authority_allowances', - question: 'What authority allows CMMI to test the model?', + label: 'What authority allows CMMI to test the model?', dataType: 'enum', formType: 'checkbox', options: { @@ -494,7 +494,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'authorityAllowancesOther', goField: 'AuthorityAllowancesOther', dbField: 'authority_allowances_other', - question: 'Please specify', + label: 'Please specify', dataType: 'string', formType: 'textarea', filterGroups: ['cmmi'] @@ -503,7 +503,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'authorityAllowancesNote', goField: 'AuthorityAllowancesNote', dbField: 'authority_allowances_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea', filterGroups: ['cmmi'] @@ -512,7 +512,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'waiversRequired', goField: 'WaiversRequired', dbField: 'waivers_required', - question: 'Are waivers required?', + label: 'Are waivers required?', dataType: 'boolean', formType: 'radio', options: { @@ -525,8 +525,8 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'waiversRequiredTypes', goField: 'WaiversRequiredTypes', dbField: 'waivers_required_types', - question: 'Which types of waivers are required? Select all that apply.', - readonlyQuestion: 'Which types of waivers are required?', + label: 'Which types of waivers are required? Select all that apply.', + readonlyLabel: 'Which types of waivers are required?', dataType: 'enum', formType: 'checkbox', options: { @@ -546,7 +546,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'waiversRequiredNote', goField: 'WaiversRequiredNote', dbField: 'waivers_required_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea', filterGroups: ['cmmi'] @@ -555,7 +555,7 @@ export const generalCharacteristics: TranslationGeneralCharacteristics = { gqlField: 'status', goField: 'Status', dbField: 'status', - question: 'Model Plan status', + label: 'Model Plan status', dataType: 'enum', formType: 'checkbox', options: { diff --git a/src/i18n/en-US/modelPlan/modelPlan.ts b/src/i18n/en-US/modelPlan/modelPlan.ts index ccafcd2c74..5cff46edbf 100644 --- a/src/i18n/en-US/modelPlan/modelPlan.ts +++ b/src/i18n/en-US/modelPlan/modelPlan.ts @@ -5,7 +5,7 @@ const modelPlan: TranslationModelPlan = { gqlField: 'modelName', goField: 'ModelName', dbField: 'model_name', - question: 'Model name', + label: 'Model name', dataType: 'string', formType: 'text' }, @@ -13,7 +13,7 @@ const modelPlan: TranslationModelPlan = { gqlField: 'previousName', goField: 'PreviousName', dbField: 'previous_name', - question: 'Previous names', + label: 'Previous names', dataType: 'string', formType: 'text' }, @@ -21,8 +21,9 @@ const modelPlan: TranslationModelPlan = { gqlField: 'abbreviation', goField: 'abbreviation', dbField: 'abbreviation', - question: 'Short name', - hint: 'The abbreviation, acronym, or other common name used for the model.', + label: 'Short name', + sublabel: + 'The abbreviation, acronym, or other common name used for the model.', dataType: 'string', formType: 'text' } diff --git a/src/i18n/en-US/modelPlan/opsEvalAndLearning.ts b/src/i18n/en-US/modelPlan/opsEvalAndLearning.ts new file mode 100644 index 0000000000..d6782084bd --- /dev/null +++ b/src/i18n/en-US/modelPlan/opsEvalAndLearning.ts @@ -0,0 +1,1152 @@ +import { TranslationOpsEvalAndLearning } from 'types/translation'; + +export const opsEvalAndLearning: TranslationOpsEvalAndLearning = { + agencyOrStateHelp: { + gqlField: 'agencyOrStateHelp', + goField: 'AgencyOrStateHelp', + dbField: 'agency_or_state_help', + label: + 'Will another Agency or State help design/operate the model? Select all that apply.', + readonlyLabel: + 'Will another Agency or State help design/operate the model?', + dataType: 'enum', + formType: 'checkbox', + options: { + YES_STATE: 'Yes, we will partner with states', + YES_AGENCY_IDEAS: 'Yes, we will get ideas from another agency', + YES_AGENCY_IAA: + 'Yes, we will get support from another agency through Inter Agency Agreement (IAA)', + NO: 'No', + OTHER: 'Other' + } + }, + agencyOrStateHelpOther: { + gqlField: 'agencyOrStateHelpOther', + goField: 'AgencyOrStateHelpOther', + dbField: 'agency_or_state_help_other', + label: 'Please specify', + dataType: 'string', + formType: 'textarea' + }, + agencyOrStateHelpNote: { + gqlField: 'agencyOrStateHelpNote', + goField: 'AgencyOrStateHelpNote', + dbField: 'agency_or_state_help_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea' + }, + stakeholders: { + gqlField: 'stakeholders', + goField: 'Stakeholders', + dbField: 'stakeholders', + label: 'What stakeholders do you plan to communicate with?', + dataType: 'enum', + formType: 'multiSelect', + multiSelectLabel: 'Selected stakeholders', + options: { + BENEFICIARIES: 'Beneficiaries', + COMMUNITY_ORGANIZATIONS: 'Community organizations', + PARTICIPANTS: 'Participants', + PROFESSIONAL_ORGANIZATIONS: 'Professional organizations', + PROVIDERS: 'Providers', + STATES: 'States', + OTHER: 'Other' + }, + filterGroups: ['cbosc'] + }, + stakeholdersOther: { + gqlField: 'stakeholdersOther', + goField: 'StakeholdersOther', + dbField: 'stakeholders', + label: + 'Please describe the other stakeholders you plan to communicate with.', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cbosc'] + }, + stakeholdersNote: { + gqlField: 'stakeholdersNote', + goField: 'StakeholdersNote', + dbField: 'stakeholders_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cbosc'] + }, + helpdeskUse: { + gqlField: 'helpdeskUse', + goField: 'HelpdeskUse', + dbField: 'stakeholders_note', + label: 'Do you plan to use a helpdesk?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + }, + filterGroups: ['cbosc'] + }, + helpdeskUseNote: { + gqlField: 'helpdeskUseNote', + goField: 'HelpdeskUseNote', + dbField: 'helpdesk_use_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cbosc'] + }, + contractorSupport: { + gqlField: 'contractorSupport', + goField: 'ContractorSupport', + dbField: 'contractor_support', + label: 'What contractors will support your model?', + dataType: 'enum', + formType: 'checkbox', + options: { + ONE: 'One contractor to support implementation', + MULTIPLE: + 'May have separate contractors for different implementation functions', + NONE: 'Do not plan to use an implemenation contractor', + OTHER: 'Other' + }, + filterGroups: ['cbosc', 'iddoc'] + }, + contractorSupportOther: { + gqlField: 'contractorSupportOther', + goField: 'ContractorSupportOther', + dbField: 'contractor_support_other', + label: 'Please specify', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cbosc', 'iddoc'] + }, + contractorSupportHow: { + gqlField: 'contractorSupportHow', + goField: 'ContractorSupportHow', + dbField: 'contractor_support_how', + label: 'In what capacity will they support your model?', + sublabel: '(implementation, data analysis, quality, etc.)', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cbosc', 'iddoc'] + }, + contractorSupportNote: { + gqlField: 'contractorSupportNote', + goField: 'ContractorSupportNote', + dbField: 'contractor_support_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cbosc', 'iddoc'] + }, + iddocSupport: { + gqlField: 'iddocSupport', + goField: 'IddocSupport', + dbField: 'iddoc_support', + label: 'Are you planning to use IDDOC support?', + sublabel: + 'IDDOC is commonly known as ACO-OS (Accountable Care Organization Operating System). They can provide support for design, development, operations, and maintenance.', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + }, + filterGroups: ['iddoc'] + }, + iddocSupportNote: { + gqlField: 'iddocSupportNote', + goField: 'IddocSupportNote', + dbField: 'iddoc_support_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['iddoc'] + }, + technicalContactsIdentified: { + gqlField: 'technicalContactsIdentified', + goField: 'TechnicalContactsIdentified', + dbField: 'technical_contacts_identified', + label: 'Are technical contacts identified?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + }, + filterGroups: ['iddoc'] + }, + technicalContactsIdentifiedDetail: { + gqlField: 'technicalContactsIdentifiedDetail', + goField: 'TechnicalContactsIdentifiedDetail', + dbField: 'technical_contacts_identified_detail', + label: 'Please specify', + dataType: 'string', + formType: 'textarea', + filterGroups: ['iddoc'] + }, + technicalContactsIdentifiedNote: { + gqlField: 'technicalContactsIdentifiedNote', + goField: 'TechnicalContactsIdentifiedNote', + dbField: 'technical_contacts_identified_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['iddoc'] + }, + captureParticipantInfo: { + gqlField: 'captureParticipantInfo', + goField: 'CaptureParticipantInfo', + dbField: 'capture_participant_info', + label: 'Will you capture participant information?', + sublabel: + 'This means the participant record for a model would be included in the ACO-OS Entity File.', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + }, + filterGroups: ['iddoc'] + }, + captureParticipantInfoNote: { + gqlField: 'captureParticipantInfoNote', + goField: 'CaptureParticipantInfoNote', + dbField: 'capture_participant_info', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['iddoc'] + }, + icdOwner: { + gqlField: 'icdOwner', + goField: 'IcdOwner', + dbField: 'icd_owner', + label: 'ICD owner', + dataType: 'string', + formType: 'text', + filterGroups: ['iddoc'] + }, + draftIcdDueDate: { + gqlField: 'draftIcdDueDate', + goField: 'DraftIcdDueDate', + dbField: 'draft_icd_due_date', + label: 'Draft ICD required by', + dataType: 'date', + formType: 'datePicker', + filterGroups: ['iddoc'] + }, + icdNote: { + gqlField: 'icdNote', + goField: 'IcdNote', + dbField: 'icd_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['iddoc'] + }, + uatNeeds: { + gqlField: 'uatNeeds', + goField: 'UatNeeds', + dbField: 'uat_needs', + label: 'User Acceptance Testing (UAT) – test data needs', + dataType: 'string', + formType: 'textarea', + filterGroups: ['iddoc'] + }, + stcNeeds: { + gqlField: 'stcNeeds', + goField: 'StcNeeds', + dbField: 'stc_needs', + label: 'STC – test data needs', + dataType: 'string', + formType: 'textarea', + filterGroups: ['iddoc'] + }, + testingTimelines: { + gqlField: 'testingTimelines', + goField: 'TestingTimelines', + dbField: 'testing_timelines', + label: 'Define the testing timelines', + dataType: 'string', + formType: 'textarea', + filterGroups: ['iddoc'] + }, + testingNote: { + gqlField: 'testingNote', + goField: 'TestingNote', + dbField: 'testing_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['iddoc'] + }, + dataMonitoringFileTypes: { + gqlField: 'dataMonitoringFileTypes', + goField: 'DataMonitoringFileTypes', + dbField: 'data_monitoring_file_types', + label: 'What types of files? Select all that apply.', + readonlyLabel: 'What types of files?', + dataType: 'enum', + formType: 'checkbox', + options: { + BENEFICIARY: 'Beneficiary', + PROVIDER: 'Provider', + PART_A: 'Part A', + PART_B: 'Part B', + OTHER: 'Other' + }, + filterGroups: ['iddoc'] + }, + dataMonitoringFileOther: { + gqlField: 'dataMonitoringFileOther', + goField: 'DataMonitoringFileOther', + dbField: 'data_monitoring_file_other', + label: 'What types of responses?', + dataType: 'string', + formType: 'text', + filterGroups: ['iddoc'] + }, + dataResponseType: { + gqlField: 'dataResponseType', + goField: 'DataResponseType', + dbField: 'data_response_type', + label: 'What types of responses?', + dataType: 'string', + formType: 'textarea', + filterGroups: ['iddoc'] + }, + dataResponseFileFrequency: { + gqlField: 'dataResponseFileFrequency', + goField: 'DataResponseFileFrequency', + dbField: 'data_response_file_frequency', + label: 'Frequency of files?', + dataType: 'string', + formType: 'text', + filterGroups: ['iddoc'] + }, + dataFullTimeOrIncremental: { + gqlField: 'dataFullTimeOrIncremental', + goField: 'DataFullTimeOrIncremental', + dbField: 'data_full_time_or_incremental', + label: 'Full time or incremental?', + dataType: 'boolean', + formType: 'radio', + options: { + FULL_TIME: 'Full time', + INCREMENTAL: 'Incremental' + }, + filterGroups: ['iddoc'] + }, + eftSetUp: { + gqlField: 'eftSetUp', + goField: 'EftSetUp', + dbField: 'eft_set_up', + label: 'Are Electronic File Transfer (EFT) and connectivity set up?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + } + }, + unsolicitedAdjustmentsIncluded: { + gqlField: 'unsolicitedAdjustmentsIncluded', + goField: 'UnsolicitedAdjustmentsIncluded', + dbField: 'unsolicited_adjustments_included', + label: 'Will unsolicited adjustments be included?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + }, + filterGroups: ['iddoc'] + }, + dataFlowDiagramsNeeded: { + gqlField: 'dataFlowDiagramsNeeded', + goField: 'DataFlowDiagramsNeeded', + dbField: 'data_flow_diagrams_needed', + label: 'Are data flow diagrams needed?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + } + }, + produceBenefitEnhancementFiles: { + gqlField: 'produceBenefitEnhancementFiles', + goField: 'ProduceBenefitEnhancementFiles', + dbField: 'produce_benefit_enhancement_files', + label: 'Will you produce Benefit Enhancement Files?', + sublabel: + 'This means we would use these files for Participating and Preferred Providers.', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + }, + filterGroups: ['iddoc'] + }, + fileNamingConventions: { + gqlField: 'fileNamingConventions', + goField: 'FileNamingConventions', + dbField: 'file_naming_conventions', + label: 'File naming conventions', + dataType: 'string', + formType: 'text', + filterGroups: ['iddoc'] + }, + dataMonitoringNote: { + gqlField: 'dataMonitoringNote', + goField: 'DataMonitoringNote', + dbField: 'data_monitoring_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['iddoc'] + }, + benchmarkForPerformance: { + gqlField: 'benchmarkForPerformance', + goField: 'BenchmarkForPerformance', + dbField: 'benchmark_for_performance', + label: 'Will you establish a benchmark to capture performance?', + dataType: 'enum', + formType: 'radio', + options: { + YES_RECONCILE: 'Yes, and we will reconcile actual performance against it', + YES_NO_RECONCILE: + 'Yes, but we will not reconcile actual performance against it', + NO: 'No' + }, + filterGroups: ['cmmi'] + }, + benchmarkForPerformanceNote: { + gqlField: 'benchmarkForPerformanceNote', + goField: 'BenchmarkForPerformanceNote', + dbField: 'benchmark_for_performance_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cmmi'] + }, + computePerformanceScores: { + gqlField: 'computePerformanceScores', + goField: 'ComputePerformanceScores', + dbField: 'compute_performance_scores', + label: 'Will you compute performance scores?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + }, + filterGroups: ['cmmi'] + }, + computePerformanceScoresNote: { + gqlField: 'computePerformanceScoresNote', + goField: 'ComputePerformanceScoresNote', + dbField: 'compute_performance_scores_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cmmi'] + }, + riskAdjustPerformance: { + gqlField: 'riskAdjustPerformance', + goField: 'RiskAdjustPerformance', + dbField: 'risk_adjust_performance', + label: 'Performance Scores', + readonlyLabel: 'Will you make risk adjustments to performance scores?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + }, + filterGroups: ['cmmi'] + }, + riskAdjustFeedback: { + gqlField: 'riskAdjustFeedback', + goField: 'RiskAdjustFeedback', + dbField: 'risk_adjust_feedback', + label: 'Feedback Results', + readonlyLabel: 'Will you make risk adjustments to feedback results?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + } + }, + riskAdjustPayments: { + gqlField: 'riskAdjustPayments', + goField: 'RiskAdjustPayments', + dbField: 'risk_adjust_payments', + label: 'Payments', + readonlyLabel: 'Will you make risk adjustments to payments?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + }, + filterGroups: ['cmmi'] + }, + riskAdjustOther: { + gqlField: 'riskAdjustOther', + goField: 'RiskAdjustOther', + dbField: 'risk_adjust_other', + label: 'Others', + readonlyLabel: 'Will you make risk adjustments to others?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + } + }, + riskAdjustNote: { + gqlField: 'riskAdjustNote', + goField: 'RiskAdjustNote', + dbField: 'risk_adjust_note', + label: 'Are data flow diagrams needed?', + dataType: 'string', + formType: 'textarea' + }, + appealPerformance: { + gqlField: 'appealPerformance', + goField: 'AppealPerformance', + dbField: 'appeal_performance', + label: 'Performance Scores', + readonlyLabel: 'Will participants be able to appeal performance scores?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + } + }, + appealFeedback: { + gqlField: 'appealFeedback', + goField: 'AppealFeedback', + dbField: 'appeal_feedback', + label: 'Feedback Results', + readonlyLabel: 'Will participants be able to appeal feedback results?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + } + }, + appealPayments: { + gqlField: 'appealPayments', + goField: 'AppealPayments', + dbField: 'appeal_payments', + label: 'Payments', + readonlyLabel: 'Will participants be able to appeal payments?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + } + }, + appealOther: { + gqlField: 'appealOther', + goField: 'AppealOther', + dbField: 'appeal_other', + label: 'Others', + readonlyLabel: 'Will participants be able to appeal others?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + } + }, + appealNote: { + gqlField: 'appealNote', + goField: 'AppealNote', + dbField: 'appeal_note', + label: 'Are data flow diagrams needed?', + dataType: 'string', + formType: 'textarea' + }, + evaluationApproaches: { + gqlField: 'evaluationApproaches', + goField: 'eEvaluationApproaches', + dbField: 'evaluation_approaches', + label: + 'What type of evaluation approach are you considering? Select all that apply.', + readonlyLabel: 'What type of evaluation approach are you considering?', + dataType: 'enum', + formType: 'checkbox', + options: { + COMPARISON_MATCH: 'Identify a comparison/match group', + CONTROL_INTERVENTION: 'Establish control and intervention groups', + INTERRUPTED_TIME: 'Interrupted time series', + NON_MEDICARE_DATA: + 'Leverage non-Medicare data (such as Medicaid data, external data sets)', + OTHER: 'Other' + } + }, + evaluationApproachOther: { + gqlField: 'evaluationApproachOther', + goField: 'EvaluationApproachOther', + dbField: 'evaluation_approach_other', + label: 'Please describe the other evaluation approach you are considering.', + dataType: 'string', + formType: 'textarea' + }, + evalutaionApproachNote: { + gqlField: 'evalutaionApproachNote', + goField: 'EvalutaionApproachNote', + dbField: 'evalutaion_approach_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea' + }, + ccmInvolvment: { + gqlField: 'ccmInvolvment', + goField: 'CcmInvolvment', + dbField: 'ccm_involvment', + label: 'Is Chronic Conditions Warehouse (CCW) involved in the model?', + sublabel: + 'If you select either yes option, there will be additional questions to answer.', + dataType: 'enum', + formType: 'checkbox', + options: { + YES_EVALUATION: 'Yes, for evaluation', + YES__IMPLEMENTATION: 'Yes, for implementation', + NO: 'No', + OTHER: 'Other' + }, + filterGroups: ['ccw'] + }, + ccmInvolvmentOther: { + gqlField: 'ccmInvolvmentOther', + goField: 'CcmInvolvmentOther', + dbField: 'ccm_involvment_other', + label: 'Please specify', + dataType: 'string', + formType: 'textarea', + filterGroups: ['ccw'] + }, + ccmInvolvmentNote: { + gqlField: 'ccmInvolvmentNote', + goField: 'CcmInvolvmentNote', + dbField: 'ccm_involvment_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['ccw'] + }, + dataNeededForMonitoring: { + gqlField: 'dataNeededForMonitoring', + goField: 'DataNeededForMonitoring', + dbField: 'data_needed_for_monitoring', + label: 'What data do you need to monitor the model? Select all that apply.', + readonlyLabel: 'What data do you need to monitor the model?', + sublabel: + 'If you select quality claims-based measures or quality reported measures, there will be additional questions to answer.', + dataType: 'enum', + formType: 'multiSelect', + multiSelectLabel: 'Selected data', + options: { + SITE_VISITS: 'Site visits', + MEDICARE_CLAIMS: 'Medicare claims', + MEDICAID_CLAIMS: 'Medicaid claims', + ENCOUNTER_DATA: 'Encounter data', + NO_PAY_CLAIMS: 'No pay claims', + QUALITY_CLAIMS_BASED_MEASURES: 'Quality claims-based measures', + QUALITY_REPORTED_MEASURES: 'Quality reported measures', + CLINICAL_DATA: 'Clinical data', + NON_CLINICAL_DATA: 'Non-clinical data (e.g., surveys)', + NON_MEDICAL_DATA: 'Non-medical data (e.g., housing, nutrition)', + OTHER: 'Other', + NOT_PLANNING_TO_COLLECT_DATA: 'Not planning to collect data' + }, + filterGroups: ['cmmi', 'iddoc'] + }, + dataNeededForMonitoringOther: { + gqlField: 'dataNeededForMonitoringOther', + goField: 'DataNeededForMonitoringOther', + dbField: 'data_needed_for_monitoring_other', + label: 'What other data do you need to monitor?', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cmmi', 'iddoc'] + }, + dataNeededForMonitoringNote: { + gqlField: 'dataNeededForMonitoringNote', + goField: 'DataNeededForMonitoringNote', + dbField: 'data_needed_for_monitoring_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cmmi', 'iddoc'] + }, + dataToSendParticicipants: { + gqlField: 'dataToSendParticicipants', + goField: 'DataToSendParticicipants', + dbField: 'data_to_send_particicipants', + label: 'What data will you send to participants? Select all that apply.', + readonlyLabel: 'What data will you send to participants?', + dataType: 'enum', + formType: 'multiSelect', + options: { + BASELINE_HISTORICAL_DATA: 'Baseline/historical data', + CLAIMS_LEVEL_DATA: 'Claims-level data', + BENEFICIARY_LEVEL_DATA: 'Beneficiary-level data', + PARTICIPANT_LEVEL_DATA: 'Participant-level data', + PROVIDER_LEVEL_DATA: 'Provider-level data', + OTHER_MIPS_DATA: 'Other', + NOT_PLANNING_TO_SEND_DATA: 'Not planning to send data' + }, + filterGroups: ['cmmi'] + }, + dataToSendParticicipantsOther: { + gqlField: 'dataToSendParticicipantsOther', + goField: 'DataToSendParticicipantsOther', + dbField: 'data_to_send_particicipants_other', + label: 'What other data do you need to send?', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cmmi'] + }, + dataToSendParticicipantsNote: { + gqlField: 'dataToSendParticicipantsNote', + goField: 'DataToSendParticicipantsNote', + dbField: 'data_to_send_particicipants_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cmmi'] + }, + shareCclfData: { + gqlField: 'shareCclfData', + goField: 'ShareCclfData', + dbField: 'share_cclf_data', + label: + 'Does the model require that identifiable Claim and Claim Line Feed (CCLFs) data need to be shared with participants?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + }, + filterGroups: ['cmmi'] + }, + shareCclfDataNote: { + gqlField: 'shareCclfDataNote', + goField: 'ShareCclfDataNote', + dbField: 'share_cclf_data_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cmmi'] + }, + sendFilesBetweenCcw: { + gqlField: 'sendFilesBetweenCcw', + goField: 'SendFilesBetweenCcw', + dbField: 'send_files_between_ccw', + label: + 'Will you need to send files between the CCW and other applications?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + }, + filterGroups: ['ccw'] + }, + sendFilesBetweenCcwNote: { + gqlField: 'sendFilesBetweenCcwNote', + goField: 'SendFilesBetweenCcwNote', + dbField: 'send_files_between_ccw_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['ccw'] + }, + appToSendFilesToKnown: { + gqlField: 'appToSendFilesToKnown', + goField: 'AppToSendFilesToKnown', + dbField: 'app_to_send_files_to_known', + label: + 'Do you know which applications will be on the other sides of the file transfers?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + }, + filterGroups: ['ccw'] + }, + appToSendFilesToWhich: { + gqlField: 'appToSendFilesToWhich', + goField: 'AppToSendFilesToWhich', + dbField: 'app_to_send_files_to_which', + label: 'Please specify', + dataType: 'string', + formType: 'textarea', + filterGroups: ['ccw'] + }, + appToSendFilesToNote: { + gqlField: 'appToSendFilesToNote', + goField: 'AppToSendFilesToNote', + dbField: 'app_to_send_files_to_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['ccw'] + }, + useCcwForFileDistribiutionToParticipants: { + gqlField: 'useCcwForFileDistribiutionToParticipants', + goField: 'UseCcwForFileDistribiutionToParticipants', + dbField: 'use_ccw_for_file_distribiution_to_participants', + label: + 'Will you use the CCW to distribute files to and from model participants?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + }, + filterGroups: ['ccw'] + }, + useCcwForFileDistribiutionToParticipantsNote: { + gqlField: 'useCcwForFileDistribiutionToParticipantsNote', + goField: 'UseCcwForFileDistribiutionToParticipantsNote', + dbField: 'use_ccw_for_file_distribiution_to_participants_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['ccw'] + }, + developNewQualityMeasures: { + gqlField: 'developNewQualityMeasures', + goField: 'DevelopNewQualityMeasures', + dbField: 'develop_new_quality_measures', + label: + 'Do you plan to develop a new validated quality measure for your model?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + }, + filterGroups: ['cmmi'] + }, + developNewQualityMeasuresNote: { + gqlField: 'developNewQualityMeasuresNote', + goField: 'DevelopNewQualityMeasuresNote', + dbField: 'develop_new_quality_measures_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cmmi'] + }, + qualityPerformanceImpactsPayment: { + gqlField: 'qualityPerformanceImpactsPayment', + goField: 'QualityPerformanceImpactsPayment', + dbField: 'quality_performance_impacts_payment', + label: 'Does quality performance impact payment?', + dataType: 'boolean', + formType: 'radio', + options: { + true: 'Yes', + false: 'No' + }, + filterGroups: ['cmmi'] + }, + qualityPerformanceImpactsPaymentNote: { + gqlField: 'qualityPerformanceImpactsPaymentNote', + goField: 'QualityPerformanceImpactsPaymentNote', + dbField: 'quality_performance_impacts_payment_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cmmi'] + }, + dataSharingStarts: { + gqlField: 'dataSharingStarts', + goField: 'DataSharingStarts', + dbField: 'data_sharing_starts', + label: 'Data sharing starts', + sublabel: + 'If using ACO-OS support, SSM request to begin analysis at least 1 year before implementation', + dataType: 'enum', + formType: 'select', + options: { + DURING_APPLICATION_PERIOD: 'During application period', + SHORTLY_BEFORE_THE_START_DATE: 'Shortly before the start date', + EARLY_IN_THE_FIRST_PERFORMANCE_YEAR: + 'Early in the first performance year', + LATER_IN_THE_FIRST_PERFORMANCE_YEAR: + 'Later in the first performance year', + IN_THE_SUBSEQUENT_PERFORMANCE_YEAR: 'In the subsequent performance year', + AT_SOME_OTHER_POINT_IN_TIME: 'At some other point in time', + NOT_PLANNING_TO_DO_THIS: 'Not planning to do this', + OTHER: 'Other' + }, + filterGroups: ['iddoc'] + }, + dataSharingStartsOther: { + gqlField: 'dataSharingStartsOther', + goField: 'DataSharingStartsOther', + dbField: 'data_sharing_starts_other', + label: 'Please specify', + dataType: 'string', + formType: 'textarea', + filterGroups: ['iddoc'] + }, + dataSharingFrequency: { + gqlField: 'dataSharingFrequency', + goField: 'DataSharingFrequency', + dbField: 'data_sharing_frequency', + label: 'How often do you anticipate sharing data?', + dataType: 'enum', + formType: 'multiSelect', + multiSelectLabel: 'Data sharing frequency', + options: { + ANNUALLY: 'Annually', + BIANNUALLY: 'Biannually', + QUARTERLY: 'Quarterly', + MONTHLY: 'Monthly', + SEMI_MONTHLY: 'Semi-monthly', + WEEKLY: 'Weekly', + DAILY: 'Daily', + OTHER: 'Other', + NOT_PLANNING_TO_DO_THIS: 'Not planning to do this' + }, + filterGroups: ['cmmi', 'iddoc'] + }, + dataSharingFrequencyOther: { + gqlField: 'dataSharingFrequencyOther', + goField: 'DataSharingFrequencyOther', + dbField: 'data_sharing_frequency_other', + label: 'Please specify', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cmmi', 'iddoc'] + }, + dataSharingStartsNote: { + gqlField: 'dataSharingStartsNote', + goField: 'DataSharingStartsNote', + dbField: 'data_sharing_starts_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cmmi', 'iddoc'] + }, + dataCollectionStarts: { + gqlField: 'dataCollectionStarts', + goField: 'DataCollectionStarts', + dbField: 'data_collection_starts', + label: 'Data collection starts', + dataType: 'enum', + formType: 'select', + options: { + DURING_APPLICATION_PERIOD: 'During application period', + SHORTLY_BEFORE_THE_START_DATE: 'Shortly before the start date', + EARLY_IN_THE_FIRST_PERFORMANCE_YEAR: + 'Early in the first performance year', + LATER_IN_THE_FIRST_PERFORMANCE_YEAR: + 'Later in the first performance year', + IN_THE_SUBSEQUENT_PERFORMANCE_YEAR: 'In the subsequent performance year', + AT_SOME_OTHER_POINT_IN_TIME: 'At some other point in time', + NOT_PLANNING_TO_DO_THIS: 'Not planning to do this', + OTHER: 'Other' + }, + filterGroups: ['iddoc'] + }, + dataCollectionStartsOther: { + gqlField: 'dataCollectionStartsOther', + goField: 'DataCollectionStartsOther', + dbField: 'data_collection_starts_other', + label: 'Please specify', + dataType: 'string', + formType: 'textarea', + filterGroups: ['iddoc'] + }, + dataCollectionFrequency: { + gqlField: 'dataCollectionFrequency', + goField: 'DataCollectionFrequency', + dbField: 'data_collection_frequency', + label: 'How often do you anticipate collecting data?', + dataType: 'enum', + formType: 'multiSelect', + multiSelectLabel: 'Data collection frequency', + options: { + ANNUALLY: 'Annually', + BIANNUALLY: 'Biannually', + QUARTERLY: 'Quarterly', + MONTHLY: 'Monthly', + SEMI_MONTHLY: 'Semi-monthly', + WEEKLY: 'Weekly', + DAILY: 'Daily', + OTHER: 'Other', + NOT_PLANNING_TO_DO_THIS: 'Not planning to do this' + }, + filterGroups: ['cmmi'] + }, + dataCollectionFrequencyOther: { + gqlField: 'dataCollectionFrequencyOther', + goField: 'DataCollectionFrequencyOther', + dbField: 'data_collection_frequency_other', + label: 'Please specify', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cmmi'] + }, + dataCollectionFrequencyNote: { + gqlField: 'dataCollectionFrequencyNote', + goField: 'DataCollectionFrequencyNote', + dbField: 'data_collection_frequency_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea', + filterGroups: ['cmmi'] + }, + qualityReportingStarts: { + gqlField: 'qualityReportingStarts', + goField: 'QualityReportingStarts', + dbField: 'quality_reporting_starts', + label: 'Quality reporting starts', + dataType: 'enum', + formType: 'select', + options: { + DURING_APPLICATION_PERIOD: 'During application period', + SHORTLY_BEFORE_THE_START_DATE: 'Shortly before the start date', + EARLY_IN_THE_FIRST_PERFORMANCE_YEAR: + 'Early in the first performance year', + LATER_IN_THE_FIRST_PERFORMANCE_YEAR: + 'Later in the first performance year', + IN_THE_SUBSEQUENT_PERFORMANCE_YEAR: 'In the subsequent performance year', + AT_SOME_OTHER_POINT_IN_TIME: 'At some other point in time', + NOT_PLANNING_TO_DO_THIS: 'Not planning to do this', + OTHER: 'Other' + } + }, + qualityReportingStartsOther: { + gqlField: 'qualityReportingStartsOther', + goField: 'QualityReportingStartsOther', + dbField: 'quality_reporting_starts_other', + label: 'Please specify', + dataType: 'string', + formType: 'textarea' + }, + qualityReportingStartsNote: { + gqlField: 'qualityReportingStartsNote', + goField: 'QualityReportingStartsNote', + dbField: 'quality_reporting_starts_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea' + }, + modelLearningSystems: { + gqlField: 'modelLearningSystems', + goField: 'ModelLearningSystems', + dbField: 'model_learning_systems', + label: 'Will the model have a learning strategy?', + dataType: 'enum', + formType: 'checkbox', + options: { + LEARNING_CONTRACTOR: + 'We plan to have a learning contractor (cross-model or individual)', + IT_PLATFORM_CONNECT: 'We plan to use an IT platform (Connect)', + PARTICIPANT_COLLABORATION: + 'We plan to enable participant-to-participant collaboration', + EDUCATE_BENEFICIARIES: 'We plan to educate beneficiaries', + OTHER: 'Other', + NO_LEARNING_SYSTEM: 'No, we will not have a learning strategy' + } + }, + modelLearningSystemsOther: { + gqlField: 'modelLearningSystemsOther', + goField: 'ModelLearningSystemsOther', + dbField: 'model_learning_systems_other', + label: 'Please specify', + dataType: 'string', + formType: 'textarea' + }, + modelLearningSystemsNote: { + gqlField: 'modelLearningSystemsNote', + goField: 'ModelLearningSystemsNote', + dbField: 'model_learning_systems_note', + label: 'Notes', + dataType: 'string', + formType: 'textarea' + }, + anticipatedChallenges: { + gqlField: 'anticipatedChallenges', + goField: 'AnticipatedChallenges', + dbField: 'anticipated_challenges', + label: + 'What challenges do you anticipate during Model design and implementation?', + sublabel: + '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.', + dataType: 'string', + formType: 'textarea', + filterGroups: ['iddoc', 'pbg'] + }, + status: { + gqlField: 'status', + goField: 'Status', + dbField: 'status', + label: 'Model Plan status', + dataType: 'enum', + formType: 'checkbox', + options: { + READY: + 'This section of the Model Plan (Model basics) is ready for review.', + IN_PROGRESS: + 'This section of the Model Plan (Model basics) is ready for review.', + READY_FOR_REVIEW: + 'This section of the Model Plan (Model basics) is ready for review.', + READY_FOR_CLEARANCE: + 'This section of the Model Plan (Model basics) is ready for review.' + } + } +}; + +export const opsEvalAndLearningMisc = { + heading: 'Operations, evaluation, and learning', + operationsEvaluationAndLearningHeading: + 'Review operations, evaluation, and learning', + breadcrumb: 'Operations, evaluation, and learning', + additionalQuestionsInfo: + 'If you select yes, there will be additional questions to answer.', + iddocHeading: 'IDDOC operations questions', + iddocReadonlyHeading: 'IDDOC Operations', + icdHeading: 'Interface Control Document (ICD) questions', + icdReadonlyHeading: 'Interface Control Document (ICD)', + icdSubheading: + 'An interface control document provides a record of all interface information generated for a project.', + testingQuestions: 'Testing questions', + ssmRequest: + 'SSM request to begin analysis at least 1 year before implementation', + dataMonitoring: 'Data monitoring questions', + dataMonitoringHeading: 'Data Monitoring', + dataMonitoringContinued: 'Data monitoring questions continued', + participantAppeal: 'Will participants be able to appeal the following?', + riskAdjustments: 'Will you make risk adjustments to the following?', + appealsWarning: + 'If yes to any of the following, please check with the Legal Vertical on what needs to be in a Participation Agreement and/or regulatory text around your model’s appeal process steps and time frames.', + ccwSpecific: 'Chronic Conditions Warehouse (CCW) questions', + ccwSpecificReadonly: 'Chronic Conditions Warehouse (CCW)', + qualityQuestions: 'Quality questions', + qualityReadonly: 'Quality', + reportingTiming: 'Data sharing timing and frequency', + dataCollectionTiming: 'Data collection timing and frequency', + dataReadonly: 'Data Sharing, Collection, and Reporting Timing and Frequency', + testing: 'Testing' +}; + +export default opsEvalAndLearning; diff --git a/src/i18n/en-US/modelPlan/participantsAndProviders.ts b/src/i18n/en-US/modelPlan/participantsAndProviders.ts index 3c82abe7c1..dbaae7615c 100644 --- a/src/i18n/en-US/modelPlan/participantsAndProviders.ts +++ b/src/i18n/en-US/modelPlan/participantsAndProviders.ts @@ -5,8 +5,8 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'participants', goField: 'Participants', dbField: 'participants', - question: 'Who are the participants? Select all that apply.', - readonlyQuestion: 'Who are the participants?', + label: 'Who are the participants? Select all that apply.', + readonlyLabel: 'Who are the participants?', multiSelectLabel: 'Selected participants', dataType: 'enum', formType: 'multiSelect', @@ -34,7 +34,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'medicareProviderType', goField: 'MedicareProviderType', dbField: 'medicare_provider_type', - question: 'Which type of medicare providers?', + label: 'Which type of medicare providers?', dataType: 'string', formType: 'textarea', filterGroups: ['cbosc', 'cmmi', 'ipc', 'iddoc', 'pbg'] @@ -43,7 +43,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'statesEngagement', goField: 'StatesEngagement', dbField: 'states_engagement', - question: 'Please describe how states will engage with your model.', + label: 'Please describe how states will engage with your model.', dataType: 'string', formType: 'textarea', filterGroups: ['cbosc', 'cmmi', 'ipc', 'iddoc', 'pbg'] @@ -52,7 +52,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'participantsOther', goField: 'ParticipantsOther', dbField: 'participantsOther', - question: 'Please describe the other participants engaging with this model', + label: 'Please describe the other participants engaging with this model', dataType: 'string', formType: 'textarea' }, @@ -60,7 +60,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'participantsNote', goField: 'ParticipantsNote', dbField: 'participantsNote', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea' }, @@ -68,8 +68,8 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'participantsCurrentlyInModels', goField: 'ParticipantsCurrentlyInModels', dbField: 'participants_currently_in_models_note', - question: 'Are the participants in CMMI models now?', - hint: + label: 'Are the participants in CMMI models now?', + sublabel: 'If you have selected more than one participant in the questions above, specify which participants already participate in CMMI models.', dataType: 'boolean', formType: 'radio', @@ -82,7 +82,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'participantsCurrentlyInModelsNote', goField: 'ParticipantsCurrentlyInModelsNote', dbField: 'participants_currently_in_models_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea' }, @@ -90,8 +90,8 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'modelApplicationLevel', goField: 'ModelApplicationLevel', dbField: 'modelApplicationLevel', - question: 'At what level will the model apply?', - hint: + label: 'At what level will the model apply?', + sublabel: '(e.g., all services identified at the CPT or ICD-10 code level, epsiode of care for a specific span of time, all hospitals unpaid under the Inpatient Prospective Payment System in a certain state)', dataType: 'string', formType: 'textarea', @@ -102,8 +102,8 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'expectedNumberOfParticipants', goField: 'ExpectedNumberOfParticipants', dbField: 'expected_number_of_participants', - question: 'How many participants do you expect?', - hint: + label: 'How many participants do you expect?', + sublabel: 'Note: Sometimes RRCEG provides a minimum for the power calculation. Other times stakeholder research may inform the team about who are good candidates or might be interested in participating.', dataType: 'number', formType: 'rangeInput', @@ -113,7 +113,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'estimateConfidence', goField: 'EstimateConfidence', dbField: 'estimate_confidence', - question: 'What is your level of confidence on this estimate?', + label: 'What is your level of confidence on this estimate?', dataType: 'enum', formType: 'radio', options: { @@ -128,7 +128,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'confidenceNote', goField: 'ConfidenceNote', dbField: 'confidence_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea', filterGroups: ['cbosc', 'ccw', 'dfsdm', 'ipc'] @@ -137,7 +137,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'recruitmentMethod', goField: 'RecruitmentMethod', dbField: 'recruitment_method', - question: 'How will you recruit the participants?', + label: 'How will you recruit the participants?', dataType: 'enum', formType: 'radio', options: { @@ -160,7 +160,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'recruitmentOther', goField: 'RecruitmentOther', dbField: 'recruitment_other', - question: 'Please specify', + label: 'Please specify', dataType: 'string', formType: 'textarea' }, @@ -168,7 +168,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'recruitmentNote', goField: 'RecruitmentNote', dbField: 'recruitment_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea' }, @@ -176,8 +176,8 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'selectionMethod', goField: 'SelectionMethod', dbField: 'selection_method', - question: 'How will you select participants? Select all that appy.', - readonlyQuestion: 'How will you select participants?', + label: 'How will you select participants? Select all that appy.', + readonlyLabel: 'How will you select participants?', multiSelectLabel: 'Selected participants', dataType: 'enum', formType: 'multiSelect', @@ -200,7 +200,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'selectionOther', goField: 'SelectionOther', dbField: 'selection_other', - question: 'Please describe the other participants engaging with this model', + label: 'Please describe the other participants engaging with this model', dataType: 'string', formType: 'textarea', filterGroups: ['cmmi', 'iddoc', 'pbg'] @@ -209,7 +209,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'selectionNote', goField: 'SelectionNote', dbField: 'selection_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea', filterGroups: ['cmmi', 'iddoc', 'pbg'] @@ -218,7 +218,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'communicationMethod', goField: 'CommunicationMethod', dbField: 'communication_method', - question: 'How will you communicate with participants?', + label: 'How will you communicate with participants?', dataType: 'enum', formType: 'checkbox', options: { @@ -234,7 +234,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'communicationMethodOther', goField: 'CommunicationMethodOther', dbField: 'communication_method', - question: 'Please specify', + label: 'Please specify', dataType: 'string', formType: 'textarea', filterGroups: ['cbosc'] @@ -243,7 +243,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'communicationNote', goField: 'CommunicationNote', dbField: 'communication_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea', filterGroups: ['cbosc'] @@ -252,7 +252,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'participantAssumeRisk', goField: 'ParticipantAssumeRisk', dbField: 'participant_assume_risk', - question: 'Will the participants assume risk?', + label: 'Will the participants assume risk?', dataType: 'boolean', formType: 'radio', options: { @@ -264,7 +264,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'riskType', goField: 'RiskType', dbField: 'risk_type', - question: 'What type of risk will the participant assume?', + label: 'What type of risk will the participant assume?', dataType: 'enum', formType: 'radio', options: { @@ -278,7 +278,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'riskOther', goField: 'RiskOther', dbField: 'risk_other', - question: 'Please specify', + label: 'Please specify', dataType: 'string', formType: 'textarea' }, @@ -286,7 +286,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'riskNote', goField: 'RiskNote', dbField: 'risk_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea' }, @@ -294,7 +294,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'willRiskChange', goField: 'WillRiskChange', dbField: 'will_risk_change', - question: 'Will the risk arrangement change as the model progresses?', + label: 'Will the risk arrangement change as the model progresses?', dataType: 'boolean', formType: 'radio', options: { @@ -306,7 +306,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'willRiskChangeNote', goField: 'WillRiskChangeNote', dbField: 'will_risk_change_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea' }, @@ -314,8 +314,8 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'coordinateWork', goField: 'CoordinateWork', dbField: 'coordinate_work', - question: 'Will the participants coordinate the work of others?', - hint: '(e.g. conveners)', + label: 'Will the participants coordinate the work of others?', + sublabel: '(e.g. conveners)', dataType: 'boolean', formType: 'radio', options: { @@ -327,7 +327,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'coordinateWorkNote', goField: 'CoordinateWorkNote', dbField: 'coordinate_work_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea' }, @@ -335,7 +335,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'gainsharePayments', goField: 'GainsharePayments', dbField: 'gainshare_payments', - question: 'Will there be gainsharing payments?', + label: 'Will there be gainsharing payments?', dataType: 'boolean', formType: 'radio', options: { @@ -347,7 +347,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'gainsharePaymentsTrack', goField: 'GainsharePaymentsTrack', dbField: 'gainshare_payments_track', - question: 'Will you track gainsharing payments?', + label: 'Will you track gainsharing payments?', dataType: 'boolean', formType: 'radio', options: { @@ -359,7 +359,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'gainsharePaymentsNote', goField: 'GainsharePaymentsNote', dbField: 'gainshare_payments_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea' }, @@ -367,10 +367,10 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'participantsIds', goField: 'ParticipantsIds', dbField: 'participants_ids', - question: 'Will you collect participant IDs? If so, select which types.', - hint: + label: 'Will you collect participant IDs? If so, select which types.', + sublabel: '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.', - readonlyQuestion: 'Will you collect participant IDs?', + readonlyLabel: 'Will you collect participant IDs?', dataType: 'enum', formType: 'checkbox', options: { @@ -386,7 +386,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'participantsIdsOther', goField: 'ParticipantsIdsOther', dbField: 'participants_ids_other', - question: 'Please specify', + label: 'Please specify', dataType: 'string', formType: 'textarea', filterGroups: ['iddoc'] @@ -395,7 +395,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'participantsIDSNote', goField: 'ParticipantsIDSNote', dbField: 'participants_ids_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea', filterGroups: ['iddoc'] @@ -404,7 +404,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'providerAdditionFrequency', goField: 'ProviderAdditionFrequency', dbField: 'provider_addition_frequency', - question: 'How frequently are providers added?', + label: 'How frequently are providers added?', dataType: 'enum', formType: 'radio', options: { @@ -421,7 +421,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'providerAdditionFrequencyOther', goField: 'ProviderAdditionFrequencyOther', dbField: 'provider_addition_frequency_other', - question: 'Please specify', + label: 'Please specify', dataType: 'string', formType: 'textarea', filterGroups: ['oact', 'ipc'] @@ -430,7 +430,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'providerAdditionFrequencyNote', goField: 'ProviderAdditionFrequencyNote', dbField: 'provider_addition_frequency_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea', filterGroups: ['oact', 'ipc'] @@ -439,10 +439,10 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'providerAddMethod', goField: 'ProviderAddMethod', dbField: 'provider_add_method', - question: 'How will you decide to add providers? Select all that apply.', - hint: + label: 'How will you decide to add providers? Select all that apply.', + sublabel: 'Please include details on decision points, timing, and implications of adding them to the model in an additional note.', - readonlyQuestion: 'How will you decide to add providers?', + readonlyLabel: 'How will you decide to add providers?', dataType: 'enum', formType: 'multiSelect', multiSelectLabel: 'How will you add providers?', @@ -464,7 +464,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'providerAddMethodOther', goField: 'ProviderAddMethodOther', dbField: 'provider_add_method_other', - question: + label: 'Please describe the other method for deciding which providers to add.', dataType: 'string', formType: 'textarea', @@ -474,7 +474,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'providerAddMethodNote', goField: 'ProviderAddMethodNote', dbField: 'provider_add_method_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea', filterGroups: ['ipc', 'oact'] @@ -483,9 +483,9 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'providerLeaveMethod', goField: 'ProviderLeaveMethod', dbField: 'provider_leave_method', - question: 'Can providers leave the model? Select all that apply.', - readonlyQuestion: 'Can providers leave the model?', - hint: + label: 'Can providers leave the model? Select all that apply.', + readonlyLabel: 'Can providers leave the model?', + sublabel: 'Please include details on decision points, timing, and implications of leaving the model in an additional note.', dataType: 'enum', formType: 'checkbox', @@ -505,7 +505,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'providerLeaveMethodOther', goField: 'ProviderLeaveMethodOther', dbField: 'provider_leave_method_other', - question: 'Please specify', + label: 'Please specify', dataType: 'string', formType: 'textarea', filterGroups: ['ipc', 'oact'] @@ -514,7 +514,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'providerLeaveMethodNote', goField: 'ProviderLeaveMethodNote', dbField: 'provider_leave_method_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea', filterGroups: ['ipc', 'oact'] @@ -523,7 +523,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'providerOverlap', goField: 'ProviderOverlap', dbField: 'provider_overlap', - question: 'Will the providers overlap with other models?', + label: 'Will the providers overlap with other models?', dataType: 'enum', formType: 'radio', options: { @@ -538,7 +538,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'providerOverlapHierarchy', goField: 'ProviderOverlapHierarchy', dbField: 'provider_overlap_hierarchy', - question: + label: 'If model providers can be in multiple models that may interact, please note the desired hierarchy of how any payment changes or edits should be applied.', dataType: 'string', formType: 'textarea', @@ -548,7 +548,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'providerOverlapNote', goField: 'ProviderOverlapNote', dbField: 'provider_overlap_note', - question: 'Notes', + label: 'Notes', dataType: 'string', formType: 'textarea', filterGroups: ['iddoc', 'pbg'] @@ -557,7 +557,7 @@ export const participantsAndProviders: TranslationParticipantsAndProviders = { gqlField: 'status', goField: 'Status', dbField: 'status', - question: 'Model Plan status', + label: 'Model Plan status', dataType: 'enum', formType: 'checkbox', options: { diff --git a/src/i18n/en-US/readOnly/readOnlyModelPlan.ts b/src/i18n/en-US/readOnly/readOnlyModelPlan.ts index abd166c0d9..300f2aa0e0 100644 --- a/src/i18n/en-US/readOnly/readOnlyModelPlan.ts +++ b/src/i18n/en-US/readOnly/readOnlyModelPlan.ts @@ -29,36 +29,6 @@ const readOnlyModelPlan = { subheading: 'Double check your search for typos or try a different search.' } - }, - opsEvalAndLearning: { - headings: { - iddoc: 'IDDOC Operations', - icd: 'Interface Control Document (ICD)', - testing: 'Testing', - dataMonitoring: 'Data Monitoring', - ccw: 'Chronic Conditions Warehouse (CCW)', - quality: 'Quality', - data: 'Data Sharing, Collection, and Reporting Timing and Frequency' - }, - anotherAgency: - 'Will another Agency or State help design/operate the model?', - evaluationApproach: 'What type of evaluation approach are you considering?', - dataNeeded: 'What data do you need to monitor the model?', - dataToSend: 'What data will you send to participants?', - riskAdj: { - performanceScores: - 'Will you make risk adjustments to performance scores?', - feedbackResults: 'Will you make risk adjustments to feedback results?', - payments: 'Will you make risk adjustments to payments?', - others: 'Will you make risk adjustments to others?' - }, - appeal: { - performanceScores: - 'Will participants be able to appeal performance scores?', - feedbackResults: 'Will participants be able to appeal feedback results?', - payments: 'Will participants be able to appeal payments?', - others: 'Will participants be able to appeal others?' - } } }; diff --git a/src/types/translation.ts b/src/types/translation.ts index 56ca8f222a..d71db72dd6 100644 --- a/src/types/translation.ts +++ b/src/types/translation.ts @@ -5,18 +5,31 @@ import { FilterGroup } from 'views/ModelPlan/ReadOnly/_components/FilterView/BodyContent/_filterGroupMapping'; import { + AgencyOrStateHelpType, AgreementType, AlternativePaymentModelType, AuthorityAllowance, + BenchmarkForPerformanceType, + BeneficiariesType, + CcmInvolvmentType, CMMIGroup, CMSCenter, ConfidenceType, + ContractorSupportType, + DataForMonitoringType, + DataFrequencyType, + DataFullTimeOrIncrementalType, + DataStartsType, + DataToSendParticipantsType, + EvaluationApproachType, FrequencyType, GeographyApplication, GeographyType, KeyCharacteristic, ModelCategory, + ModelLearningSystemType, ModelType, + MonitoringFileType, OverlapType, ParticipantCommunicationType, ParticipantRiskType, @@ -26,7 +39,10 @@ import { ProviderAddType, ProviderLeaveType, RecruitmentType, + SelectionMethodType, + StakeholdersType, TaskStatus, + TriStateAnswer, WaiverType } from './graphql-global-types'; @@ -45,9 +61,9 @@ export type TranslationFieldProperties = { gqlField: string; goField: string; dbField: string; - question: string; - readonlyQuestion?: string; - hint?: string; + label: string; + readonlyLabel?: string; + sublabel?: string; multiSelectLabel?: string; dataType: 'string' | 'number' | 'boolean' | 'date' | 'enum'; isArray?: boolean; @@ -226,9 +242,145 @@ export type TranslationParticipantsAndProviders = { status: TranslationFieldPropertiesWithOptions; }; +// Beneficiaries +export type TranslationBeneficiaries = { + beneficiaries: TranslationFieldPropertiesWithOptions; + beneficiariesOther: TranslationFieldProperties; + beneficiariesNote: TranslationFieldProperties; + treatDualElligibleDifferent: TranslationFieldPropertiesWithOptions; + treatDualElligibleDifferentHow: TranslationFieldProperties; + treatDualElligibleDifferentNote: TranslationFieldProperties; + excludeCertainCharacteristics: TranslationFieldPropertiesWithOptions; + excludeCertainCharacteristicsCriteria: TranslationFieldProperties; + excludeCertainCharacteristicsNote: TranslationFieldProperties; + // People Impact + numberPeopleImpacted: TranslationFieldProperties; + estimateConfidence: TranslationFieldPropertiesWithOptions; + confidenceNote: TranslationFieldProperties; + beneficiarySelectionMethod: TranslationFieldPropertiesWithOptions; + beneficiarySelectionNote: TranslationFieldProperties; + beneficiarySelectionOther: TranslationFieldProperties; + // Frequency + beneficiarySelectionFrequency: TranslationFieldPropertiesWithOptions; + beneficiarySelectionFrequencyNote: TranslationFieldProperties; + beneficiarySelectionFrequencyOther: TranslationFieldProperties; + beneficiaryOverlap: TranslationFieldPropertiesWithOptions; + beneficiaryOverlapNote: TranslationFieldProperties; + precedenceRules: TranslationFieldProperties; + status: TranslationFieldPropertiesWithOptions; +}; + +// Operations Evaluation and Learning +export type TranslationOpsEvalAndLearning = { + agencyOrStateHelp: TranslationFieldPropertiesWithOptions; + agencyOrStateHelpOther: TranslationFieldProperties; + agencyOrStateHelpNote: TranslationFieldProperties; + stakeholders: TranslationFieldPropertiesWithOptions; + stakeholdersOther: TranslationFieldProperties; + stakeholdersNote: TranslationFieldProperties; + helpdeskUse: TranslationFieldPropertiesWithOptions; + helpdeskUseNote: TranslationFieldProperties; + contractorSupport: TranslationFieldPropertiesWithOptions; + contractorSupportOther: TranslationFieldProperties; + contractorSupportHow: TranslationFieldProperties; + contractorSupportNote: TranslationFieldProperties; + iddocSupport: TranslationFieldPropertiesWithOptions; + iddocSupportNote: TranslationFieldProperties; + // IDDOC + technicalContactsIdentified: TranslationFieldPropertiesWithOptions; + technicalContactsIdentifiedDetail: TranslationFieldProperties; + technicalContactsIdentifiedNote: TranslationFieldProperties; + captureParticipantInfo: TranslationFieldPropertiesWithOptions; + captureParticipantInfoNote: TranslationFieldProperties; + icdOwner: TranslationFieldProperties; + draftIcdDueDate: TranslationFieldProperties; + icdNote: TranslationFieldProperties; + // IDDOC Testing + uatNeeds: TranslationFieldProperties; + stcNeeds: TranslationFieldProperties; + testingTimelines: TranslationFieldProperties; + testingNote: TranslationFieldProperties; + dataMonitoringFileTypes: TranslationFieldPropertiesWithOptions; + dataMonitoringFileOther: TranslationFieldProperties; + dataResponseType: TranslationFieldProperties; + dataResponseFileFrequency: TranslationFieldProperties; + // IDDOC Monitoring + dataFullTimeOrIncremental: TranslationFieldPropertiesWithOptions; + eftSetUp: TranslationFieldPropertiesWithOptions; + unsolicitedAdjustmentsIncluded: TranslationFieldPropertiesWithOptions; + dataFlowDiagramsNeeded: TranslationFieldPropertiesWithOptions; + produceBenefitEnhancementFiles: TranslationFieldPropertiesWithOptions; + fileNamingConventions: TranslationFieldProperties; + dataMonitoringNote: TranslationFieldProperties; + // Performance + benchmarkForPerformance: TranslationFieldPropertiesWithOptions; + benchmarkForPerformanceNote: TranslationFieldProperties; + computePerformanceScores: TranslationFieldPropertiesWithOptions; + computePerformanceScoresNote: TranslationFieldProperties; + riskAdjustPerformance: TranslationFieldPropertiesWithOptions; + riskAdjustFeedback: TranslationFieldPropertiesWithOptions; + riskAdjustPayments: TranslationFieldPropertiesWithOptions; + riskAdjustOther: TranslationFieldPropertiesWithOptions; + riskAdjustNote: TranslationFieldProperties; + appealPerformance: TranslationFieldPropertiesWithOptions; + appealFeedback: TranslationFieldPropertiesWithOptions; + appealPayments: TranslationFieldPropertiesWithOptions; + appealOther: TranslationFieldPropertiesWithOptions; + appealNote: TranslationFieldProperties; + // Evaluation + evaluationApproaches: TranslationFieldPropertiesWithOptions; + evaluationApproachOther: TranslationFieldProperties; + evalutaionApproachNote: TranslationFieldProperties; + ccmInvolvment: TranslationFieldPropertiesWithOptions; + ccmInvolvmentOther: TranslationFieldProperties; + ccmInvolvmentNote: TranslationFieldProperties; + dataNeededForMonitoring: TranslationFieldPropertiesWithOptions; + dataNeededForMonitoringOther: TranslationFieldProperties; + dataNeededForMonitoringNote: TranslationFieldProperties; + dataToSendParticicipants: TranslationFieldPropertiesWithOptions; + dataToSendParticicipantsOther: TranslationFieldProperties; + dataToSendParticicipantsNote: TranslationFieldProperties; + shareCclfData: TranslationFieldPropertiesWithOptions; + shareCclfDataNote: TranslationFieldProperties; + // CCW And Quality + sendFilesBetweenCcw: TranslationFieldPropertiesWithOptions; + sendFilesBetweenCcwNote: TranslationFieldProperties; + appToSendFilesToKnown: TranslationFieldPropertiesWithOptions; + appToSendFilesToWhich: TranslationFieldProperties; + appToSendFilesToNote: TranslationFieldProperties; + useCcwForFileDistribiutionToParticipants: TranslationFieldPropertiesWithOptions; + useCcwForFileDistribiutionToParticipantsNote: TranslationFieldProperties; + developNewQualityMeasures: TranslationFieldPropertiesWithOptions; + developNewQualityMeasuresNote: TranslationFieldProperties; + qualityPerformanceImpactsPayment: TranslationFieldPropertiesWithOptions; + qualityPerformanceImpactsPaymentNote: TranslationFieldProperties; + // Data Sharing + dataSharingStarts: TranslationFieldPropertiesWithOptions; + dataSharingStartsOther: TranslationFieldProperties; + dataSharingFrequency: TranslationFieldPropertiesWithOptions; + dataSharingFrequencyOther: TranslationFieldProperties; + dataSharingStartsNote: TranslationFieldProperties; + dataCollectionStarts: TranslationFieldPropertiesWithOptions; + dataCollectionStartsOther: TranslationFieldProperties; + dataCollectionFrequency: TranslationFieldPropertiesWithOptions; + dataCollectionFrequencyOther: TranslationFieldProperties; + dataCollectionFrequencyNote: TranslationFieldProperties; + qualityReportingStarts: TranslationFieldPropertiesWithOptions; + qualityReportingStartsOther: TranslationFieldProperties; + qualityReportingStartsNote: TranslationFieldProperties; + // Learning + modelLearningSystems: TranslationFieldPropertiesWithOptions; + modelLearningSystemsOther: TranslationFieldProperties; + modelLearningSystemsNote: TranslationFieldProperties; + anticipatedChallenges: TranslationFieldProperties; + status: TranslationFieldPropertiesWithOptions; +}; + export type TranslationPlan = { modelPlan: TranslationModelPlan; basics: TranslationBasics; generalCharacteristics: TranslationGeneralCharacteristics; participantsAndProviders: TranslationParticipantsAndProviders; + beneficiaries: TranslationBeneficiaries; + opsEvalAndLearning: TranslationOpsEvalAndLearning; }; diff --git a/src/utils/modelPlan.ts b/src/utils/modelPlan.ts index ee8da0f55b..8eca20750d 100644 --- a/src/utils/modelPlan.ts +++ b/src/utils/modelPlan.ts @@ -55,7 +55,7 @@ export const translateTriStateAnswer = (type: string) => { case 'NO': return i18next.t('draftModelPlan:no'); case 'TBD': - return i18next.t('beneficiaries:beneficiariesOptions.na'); + return i18next.t('beneficiariesOld:beneficiariesOptions.na'); default: return ''; } @@ -374,21 +374,23 @@ export const translateParticipantsType = (type: string) => { export const translateBeneficiariesType = (type: string) => { switch (type) { case 'DISEASE_SPECIFIC': - return i18next.t('beneficiaries:beneficiariesOptions.diseaseSpecific'); + return i18next.t('beneficiariesOld:beneficiariesOptions.diseaseSpecific'); case 'DUALLY_ELIGIBLE': - return i18next.t('beneficiaries:beneficiariesOptions.duallyEligible'); + return i18next.t('beneficiariesOld:beneficiariesOptions.duallyEligible'); case 'MEDICAID': - return i18next.t('beneficiaries:beneficiariesOptions.medicaid'); + return i18next.t('beneficiariesOld:beneficiariesOptions.medicaid'); case 'MEDICARE_ADVANTAGE': - return i18next.t('beneficiaries:beneficiariesOptions.medicareAdvantage'); + return i18next.t( + 'beneficiariesOld:beneficiariesOptions.medicareAdvantage' + ); case 'MEDICARE_FFS': - return i18next.t('beneficiaries:beneficiariesOptions.medicareFfs'); + return i18next.t('beneficiariesOld:beneficiariesOptions.medicareFfs'); case 'MEDICARE_PART_D': - return i18next.t('beneficiaries:beneficiariesOptions.medicarePartD'); + return i18next.t('beneficiariesOld:beneficiariesOptions.medicarePartD'); case 'OTHER': - return i18next.t('beneficiaries:beneficiariesOptions.other'); + return i18next.t('beneficiariesOld:beneficiariesOptions.other'); case 'NA': - return i18next.t('beneficiaries:beneficiariesOptions.na'); + return i18next.t('beneficiariesOld:beneficiariesOptions.na'); default: return ''; } @@ -397,19 +399,19 @@ export const translateBeneficiariesType = (type: string) => { export const translateSelectionMethodType = (type: string) => { switch (type) { case 'HISTORICAL': - return i18next.t('beneficiaries:selectionMethod.historical'); + return i18next.t('beneficiariesOld:selectionMethod.historical'); case 'PROSPECTIVE': - return i18next.t('beneficiaries:selectionMethod.prospective'); + return i18next.t('beneficiariesOld:selectionMethod.prospective'); case 'PROVIDER_SIGN_UP': - return i18next.t('beneficiaries:selectionMethod.retrospective'); + return i18next.t('beneficiariesOld:selectionMethod.retrospective'); case 'RETROSPECTIVE': - return i18next.t('beneficiaries:selectionMethod.voluntary'); + return i18next.t('beneficiariesOld:selectionMethod.voluntary'); case 'VOLUNTARY': - return i18next.t('beneficiaries:selectionMethod.providerSignUp'); + return i18next.t('beneficiariesOld:selectionMethod.providerSignUp'); case 'OTHER': - return i18next.t('beneficiaries:selectionMethod.other'); + return i18next.t('beneficiariesOld:selectionMethod.other'); case 'NA': - return i18next.t('beneficiaries:selectionMethod.na'); + return i18next.t('beneficiariesOld:selectionMethod.na'); default: return ''; } @@ -529,13 +531,13 @@ export const translateAnticipatedPaymentFrequencyType = (type: string) => { export const translateConfidenceType = (type: string) => { switch (type) { case 'NOT_AT_ALL': - return i18next.t('beneficiaries:estimateOptions.notAtAll'); + return i18next.t('beneficiariesOld:estimateOptions.notAtAll'); case 'SLIGHTLY': - return i18next.t('beneficiaries:estimateOptions.slightly'); + return i18next.t('beneficiariesOld:estimateOptions.slightly'); case 'FAIRLY': - return i18next.t('beneficiaries:estimateOptions.fairly'); + return i18next.t('beneficiariesOld:estimateOptions.fairly'); case 'COMPLETELY': - return i18next.t('beneficiaries:estimateOptions.completely'); + return i18next.t('beneficiariesOld:estimateOptions.completely'); default: return ''; } @@ -657,17 +659,17 @@ export const translateParticipantIDType = (type: string) => { export const translateFrequencyType = (type: string) => { switch (type) { case 'ANNUALLY': - return i18next.t('beneficiaries:frequencyOptions.annually'); + return i18next.t('beneficiariesOld:frequencyOptions.annually'); case 'BIANNUALLY': - return i18next.t('beneficiaries:frequencyOptions.biannually'); + return i18next.t('beneficiariesOld:frequencyOptions.biannually'); case 'QUARTERLY': - return i18next.t('beneficiaries:frequencyOptions.quarterly'); + return i18next.t('beneficiariesOld:frequencyOptions.quarterly'); case 'MONTHLY': - return i18next.t('beneficiaries:frequencyOptions.monthly'); + return i18next.t('beneficiariesOld:frequencyOptions.monthly'); case 'ROLLING': - return i18next.t('beneficiaries:frequencyOptions.rolling'); + return i18next.t('beneficiariesOld:frequencyOptions.rolling'); case 'OTHER': - return i18next.t('beneficiaries:frequencyOptions.other'); + return i18next.t('beneficiariesOld:frequencyOptions.other'); default: return ''; } @@ -774,11 +776,11 @@ export const translateProviderLeaveType = (type: string) => { export const translateOverlapType = (type: string) => { switch (type) { case 'YES_NEED_POLICIES': - return i18next.t('beneficiaries:overlapOptions.yes'); + return i18next.t('beneficiariesOld:overlapOptions.yes'); case 'YES_NO_ISSUES': - return i18next.t('beneficiaries:overlapOptions.yesNoIssue'); + return i18next.t('beneficiariesOld:overlapOptions.yesNoIssue'); case 'NO': - return i18next.t('beneficiaries:overlapOptions.no'); + return i18next.t('beneficiariesOld:overlapOptions.no'); default: return ''; } @@ -787,25 +789,15 @@ export const translateOverlapType = (type: string) => { export const translateAgencyOrStateHelpType = (type: string) => { switch (type) { case 'YES_STATE': - return i18next.t( - 'operationsEvaluationAndLearning:anotherAgencyOptions.withState' - ); + return i18next.t('opsEvalAndLearningOld:anotherAgencyOptions.withState'); case 'YES_AGENCY_IDEAS': - return i18next.t( - 'operationsEvaluationAndLearning:anotherAgencyOptions.getIdeas' - ); + return i18next.t('opsEvalAndLearningOld:anotherAgencyOptions.getIdeas'); case 'YES_AGENCY_IAA': - return i18next.t( - 'operationsEvaluationAndLearning:anotherAgencyOptions.getSupport' - ); + return i18next.t('opsEvalAndLearningOld:anotherAgencyOptions.getSupport'); case 'NO': - return i18next.t( - 'operationsEvaluationAndLearning:anotherAgencyOptions.no' - ); + return i18next.t('opsEvalAndLearningOld:anotherAgencyOptions.no'); case 'OTHER': - return i18next.t( - 'operationsEvaluationAndLearning:anotherAgencyOptions.other' - ); + return i18next.t('opsEvalAndLearningOld:anotherAgencyOptions.other'); default: return ''; } @@ -815,32 +807,26 @@ export const translateStakeholdersType = (type: string) => { switch (type) { case 'BENEFICIARIES': return i18next.t( - 'operationsEvaluationAndLearning:stakeholdersOptions.beneficiaries' + 'opsEvalAndLearningOld:stakeholdersOptions.beneficiaries' ); case 'COMMUNITY_ORGANIZATIONS': return i18next.t( - 'operationsEvaluationAndLearning:stakeholdersOptions.communityOrganizations' + 'opsEvalAndLearningOld:stakeholdersOptions.communityOrganizations' ); case 'PARTICIPANTS': return i18next.t( - 'operationsEvaluationAndLearning:stakeholdersOptions.participants' + 'opsEvalAndLearningOld:stakeholdersOptions.participants' ); case 'PROFESSIONAL_ORGANIZATIONS': return i18next.t( - 'operationsEvaluationAndLearning:stakeholdersOptions.professionalOrganizations' + 'opsEvalAndLearningOld:stakeholdersOptions.professionalOrganizations' ); case 'PROVIDERS': - return i18next.t( - 'operationsEvaluationAndLearning:stakeholdersOptions.providers' - ); + return i18next.t('opsEvalAndLearningOld:stakeholdersOptions.providers'); case 'STATES': - return i18next.t( - 'operationsEvaluationAndLearning:stakeholdersOptions.states' - ); + return i18next.t('opsEvalAndLearningOld:stakeholdersOptions.states'); case 'OTHER': - return i18next.t( - 'operationsEvaluationAndLearning:stakeholdersOptions.other' - ); + return i18next.t('opsEvalAndLearningOld:stakeholdersOptions.other'); default: return ''; } @@ -849,21 +835,15 @@ export const translateStakeholdersType = (type: string) => { export const translateContractorSupportType = (type: string) => { switch (type) { case 'ONE': - return i18next.t( - 'operationsEvaluationAndLearning:whatContractorsOptions.one' - ); + return i18next.t('opsEvalAndLearningOld:whatContractorsOptions.one'); case 'MULTIPLE': - return i18next.t( - 'operationsEvaluationAndLearning:whatContractorsOptions.separate' - ); + return i18next.t('opsEvalAndLearningOld:whatContractorsOptions.separate'); case 'NONE': return i18next.t( - 'operationsEvaluationAndLearning:whatContractorsOptions.noContractor' + 'opsEvalAndLearningOld:whatContractorsOptions.noContractor' ); case 'OTHER': - return i18next.t( - 'operationsEvaluationAndLearning:whatContractorsOptions.other' - ); + return i18next.t('opsEvalAndLearningOld:whatContractorsOptions.other'); default: return ''; } @@ -872,25 +852,15 @@ export const translateContractorSupportType = (type: string) => { export const translateMonitoringFileType = (type: string) => { switch (type) { case 'BENEFICIARY': - return i18next.t( - 'operationsEvaluationAndLearning:fileTypesOptions.beneficiary' - ); + return i18next.t('opsEvalAndLearningOld:fileTypesOptions.beneficiary'); case 'PROVIDER': - return i18next.t( - 'operationsEvaluationAndLearning:fileTypesOptions.provider' - ); + return i18next.t('opsEvalAndLearningOld:fileTypesOptions.provider'); case 'PART_A': - return i18next.t( - 'operationsEvaluationAndLearning:fileTypesOptions.partA' - ); + return i18next.t('opsEvalAndLearningOld:fileTypesOptions.partA'); case 'PART_B': - return i18next.t( - 'operationsEvaluationAndLearning:fileTypesOptions.partB' - ); + return i18next.t('opsEvalAndLearningOld:fileTypesOptions.partB'); case 'OTHER': - return i18next.t( - 'operationsEvaluationAndLearning:fileTypesOptions.other' - ); + return i18next.t('opsEvalAndLearningOld:fileTypesOptions.other'); default: return ''; } @@ -899,9 +869,9 @@ export const translateMonitoringFileType = (type: string) => { export const translateDataFullTimeOrIncrementalType = (type: string) => { switch (type) { case 'FULL_TIME': - return i18next.t('operationsEvaluationAndLearning:fullTime'); + return i18next.t('opsEvalAndLearningOld:fullTime'); case 'INCREMENTAL': - return i18next.t('operationsEvaluationAndLearning:incremental'); + return i18next.t('opsEvalAndLearningOld:incremental'); default: return ''; } @@ -911,16 +881,14 @@ export const translateBenchmarkForPerformanceType = (type: string) => { switch (type) { case 'YES_RECONCILE': return i18next.t( - 'operationsEvaluationAndLearning:establishBenchmarkOptions.reconcile' + 'opsEvalAndLearningOld:establishBenchmarkOptions.reconcile' ); case 'YES_NO_RECONCILE': return i18next.t( - 'operationsEvaluationAndLearning:establishBenchmarkOptions.notReconcile' + 'opsEvalAndLearningOld:establishBenchmarkOptions.notReconcile' ); case 'NO': - return i18next.t( - 'operationsEvaluationAndLearning:establishBenchmarkOptions.no' - ); + return i18next.t('opsEvalAndLearningOld:establishBenchmarkOptions.no'); default: return ''; } @@ -929,23 +897,15 @@ export const translateBenchmarkForPerformanceType = (type: string) => { export const translateEvaluationApproachType = (type: string) => { switch (type) { case 'CONTROL_INTERVENTION': - return i18next.t( - 'operationsEvaluationAndLearning:approachOptions.establish' - ); + return i18next.t('opsEvalAndLearningOld:approachOptions.establish'); case 'COMPARISON_MATCH': - return i18next.t( - 'operationsEvaluationAndLearning:approachOptions.identify' - ); + return i18next.t('opsEvalAndLearningOld:approachOptions.identify'); case 'INTERRUPTED_TIME': - return i18next.t( - 'operationsEvaluationAndLearning:approachOptions.interrupted' - ); + return i18next.t('opsEvalAndLearningOld:approachOptions.interrupted'); case 'NON_MEDICARE_DATA': - return i18next.t( - 'operationsEvaluationAndLearning:approachOptions.leverage' - ); + return i18next.t('opsEvalAndLearningOld:approachOptions.leverage'); case 'OTHER': - return i18next.t('operationsEvaluationAndLearning:approachOptions.other'); + return i18next.t('opsEvalAndLearningOld:approachOptions.other'); default: return ''; } @@ -954,13 +914,13 @@ export const translateEvaluationApproachType = (type: string) => { export const translateCcmInvolvmentType = (type: string) => { switch (type) { case 'YES_EVALUATION': - return i18next.t('operationsEvaluationAndLearning:ccwOptions.yesEval'); + return i18next.t('opsEvalAndLearningOld:ccwOptions.yesEval'); case 'YES__IMPLEMENTATION': - return i18next.t('operationsEvaluationAndLearning:ccwOptions.yesImpl'); + return i18next.t('opsEvalAndLearningOld:ccwOptions.yesImpl'); case 'NO': - return i18next.t('operationsEvaluationAndLearning:ccwOptions.no'); + return i18next.t('opsEvalAndLearningOld:ccwOptions.no'); case 'OTHER': - return i18next.t('operationsEvaluationAndLearning:ccwOptions.other'); + return i18next.t('opsEvalAndLearningOld:ccwOptions.other'); default: return ''; } @@ -969,52 +929,36 @@ export const translateCcmInvolvmentType = (type: string) => { export const translateDataForMonitoringType = (type: string) => { switch (type) { case 'SITE_VISITS': - return i18next.t( - 'operationsEvaluationAndLearning:dataNeededOptions.siteVisits' - ); + return i18next.t('opsEvalAndLearningOld:dataNeededOptions.siteVisits'); case 'MEDICARE_CLAIMS': return i18next.t( - 'operationsEvaluationAndLearning:dataNeededOptions.medicareClaims' + 'opsEvalAndLearningOld:dataNeededOptions.medicareClaims' ); case 'MEDICAID_CLAIMS': return i18next.t( - 'operationsEvaluationAndLearning:dataNeededOptions.medicaidClaims' + 'opsEvalAndLearningOld:dataNeededOptions.medicaidClaims' ); case 'ENCOUNTER_DATA': - return i18next.t( - 'operationsEvaluationAndLearning:dataNeededOptions.encounterData' - ); + return i18next.t('opsEvalAndLearningOld:dataNeededOptions.encounterData'); case 'NO_PAY_CLAIMS': - return i18next.t( - 'operationsEvaluationAndLearning:dataNeededOptions.noPayClaims' - ); + return i18next.t('opsEvalAndLearningOld:dataNeededOptions.noPayClaims'); case 'QUALITY_CLAIMS_BASED_MEASURES': - return i18next.t( - 'operationsEvaluationAndLearning:dataNeededOptions.qualityClaims' - ); + return i18next.t('opsEvalAndLearningOld:dataNeededOptions.qualityClaims'); case 'QUALITY_REPORTED_MEASURES': return i18next.t( - 'operationsEvaluationAndLearning:dataNeededOptions.qualityReported' + 'opsEvalAndLearningOld:dataNeededOptions.qualityReported' ); case 'CLINICAL_DATA': - return i18next.t( - 'operationsEvaluationAndLearning:dataNeededOptions.clinicalData' - ); + return i18next.t('opsEvalAndLearningOld:dataNeededOptions.clinicalData'); case 'NON_CLINICAL_DATA': - return i18next.t( - 'operationsEvaluationAndLearning:dataNeededOptions.nonClinical' - ); + return i18next.t('opsEvalAndLearningOld:dataNeededOptions.nonClinical'); case 'NON_MEDICAL_DATA': - return i18next.t( - 'operationsEvaluationAndLearning:dataNeededOptions.nonMedical' - ); + return i18next.t('opsEvalAndLearningOld:dataNeededOptions.nonMedical'); case 'OTHER': - return i18next.t( - 'operationsEvaluationAndLearning:dataNeededOptions.other' - ); + return i18next.t('opsEvalAndLearningOld:dataNeededOptions.other'); case 'NOT_PLANNING_TO_COLLECT_DATA': return i18next.t( - 'operationsEvaluationAndLearning:dataNeededOptions.notPlanningToCollect' + 'opsEvalAndLearningOld:dataNeededOptions.notPlanningToCollect' ); default: return ''; @@ -1024,33 +968,19 @@ export const translateDataForMonitoringType = (type: string) => { export const translateDataToSendParticipantsType = (type: string) => { switch (type) { case 'BASELINE_HISTORICAL_DATA': - return i18next.t( - 'operationsEvaluationAndLearning:dataToSendOptions.baseline' - ); + return i18next.t('opsEvalAndLearningOld:dataToSendOptions.baseline'); case 'CLAIMS_LEVEL_DATA': - return i18next.t( - 'operationsEvaluationAndLearning:dataToSendOptions.claims' - ); + return i18next.t('opsEvalAndLearningOld:dataToSendOptions.claims'); case 'BENEFICIARY_LEVEL_DATA': - return i18next.t( - 'operationsEvaluationAndLearning:dataToSendOptions.beneficiary' - ); + return i18next.t('opsEvalAndLearningOld:dataToSendOptions.beneficiary'); case 'PARTICIPANT_LEVEL_DATA': - return i18next.t( - 'operationsEvaluationAndLearning:dataToSendOptions.participant' - ); + return i18next.t('opsEvalAndLearningOld:dataToSendOptions.participant'); case 'PROVIDER_LEVEL_DATA': - return i18next.t( - 'operationsEvaluationAndLearning:dataToSendOptions.provider' - ); + return i18next.t('opsEvalAndLearningOld:dataToSendOptions.provider'); case 'OTHER_MIPS_DATA': - return i18next.t( - 'operationsEvaluationAndLearning:dataToSendOptions.other' - ); + return i18next.t('opsEvalAndLearningOld:dataToSendOptions.other'); case 'NOT_PLANNING_TO_SEND_DATA': - return i18next.t( - 'operationsEvaluationAndLearning:dataToSendOptions.notPlanning' - ); + return i18next.t('opsEvalAndLearningOld:dataToSendOptions.notPlanning'); default: return ''; } @@ -1059,37 +989,23 @@ export const translateDataToSendParticipantsType = (type: string) => { export const translateDataStartsType = (type: string) => { switch (type) { case 'DURING_APPLICATION_PERIOD': - return i18next.t( - 'operationsEvaluationAndLearning:dataSharingOptions.during' - ); + return i18next.t('opsEvalAndLearningOld:dataSharingOptions.during'); case 'SHORTLY_BEFORE_THE_START_DATE': return i18next.t( - 'operationsEvaluationAndLearning:dataSharingOptions.shortlyBefore' + 'opsEvalAndLearningOld:dataSharingOptions.shortlyBefore' ); case 'EARLY_IN_THE_FIRST_PERFORMANCE_YEAR': - return i18next.t( - 'operationsEvaluationAndLearning:dataSharingOptions.early' - ); + return i18next.t('opsEvalAndLearningOld:dataSharingOptions.early'); case 'LATER_IN_THE_FIRST_PERFORMANCE_YEAR': - return i18next.t( - 'operationsEvaluationAndLearning:dataSharingOptions.later' - ); + return i18next.t('opsEvalAndLearningOld:dataSharingOptions.later'); case 'IN_THE_SUBSEQUENT_PERFORMANCE_YEAR': - return i18next.t( - 'operationsEvaluationAndLearning:dataSharingOptions.subsequent' - ); + return i18next.t('opsEvalAndLearningOld:dataSharingOptions.subsequent'); case 'AT_SOME_OTHER_POINT_IN_TIME': - return i18next.t( - 'operationsEvaluationAndLearning:dataSharingOptions.somePoint' - ); + return i18next.t('opsEvalAndLearningOld:dataSharingOptions.somePoint'); case 'NOT_PLANNING_TO_DO_THIS': - return i18next.t( - 'operationsEvaluationAndLearning:dataSharingOptions.notPlanning' - ); + return i18next.t('opsEvalAndLearningOld:dataSharingOptions.notPlanning'); case 'OTHER': - return i18next.t( - 'operationsEvaluationAndLearning:dataSharingOptions.other' - ); + return i18next.t('opsEvalAndLearningOld:dataSharingOptions.other'); default: return ''; } @@ -1099,39 +1015,39 @@ export const translateDataFrequencyType = (type: string) => { switch (type) { case 'ANNUALLY': return i18next.t( - 'operationsEvaluationAndLearning:dataSharingHowOftenOptions.annually' + 'opsEvalAndLearningOld:dataSharingHowOftenOptions.annually' ); case 'BIANNUALLY': return i18next.t( - 'operationsEvaluationAndLearning:dataSharingHowOftenOptions.bianually' + 'opsEvalAndLearningOld:dataSharingHowOftenOptions.bianually' ); case 'QUARTERLY': return i18next.t( - 'operationsEvaluationAndLearning:dataSharingHowOftenOptions.quarterly' + 'opsEvalAndLearningOld:dataSharingHowOftenOptions.quarterly' ); case 'MONTHLY': return i18next.t( - 'operationsEvaluationAndLearning:dataSharingHowOftenOptions.monthly' + 'opsEvalAndLearningOld:dataSharingHowOftenOptions.monthly' ); case 'SEMI_MONTHLY': return i18next.t( - 'operationsEvaluationAndLearning:dataSharingHowOftenOptions.semiMonthly' + 'opsEvalAndLearningOld:dataSharingHowOftenOptions.semiMonthly' ); case 'WEEKLY': return i18next.t( - 'operationsEvaluationAndLearning:dataSharingHowOftenOptions.weekly' + 'opsEvalAndLearningOld:dataSharingHowOftenOptions.weekly' ); case 'DAILY': return i18next.t( - 'operationsEvaluationAndLearning:dataSharingHowOftenOptions.daily' + 'opsEvalAndLearningOld:dataSharingHowOftenOptions.daily' ); case 'OTHER': return i18next.t( - 'operationsEvaluationAndLearning:dataSharingHowOftenOptions.other' + 'opsEvalAndLearningOld:dataSharingHowOftenOptions.other' ); case 'NOT_PLANNING_TO_DO_THIS': return i18next.t( - 'operationsEvaluationAndLearning:dataSharingHowOftenOptions.notPlanning' + 'opsEvalAndLearningOld:dataSharingHowOftenOptions.notPlanning' ); default: return ''; @@ -1141,29 +1057,19 @@ export const translateDataFrequencyType = (type: string) => { export const translateModelLearningSystemType = (type: string) => { switch (type) { case 'LEARNING_CONTRACTOR': - return i18next.t( - 'operationsEvaluationAndLearning:learningSystemOptions.connector' - ); + return i18next.t('opsEvalAndLearningOld:learningSystemOptions.connector'); case 'IT_PLATFORM_CONNECT': - return i18next.t( - 'operationsEvaluationAndLearning:learningSystemOptions.itConnect' - ); + return i18next.t('opsEvalAndLearningOld:learningSystemOptions.itConnect'); case 'PARTICIPANT_COLLABORATION': return i18next.t( - 'operationsEvaluationAndLearning:learningSystemOptions.collaboration' + 'opsEvalAndLearningOld:learningSystemOptions.collaboration' ); case 'EDUCATE_BENEFICIARIES': - return i18next.t( - 'operationsEvaluationAndLearning:learningSystemOptions.educate' - ); + return i18next.t('opsEvalAndLearningOld:learningSystemOptions.educate'); case 'OTHER': - return i18next.t( - 'operationsEvaluationAndLearning:learningSystemOptions.other' - ); + return i18next.t('opsEvalAndLearningOld:learningSystemOptions.other'); case 'NO_LEARNING_SYSTEM': - return i18next.t( - 'operationsEvaluationAndLearning:learningSystemOptions.no' - ); + return i18next.t('opsEvalAndLearningOld:learningSystemOptions.no'); default: return ''; } @@ -1195,13 +1101,13 @@ export const translateOpNeedsStatusType = (type: string) => { export const translateAppealsQuestionType = (type: string) => { switch (type) { case 'appealPerformance': - return i18next.t('operationsEvaluationAndLearning:performanceScores'); + return i18next.t('opsEvalAndLearningOld:performanceScores'); case 'appealFeedback': - return i18next.t('operationsEvaluationAndLearning:feedbackResults'); + return i18next.t('opsEvalAndLearningOld:feedbackResults'); case 'appealPayments': - return i18next.t('operationsEvaluationAndLearning:payments'); + return i18next.t('opsEvalAndLearningOld:payments'); case 'appealOther': - return i18next.t('operationsEvaluationAndLearning:others'); + return i18next.t('opsEvalAndLearningOld:others'); default: return ''; } @@ -1280,11 +1186,13 @@ export const mapMultiSelectOptions = ( // Used to map MultiSelect options from Enums export const composeMultiSelectOptions = ( - translationObject: Record + translationObject: Record, + sublabels?: Record ) => getKeys(translationObject).map(key => ({ value: key, - label: translationObject[key] + label: translationObject[key], + subLabel: sublabels ? sublabels[key] : null })); // Sort mapped enums to be alphabetical and have 'OTHER' come last diff --git a/src/views/ModelPlan/ReadOnly/Beneficiaries/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/ReadOnly/Beneficiaries/__snapshots__/index.test.tsx.snap index f7e72a9a05..e21de3f016 100644 --- a/src/views/ModelPlan/ReadOnly/Beneficiaries/__snapshots__/index.test.tsx.snap +++ b/src/views/ModelPlan/ReadOnly/Beneficiaries/__snapshots__/index.test.tsx.snap @@ -55,6 +55,25 @@ exports[`Read Only Model Plan Summary -- Beneficiaries matches snapshot 1`] = ` +
    +
    +

    + Notes +

    +

    + Note beneficiary +

    +
    +
    - null + This is how

    +
    +
    +

    + Notes +

    +

    + Treat note +

    +
    +
    +
    +
    +

    + Notes +

    +

    + Exclude note +

    +
    +
    +
    +
    +

    + Notes +

    +

    + Note of confidence +

    +
    +
    +
    +
    +

    + Notes +

    +

    + Note selection +

    +
    +
    @@ -218,6 +313,25 @@ exports[`Read Only Model Plan Summary -- Beneficiaries matches snapshot 1`] = ` Annually

    +
    +
    +

    + Notes +

    +

    + Note frequency +

    +
    +
    +
    +
    +

    + Notes +

    +

    + Note overlap +

    +
    +
    - - No answer entered - + Yes precedence rules

    diff --git a/src/views/ModelPlan/ReadOnly/Beneficiaries/index.tsx b/src/views/ModelPlan/ReadOnly/Beneficiaries/index.tsx index f77a2626e8..0fbaf0e573 100644 --- a/src/views/ModelPlan/ReadOnly/Beneficiaries/index.tsx +++ b/src/views/ModelPlan/ReadOnly/Beneficiaries/index.tsx @@ -5,14 +5,6 @@ import { useQuery } from '@apollo/client'; import GetAllBeneficiaries from 'queries/ReadOnly/GetAllBeneficiaries'; import { GetAllBeneficiaries as AllBeneficiariesTypes } from 'queries/ReadOnly/types/GetAllBeneficiaries'; import { FrequencyType, TriStateAnswer } from 'types/graphql-global-types'; -import { - translateBeneficiariesType, - translateConfidenceType, - translateFrequencyType, - translateOverlapType, - translateSelectionMethodType, - translateTriStateAnswer -} from 'utils/modelPlan'; import { ModelInfoContext } from 'views/ModelInfoWrapper'; import { NotFoundPartial } from 'views/NotFound'; @@ -28,9 +20,11 @@ const ReadOnlyBeneficiaries = ({ isViewingFilteredView, filteredQuestions }: ReadOnlyProps) => { - const { t } = useTranslation('beneficiaries'); - const { t: h } = useTranslation('draftModelPlan'); - const { t: p } = useTranslation('prepareForClearance'); + const { t: beneficiariesT } = useTranslation('beneficiaries'); + + const { t: beneficiariesMiscT } = useTranslation('beneficiariesMisc'); + + const { t: prepareForClearanceT } = useTranslation('prepareForClearance'); const { modelName } = useContext(ModelInfoContext); @@ -79,15 +73,15 @@ const ReadOnlyBeneficiaries = ({ > {clearance && (

    - {p('forModelPlan', { + {prepareForClearanceT('forModelPlan', { modelName })}

    @@ -105,9 +99,11 @@ const ReadOnlyBeneficiaries = ({ filteredQuestions, 'beneficiaries', + beneficiariesT(`beneficiaries.options.${type}`) + )} listOtherItem={beneficiariesOther} notes={beneficiariesNote} /> @@ -119,14 +115,17 @@ const ReadOnlyBeneficiaries = ({ 'treatDualElligibleDifferent', )} @@ -149,14 +148,19 @@ const ReadOnlyBeneficiaries = ({ 'excludeCertainCharacteristics', )} @@ -189,15 +195,18 @@ const ReadOnlyBeneficiaries = ({ 'numberPeopleImpacted', )} @@ -205,15 +214,18 @@ const ReadOnlyBeneficiaries = ({ {!isViewingFilteredView && ( <> @@ -225,10 +237,10 @@ const ReadOnlyBeneficiaries = ({ filteredQuestions, 'beneficiarySelectionMethod', + beneficiariesT(`beneficiarySelectionMethod.options.${type}`) )} listOtherItem={beneficiarySelectionOther} notes={beneficiarySelectionNote} @@ -244,14 +256,18 @@ const ReadOnlyBeneficiaries = ({ filteredQuestions, 'beneficiarySelectionFrequency', @@ -262,9 +278,13 @@ const ReadOnlyBeneficiaries = ({ filteredQuestions, 'beneficiaryOverlap', @@ -275,7 +295,7 @@ const ReadOnlyBeneficiaries = ({ filteredQuestions, 'precedenceRules', )} diff --git a/src/views/ModelPlan/ReadOnly/GeneralCharacteristics/index.tsx b/src/views/ModelPlan/ReadOnly/GeneralCharacteristics/index.tsx index effab12706..6ce2bd21bf 100644 --- a/src/views/ModelPlan/ReadOnly/GeneralCharacteristics/index.tsx +++ b/src/views/ModelPlan/ReadOnly/GeneralCharacteristics/index.tsx @@ -139,7 +139,7 @@ const ReadOnlyGeneralCharacteristics = ({ filteredQuestions, 'isNewModel', )} @@ -150,7 +150,7 @@ const ReadOnlyGeneralCharacteristics = ({ filteredQuestions, 'existingModel', )} @@ -160,7 +160,7 @@ const ReadOnlyGeneralCharacteristics = ({ filteredQuestions, 'resemblesExistingModel', @@ -183,9 +183,7 @@ const ReadOnlyGeneralCharacteristics = ({ filteredQuestions, 'resemblesExistingModelHow', @@ -196,7 +194,7 @@ const ReadOnlyGeneralCharacteristics = ({ filteredQuestions, 'hasComponentsOrTracks', @@ -249,7 +247,7 @@ const ReadOnlyGeneralCharacteristics = ({ 'keyCharacteristics', @@ -268,7 +266,7 @@ const ReadOnlyGeneralCharacteristics = ({ filteredQuestions, 'collectPlanBids', @@ -361,7 +357,7 @@ const ReadOnlyGeneralCharacteristics = ({ @@ -398,7 +394,7 @@ const ReadOnlyGeneralCharacteristics = ({ @@ -441,7 +437,7 @@ const ReadOnlyGeneralCharacteristics = ({ filteredQuestions, 'geographiesTargeted', @@ -468,7 +464,7 @@ const ReadOnlyGeneralCharacteristics = ({ }} secondSection={{ heading: generalCharacteristicsT( - 'geographiesTargetedAppliedTo.question' + 'geographiesTargetedAppliedTo.label' ), list: true, listItems: geographiesTargetedAppliedTo?.map((type): string => @@ -485,9 +481,7 @@ const ReadOnlyGeneralCharacteristics = ({ filteredQuestions, 'geographiesTargetedTypes', )} @@ -497,7 +491,7 @@ const ReadOnlyGeneralCharacteristics = ({ filteredQuestions, 'participationOptions', generalCharacteristicsT(`agreementTypes.options.${type}`) @@ -526,7 +520,7 @@ const ReadOnlyGeneralCharacteristics = ({ 'multiplePatricipationAgreementsNeeded', )} @@ -578,7 +570,7 @@ const ReadOnlyGeneralCharacteristics = ({ filteredQuestions, 'authorityAllowances', generalCharacteristicsT(`authorityAllowances.options.${type}`) @@ -594,7 +586,7 @@ const ReadOnlyGeneralCharacteristics = ({ 'waiversRequired', @@ -621,7 +613,7 @@ const ReadOnlyGeneralCharacteristics = ({ filteredQuestions, 'waiversRequired', )} diff --git a/src/views/ModelPlan/ReadOnly/ModelBasics/index.tsx b/src/views/ModelPlan/ReadOnly/ModelBasics/index.tsx index 38b70c86cc..6cdab02b0f 100644 --- a/src/views/ModelPlan/ReadOnly/ModelBasics/index.tsx +++ b/src/views/ModelPlan/ReadOnly/ModelBasics/index.tsx @@ -179,7 +179,7 @@ const ReadOnlyModelBasics = ({ })} >

    - {basicsT('amsModelID.question')} + {basicsT('amsModelID.label')}

    {amsModelID || ( @@ -190,7 +190,7 @@ const ReadOnlyModelBasics = ({

    - {basicsT('demoCode.question')} + {basicsT('demoCode.label')}

    {demoCode || ( @@ -208,7 +208,7 @@ const ReadOnlyModelBasics = ({ filteredQuestions, 'modelCategory', )} @@ -219,7 +219,7 @@ const ReadOnlyModelBasics = ({ 'cmsCenters', basicsT(`cmsCenters.options.${cmsCenter}`) @@ -227,7 +227,7 @@ const ReadOnlyModelBasics = ({ listOtherItem: cmsOther }} secondSection={{ - heading: basicsT('cmmiGroups.question'), + heading: basicsT('cmmiGroups.label'), list: true, listItems: cmmiGroups?.map((cmmiGroup): string => basicsT(`cmmiGroups.options.${cmmiGroup}`) @@ -241,7 +241,7 @@ const ReadOnlyModelBasics = ({ filteredQuestions, 'modelType', )} @@ -250,14 +250,14 @@ const ReadOnlyModelBasics = ({ isViewingFilteredView, filteredQuestions, 'problem', - + )} {checkGroupMap( isViewingFilteredView, filteredQuestions, 'goal', - + )} {checkGroupMap( @@ -265,7 +265,7 @@ const ReadOnlyModelBasics = ({ filteredQuestions, 'testInterventions', )} @@ -274,7 +274,7 @@ const ReadOnlyModelBasics = ({ isViewingFilteredView, filteredQuestions, 'note', - + )} {isViewingFilteredView && filteredView !== 'ipc' ? ( @@ -284,7 +284,7 @@ const ReadOnlyModelBasics = ({ filteredQuestions, 'completeICIP', )} @@ -295,13 +295,13 @@ const ReadOnlyModelBasics = ({ 'clearanceStarts', )} @@ -324,13 +324,13 @@ const ReadOnlyModelBasics = ({ 'applicationsStart', )} @@ -371,7 +371,7 @@ const ReadOnlyModelBasics = ({ {filteredQuestions && hasQuestions(filteredQuestions, highLevelTimelineQuestions) && ( )} @@ -393,7 +393,7 @@ const ReadOnlyModelBasics = ({ type="p" className="font-body-sm line-height-sans-4" > - {basicsT('completeICIP.question')} + {basicsT('completeICIP.label')}

    @@ -415,7 +415,7 @@ const ReadOnlyModelBasics = ({ type="p" className="font-body-sm line-height-sans-4" > - {basicsT('clearanceStarts.question')} + {basicsT('clearanceStarts.label')}

    @@ -427,7 +427,7 @@ const ReadOnlyModelBasics = ({ type="p" className="font-body-sm line-height-sans-4" > - {basicsT('clearanceEnds.question')} + {basicsT('clearanceEnds.label')}

    @@ -441,7 +441,7 @@ const ReadOnlyModelBasics = ({ type="p" className="font-body-sm line-height-sans-4" > - {basicsT('announced.question')} + {basicsT('announced.label')}

    @@ -463,7 +463,7 @@ const ReadOnlyModelBasics = ({ type="p" className="font-body-sm line-height-sans-4" > - {basicsT('applicationsStart.question')} + {basicsT('applicationsStart.label')}

    @@ -475,7 +475,7 @@ const ReadOnlyModelBasics = ({ type="p" className="font-body-sm line-height-sans-4" > - {basicsT('applicationsEnd.question')} + {basicsT('applicationsEnd.label')}

    @@ -498,7 +498,7 @@ const ReadOnlyModelBasics = ({ type="p" className="font-body-sm line-height-sans-4" > - {basicsT('performancePeriodStarts.question')} + {basicsT('performancePeriodStarts.label')}

    @@ -510,7 +510,7 @@ const ReadOnlyModelBasics = ({ type="p" className="font-body-sm line-height-sans-4" > - {basicsT('performancePeriodEnds.question')} + {basicsT('performancePeriodEnds.label')}

    @@ -525,7 +525,7 @@ const ReadOnlyModelBasics = ({ type="p" className="font-body-sm line-height-sans-4" > - {basicsT('wrapUpEnds.question')} + {basicsT('wrapUpEnds.label')}

    @@ -535,7 +535,7 @@ const ReadOnlyModelBasics = ({ @@ -546,7 +546,7 @@ const ReadOnlyModelBasics = ({ filteredQuestions, 'phasedIn', diff --git a/src/views/ModelPlan/ReadOnly/OpsEvalAndLearning/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/ReadOnly/OpsEvalAndLearning/__snapshots__/index.test.tsx.snap index dcdf33fcf4..f0fea4af97 100644 --- a/src/views/ModelPlan/ReadOnly/OpsEvalAndLearning/__snapshots__/index.test.tsx.snap +++ b/src/views/ModelPlan/ReadOnly/OpsEvalAndLearning/__snapshots__/index.test.tsx.snap @@ -59,27 +59,531 @@ exports[`Read Only Model Plan Summary -- Operations, Evaluation, and Learning ma

  • - - Other not specified - + Agency other
  • +
    +
    +

    + Notes +

    +

    + State note +

    +
    +
    + +
    +
    +

    + What stakeholders do you plan to communicate with? +

    +
      +
    • + Beneficiaries +
    • +
    • + Participants +
    • +
    • + Providers +
    • +
    +
    +
    +
    +

    + Notes +

    +

    + Note stateholders +

    +
    +
    +
    +
    +
    +

    + Do you plan to use a helpdesk? +

    +

    + Yes +

    +
    +
    +
    +

    + Notes +

    +

    + Note help desk +

    +
    +
    +
    +
    +
    +
    +
    +

    + What contractors will support your model? +

    +
      +
    • + May have separate contractors for different implementation functions +
    • +
    • + Other +
    • +
        +
      • + Support other +
      • +
      +
    +
    +
    +
    +
    +
    +
    +

    + In what capacity will they support your model? +

    +

    + Support how +

    +
    +
    +
    +
    +
    +
    +

    + Notes +

    +

    + Note for support +

    +
    +
    + +
    +

    + IDDOC Operations +

    +
    +
    +

    + Are you planning to use IDDOC support? +

    +

    + Yes +

    +
    +
    +
    +

    + Notes +

    +

    + Note iddoc support +

    +
    +
    +
    +
    +
    +
    +
    +

    + Are technical contacts identified? +

    +

    + Yes +

    +
    +
    +
    +
    +
    +
    +

    + Please specify +

    +

    + Detail of technical contacts +

    +
    +
    +
    +
    +
    +
    +

    + Notes +

    +

    + Note for contacts +

    +
    +
    +
    +
    +

    + Will you capture participant information? +

    +

    + Yes +

    +
    +
    +
    +

    + Notes +

    +

    + Note for participants +

    +
    +
    +
    +
    +
    +

    + Interface Control Document (ICD) +

    +
    +
    +

    + ICD owner +

    +

    + ICD owner +

    +
    +
    +
    +
    +

    + Draft ICD required by +

    +

    + Invalid DateTime +

    +
    +
    +
    +

    + Notes +

    +

    + Note for icd +

    +
    +
    +
    +
    +
    +

    + Testing +

    +
    +
    +

    + User Acceptance Testing (UAT) – test data needs +

    +

    + UAT needs +

    +
    +
    +
    +
    +

    + STC – test data needs +

    +

    + STC needs +

    +

    - What stakeholders do you plan to communicate with? + Define the testing timelines +

    +

    + Testing timelines +

    +
    +
    +
    +

    + Notes +

    +

    + Note for testing +

    +
    +
    +
    +
    +
    +

    + Data Monitoring +

    +
    +
    +

    + What types of files? Select all that apply.

      - Beneficiaries - -
    • - Participants + Part A
    • - Providers + Part B
    @@ -107,21 +606,36 @@ exports[`Read Only Model Plan Summary -- Operations, Evaluation, and Learning ma data-testid="grid" >

    - Do you plan to use a helpdesk? + What types of responses?

    - - No answer entered - + File +

    +
    +
    +
    +
    +

    + Frequency of files? +

    +

    + Every week

    @@ -138,40 +652,18 @@ exports[`Read Only Model Plan Summary -- Operations, Evaluation, and Learning ma data-testid="grid" >

    - What contractors will support your model? + Full time or incremental?

    -
      -
    • - May have separate contractors for different implementation functions -
    • -
    • - Other -
    • -
        -
      • - - Other not specified - -
      • -
      -
    + Full time +

    @@ -184,55 +676,131 @@ exports[`Read Only Model Plan Summary -- Operations, Evaluation, and Learning ma data-testid="grid" >

    - In what capacity will they support your model? + Are Electronic File Transfer (EFT) and connectivity set up?

    - - No answer entered - + Yes +

    +
    + + + +
    +
    +
    +
    +

    + Will unsolicited adjustments be included? +

    +

    + Yes +

    +
    +
    +
    +
    +
    +
    +

    + Are data flow diagrams needed? +

    +

    + Yes

    - -
    -

    - IDDOC Operations -

    - Are you planning to use IDDOC support? + Will you produce Benefit Enhancement Files?

    - - No answer entered - + Yes +

    +
    +
    +
    +
    +

    + File naming conventions +

    +

    + PDF

    +
    +
    +

    + Notes +

    +

    + Note for monitoring +

    +
    +
    - - No answer entered - + Yes, and we will reconcile actual performance against it

    +
    +
    +

    + Notes +

    +

    + Note for benchmark +

    +
    +
    - - No answer entered - + Yes

    +
    +
    +

    + Notes +

    +

    + Note for computing +

    +
    +
    - - No answer entered - + Yes

    @@ -335,11 +929,7 @@ exports[`Read Only Model Plan Summary -- Operations, Evaluation, and Learning ma

    - - No answer entered - + Yes

    @@ -368,11 +958,7 @@ exports[`Read Only Model Plan Summary -- Operations, Evaluation, and Learning ma

    - - No answer entered - + Yes

    @@ -396,16 +982,31 @@ exports[`Read Only Model Plan Summary -- Operations, Evaluation, and Learning ma

    - - No answer entered - + Yes

    +
    +
    +

    + Payments +

    +

    + Note for risk +

    +
    +
    - - No answer entered - + Yes

    @@ -457,11 +1054,7 @@ exports[`Read Only Model Plan Summary -- Operations, Evaluation, and Learning ma

    - - No answer entered - + Yes

    @@ -490,11 +1083,7 @@ exports[`Read Only Model Plan Summary -- Operations, Evaluation, and Learning ma

    - - No answer entered - + Yes

    @@ -518,16 +1107,31 @@ exports[`Read Only Model Plan Summary -- Operations, Evaluation, and Learning ma

    - - No answer entered - + Yes

    +
    +
    +

    + Payments +

    +

    + Note for appeal +

    +
    +
    - - Other not specified - + Other eval approach
    +
    +
    +

    + Notes +

    +

    + Note for approach +

    +
    +
    - - Other not specified - + CCM involvement other
    +
    +
    +

    + Notes +

    +

    + Note for involvement +

    +
    +
    - - Other not specified - + Data mon other
    +
    +
    +

    + Notes +

    +

    + Note for data mon +

    +
    +
    - - Other not specified - + Data to send other
    +
    +
    +

    + Notes +

    +

    + Note for data to send +

    +
    +
    - - No answer entered - + Yes

    +
    +
    +

    + Notes +

    +

    + Note for cclf +

    +
    +
    - - No answer entered - + Yes

    - -

    - Do you know which applications will be on the other sides of the file transfers? + Notes

    - - No answer entered - + Note for ccw

    +
    +
    +
    +
    +

    + Do you know which applications will be on the other sides of the file transfers? +

    +

    + Yes +

    +
    +
    +
    +
    +
    +
    +

    + Please specify +

    +

    + Which app to send +

    +
    +
    +
    +
    +
    +
    +

    + Notes +

    +

    + Note for app to send +

    +
    +
    - - No answer entered - + Yes

    +
    +
    +

    + Notes +

    +

    + Note for ccw disctro +

    +
    +
    - - No answer entered - + During application period

    @@ -862,6 +1611,25 @@ exports[`Read Only Model Plan Summary -- Operations, Evaluation, and Learning ma +
    +
    +

    + Notes +

    +

    + Note for data freq +

    +
    +
    - - No answer entered - + Early in the first performance year

    @@ -908,6 +1672,25 @@ exports[`Read Only Model Plan Summary -- Operations, Evaluation, and Learning ma +
    +
    +

    + Notes +

    +

    + Note for data freq +

    +
    +
    - - No answer entered - + Later in the first performance year

    +
    +
    +

    + Notes +

    +

    + Note for qual report +

    +
    +
    @@ -970,15 +1768,30 @@ exports[`Read Only Model Plan Summary -- Operations, Evaluation, and Learning ma
  • - - Other not specified - + Other learning system
  • +
    +
    +

    + Notes +

    +

    + Note for learning system +

    +
    +
    - - No answer entered - + Some challenges

    diff --git a/src/views/ModelPlan/ReadOnly/OpsEvalAndLearning/index.tsx b/src/views/ModelPlan/ReadOnly/OpsEvalAndLearning/index.tsx index a744173a57..600b3d823b 100644 --- a/src/views/ModelPlan/ReadOnly/OpsEvalAndLearning/index.tsx +++ b/src/views/ModelPlan/ReadOnly/OpsEvalAndLearning/index.tsx @@ -6,22 +6,6 @@ import GettAllOpsEvalAndLearning from 'queries/ReadOnly/GettAllOpsEvalAndLearnin import { GetAllOpsEvalAndLearning as AllOpsEvalAndLeardningTypes } from 'queries/ReadOnly/types/GetAllOpsEvalAndLearning'; import { DataStartsType } from 'types/graphql-global-types'; import { formatDateUtc } from 'utils/date'; -import { - translateAgencyOrStateHelpType, - translateBenchmarkForPerformanceType, - translateBooleanOrNull, - translateCcmInvolvmentType, - translateContractorSupportType, - translateDataForMonitoringType, - translateDataFrequencyType, - translateDataFullTimeOrIncrementalType, - translateDataStartsType, - translateDataToSendParticipantsType, - translateEvaluationApproachType, - translateModelLearningSystemType, - translateMonitoringFileType, - translateStakeholdersType -} from 'utils/modelPlan'; import { ModelInfoContext } from 'views/ModelInfoWrapper'; import { isCCWInvolvement, @@ -41,10 +25,13 @@ const ReadOnlyOpsEvalAndLearning = ({ isViewingFilteredView, filteredQuestions }: ReadOnlyProps) => { - const { t } = useTranslation('operationsEvaluationAndLearning'); - const { t: h } = useTranslation('draftModelPlan'); - const { t: readOnly } = useTranslation('readOnlyModelPlan'); - const { t: p } = useTranslation('prepareForClearance'); + const { t: opsEvalAndLearningT } = useTranslation('opsEvalAndLearning'); + + const { t: opsEvalAndLearningMiscT } = useTranslation( + 'opsEvalAndLearningMisc' + ); + + const { t: prepareForClearanceT } = useTranslation('prepareForClearance'); const { modelName } = useContext(ModelInfoContext); @@ -174,15 +161,17 @@ const ReadOnlyOpsEvalAndLearning = ({ > {clearance && (

    - {p('forModelPlan', { + {prepareForClearanceT('forModelPlan', { modelName })}

    @@ -201,9 +190,11 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'agencyOrStateHelp', + opsEvalAndLearningT(`agencyOrStateHelp.options.${type}`) + )} listOtherItem={agencyOrStateHelpOther} notes={agencyOrStateHelpNote} /> @@ -214,9 +205,11 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'stakeholders', + opsEvalAndLearningT(`stakeholders.options.${type}`) + )} listOtherItem={stakeholdersOther} notes={stakeholdersNote} /> @@ -227,8 +220,8 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'helpdeskUse', )} @@ -239,13 +232,15 @@ const ReadOnlyOpsEvalAndLearning = ({ 'contractorSupport', + opsEvalAndLearningT(`contractorSupport.options.${type}`) + ), listOtherItem: contractorSupportOther }} secondSection={{ - heading: t('whatContractorsHow'), + heading: opsEvalAndLearningT('contractorSupportHow.label'), copy: contractorSupportHow }} /> @@ -255,7 +250,10 @@ const ReadOnlyOpsEvalAndLearning = ({ isViewingFilteredView, filteredQuestions, 'contractorSupport', - + )} @@ -269,7 +267,7 @@ const ReadOnlyOpsEvalAndLearning = ({ }`} > {!isViewingFilteredView && ( -

    {readOnly('opsEvalAndLearning.headings.iddoc')}

    +

    {opsEvalAndLearningMiscT('iddocReadonlyHeading')}

    )} {checkGroupMap( @@ -277,8 +275,11 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'iddocSupport', )} @@ -290,12 +291,19 @@ const ReadOnlyOpsEvalAndLearning = ({ 'technicalContactsIdentified', )} @@ -321,8 +331,11 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'captureParticipantInfo', )} @@ -341,14 +354,17 @@ const ReadOnlyOpsEvalAndLearning = ({ }`} > {!isViewingFilteredView && ( -

    {readOnly('opsEvalAndLearning.headings.icd')}

    +

    {opsEvalAndLearningMiscT('icdReadonlyHeading')}

    )} {checkGroupMap( isViewingFilteredView, filteredQuestions, 'icdOwner', - + )} {checkGroupMap( @@ -356,7 +372,7 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'draftIcdDueDate', {!isViewingFilteredView && ( -

    {readOnly('opsEvalAndLearning.headings.testing')}

    +

    {opsEvalAndLearningMiscT('testing')}

    )} {checkGroupMap( isViewingFilteredView, filteredQuestions, 'uatNeeds', - + )} {checkGroupMap( isViewingFilteredView, filteredQuestions, 'stcNeeds', - + )} {checkGroupMap( @@ -397,7 +419,7 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'testingTimelines', @@ -413,7 +435,7 @@ const ReadOnlyOpsEvalAndLearning = ({ }`} > {!isViewingFilteredView && ( -

    {readOnly('opsEvalAndLearning.headings.dataMonitoring')}

    +

    {opsEvalAndLearningMiscT('dataMonitoringHeading')}

    )} {checkGroupMap( @@ -421,10 +443,10 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'dataMonitoringFileTypes', + opsEvalAndLearningT(`dataMonitoringFileTypes.options.${type}`) )} listOtherItem={dataMonitoringFileOther} /> @@ -435,7 +457,7 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'dataResponseType', )} @@ -445,7 +467,7 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'dataResponseFileFrequency', )} @@ -456,16 +478,19 @@ const ReadOnlyOpsEvalAndLearning = ({ 'dataFullTimeOrIncremental', )} @@ -476,12 +501,20 @@ const ReadOnlyOpsEvalAndLearning = ({ 'unsolicitedAdjustmentsIncluded', )} @@ -491,8 +524,13 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'produceBenefitEnhancementFiles', )} @@ -501,7 +539,7 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'fileNamingConventions', @@ -523,10 +561,13 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'benchmarkForPerformance', @@ -537,8 +578,11 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'computePerformanceScores', )} @@ -549,12 +593,20 @@ const ReadOnlyOpsEvalAndLearning = ({ 'riskAdjustPerformance', )} @@ -565,12 +617,18 @@ const ReadOnlyOpsEvalAndLearning = ({ 'riskAdjustPayments', )} @@ -580,7 +638,10 @@ const ReadOnlyOpsEvalAndLearning = ({ isViewingFilteredView, filteredQuestions, 'riskAdjustPayments', - + )} {checkGroupMap( @@ -589,12 +650,18 @@ const ReadOnlyOpsEvalAndLearning = ({ 'appealPerformance', )} @@ -605,12 +672,18 @@ const ReadOnlyOpsEvalAndLearning = ({ 'appealPayments', )} @@ -620,7 +693,10 @@ const ReadOnlyOpsEvalAndLearning = ({ isViewingFilteredView, filteredQuestions, 'appealPayments', - + )} @@ -637,10 +713,10 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'evaluationApproaches', + opsEvalAndLearningT(`evaluationApproaches.options.${type}`) )} listOtherItem={evaluationApproachOther} notes={evalutaionApproachNote} @@ -652,9 +728,11 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'ccmInvolvment', + opsEvalAndLearningT(`ccmInvolvment.options.${type}`) + )} listOtherItem={ccmInvolvmentOther} notes={ccmInvolvmentNote} /> @@ -665,10 +743,12 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'dataNeededForMonitoring', + opsEvalAndLearningT(`dataNeededForMonitoring.options.${type}`) )} listOtherItem={dataNeededForMonitoringOther} notes={dataNeededForMonitoringNote} @@ -680,10 +760,12 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'dataToSendParticicipants', + opsEvalAndLearningT(`dataToSendParticicipants.options.${type}`) )} listOtherItem={dataToSendParticicipantsOther} notes={dataToSendParticicipantsNote} @@ -695,8 +777,11 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'shareCclfData', )} @@ -712,7 +797,7 @@ const ReadOnlyOpsEvalAndLearning = ({ }`} > {!isViewingFilteredView && ( -

    {readOnly('opsEvalAndLearning.headings.ccw')}

    +

    {opsEvalAndLearningMiscT('ccwSpecificReadonly')}

    )} {checkGroupMap( @@ -720,8 +805,11 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'sendFilesBetweenCcw', )} @@ -732,12 +820,15 @@ const ReadOnlyOpsEvalAndLearning = ({ 'appToSendFilesToKnown', + )} {checkGroupMap( @@ -757,9 +851,12 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'useCcwForFileDistribiutionToParticipants', @@ -777,7 +874,7 @@ const ReadOnlyOpsEvalAndLearning = ({ }`} > {!isViewingFilteredView && ( -

    {readOnly('opsEvalAndLearning.headings.quality')}

    +

    {opsEvalAndLearningMiscT('qualityReadonly')}

    )} {checkGroupMap( @@ -785,8 +882,11 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'developNewQualityMeasures', )} @@ -796,8 +896,13 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'qualityPerformanceImpactsPayment', )} @@ -813,7 +918,7 @@ const ReadOnlyOpsEvalAndLearning = ({ }`} > {!isViewingFilteredView && ( -

    {readOnly('opsEvalAndLearning.headings.data')}

    +

    {opsEvalAndLearningMiscT('dataReadonly')}

    )} {checkGroupMap( @@ -821,14 +926,18 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'dataSharingStarts', )} @@ -838,9 +947,11 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'dataSharingFrequency', + opsEvalAndLearningT(`dataSharingFrequency.options.${type}`) + )} listOtherItem={dataSharingFrequencyOther} notes={dataSharingStartsNote} /> @@ -851,14 +962,18 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'dataCollectionStarts', )} @@ -868,9 +983,11 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'dataCollectionFrequency', + opsEvalAndLearningT(`dataCollectionFrequency.options.${type}`) + )} listOtherItem={dataCollectionFrequencyOther} notes={dataCollectionFrequencyNote} /> @@ -881,14 +998,18 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'qualityReportingStarts', @@ -902,10 +1023,10 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'modelLearningSystems', + opsEvalAndLearningT(`modelLearningSystems.options.${type}`) )} listOtherItem={modelLearningSystemsOther} notes={modelLearningSystemsNote} @@ -917,7 +1038,7 @@ const ReadOnlyOpsEvalAndLearning = ({ filteredQuestions, 'anticipatedChallenges', )} diff --git a/src/views/ModelPlan/ReadOnly/ParticipantsAndProviders/index.tsx b/src/views/ModelPlan/ReadOnly/ParticipantsAndProviders/index.tsx index 6b6c7ae9cb..1ae4154bec 100644 --- a/src/views/ModelPlan/ReadOnly/ParticipantsAndProviders/index.tsx +++ b/src/views/ModelPlan/ReadOnly/ParticipantsAndProviders/index.tsx @@ -132,7 +132,7 @@ const ReadOnlyParticipantsAndProviders = ({ filteredQuestions, 'participants', participantsAndProvidersT(`participants.options.${type}`) @@ -148,9 +148,7 @@ const ReadOnlyParticipantsAndProviders = ({ filteredQuestions, 'medicareProviderType', )} @@ -161,7 +159,7 @@ const ReadOnlyParticipantsAndProviders = ({ filteredQuestions, 'statesEngagement', )} @@ -172,7 +170,7 @@ const ReadOnlyParticipantsAndProviders = ({ 'participantsCurrentlyInModels', )} @@ -209,12 +205,12 @@ const ReadOnlyParticipantsAndProviders = ({ )} @@ -243,7 +239,7 @@ const ReadOnlyParticipantsAndProviders = ({ filteredQuestions, 'recruitmentMethod', participantsAndProvidersT(`selectionMethod.options.${type}`) @@ -289,7 +283,7 @@ const ReadOnlyParticipantsAndProviders = ({ filteredQuestions, 'communicationMethod', participantsAndProvidersT(`communicationMethod.options.${type}`) @@ -305,9 +299,7 @@ const ReadOnlyParticipantsAndProviders = ({ 'participantAssumeRisk', )} @@ -340,7 +332,7 @@ const ReadOnlyParticipantsAndProviders = ({ filteredQuestions, 'willRiskChange', )} @@ -414,7 +404,7 @@ const ReadOnlyParticipantsAndProviders = ({ filteredQuestions, 'participantsIds', participantsAndProvidersT(`participantsIds.options.${type}`) @@ -434,7 +424,7 @@ const ReadOnlyParticipantsAndProviders = ({ 'providerAdditionFrequency', @@ -474,7 +464,7 @@ const ReadOnlyParticipantsAndProviders = ({ 'providerLeaveMethod', @@ -490,7 +480,7 @@ const ReadOnlyParticipantsAndProviders = ({ filteredQuestions, 'providerOverlap', @@ -520,9 +510,7 @@ const ReadOnlyParticipantsAndProviders = ({ filteredQuestions, 'providerOverlapHierarchy', )} diff --git a/src/views/ModelPlan/ReadOnly/_components/FilterView/BodyContent/_filterGroupMapping.ts b/src/views/ModelPlan/ReadOnly/_components/FilterView/BodyContent/_filterGroupMapping.ts index c3487c0fa0..76e1b73381 100644 --- a/src/views/ModelPlan/ReadOnly/_components/FilterView/BodyContent/_filterGroupMapping.ts +++ b/src/views/ModelPlan/ReadOnly/_components/FilterView/BodyContent/_filterGroupMapping.ts @@ -43,20 +43,37 @@ const FilterGroupMap: Record = { ], beneficiaries: [ 'beneficiarySelectionMethod', - 'beneficiarySelectionFrequency' + 'beneficiarySelectionOther', + 'beneficiarySelectionNote', + 'beneficiarySelectionFrequency', + 'beneficiarySelectionFrequencyOther', + 'beneficiarySelectionFrequencyNote' ], 'ops-eval-and-learning': [ 'benchmarkForPerformance', + 'benchmarkForPerformanceNote', 'computePerformanceScores', + 'computePerformanceScoresNote', 'riskAdjustPerformance', + 'riskAdjustNote', 'riskAdjustPayments', 'dataNeededForMonitoring', + 'dataNeededForMonitoringOther', + 'dataNeededForMonitoringNote', 'dataToSendParticicipants', + 'dataToSendParticicipantsOther', + 'dataToSendParticicipantsNote', 'shareCclfData', 'developNewQualityMeasures', + 'developNewQualityMeasuresNote', 'qualityPerformanceImpactsPayment', + 'qualityPerformanceImpactsPaymentNote', 'dataSharingFrequency', - 'dataCollectionFrequency' + 'dataSharingFrequencyOther', + 'dataSharingFrequencyNote', + 'dataCollectionFrequency', + 'dataCollectionFrequencyOther', + 'dataCollectionFrequencyNote' ], payments: [ 'payType', @@ -119,9 +136,15 @@ const FilterGroupMap: Record = { ], 'ops-eval-and-learning': [ 'ccmInvolvment', + 'ccmInvolvmentOther', + 'ccmInvolvmentNote', 'sendFilesBetweenCcw', + 'sendFilesBetweenCcwNote', 'appToSendFilesToKnown', - 'useCcwForFileDistribiutionToParticipants' + 'appToSendFilesToWhich', + 'appToSendFilesToNote', + 'useCcwForFileDistribiutionToParticipants', + 'useCcwForFileDistribiutionToParticipantsNote' ], payments: ['sharedSystemsInvolvedAdditionalClaimPayment'] }, @@ -219,16 +242,27 @@ const FilterGroupMap: Record = { ], beneficiaries: [ 'treatDualElligibleDifferent', - 'excludeCertainCharacteristics' + 'treatDualElligibleDifferentHow', + 'treatDualElligibleDifferentNote', + 'excludeCertainCharacteristics', + 'excludeCertainCharacteristicsCriteria', + 'excludeCertainCharacteristicsNote' ], 'ops-eval-and-learning': [ 'contractorSupport', + 'contractorSupportOther', 'contractorSupportHow', + 'contractorSupportNote', 'iddocSupport', + 'iddocSupportNote', 'technicalContactsIdentified', + 'technicalContactsIdentifiedDetail', + 'technicalContactsIdentifiedNote', 'captureParticipantInfo', + 'captureParticipantInfoNote', 'icdOwner', 'draftIcdDueDate', + 'icdNote', 'uatNeeds', 'stcNeeds', 'testingTimelines', @@ -240,9 +274,15 @@ const FilterGroupMap: Record = { 'produceBenefitEnhancementFiles', 'fileNamingConventions', 'dataNeededForMonitoring', + 'dataNeededForMonitoringOther', + 'dataNeededForMonitoringNote', 'dataSharingStarts', + 'dataSharingStartsOther', 'dataSharingFrequency', + 'dataSharingFrequencyOther', + 'dataSharingFrequencyNote', 'dataCollectionStarts', + 'dataCollectionStartsOther', 'anticipatedChallenges' ], payments: [ @@ -300,7 +340,11 @@ const FilterGroupMap: Record = { ], beneficiaries: [ 'treatDualElligibleDifferent', - 'excludeCertainCharacteristics' + 'treatDualElligibleDifferentHow', + 'treatDualElligibleDifferentNote', + 'excludeCertainCharacteristics', + 'excludeCertainCharacteristicsCriteria', + 'excludeCertainCharacteristicsNote' ], 'ops-eval-and-learning': [ 'contractorSupport', @@ -328,9 +372,12 @@ const FilterGroupMap: Record = { basics: ['nameHistory'], beneficiaries: [ 'beneficiaries', + 'beneficiariesOther', + 'beneficiariesNote', 'numberPeopleImpacted', 'estimateConfidence', 'beneficiaryOverlap', + 'beneficiaryOverlapNote', 'precedenceRules' ] }, @@ -354,9 +401,14 @@ const FilterGroupMap: Record = { ], 'ops-eval-and-learning': [ 'stakeholders', + 'stakeholdersOther', + 'stakeholdersNote', 'helpdeskUse', + 'helpdeskUseNote', 'contractorSupport', - 'contractorSupportHow' + 'contractorSupportOther', + 'contractorSupportHow', + 'contractorSupportNote' ] } }; 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 775688386e..b3cf2e2f36 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 @@ -2,9 +2,7 @@ exports[`Model Plan Documents page matches snapshot 1`] = ` -
    +
    -
    -
    -

    - Anticipated high level timeline -

    -
    +

    + Anticipated high level timeline +

    -

    - - Please be sure that the dates listed here are updated in the clearance calendar, if applicable. Contact the MINT Team at - - MINTTeam@cms.hhs.gov - - if you have any questions. - -

    +

    + + Please be sure that the dates listed here are updated in the clearance calendar, if applicable. Contact the MINT Team at + + MINTTeam@cms.hhs.gov + + if you have any questions. + +

    +
    - -
      -
    1. -
      +
      +
      +
      + +
      + mm/dd/yyyy +
      +
      +
      + +
      + + + +
      +
      +
      +
      +
    2. +
    3. +
      + + Clearance + + +
      +
      + +
      + mm/dd/yyyy +
      +
      +
      + +
      + + + +
      +
      +
      + +
      + mm/dd/yyyy +
      +
      +
      + +
      + + + +
      +
      +
      +
      +
    4. +
    5. +
      -
      -
    6. -
    7. -
      +
    8. - - Clearance - - + + Application period + +
    9. - -
    10. -
    11. -
      -
      +
    12. -
      + + Performance period + -
      - mm/dd/yyyy -
      -
      -
      - -
      - - - -
      -
      -
      -
    13. -
    14. -
      - - Application period - -
      -
      +
    15. - -
      - mm/dd/yyyy -
      +
      - -
      - - - -
      -
      -
      - -
      - mm/dd/yyyy -
      -
      -
      - - -
      -
      -
    16. -
    17. -
      - - Performance period - - -
      -
      -
      - -
      - mm/dd/yyyy -
      +
      - -
      - - - -
      -
      -
      - -
      - mm/dd/yyyy -
      -
      -
      - -
      -
      -
    18. -
    19. -
      -
      +
    20. +
      - -
      - mm/dd/yyyy -
      +
      + mm/dd/yyyy +
      +
      -
      - -
      +
    21. +
    +
    +
    + +
    - - -
    +
    - + That is, the basic model would start at the earliest possible date but additional facets could be phased in at a later quarter. + +
    +
    + + +
    +
    + + +
    +
    -
    -
    - - - That is, the basic model would start at the earliest possible date but additional facets could be phased in at a later quarter. - -
    - -
    -
    - - + Phased in note +
    -
    -
    -
    -
    - -
    -
    -
    -

    -

    - Model Plan status -

    +

    - -

    + class="margin-0" + > + Model Plan status +

    +
    + + +

    +

    -
    -
    - + + +
    - - -
    -
    +
    + +
    diff --git a/src/views/ModelPlan/TaskList/Basics/Milestones/index.test.tsx b/src/views/ModelPlan/TaskList/Basics/Milestones/index.test.tsx index 0f4505949d..8479e8fe6a 100644 --- a/src/views/ModelPlan/TaskList/Basics/Milestones/index.test.tsx +++ b/src/views/ModelPlan/TaskList/Basics/Milestones/index.test.tsx @@ -1,11 +1,11 @@ import React from 'react'; import { MemoryRouter, Route } from 'react-router-dom'; -import { MockedProvider } from '@apollo/client/testing'; import { render, screen, waitFor } from '@testing-library/react'; import GetMilestones from 'queries/Basics/GetMilestones'; import { GetMilestones_modelPlan_basics as GetMilestonesType } from 'queries/Basics/types/GetMilestones'; import { TaskStatus } from 'types/graphql-global-types'; +import VerboseMockedProvider from 'utils/testing/MockedProvider'; import Milestones from './index'; @@ -42,6 +42,7 @@ const mocks = [ result: { data: { modelPlan: { + __typename: 'ModelPlan', id: 'f11eb129-2c80-4080-9440-439cbe1a286f', modelName: 'My excellent plan that I just initiated', basics: milestonesMockData @@ -59,11 +60,11 @@ describe('Model Plan Documents page', () => { '/models/f11eb129-2c80-4080-9440-439cbe1a286f/task-list/milestones' ]} > - + - + ); @@ -71,6 +72,7 @@ describe('Model Plan Documents page', () => { expect(screen.getByTestId('model-plan-milestones')).toBeInTheDocument(); }); }); + it('matches snapshot', async () => { const { asFragment } = render( { '/models/f11eb129-2c80-4080-9440-439cbe1a286f/task-list/milestones' ]} > - + - + ); diff --git a/src/views/ModelPlan/TaskList/Basics/Milestones/index.tsx b/src/views/ModelPlan/TaskList/Basics/Milestones/index.tsx index 465964ae24..e943f68981 100644 --- a/src/views/ModelPlan/TaskList/Basics/Milestones/index.tsx +++ b/src/views/ModelPlan/TaskList/Basics/Milestones/index.tsx @@ -14,13 +14,13 @@ import { Link as TrussLink, ProcessList, ProcessListHeading, - ProcessListItem, - Radio + ProcessListItem } from '@trussworks/react-uswds'; -import { Field, Form, Formik, FormikProps } from 'formik'; +import { Form, Formik, FormikProps } from 'formik'; import AddNote from 'components/AddNote'; import AskAQuestion from 'components/AskAQuestion'; +import BooleanRadio from 'components/BooleanRadioForm'; import PageHeading from 'components/PageHeading'; import PageNumber from 'components/PageNumber'; import ReadyForReview from 'components/ReadyForReview'; @@ -153,7 +153,7 @@ const Milestones = () => { } return ( -
    +
    @@ -229,7 +229,7 @@ const Milestones = () => { }; return ( - <> +
    {getKeys(errors).length > 0 && ( { className="margin-top-0" fieldName="completeICIP" id="Milestone-completeICIP" - label={basicsT('completeICIP.question')} + label={basicsT('completeICIP.label')} placeHolder handleOnBlur={handleOnBlur} formikValue={values.completeICIP} @@ -320,7 +320,7 @@ const Milestones = () => { { { className="margin-top-0" fieldName="announced" id="Milestone-announced" - label={basicsT('announced.question')} + label={basicsT('announced.label')} placeHolder handleOnBlur={handleOnBlur} formikValue={values.announced} @@ -391,7 +391,7 @@ const Milestones = () => { { { { { fieldName="wrapUpEnds" className="margin-top-0" id="Milestone-wrapUpEnds" - label={basicsT('wrapUpEnds.question')} + label={basicsT('wrapUpEnds.label')} placeHolder handleOnBlur={handleOnBlur} formikValue={values.wrapUpEnds} @@ -512,40 +512,22 @@ const Milestones = () => { className="margin-top-4" > - {basicsT('phasedIn.hint')} + {basicsT('phasedIn.sublabel')} {flatErrors.phasedIn} -
    - { - setFieldValue('phasedIn', true); - }} - /> - - { - setFieldValue('phasedIn', false); - }} - /> -
    + @@ -605,7 +587,7 @@ const Milestones = () => { - +
    ); }} diff --git a/src/views/ModelPlan/TaskList/Basics/Overview/index.tsx b/src/views/ModelPlan/TaskList/Basics/Overview/index.tsx index 869d700468..780178a5ed 100644 --- a/src/views/ModelPlan/TaskList/Basics/Overview/index.tsx +++ b/src/views/ModelPlan/TaskList/Basics/Overview/index.tsx @@ -198,7 +198,7 @@ const Overview = () => { className="margin-top-4" > {flatErrors.modelType} @@ -233,7 +233,7 @@ const Overview = () => { error={flatErrors.problem} id="ModelType-Problem" name="problem" - label={basicsT('problem.question')} + label={basicsT('problem.label')} /> @@ -247,8 +247,8 @@ const Overview = () => { error={flatErrors.goal} id="ModelType-Goal" name="goal" - hint={basicsT('goal.hint')} - label={basicsT('goal.question')} + hint={basicsT('goal.sublabel')} + label={basicsT('goal.label')} /> @@ -262,7 +262,7 @@ const Overview = () => { error={flatErrors.testInterventions} id="ModelType-testInterventions" name="testInterventions" - label={basicsT('testInterventions.question')} + label={basicsT('testInterventions.label')} /> diff --git a/src/views/ModelPlan/TaskList/Basics/index.tsx b/src/views/ModelPlan/TaskList/Basics/index.tsx index dc77f8d0a8..b19db1b4bb 100644 --- a/src/views/ModelPlan/TaskList/Basics/index.tsx +++ b/src/views/ModelPlan/TaskList/Basics/index.tsx @@ -280,7 +280,7 @@ const BasicsContent = () => { className="margin-top-4" > @@ -301,11 +301,11 @@ const BasicsContent = () => { className="margin-top-4" > - {modelPlanT('abbreviation.hint')} + {modelPlanT('abbreviation.sublabel')} @@ -359,7 +359,7 @@ const BasicsContent = () => { className="margin-top-0" > @@ -382,7 +382,7 @@ const BasicsContent = () => { className="margin-top-0" > @@ -407,7 +407,7 @@ const BasicsContent = () => { className="margin-top-4" > @@ -449,13 +449,13 @@ const BasicsContent = () => { error={!!flatErrors['basics.cmsCenters']} className="margin-top-4" > -
    +
    ( <> @@ -544,11 +544,11 @@ const BasicsContent = () => { htmlFor="basics.cmmiGroups" className="text-normal" > - {basicsT('cmmiGroups.question')} + {basicsT('cmmiGroups.label')}

    - {basicsT('cmmiGroups.hint')} + {basicsT('cmmiGroups.sublabel')}

    diff --git a/src/views/ModelPlan/TaskList/Beneficiaries/BeneficiaryIdentification/index.tsx b/src/views/ModelPlan/TaskList/Beneficiaries/BeneficiaryIdentification/index.tsx index 51d17850d9..5a442b9c3d 100644 --- a/src/views/ModelPlan/TaskList/Beneficiaries/BeneficiaryIdentification/index.tsx +++ b/src/views/ModelPlan/TaskList/Beneficiaries/BeneficiaryIdentification/index.tsx @@ -28,6 +28,7 @@ import FieldGroup from 'components/shared/FieldGroup'; import MultiSelect from 'components/shared/MultiSelect'; import TextAreaField from 'components/shared/TextAreaField'; import TextField from 'components/shared/TextField'; +import usePlanTranslation from 'hooks/usePlanTranslation'; import GetBeneficiaryIdentification from 'queries/Beneficiaries/getBeneficiaryIndentification'; import { GetBeneficiaryIdentification as BeneficiaryIdentificationType, @@ -37,14 +38,25 @@ import { import { UpdateModelPlanBeneficiariesVariables } from 'queries/Beneficiaries/types/UpdateModelPlanBeneficiaries'; import UpdateModelPlanBeneficiaries from 'queries/Beneficiaries/UpdateModelPlanBeneficiaries'; import { BeneficiariesType, TriStateAnswer } from 'types/graphql-global-types'; +import { getKeys } from 'types/translation'; import flattenErrors from 'utils/flattenErrors'; import { dirtyInput } from 'utils/formDiff'; -import { sortOtherEnum, translateBeneficiariesType } from 'utils/modelPlan'; +import { composeMultiSelectOptions } from 'utils/modelPlan'; import { NotFoundPartial } from 'views/NotFound'; const BeneficiaryIdentification = () => { - const { t } = useTranslation('beneficiaries'); - const { t: h } = useTranslation('draftModelPlan'); + const { t: beneficiariesT } = useTranslation('beneficiaries'); + + const { t: beneficiariesMiscT } = useTranslation('beneficiariesMisc'); + + const { t: miscellaneousT } = useTranslation('miscellaneous'); + + const { + beneficiaries: beneficiariesConfig, + treatDualElligibleDifferent: treatDualElligibleDifferentConfig, + excludeCertainCharacteristics: excludeCertainCharacteristicsConfig + } = usePlanTranslation('beneficiaries'); + const { modelID } = useParams<{ modelID: string }>(); const formikRef = useRef>( @@ -107,15 +119,6 @@ const BeneficiaryIdentification = () => { }); }; - const mappedBeneficiariesType = Object.keys(BeneficiariesType) - .sort(sortOtherEnum) - .map(key => ({ - value: key, - label: translateBeneficiariesType(key), - subLabel: - key === BeneficiariesType.DISEASE_SPECIFIC ? t('diseaseSubLabel') : null - })); - const initialValues: BeneficiaryIdentificationFormType = { __typename: 'PlanBeneficiaries', id: id ?? '', @@ -140,18 +143,18 @@ const BeneficiaryIdentification = () => { - {h('home')} + {miscellaneousT('home')} - {h('tasklistBreadcrumb')} + {miscellaneousT('tasklistBreadcrumb')} - {t('breadcrumb')} + {beneficiariesMiscT('breadcrumb')} - {t('heading')} + {beneficiariesMiscT('heading')}

    { indexZero {modelName} indexTwo

    +

    - {h('helpText')} + {miscellaneousT('helpText')}

    @@ -185,25 +189,27 @@ const BeneficiaryIdentification = () => { values } = formikProps; const flatErrors = flattenErrors(errors); + return ( <> - {Object.keys(errors).length > 0 && ( + {getKeys(errors).length > 0 && ( - {Object.keys(flatErrors).map(key => { + {getKeys(flatErrors).map(key => { return ( ); })} )} + @@ -224,8 +230,9 @@ const BeneficiaryIdentification = () => { htmlFor="beneficiaries-beneficiaries" id="label-beneficiaries-beneficiaries" > - {t('beneficiaries')} + {beneficiariesT('beneficiaries.label')} + {flatErrors.beneficiaries} @@ -235,8 +242,13 @@ const BeneficiaryIdentification = () => { id="beneficiaries-beneficiaries" name="beneficiaries" ariaLabel="label-beneficiaries-beneficiaries" - options={mappedBeneficiariesType} - selectedLabel={t('selectedGroup')} + options={composeMultiSelectOptions( + beneficiariesConfig.options, + beneficiariesConfig.optionsLabels + )} + selectedLabel={beneficiariesT( + 'beneficiaries.multiSelectLabel' + )} onChange={(value: string[] | []) => { setFieldValue('beneficiaries', value); }} @@ -254,11 +266,13 @@ const BeneficiaryIdentification = () => { htmlFor="beneficiaries-other" className="text-normal" > - {t('beneficiariesOther')} + {beneficiariesT('beneficiariesOther.label')} + {flatErrors.beneficiariesOther} + { BeneficiariesType.NA ) && ( - {t('beneficiariesNA')} + {beneficiariesMiscT('beneficiariesNA')} )} @@ -289,17 +303,23 @@ const BeneficiaryIdentification = () => { className="margin-y-4 margin-bottom-8" > + {flatErrors.treatDualElligibleDifferent} +
    { htmlFor="beneficiaries-dual-eligibility-how" className="text-normal" > - {h('howSo')} + {beneficiariesT( + 'treatDualElligibleDifferentHow.label' + )} + {flatErrors.treatDualElligibleDifferentHow} + { /> )} + { ); }} /> + { }} />
    + { className="margin-y-4 margin-bottom-8" > + {flatErrors.excludeCertainCharacteristics} +
    { htmlFor="beneficiaries-exclude-criteria" className="text-normal" > - {t('excludedNestedQuestion')} + {beneficiariesT( + 'excludeCertainCharacteristicsCriteria.label' + )} + { flatErrors.excludeCertainCharacteristicsCriteria } + { as={Radio} id="beneficiaries-exclude-no" name="excludeCertainCharacteristics" - label={h('no')} + label={ + excludeCertainCharacteristicsConfig.options.NO + } value="FALSE" checked={ values.excludeCertainCharacteristics === @@ -464,11 +507,14 @@ const BeneficiaryIdentification = () => { ); }} /> + { }} />
    + {
    +
    + {id && ( { ); }} + ); diff --git a/src/views/ModelPlan/TaskList/Beneficiaries/Frequency/index.tsx b/src/views/ModelPlan/TaskList/Beneficiaries/Frequency/index.tsx index e57ce51b19..70b9010b6c 100644 --- a/src/views/ModelPlan/TaskList/Beneficiaries/Frequency/index.tsx +++ b/src/views/ModelPlan/TaskList/Beneficiaries/Frequency/index.tsx @@ -27,6 +27,7 @@ import { ErrorAlert, ErrorAlertMessage } from 'components/shared/ErrorAlert'; import FieldErrorMsg from 'components/shared/FieldErrorMsg'; import FieldGroup from 'components/shared/FieldGroup'; import TextAreaField from 'components/shared/TextAreaField'; +import usePlanTranslation from 'hooks/usePlanTranslation'; import useScrollElement from 'hooks/useScrollElement'; import getFrequency from 'queries/Beneficiaries/getFrequency'; import { @@ -36,20 +37,25 @@ import { } from 'queries/Beneficiaries/types/GetFrequency'; import { UpdateModelPlanBeneficiariesVariables } from 'queries/Beneficiaries/types/UpdateModelPlanBeneficiaries'; import UpdateModelPlanBeneficiaries from 'queries/Beneficiaries/UpdateModelPlanBeneficiaries'; -import { FrequencyType, OverlapType } from 'types/graphql-global-types'; +import { FrequencyType } from 'types/graphql-global-types'; +import { getKeys } from 'types/translation'; import flattenErrors from 'utils/flattenErrors'; import { dirtyInput } from 'utils/formDiff'; -import { - sortOtherEnum, - translateFrequencyType, - translateOverlapType -} from 'utils/modelPlan'; import sanitizeStatus from 'utils/status'; import { NotFoundPartial } from 'views/NotFound'; const Frequency = () => { - const { t } = useTranslation('beneficiaries'); - const { t: h } = useTranslation('draftModelPlan'); + const { t: beneficiariesT } = useTranslation('beneficiaries'); + + const { t: beneficiariesMiscT } = useTranslation('beneficiariesMisc'); + + const { t: miscellaneousT } = useTranslation('miscellaneous'); + + const { + beneficiarySelectionFrequency: beneficiarySelectionFrequencyConfig, + beneficiaryOverlap: beneficiaryOverlapConfig + } = usePlanTranslation('beneficiaries'); + const { modelID } = useParams<{ modelID: string }>(); // Omitting readyForReviewBy and readyForReviewDts from initialValues and getting submitted through Formik @@ -156,18 +162,18 @@ const Frequency = () => { - {h('home')} + {miscellaneousT('home')} - {h('tasklistBreadcrumb')} + {miscellaneousT('tasklistBreadcrumb')} - {t('breadcrumb')} + {beneficiariesMiscT('breadcrumb')} - {t('heading')} + {beneficiariesMiscT('heading')}

    { indexZero {modelName} indexTwo

    +

    - {h('helpText')} + {miscellaneousT('helpText')}

    @@ -201,19 +208,20 @@ const Frequency = () => { values } = formikProps; const flatErrors = flattenErrors(errors); + return ( <> - {Object.keys(errors).length > 0 && ( + {getKeys(errors).length > 0 && ( - {Object.keys(flatErrors).map(key => { + {getKeys(flatErrors).map(key => { return ( ); @@ -235,59 +243,73 @@ const Frequency = () => { error={!!flatErrors.beneficiarySelectionFrequency} > + {flatErrors.beneficiarySelectionFrequency} +
    - {Object.keys(FrequencyType) - .sort(sortOtherEnum) - .map(key => ( - - { - setFieldValue( - 'beneficiarySelectionFrequency', - key - ); - }} - /> - {key === 'OTHER' && - values.beneficiarySelectionFrequency === - key && ( -
    - - - { - flatErrors.beneficiarySelectionFrequencyOther - } - - -
    - )} -
    - ))} + {getKeys( + beneficiarySelectionFrequencyConfig.options + ).map(key => ( + + { + setFieldValue( + 'beneficiarySelectionFrequency', + key + ); + }} + /> + + {key === FrequencyType.OTHER && + values.beneficiarySelectionFrequency === + key && ( +
    + + + + { + flatErrors.beneficiarySelectionFrequencyOther + } + + + +
    + )} +
    + ))}
    + { error={!!flatErrors.beneficiaryOverlap} > {itSolutionsStarted && ( @@ -316,16 +338,16 @@ const Frequency = () => { {flatErrors.beneficiaryOverlap} +
    - {Object.keys(OverlapType) - .sort(sortOtherEnum) - .map(key => ( + {getKeys(beneficiaryOverlapConfig.options).map( + key => ( { @@ -333,8 +355,10 @@ const Frequency = () => { }} /> - ))} + ) + )}
    + { htmlFor="beneficiaries-precedence-rules" className="maxw-none" > - {t('benficiaryPrecedence')} + {beneficiariesT('precedenceRules.label')} +

    - {t('benficiaryPrecedenceExtra')} + {beneficiariesT('precedenceRules.sublabel')}

    + {flatErrors.precedenceRules} + { { handleFormSubmit('back'); }} > - {h('back')} + {miscellaneousT('back')} +
    + + {id && ( { ); }} + ); 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 ae2522b621..e6a1954f9c 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 @@ -181,7 +181,7 @@ exports[`Model Plan Beneficiaries matches snapshot 1`] = ` @@ -199,7 +199,7 @@ exports[`Model Plan Beneficiaries matches snapshot 1`] = ` @@ -217,7 +217,7 @@ exports[`Model Plan Beneficiaries matches snapshot 1`] = ` @@ -235,7 +235,7 @@ exports[`Model Plan Beneficiaries matches snapshot 1`] = ` diff --git a/src/views/ModelPlan/TaskList/Beneficiaries/PeopleImpact/index.tsx b/src/views/ModelPlan/TaskList/Beneficiaries/PeopleImpact/index.tsx index b728fd671a..f3b6dc821d 100644 --- a/src/views/ModelPlan/TaskList/Beneficiaries/PeopleImpact/index.tsx +++ b/src/views/ModelPlan/TaskList/Beneficiaries/PeopleImpact/index.tsx @@ -28,6 +28,7 @@ import FieldErrorMsg from 'components/shared/FieldErrorMsg'; import FieldGroup from 'components/shared/FieldGroup'; import MultiSelect from 'components/shared/MultiSelect'; import TextField from 'components/shared/TextField'; +import usePlanTranslation from 'hooks/usePlanTranslation'; import getPeopleImpacted from 'queries/Beneficiaries/getPeopleImpacted'; import { GetPeopleImpacted as PeopleImpactedType, @@ -36,22 +37,25 @@ import { } from 'queries/Beneficiaries/types/GetPeopleImpacted'; import { UpdateModelPlanBeneficiariesVariables } from 'queries/Beneficiaries/types/UpdateModelPlanBeneficiaries'; import UpdateModelPlanBeneficiaries from 'queries/Beneficiaries/UpdateModelPlanBeneficiaries'; -import { - ConfidenceType, - SelectionMethodType -} from 'types/graphql-global-types'; +import { SelectionMethodType } from 'types/graphql-global-types'; +import { getKeys } from 'types/translation'; import flattenErrors from 'utils/flattenErrors'; import { dirtyInput } from 'utils/formDiff'; -import { - sortOtherEnum, - translateConfidenceType, - translateSelectionMethodType -} from 'utils/modelPlan'; +import { composeMultiSelectOptions } from 'utils/modelPlan'; import { NotFoundPartial } from 'views/NotFound'; const PeopleImpact = () => { - const { t } = useTranslation('beneficiaries'); - const { t: h } = useTranslation('draftModelPlan'); + const { t: beneficiariesT } = useTranslation('beneficiaries'); + + const { t: beneficiariesMiscT } = useTranslation('beneficiariesMisc'); + + const { t: miscellaneousT } = useTranslation('miscellaneous'); + + const { + estimateConfidence: estimateConfidenceConfig, + beneficiarySelectionMethod: beneficiarySelectionMethodConfig + } = usePlanTranslation('beneficiaries'); + const { modelID } = useParams<{ modelID: string }>(); const formikRef = useRef>(null); @@ -110,13 +114,6 @@ const PeopleImpact = () => { }); }; - const mappedSelectionMethodType = Object.keys(SelectionMethodType) - .sort(sortOtherEnum) - .map(key => ({ - value: key, - label: translateSelectionMethodType(key) - })); - const initialValues: PeopleImpactedFormType = { __typename: 'PlanBeneficiaries', id: id ?? '', @@ -137,18 +134,18 @@ const PeopleImpact = () => { - {h('home')} + {miscellaneousT('home')} - {h('tasklistBreadcrumb')} + {miscellaneousT('tasklistBreadcrumb')} - {t('breadcrumb')} + {beneficiariesMiscT('breadcrumb')} - {t('heading')} + {beneficiariesMiscT('heading')}

    { indexZero {modelName} indexTwo

    +

    - {h('helpText')} + {miscellaneousT('helpText')}

    @@ -182,13 +180,14 @@ const PeopleImpact = () => { values } = formikProps; const flatErrors = flattenErrors(errors); + return ( <> {Object.keys(errors).length > 0 && ( {Object.keys(flatErrors).map(key => { return ( @@ -217,11 +216,13 @@ const PeopleImpact = () => { error={!!flatErrors.numberPeopleImpacted} > + {flatErrors.numberPeopleImpacted} + { ); }} /> +
    - {t('zero')} - {t('tenThousand')} + {beneficiariesMiscT('zero')} + + {beneficiariesMiscT('tenThousand')}
    + + {flatErrors.numberPeopleImpacted} + { htmlFor="beneficiaries-impact-estimateConfidence" className="text-normal" > - {t('levelOfConfidence')} + {beneficiariesT('estimateConfidence.label')} + - {flatErrors.participantsCurrentlyInModels} + {flatErrors.estimateConfidence} +
    - {[ - ConfidenceType.NOT_AT_ALL, - ConfidenceType.SLIGHTLY, - ConfidenceType.FAIRLY, - ConfidenceType.COMPLETELY - ].map(key => ( - { - setFieldValue('estimateConfidence', key); - }} - /> - ))} + {getKeys(estimateConfidenceConfig.options).map( + key => ( + { + setFieldValue('estimateConfidence', key); + }} + /> + ) + )}
    + { htmlFor="beneficiaries-chooseBeneficiaries" id="label-beneficiaries-chooseBeneficiaries" > - {t('chooseBeneficiaries')} + {beneficiariesT('beneficiarySelectionMethod.label')} + {flatErrors.beneficiarySelectionMethod} @@ -328,8 +335,12 @@ const PeopleImpact = () => { id="beneficiaries-chooseBeneficiaries" name="beneficiarySelectionMethod" ariaLabel="label-beneficiaries-chooseBeneficiaries" - options={mappedSelectionMethodType} - selectedLabel={t('selectedMethods')} + options={composeMultiSelectOptions( + beneficiarySelectionMethodConfig.options + )} + selectedLabel={beneficiariesT( + 'beneficiarySelectionMethod.multiSelectLabel' + )} onChange={(value: string[] | []) => { setFieldValue( 'beneficiarySelectionMethod', @@ -352,11 +363,15 @@ const PeopleImpact = () => { htmlFor="beneficiaries-choose-beneficiaries-other" className="text-normal" > - {t('selectionMethodOther')} + {beneficiariesT( + 'beneficiarySelectionOther.label' + )} + {flatErrors.beneficiarySelectionOther} + { handleFormSubmit('back'); }} > - {h('back')} + {miscellaneousT('back')} +
    + + {id && ( { ); }} + ); 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 618789b60b..983b408243 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 @@ -122,14 +122,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > @@ -165,14 +166,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > @@ -343,14 +345,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > @@ -361,14 +364,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > diff --git a/src/views/ModelPlan/TaskList/GeneralCharacteristics/Authority/index.tsx b/src/views/ModelPlan/TaskList/GeneralCharacteristics/Authority/index.tsx index 8c24d89b1d..3c06565d5e 100644 --- a/src/views/ModelPlan/TaskList/GeneralCharacteristics/Authority/index.tsx +++ b/src/views/ModelPlan/TaskList/GeneralCharacteristics/Authority/index.tsx @@ -240,7 +240,7 @@ const Authority = () => { className="margin-y-4" > @@ -267,7 +267,7 @@ const Authority = () => { className="margin-bottom-1 text-normal" > {generalCharacteristicsT( - 'rulemakingRequiredDescription.question' + 'rulemakingRequiredDescription.label' )} @@ -301,9 +301,7 @@ const Authority = () => { render={arrayHelpers => ( <> - {generalCharacteristicsT( - 'authorityAllowances.question' - )} + {generalCharacteristicsT('authorityAllowances.label')} @@ -351,7 +349,7 @@ const Authority = () => { className="text-normal" > {generalCharacteristicsT( - 'authorityAllowancesOther.question' + 'authorityAllowancesOther.label' )} @@ -387,7 +385,7 @@ const Authority = () => { className="margin-y-4" > {flatErrors.waiversRequired} @@ -408,7 +406,7 @@ const Authority = () => { <> {generalCharacteristicsT( - 'waiversRequiredTypes.question' + 'waiversRequiredTypes.label' )} diff --git a/src/views/ModelPlan/TaskList/GeneralCharacteristics/Involvements/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/GeneralCharacteristics/Involvements/__snapshots__/index.test.tsx.snap index 94ce52da8a..198f73badb 100644 --- a/src/views/ModelPlan/TaskList/GeneralCharacteristics/Involvements/__snapshots__/index.test.tsx.snap +++ b/src/views/ModelPlan/TaskList/GeneralCharacteristics/Involvements/__snapshots__/index.test.tsx.snap @@ -122,14 +122,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > @@ -140,14 +141,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > @@ -204,14 +206,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > @@ -247,14 +250,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > @@ -311,14 +315,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > @@ -329,14 +334,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > diff --git a/src/views/ModelPlan/TaskList/GeneralCharacteristics/Involvements/index.tsx b/src/views/ModelPlan/TaskList/GeneralCharacteristics/Involvements/index.tsx index cf7f760fdc..f31b84af50 100644 --- a/src/views/ModelPlan/TaskList/GeneralCharacteristics/Involvements/index.tsx +++ b/src/views/ModelPlan/TaskList/GeneralCharacteristics/Involvements/index.tsx @@ -222,7 +222,7 @@ const Involvements = () => { > @@ -252,7 +252,7 @@ const Involvements = () => { className="margin-bottom-1 text-normal" > {generalCharacteristicsT( - 'careCoordinationInvolvedDescription.question' + 'careCoordinationInvolvedDescription.label' )} @@ -289,7 +289,7 @@ const Involvements = () => { > @@ -319,7 +319,7 @@ const Involvements = () => { className="margin-bottom-1 text-normal" > {generalCharacteristicsT( - 'additionalServicesInvolvedDescription.question' + 'additionalServicesInvolvedDescription.label' )} @@ -357,7 +357,7 @@ const Involvements = () => { > @@ -387,7 +387,7 @@ const Involvements = () => { className="margin-bottom-1 text-normal" > {generalCharacteristicsT( - 'communityPartnersInvolvedDescription.question' + 'communityPartnersInvolvedDescription.label' )} diff --git a/src/views/ModelPlan/TaskList/GeneralCharacteristics/KeyCharacteristics/index.tsx b/src/views/ModelPlan/TaskList/GeneralCharacteristics/KeyCharacteristics/index.tsx index 888a0b5064..5a76ff8ab5 100644 --- a/src/views/ModelPlan/TaskList/GeneralCharacteristics/KeyCharacteristics/index.tsx +++ b/src/views/ModelPlan/TaskList/GeneralCharacteristics/KeyCharacteristics/index.tsx @@ -246,7 +246,7 @@ const KeyCharacteristics = () => { > {generalCharacteristicsT( - 'alternativePaymentModelTypes.question' + 'alternativePaymentModelTypes.label' )} @@ -257,7 +257,7 @@ const KeyCharacteristics = () => { > {generalCharacteristicsT( - 'alternativePaymentModelTypes.hint' + 'alternativePaymentModelTypes.sublabel' )} @@ -334,7 +334,7 @@ const KeyCharacteristics = () => { htmlFor="plan-characteristics-key-characteristics" id="label-plan-characteristics-key-characteristics" > - {generalCharacteristicsT('keyCharacteristics.question')} + {generalCharacteristicsT('keyCharacteristics.label')} @@ -379,7 +379,7 @@ const KeyCharacteristics = () => {

    {generalCharacteristicsT( - 'keyCharacteristicsOther.question' + 'keyCharacteristicsOther.label' )}

    @@ -414,7 +414,7 @@ const KeyCharacteristics = () => { htmlFor="plan-characteristics-collect-bids" className="text-normal" > - {generalCharacteristicsT('collectPlanBids.question')} + {generalCharacteristicsT('collectPlanBids.label')} {itSolutionsStarted && ( @@ -457,7 +457,7 @@ const KeyCharacteristics = () => { className="text-normal" > {generalCharacteristicsT( - 'managePartCDEnrollment.question' + 'managePartCDEnrollment.label' )} @@ -500,9 +500,7 @@ const KeyCharacteristics = () => { htmlFor="plan-characteristics-contact-updated" className="text-normal" > - {generalCharacteristicsT( - 'planContractUpdated.question' - )} + {generalCharacteristicsT('planContractUpdated.label')} {itSolutionsStarted && ( diff --git a/src/views/ModelPlan/TaskList/GeneralCharacteristics/TargetsAndOptions/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/GeneralCharacteristics/TargetsAndOptions/__snapshots__/index.test.tsx.snap index c501c57500..5f0811e429 100644 --- a/src/views/ModelPlan/TaskList/GeneralCharacteristics/TargetsAndOptions/__snapshots__/index.test.tsx.snap +++ b/src/views/ModelPlan/TaskList/GeneralCharacteristics/TargetsAndOptions/__snapshots__/index.test.tsx.snap @@ -122,14 +122,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > @@ -140,14 +141,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > @@ -376,14 +378,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > @@ -394,14 +397,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > diff --git a/src/views/ModelPlan/TaskList/GeneralCharacteristics/TargetsAndOptions/index.tsx b/src/views/ModelPlan/TaskList/GeneralCharacteristics/TargetsAndOptions/index.tsx index cd2537a624..b4d96d8d91 100644 --- a/src/views/ModelPlan/TaskList/GeneralCharacteristics/TargetsAndOptions/index.tsx +++ b/src/views/ModelPlan/TaskList/GeneralCharacteristics/TargetsAndOptions/index.tsx @@ -247,7 +247,7 @@ const TargetsAndOptions = () => { className="margin-y-4 margin-bottom-8" > @@ -270,7 +270,7 @@ const TargetsAndOptions = () => { <> {generalCharacteristicsT( - 'geographiesTargetedTypes.question' + 'geographiesTargetedTypes.label' )} @@ -327,7 +327,7 @@ const TargetsAndOptions = () => { className="text-normal" > {generalCharacteristicsT( - 'geographiesTargetedTypesOther.question' + 'geographiesTargetedTypesOther.label' )} @@ -358,7 +358,7 @@ const TargetsAndOptions = () => { <> {generalCharacteristicsT( - 'geographiesTargetedAppliedTo.question' + 'geographiesTargetedAppliedTo.label' )} @@ -414,7 +414,7 @@ const TargetsAndOptions = () => { className="text-normal" > {generalCharacteristicsT( - 'geographiesTargetedAppliedToOther.question' + 'geographiesTargetedAppliedToOther.label' )} @@ -452,7 +452,7 @@ const TargetsAndOptions = () => { className="margin-y-4" > @@ -482,7 +482,7 @@ const TargetsAndOptions = () => { render={arrayHelpers => ( <> - {generalCharacteristicsT('agreementTypes.question')} + {generalCharacteristicsT('agreementTypes.label')} {itSolutionsStarted && ( @@ -497,7 +497,7 @@ const TargetsAndOptions = () => { )}

    - {generalCharacteristicsT('agreementTypes.hint')} + {generalCharacteristicsT('agreementTypes.sublabel')}

    @@ -540,7 +540,7 @@ const TargetsAndOptions = () => { className="text-normal" > {generalCharacteristicsT( - 'agreementTypesOther.question' + 'agreementTypesOther.label' )} @@ -581,13 +581,13 @@ const TargetsAndOptions = () => { className="text-normal" > {generalCharacteristicsT( - 'multiplePatricipationAgreementsNeeded.question' + 'multiplePatricipationAgreementsNeeded.label' )}

    {generalCharacteristicsT( - 'multiplePatricipationAgreementsNeeded.hint' + 'multiplePatricipationAgreementsNeeded.sublabel' )}

    diff --git a/src/views/ModelPlan/TaskList/GeneralCharacteristics/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/GeneralCharacteristics/__snapshots__/index.test.tsx.snap index 3568cbffb1..1a270d1390 100644 --- a/src/views/ModelPlan/TaskList/GeneralCharacteristics/__snapshots__/index.test.tsx.snap +++ b/src/views/ModelPlan/TaskList/GeneralCharacteristics/__snapshots__/index.test.tsx.snap @@ -122,14 +122,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > @@ -140,14 +141,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > @@ -284,14 +286,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > @@ -302,14 +305,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > @@ -337,14 +341,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > @@ -380,14 +385,15 @@ exports[`Model Plan Characteristics matches snapshot 1`] = ` > diff --git a/src/views/ModelPlan/TaskList/GeneralCharacteristics/index.tsx b/src/views/ModelPlan/TaskList/GeneralCharacteristics/index.tsx index 7eb9d283f1..f0c83a0bbc 100644 --- a/src/views/ModelPlan/TaskList/GeneralCharacteristics/index.tsx +++ b/src/views/ModelPlan/TaskList/GeneralCharacteristics/index.tsx @@ -315,7 +315,7 @@ export const CharacteristicsContent = () => { className="margin-y-4 margin-bottom-8" > {flatErrors.isNewModel} @@ -338,11 +338,11 @@ export const CharacteristicsContent = () => { htmlFor="plan-characteristics-existing-model" className="margin-bottom-1 text-normal" > - {generalCharacteristicsT('existingModel.question')} + {generalCharacteristicsT('existingModel.label')}

    - {generalCharacteristicsT('existingModel.hint')} + {generalCharacteristicsT('existingModel.sublabel')}

    @@ -390,9 +390,7 @@ export const CharacteristicsContent = () => { className="margin-y-4 margin-bottom-8" > @@ -420,12 +418,14 @@ export const CharacteristicsContent = () => { id="label-plan-characteristics-resembles-which-model" > {generalCharacteristicsT( - 'existingModelLinks.question' + 'existingModelLinks.label' )}

    - {generalCharacteristicsT('existingModelLinks.hint')} + {generalCharacteristicsT( + 'existingModelLinks.sublabel' + )}

    @@ -457,7 +457,7 @@ export const CharacteristicsContent = () => { className="text-normal" > {generalCharacteristicsT( - 'resemblesExistingModelHow.question' + 'resemblesExistingModelHow.label' )} @@ -488,9 +488,7 @@ export const CharacteristicsContent = () => { className="margin-y-4 margin-bottom-8" > @@ -517,7 +515,7 @@ export const CharacteristicsContent = () => { className="margin-bottom-1 text-normal" > {generalCharacteristicsT( - 'hasComponentsOrTracksDiffer.question' + 'hasComponentsOrTracksDiffer.label' )} 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 10149e312b..5dde98c102 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 @@ -125,10 +125,11 @@ exports[`Model Plan Ops Eval and Learning CCW and Qualtiy matches snapshot 1`] = >
    + ) : ( + <> + )} + { htmlFor="ops-eval-and-learning-distribute-files" className="maxw-none" > - {t('distributeFiles')} + {opsEvalAndLearningT( + 'useCcwForFileDistribiutionToParticipants.label' + )} + {flatErrors.useCcwForFileDistribiutionToParticipants} -
    - {[true, false].map(key => ( - { - setFieldValue( - 'useCcwForFileDistribiutionToParticipants', - key - ); - }} - /> - ))} -
    + + { {isQualityMeasures(dataNeededForMonitoring) && ( <> -

    {t('qualityQuestions')}

    +

    {opsEvalAndLearningMiscT('qualityQuestions')}

    { htmlFor="ops-eval-and-learning-develop-measures" className="maxw-none" > - {t('validatedQuality')} + {opsEvalAndLearningT( + 'developNewQualityMeasures.label' + )} {itSolutionsStarted && ( @@ -401,22 +403,14 @@ const CCWAndQuality = () => { {flatErrors.developNewQualityMeasures} -
    - {[true, false].map(key => ( - { - setFieldValue('developNewQualityMeasures', key); - }} - /> - ))} -
    + + { htmlFor="ops-eval-and-learning-performance-impact" className="maxw-none" > - {t('impactPayment')} + {opsEvalAndLearningT( + 'qualityPerformanceImpactsPayment.label' + )} + {flatErrors.qualityPerformanceImpactsPayment} -
    - {[true, false].map(key => ( - { - setFieldValue( - 'qualityPerformanceImpactsPayment', - key - ); - }} - /> - ))} -
    + + { handleFormSubmit('back'); }} > - {h('back')} + {miscellaneousT('back')} + + @@ -506,6 +494,7 @@ const CCWAndQuality = () => { ); }} + {data && ( { - const { t } = useTranslation('operationsEvaluationAndLearning'); - const { t: h } = useTranslation('draftModelPlan'); + const { t: opsEvalAndLearningT } = useTranslation('opsEvalAndLearning'); + + const { t: opsEvalAndLearningMiscT } = useTranslation( + 'opsEvalAndLearningMisc' + ); + const { t: miscellaneousT } = useTranslation('miscellaneous'); + + const { + dataSharingStarts: dataSharingStartsConfig, + dataSharingFrequency: dataSharingFrequencyConfig, + dataCollectionStarts: dataCollectionStartsConfig, + dataCollectionFrequency: dataCollectionFrequencyConfig, + qualityReportingStarts: qualityReportingStartsConfig + } = usePlanTranslation('opsEvalAndLearning'); + const { modelID } = useParams<{ modelID: string }>(); const formikRef = useRef>(null); @@ -185,28 +174,29 @@ const DataSharing = () => { - {h('home')} + {miscellaneousT('home')} - {h('tasklistBreadcrumb')} + {miscellaneousT('tasklistBreadcrumb')} - {t('breadcrumb')} + {opsEvalAndLearningMiscT('breadcrumb')} - {t('heading')} + {opsEvalAndLearningMiscT('heading')}

    - {h('for')} {modelName} + {miscellaneousT('for')} {modelName}

    +

    - {h('helpText')} + {miscellaneousT('helpText')}

    @@ -231,17 +221,17 @@ const DataSharing = () => { return ( <> - {Object.keys(errors).length > 0 && ( + {getKeys(errors).length > 0 && ( - {Object.keys(flatErrors).map(key => { + {getKeys(flatErrors).map(key => { return ( ); @@ -261,19 +251,25 @@ const DataSharing = () => { scrollElement="dataSharingStarts" error={!!flatErrors.dataSharingStarts} > - {t('reportingTiming')} + + {opsEvalAndLearningMiscT('reportingTiming')} + + +

    - {t('dataSharingInfo')} + {opsEvalAndLearningT('dataSharingStarts.sublabel')}

    + {flatErrors.dataSharingStarts} + { }} > - {dataSharingOptions.map(type => { + + {getKeys(dataSharingStartsConfig.options).map(type => { return ( - ); })} - {values.dataSharingStarts === 'OTHER' && ( + {values.dataSharingStarts === DataStartsType.OTHER && (
    + {flatErrors.dataSharingStartsOther} + { className="maxw-none text-normal" id="label-ops-eval-and-learning-data-sharing-frequency" > - {t('dataSharingHowOften')} + {opsEvalAndLearningT('dataSharingFrequency.label')} {flatErrors.dataSharingFrequency} + ({ - value: key, - label: translateDataFrequencyType(key) - }))} - selectedLabel={t('dataSharingHowOftenSeleted')} + options={composeMultiSelectOptions( + dataSharingFrequencyConfig.options + )} + selectedLabel={opsEvalAndLearningT( + 'dataSharingFrequency.multiSelectLabel' + )} onChange={(value: string[] | []) => { setFieldValue('dataSharingFrequency', value); }} initialValues={initialValues.dataSharingFrequency} /> + {(values?.dataSharingFrequency || []).includes( DataFrequencyType.OTHER ) && ( @@ -356,11 +358,15 @@ const DataSharing = () => { htmlFor="ops-eval-and-learning-data-sharing-frequency-other" className="text-normal" > - {h('pleaseSpecify')} + {opsEvalAndLearningT( + 'dataSharingFrequencyOther.label' + )} + {flatErrors.dataSharingFrequencyOther} + { scrollElement="dataCollectionStarts" error={!!flatErrors.dataCollectionStarts} > - {t('dataCollectionTiming')} + + {opsEvalAndLearningMiscT('dataCollectionTiming')} + + + {flatErrors.dataCollectionStarts} + { }} > - {dataSharingOptions.map(type => { + + {getKeys(dataCollectionStartsConfig.options).map(type => { return ( - ); })} - {values.dataCollectionStarts === 'OTHER' && ( + {values.dataCollectionStarts === DataStartsType.OTHER && (
    + {flatErrors.dataCollectionStartsOther} + { id="label-ops-eval-and-learning-data-collection-frequency" className="maxw-none text-normal" > - {t('dataCollectionHowOften')} + {opsEvalAndLearningT('dataCollectionFrequency.label')} {flatErrors.dataCollectionFrequency} + ({ - value: key, - label: translateDataFrequencyType(key) - }))} - selectedLabel={t('dataSharingHowOftenSeleted')} + options={composeMultiSelectOptions( + dataCollectionFrequencyConfig.options + )} + selectedLabel={opsEvalAndLearningT( + 'dataCollectionFrequency.multiSelectLabel' + )} onChange={(value: string[] | []) => { setFieldValue('dataCollectionFrequency', value); }} initialValues={initialValues.dataCollectionFrequency} /> + {(values?.dataCollectionFrequency || []).includes( DataFrequencyType.OTHER ) && ( @@ -474,11 +493,15 @@ const DataSharing = () => { htmlFor="ops-eval-and-learning-data-collection-frequency-other" className="text-normal" > - {h('pleaseSpecify')} + {opsEvalAndLearningT( + 'dataCollectionFrequencyOther.label' + )} + {flatErrors.dataCollectionFrequencyOther} + { htmlFor="ops-eval-and-learning-data-reporting-starts" className="margin-top-2" > - {t('dataReporting')} + {opsEvalAndLearningT('qualityReportingStarts.label')} + {flatErrors.qualityReportingStarts} + { }} > - {dataSharingOptions.map(type => { - return ( - - ); - })} + + {getKeys(qualityReportingStartsConfig.options).map( + type => { + return ( + + ); + } + )} - {values.qualityReportingStarts === 'OTHER' && ( + {values.qualityReportingStarts === DataStartsType.OTHER && (
    + {flatErrors.qualityReportingStartsOther} + { handleFormSubmit('back'); }} > - {h('back')} + {miscellaneousT('back')} +
    + @@ -596,6 +631,7 @@ const DataSharing = () => { ); }} + {data && ( - What type of evaluation approach are you considering? Select all that apply. - +
    @@ -240,11 +243,14 @@ exports[`Model Plan Ops Eval and Learning matches snapshot 1`] = `
    - Is Chronic Conditions Warehouse (CCW) involved in the model? - +

    @@ -295,16 +301,16 @@ exports[`Model Plan Ops Eval and Learning matches snapshot 1`] = ` >

    - {h('for')} {modelName} + {miscellaneousT('for')} {modelName}

    +

    - {h('helpText')} + {miscellaneousT('helpText')}

    @@ -230,17 +239,17 @@ const Evaluation = () => { return ( <> - {Object.keys(errors).length > 0 && ( + {getKeys(errors).length > 0 && ( - {Object.keys(flatErrors).map(key => { + {getKeys(flatErrors).map(key => { return ( ); @@ -264,9 +273,13 @@ const Evaluation = () => { name="evaluationApproaches" render={arrayHelpers => ( <> - - {t('evaluationApproach')} - + {itSolutionsStarted && ( { {flatErrors.evaluationApproaches} - {Object.keys(EvaluationApproachType) - .sort(sortOtherEnum) - .map(type => { + {getKeys(evaluationApproachesConfig.options).map( + type => { return ( { id={`ops-eval-and-learning-evaluation-approach-${type}`} data-testid={`ops-eval-and-learning-evaluation-approach-${type}`} name="evaluationApproaches" - label={translateEvaluationApproachType( - type - )} + label={ + evaluationApproachesConfig.options[type] + } value={type} checked={values?.evaluationApproaches.includes( - type as EvaluationApproachType + type )} onChange={( e: React.ChangeEvent @@ -314,20 +326,25 @@ const Evaluation = () => { } }} /> + {type === EvaluationApproachType.OTHER && values.evaluationApproaches.includes( type ) && ( -
    +
    + {flatErrors.evaluationApproachOther} + { )} ); - })} + } + )} { name="ccmInvolvment" render={arrayHelpers => ( <> - {t('ccw')} + -

    {t('ccwInfo')}

    +

    + {opsEvalAndLearningT('ccmInvolvment.sublabel')} +

    {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) && ( -
    - - - {flatErrors.ccmInvolvmentOther} - - -
    - )} -
    - ); - })} + {getKeys(ccmInvolvmentConfig.options).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) && ( +
    + + + + {flatErrors.ccmInvolvmentOther} + + + +
    + )} +
    + ); + })} + { id="label-ops-eval-and-learning-data-needed" className="maxw-none" > - {t('dataNeeded')} + {opsEvalAndLearningT('dataNeededForMonitoring.label')} + {itSolutionsStarted && ( { )}

    - {t('dataNeededInfo')} + {opsEvalAndLearningT('dataNeededForMonitoring.sublabel')}

    {flatErrors.dataNeededForMonitoring} + { setFieldValue('dataNeededForMonitoring', value); }} initialValues={initialValues.dataNeededForMonitoring} /> + {(values?.dataNeededForMonitoring || []).includes( DataForMonitoringType.OTHER ) && ( @@ -473,11 +504,15 @@ const Evaluation = () => { htmlFor="ops-eval-and-learning-data-needed-other" className="text-normal" > - {t('dataNeededOther')} + {opsEvalAndLearningT( + 'dataNeededForMonitoringOther.label' + )} + {flatErrors.dataNeededForMonitoringOther} + { id="label-ops-eval-and-learning-data-to-send" className="maxw-none" > - {t('dataToSend')} + {opsEvalAndLearningT('dataToSendParticicipants.label')} + {itSolutionsStarted && ( { {flatErrors.dataToSendParticicipants} + { setFieldValue('dataToSendParticicipants', value); }} initialValues={initialValues.dataToSendParticicipants} /> + {(values?.dataToSendParticicipants || []).includes( DataToSendParticipantsType.OTHER_MIPS_DATA ) && ( @@ -543,11 +582,15 @@ const Evaluation = () => { htmlFor="ops-eval-and-learning-data-to-send-other" className="text-normal" > - {t('dataToSendOther')} + {opsEvalAndLearningT( + 'dataToSendParticicipantsOther.label' + )} + - {flatErrors.dataToSendParticicipantsgOther} + {flatErrors.dataToSendParticicipantsOther} + { htmlFor="ops-eval-and-learning-share-cclf-data" className="maxw-none" > - {t('claimLineFeed')} + {opsEvalAndLearningT('shareCclfData.label')} {flatErrors.shareCclfData} -
    - {[true, false].map(key => ( - { - setFieldValue('shareCclfData', key); - }} - /> - ))} -
    + + { handleFormSubmit('back'); }} > - {h('back')} + {miscellaneousT('back')} +
    + @@ -639,6 +676,7 @@ const Evaluation = () => { ); }} + {data && (
    + ) : ( + <> + )} + { className="margin-y-4 margin-bottom-8" > +

    - {t('participantInformationInfo')} + {opsEvalAndLearningT('captureParticipantInfo.sublabel')}

    + {flatErrors.captureParticipantInfo} -
    - { - setFieldValue('captureParticipantInfo', true); - }} - /> - { - setFieldValue('captureParticipantInfo', false); - }} - /> -
    + + { /> -

    {t('icdHeading')}

    +

    {opsEvalAndLearningMiscT('icdHeading')}

    - {t('icdSubheading')} + {opsEvalAndLearningMiscT('icdSubheading')}

    { error={!!flatErrors.icdOwner} > + {flatErrors.icdOwner} + { fieldName="draftIcdDueDate" id="ops-eval-and-learning-icd-due-date" className="margin-top-6" - label={t('draftIDC')} + label={opsEvalAndLearningT('draftIcdDueDate.label')} placeHolder handleOnBlur={handleOnBlur} formikValue={values.draftIcdDueDate} @@ -381,19 +381,22 @@ const IDDOC = () => { handleFormSubmit('back'); }} > - {h('back')} + {miscellaneousT('back')} +
    + @@ -411,6 +414,7 @@ const IDDOC = () => { ); }} + {data && ( @@ -313,9 +313,7 @@ export const Coordination = () => { render={arrayHelpers => ( <> - {participantsAndProvidersT( - 'participantsIds.question' - )} + {participantsAndProvidersT('participantsIds.label')} {itSolutionsStarted && ( @@ -330,7 +328,9 @@ export const Coordination = () => { )}

    - {participantsAndProvidersT('participantsIds.hint')} + {participantsAndProvidersT( + 'participantsIds.sublabel' + )}

    @@ -371,7 +371,7 @@ export const Coordination = () => { className="text-normal margin-top-1" > {participantsAndProvidersT( - 'participantsIdsOther.question' + 'participantsIdsOther.label' )} diff --git a/src/views/ModelPlan/TaskList/ParticipantsAndProviders/ParticipantOptions/index.tsx b/src/views/ModelPlan/TaskList/ParticipantsAndProviders/ParticipantOptions/index.tsx index 7059bb4b54..6087195559 100644 --- a/src/views/ModelPlan/TaskList/ParticipantsAndProviders/ParticipantOptions/index.tsx +++ b/src/views/ModelPlan/TaskList/ParticipantsAndProviders/ParticipantOptions/index.tsx @@ -240,13 +240,13 @@ export const ParticipantOptions = () => { >

    {participantsAndProvidersT( - 'expectedNumberOfParticipants.hint' + 'expectedNumberOfParticipants.sublabel' )}

    @@ -310,7 +310,7 @@ export const ParticipantOptions = () => { htmlFor="participants-and-providers-current-participants" className="text-normal" > - {participantsAndProvidersT('estimateConfidence.question')} + {participantsAndProvidersT('estimateConfidence.label')} @@ -345,7 +345,7 @@ export const ParticipantOptions = () => { error={!!flatErrors.recruitmentMethod} > {itSolutionsStarted && ( @@ -392,7 +392,7 @@ export const ParticipantOptions = () => { className="text-normal" > {participantsAndProvidersT( - 'recruitmentOther.question' + 'recruitmentOther.label' )} @@ -426,7 +426,7 @@ export const ParticipantOptions = () => { htmlFor="participants-and-providers-selection-method" id="label-participants-and-providers-selection-method" > - {participantsAndProvidersT('selectionMethod.question')} + {participantsAndProvidersT('selectionMethod.label')} {itSolutionsStarted && ( @@ -470,7 +470,7 @@ export const ParticipantOptions = () => { htmlFor="participants-and-providers-selection-other" className="text-normal" > - {participantsAndProvidersT('selectionOther.question')} + {participantsAndProvidersT('selectionOther.label')} diff --git a/src/views/ModelPlan/TaskList/ParticipantsAndProviders/ProviderOptions/index.tsx b/src/views/ModelPlan/TaskList/ParticipantsAndProviders/ProviderOptions/index.tsx index 8ddf46d607..7da893eaf1 100644 --- a/src/views/ModelPlan/TaskList/ParticipantsAndProviders/ProviderOptions/index.tsx +++ b/src/views/ModelPlan/TaskList/ParticipantsAndProviders/ProviderOptions/index.tsx @@ -266,7 +266,7 @@ export const ProviderOptions = () => { > @@ -300,7 +300,7 @@ export const ProviderOptions = () => { className="text-normal" > {participantsAndProvidersT( - 'providerAdditionFrequencyOther.question' + 'providerAdditionFrequencyOther.label' )} @@ -337,11 +337,11 @@ export const ProviderOptions = () => { htmlFor="participants-and-providers-provider-add-method" id="label-participants-and-providers-provider-add-method" > - {participantsAndProvidersT('providerAddMethod.question')} + {participantsAndProvidersT('providerAddMethod.label')}

    - {participantsAndProvidersT('providerAddMethod.hint')} + {participantsAndProvidersT('providerAddMethod.sublabel')}

    @@ -377,7 +377,7 @@ export const ProviderOptions = () => { className="text-normal" > {participantsAndProvidersT( - 'providerAddMethodOther.question' + 'providerAddMethodOther.label' )} @@ -408,13 +408,13 @@ export const ProviderOptions = () => { <> {participantsAndProvidersT( - 'providerLeaveMethod.question' + 'providerLeaveMethod.label' )}

    {participantsAndProvidersT( - 'providerLeaveMethod.hint' + 'providerLeaveMethod.sublabel' )}

    @@ -459,7 +459,7 @@ export const ProviderOptions = () => { className="text-normal" > {participantsAndProvidersT( - 'providerLeaveMethodOther.question' + 'providerLeaveMethodOther.label' )} @@ -494,7 +494,7 @@ export const ProviderOptions = () => { className="margin-y-4 margin-bottom-8" > {itSolutionsStarted && ( @@ -540,7 +540,7 @@ export const ProviderOptions = () => { className="text-normal margin-top-4" > {participantsAndProvidersT( - 'providerOverlapHierarchy.question' + 'providerOverlapHierarchy.label' )} diff --git a/src/views/ModelPlan/TaskList/ParticipantsAndProviders/__snapshots__/index.test.tsx.snap b/src/views/ModelPlan/TaskList/ParticipantsAndProviders/__snapshots__/index.test.tsx.snap index 259e916394..7f2874d478 100644 --- a/src/views/ModelPlan/TaskList/ParticipantsAndProviders/__snapshots__/index.test.tsx.snap +++ b/src/views/ModelPlan/TaskList/ParticipantsAndProviders/__snapshots__/index.test.tsx.snap @@ -472,14 +472,15 @@ exports[`Model Plan Participants and Providers matches snapshot 1`] = ` > @@ -490,14 +491,15 @@ exports[`Model Plan Participants and Providers matches snapshot 1`] = ` > diff --git a/src/views/ModelPlan/TaskList/ParticipantsAndProviders/index.tsx b/src/views/ModelPlan/TaskList/ParticipantsAndProviders/index.tsx index 5493d8b2b9..46549f6651 100644 --- a/src/views/ModelPlan/TaskList/ParticipantsAndProviders/index.tsx +++ b/src/views/ModelPlan/TaskList/ParticipantsAndProviders/index.tsx @@ -234,7 +234,7 @@ export const ParticipantsAndProvidersContent = () => { htmlFor="participants-and-providers-participants" id="label-participants-and-providers-participants" > - {participantsAndProvidersT('participants.question')} + {participantsAndProvidersT('participants.label')} @@ -286,7 +286,7 @@ export const ParticipantsAndProvidersContent = () => { className="text-normal" > {participantsAndProvidersT( - 'medicareProviderType.question' + 'medicareProviderType.label' )} @@ -314,7 +314,7 @@ export const ParticipantsAndProvidersContent = () => { className="text-normal" > {participantsAndProvidersT( - 'statesEngagement.question' + 'statesEngagement.label' )} @@ -342,7 +342,7 @@ export const ParticipantsAndProvidersContent = () => { className="text-normal" > {participantsAndProvidersT( - 'participantsOther.question' + 'participantsOther.label' )} @@ -371,13 +371,13 @@ export const ParticipantsAndProvidersContent = () => { >

    {participantsAndProvidersT( - 'participantsCurrentlyInModels.hint' + 'participantsCurrentlyInModels.sublabel' )}

    @@ -407,13 +407,13 @@ export const ParticipantsAndProvidersContent = () => { >

    {participantsAndProvidersT( - 'modelApplicationLevel.hint' + 'modelApplicationLevel.sublabel' )}