diff --git a/diagrams/backbone_slice_2v2.drawio b/diagrams/backbone_slice_2v2.drawio
new file mode 100644
index 00000000..eb88ac8c
--- /dev/null
+++ b/diagrams/backbone_slice_2v2.drawio
@@ -0,0 +1,862 @@
+
Geospatial data come in a variety of source formats with no -universal, interoperable standard representation. While working with a -single geospatial dataset has presents some technical challenges, the -complexity of using geospatial begins to compound when variables from -disparate datasets are needed for a single analysis study. As ad-hoc -solutions are introduced to deal with the increasing technical -complexity, the reproducibility of these studies plummets.
-In order to enable reproducible studies that incorporate -place-related data with longitudinal patient-level data, it is first -necessary to develop functionality to automate retrieval and -transformation of publicly available place-related data into a standard -representation.
-The overarching goal of the OHDSI GIS Workgroup is to develop -software and standards for incorporating place-based data into the OMOP -CDM and present this back to the OHDSI community. We reach these goals -through development in the four key areas below.
-OHDSI GIS Infrastructure (2023 OHDSI Symposium Poster, Abstract)
-Toxins Vocabulary (2023 OHDSI Symposium Poster, Abstract)
-OHDSI GIS Workgroup October 10, 2023 Update (video)
-OHDSI GIS Workgroup 2023 Objectives and Key Results (video, -slides)
-OHDSI GIS Workgroup August 23, 2022 Update (video)
#Proposing changes to Gaia Data Models
-The gaiaDB data model is still in early development. We hope to build -a model that suits a wide range of needs, and as such we encourage -interested parties to install, use, and provide feedback on the gaiaDB -backbone and harmonized data tables. This documentation demonstrates how -to create and submit “formal” change requests via pull requests. That -said, we always welcome ad-hoc feedback via email or GitHub issue -tracker.
-The “official” data model at any given time is displayed on the Data Model page of
-this website. This model reflects the csv files
-gaia
The csv files, and their formatted counterpart on the Data Model -page, provide us a clear method proposing changes. Any changes to the -data model should be implemented directly (on a fork or branch of the -main repository) to csv files. After changes are made to the csv files, -the DDLs can be regenerated (see below), the website can be rerendered -to reflect these changes (see here), -a Pull Request can be opened, and a discussion about the changes can -begin.
-The “official” DDL scripts at any given time are stored at -./inst/ddl. The only time these need to be regenerated is when there are -changes or proposed changes to the data model. If you just need to -implement the DDL in your database, simply run the scripts in that -directory against your Postgres database.
-To regenerate the DDL scripts, simply run the scripts -gaiaCore::writeGaiaDdl(gaiaVersion, outputfolder), -gaiaCore::writePrimaryKeys(gaiaVersion, outputfolder), and -gaiaCore::writeForeignKeys(gaiaVersion, outputfolder).
-This is the specification document for the gaiaDB Data Model.
-This data model is still under development and likely to
-change. Each table is represented with a high-level description
-and ETL conventions that should be followed. This is continued with a
-discussion of each field in each table, any conventions related to the
-field, and constraints that should be followed (like primary key,
-foreign key, etc). Should you have questions please feel free to visit
-the forums or the github issue page.
-
Table Description
-This table contains records that catalog external (or local) -web-hosted entities. All source data in gaiaDB must be referenced in -this table.
-User Guide
-All records in this table are sources of geospatial data. They can be -sources of geometry data, such as point, line, or polygon, or they can -be attribute data with an identifier that relates them to geometry data, -such as a FIPS code or GEOID.
-ETL Conventions
-All sources of data that should be included in gaiaDB must have an -entry in this table. Geometry data sources require a “geom_spec”: a -lightweight transformation from the source data to the standardized -format, written in R and serialized as JSON.
--Gaia Field - | --User Guide - | --ETL Conventions - | --Datatype - | --Required - | --Primary Key - | --Foreign Key - | --FK Table - | --FK Domain - | -
---|---|---|---|---|---|---|---|---|
-data_source_uuid - | -- | -- | --int4 - | --Yes - | --Yes - | --No - | -- | -- | -
-org_id - | -- | -- | --varchar(100) - | --Yes - | --No - | --No - | -- | -- | -
-org_set_id - | -- | -- | --varchar(100) - | --Yes - | --No - | --No - | -- | -- | -
-dataset_name - | -- | -- | --varchar(100) - | --Yes - | --No - | --No - | -- | -- | -
-dataset_version - | -- | -- | --varchar(100) - | --Yes - | --No - | --No - | -- | -- | -
-geom_type - | -- | -- | --varchar(100) - | --No - | --No - | --No - | -- | -- | -
-geom_spec - | -- | -- | --text - | --No - | --No - | --No - | -- | -- | -
-boundary_type - | -- | -- | --varchar(100) - | --No - | --No - | --No - | -- | -- | -
-has_attributes - | -- | -- | --int4 - | --No - | --No - | --No - | -- | -- | -
-download_method - | -- | -- | --varchar(100) - | --Yes - | --No - | --No - | -- | -- | -
-download_subtype - | -- | -- | --varchar(100) - | --Yes - | --No - | --No - | -- | -- | -
-download_data_standard - | -- | -- | --varchar(100) - | --Yes - | --No - | --No - | -- | -- | -
-download_filename - | -- | -- | --varchar(100) - | --Yes - | --No - | --No - | -- | -- | -
-download_url - | -- | -- | --varchar(100) - | --Yes - | --No - | --No - | -- | -- | -
-download_auth - | -- | -- | --varchar(100) - | --No - | --No - | --No - | -- | -- | -
-documentation_url - | -- | -- | --varchar(100) - | --No - | --No - | --No - | -- | -- | -
Table Description
-This table contains records that describe the distinct variables in a -data source enabling downstream data integrations. All variables from -attribute source data must be catalogued in this table.
-User Guide
-All records in this table describe distinct variables from attribute -source data. For example, consider a weather dataset that is being added -to gaiaDB. First, the entire dataset is catalogued in the data_source -table. Then, the distinct variables of that dataset (temperature in -fahrenheit, temperature in celsius, inches of rain, wind direction, -etc.) each become a single record in this table. All records in this -table are related back to their parent source dataset via a foreign key -relationship to the data_source table. Many variable_source records can -be related to a single data_source record.
-ETL Conventions
-Every individual variable from a source dataset must have an entry in -this table. Likewise, any source attribute dataset that gets included in -the data_source table will likely have many “children” in this table. -All records in this table contain an “attr_spec”: a lightweight -transformation of a single variable into the standardized table -format.
--Gaia Field - | --User Guide - | --ETL Conventions - | --Datatype - | --Required - | --Primary Key - | --Foreign Key - | --FK Table - | --FK Domain - | -
---|---|---|---|---|---|---|---|---|
-variable_source_id - | -- | -- | --serial4 - | --Yes - | --Yes - | --No - | -- | -- | -
-geom_dependency_uuid - | -- | -- | --int4 - | --No - | --No - | --Yes - | --data_source - | -- | -
-variable_name - | -- | -- | --varchar - | --Yes - | --No - | --No - | -- | -- | -
-variable_desc - | -- | -- | --text - | --Yes - | --No - | --No - | -- | -- | -
-data_source_uuid - | -- | -- | --int4 - | --Yes - | --No - | --Yes - | --data_source - | -- | -
-attr_spec - | -- | -- | --text - | --Yes - | --No - | --No - | -- | -- | -
Table Description
-A programmatically derived index table of all the attribute source -datasets included in the data_source table.
-User Guide
-This table can be (re)generated after new entries are added to the -data_source table by running the gaiaCore createIndices() function.
-ETL Conventions
-Run the createIndices() function to (re)generate this table.
--Gaia Field - | --User Guide - | --ETL Conventions - | --Datatype - | --Required - | --Primary Key - | --Foreign Key - | --FK Table - | --FK Domain - | -
---|---|---|---|---|---|---|---|---|
-attr_index_id - | -- | -- | --numeric - | --Yes - | --Yes - | --No - | -- | -- | -
-variable_source_id - | -- | -- | --numeric - | --Yes - | --No - | --Yes - | --variable_source - | -- | -
-attr_of_geom_index_id - | -- | -- | --numeric - | --Yes - | --No - | --Yes - | --geom_index - | -- | -
-database_schema - | -- | -- | --varchar(255) - | --Yes - | --No - | --No - | -- | -- | -
-table_name - | -- | -- | --varchar(255) - | --Yes - | --No - | --No - | -- | -- | -
-data_source_id - | -- | -- | --numeric - | --Yes - | --No - | --Yes - | --data_source - | -- | -
Table Description
-A programmatically derived index table of all the geometry source -datasets included in the data_source table.
-User Guide
-This table can be (re)generated after new entries are added to the -data_source table by running the gaiaCore createIndices() function.
-ETL Conventions
-Run the createIndices() function to (re)generate this table.
--Gaia Field - | --User Guide - | --ETL Conventions - | --Datatype - | --Required - | --Primary Key - | --Foreign Key - | --FK Table - | --FK Domain - | -
---|---|---|---|---|---|---|---|---|
-geom_index_id - | -- | -- | --numeric - | --Yes - | --Yes - | --No - | -- | -- | -
-data_type_id - | -- | -- | --numeric - | --No - | --No - | --No - | -- | -- | -
-data_type_name - | -- | -- | --varchar(255) - | --Yes - | --No - | --No - | -- | -- | -
-geom_type_concept_id - | -- | -- | --numeric - | --No - | --No - | --Yes - | --concept - | -- | -
-geom_type_source_value - | -- | -- | --varchar(255) - | --No - | --No - | --No - | -- | -- | -
-database_schema - | -- | -- | --varchar(255) - | --Yes - | --No - | --No - | -- | -- | -
-table_name - | -- | -- | --varchar(255) - | --Yes - | --No - | --No - | -- | -- | -
-table_desc - | -- | -- | --varchar(255) - | --Yes - | --No - | --No - | -- | -- | -
-data_source_id - | -- | -- | --numeric - | --Yes - | --No - | --Yes - | --data_source - | -- | -
Table Description
-This table is a template for the standardized attribute table that -get created.
-User Guide
-No action necessary. This table must simply exist (with no entries) -in the backbone schema.
-ETL Conventions
-No action necessary.
--Gaia Field - | --User Guide - | --ETL Conventions - | --Datatype - | --Required - | --Primary Key - | --Foreign Key - | --FK Table - | --FK Domain - | -
---|---|---|---|---|---|---|---|---|
-attr_record_id - | -- | -- | --serial4 - | --Yes - | --Yes - | --No - | -- | -- | -
-geom_record_id - | -- | -- | --int4 - | --Yes - | --No - | --Yes - | --geom_template - | -- | -
-variable_source_record_id - | -- | -- | --int4 - | --Yes - | --No - | --Yes - | --variable_source - | -- | -
-attr_concept_id - | -- | -- | --int4 - | --No - | --No - | --Yes - | --concept - | -- | -
-attr_start_date - | -- | -- | --date - | --Yes - | --No - | --No - | -- | -- | -
-attr_end_date - | -- | -- | --date - | --Yes - | --No - | --No - | -- | -- | -
-value_as_number - | -- | -- | --float8 - | --No - | --No - | --No - | -- | -- | -
-value_as_string - | -- | -- | --varchar - | --No - | --No - | --No - | -- | -- | -
-value_as_concept_id - | -- | -- | --int4 - | --No - | --No - | --Yes - | --concept - | -- | -
-unit_concept_id - | -- | -- | --int4 - | --No - | --No - | --Yes - | --concept - | -- | -
-unit_source_value - | -- | -- | --varchar - | --No - | --No - | --No - | -- | -- | -
-qualifier_concept_id - | -- | -- | --int4 - | --No - | --No - | --Yes - | --concept - | -- | -
-qualifier_source_value - | -- | -- | --varchar - | --No - | --No - | --No - | -- | -- | -
-attr_source_concept_id - | -- | -- | --int4 - | --No - | --No - | --Yes - | --concept - | -- | -
-attr_source_value - | -- | -- | --varchar - | --Yes - | --No - | --No - | -- | -- | -
-value_source_value - | -- | -- | --varchar - | --Yes - | --No - | --No - | -- | -- | -
Table Description
-This table is a template for the standardized geometry tables that -get created.
-User Guide
-No action necessary. This table must simply exist (with no entries) -in the backbone schema.
-ETL Conventions
-No action necessary.
--Gaia Field - | --User Guide - | --ETL Conventions - | --Datatype - | --Required - | --Primary Key - | --Foreign Key - | --FK Table - | --FK Domain - | -
---|---|---|---|---|---|---|---|---|
-geom_record_id - | -- | -- | --serial4 - | --Yes - | --Yes - | --No - | -- | -- | -
-geom_name - | -- | -- | --varchar - | --Yes - | --No - | --No - | -- | -- | -
-geom_source_coding - | -- | -- | --varchar - | --Yes - | --No - | --No - | -- | -- | -
-geom_source_value - | -- | -- | --varchar - | --Yes - | --No - | --No - | -- | -- | -
-geom_wgs84 - | -- | -- | --geometry - | --No - | --No - | --No - | -- | -- | -
-geom_local_epsg - | -- | -- | --int4 - | --Yes - | --No - | --No - | -- | -- | -
-geom_local_value - | -- | -- | --geometry - | --Yes - | --No - | --No - | -- | -- | -
Table Description
-This table is used to interface with ATLAS and OHDSI tool stack
-User Guide
-NA
-ETL Conventions
-NA
--Gaia Field - | --User Guide - | --ETL Conventions - | --Datatype - | --Required - | --Primary Key - | --Foreign Key - | --FK Table - | --FK Domain - | -
---|---|---|---|---|---|---|---|---|
-exposure_occurrence_id - | -- | -- | --integer - | --Yes - | --Yes - | --No - | -- | -- | -
-location_id - | -- | -- | --integer - | --Yes - | --No - | --Yes - | --location - | -- | -
-person_id - | -- | -- | --integer - | --Yes - | --No - | --Yes - | --person - | -- | -
-cohort_definition_id - | -- | -- | --integer - | --No - | --No - | --No - | -- | -- | -
-exposure_concept_id - | -- | -- | --integer - | --Yes - | --No - | --Yes - | --concept - | -- | -
-exposure_start_date - | -- | -- | --date - | --Yes - | --No - | --No - | -- | -- | -
-exposure_start_datetime - | -- | -- | --datetime - | --No - | --No - | --No - | -- | -- | -
-exposure_end_date - | -- | -- | --date - | --Yes - | --No - | --No - | -- | -- | -
-exposure_end_datetime - | -- | -- | --datetime - | --No - | --No - | --No - | -- | -- | -
-exposure_type_concept_id - | -- | -- | --integer - | --Yes - | --No - | --Yes - | --concept - | --Type Concept - | -
-exposure_relationship_concept_id - | -- | -- | --integer - | --Yes - | --No - | --Yes - | --concept - | -- | -
-exposure_source_concept_id - | -- | -- | --integer - | --No - | --No - | --Yes - | --concept - | -- | -
-exposure_source_value - | -- | -- | --varchar(50) - | --No - | --No - | --No - | -- | -- | -
-exposure_relationship_source_value - | -- | -- | --varchar(50) - | --No - | --No - | --No - | -- | -- | -
-dose_unit_source_value - | -- | -- | --varchar(50) - | --No - | --No - | --No - | -- | -- | -
-quantity - | -- | -- | --integer - | --No - | --No - | --No - | -- | -- | -
-modifier_source_value - | -- | -- | --varchar(50) - | --No - | --No - | --No - | -- | -- | -
-operator_concept_id - | -- | -- | --integer - | --No - | --No - | --Yes - | --concept - | -- | -
-value_as_number - | -- | -- | --float - | --No - | --No - | --No - | -- | -- | -
-value_as_concept_id - | -- | -- | --integer - | --No - | --No - | --Yes - | --concept - | -- | -
-unit_concept_id - | -- | -- | --integer - | --No - | --No - | --Yes - | --concept - | --Unit - | -
#Editing the OHDSI GIS WG documentation website
-We encourage contributions to our software documentation and our -website. Follow these guidelines for making and proposing changes.
-This section explains how to edit the content of the website. In this -context, the website refers to everything at https://ohdsi.github.io/GIS/ except for the https://ohdsi.github.io/GIS/gaiaCore content which is -covered in the next section.
-The source of the website’s content are contained in the ./rmd/ -directory at the root of this repository. Most of the content in the -./rmd/ directory are RMarkdown files which are rendered to HTML, stored -in the ./docs/ directory, and served as a website using GitHub Pages. -Along with RMD files, there are images, stylesheets (CSS), and a file -called _site.yml. The _site.yml file specifies the website structure and -defines the elements on the site’s navbar.
-To edit existing pages on the website, simply find and edit the
-corresponding RMD file. To add new pages to the website, create an RMD
-file, fill it with content, and then add it to _site.yml in a fitting
-place. Whether you are editing existing pages or creating new ones, the
-function RMarkdown::render_site()
can be run to regenerate
-the HTML files docs directory. More on rendering below.
R Package documentation is created using ROxygen within R scripts.
-The ROxygen is rendered to .Rd files by running
-devtools::document()
. After documentation is created, the
-function pkgdown::build_site()
can be run to render the .Rd
-files into HTML, which automatically ends up in ./docs/gaiaCore/ and can
-be accessed from the website. More on rendering below.
If you’ve been keeping track, there are three functions which need to
-be called to generate the HTML for the website: 1.
-devtools::document()
creates .Rd files from inline ROxygen
-2. RMarkdown::render_site()
creates HTML for website
-content 3. pkgdown::build_site()
creates HTML for the R
-Package documentation
Running three functions each time you need to regenerate the website -can be a drag. Even worse, the website won’t generate correctly if they -are run out of order.
-To make things easier, there is a helper R script,
-render_gaia_site.R
, that can be run using
-source('./render_gaia_site.R')
. This simply calls those
-three functions in the correct order. It makes life just a bit
-easier.
Finally, after changes have been made to the website or documentation -and the new HTML has been rendered, simply commit your changes and -create a Pull Request on the OHDSI GIS WG repository. A maintainer will -review your changes, provide feedback if necessary, and accept your -changes when they are ready.
-The Gaia Framework provides the highest-level view of the components -that compose Gaia; the framework is divided into three main parts, a -functional metadata repository (Catalog), staging database and execution -engine (Core), and ecosystem of Gaia-compatible software packages -(Extensions):
-A readily-extensible catalog of source datasets. Gaia Catalog -contains metadata for public geospatial datasets. Descriptive metadata -facilitates search and discovery of relevant datasets. Functional -metadata (machine-actionable instructions) enables automated retrieval, -extraction, transformation, and loading of public datasets and their -constituent variables.
-Gaia Core is the central functionality and storage of Gaia and itself -consists of two main features: a staging database and -an execution engine.
-The staging database is a PostGIS database with a replica copy of the -Gaia Catalog installed in a schema named “backbone”. In this database, -public datasets that are registered in Gaia Catalog can be “staged”: -transformed and then loaded as tables in a standardized -Entity-Attribute-Value format. Other geospatial data, such as geocoded -addresses, can also be loaded into the staging database for use in -conjunction with the staged data.
-All operations on the staging database (creating tables, inserting -data, accessing data, etc.) are performed through the “execution -engine”. The execution engine can be any software package (e.g. R -package, Python library, CLI) that connects to the database and -functionalizes the logic required to write or read data to and from the -standard format. Currently, there is one execution engine: an R Package -named gaiaCore.
-Any functionality that falls outside of Gaia Core’s scope (basic -Create, Read, Update and Delete operations) can be encapsulated in an -Extension. An extension can be thought of as a software package or -library that interfaces with Gaia Core (through the execution engine) -that collects similar functionality. Extensions can be grouped by the -communities they serve or by the functionality they provide. For -example, the gaiaOHDSI -extension is built to provide members of the OHDSI community useful -connectors between Gaia Core and an OMOP database and various OHDSI -tools. On the other hand, general (hypothetical) extensions like gaiaVis -or gaiaLayer provide visualization and layer building software to Gaia -Core, respectively.
-A readily-extensible catalog of source datasets. Gaia Catalog -contains metadata for public geospatial datasets. Descriptive metadata -facilitates search and discovery of relevant datasets. Functional -metadata (machine-actionable instructions) enables automated retrieval, -extraction, transformation, and loading of public datasets and their -constituent variables.
-The ultimate vision of Gaia Catalog is a web-hosted -repository where users can access and contribute functional and -descriptive metadata for public datasets to facilitate their standard -use across networks and beyond. Currently, the data for -still-developing catalog is contained in the OHDSI GIS WG GitHub -Repository:
-The data_source.csv -file contains information on public datasets.
-The variable_source.csv -file contains information on the variables contained in those -datasets.
-To start using the Gaia Catalog see the article Getting Started with -Gaia.
-Gaia Core is the central functionality and storage of Gaia and -consists of two main features: a staging database and -an execution engine.
-The staging database is a PostGIS database with a replica copy of the -Gaia Catalog installed in a schema named “backbone”. In this database, -public datasets that are registered in Gaia Catalog can be “staged”: -transformed and then loaded as tables in a standardized -Entity-Attribute-Value format. Other geospatial data, such as geocoded -addresses, can also be loaded into the staging database for use in -conjunction with the staged data.
-All operations on the staging database (creating tables, inserting -data, accessing data, etc.) are performed through the “execution -engine”. The execution engine can be any software package (e.g. R -package, Python library, CLI) that connects to the database and -functionalizes the logic required to write or read data to and from the -standard format.
-The ultimate vision of Gaia Core is support for -multiple geospatial databases (particularly cloud-native), as well as -execution engine interfaces for multiple popular data science -programming languages (e.g. Python, Julia, R, Bash). -Currently, the staging database has only been -implemented in PostGIS and the execution engine has only been -implemented in R.
-The gaiaOHDSI extension is built to provide members of the OHDSI -community useful connectors between Gaia Core and an OMOP database and -various OHDSI tools.
-Any functionality that falls outside of Gaia Core’s scope (basic -Create, Read, Update and Delete operations) can be encapsulated in an -Extension. An extension can be thought of as a software package or -library that interfaces with Gaia Core (through the execution engine) -that collects similar functionality. Extensions can be grouped by the -communities they serve or by the functionality they provide. For -example, the gaiaOHDSI extension is built to provide members of the -OHDSI community useful connectors between Gaia Core and an OMOP database -and various OHDSI tools. On the other hand, general (hypothetical) -extensions like gaiaVis or gaiaLayer provide visualization and layer -building software to Gaia Core, respectively.
-The ultimate vision of Extensions is a vivid -ecosystem of software packages for interacting with Gaia Core data. -Currently, there are Gaia extensions to support -Geocoding processes and to interact with OMOP and OHDSI tools. See the -gaiaOHDSI extension for more -details.
-TODO
+++! UNDER CONSTRUCTION !
+
To oversimplify, our goal is to create a mechanism to locally deploy +a geospatial database, standardize the representation of place-related +data within, and automate the process of populating data into it.
+Consequently, the foundational goals of our design can be summarized +as:
+Challenge | ++ | Approach | +
---|---|---|
Enable extensible tooling | ++ | Implement a common data model for place-related +data | +
Establish universal representation for any +place-related data | ++ | Represent data as geometries and attributes (of +geometries) | +
Create efficiency when dealing with large amount of +standardized data | ++ | Split each data source into it’s own pair of geometries +and attributes | +
Create static functionality that works for any new data +added | ++ | Indexing structures and parameterization to treat the +collection of disparate tables as if they were functionally +combined | +
Maintain source data provenance and versioning | ++ | Data source and variable metadata, given unique +identifiers, that are referenced throughout the schema | +
Automate the processes of data retrieval, ingestion, +and standardization into our common model | ++ | Create “functional metadata” at both the data source +and variable level, and an R package to execute it | +
Enable collaborative growth of functional metadata | ++ | Host the metadata centrally, instead of the actual data +sources. Create separate tooling to ease burden of creating new metadata +records | +
TODO: brief description of the pipline. “GaiaR takes metadata +specifications to…” etc.
+TODO: image descC
+There are three distinct portions of our schema:
+TODO: Summarize diagram
+TODO: Summarize diagram
+TODO: Summarize diagram
+// TODO - 1-2 sentence intro
+// TODO - Diagram
+There are two tables within the ‘Metadata’ portion of our schema:
+ +++The blue stars signify functional metadata, +described below
+
++For a detailed description see: Specifications/Backbone/data_source
+
+For a detailed description see: Specifications/Backbone/variable_source
+
// TODO: Diagrams
+TODO < Diagram Showing interaction with local DB > - -Centralized - Contains the functional metadata instead of source data -itself
TODO - Show how it changes from wide table to EAV - Give -examples/breakdown of each of: - Data source (geometry) - Variable -(attribute)
+There are two tables within the ‘Metadata’ portion of our schema:
+TODO < Diagram with connections between backbone tables and -templated tables > - Backbone - Data source; variable source < -Diagram showing relationships > < Diagram showing an example of -variables pointing to same data source > - Indexing design < -Diagram > - Rationale / How it is functionally referenced - Templates -< Diagram of relation to each other > - Structure of the tables - -Example of populated tables (subsets of columns) and their relation
+ -TODO
-< Diagram showing transition from wide source table to -standardized EAV structure > - What this enables - Extensible tooling -- Efficient querying on smaller tables - (?) integration with -ontologies/additional metadata
The common data model approach has been a widely adopted solution for +clinical data, notably for two specific reasons:
+Interoperability: Data sources are structured +the same but stored separately .If data sets are harmonized then +distributed research is enabled
Extensibility: If the underlying model is +static, it serves as a strong foundation to develop stable tooling, and +community growth, on top of it
TODO: purpose/use, etc.
+defined structure
“recipes”
Centralized Repository
+// TODO: description
+// TODO: description
+Version 2.0, January 2004 <http://www.apache.org/licenses/>
-“License” shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
-“Licensor” shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
-“Legal Entity” shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, “control” means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
-“You” (or “Your”) shall mean an individual or Legal Entity exercising permissions granted by this License.
-“Source” form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
-“Object” form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
-“Work” shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
-“Derivative Works” shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
-“Contribution” shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, “submitted” means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as “Not a Contribution.”
-“Contributor” shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
-Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
-Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
-You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
-You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
-Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
-This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
-Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
-In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
-While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
-END OF TERMS AND CONDITIONS
-To apply the Apache License to your work, attach the following boilerplate notice, with the fields enclosed by brackets []
replaced with your own identifying information. (Don’t include the brackets!) The text should be enclosed in the appropriate comment syntax for the file format. We also recommend that a file or class name and description of purpose be included on the same “printed page” as the copyright notice for easier identification within third-party archives.
Copyright [yyyy] [name of copyright owner]
-
-Licensed under the Apache License, Version 2.0 (the "License");
-you may not use this file except in compliance with the License.
-You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
-Unless required by applicable law or agreed to in writing, software
-distributed under the License is distributed on an "AS IS" BASIS,
-WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-See the License for the specific language governing permissions and
-limitations under the License.
Zollo-Venecek K, Miller R (2024). -gaiaCore: Functions for interacting with gaiaDB and the OHDSI GIS software suite. -R package version 0.0.0.9000. -
-@Manual{, - title = {gaiaCore: Functions for interacting with gaiaDB and the OHDSI GIS software suite}, - author = {Kyle Zollo-Venecek and Robert Miller}, - year = {2024}, - note = {R package version 0.0.0.9000}, -}-