> For the complete documentation index, see [llms.txt](https://docs.mymedtrics.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.mymedtrics.com/get-started/classic-data-mapping.md).

# Classic data mapping

Where each Medtrics Classic table and field lands in Oracle — confirmed mappings only, from the migration loaders.

Where the fields of a Medtrics Classic database land in Oracle, read from the migration loaders — the only place the answer is proven. For a data team moving reports and integrations off the Medtrics Classic schema. Only **confirmed** mappings are documented: a field is here when a loader writes it, and nowhere otherwise.

| Item     | Value                                                                                                                                                                                                                                                  |
| -------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| In scope | 189 Medtrics Classic tables with a confirmed home, 1,384 fields                                                                                                                                                                                        |
| Outcomes | Unchanged 246 · Renamed 675 · ID changed 463                                                                                                                                                                                                           |
| Source   | the migration loaders of the Medtrics client-migration toolkit (58 files), Oracle schema at `dbcf3f853`                                                                                                                                                |
| Download | [legacy-to-oracle-mapping.csv](https://2912658775-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxpbJErq8GWWHPPkzmpv3%2Fuploads%2FZwY3jdTaHRm39A9zWxvo%2Flegacy-to-oracle-mapping.csv?alt=media) — every confirmed field, one row |

### Map of the data

Each box is an area, sized by its share of the 1,384 confirmed fields; the bar at its foot is the outcome mix.

![Map of the data: 8 areas sized by confirmed field count](https://2912658775-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FxpbJErq8GWWHPPkzmpv3%2Fuploads%2FE5aiX4LY7XhaYSAgdKKb%2Fmap-of-the-data.png?alt=media)

| Area                                                                                           | Modules                                                               | Tables | Fields | Outcomes                                    |
| ---------------------------------------------------------------------------------------------- | --------------------------------------------------------------------- | ------ | ------ | ------------------------------------------- |
| [People and roles](/get-started/classic-data-mapping/people-and-roles.md)                      | Users & Roles · Trainees / Students · Faculty / Educators             | 40     | 273    | Unchanged 63 · Renamed 109 · ID changed 101 |
| [Evaluations and grades](/get-started/classic-data-mapping/evaluations-and-grades.md)          | Evaluations & Assessments · Grade Books                               | 31     | 247    | Unchanged 56 · Renamed 107 · ID changed 84  |
| [Scheduling](/get-started/classic-data-mapping/scheduling.md)                                  | Rotations / Clinical Scheduling · Shift Schedules · Calendar & Events | 29     | 218    | Unchanged 29 · Renamed 99 · ID changed 90   |
| [Admin, messages and reports](/get-started/classic-data-mapping/admin-messages-and-reports.md) | Notifications & Announcements · IRIS reporting                        | 11     | 86     | Unchanged 8 · Renamed 55 · ID changed 23    |
| [Requirements and leave](/get-started/classic-data-mapping/requirements-and-leave.md)          | Requirements & Documents · Time Off & Benefits · Scholarly Activity   | 26     | 210    | Unchanged 22 · Renamed 120 · ID changed 68  |
| [Programs](/get-started/classic-data-mapping/programs.md)                                      | Programs & Institutions                                               | 14     | 128    | Unchanged 23 · Renamed 82 · ID changed 23   |
| [Cases and hours](/get-started/classic-data-mapping/cases-and-hours.md)                        | Case / Procedure Logging · Work Hours                                 | 18     | 110    | Unchanged 12 · Renamed 63 · ID changed 35   |
| [Curriculum](/get-started/classic-data-mapping/curriculum.md)                                  | Preclinical / Sessions / Curriculum · Objectives / Outcomes           | 20     | 112    | Unchanged 33 · Renamed 40 · ID changed 39   |

### What happens to each field

Every confirmed field has exactly one outcome. The outcome says what to do with a query that used the field.

| Outcome        | Fields    | What to do      | Why                                                                           |
| -------------- | --------- | --------------- | ----------------------------------------------------------------------------- |
| **Unchanged**  | 246 (18%) | no change       | Same name, same meaning. Only the table around them changed.                  |
| **Renamed**    | 675 (49%) | swap the name   | Same data, new name or new table. Swap the old name for the new one.          |
| **ID changed** | 463 (33%) | re-key the join | These hold IDs. Old numbers became UUIDs, so joins to stored IDs must change. |

### Three rules for every query

* **Every ID is new.** Numbers became UUIDs. Join people on email, not on old IDs.
* **Deleted rows stay.** Filter with WHERE deleted\_at IS NULL on every table that has the column.
* **Times carry a time zone.** Timestamps are timestamptz; Medtrics Classic naive datetimes were interpreted in the institution's zone.
* **Soft delete.** 622 Oracle tables carry `deleted_at`; the starter query on each table adds the filter when its table has the column.

### Identifiers

| Where                              | How                                                                                                                                                                                                                                                                                             |
| ---------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| In the loaders                     | `etl.idmap`: (entity type, Medtrics Classic integer id) → Oracle uuid, per institution; foreign keys resolve through it, unresolved ids stay NULL with the Classic id kept in JSON metadata                                                                                                     |
| In the Medtrics Classic SIS Bridge | `etl_id_registry` (`source_entity_type` + `source_id` → `oracle_id` + `oracle_table`): numeric ids an SIS still sends resolve to Oracle rows; rows the bridge creates get synthetic ids from 100,000,000 — see the [Medtrics Classic SIS Bridge](/api-reference/medtrics-classic-sis-bridge.md) |
| For a query                        | 463 confirmed fields hold an id. Join people on `email`, not on a stored number                                                                                                                                                                                                                 |


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.mymedtrics.com/get-started/classic-data-mapping.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
