From 66a504c0176139a38d7333cca5bed62b52601a00 Mon Sep 17 00:00:00 2001 From: ailZhou Date: Thu, 13 Feb 2025 17:11:58 -0500 Subject: [PATCH 01/13] adjusting the substitute modal --- services/app-api/forms/defaultMeasures.ts | 17 +++++-- services/app-api/forms/pomMeasures.ts | 2 +- services/app-api/types/reports.ts | 2 +- services/app-api/utils/reportValidation.ts | 2 +- services/app-api/utils/tests/mockReport.ts | 4 +- .../report/MeasureReplacementModal.tsx | 46 ++++++++++++------- .../src/components/report/MeasureTable.tsx | 6 ++- services/ui-src/src/types/report.ts | 2 +- .../ui-src/src/utils/testing/setupJest.tsx | 2 +- 9 files changed, 55 insertions(+), 28 deletions(-) diff --git a/services/app-api/forms/defaultMeasures.ts b/services/app-api/forms/defaultMeasures.ts index e76110cb..ea2a6521 100644 --- a/services/app-api/forms/defaultMeasures.ts +++ b/services/app-api/forms/defaultMeasures.ts @@ -104,7 +104,7 @@ export const defaultMeasureTemplates = { id: "LTSS-1", title: "LTSS-1: Comprehensive Assessment and Update", type: PageType.Measure, - substitutable: true, + substitutable: MeasureTemplateName["FASI-1"], sidebar: false, elements: [ { @@ -206,7 +206,6 @@ export const defaultMeasureTemplates = { id: "FFS", title: "LTSS-1: FFS LTSS Measure Results", type: PageType.MeasureResults, - substitutable: true, sidebar: false, elements: [ { @@ -218,6 +217,16 @@ export const defaultMeasureTemplates = { type: ElementType.Header, text: "Fee-For-Service Measure Results", }, + { + type: ElementType.Accordion, + label: "Instructions", + value: + "[Optional instructional content that could support the user in completing this page]", + }, + { + type: ElementType.SubHeader, + text: "FSS LTSS Measure Details", + }, { type: ElementType.TextAreaField, label: "Which Medicaid HCBS programs are being reported? (optional)", @@ -236,7 +245,7 @@ export const defaultMeasureTemplates = { title: "LTSS-2: Comprehensive Person-Centered Plan and Update", type: PageType.Measure, sidebar: false, - substitutable: true, + substitutable: MeasureTemplateName["FASI-2"], elements: [ { type: ElementType.ButtonLink, @@ -1126,7 +1135,7 @@ export const defaultMeasureTemplates = { [MeasureTemplateName["MLTSS"]]: { id: "MLTSS", title: "MLTSS: Plan All-Cause Readmission", - type: PageType.Measure, + type: PageType.MeasureResults, sidebar: false, elements: [ { diff --git a/services/app-api/forms/pomMeasures.ts b/services/app-api/forms/pomMeasures.ts index 754fc1bd..17c890e7 100644 --- a/services/app-api/forms/pomMeasures.ts +++ b/services/app-api/forms/pomMeasures.ts @@ -20,7 +20,7 @@ export const pomMeasures: MeasureOptions[] = [ uid: "1822-2", required: true, stratified: false, - measureTemplate: MeasureTemplateName["POM-2"], + measureTemplate: [MeasureTemplateName["POM-2"]], }, ]; diff --git a/services/app-api/types/reports.ts b/services/app-api/types/reports.ts index 1e9e17f4..0eb9eac3 100644 --- a/services/app-api/types/reports.ts +++ b/services/app-api/types/reports.ts @@ -85,7 +85,7 @@ export interface MeasurePageTemplate extends FormPageTemplate { required?: boolean; stratified?: boolean; optional?: boolean; - substitutable?: boolean; + substitutable?: MeasureTemplateName; } export interface SectionTemplate { diff --git a/services/app-api/utils/reportValidation.ts b/services/app-api/utils/reportValidation.ts index c4fc12eb..d560d3db 100644 --- a/services/app-api/utils/reportValidation.ts +++ b/services/app-api/utils/reportValidation.ts @@ -178,7 +178,7 @@ const measurePageTemplateSchema = formPageTemplateSchema.shape({ required: boolean().notRequired(), stratified: boolean().notRequired(), optional: boolean().notRequired(), - substitutable: boolean().notRequired(), + substitutable: string().notRequired(), }); const measureOptionsArraySchema = array().of( diff --git a/services/app-api/utils/tests/mockReport.ts b/services/app-api/utils/tests/mockReport.ts index 1ec08d18..d1d07d10 100644 --- a/services/app-api/utils/tests/mockReport.ts +++ b/services/app-api/utils/tests/mockReport.ts @@ -45,7 +45,7 @@ export const invalidMeasureTemplatesReport = { id: "LTSS-1", title: "LTSS-1: Comprehensive Assessment and Update", // type: PageType.Measure, - substitutable: true, + substitutable: MeasureTemplateName["FASI-1"], sidebar: false, elements: [ { @@ -141,7 +141,7 @@ export const invalidRadioCheckedChildrenReport = { id: "LTSS-1", title: "LTSS-1: Comprehensive Assessment and Update", type: PageType.Measure, - substitutable: true, + substitutable: MeasureTemplateName["FASI-2"], sidebar: false, elements: [ { diff --git a/services/ui-src/src/components/report/MeasureReplacementModal.tsx b/services/ui-src/src/components/report/MeasureReplacementModal.tsx index d4acdd58..4c3739d6 100644 --- a/services/ui-src/src/components/report/MeasureReplacementModal.tsx +++ b/services/ui-src/src/components/report/MeasureReplacementModal.tsx @@ -1,29 +1,43 @@ -import { - ModalBody, - ModalFooter, - Button, - Stack, - Radio, - RadioGroup, -} from "@chakra-ui/react"; +import { ModalBody, ModalFooter, Button } from "@chakra-ui/react"; import React from "react"; +import { ChoiceList } from "@cmsgov/design-system"; + +const choices = [ + { + label: "Yes", + value: "yes", + }, + { + label: "No", + value: "no", + }, +]; export const MeasureReplacementModal = ( cmit: number | undefined, onClose: Function, onSubmit: Function ): React.ReactFragment => { + const onChangeHandler = (event: React.ChangeEvent) => { + const { name, value } = event.target; + console.log(name, value); + }; + + const measureCurr = "FASI-1"; + const measureSub = "LTSS-1"; + const label = `Do you want to substitute ${measureCurr} for ${measureSub}` + return ( - Select alternate measure type for CMIT {cmit} - {/* @ts-ignore TODO */} - {}} value={1}> - - Measure Type One - Measure Type Two - - + [hint text explaining what happens when substituting a measure] +