> For the complete documentation index, see [llms.txt](https://docs.rhinofcp.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.rhinofcp.com/datasets/example-2-defining-a-dataset-with-file-data.md).

# Example 2: Defining a Dataset with File Data

## The Data Schema

{% hint style="info" %}
**🛹 Pro-tip:** you can skip this step using [Auto-Generated Data Schemas](/data-schemas/auto-generated-data-schemas.md) if you don't have specific requirements for the dataset schema.
{% endhint %}

The Data Schema can be uploaded as a CSV to the Rhino Web UI or added directly to the Rhino Web UI through the built-in Data Schema editor. For this example, we will create this Dataset within the UI and name it SpO2 Schema.

|                          |                   |                        |                               |                   |
| ------------------------ | ----------------- | ---------------------- | ----------------------------- | ----------------- |
| **Field Name**           | Image             | Age                    | Gender                        | SpO2              |
| **Identifier**           |                   |                        |                               |                   |
| **Description**          |                   |                        |                               |                   |
| **Type**                 | Filename          | Age                    | Enum                          | Percent           |
| **Type Parameters**      |                   |                        | {"choices": \["m", "f", "o"]} |                   |
| **Sensitive Data**       | No                | Yes                    | No                            | No                |
| **Aggregate Statistics** | Allowed (Enabled) | Not Allowed (Disabled) | Allowed (Enabled)             | Allowed (Enabled) |
| **Secure Access**        | Allowed (Enabled) | Not Allowed (Disabled) | Allowed (Enabled)             | Allowed (Enabled) |

## The Dataset's Tabular Data

{% hint style="info" %}
**🛹 Pro-tip:** You can skip providing tabular data if you don't need metadata (e.g., your dataset is a list of files for inference) and want to use all files in the specific folder defined `File Data Path`. [See example below](#01HY15T3XWZG01N0JN3Y282T6S).
{% endhint %}

The tabular data CSV file is prepared within the institutional firewall from data in clinical systems and then copied via SFTP to the Rhino Client.

| Image           | Age | Gender | SpO2 |
| --------------- | --- | ------ | ---- |
| males/123.png   | 52  | m      | 0.97 |
| males/456.png   | 38  | m      | 0.98 |
| females/789.png | 45  | f      | 0.98 |

For this example: Let’s say this tabular CSV file was copied via SFTP to the following location on your Rhino Client: `/rhino_data/uploads/spo2/dataset1.csv`

### The Dataset's DICOM Data

No DICOM data exists in this Dataset

### The Dataset's File Data

All image files associated with the cases in the tabular data file are queried from the clinical data systems, de-identified, and then copied via SFTP to the Rhino Client.

The Rhino Client expects the files to be located precisely at the relative path that is specified in the tabular data file, where these paths are relative to a base path provided during Dataset import.

For this example, let's say we place our file data in the following locations on our Rhino Client:

* `/rhino_data/uploads/image_data/males/123.png`
* `/rhino_data/uploads/image_data/males/456.png`
* `/rhino_data/uploads/image_data/females/789.png`

### Example 2: Load Specific Files

**Dataset Import parameters:**

1. **Name:** Example 2 Dataset
2. **Description:** Example 2 Dataset
3. **Data Schema:** SpO2 Schema v0
4. **Tabular Data File Path:** `/rhino_data/uploads/spo2/dataset1.csv`
5. **DICOM Data Path:**
   * **Import Method:** Filesystem
   * **Path:** `/rhino_data/` (Default Value: Do not change)
6. **File Data Path:** `/rhino_data/uploads/images`
7. **Is Data De-identified?:** Yes

### Example 2 Simplified: Load All Files Under a Folder

**Dataset Import parameters:**

1. **Name:** Example 2 Dataset
2. **Description:** Example 2 Dataset
3. **Data Schema:** SpO2 Schema v0
4. **Tabular Data File Path:** `LEAVE EMPTY`
5. **DICOM Data Path:**
   * **Import Method:** Filesystem
   * **Path:** `LEAVE EMPTY`
6. **File Data Path:** `/rhino_data/uploads/images`
7. **Is Data De-identified?:** Yes
