All apps

Registrations · Regulatory Affairs

CuRE Consulate

Global registration status by health authority — variations, renewals, and HA correspondence.

Part of Regulatory

What it does

Global registration status by health authority — variations, renewals, and HA correspondence. Registration status, the submission sequence that produced it, and the label it governs stay one linked record — not three systems reconciled by spreadsheet.

Key capabilities

  • Registration status by HA / country
  • Variations + renewals lifecycle
  • HA interaction + correspondence tracking
  • Commitment tracking
  • Clinical-trial disclosure (CT.gov / EU CTIS)
  • Submission content plan (section/doc-level)
  • RWD-evidenced PMR/PMC fulfillment
  • Renewal / licence-expiry clock
  • xEVMPD / SPOR / IDMP outbound

What sets it apart

  • Registration status, the submission sequence that produced it, and the label it governs stay one linked record — not three systems reconciled by spreadsheet.
  • Trial disclosure (FDAAA 801 / EU CTIS) and a section-level submission content plan — the RIM capabilities a Veeva-comparing buyer asks for first.
  • Regulatory intelligence, change/event impact, xEVMPD/SPOR, trial-phase applications, CT.gov/CTIS disclosure, affiliate workflow, and status export are part of the RIM surface.
  • Variations, renewals, and commitments are lifecycle events on a governed record, not tracker rows that drift from reality.
  • Product master data comes from the platform's IDMP substrate — one product definition across registrations, labels, and submissions.
  • Registrations extend upstream into the pre-IND journey — FDA-meeting packages, regulatory designations, and IND-readiness — as part of the Translational bundle's first-in-human push (ADR-PLT-100).
CuRE Consulate · HA registration lifecycle
Live demo — synthetic data, runs in your browser

Fold a registration's HA event chain into its in-force state

A marketing registration is not a status field — it is the fold of a lifecycle event chain across every health-authority interaction. Step a synthetic FDA NDA through its real lifecycle codes (submitted → under_review → RTQ ⇄ response → approved) and watch the state machine offer only legal next moves, refusing an illegal edge with its own rejection message. Grant a per-component partial approval and a second chain appears; supersede the approval with a withdrawal and the fold rewrites in-force state — with the supply-release verdict tracking the head state throughout.

A synthetic US NDA — ravucizumab (VELT-042) — filed with the FDA (NDA, US). Each button records a real FDA lifecycle code; the state machine only offers moves legal from the current state.

A partial approval folds its own per-component chain — the registration head stays under review until the whole thing is approved.

A corrective event references the event it supersedes; the superseded event drops out of the fold and the new state becomes in-force.

Head status
— not filed —
Events
0
in the chain
In force
0
component chains
Supply release
Blocked

Current state · folded per component (ADR-CSL-004)

Whole registration

The registration head reads approved only when the whole registration is approved — a partial approval keeps it under_review while the component chain shows partial_approved.

Supply-release derivation · ADR-CSL-010
No registration lifecycle state is in force; supply release is blocked.
basis: registration_not_releasable

Lifecycle event chain

in force superseded
No events yet — record NDA submitted to start the chain.

Why this is more than a toy

The state machine, the fold, and the supply-release derivation are a faithful, dependency-free port of Consulate's real registration-lifecycle engine (apps/consulate/src/server/registrations/state-machine.ts): the CORE_STATE_TRANSITIONS edge graph and assertValidTransition() initial-state + legal-edge guard (so submitted → approved is refused, exactly as the product's tRPC recordLifecycleEvent rejects it), the foldCurrentState() per-component fold that removes superseded events and takes the latest surviving event per component_scope, and coreStateToRegistrationStatus() for the coarse head status — all ported line-for-line. Every HA-specific lifecycle code resolves onto one shared cross-HA CoreState graph, so a new health authority adds taxonomy rows, never a new core state (ADR-CSL-004); the FDA code catalogue and the PAS / CBE-30 / CBE-0 variation classes mirror the product's migration seed. The supply-release panel is the real deriveRegistrationReleasability() basis map (ADR-CSL-010) — an approved-and-effective registration opens release; an under-review, withdrawn, or expired one blocks it. Per ADR-PLT-044 the lifecycle fold is Consulate's own deterministic, event-write-bound operational math (not a statistical methodology), so this port keeps that in-app placement rather than relocating to Calculate. Here it all runs entirely client-side on a synthetic registration — no backend, no real data.

See CuRE Consulate in action

Every research ecosystem is unique. Let's discuss how CuRE can be configured for your needs.