Skip to content

feat: data-source-ui Atlas3 plugin - Description page - #3212

Open
ohdsi-trex wants to merge 1 commit into
developfrom
trex/data-source-ui-plugin-pr
Open

feat: data-source-ui Atlas3 plugin - Description page#3212
ohdsi-trex wants to merge 1 commit into
developfrom
trex/data-source-ui-plugin-pr

Conversation

@ohdsi-trex

Copy link
Copy Markdown
Collaborator

Adds the data-source-ui single-spa micro-frontend as an Atlas3 plugin. Implements the Description page at /datasources/:id. Closes #3106.

Copilot AI balanced review requested due to automatic review settings August 26, 2026 07:48

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Introduces a Vue single-spa data-source plugin for Atlas3, but key routing, deployment, API, navigation, and file-list requirements remain incomplete.

Changes:

  • Adds Vue/Vuetify plugin scaffolding and SystemJS build configuration.
  • Adds a basic data-source description view with placeholder sections.
  • Registers the plugin and documents implementation plans.

Reviewed changes

Copilot reviewed 15 out of 16 changed files in this pull request and generated 7 comments.

Show a summary per file
File Description
plugins/ui/apps/data-source-ui/vite.config.atlas.ts Configures the SystemJS build.
plugins/ui/apps/data-source-ui/tsconfig.json Adds TypeScript settings.
plugins/ui/apps/data-source-ui/src/views/ResourcesPlaceholder.vue Adds a resources placeholder.
plugins/ui/apps/data-source-ui/src/views/DataSourceDescription.vue Implements the initial detail view.
plugins/ui/apps/data-source-ui/src/views/AccessPlaceholder.vue Adds an access placeholder.
plugins/ui/apps/data-source-ui/src/router/index.ts Defines local data-source routes.
plugins/ui/apps/data-source-ui/src/main.ts Exposes single-spa lifecycles.
plugins/ui/apps/data-source-ui/src/components/.gitkeep Preserves the components directory.
plugins/ui/apps/data-source-ui/src/App.vue Renders the router view.
plugins/ui/apps/data-source-ui/src/api/datasource.ts Adds the data-source API request.
plugins/ui/apps/data-source-ui/PLAN.md Documents the intended architecture.
plugins/ui/apps/data-source-ui/package.json Defines package dependencies and scripts.
plugins/ui/apps/data-source-ui/index.html Adds the development entry page.
plugins/atlas/plugins.standalone.json Registers the Atlas plugin.
plans/data-source-ui.md Adds a general implementation plan.
plans/data-source-ui-atlas3-plugin.md Adds Atlas3 integration planning.
Suppressed comments (1)

plugins/ui/apps/data-source-ui/src/api/datasource.ts:17

  • The existing dataset endpoint returns the repository's Study shape, where the displayed name and description are under studyDetail and the database field is databaseCode. Returning raw JSON as this flat DataSource means the title and description remain undefined even after correcting the endpoint. Normalize the existing response into the view model before returning it.
  return res.json()

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

"private": true,
"scripts": {
"dev": "vite",
"build": "vite build --config vite.config.atlas.ts",
Comment on lines +12 to +14
const res = await fetch(`/api/datasets/${id}`, {
headers: { 'Content-Type': 'application/json' },
credentials: 'include',
Comment on lines +21 to +25
<v-tabs v-model="activeTab" color="primary">
<v-tab value="overview">Overview</v-tab>
<v-tab value="resources">Resources</v-tab>
<v-tab value="access">Access Request</v-tab>
</v-tabs>
<v-tabs-window-item value="overview">
<v-card variant="outlined">
<v-card-text>
<p v-if="dataSource?.description" class="text-body-1 mb-4">{{ dataSource.description }}</p>

<v-tabs-window-item value="resources">
<v-card variant="outlined">
<v-card-text class="text-medium-emphasis">Resources coming soon.</v-card-text>
}
}
}
{"version": "1.0","plugins": [{"id": "pythia-plugin","name": "Pythia","version": "0.1.0","entryPoint": "pythia-plugin/index.system.js","menuItems": [],"fabMounts": [{"id": "pythia.fab","label": "Pythia \u2014 design assistant","icon": "mdi-chat-processing-outline","color": "primary","position": "bottom-right"}],"metadata": {"author": "Atlas Team","description": "Pythia \u2014 AI-assisted cohort design advisor for ATLAS v3.0"}},{"id": "results-viewer","name": "Analysis Results","version": "0.2.0","entryPoint": "results-viewer/index.system.js","menuItems": [],"metadata": {"author": "OHDSI","description": "OHDSI HADES analysis results viewer \u2014 runs OhdsiShinyModules via WebR + DuckDB-WASM in-browser"}},{"id": "strategus-plugin","name": "Strategus","version": "0.1.0","entryPoint": "strategus-plugin/index.system.js","menuItems": [],"metadata": {"author": "OHDSI","description": "Strategus Analysis Specification Builder"}},{"id": "notebook-plugin","name": "Notebooks","version": "0.1.0","entryPoint": "notebook-plugin/index.system.js","menuItems": [],"metadata": {"author": "OHDSI","description": "Create, store and run Python/R/Markdown notebooks (Pyodide/WebR)"}},{"id": "network-plugin","name": "Network","version": "0.1.0","entryPoint": "network-plugin/index.system.js","menuItems": [],"metadata": {"author": "OHDSI","description": "Federated network studies \u2014 site plugin. Loads inactive until NETWORK_* config is provided."}},{"id": "studies-plugin","name": "Studies","version": "0.1.0","entryPoint": "studies-plugin/index.system.js","menuItems": [{"id": "studies.main","name": "Studies","route": "/plugins/studies-plugin/","icon": "mdi-flask-outline","order": 40}],"metadata": {"author": "OHDSI","description": "Studies shell: Local / Network / Results"}},{"id": "patient-analytics","name": "Data Exploration","version": "2.0.0","entryPoint": "patient-analytics/index.system.js","menuItems": [{"id": "pa.main","name": "Data Exploration","route": "/plugins/patient-analytics/","icon": "mdi-account-search-outline","order": 45,"insertBefore": "cohorts"}],"metadata": {"author": "D2E","description": "Data Exploration (Patient Analytics/MRI) \u2014 visual cohort exploration against the selected data source"}},{"id": "data-source-ui","name": "Data Source","version": "0.1.0","entryPoint": "data-source-ui/index.system.js","menuItems": [{"id": "data-source-ui.main","name": "Data Source","route": "/datasources","icon": "mdi-database"}],"metadata": {"author": "OHDSI","description": "Data source description and contextual data-source pages"}}],"settings": {"enableHotReload": false,"loadTimeout": 30000,"showLoadingIndicators": true,"theme": {"enableDarkMode": false,"primaryColor": "#000080","logoUrl": "/atlas/config/d2e2.svg","logoNavigateTo": "/","accentColor": "#ff5e59","landingLogoUrl": "/atlas/config/landing-page-illustration.svg","chartColors": ["#000080","#ff5e59","#4e79a7","#76b7b2","#59a14f","#edc949","#af7aa1","#9c755f","#bab0ab","#e15759"],"treemapGradient": ["#c3cce8","#4a5fb0","#000080"]},"header": {"showNavBar": true,"showFeedbackButton": false,"showLanguageSelector": true,"showConfigButton": true,"showUserMenu": true}}}
Comment on lines +7 to +10
history: createMemoryHistory(),
routes: [
{
path: '/datasources/:id',
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.

[D2E Redesign | Data source] Individual data source page

2 participants