Skip to content

Commit

Permalink
Create to chapters, finish "navigating Parts"
Browse files Browse the repository at this point in the history
Created new chapters for navigating the parts table, sharing, and getting started. Still have to update the YAML for these.

Sharing and getting started are still very early drafts, but the chapter for navigating the parts table is ready for review.
  • Loading branch information
mathew-thomson committed Jan 17, 2024
1 parent 62222db commit c76029d
Show file tree
Hide file tree
Showing 15 changed files with 141 additions and 0 deletions.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
27 changes: 27 additions & 0 deletions qmd/getting-started.qmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
## Getting Started

Quarto

## data generators, analysts, data aggregators, knowledge synthesisers and decision-makers

When you click the **Render** button a document will be generated that includes both content and the output of embedded code. You can embed code like this:

| | Stakeholder includes | Example model needs |
|-----------------------------------------|----------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| Data generators | Municipal sampling sites and testing laboratories | Alignment with and support for laboratory operations. Support sample management, instrument integration, audit and compliance management, quality assurance and control, traceability, and analysis workflows. |
| Analysts | Researchers, modellers, and public health analysts | Ability to transform data during data normalisation, modelling, and reporting. - Support translation from relational databases (how WBE data is stored) into combined unified summary tables (how data is analysed). -Support the calculation of commonly derived variables such as aggregation and normalisation. |
| Data aggregators | Data repositories, including national and international public health organisations and aggregator sites | Ability to easily aggregate data from numerous WBE and other surveillance systems. - Consistent and standard data that is easily accessed using application program interfaces. - Clearly defined data use statements. |
| Knowledge synthesis and decision-makers | Public health departments, news agencies, citizen scientists, businesses, and individual citizens | Ability to combine WBE data with other health and surveillance data using different standards and models. - a WBE data model that is a good player with other data forms: builds from existing ontologies and modelling approaches. |

```{r}
1 + 1
```

You can add options to executable code like this

```{r}
#| echo: false
2 * 2
```

The `echo: false` option disables the printing of code (only output is displayed).
93 changes: 93 additions & 0 deletions qmd/navigating-parts.qmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
## Using and Navigating ODM Reference Tables

The reference tables in the Public Health and Environmental Surveillance Open Data Model (PHES-ODM) are generated by the ODM research team and come pre-populated. The primary function of the tables can be split across three main categories:

1. **Structural Dictionary:** The **Parts** table is the only table in this category. That parts table lists and defines every piece and aspect within the ODM. Each header, table, categorical, or any other piece of the model is termed a "part", which is where this table gets its name. The Parts table is also self-referential with a record for each header and piece of metadata for the parts list also being stored within the table as a part.

2. **Standardizing drop down fields:** the **Countries**, **Zones**, and **Sets** tables broadly fall into this category. Countries and Zones ensure that the drop downs for location information follow the International Organization for Standardization (ISO) approved structure, while Sets defines the categorical values for different fields throughout the model.

3. **Supporting International Use:** the **Languages** and **Translations** tables all into this category. Languages catalogs the languages that are currently available in the ODM, along with some additional metadata that all follow the International Organization for Standardization (ISO) approved structure for languages. Translations stores the free text reference fields in the Parts table (ie. Part Label, Part Description, and Part Instructions) for every part, for each language in the Languages table. This allows the translated parts like to be generated locally as needed by international users.

Given that these reference tables give structure to the model, being able to consult, use, and even locally manage the reference tables is useful for users. This page will help orient you to these tables so you can use them to their maximum efficiency.

## Navigating Parts

A video walkthrough of how to use the Parts table most effectively can be found on the ODM vimeo account here (LINK TBA).

The Parts list can be initially intimidating because it lists everything within the entirety of the model. There are a variety of ways to filter results to help you find more information on specific parts, as well as better understand model components.

### Filtering

The first thing to understand is the 'filter' function. Because the dictionary is available as and excel or csv file, you can filter by certain values by clicking on the little arrows on the right-hand side of header cells to open this menu, as shown in the figure below.

![](assets/navigating-reference-tables/parts-filter.png)
Using the filter you can either use the tick boxes to select (or deselect) the values of interest as show here below.
![](assets/navigating-reference-tables/filter-checkbox.png)

Alternatively, if you're looking for a specific value, like a specific part for example, you can use the search bar to quickly find the relevant values. This is shown in the image below.
![](assets/navigating-reference-tables/filter-search.png)

Once you're finished looking at the sub-selection of the parts list, you can clear the filter either using the "clear filter" button in the pop-up filter menu, or using the "clear" button by the filter functions in the data tab. Both option are shown in the two images below.
![](assets/navigating-reference-tables/clear-filter-1.png)
![](assets/navigating-reference-tables/clear-filter-2.png)

### Useful filters

Some of the most useful fields to filter on are `status`, `partType`, and the table columns.

Because the Parts table also serves as an archive for all ODM activity, even parts (ie. values, tables, etc.) that are no longer supported by the current version of the model can still be found in the table. To be sure that everything you are looking at is current, you can filter the Parts table by the `status`, specifically to only parts that are "active", as shown in the image below. This is a useful filter to use in combination with other filters as well - stacking filters helps to find what you are looking for with great specificity.
![](assets/navigating-reference-tables/filter-status.png)

The `partType` filter is useful for a few reasons. If you want to see what measures are currently active, you can filter on `partType == measurement`. If you want to see what methods are being recorded, you can filter on `partType == methods`. If you want to see a list of all the metadata headers in the model, regardless of table, you can filter on `partType == attributes`. The same is true for units, aggregations, etc.

To get a better idea about specific tables, you can also filter that specific table column to include headers and the foreign and primary keys (ex. `measures == header & fK & pK`). You can see an example of this in the image below.
![](assets/navigating-reference-tables/filter-table.png)

From this filter, you can also sort the matching order column to be in ascending order, as shown in the image below. This allows you to see all the contents of one table, the order they're in, and whether the ODM team thinks if a given field should be mandatory.
![](assets/navigating-reference-tables/filter-ascending.png)

### Customization

Customization is available to to users who wish to use the parts list to the fullest as well. Using your local copy of the dictionary, users are free to delete certain parts that they do not use. If there are measures that your group never performs, or methods that aren't used, you can feel free to delete them. This helps pare down the dropdown menus in the templates as well, perhaps streamlining some of the data input process.

## Navigating Countries, Zones, and Sets

As with the Parts table, the tables for Countries, Zones, and Sets are a useful reference.

Starting with Countries and Zones, these tables record some details along with the International Organization for Standardization (ISO) approved codes for all countries and sub-national regions currently recognized on earth.

The sets table is used to group categorical values together for certain categorical inputs. For attributes, measures, or methods that take categorical values, the 'mmaSet' column in the Parts table defines which set is used to define the valid values. The sets themselves, however, are defined in the sets table. This allows for a single part to be recycled across multiple sets, but also creates a possibility for user customization.

### Useful filters

Using filtering functions as demonstrated in the above section, you can search for the code of a specific country by name in the Countries table. An example is shown below with the filter being used to find the code for Canada.

![](assets/navigating-reference-tables/filter-country.png)

You can also search for zones by country code in the Zones table. Simple filter by `isoCode` to find the `isoRegions` for that country. The image below shows an example to pull up the sub-national regions in Canada.

![](assets/navigating-reference-tables/filter-zone.png)

The most useful filters for using the Sets table are on the `setID` and `setType` columns. If you're looking a specific field, for example in the Samples table the Sample Collection Type (`collType`), you'll see that the `mmaSet` that defines the valid categories for that field are in the `collectCat` set. So we can navigate to the Sets table and filter search for that category set, shown in the image below.

![](assets/navigating-reference-tables/filter-setID.png)
We then see all the currently supported collection methods for samples.

Similarly, if I want to see all the different sets of a certain kind, I can filter on `setType`. For example, if I want to look at all of the unit sets in the ODM, I could filter `setType == unitSets`. As shown below, this then lists all the unit sets, and I can see what unit sets exist, and what units are included in each set.

![](assets/navigating-reference-tables/filter-setType.png)
### Customization

Similar to the Parts table, customization here may look like deleting entries that are not relevant to your practice or program. For example, if you only record data in Canada, or within Canada only within a given province, you might delete the other rows in the Countries and/or Zones tables.

Similarly, if you only use gc/mL as a unit for one of your measures, you might delete the other units in that set in your version of the sheet. That way it's easier to populate the data from the drop downs.

## Navigating Languages and Translations

The Language and Translations tables are most useful for contexts where multiple languages might be in use. The language table itself only lists the language currently supported by the ODM, so filtering would be most useful based on the lanugages you're interested in. With that said, currently there are only 3 languages listed in the table, so filtering is not really necessary.

Translations stores all the free text variables of the Parts table (`partLabel`, `partDesc`, and `partInstr`) in English, and in the other languages for which translations are available (currently only French). Filtering the table by `lang` will be useful to generate the Parts table in the language of one's choice.

### Customization

If you are only using the ODM in English, these tables are unnecessary. You can customize by deleting entries for languages or parts that are not relvant to your use-case.
21 changes: 21 additions & 0 deletions qmd/sharing.qmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
## Sharing

Quarto enables you to weave together content and executable code into a finished document. To learn more about Quarto see <https://quarto.org>.

## Running Code

When you click the **Render** button a document will be generated that includes both content and the output of embedded code. You can embed code like this:

```{r}
1 + 1
```

You can add options to executable code like this

```{r}
#| echo: false
2 * 2
```

The `echo: false` option disables the printing of code (only output is displayed).

0 comments on commit c76029d

Please sign in to comment.