[WIP] Add Program Indicators/Measures DAK component - Awaiting Component Object migration#1070
[WIP] Add Program Indicators/Measures DAK component - Awaiting Component Object migration#1070
Conversation
|
dak.json should be in instance of DAK LM as defined in smart-base. this should be in requirements for application already (how it determines if a repo is a DAK) @copilot minimial validation on IDs. only what is explicitly indicated in referenced documentation. the table is markdown documentaiton in SGeX. those are fine for columns @copilot |
Understood. Proceeding with implementation using:
Starting implementation now. |
Co-authored-by: litlfred <662242+litlfred@users.noreply.github.com>
Co-authored-by: litlfred <662242+litlfred@users.noreply.github.com>
|
@ritikarawlani this is the PR we discussed |
I need to merge the latest main branch (with PR #1111) into this branch to access the new DAK Component Object architecture. The current branch is based on an older commit and doesn't have:
Could you please merge main into this branch, or should I rebase this branch on top of the latest main? Once I have access to the new model, I'll update the implementation to use |
Co-authored-by: litlfred <662242+litlfred@users.noreply.github.com>
🚀 Deployment Status: Successfully Deployed 🟢📊 Deployment InformationWorkflow: Deploy Feature Branch (🔀 Pull Request) 🌐 Preview URLs🔗 Quick Actions📊 Overall ProgressBranch: 📋 Deployment Timeline
💡 This comment is automatically updated as the deployment progresses. |
🔒 Dependency Security Check Results |
🔍 Framework Compliance ReportGenerated: 2025-10-17 01:23:33 UTC 📊 Summary
📦 Nested Layouts (6 components)
|
🔒 Security Check Report🟢 5 passed • 🟡 1 warnings Security Checks
🔍 Action Items
|
Status: Work In Progress - Requires Main Branch Merge
This PR implements initial Program Indicators/Measures DAK components for SGEX Workbench. The implementation needs to be updated to use the new Component Object architecture introduced in PR #1111 (merged to main).
Current Implementation (FSH-based - To Be Migrated)
Initial implementation includes:
ProgramIndicatorsViewer: Lists measures from
input/fsh/measures/directory, displays Titles extracted from FSH files, provides search/filter functionality, and enables navigation to individual measure editorsProgramIndicatorEditor: Uses AssetEditorLayout framework with a two-column layout showing:
Migration Required
Critical Discovery
PR #1111 introduced
ProgramIndicatorComponentwhich uses:input/indicators/directory (notinput/fsh/measures/)useDakComponent('indicators')hookThis differs significantly from the current FSH-based implementation.
Migration Tasks
See
PROGRAM_INDICATORS_MIGRATION_PLAN.mdfor complete migration guide including:Questions Needing Stakeholder Clarification
input/indicators/orinput/fsh/measures/?Components Created (Pending Migration)
ProgramIndicatorsViewer.js
input/fsh/measures/directoryMigration needed: Replace with
component.retrieveAll()from Component ObjectProgramIndicatorEditor.js
id(required, with FHIR ID pattern validation:/^[A-Za-z0-9\-\.]{1,64}$/)name(required)definition(required)numerator(required)denominator(required)disaggregation(required, stored as FSH comment)references(optional, stored as FSH comment)Migration needed: Use
component.retrieveById()andcomponent.save()instead of manual file operationsField Mapping Implementation (Current FSH-based)
idInstance: {id}nameTitle: "{name}"and* name = "{id}"definition* description = "{definition}"numeratorpopulation[numerator].descriptiondenominatorpopulation[denominator].descriptiondisaggregation// Disaggregation: {value}(FSH comment)references// References: {ids}(FSH comment)Note: This mapping may need to change to JSON schema mapping after migration.
Routing Integration
routes-config.jsonfor both componentscomponentRouteService.jsDAKDashboard.jswith navigation handler for program-indicators card/program-indicators/:user/:repo/:branch/program-indicator-editor/:user/:repo/:branch/*(currently file path, should be indicator ID)Implementation Decisions Based on Feedback
dak.json structure: Uses DAK LM
indicatorsarray (array of ProgramIndicator instances) per smart-base specification. Will be handled automatically by Component Object after migration.ID validation: Uses minimal FHIR id validation as documented:
/^[A-Za-z0-9\-\.]{1,64}$/(letters, numbers, hyphens, dots, 1-64 characters).Field mapping display: Implemented markdown-style table in editor showing how each LM field maps to FSH syntax, as clarified by stakeholder feedback.
Fields without direct FSH equivalents:
disaggregationandreferencesare stored as FSH comments for human readability while maintaining the LM data structure.Testing
Files Modified
Commits caae430 and 9a553e1 (Initial Implementation):
src/components/ProgramIndicatorsViewer.js- Viewer componentsrc/components/ProgramIndicatorsViewer.css- Viewer stylessrc/components/ProgramIndicatorEditor.js- Editor componentsrc/components/ProgramIndicatorEditor.css- Editor stylespublic/routes-config.json- Route configurationsrc/services/componentRouteService.js- Lazy loadingsrc/components/DAKDashboard.js- Navigation handlerCommit c93fbf6 (Migration Plan):
PROGRAM_INDICATORS_MIGRATION_PLAN.md- Comprehensive 10KB migration guideNext Steps (Priority Order)
PROGRAM_INDICATORS_MIGRATION_PLAN.mdExpected Benefits After Migration
Note: Route configuration file (routes-config.json) was modified to add new component entries as required for the feature to work. This implementation is marked [WIP] pending Component Object architecture migration.
Action Required: Please merge main branch (with PR #1111) into this branch to enable migration to Component Object architecture.
Fixes #1002
Original prompt
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.