Skip to content

Issue/1815#1929

Open
MaryamMehd wants to merge 4 commits into
mainfrom
issue/1815
Open

Issue/1815#1929
MaryamMehd wants to merge 4 commits into
mainfrom
issue/1815

Conversation

@MaryamMehd
Copy link
Copy Markdown
Collaborator

No description provided.

MARYAMMEHDIZ and others added 4 commits May 1, 2026 16:52
… informative messages

Previously, when the pre-population service could not retrieve data from the FHIR server
(e.g. resource type not supported, permission denied, or no matching data), the failure was
either completely silent (playground) or only shown as a vague "view console" message gated
behind developer mode. Clinicians had no way to know why fields were left blank.

Changes:
- Add formatPopulateIssuesForUser() utility that converts an OperationOutcome into plain-English
  messages distinguishing between server data retrieval failures (not-found) and expression
  evaluation failures (invalid), so clinicians understand the cause without reading console output
- PrePopulateMenuItem: add persistent warning snackbar for both total failure and partial
  populate (issues present); previously showed nothing in either case
- usePopulate: show the formatted issue message to all users regardless of showDeveloperMessages
  config; previously clinicians in non-developer mode saw no feedback on partial failure
- RepopulateAction: replace generic "view console for details" with the same formatted message
- Console warnings are preserved in all paths so developers retain full diagnostic detail

Relates to issue #1815

Made-with: Cursor
…o match test contract

- When showDeveloperMessages is true (developer mode): keep the existing
  'View console for details' snackbar so existing tests continue to pass
- When showDeveloperMessages is false (clinical users): show the new
  user-friendly formatted message from formatPopulateIssuesForUser
- Restore console.warn(issues) without prefix to match test spy expectations

Co-authored-by: Cursor <cursoragent@cursor.com>
…nline warnings

Implements per-field pre-population failure indicators so clinicians can see at a
glance exactly which fields were not pre-populated, rather than only receiving a
general snackbar message.

Changes:
- sdc-populate: add optional linkId parameter to createInvalidWarningIssue() and
  record it in OperationOutcomeIssue.expression so consumers can map issues back to
  specific questionnaire items; pass the linkId at both evaluateExpressions call sites
  where it is available in scope (initialExpressions and itemPopulationContexts loops)
- smart-forms-renderer: add prepopulationWarningLinkIds (Set<string>) to RendererConfig
  and rendererConfigStore; ItemFieldGrid reads the set and renders an amber
  'This field could not be pre-populated.' caption below any field whose linkId is in
  the set
- smart-forms-app: add extractWarningLinkIds() utility that collects linkIds from
  OperationOutcome.issue[].expression for invalid-coded issues; wire it into
  PrePopulateMenuItem, usePopulate, and RepopulateAction so the renderer store is
  updated with affected linkIds after each pre/re-population, and cleared when
  population succeeds without issues

Relates to issue #1815

Co-authored-by: Cursor <cursoragent@cursor.com>
…n rendererConfigStore in usePopulate

- Import statement for extractWarningLinkIds and formatPopulateIssuesForUser collapsed to single line
- rendererConfigStore?.getState() uses optional chaining so tests that mock @aehrc/smart-forms-renderer without rendererConfigStore do not throw before reaching enqueueSnackbar and console.warn
- Inline .getState() chain in RepopulateAction to satisfy prettier

Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants