-
Notifications
You must be signed in to change notification settings - Fork 2
[WIP] Add Program Indicators/Measures DAK component - Awaiting Component Object migration #1070
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
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.