eCRF builder
Visits and windows, the visit x form matrix, forms, fields and their properties.
The eCRF builder is where the study manager sets up what the investigators fill in: visits, the forms at each visit, the fields of each form and their checks. Open it from the study menu, “eCRF builder”. Only the study manager changes the design; the rest of the team fills the forms in.
A study starts from a template
Step 2 of “New study” offers six templates. Visits, forms and checks are created at once, in your interface language:
- Registry: enrolment, visits at 6 and 12 months, therapy, adverse events, a patient questionnaire.
- Long-term registry: enrolment, a follow-up visit every 6 months for as long as the patient takes part, therapy as a log, adverse events, a patient questionnaire and the end of participation.
- Observational study: three visits over six months with windows.
- Retrospective study: one visit, “Abstraction from the medical record”: data source, diagnosis, therapy, outcome.
- Patient surveys (ePRO): questionnaires at the start, after 4 and after 12 weeks.
- Blank study: one visit and one empty form, for those who build everything themselves.
Below, in the group “By disease, from the form library”, are the packs for type 2 diabetes, arterial hypertension, chronic heart failure and chronic kidney disease: the forms of the disease with visits for a year. More in “Form library”.
A template is only a starting point: any visit, form or field can be changed here. A study created from a protocol draft in YouEDC Studio (“Protocol to study build”) gets the visits, forms and fields of the draft instead of a template.

Visits
A study has visits and events of four kinds; “Kind” in the visit form switches between them:
- Scheduled visit: once, on its day from the start date, with a window in days before and after. In REG-DIAB-01 the “Month 6 visit” is on day 182 with a window of −30/+30 days. In the patient list an overdue visit turns red.
- Recurring visit: every few days, weeks or months, the first on its day. “Times” sets how many; left empty, the visit repeats as long as the patient takes part. The next one counts from the planned date of the previous one, or from its actual date when the visit floats with the patient.
- On event: a hospitalisation, a progression, an adverse event. The investigator adds it with its date as many times as needed.
- Log: a list of the patient's records shown as a table: therapy lines, medications, medical history.
A scheduled or recurring visit counts from the enrolment date, from a date in the patient's data (the date of surgery, of diagnosis) or from the date of another event. Counted from an event on event, the visit follows each occurrence: “a check-up 30 days after every hospitalisation”. “Expected only if” makes a visit expected only for some patients, for example a pregnancy test only when sex equals F; for the others it is never overdue. There may be several conditions joined by AND / OR, on fields of any form and the patient's card (conditions). See Events, the patient timeline and the visit calendar.
“Add a visit or an event” is under the list; “Edit” next to a visit changes it. A visit with data cannot be deleted, nor a visit, field or form that other events count from.
Visit schedule: visits × forms
The “Visits and events” table shows which forms are filled in at each visit. Tick the cells and press “Save the schedule”: the whole table is saved at once. In REG-DIAB-01 vital signs (VS) and therapy (CM) are collected at every visit, the patient questionnaire (PRO) from month 6. A dot marks a form that already has data at that visit: it cannot be taken out.

Forms
“New form” asks for a name; the code (the sheet name in the export) is made from it when left empty. The “Form” button on the form page opens its settings: name, code, a note for the investigator, its place among the forms and “Completed by the patient (ePRO)”: such a form is shown to the patient on a smartphone, in larger type. Once a form has data, its code is fixed and it cannot be deleted; take it out of the visits instead.
Form library. A ready-made form, a copy of your own or another study's form, the whole eCRF of another study or a specification from Excel are added with the “Form library” button: Form library, copying and eCRF from Excel.
Blinded study. When the study is marked blinded, the form settings have the box “Only for the unblinded team”: for drug dispensing, kit accountability, plasma levels. Such a form and its data are seen only by the team members marked unblinded; for everyone else it is not in the patient’s visits, the queries, the import, the exports, the casebook, the audit trail or the investigator guide. The mark is part of the eCRF version like any change. A form the patient fills in cannot be marked.
Fields
A field is added with a button under the field list: the button sets its type. The buttons come in five groups, 17 types in all:
- Text: short and long text, and a text for the investigator, a note right in the form (“Measure the blood pressure after 5 minutes of rest”). It holds no value and is not exported.
- Numbers: a number (a decimal comma is accepted), a whole number and a calculated field. Nobody types a calculated field: YouEDC Capture computes it when the form is saved, from a formula: the age in full years, the BMI, the days between two dates or the total score of a questionnaire.
- Dates and time: a date, a partial date, a time (HH:MM) and a date and time. In a partial date, UK marks an unknown day or month: “UK.03.2024” is March 2024. This is how the start of a concomitant treatment or a diagnosis from the history is usually written.
- Choices: one option (buttons or a list), a drop-down list for long lists, several options, yes / no and a single checkbox (“Informed consent signed”).
- Scales: a score scale, a row of buttons 0–10 (pain, well-being), and a VAS, a slider 0–100 mm. The limits can be changed.


| Property | What it sets |
|---|---|
| Question | The text the investigator sees: “Systolic BP”. |
| Variable code | The column name in the export: SBP. When left empty, it becomes the CDISC name when one fits (“Systolic BP” on a vital signs form becomes SYSBP), else it is made from the question, with Cyrillic transliterated: “Индекс Карновского” becomes INDEKS_KARNOV. |
| Unit | For numbers: mmHg. |
| Allowed range | A value outside it cannot be saved: 50–300 mmHg. See Data entry checks. |
| Expected range | A value outside it is saved and a query opens: 90–180 mmHg. |
| Answer options | One per line; a code goes before a vertical bar: 1|Mild. Without codes the options are numbered 1, 2, 3… |
| Digits after the point | For a number and a calculated field: “1” does not save 7.25 and shows the BMI as 33.0. |
| Formula | For a calculated field: what it computes and from which fields, in order. BMI: the weight in kg, then the height in cm. Or a free formula with the field codes, other forms and the patient's card, checked as you type and tried on test values: checks and calculated fields by formula. |
| Format and format example | For a short text: a regular expression such as [A-Z]{2}-\d{3} and an example for the investigator, “AB-123”. A value in another format is not saved. |
| Form section | A heading above a group of fields: “Blood pressure and pulse”. |
| Hint for the investigator | A line under the question: “For example, I50.0”. |
| Show the field only if | The field appears only while conditions hold: on fields of this and other forms and the patient's card, joined by AND / OR (more). |
| Required field | Without it (or a “no data” mark) the form is not complete. |
| “No data” can be marked | Instead of a value the investigator chooses ND (not done), UNK (unknown) or NA (not applicable). |
| Critical field | Flagged SDV: the monitor verifies it against the source first. |
Show-if conditions
In the Drug therapy form, “Drug (INN)”, the dose, its unit and the start date are shown only when the answer to “Does the patient receive drug therapy for the main disease?” is Yes. A hidden field is not required, and its value is cleared.

Codes and order
Fields are reordered by dragging: take a field by the ⠿ handle on the left and drop it in its new place, with a mouse or a finger on a tablet or phone. The arrows next to the handle move a field one place; the page stays where it is and the focus stays on the arrow, so the order can also be changed from the keyboard. Esc during a drag cancels it. A field moved among the fields of another form section joins that section; the section can also be changed in the field properties. Every move is recorded in the audit trail (“place 5 → place 2”) and, once the eCRF has been released, waits in the draft for the next version.

When a variable code is renamed, the checks and show-if conditions that use it follow. Once a field has data, its code and type are fixed and it cannot be deleted; it can be deactivated instead.
Tables in a form
The Table field (the Structure group) brings rows and columns into a form. Each cell is a full field: its own ranges, “no data”, audit trail, query and SDV mark. A table is one of three kinds: a grid, a growing table and a repeating group of fields (below).
- Fixed grid: you set the rows. This is how a lab panel is built (a row is a test with a code, for example
GLUC) or blood pressure at three time points. - Growing table: the site adds rows, from none up to the limit you set (at most 50). It suits the doses or procedures of one visit.
Keep concomitant medications, adverse events and history in a log event rather than a table: there each record has its own status, signature and dictionary coding.
Lab panel
When you create a table, choose “Start from: lab panel”. You get a grid of six chemistry tests with the columns Result (LBORRES) and Clinically significant (LBCLSIG). Result is the value column: each row gives it its own unit, allowed and expected ranges, and for qualitative tests its own answer options (neg / pos). The ranges provided are typical adult values: replace them with those of your laboratory. “Accept results like <5 or >1000” lets the site enter a result below or above what the analyser measures; it is kept as typed and no range applies to it.
Rows are added in the table editor one by one or as a list, one test per line: HGB|Haemoglobin|g/L|20|250|120|160 (code, name, unit, allowed from and to, expected from and to). The numbers in the No. column set the order. A row that already holds data cannot be removed: switch it off, and its data stays.

The ranges loaded on the Lab normal ranges page take the place of a row's expected range for each site, with unit conversion. A row can be calculated: “eGFR, CKD-EPI 2021” from the creatinine and the patient's sex and age, “LDL cholesterol, Friedewald” from total cholesterol, HDL and triglycerides (not calculated with triglycerides above 4.5 mmol/L). The lab panel already has an eGFR row: below 60 opens a query.
The Change, max column is the delta check: the largest change of the result since the patient's previous visit, in the row's unit (30) or in per cent (50%). A bigger change opens a query on the cell. The lab panel sets 50 % for creatinine and 100 % for ALT; an empty cell means no check.
Columns
Columns are added with the buttons under the table in the field list: text, number, date and time, choice. A column has the same properties as a field; “required” means “in every row”. A cell can be shown only on a condition in the same row, for example Reason only when Not done is ticked.
In the export each table has its own sheet, a line per test, and a grid’s values are also on the form’s sheet, a column per cell. In the casebook a table is printed as a table, with the deleted rows and the reasons they were deleted.
Repeating groups of fields
The third kind of table is a repeating group: the site adds a block of fields for each record. Inside a block the fields stand one under another with their labels, so there can be more of them than a table row holds, and a long text among them. It suits earlier lines of therapy, lesions, relatives with a hereditary disease: a few records with the same fields in one form.
- Create a Table field and choose the kind “Repeating group of fields”, or start from the ready-made group “Previous lines of therapy”: regimen, start, end, best response (CR, PR, SD, PD, NE), why it stopped and a comment.
- The fields of the group are added with the buttons under it in the field list, like the columns of a table, plus long text. “Required” means “in every block”; a required group means “at least one block when the form is completed”.
- A field can be shown only on a condition inside its own block: for example “Stopped” and “Why it was stopped” only when “Still taken” is No.
- The site presses “Add a record”, and the blocks are numbered 1, 2, 3; a number is never given twice. A saved block is deleted with a reason; its values stay in the audit trail and in the list of deleted records.
Storage, checks, queries, SDV, the audit trail and the export are those of a growing table: the cell PTREG[2] is the regimen in the second block. A growing table can become a group and back at any time, even with data; a group becomes a table again only when it has no long text. In an ODM file the group stays a group when it moves to another study.
In the type 2 diabetes demo study the medical history (the demographics in a small demo) has the group “Earlier glucose-lowering therapy”: one to three drugs for each patient, with the date and reason for the stopped ones.

CDISC variable names
While you write the question, a hint appears under the variable code: a CDASH-style name and where the field goes in SDTM. The name comes from the words of the question, the field type and the form: “Start date” on the adverse events form is AESTDAT (AESTDTC in SDTM), the same “Start date” on concomitant medications is CMSTDAT, “Systolic BP” is SYSBP, “Hemoglobin” is HGB. The “Use” button puts the name into the code; when the code is left empty, the field gets the first name by itself. These are the names the CDISC pipeline takes to SDTM with no manual mapping.

AESTDAT is suggested for “Start date”, and the typed CMSTDAT is flagged as a concomitant medications name.When the code you typed looks like a mistake, a warning appears under it:
- a name of another domain:
CMSTDATorAEDECODon a form that looks like adverse events or concomitant medications; - a name that does not fit the field type:
AESTDATon a text field; - a variable SDTM fills in automatically, so there is no need to collect it:
USUBJID,STUDYID,AESEQ; - a code longer than 8 characters on a form with an SDTM domain: SDTM will need a shorter name for it.
The domain of a form comes from its code and name (AE, “Adverse events”, “Concomitant medications”, “Medical history”, “Laboratory”, “Informed consent”). When the domain is unclear, a hint appears only for plain questions such as “Date of birth” or “Systolic BP”.
Data entry: the save button
At the bottom of the builder page, in the Data entry section, you set the label of the main button of a form, the one the site saves a complete form with. By default it is “Save and send for review” (in a study without SDV, “Form complete”). The label is written in Russian and in English, up to 60 characters; French screens show the English one. An empty field brings the default back. Every change of the label goes to the audit trail. The study manager also gets here straight from a form, by the pencil next to the button.
After this button the investigator goes to the next form of the visit, and after the last one to the forms of the next visit (see the help article “Entering data into a form”).

Changes after launch
Until version 1 of the eCRF is released, the builder changes the design live: this is testing, and data entry gets each change at once. After the release, changes wait in a draft and reach data entry only when the next version is released. Visits, forms, fields and checks of a released version are deactivated, not deleted, and the codes of released forms and fields are fixed. See eCRF versions.
Each change (visit, schedule, form, field, check) goes to the audit trail as an “eCRF change”, with the old and the new value. After the database lock the builder is read-only.
© 2026 Т.Г. (contact@youedc.com), YouEDC. All rights reserved. Terms of use. Data entered by users belongs to them.
MainEDC™ is a trademark of DM365.