#5423 - Notice of Assessment Interface Policy Table#5655
Conversation
There was a problem hiding this comment.
Pull request overview
Introduces interface-policy-specific assessment data into the NOA flow so that the “Assessed costs and need” breakdown can be rendered correctly when the interface policy applies, while also fixing a workflow data typo.
Changes:
- Updates the NOA Form.io definition to conditionally show either the existing full-time assessment breakdown or a new “Assessed costs and need” panel when the interface policy applies, including new rows driven by interface-specific workflow outputs and targeted resources.
- Extends Camunda workflow mappings (v1 and v2) and the
WorkflowData/assessment DTOs to surfacegovernmentFundingCostsand the various interface policy calculation outputs to the API. - Maps the new workflow data fields onto the NOA API response in
AssessmentControllerService, including computing an interface total assessed cost from the component interface costs.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
sources/packages/forms/src/form-definitions/noticeofassessment.json |
Adds a conditional split between the existing full-time panel and a new “Full time Interface Policy Panel” and wires the new table rows to calculatedDataInterface* and studentDataGovernmentFundingCosts fields from the NOA API. |
sources/packages/backend/workflow/src/workflow-definitions/assessment-gateway.bpmn |
Fixes the typo in the workflow mapping for totalNonEducationalCost so it uses the correct variable name in v1 workflow data. |
sources/packages/backend/workflow/src/workflow-definitions/assessment-gateway-v2.bpmn |
Updates the v2 workflow data mapping to include governmentFundingCosts in studentData while preserving all existing interface policy-related calculated outputs. |
sources/packages/backend/libs/sims-db/src/entities/student-assessment.model.ts |
Extends the WorkflowData.studentData interface to include the optional governmentFundingCosts field so it matches the workflow output. |
sources/packages/backend/apps/api/src/route-controllers/assessment/models/assessment.dto.ts |
Adds NOA output DTO fields for interface policy flags, interface cost components, total interface-assessed cost, and government funding costs with appropriate documentation. |
sources/packages/backend/apps/api/src/route-controllers/assessment/assessment.controller.service.ts |
Populates the new DTO fields from workflowData and computes the interface total assessed cost for consumption by the NOA form. |
| "collapsible": false, | ||
| "hideLabel": true, | ||
| "key": "panel2", | ||
| "customConditional": "show = data.offeringIntensity === \"Full Time\" && data.assessment?.calculatedDataInterfacePolicyApplies;", |
| { | ||
| "title": "Full time Panel", | ||
| "customClass": "formio-panel-unset", | ||
| "customClass": "pt-3", |
There was a problem hiding this comment.
Can you please help me understand the change in css class here?
There was a problem hiding this comment.
it caused a weird double line layout issue, giving it some padding make it look better
sources/packages/backend/workflow/src/workflow-definitions/assessment-gateway.bpmn
Outdated
Show resolved
Hide resolved
| 0) + | ||
| (assessment.workflowData.calculatedData | ||
| .interfaceAdditionalTransportationAmount ?? 0); | ||
| if (interfaceTotalAssessedCost > 0) { |
There was a problem hiding this comment.
Is this condition required? the total cost is subjective to interface policy being valid. Also in case if there is calculated 0 values, then not sending the property will display as not eligible. correct me if wrong.
There was a problem hiding this comment.
This condition was added because the calculatedDataInterfaceTotalAssessedCost was always being returned (even when the values were null since this is a calculated value) but your concern is correct, even a 0 should be returned (NaN/Null/Undefined should be hidden). i'll update the code
There was a problem hiding this comment.
Changed condition to IsNaN instead
There was a problem hiding this comment.
While using NaN and skipping the null check for interface fields there is one concern. one of the interface fields can be potentially null based on student situations.
Apologies if I wasn't clear on the comment outcome. It was something like this.
if (assessmentDTO.calculatedDataInterfacePolicyApplies) {
const interfaceTotalAssessedCost =
(assessment.workflowData.calculatedData.interfaceEducationCosts ?? 0) +
(assessment.workflowData.calculatedData.interfaceChildCareCosts ?? 0) +
(assessment.workflowData.calculatedData.interfaceTransportationAmount ??
0) +
(assessment.workflowData.calculatedData
.interfaceAdditionalTransportationAmount ?? 0);
assessmentDTO.interfaceTotalAssessedCost = interfaceTotalAssessedCost;
}
.../packages/backend/apps/api/src/route-controllers/assessment/assessment.controller.service.ts
Outdated
Show resolved
Hide resolved
sources/packages/backend/workflow/src/workflow-definitions/assessment-gateway-v2.bpmn
Show resolved
Hide resolved
|
Good job with NOA updates. Just minor comments and please have at least one E2E test returning the interface related properties. |
weskubo-cgi
left a comment
There was a problem hiding this comment.
Changes look good. No additional comments. One thing to keep an eye out for next time is the branch is under /features not the standard /feature.
| }); | ||
| }); | ||
|
|
||
| it("Should return interface policy properties when interface policy applies to full time application.", async () => { |
There was a problem hiding this comment.
can we call it full-time?
|
dheepak-aot
left a comment
There was a problem hiding this comment.
Thanks for making the changes. Looks good 👍



Summary
Adds new "Assessed costs and need" table in the assessment form.
Camunda
Adds new workflow data property "governmentFundingCosts" (v2 only)
Fixes typo in a workflow data property "calaulatedDataTotalNonEducationalCost" -> "calculatedDataTotalNonEducationalCost" (both v1 and v2)
Formio
Adds new conditional panel containing the interface policy values requested by the AC
Updates condition to display "Full time panel" if not interface policy
Backend
Adds new properties mapped from the assessment workflow data to be used by the formio