From afb57689805bf41f71e0bdd956d772eee67ce2aa Mon Sep 17 00:00:00 2001 From: Lawrence Adams Date: Wed, 27 Nov 2024 12:11:52 +0000 Subject: [PATCH 1/5] docs: add first pass at custom overview, add OHDSI logo --- ...xt-horizontal-colored-white-background.png | Bin 0 -> 56992 bytes docs/overview.md | 33 ++++++++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 assets/OHDSI-logo-with-text-horizontal-colored-white-background.png create mode 100644 docs/overview.md diff --git a/assets/OHDSI-logo-with-text-horizontal-colored-white-background.png b/assets/OHDSI-logo-with-text-horizontal-colored-white-background.png new file mode 100644 index 0000000000000000000000000000000000000000..db7a419276e7d37ca1a4e2724b36e9f50b168602 GIT binary patch literal 56992 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 KwF(uR@P7dB4zU9O literal 0 HcmV?d00001 diff --git a/docs/overview.md b/docs/overview.md new file mode 100644 index 0000000..8a49c1e --- /dev/null +++ b/docs/overview.md @@ -0,0 +1,33 @@ +{% docs __overview__ %} + +## dbt-sythnea + +dbt-synthea is a project to demonstrate the power of dbt for building OMOP ETLs. Using [Synthea](https://synthetichealth.github.io/synthea/), it is possible to generate a synthetic patient data which can be transformed into the OMOP standard. + +### Project Structure + +dbt uses parameterized SQL files called [“models”](https://docs.getdbt.com/docs/build/models), which are run in a correct order by building a Directed Acyclic Graph (DAG). + +The models have been setup with three distinct stages: + - **Staging**: SQL queries that are 1:1 with the source Synthea and vocabulary tables and are used to adjust data types and column names as needed + - **Intermediate**: SQL queries used to perform the bulk of the joining and transformation needed to move from source tables into the OMOP CDM, with a focus on joins and transformations which may be reused several times in the final models; for example, source-to-standard concept mappings or modeling of different visit types. + - **Mart**: SQL queries that are 1:1 with the final OMOP tables. + +### Exploring the Project + +The Project and Database tab on the left can be used to explore the models and the structure of the project. + +The graph or lineage of the project can be explored by clicking on the blue button on the bottom right of the screen. The `--select` or `--exclude` options can be used to filter the models that are currently in view. For example, try filtering on `--select` with the query `+omop`. + +## More Information + + - [What is dbt](https://docs.getdbt.com/docs/introduction)? + - [What is OMOP](https://www.ohdsi.org/data-standardization/)? + - [What is Synthea](https://synthetichealth.github.io/synthea/)? + - [Join OHDSI and collaborate](https://www.ohdsi.org/join-the-journey/) + - [Installation](https://github.com/OHDSI/dbt-synthea?tab=readme-ov-file#developer-setup) + - [Project Abstract](https://www.ohdsi.org/wp-content/uploads/2024/10/124-Sadowski-dbt-synthea-Abstract-Julien-Nakache.pdf) + +![OMOP Logo](assets/OHDSI-logo-with-text-horizontal-colored-white-background.png) + +{% enddocs %} \ No newline at end of file From d9485a10a9b6d09da17af49d7144bacd878c24bd Mon Sep 17 00:00:00 2001 From: Lawrence Adams Date: Wed, 27 Nov 2024 12:14:19 +0000 Subject: [PATCH 2/5] chore: update `dbt_project.yml` to include new asset and docs folder --- dbt_project.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/dbt_project.yml b/dbt_project.yml index aa44a19..178b6b5 100644 --- a/dbt_project.yml +++ b/dbt_project.yml @@ -4,6 +4,8 @@ config-version: 2 profile: 'synthea_omop_etl' +asset-paths: ["assets"] +docs-paths: ["docs"] model-paths: ["models"] analysis-paths: ["analyses"] test-paths: ["tests"] From 7b94749129743ddb34d8e18af7c7d7d760c85bea Mon Sep 17 00:00:00 2001 From: Lawrence Adams Date: Thu, 28 Nov 2024 21:19:54 +0000 Subject: [PATCH 3/5] docs: apply suggestions add in default navigation instructions --- docs/overview.md | 22 ++++++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/docs/overview.md b/docs/overview.md index 8a49c1e..d8913ab 100644 --- a/docs/overview.md +++ b/docs/overview.md @@ -2,7 +2,7 @@ ## dbt-sythnea -dbt-synthea is a project to demonstrate the power of dbt for building OMOP ETLs. Using [Synthea](https://synthetichealth.github.io/synthea/), it is possible to generate a synthetic patient data which can be transformed into the OMOP standard. +dbt-synthea is a project to demonstrate the power of dbt for building OMOP ETLs. Using [Synthea](https://synthetichealth.github.io/synthea/), it is possible to generate a synthetic patient dataset which can be transformed into the OMOP standard. ### Project Structure @@ -13,11 +13,25 @@ The models have been setup with three distinct stages: - **Intermediate**: SQL queries used to perform the bulk of the joining and transformation needed to move from source tables into the OMOP CDM, with a focus on joins and transformations which may be reused several times in the final models; for example, source-to-standard concept mappings or modeling of different visit types. - **Mart**: SQL queries that are 1:1 with the final OMOP tables. -### Exploring the Project +The data originates from either [seed files](https://github.com/OHDSI/dbt-synthea/tree/main/seeds) or with data loaded into a database system of choice: the [developer setup instructions](https://github.com/OHDSI/dbt-synthea?tab=readme-ov-file#developer-setup) provide more information. -The Project and Database tab on the left can be used to explore the models and the structure of the project. +## Navigation +You can use the Project and Database navigation tabs on the left side of the window to explore the models in your project. -The graph or lineage of the project can be explored by clicking on the blue button on the bottom right of the screen. The `--select` or `--exclude` options can be used to filter the models that are currently in view. For example, try filtering on `--select` with the query `+omop`. +### Project Tab +The Project tab mirrors the directory structure of your dbt project. In this tab, you can see all of the models defined in your dbt project, as well as models imported from dbt packages. + +### Database Tab +The Database tab also exposes your models, but in a format that looks more like a database explorer. This view shows relations (tables and views) grouped into database schemas. Note that ephemeral models are not shown in this interface, as they do not exist in the database. + +### Graph Exploration +You can click the blue icon on the bottom-right corner of the page to view the lineage graph of your models. + +On model pages, you'll see the immediate parents and children of the model you're exploring. By clicking the Expand button at the top-right of this lineage pane, you'll be able to see all of the models that are used to build, or are built from, the model you're exploring. + +Once expanded, you'll be able to use the --select and --exclude model selection syntax to filter the models in the graph. For more information on model selection, check out the dbt docs. + +Note that you can also right-click on models to interactively filter and explore the graph. ## More Information From dd918f6f29a8dd9f951f4903082bf1ccbc4ffc54 Mon Sep 17 00:00:00 2001 From: Lawrence Adams Date: Thu, 28 Nov 2024 21:24:49 +0000 Subject: [PATCH 4/5] fix: add assets to final payload for GHactions; use OHDSI logo --- .github/workflows/generate-docs.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/generate-docs.yml b/.github/workflows/generate-docs.yml index 1860090..234f594 100644 --- a/.github/workflows/generate-docs.yml +++ b/.github/workflows/generate-docs.yml @@ -44,10 +44,12 @@ jobs: - name: Generate Docs and prepare for upload run: | dbt docs generate + sed -i "s###g" ./target/index.html mkdir ./payload mv ./target/index.html ./payload mv ./target/manifest.json ./payload mv ./target/catalog.json ./payload + mv ./target/assets ./payload - name: Upload artifact uses: actions/upload-pages-artifact@v3 From e42d871cd1459af44e7d7864ef14b7f925801729 Mon Sep 17 00:00:00 2001 From: Lawrence Adams Date: Fri, 29 Nov 2024 15:27:31 +0000 Subject: [PATCH 5/5] Update overview.md --- docs/overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/overview.md b/docs/overview.md index d8913ab..8d8249f 100644 --- a/docs/overview.md +++ b/docs/overview.md @@ -1,6 +1,6 @@ {% docs __overview__ %} -## dbt-sythnea +## dbt-synthea dbt-synthea is a project to demonstrate the power of dbt for building OMOP ETLs. Using [Synthea](https://synthetichealth.github.io/synthea/), it is possible to generate a synthetic patient dataset which can be transformed into the OMOP standard. @@ -44,4 +44,4 @@ Note that you can also right-click on models to interactively filter and explore ![OMOP Logo](assets/OHDSI-logo-with-text-horizontal-colored-white-background.png) -{% enddocs %} \ No newline at end of file +{% enddocs %}