Skip to content

Import

How import works in TrialStack when teams need to bring external material into the governed product model.

Why it matters

flowchart LR
    External[External material] --> Import[Import]
    Import --> Workflow[Governed workflow]

Import explains how outside material enters TrialStack and becomes part of a governed workflow instead of remaining a disconnected upload event.

How it works

flowchart LR
    File[File or content] --> Request[Import request]
    Request --> Record[Relevant record model]

Imports bring external content or files into shared request flows that can be tracked, reviewed, and connected back to the relevant record model.

USDM study-definition imports

USDM import is a reconciliation workflow, not a replacement operation. The request targets an existing governed trial and retains the exact JSON source, its byte-level SHA-256 checksum, producer metadata, original USDM version, source object inventory, and unknown extensions. TrialStack normalizes supported 4.0 and 4.0.0 version discriminators for comparison while keeping the original value unchanged in the source artifact.

The completed import contains a canonical draft, explicit conflicts, and a machine-readable round-trip report. It never creates an identifier or relationship that is absent from the source. Supported summary values can be proposed for the governed trial; unsupported design collections remain losslessly available as source evidence and are marked for a dedicated reconciliation surface.

Every conflict carries a deterministic content hash. A reviewer must submit one current decision for every conflict, and a changed conflict hash or trial version rejects the apply request. Accepted changes create a new governed trial version between immutable before-and-after snapshots and open a draft amendment containing the derived comparison and impacts. The import record retains the resulting version, snapshot, amendment, and decision identities.

The API flow is:

  1. POST /api/imports with entityType: "trial", source: "inline-json", an existing targetEntityId, and the exact USDM JSON in payload.rawSource.
  2. Poll GET /api/imports/{id} and inspect result.conflicts plus result.roundTripReport.
  3. POST /api/imports/{id}/reconcile with the reviewed conflict IDs, content hashes, decisions, expected trial version, and draft-amendment configuration.

When to use it

flowchart TD
    BringIn[Need to bring in material] --> Import[Import]
    AlreadyThere[Already governed] --> Skip[No import]

This concept matters when the team needs to bring source material, uploaded content, or reprocessed records into the workspace in a controlled way.

What to watch for

flowchart LR
    Import[Import] --> Owner[Owning workflow]
    Owner --> Review[Review path]

Import is not just file transfer. The important question is what workflow owns the result after the handoff. For USDM, a completed import proves preservation and analysis only; governed persistence happens only after explicit reconciliation and amendment evidence have been created.