How to Read the Template Documentation
Each template page has a header block (file name, type, schema version,
description) followed by one column table per template — or, for a
compound template such as basic_study_design, one table per section.
The "Requirement" column
| Value | Meaning |
|---|---|
| Required | The field must have a value in every data row. Required fields are also shown in bold in the downloadable Excel/text template. |
| Conditionally required | The field is required only in certain situations — for example when a related field has a particular value, or when you are defining a new record rather than referencing an existing one. Where the trigger is known, it's shown right under the label (e.g. when Race = "Other"); otherwise it's described in the field's Description / italicised comment. Conditionally required fields are not bold in the template, so they are easy to miss. |
| Optional | The field may be left empty. |
If a conditionally required field is left blank when its condition is met, the Validator reports "Missing conditional required value" (see Data Package Validation, row 7).
The "Type & Constraints" column
| Annotation | Meaning |
|---|---|
| Text, max N characters | Character limit enforced against the database column. Exceeding it reports "The character count exceeds the database column width". |
| Date (DD-MMM-YYYY) | Dates must be DD-MMM-YYYY or DD-MMM-YY (e.g. 06-Feb-2005). Numeric or ISO dates are rejected. |
| Integer / Number | A bare number — no units, no thousands separators, no text. Some fields require a positive or non-negative integer; the Description says so. |
Controlled vocabulary — value must be one of lk_… |
A hard constraint. Only an exact value from that list is accepted; free text is rejected. Use the dropdown in the Excel template, or see the linked lk_… page for the allowed values. |
Preferred vocabulary — reported value is kept; a preferred term from lk_… is filled in when it matches |
A soft constraint. Your reported (free-text) value is stored as-is; if it matches an entry in the mapping table, ImmPort also fills a companion "preferred" column. An unmatched value is not rejected, but no preferred term is assigned. |
Reference — must already exist as a … |
The value must resolve to a record defined elsewhere in the same upload package or already present in the target workspace, spelled identically in both places. An unresolved reference is a foreign-key error. |
| Result data column / Metadata column | For combined-result templates (e.g. subjectHumans, assessments): metadata columns describe the row; result data columns hold the repeating per-analyte values to the right of the Result Separator Column. |
JSON: attribute (type) |
The attribute name and data type to use if you submit this template in JSON format instead of tab-delimited text or Excel. |
Template types
Type |
Layout |
|---|---|
single |
One flat table; each row is one record. |
compound |
Several named sections in one file (shown as separate tables here). Each section is marked required or optional. |
combined / combined-multiple |
Metadata columns plus one or more repeating column groups in the same row. |
combined-result |
Metadata columns, a Result Separator Column, then repeating result-data column groups. |
multiple |
Repeating column groups only. |
Where the allowed values live
Controlled- and preferred-vocabulary lists are database lookup tables
(lk_…), each snapshotted on its own page (linked from the Type &
Constraints column of every template above). They are not part of
the template itself — adding a new allowed value is a database
change, not a template edit.