> 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/frequently-asked-questions/fcp-terminology-renaming-guide.md).

# FCP Terminology Renaming Guide

Core FCP components have been renamed as of January 30, 2023. Details appear below.

| Former Name   | New Name     |
| ------------- | ------------ |
| Cohorts       | Datasets     |
| Models        | Code Objects |
| Model Results | Code Runs    |

We're switching up a few names, but it's not just about words; it's about making your experience with the Rhino Federated Computing Platform even better. When we replace **Cohorts** with **Datasets**, **Models** with **Code** (or **Code Objects**), and **Model Results** with **Code Runs**, we're enhancing consistency, streamlining things, and ensuring everything flows smoothly.

In the following guide, we'll cover each interface and detail specifically what and how this renaming effort will change your interaction with the Rhino FCP.

If you have any questions or concerns, please reach out to <support@rhinohealth.com>.

***

### FCP UI View Terminology Changes

#### Project Dashboard Page *(No Name Change)*

1. Owner *(No Change)*
2. Collaborator *(No Change)*
3. Permissions Policy *(*[*See Changes Below*](#h_01HMFSW2XX8BE38CNF1SNT071D)*)*
   * Project-level
   * Site-level

#### Project Overview Page *(No Name Change)*

**Project Steps**

1. Project Definition *(No Change)*
2. Collaborator *(No Change)*
3. Data Schemas *(No Change)*
4. **Cohorts** → **Datasets**
5. **Models** → **Code**
6. **Model Results** → **Code Runs**

**Recent Activities**

* Project Created *(No Change)*
* **Cohort imported** → **Dataset Imported**
* **Cohort version created** → **Dataset Version Created**
* **Cohort removed** → **Dataset Removed**
* **Cohort version removed** → **Dataset Version Removed**
* **Model created** → **Code Object Created**
* **Model removed** → **Code Object Removed**
* **Model version created** → **Code Object Version Created**
* **Model version removed** → **Code Object Version Removed**
* **Model Run Started** → **Code Run Started**
* Data Schema Created *(No Change)*
* Data Schema Version Created *(No Change)*
* Data Schema Removed *(No Change)*
* Data Schema Version Removed *(No Change)*
* Collaborator Joined Project *(No Change)*

#### Collaborators Page *(No Name Change)*

* Add New Collaborators *(No Change)*
* Search Collaborators *(No Change)*
* Lead *(No Change)*
* Permissions Policy *(See below)*

**Permission Policy**

**Project-Level Permissions**

| Current Permission Name                                   | New Permission Name + Description                                                                                                                                                                                                                                                                                                                                                                                                                             |
| --------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Level of enforcement of differential privacy (0, 1, 2, 3) | <p><strong>Differential Privacy Setting (None, Low, Medium, High)</strong><br>(Privacy filter) - Control the level of noise (if any) is added to data when calculating metrics:<br>- None: Noise is never added.<br>- Low: Noise is only added when calculating percentiles.<br>- Medium: Noise is added for percentiles and other standard metrics when the number of unique values is small.<br>- High: Noise is always added when calculating metrics.</p> |
| K-anonymization parameter                                 | <p><strong>K-Anonymization Parameter</strong><br>(Privacy filter) - Subgroups smaller than K will be excluded from summary statistics.</p>                                                                                                                                                                                                                                                                                                                    |
| Manage models                                             | <p><strong>Manage Code Objects</strong><br>Create, modify, and remove Code Objects in the project</p>                                                                                                                                                                                                                                                                                                                                                         |
| Manage schemas                                            | <p><strong>Manage Data Schemas</strong><br>Create, modify, and remove Data Schemas in the project</p>                                                                                                                                                                                                                                                                                                                                                         |
| Run models                                                | <p><strong>Run Code</strong><br>Run code in the project</p>                                                                                                                                                                                                                                                                                                                                                                                                   |

**Site-Level Permissions**

| Current Permission Name        | New Permission Name + Description                                                                                                                                             |
| ------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Import and Export cohorts      | <p><strong>Manage This Site's Datasets</strong><br>Import, export, modify, and remove Datasets associated with this site</p>                                                  |
| Manage my site's models        | <p><strong>Manage This Site's Code Runs</strong><br>Modify and remove Code Runs associated with this site</p>                                                                 |
| Manage Secure Access Lists     | <p><strong>Manage Secure Access Lists </strong><em><strong>(No Change)</strong></em><br>Create, modify, and remove Secure Access Lists for Datasets from this site</p>        |
| Run models on my site          | <p><strong>Run Code On This Site</strong><br>Run code on Datasets from this site</p>                                                                                          |
| Share Secure Access Lists      | <p><strong>Share Secure Access Lists </strong><em><strong>(No Change)</strong></em><br>Share Secure Access Lists for Datasets from this site</p>                              |
| View client-side logs          | <p><strong>View Client-Side Logs</strong><br>View logs from code run on Datasets from this site</p>                                                                           |
| View cohort analytics          | <p><strong>View Dataset Analytics</strong><br>View aggregated analytics and metrics for Datasets from this site</p>                                                           |
| View cohorts via Secure Access | <p><strong>View Datasets via Secure Access</strong><br>Access data from this site via zero-footprint viewers (e.g. tabular data viewer, and interactive containers, OHIF)</p> |

#### Data Schemas Page *(No Name Change)*

* **Create new schema** → **Create New Data Schema**
* Version *(No Change)*
* Date Created *(No Change)*
* Number of Fields *(No Change)*
* **Number of Cohorts** → **Number of Datasets**
* **Source** → **Creator**
* New Version *(No Change)*
* **Schema variable** → **Data Schema Field**
  * Identifier *(No Change)*
  * Description *(No Change)*
  * Role *(No Change)*
  * Type *(No Change)*
  * **Type params** → **Type Parameters**
  * Units *(No Change)*
  * May contain PHI *(No Change)*
  * Permissions *(No Change)*
* **Add Column** → **Add Field**

#### Cohorts Page → Datasets Page

* Overview *(No Change)*
  * Version *(No Change)*
  * **Schema** → **Data Schema**
  * Date Created *(No Change)*
  * Number of Rows *(No Change)*
  * **Source** → **Creator**
  * **Show cohort configuration** → **Show Dataset Configuration**
* **Import new cohort** → **Import New Dataset**
  * Data Schema *(No Change)*
  * **tabular data file location** → **Tabular Data File Path**
  * **dicom data location** → **DICOM Data Path**
  * **file data location** → **File Data Path**
* Analytics *(No Change)*
  * **datapoints** → **Rows**
  * Data Completeness *(No Change)*
  * **features** → **Fields**

#### Models Page → Code Page

* Version *(No Change)*
* Date Created *(No Change)*
* Runs *(No Change)*
* Latest Run (UTC) *(No Change)*
* **Input Schema** → **Input Data Schema**
* **Output Schema** → **Output Data Schema**
* **Source** → **Creator**
* **Create a new model** → **Create New Code**
  * Type *(No Change)*
  * Python Code *(No Change)*
  * Generalized Compute *(No Change)*
  * Interactive Container *(No Change)*
  * NVIDIA FLARE *(No Change)*
  * Input Data Schema *(No Change)*
  * Output Data Schema *(No Change)*
  * **Auto-generate schema from data** → **Auto-generate Data Schema from Data**
  * Container *(No Change)*
  * Code snippet *(No Change)*
* Run *(No Change)*
  * **Input Cohorts** → **Input Datasets**
  * **Output Cohort name suffix** → **Output Dataset Name Suffix**
  * **idle timeout** → **Idle Timeout (seconds)**
  * **max duration (seconds)** → **Max Duration (seconds)**
  * **run parameters (optional)** → **Run Parameters (JSON, optional)**
  * **Model run triggered** → **Run Triggered**
  * **Import output cohorts** → **Save Output to Project**
  * **Terminate + Import** → **Terminate and Save**
  * **Terminate without import** → **Terminate without Saving**
  * **Model name** → **Code Object Name**
  * **Input name** → **Input Dataset**
* Run Model Training *(No Change)*
  * **training cohorts** → **Training Datasets**
  * **one FL client per training cohort** → **Simulated FL - one FL client per training dataset**
  * **validation cohorts (optional)** → **Validation Datasets (optional)**
  * **output cohort name suffix** → **Output Dataset Name Suffix**
  * **FEDERATED SERVER CONFIG OVERRIDE (OPTIONAL)** → **Federated Server Config Override (optional)**
  * **FEDERATED CLIENT CONFIG OVERRIDE (OPTIONAL)** → **Federated Client Config Override (optional)**
  * **Timeout in seconds** → **Timeout (seconds)**

#### Model Results Page → Code Runs Page

* Type (No Change)
* Run Time (UTC) (No Change)
* Status (No Change)
* **Model Version Code** → **Object Version**
* **Input Cohorts** → **Input Datasets**
* **Output Cohorts** → **Output Datasets**
* Report (No Change)
* **Show model run configuration** → **Show Run Configuration**
* Run Inference (No Change)
* Download Model Parameters (No Change)
* Open TensorBoard *(No Change)*

***

### API Endpoint Changes

#### `/api/{version}/...`

#### `aimodels` → `code_objects`

* `GET /api/{version}/aimodels/` ▶ `GET /api/{version}/code_objects/`
* `POST /api/{version}/aimodels/` ▶ `POST /api/{version}/code_objects/`
* `GET /api/{version}/aimodels/ensure_can_create/` ▶ `GET /api/{version}/code_objects/ensure_can_create/`
* `GET /api/{version}/aimodels/get_ic_supported_versions/` ▶ `GET /api/{version}/code_objects/get_auto_containers_supported_versions/`
* `GET /api/{version}/aimodels/{uid}/` ▶ `GET /api/{version}/code_objects/{uid}/`
* `GET /api/{version}/aimodels/{uid}/build_logs/` ▶ `GET /api/{version}/code_objects/{uid}/build_logs/`
* `POST /api/{version}/aimodels/{uid}/remove/` ▶ `POST /api/{version}/code_objects/{uid}/remove/`
* `PATCH /api/{version}/aimodels/{uid}/rename/` ▶ `PATCH /api/{version}/code_objects/{uid}/rename/`
* `POST /api/{version}/aimodels/{uid}/run/` ▶ `POST /api/{version}/code_objects/{uid}/run/`
* `POST /api/{version}/aimodels/{uid}/train/` ▶ `POST /api/{version}/code_objects/{uid}/train/`
* `GET /api/{version}/aimodels/{uid}/versions/` ▶ `GET /api/{version}/code_objects/{uid}/versions/`

#### `cohorts` → `datasets`

* `GET /api/{version}/cohorts/` ▶ `GET /api/{version}/datasets/`
* `POST /api/{version}/cohorts/` ▶ `POST /api/{version}/datasets/`
* `GET /api/{version}/cohorts/{uid}/` ▶ `GET /api/{version}/datasets/{uid}/`
* `GET /api/{version}/cohorts/{uid}/data/` ▶ `GET /api/{version}/datasets/{uid}/data/`
* `POST /api/{version}/cohorts/{uid}/export/` ▶ `POST /api/{version}/datasets/{uid}/export/`
* `GET /api/{version}/cohorts/{uid}/image_data/` ▶ `GET /api/{version}/datasets/{uid}/image_data/`
* `POST /api/{version}/cohorts/{uid}/import/` ▶ `POST /api/{version}/datasets/{uid}/import/`
* `GET /api/{version}/cohorts/{uid}/info/` ▶ `GET /api/{version}/datasets/{uid}/info/`
* `POST /api/{version}/cohorts/{uid}/metric/` ▶ `POST /api/{version}/datasets/{uid}/metric/`
* `POST /api/{version}/cohorts/{uid}/remove/` ▶ `POST /api/{version}/datasets/{uid}/remove/`
* `PATCH /api/{version}/cohorts/{uid}/rename/` ▶ `PATCH /api/{version}/datasets/{uid}/rename/`
* `GET /api/{version}/cohorts/{uid}/secure_access_lists/` ▶ `GET /api/{version}/datasets/{uid}/secure_access_lists/`
* `POST /api/{version}/cohorts/{uid}/update_notes/` ▶ `POST /api/{version}/datasets/{uid}/update_notes/`

#### `dataschemas` → `data_schemas`

* `GET /api/{version}/dataschemas/` ▶ `GET /api/{version}/data_schemas/`
* `POST /api/{version}/dataschemas/` ▶ `POST /api/{version}/data_schemas/`
* `GET /api/{version}/dataschemas/ensure_can_create/` ▶ `GET /api/{version}/data_schemas/ensure_can_create/`
* `GET /api/{version}/dataschemas/validate_config/` ▶ `GET /api/{version}/data_schemas/validate_config/`
* `GET /api/{version}/dataschemas/{uid}/` ▶ `GET /api/{version}/data_schemas/{uid}/`
* `GET /api/{version}/dataschemas/{uid}/export_to_csv/` ▶ `GET /api/{version}/data_schemas/{uid}/export_to_csv/`
* `POST /api/{version}/dataschemas/{uid}/remove/` ▶ `POST /api/{version}/data_schemas/{uid}/remove/`
* `PATCH /api/{version}/dataschemas/{uid}/rename/` ▶ `PATCH /api/{version}/data_schemas/{uid}/rename/`

#### `dicomweb-queries` → `dicomweb_queries`

* `GET /api/{version}/dicomweb-queries/` ▶ `GET /api/{version}/dicomweb_queries/`
* `POST /api/{version}/dicomweb-queries/` ▶ `POST /api/{version}/dicomweb_queries/`
* `GET /api/{version}/dicomweb-queries/{uid}/` ▶ `GET /api/{version}/dicomweb_queries/{uid}/`

#### `federated-dataset-access-requests` → `federated_dataset_access_requests`

* `GET /api/{version}/federated-dataset-access-requests/` ▶ `GET /api/{version}/federated_dataset_access_requests/`
* `POST /api/{version}/federated-dataset-access-requests/` ▶ `POST /api/{version}/federated_dataset_access_requests/`
* `GET /api/{version}/federated-dataset-access-requests/{uid}/` ▶ `GET /api/{version}/federated_dataset_access_requests/{uid}/`
* `PUT /api/{version}/federated-dataset-access-requests/{uid}/` ▶ `PUT /api/{version}/federated_dataset_access_requests/{uid}/`
* `PATCH /api/{version}/federated-dataset-access-requests/{uid}/` ▶ `PATCH /api/{version}/federated_dataset_access_requests/{uid}/`

#### `federated-datasets` → `federated_datasets`

* `GET /api/{version}/federated-datasets/` ▶ `GET /api/{version}/federated_datasets/`
* `POST /api/{version}/federated-datasets/` ▶ `POST /api/{version}/federated_datasets/`
* `GET /api/{version}/federated-datasets/cohort_analytics_accessibility_for_user/` ▶ `GET /api/{version}/federated_datasets/dataset_analytics_accessibility_for_user/`
* `GET /api/{version}/federated-datasets/cohorts_workgroup_admin_users_info/` ▶ `GET /api/{version}/federated_datasets/dataset_workgroup_admin_users_info/`
* `GET /api/{version}/federated-datasets/{uid}/` ▶ `GET /api/{version}/federated_datasets/{uid}/`
* `DELETE /api/{version}/federated-datasets/{uid}/` ▶ `DELETE /api/{version}/federated_datasets/{uid}/`
* `GET /api/{version}/federated-datasets/{uid}/cohorts_info/` ▶ `GET /api/{version}/federated_datasets/{uid}/cohorts_info/`
  * **Parameter:** `cohorts` ▶ `datasets`

#### `federatedmodelactions` → `code_runs`

* `GET /api/{version}/federatedmodelactions/` ▶ `GET /api/{version}/code_runs/`
  * **Parameter:** `aimodel_uid` ▶ `code_object_uid`
* `GET /api/{version}/federatedmodelactions/{uid}/` ▶ `GET /api/{version}/code_runs/{uid}/`
* `GET /api/{version}/federatedmodelactions/{uid}/download_model_params/` ▶ `GET /api/{version}/code_runs/{uid}/download_code_params/`
  * **Parameter:** `model_weights_files` ▶ `model_params_files`
* `POST /api/{version}/federatedmodelactions/{uid}/end_interactive_gc/` ▶ `POST /api/{version}/code_runs/{uid}/end_interactive_gc/`
* `GET /api/{version}/federatedmodelactions/{uid}/get_secure_access_logs/` ▶ `GET /api/{version}/code_runs/{uid}/get_secure_access_logs/`
* `GET /api/{version}/federatedmodelactions/{uid}/halt/` ▶ `GET /api/{version}/code_runs/{uid}/halt/`
* `GET /api/{version}/federatedmodelactions/{uid}/heart_beat/` ▶ `GET /api/{version}/code_runs/{uid}/heart_beat/`
* `POST /api/{version}/federatedmodelactions/{uid}/import_cohorts_interactive_gc/` ▶ `POST /api/{version}/code_runs/{uid}/import_dataset_interactive_gc/`
* `GET /api/{version}/federatedmodelactions/{uid}/logs/` ▶ `GET /api/{version}/code_runs/{uid}/logs/`
* `POST /api/{version}/federatedmodelactions/{uid}/remove/` ▶ `POST /api/{version}/code_runs/{uid}/remove/`
* `POST /api/{version}/federatedmodelactions/{uid}/run_inference/` ▶ `POST /api/{version}/code_runs/{uid}/run_inference/`
* `POST /api/{version}/federatedmodelactions/{uid}/set_report/` ▶ `POST /api/{version}/code_runs/{uid}/set_report/`
* `POST /api/{version}/federatedmodelactions/{uid}/set_scores/` ▶ `POST /api/{version}/code_runs/{uid}/set_scores/`

#### `projects` → `projects`

* `POST /api/{version}/projects/calculate_aggregate_metric/` ▶ `POST /api/{version}/projects/calculate_aggregate_metric/`
  * **Parameter:** `cohort_uids` ▶ `dataset_uids`
* `GET /api/{version}/projects/{uid}/cohorts/` ▶ `GET /api/{version}/projects/{uid}/datasets/`
* `GET /api/{version}/projects/{uid}/cohorts_info/` ▶ `GET /api/{version}/projects/{uid}/datasets_info/`
  * **Parameter:** `cohorts` ▶ `datasets`
* `GET /api/{version}/projects/{uid}/model_actions/` ▶ `GET /api/{version}/projects/{uid}/code_actions/`
* `GET /api/{version}/projects/{uid}/models/` ▶ `GET /api/{version}/projects/{uid}/code_objects/`

#### `secureaccesslist` → `secure_access_lists`

* `GET /api/{version}/secureaccesslist/` ▶ `GET /api/{version}/secure_access_lists/`
* `POST /api/{version}/secureaccesslist/` ▶ `POST /api/{version}/secure_access_lists/`
* `GET /api/{version}/secureaccesslist/{uid}/` ▶ `GET /api/{version}/secure_access_lists/{uid}/`
* `GET /api/{version}/secureaccesslist/{uid}/data/` ▶ `GET /api/{version}/secure_access_lists/{uid}/data/`

#### `secureaccesslistshare` → `secure_access_list_shares`

* `GET /api/{version}/secureaccesslistshare/` ▶ `GET /api/{version}/secure_access_list_shares/`
* `POST /api/{version}/secureaccesslistshare/` ▶ `POST /api/{version}/secure_access_list_shares/`
* `GET /api/{version}/secureaccesslistshare/{uid}/` ▶ `GET /api/{version}/secure_access_list_shares/{uid}/`

#### `sql-queries` → `sql_queries`

* `GET /api/{version}/sql-queries/` ▶ `GET /api/{version}/sql_queries/`
* `POST /api/{version}/sql-queries/` ▶ `POST /api/{version}/sql_queries/`
* `GET /api/{version}/sql-queries/{uid}/` ▶ `GET /api/{version}/sql_queries/{uid}/`

#### `tensorboard` → `tensorboard`

* `GET /api/{version}/tensorboard/get-or-create/` ▶ `GET /api/{version}/tensorboard/get_or_create/`
* `GET /api/{version}/tensorboard/heart-beat/` ▶ `GET /api/{version}/tensorboard/heartbeat/`

### API Model Changes

#### `AIModelFlat` → `CodeObjectFlat`

#### `CohortFlat` → `DatasetFlat`

#### `FederatedDataset` → `FederatedDataset`

* **Entity:** `cohorts` ▶ `datasets`

#### `FederatedModelActionFlat` → `CodeRunFlat`

* **Entity:** `aimodel` ▶ `code_object`
* **Entity:** `input_cohort_uids` ▶ `input_dataset_uids`
* **Entity:** `output_cohort_uids` ▶ `output_dataset_uids`

#### `RunInferenceParams` → `RunInferenceParams`

* **Entity:** `validation_cohort_uids` ▶ `validation_dataset_uids`
* **Entity:** `validation_cohorts_inference_suffix` ▶ `validation_datasets_inference_suffix`

#### `TrainParams` → `TrainParams`

* **Entity:** `input_cohort_uids` ▶ `input_dataset_uids`
* **Entity:** `validation_cohort_uids` ▶ `validation_dataset_uids`
* **Entity:** `validation_cohorts_inference_suffix` ▶ `validation_datasets_inference_suffix`

#### `ModelResultsSetScoreParams` → `CodeRunSetScoreParams`

#### `SecureAccessListFlat` → `SecureAccessListFlat`

* **Entity:** `cohort` ▶ `dataset`

***

### SDK Changes

#### `rhino_health.lib.endpoints`

#### ↳ `aimodel` → `code`

* **Class:** `AIModel` ▶ `CodeObject`
  * **Variable:** `build_status` ▶ `build_status`
    * **Type:** `Optional[AIModelBuildStatus]` ▶ `Optional[CodeObjectBuildStatus]`
  * **Variable:** `model_type` ▶ `code_type`
  * **Function:** `wait_for_build` ▶ `wait_for_build`
    * **Returns:** `AIModel` ▶ `CodeObject`
* **Class:** `AIModelCreateInput` ▶ `CodeObjectCreateInput`
  * **Variable:** `model_type` ▶ `code_type`
* **Class:** `AIModelRunInput` ▶ `CodeObjectRunInput`
  * **Variable:** `input_cohort_uid` ▶ `input_dataset_uid`
  * **Variable:** `output_cohort_names_suffix` ▶ `output_dataset_names_suffix`
  * **Variable:** `aimodel_uid` ▶ `code_object_uid`

#### ↳ `aimodel.aimodel_dataclass` → `code.code_object_dataclass`

* **Class:** `CodeRunType` ▶ `CodeRunType`
  * **Variable:** `INSTANT_CONTAINER_NVFLARE` ▶ `AUTO_CONTAINER_NVFLARE`
  * **Variable:** `INSTANT_CONTAINER_SNIPPET` ▶ `AUTO_CONTAINER_SNIPPET`
  * **Variable:** `INSTANT_CONTAINER_FILE` ▶ `AUTO_CONTAINER_FILE`
* **Class:** `ModelTypes` ▶ `CodeTypes`
* **Class:** `AIModelBuildStatus` ▶ `CodeObjectBuildStatus`
* **Class:** `AIModelCreateInput` ▶ `CodeObjectCreateInput`
  * **Variable:** `model_type` ▶ `code_type`
  * **Variable:** `input_dataschema_uid` removed as was deprecated
  * **Variable:** `output_dataschema_uid` removed as was deprecated
* **Class:** `AIModel` ▶ `CodeObject`
  * **Variable:** `build_status` ▶ `build_status`
    * **Type:** `Optional[AIModelBuildStatus]` ▶ `Optional[CodeObjectBuildStatus]`
  * **Variable:** `model_type` ▶ `code_type`
  * **Function:** `wait_for_build` ▶ `wait_for_build`
    * **Returns:** `AIModel` ▶ `CodeObject`
* **Class:** `AIModelRunInput` ▶ `CodeObjectRunInput`
  * **Variable:** `input_cohort_uid` ▶ `input_dataset_uid`
  * **Variable:** `output_cohort_names_suffix` ▶ `output_dataset_naming_templates`
  * **Variable:** `aimodel_uid` ▶ `code_object_uid`
* **Class:** `AIModelMultiCohortInput` ▶ `CodeRunMultiDatasetInput`
  * **Variable:** `input_cohort_uids` ▶ `input_dataset_uids`
  * **Variable:** `output_cohort_naming_templates` ▶ `output_dataset_naming_templates`
  * **Variable:** `aimodel_uid` ▶ `code_object_uid`
* **Class:** `AIModelTrainInput` ▶ `ModelTrainInput`
  * **Variable:** `aimodel_uid` ▶ `code_object_uid`
  * **Variable:** `input_cohort_uids` ▶ `input_dataset_uids`
  * **Variable:** `validation_cohort_uids` ▶ `validation_dataset_uids`
  * **Variable:** `validation_cohorts_inference_suffix` ▶ `validation_datasets_inference_suffix`
* **Class:** `AIModelTrainAsyncResponse` ▶ `ModelTrainAsyncResponse`
  * **Variable:** `model_result_uid` ▶ `code_run_uid`
  * **Property:** `model_result` ▶ `code_run`
    * **Returns:** `ModelResult` ▶ `CodeRun`
  * **Function:** `wait_for_completion` ▶ `wait_for_completion`
    * **Returns:** `ModelResult` ▶ `CodeRun`

#### ↳ `aimodel.aimodel_endpoints` → `code.code_object_endpoints`

* **Class:** `AIModelEndpoints` ▶ `CodeObjectEndpoints`
  * **Function:** `get_aimodel` ▶ `get_code_object`
    * **Parameter:** `aimodel_uid` ▶ `code_object_uid`
    * **Returns:** `AIModel` ▶ `CodeObject`
  * **Function:** `get_aimodel_by_name` ▶ `get_code_object_by_name`
    * **Returns:** `Optional[AIModel]` ▶ `Optional[CodeObject]`
  * **Function:** `search_for_aimodels_by_name` ▶ `search_for_code_object_by_name`
    * **Returns:** `List[AIModel]` ▶ `List[CodeObject]`
  * **Function:** `create_aimodel` ▶ `create_code_object`
    * **Parameter:** `AIModelCreateInput` ▶ `CodeObjectCreateInput`
    * **Returns:** `AIModel` ▶ `CodeObject`
  * **Function:** `run_aimodel` ▶ `run_code_object`
    * **Parameter:** `Union[AIModelRunInput, AIModelMultiCohortInput]` ▶ `Union[CodeObjectRunInput, CodeRunMultiDatasetInput]`
    * **Returns:** `Union[AIModelRunSyncResponse, AIModelRunAsyncResponse]` ▶ `Union[CodeRunSyncResponse, CodeRunAsyncResponse]`
  * **Function:** `train_aimodel` ▶ `train_model`
    * **Parameter:** `AIModelTrainInput` ▶ `ModelTrainInput`
    * **Returns:** `model_action_uid` ▶ `code_run_uid`
  * **Function:** `get_build_logs` ▶ `get_build_logs`
    * **Parameter:** `aimodel_uid` ▶ `code_object_uid`

#### ↳ `cohort` → `dataset`

#### ↳ `cohort.cohort_dataclass` → `dataset.dataset_dataclass`

* **Class:** `CohortCreateInput` ▶ `DatasetCreateInput`
* **Class:** `Cohort` ▶ `Dataset`
  * **Variable:** `cohort_info` ▶ `dataset_info`
  * **Function:** `run_code` ▶ `run_code`
    * **Parameter:** `output_cohort_names_suffix` ▶ `output_dataset_names_suffix`
    * **Returns:** `Tuple[List[Cohort], AIModelRunSyncResponse]` ▶ `Tuple[List[Dataset], CodeRun]`

#### ↳ `cohort.cohort_endpoints` → `dataset.dataset_endpoints`

* **Class:** `CohortEndpoints` ▶ `DatasetEndpoints`
  * **Function:** `get_cohort_by_name` ▶ `get_dataset_by_name`
    * **Returns:** `Optional[Cohort]` ▶ `Optional[Dataset]`
  * **Function:** `search_for_cohorts_by_name` ▶ `search_for_datasets_by_name`
    * **Returns:** `List[Cohort]` ▶ `List[Dataset]`
  * **Function:** `add_cohort` ▶ `add_dataset`
    * **Parameters:** `CohortCreateInput` ▶ `DatasetCreateInput`
    * **Returns:** `Cohort` ▶ `Dataset`
  * **Function:** `export_cohort` ▶ `export_dataset`
    * **Parameters:** `cohort_uid` ▶ `dataset_uid`
  * **Function:** `sync_cohort_info` ▶ `sync_dataset_info`
    * **Parameters:** `cohort_uid` ▶ `dataset_uid`
  * **Function:** `remove_cohort` ▶ `remove_dataset`
    * **Parameters:** `cohort_uid` ▶ `dataset_uid`
  * **Function:** `get_cohort` ▶ `get_dataset`
    * **Parameters:** `cohort_uid` ▶ `dataset_uid`
    * **Returns:** `Cohort` ▶ `Dataset`
  * **Function:** `get_cohort_metric` ▶ `get_dataset_metric`
    * **Parameters:** `cohort_uid` ▶ `dataset_uid`

#### ↳ `data_schema` → `data_schema`

#### ↳ `data_schema.data_schema_dataclass` → `data_schema.data_schema_dataclass`

* **Class:** `Dataschema` ▶ `DataSchema`
  * **Variable:** `num_cohorts` ▶ `num_datasets`
* **Variable:** `num_datasets` removed

#### ↳ `federated_dataset` → `federated_dataset`

#### ↳ `federated_dataset.federated_dataset_dataclass` → `federated_dataset.federated_dataset_dataclass`

* **Class:** `FederatedDatasetCreateInput` ▶ `FederatedDatasetCreateInput`
  * **Variable:** `cohorts` ▶ `datasets`
  * **Variable:** `cohort_uids` ▶ `dataset_uids`
* **Class:** `FederatedDataset` ▶ `FederatedDataset`
  * **Parameter:** `cohort_uids` ▶ `cohort_uids`
  * **Variable:** `cohorts` ▶ `cohorts`
  * **Returns:** `List[Cohort]` ▶ `List[Dataset]`

#### ↳ `model_result` → `code_run`

#### ↳ `model_result.model_result_dataclass` → `code_run.code_run_dataclass`

* **Class:** `ModelResultStatus` ▶ `CodeRunStatus`
* **Class:** `ModelResult` ▶ `CodeRun`
  * **Parameter:** `status` ▶ `status`
    * **Type:** `ModelResultStatus` ▶ `CodeRunStatus`
  * **Parameter:** `input_cohort_uids` ▶ `input_dataset_uids`
  * **Parameter:** `output_cohort_uids` ▶ `output_dataset_uids`
  * **Parameter:** `aimodel_uid` ▶ `code_object_uid`
  * **Property:** `aimodel` ▶ `code_object`
    * **Returns:** `AIModel` ▶ `CodeObject`
  * **Property:** `input_cohorts` ▶ `input_datasets`
    * **Returns:** `List[Cohort]` ▶ `List[Dataset]`
  * **Property:** `output_cohorts` ▶ `output_datasets`
  * **Function:** `wait_for_completion` ▶ `wait_for_completion`
    * **Returns:** `ModelResult` ▶ `CodeRun`
  * **Property:** `model_params_external_storage_path` ▶ `paths_to_model_params`

#### ↳ `model_result.model_result_endpoints` → `code_run.code_run_endpoints`

* **Class:** `ModelResultEndpoints` ▶ `CodeRunEndpoints`
  * **Function:** `halt_model_run` ▶ `halt_code_run`
    * **Parameters:** `model_action_uid` ▶ `code_run_uid`
  * **Function:** `run_inference` ▶ `run_inference`
    * **Parameter:** `model_action_uid` ▶ `code_run_uid`
    * **Parameter:** `validation_cohort_uids` ▶ `validation_dataset_uids`
    * **Parameter:** `validation_cohorts_suffix` ▶ `validation_datasets_suffix`
    * **Returns:** `AIModelRunAsyncResponse` ▶ `CodeRunAsyncResponse`
* **Class:** `ModelResultFutureEndpoint` ▶ `CodeRunFutureEndpoints`
  * **Function:** `get_model_result` ▶ `get_code_run`
    * **Parameter:** `model_result_uid` ▶ `code_run_uid`
    * **Returns:** `ModelResult` ▶ `CodeRun`
  * **Function:** `get_model_params` ▶ `get_model_params`
    * **Parameter:** `model_result_uid` ▶ `code_run_uid`
    * **Returns:** model\_params

#### ↳ `project` → `project`

#### ↳ `project.project_dataclass` → `project.project_dataclass`

* **Class:** `Project` ▶ `Project`
  * **Property:** `cohorts` ▶ `datasets`
    * **Returns:** `List[Cohort]` ▶ `List[Dataset]`
  * **Property:** `status` ▶ `stats`
  * **Function:** `get_cohort_by_name` ▶ `get_dataset_by_name`
    * **Returns:** `Optional[Cohort]` ▶ `Optional[Dataset]`
  * **Function:** `search_for_cohorts_by_name` ▶ `search_for_datasets_by_name`
    * **Returns:** `List[Cohort]` ▶ `List[Dataset]`
  * **Property:** `aimodels` ▶ `code_objects`
    * **Returns:** `List[AIModel]` ▶ `List[CodeObject]`
  * **Function:** `get_aimodel_by_name` ▶ `get_code_object_by_name`
    * **Returns:** `Optional[AIModel]` ▶ `Optional[CodeObject]`
  * **Function:** `search_for_aimodels_by_name` ▶ `search_for_code_object_by_name`
    * **Returns:** `List[AIModel]` ▶ `List[CodeObject]`
  * **Function:** `aggregate_cohort_metric` ▶ `aggregate_dataset_metric`
    * **Parameters:** `cohort_uids` ▶ `dataset_uids`
  * **Function:** `joined_cohort_metric` ▶ `joined_dataset_metric`
    * **Parameters:** `data_cohorts` ▶ `data_datasets`
    * **Parameters:** `filter_cohorts` ▶ `filter_datasets`

#### ↳ `project.project_endpoints` → `project.project_endpoints`

* **Class:** `ProjectEndpoints` ▶ `ProjectEndpoints`
  * **Function:** `get_cohorts` ▶ `get_datasets`
    * **Returns:** `List[Cohort]` ▶ `List[Dataset]`
  * **Function:** `get_cohort_by_name` ▶ `get_dataset_by_name`
    * **Returns:** `Optional[Cohort]` ▶ `Optional[Dataset]`
  * **Function:** `search_for_cohorts_by_name` ▶ `search_for_datasets_by_name`
    * **Returns:** `List[Cohort]` ▶ `List[Dataset]`
  * **Function:** `get_aimodels` ▶ `get_code_objects`
    * **Returns:** `List[AIModel]` ▶ `List[CodeObject]`
  * **Function:** `get_aimodel_by_name` ▶ `get_code_object_by_name`
    * **Returns:** `Optional[AIModel]` ▶ `Optional[CodeObject]`
  * **Function:** `search_for_aimodels_by_name` ▶ `search_for_code_objects_by_name`
    * **Returns:** `List[AIModel]` ▶ `List[CodeObject]`
  * **Function:** `aggregate_cohort_metric` ▶ `aggregate_dataset_metric`
    * **Parameters:** `cohort_uids` ▶ `dataset_uids`
  * **Function:** `joined_cohort_metric` ▶ `joined_dataset_metric`
    * **Parameters:** `data_cohorts` ▶ `data_datasets`
    * **Parameters:** `filter_cohorts` ▶ `filter_datasets`

#### ↳ `sql_query` → `sql_query`

* **Class:** `SQLQueryImportInput` ▶ `SQLQueryImportInput`
  * **Variable:** `cohort_name` ▶ `dataset_name`

#### ↳ `sql_query.sql_query_dataclass` → `sql_query.sql_query_dataclass`

* **Class:** `SQLQueryImportInput` ▶ `SQLQueryImportInput`
  * **Variable:** `cohort_name` ▶ `dataset_name`

#### `rhino_health.lib.metrics`

#### ↳ `aggregate_metrics` → `aggregate_metrics`

#### ↳ `aggregate_metrics.aggregation_service` → `aggregate_metrics.aggregation_service`

* **Function:** `get_cloud_aggregated_metric_data` ▶ `get_cloud_aggregated_metric_data`
  * **Parameter:** `cohort_uids` ▶ `dataset_uids`

#### ↳ `base_metric` → `base_metric`

* **Class:** `DataFilter` ▶ `DataFilter`
  * **Variable:** `filter_cohort` ▶ `filter_dataset`

#### `rhino_health.lib.rhino_session`

* **Class:** `RhinoSession` ▶ `RhinoSession`
  * **Attributes:** `aimodel` ▶ `code_object`
  * **Attributes:** `cohort` ▶ `dataset`
  * **Attributes:** `model_result` ▶ `code_runs`

If you have questions or comments at any part of this conversion process, please reach out to <support@rhinohealth.com>.
