Linkr
Home Resources Tools Documentation Blog Demo
FR
  • What is Linkr?
  • Deployment modes
  • Quick start
  • Local install
  • With Docker
  • Manual install
  • Client-only
  • Your first project
  • Workspaces and projects
  • The data pipeline
  • Entities and sharing
  • Versioning and collaboration
  • Overview
  • Projects
  • Wiki
  • Plugins
  • Members and roles
  • Settings
  • Schemas
  • Databases
  • Derived sub-databases
  • Data quality
  • Data catalog
  • SQL script collections
  • ETL pipelines
  • Overview
  • Mapping projects
  • Global view
  • Target concepts
  • Mapping editor
  • Suggestions
  • Evaluation
  • Export
  • Overview
  • Concepts
  • Cohorts
  • Patient data
  • Pipeline
  • Datasets
  • IDE
  • Web apps
  • Versioning
  • Overview
  • Tabs and widgets
  • Built-in widgets
  • Analysis widgets
  • Control charts (SPC)
  • Surveys and eCRF
  • R and Python code
  • Filters, settings and export
  • Overview
  • Presentation mode
  • Exporting a report
  • Agents
  • Model providers
  • Skills
  • Authoring through MCP
  • Import and export
  • Git versioning
  • Community catalog
  • Publishing content
  • Production install
  • Configuration
  • Authentication and permissions
  • Files on the server
  • Backup and restore
  • Glossary
  • Keyboard shortcuts
  • Release notes
Documentation Dashboards Surveys and eCRF

Surveys and eCRF

Analysing a questionnaire export one question at a time: response rate, answer distribution, and the chart that fits each type.

In short

The Survey question widget analyses one question at a time from an eCRF or survey export: how many people answered it, how the answers break down, and the chart that fits that kind of question. It reads answers already collected — it is not a tool for collecting them.

Client Available in client-only mode — runs entirely in the browser, no backend. Backend Available with the FastAPI backend.

One question at a time, deliberately

A questionnaire is not an ordinary table. Its unit is not the column but the question — and a multiple-choice question physically occupies several columns, one per option.

More importantly, the number that matters first is not the mean: it is the response rate, and it is computed question by question. “38 respondents out of 42” cannot be derived from the number of rows in the file.

One question analysed in a single widget: the response rate first, the missing values, then the distribution of answers.
One question analysed in a single widget: the response rate first, the missing values, then the distribution of answers.

This widget is not a data-entry form

It analyses answers already collected. To collect data by hand — a variable that appears in no table and has to be read from a report — you want the collection panel of a patient board: see Patient data.

Importing the answers

Answers arrive as an ordinary dataset. The import window offers a preset saying how to read the file.

PresetWhat it does
Plain tableOne row per record, one column per field. No questionnaire structure.
Goupile (eCRF)Joins every form sheet on the record id into one wide dataset, labelled from the form dictionary.

The preset is preselected from the file, never imposed: you confirm it, or pick another.

Importing an eCRF export: the Goupile preset is recognised from the file, and the first rows are shown before confirming.
Importing an eCRF export: the Goupile preset is recognised from the file, and the first rows are shown before confirming.

REDCap and XLSForm appear in the list but are not wired up yet

The preset menu also offers REDCap and XLSForm / ODK. Reading them is written and tested, but not yet connected to the import: today only Goupile actually parses the file.

In the meantime a REDCap or ODK export imports as a Plain table: the charts work, but question labels and choice lists are not taken from the dictionary.

There is no questionnaire editor in Linkr

The questionnaire’s structure always comes from outside — from the tool you designed it in. Linkr does not create questions, does not set their order, and does not apply display conditions.

Choosing the question

The widget is configured like the others. The Question field accepts any column of the question: for a multiple-choice question, picking one of its options selects the whole question.

The structure is inferred from the file — labels, question type, options. Six types are recognised:

Single choice

One answer among several. A yes/no is one of these.

Multiple choice

Several answers allowed, one column per option.

Scale

A single choice whose order carries meaning, and must be kept.

Numeric

A number: age, duration, score.

Date

A date, with or without a time.

Free text

A written answer, tallied like choices.

The chart follows the question type

The Chart setting only offers what makes sense for the question you picked.

Question typeCharts offered
Single choice, scaleHorizontal bars, vertical bars, pie, donut, table.
Multiple choiceHorizontal bars, vertical bars, table. Neither pie nor donut.
NumericHistogram, summary statistics.
Free textAnswer list, bars, table.

Why no pie chart for a multiple-choice question

A pie chart asserts that its slices make up a whole. When everyone may tick several answers, the total exceeds 100%: the chart would misrepresent the data. The widget therefore does not offer it, and notes under the chart that percentages are over respondents — with the average number of answers per person.

The order of answers

Sorting is adjustable: by frequency, in questionnaire order, alphabetical, or custom — answers are then dragged into the order you want.

For a scale, order is not decorative

“Never, sometimes, often, always” sorted by frequency becomes unreadable: you lose the progression that gives the scale its meaning. Keep the questionnaire order.

Reading a response rate

The widget shows n / N at the top: the number of answers over the number of people concerned. The denominator deserves attention.

A conditional question does not have the same denominator

If a question was only asked of some respondents — because it depended on an earlier answer — the widget says so: the denominator is that subgroup, not the total. Without that note, a low response rate would wrongly read as poor completion.

Linkr shows the warning when the file allows it, but does not evaluate the original questionnaire’s display conditions.

Where to find the widget

It is added like the others, from the list of analyses on a dataset or a dashboard.

The Survey question widget in the list of available analyses, with its description: designed for eCRF exports.
The Survey question widget in the list of available analyses, with its description: designed for eCRF exports.

Still to come

  • Wiring REDCap and XLSForm into the import, to pick up their question dictionaries.
  • Storing the inferred structure with the dataset, rather than re-deriving it on every render.
  • Correcting a question’s type when inference gets it wrong — there is no setting for that today.
  • Other export formats — LimeSurvey, Castor, OpenClinica — are under consideration, with no timeline.

Going further

  • Patient data — manual collection, for producing data rather than analysing it.
  • Analysis widgets — statistical analyses on a dataset.
  • Datasets — importing and correcting a questionnaire export.
  • Tabs and widgets — placing this widget in a dashboard.
PreviousControl charts (SPC)NextR and Python code

Product

  • Home
  • Demo

Resources

  • Documentation
  • Resources
  • Tools
  • Blog

Community

  • Framagit source code
  • Github source code

About

  • InterHop.org
  • Contact

2021–2026 InterHop — CC BY-NC-SA 4.0 (site) · GPLv3 (software)