Skip to content
How-toMedical monitor

Code terms

Medical coding maps free text (adverse events, concomitant medications) to a dictionary code. In X7 Insight coding is a status axis of the value, and the core itself is dictionary-agnostic: the platform neither stores nor interprets the MedDRA/WHODrug dictionaries. You look up the code in your dictionary tool (or a coder module supplies it), and the core records the code reference, the status and the audit trail.

Medical monitor — the medical coder (the Medical Coder role). You need the permission to set the medical coding status (data.coding.write) on the study. The task comes up as adverse events and concomitant medications are entered, after every edit of an already coded value, and necessarily before the database hard lock.

  • The field has the “requires coding” flag (requires_coding) enabled in the CRF design, and a value has been entered. Empty values are not coded.
  • The dictionary of the right version (for example, MedDRA or WHODrug) is at hand — in an external tool or a coder module.
  • The area is not under a hard lock.
  1. Open Coding in the study menu, the Awaiting code tab. Choose the site (or all) and, if needed, find the term with the “Term, subject, form…” search.

  2. Pick a term on the left — the right side shows it in context: field, subject, visit, form, who entered it and when, open queries. Open in form ↗ shows the neighbouring fields and queries.

  3. Look up the code in the dictionary tool.

  4. Click Code… (key C). In the “Code the term” dialog enter the Dictionary, the Dictionary version, the Code and, if needed, the Dictionary term (PT/LLT or the preferred term). The “Will be recorded:” line shows the result, for example MedDRA 27.1 / 10019211 · Headache.

  5. If the same verbatim appears in other rows, tick Apply to all matches of the verbatim — the series is coded in one action.

  6. Confirm. “Term coded: …” appears; an erroneous coding can be reverted right away with Undo in the notification.

0:000:00
The coder's queue: terms awaiting a code, marking them coded, and recoding

Tick the rows and click Code selected (N)… — one dialog assigns the code to all selected terms; the result reads “Coded N of M”.

On the Coded tab a term has Change code… — the dialog opens with the current code, and a reason for the replacement is mandatory. Remove code… (with a reason) returns the term to the “Awaiting code” queue; the previous code is kept and shown as “was: …”.

  • The value’s coding axis: Awaiting coding → Coded. Together with the status, the code reference (coding_ref) is recorded — the string “Dictionary Version / Code · Term”.
  • The status, code, author and time go to the audit trail; replacing and removing a code — with a reason.
  • The term moves from the Awaiting code tab to Coded.
  • If the coordinator later corrects the value of a coded field, the term automatically returns to Awaiting code with a recode tag and the previous code “was: …” — the code must be reviewed.
  • No “Coding” menu item — you lack data.coding.write.
  • “Nothing to code yet — the design has no codeable fields, or no data has been entered” — the fields do not have the “requires coding” flag, or there are no values yet. The design author sets the flag.
  • “The term is already coded — use “Change code…” to replace the code” — the term was coded in parallel; change the code via Change code… with a reason.
  • “The row changed while you were coding — the list was refreshed, recheck the value” — the value changed; check the new text and code it again.
  • “Could not change the coding status” — for example, a hard lock covers the area.
  • The confirm button is inactive in “Change code…” — no reason is given, or the code did not change.
  • A term cannot be marked without a code — “coded” requires a code reference. If no applicable code exists, leave the term in the queue and explain the situation with a query.

A field without the “requires coding” flag or without a value takes no part in coding (coding is not required — the core sets that status itself). A codeable field with a value awaits a code:

  1. Awaiting codingcode assigned
  2. Coded
    • value edit or “Remove code…”Awaiting coding
A value's coding axis. Editing an already coded value returns the term to the queue for recoding.

“Viewed, no applicable code” is not “coded”: such a term stays in the queue, and the explanation goes into a reason or a query. Otherwise the term would leave the queue without ever getting a code.

  • Awaiting code — free text is entered, there is no code yet. A term also returns here automatically if the coordinator corrects the value of an already coded field (recode).
  • Coded — control and recoding: “Change code…”, “Remove code…”.

The Coding section of the shared Tasks inbox shows terms awaiting a code across all studies where you hold data.coding.write; the full queue with filters is on the study’s Coding screen.

The core’s final package carries the coding axis and the assigned code reference (coding_ref) — the string recorded by the dialog. The core does not store the structured dictionary hierarchy (SOC, HLT and so on): it lives in the dictionary tool or coder module and is exported by its own means. Take this into account when planning the sponsor package — otherwise the datasets will have to be assembled from two places. The code reference of a blinded field is masked just like the value itself.