Data model
How StudyTrax organizes people, studies, and collected data.
Customer → Project → Site → User
Customer
└── Project
├── Site(s)
├── Users (roles at customer, project, or site)
├── Variable Groups (forms / CRFs)
├── Intervals (visit definitions)
├── Encounters (one interval, one subject, one time)
└── Custom Entities (live)
- Customer — the organization account. Shared people, sites, and reusable forms live here. In the staff app, go to Customer (left nav: Users, Sites, Variable Groups, Medications, Subjects).
- Project — one study or registry: forms, visit schedule, and who can do what.
- Site — a location on the project. Most project roles are granted per site.
- User — a staff account, created once, then added to projects. See Add a staff user.
Variable Groups (forms / CRFs)
A variable is one question. A Variable Group is a form (CRF, questionnaire, instrument): the variables plus layout. Create a group once; attach it to many visits.
Three kinds:
| Kind | When it is collected |
|---|---|
| Universal Subject Variables | Across all projects for that person. Re-enrollment should not require re-entry. A project can hide any of them. |
| Project Variables | Once per subject in this project (example: discontinuation date). |
| Encounter Variables | At visits. The same group can attach to many intervals. |
Interval vs Encounter
- Interval — the visit definition (Baseline, Week 12, an ad-hoc log). Fixed intervals are scheduled from Baseline. Non-fixed intervals are ad-hoc or repeating.
- Encounter — one instance of that interval for one subject.
Reference ID vs Project ID
| ID | Required? | Unique how | Meaning |
|---|---|---|---|
| Reference ID | Yes | Across all projects (customer-wide) | The same person in every project they join. Optional auto-template at the customer. |
| Project ID | Optional per project; if on, every subject in that project needs one | Inside that project | Optional auto-template; can sequence by site. |
| Subject Name | Optional | n/a | Fields may be left blank. |
What you search by and what you export can be set separately so exports can omit identifiers.
Custom Entities
Custom Entities are live. They are a current part of the data model, not a future feature.
What you store on a Custom Entity, and the click-path to create one, are not documented here yet. See GAPS.
Changing definitions
- You cannot make a data definition more restrictive. A change must keep the existing definition valid.
- To change a variable's data type, create a new variable. Do not edit the type in place.
- Type is set when you create the variable. Public docs name these types: numeric (optional min/max), text, date, categorical, checkbox.