ATLAS

repository·master·Indexed 43 days ago

https://github.com/ohdsi/atlas

An open-source research tool for conducting scientific analyses on observational data standardized to the OMOP Common Data Model V5. ATLAS enables cohort definition, medical concept searching, patient profiling, and population-level statistical analysis. Built with HTML, CSS, and Knockout JavaScript, it requires WebAPI to function.

Tokens
9.7K
Snippets
27
Records
39
Agent score
56%

What's inside ATLAS

  1. Overview of ATLAS

    master

    ATLAS is an open source software tool designed for researchers to conduct scientific analyses on standardized observational data. It specifically works with data converted to the OMOP Common Data Model V5.

    Key capabilities include:

    • Cohort Creation: Define groups of people based on drug exposures or specific diagnoses using healthcare claims data.
    • Vocabulary Searching: Search medical concepts to identify specific conditions or drug exposures.
    • Patient Profiling: Visualize individual subject healthcare records within a specific cohort.
    • Population Effect Level Estimation: Compare two different cohorts using R packages.
  2. Setup and Technology Stack for ATLAS

    master

    ATLAS is a web-based application built using HTML, CSS, and Knockout JavaScript.

    Important Requirements:

    • Recommended Browser: Google Chrome is the recommended browser for using ATLAS.
    • Dependency: ATLAS requires WebAPI to function.

    For detailed installation and configuration instructions, refer to the official Atlas Setup Guide.

  3. Configure Atlas application settings via appConfig

    master

    The appConfig object defines the global configuration for the Atlas application. It controls API connectivity, security features, authentication providers, and UI behaviors.

    Note: When introducing new settings here, you must also update the environmental variables in the Dockerfile and the docker config-local.js to ensure they are correctly propagated during deployment.

  4. Configure the Data Sources page module

    master

    The Data Sources page is defined as a module that exports configuration properties used by the ATLAS navigation system. It provides a localized title, routing logic, navigation URL, and an icon for the UI.

    Key properties exported:

    • title: The localized string for the page name (defaults to 'Data Sources').
    • buildRoutes: A function used to define the page's internal routes.
    • navUrl: A function returning the hash fragment used for navigation (#/datasources).
    • icon: The icon identifier used in the navigation menu (database).
    • statusCss: A function returning a CSS class for status indicators (currently returns an empty string).
    {
      title: 'Data Sources',
      buildRoutes,
      navUrl: () => '#/datasources',
      icon: 'database',
      statusCss: () => ''
    }
  5. Configure Concept Sets page navigation and status

    master

    The Concept Sets page entrypoint exports configuration properties used for routing, navigation, and UI state representation within the ATLAS interface.

    • title: The localized string for the Concept Sets navigation item.
    • buildRoutes: A function used to define the routing logic for this page.
    • navUrl: A Knockout computed observable that returns the URL for the Concept Sets section. If a concept set is currently active in appState.RepositoryConceptSet, it returns a path including that concept set's ID; otherwise, it returns the base #/conceptsets path.
    • icon: The icon identifier used in the navigation menu (shopping-cart).
    • statusCss: A Knockout computed observable that returns a CSS class representing the save state of the current concept set:
      • 'unsaved': If a concept set is currently open and has been modified (appState.RepositoryConceptSet.dirtyFlag().isDirty() is true).
      • 'open': If a concept set is currently open but has no unsaved changes.
      • '' (empty string): If no concept set is currently open.
    // Example of how the exported properties are structured
    // Note: These are intended for use by the ATLAS application framework
    {
      title: 'Concept Sets',
      buildRoutes: [Function: buildRoutes],
      navUrl: [Observable: navUrl],
      icon: 'shopping-cart',
      statusCss: [Observable: statusCss]
    }
  6. Use the Prediction page entrypoint exports

    master

    The Prediction page entrypoint provides metadata and utility functions for navigating and styling the Prediction module within ATLAS. It exports the module title, routing logic, navigation URL, and CSS status indicators based on the current state of prediction analysis.

    {
      title: 'Prediction',
      buildRoutes,
      navUrl: ko.pureComputed(() => ...),
      icon: 'heartbeat',
      statusCss: ko.pureComputed(() => ...)
    }
  7. Configure the Configuration page navigation and status

    master

    The Configuration page entrypoint provides metadata for routing and UI state management within the ATLAS application. It uses atlas-state to determine the current navigation URL and the visual status of the configuration source.

    • If a ConfigurationSource is currently active, navUrl returns a hash route pointing to that specific source: #/source/{selectedId}.
    • If no source is active, it defaults to #/configure.

    Status CSS (statusCss)

    This computed property returns a CSS class used to indicate the state of the configuration:

    • 'unsaved': Returned if a ConfigurationSource is active and its dirtyFlag().isDirty() is true.
    • 'open': Returned if a ConfigurationSource is active but not dirty.
    • '' (empty string): Returned if no ConfigurationSource is active.
    // The exported object from the configuration page entrypoint
    {
      title: 'Configuration',
      buildRoutes: [Function],
      navUrl: ko.pureComputed(() => ...),
      icon: 'cogs',
      statusCss: ko.pureComputed(() => ...),
    }
  8. Configure the Jobs page entrypoint

    master

    The Jobs page is defined as a module that exports configuration properties used by the ATLAS navigation and routing system. It provides the page title (localized), the routing logic via buildRoutes, the navigation URL, and the icon used in the UI.

    Key properties exported:

    • title: The localized string for the page name (uses navigation.jobs key).
    • buildRoutes: A function imported from ./routes used to define the page's internal routes.
    • navUrl: A function returning the fragment identifier #/jobs for navigation.
    • icon: The icon identifier 'tasks' used for UI representation.
    • statusCss: A function returning an empty string for CSS status indicators.
    {
      title: ko.i18n('navigation.jobs', 'Jobs'),
      buildRoutes,
      navUrl: () => '#/jobs',
      icon: 'tasks',
      statusCss: () => ''
    }
  9. Use the Home page module configuration

    master

    The Home page module is an entrypoint that provides configuration for the ATLAS navigation system. It exports an object containing the page title (localized), the route builder, the navigation URL, and the icon used in the UI.

    When integrating or extending navigation, you can use the exported navUrl to direct users to the home route (#/home) and buildRoutes to generate the necessary routing logic for this module.

    // The exported module structure:
    {
      title: 'Home', // Localized via knockout.i18n
      buildRoutes: [Function: buildRoutes],
      navUrl: () => '#/home',
      icon: 'home',
      statusCss: () => ""
    }
  10. Configure the Vocabulary page entrypoint

    master

    The Vocabulary page is defined as a module that exports configuration properties used by the ATLAS navigation system. It provides a localized title, routing logic, navigation URL, and UI metadata (icon and status CSS).

    Key properties exported:

    • title: The localized string for the navigation menu item (defaults to 'Search').
    • buildRoutes: A function imported from ./routes used to define the page's internal routing structure.
    • navUrl: A function returning the hash fragment (#/search) used to navigate to this section.
    • icon: The icon identifier (search) used in the navigation UI.
    • statusCss: A function returning a CSS class string for status indicators (currently returns an empty string).
    {
      title: ko.i18n('navigation.search', 'Search'),
      buildRoutes,
      navUrl: () => '#/search',
      icon: 'search',
      statusCss: () => ''
    }
  11. Use Reusables page exports for navigation and status

    master

    The Reusables module provides metadata and computed properties for integrating the Reusables page into the ATLAS navigation system. It exports the page title, an icon identifier, routing logic, and computed properties for determining the current navigation URL and the visual status of a reusable resource.

    A Knockout pureComputed that returns the URL for the Reusables section. If a reusable resource is currently active in appState.Reusable.current(), it appends the resource ID to the base path #/reusables/. If no resource is active, it returns #/reusables.

    // The module exports the following interface:
    {
      title: 'Reusables', // Localized via ko.i18n
      buildRoutes: Function, // Function to generate routes
      icon: 'recycle', // Icon identifier
      statusCss: ko.pureComputed, // Returns 'unsaved', 'open', or ''
      navUrl: ko.pureComputed // Returns '#/reusables' or '#/reusables/{id}'
    }
  12. Use the Tools page module

    master

    The Tools page module provides the configuration and routing logic for the 'Tools' section of the ATLAS application. It exports a configuration object containing the page title, navigation URL, icon, and a buildRoutes function used to define the page's internal routes.

    // The module exports an object with the following structure:
    {
      title: 'Tools', // Localized string
      buildRoutes: [Function], // Function to generate routes for this page
      navUrl: () => '#/tools', // Function returning the navigation URL
      icon: 'toolbox', // Icon identifier
      statusCss: () => "" // Function returning CSS status classes
    }