Blinding and privacy
X7 Insight protects two different things: the study’s blinding integrity (so that access to treatment codes does not “leak” through the data) and participant privacy (so that no patient personal data is in the system). Both protections work at the server level, not the interface — so they cannot be bypassed by “peeking” at an API response or an export.
Blinding
Section titled “Blinding”Blinding is a separate axis: a specific field is marked as blinded (ItemDef.blinded),
and on an ordinary read the server returns a mask instead of the value — to everyone,
including holders of the permission for unblinded data (data.unblinded.read). That
permission does not show the value itself: it only allows an explicit reveal, and every such
gesture is audited.
Masking values
Section titled “Masking values”- A blinded field is shown as ••• — of fixed width. The mask’s length does not depend on the value, so it cannot reveal whether the value is “long” or “short”.
- Masking is done by the server during serialization, not by the browser. A role without clearance will not receive the value on a form, in the API, or in an export — there is nothing to hide, because the value is simply not transmitted.
- In the audit trail, blinded values in the “Before / After” columns are also masked for those without clearance.
Unblinding (reveal) — only through an explicit, audited action
Section titled “Unblinding (reveal) — only through an explicit, audited action”- Blinded field
- POST …/reveal — explicit gestureValue shown · audit data.unblinded_read
- Mask ••• — always
A user with the data.unblinded.read permission can see the value through an explicit
Show command. This is a privileged action:
- An unblinded read is recorded in the audit trail — who opened which field and when. This is one of the few audited kinds of read (ordinary reads are not logged).
- An emergency unblind requires a reason.
- The interface honestly warns: “Unblinded reading is recorded in the audit trail”.
Blinding in exports and packages
Section titled “Blinding in exports and packages”- An export masks blinded values by the permissions of whoever launches it: without the permission for unblinded data, the snapshot comes out masked. At launch you explicitly choose the “blinded — masked” mode (the default) or “unblinded” (which requires the permission).
- The inspection packet is always blinded: it never unblinds, regardless of the
launcher’s permissions. The final package is blinded by default; an unblinded variant
is possible under dual control: the
data.unblinded.readpermission is required from both the person who starts it and the person who downloads it.
Privacy: pseudonymous subject codes
Section titled “Privacy: pseudonymous subject codes”X7 Insight is a system for collecting clinical data, not a medical chart. A participant is identified by a pseudonymous subject code, not by name.
- The EDC does not store names, addresses, or direct patient identifiers. Personal data stays in the site’s source documentation (and, where needed, in a separate identity system), not in the EDC.
- A subject is a code (for example, an identifier within a site and study) plus clinical data and a status. Such a pseudonymous code makes it possible to maintain a participant’s data without revealing who they are.
- The data and the audit trail are language-independent and contain no PII: localization is only a presentation, and the canonical data is stored in a neutral form.
How this relates to access
Section titled “How this relates to access”Blinding is not a role or a separate “mode”. It is ordinary access mechanics:
- a field’s blinding is set in the design (
ItemDef.blinded); - an ordinary read masks the value always; the
data.unblinded.readpermission in the relevant scope only grants the ability to perform an explicit reveal; - the fact of an unblinded read is audited (
data.unblinded_read); - platform events filter their payload by the subscriber’s permissions, so that a blinded value does not “leak” through a notification to a module.
For more on permissions and scopes, see the Permissions catalog.