XyDromatics VNA Clinical + Research
Archive Totals
DICOM C-STORE SCP
Host
Recent Studies
| Patient ID | Accession | Study Date | Modality | Study UID | Series | Instances |
|---|---|---|---|---|---|---|
| Loading… | ||||||
Study Search
Results
| Patient ID | Accession | Study Date | Modality | Description | Study UID | Series | Instances |
|---|---|---|---|---|---|---|---|
| Enter a search criterion and click Search. | |||||||
DICOM Peers
Remote modalities and PACS systems the Repository interacts with. Sources (inbound ◀) are peers allowed to send us studies via C-STORE. Destinations (outbound ▶) are peers we forward studies to when answering C-MOVE requests from a Query/Retrieve SCU. A single peer can be both.
| Name | AE Title | Host | Port | Direction | TLS | Enabled | Actions |
|---|---|---|---|---|---|---|---|
| Loading… | |||||||
Add Node
Advanced — presentation-context filters (optional)
Installed License
- Loading…
Upload License
Select a .lic file issued by the Synthology License
Generator. The file is staged, decrypted, and — on successful parse — replaces the active
license. Feature gating is re-evaluated on the next request; no restart is required.
Authentication & SCP
fo-dicom DicomServiceOptions.MaxPDULength. 256 KB reduces association round-trips
for large pixel data; pre-association negotiation will clamp if a peer doesn’t
support it. 0 = use fo-dicom stock 16384. Restart the service to apply.
Archive Catalog Database
- Current engine
- —
- Configured
- —
Changing the archive catalog DB engine or connection string requires a service restart. The SCP will refuse to start until the catalog is reachable.
Object Storage Backend
- Current backend
- —
- S3 secret
- —
- Azure conn string
- —
The archive’s byte store. Local = filesystem under the data directory. S3 = an S3 or S3-compatible object store (AWS S3, Cloudflare R2, Backblaze B2, Wasabi, MinIO) — set an Endpoint for anything other than AWS S3. AzureBlob = Azure Blob Storage; prefer managed identity (no keys on disk) with the account URL, else a connection string. Changing the backend requires a service restart and does not migrate existing objects. Leave a Secret / Connection string blank to keep the stored (sealed) value. Note: on an object-store backend the local-filesystem maintenance passes (integrity bit-rot scan, on-disk OAS rewrite) are skipped — object durability is delegated to the store.
Health
…
SCP Status
…
Archive Counts
…
Study Browser
No search executed yet — fill in any field (or none, to list everything) and click Search.
Document Store
Upload
Documents
Loading…
Dual-lane: the clinical lane retains PHI; the research lane is de-identified (RUO). Documents are non-DICOM attachments (PDF / CDA / HL7) linked to a patient/subject + study.
Batch Import
Queue a server-side folder for import. The background worker walks the folder recursively, parses each .dcm, and ingests through the same path as C-STORE. License: batch_import. RBAC: edit_listeners.
| Job ID | Folder | Status | Scanned | Ingested | Skipped | Failed | Created |
|---|---|---|---|---|---|---|---|
| No jobs yet. | |||||||
Export
Export up to 10 studies as a single zip (synchronous streaming). For larger batches, use the cohort-driven Research Export workflow. License: export. RBAC: manage_export.
Dedup Analysis
Content-based deduplication scan — scans up to N instances, computes SHA-256, identifies duplicates and reports potential savings. License: dedup. RBAC: view_study_browser.
Archive Analytics
Modality Distribution
Loading…
Retention Policies
Configure how long archived studies are kept. Policies compute matching study counts in preview; destructive purge runs only under an enabled, non-preview policy with a confirm token (not exposed here). License: retention. RBAC: manage_database.
| Name | Filter | Age (d) | Enabled | Last Preview | Match / Bytes | Actions |
|---|---|---|---|---|---|---|
| No policies yet. | ||||||
Legal Holds
Lock listed Study Instance UIDs against deletion under retention policies. Active holds override retention sweeps. License: legal_holds. RBAC: manage_database.
| Name | Reason | Studies | Status | Expires | Created | Actions |
|---|---|---|---|---|---|---|
| No holds yet. | ||||||
Storage Tiers
Per-study hot / warm / cold tier assignment over the archive catalog. Movement is label-only in v1: a move persists a real, queryable tier label for the study; the physical byte relocation across storage back-ends is a documented follow-on (the API returns bytes_relocated=false). License: storage_tiers. RBAC: manage_database (move).
| Tier | Description | Assigned | Effective |
|---|---|---|---|
| Loading… | |||
Look up / move a study
Integrity
Walks the archive catalog + checks each instance's file is present + readable by fo-dicom. Records anomalies as findings. License: integrity. RBAC: manage_database.
| Finding | Study UID | SOP UID | Path | Details | Detected | |
|---|---|---|---|---|---|---|
| No findings. | ||||||
Patient Merge
Consolidate patient records across MRN changes. Merging re-keys every archived study from source to target in one transaction. Un-merge is not available. License: patient_merge. RBAC: manage_database.
| Patient ID | Name | Birth | Sex | Studies | Instances | Size | |
|---|---|---|---|---|---|---|---|
| Click Search to load patients. | |||||||
Merge audit log
| When | Source | → | Target | Studies | By | Reason |
|---|---|---|---|---|---|---|
| No merges yet. | ||||||
IOCM Rejections
IHE PCC §4.1 Object Change Management. Mark a study, series, or instance as REJECTED with a reason code; downstream consumers honor active rejections. License: iocm. RBAC: manage_database.
| Kind | Target UID | Reason | Details | Status | Created | Actions |
|---|---|---|---|---|---|---|
| No rejections. | ||||||
Clinical Reporting
Author a report
Reports
| Title | Status | Study UID | Created | |
|---|---|---|---|---|
| Loading… | ||||
Voice Dictation PHASE-5 (shared-lib) PORTING
Coming in subsequent child DCR under DCR-2026-218. Reference: legacy Synthology.Vna.Clinical.Reporting voice subsystem.
License: voice_dictation. RBAC: view_study_browser.
MinReg PHASE-4 PORTING
Coming in subsequent child DCR under DCR-2026-218. Reference: legacy legacy minreg.html + patient-registration controller.
License: minreg. RBAC: view_users.
ADT Sync PHASE-4 PORTING
Coming in subsequent child DCR under DCR-2026-218. Reference: legacy Services/AdtDemographicsSyncService.cs.
License: adt_sync. RBAC: view_hl7.
C-CDA PHASE-4 PORTING
Coming in subsequent child DCR under DCR-2026-218. Reference: legacy Services/CcdaConverter.cs.
License: ccda. RBAC: view_document_store.
PIR PHASE-4 PORTING
Coming in subsequent child DCR under DCR-2026-218. Reference: legacy IHE PIR controller.
License: pir. RBAC: view_patient_merge.
MPPS PHASE-4 PORTING
Coming in subsequent child DCR under DCR-2026-218. Reference: legacy IHE MPPS SCP.
License: mpps. RBAC: view_dicomweb.
Cohort Builder
Define a cohort
Cohorts
| Name | Status | Ver | |
|---|---|---|---|
| Loading… | |||
Research lane is RUO — Research Use Only; cohorts are built over the de-identified archive.
Research Export
Export a cohort snapshot
Exports the studies in a cohort's latest snapshot (de-identified) to a server-side directory.
Export jobs
| Status | Studies | Instances | Destination | |
|---|---|---|---|---|
| Loading… | ||||
Research lane is RUO — Research Use Only.
Promotion Gate
Request a promotion
Request to promote an archived clinical-lane study into the RUO research lane. A second approver (never the requester) must approve before the research-lane UID is minted.
Pending requests
Dual control: approve requires a second approver — a request can never be self-approved.
| Study UID | Reason | Requested by | Requested | |
|---|---|---|---|---|
| Loading… | ||||
Approved promotions
| Clinical Study UID | Research UID (RUO) | Approved by | Approved |
|---|---|---|---|
| Loading… | |||
Research lane is RUO — Research Use Only. Approving records the governance decision and mints the research-lane UID; the de-identified copy is performed by the existing RUO export path, not here.
Data Curation
Read-only quality analysis over the archive catalog. A scan refreshes the cached findings; it never mutates the archive. License: data_curation. RBAC: manage_curation (normalize / clear).
Modality normalization PREVIEW-ONLY (dry-run)
Counts the series a normalization would touch. Executing a normalization (catalog mutation) is scaffolded and intentionally not enabled here.
Findings
| Category | Severity | Patient | Field | Details | |
|---|---|---|---|---|---|
| No findings. | |||||
Teaching File Export
IHE TCE. Queue a de-identified export of one archived study. The bundle is de-identified (PS3.15 Basic Profile; UIDs re-minted; burned-in-annotation objects rejected) and staged server-side — the download is the de-identified copy only, never source PHI. Research Use Only. License: teaching_file. RBAC: manage_teaching_files.
Export jobs
| Title | Study UID | Status | Staged | Created | |
|---|---|---|---|---|---|
| Loading… | |||||
Site-to-Site Replication
Replicate archive instances to peer VNAs via DICOMweb STOW-RS. The service polls every 30 seconds, scans for new instances, and POSTs them to each enabled peer. License: replication. RBAC: manage_database.
Add peer
Configured peers
| Name | URL | Auth | Modality | Enabled | Replicated | Last success | Last error | Actions |
|---|---|---|---|---|---|---|---|---|
| No peers configured. | ||||||||
Recent jobs
| Status | Peer | SOP UID | Attempts | Queued | Completed | Last error |
|---|---|---|---|---|---|---|
| No replication jobs yet. | ||||||
FHIR R4 Gateway
Read-only FHIR R4 endpoints projecting the archive catalog into ImagingStudy + DiagnosticReport. License: fhir.
GET /fhir/metadata— CapabilityStatementGET /fhir/ImagingStudy?patient=...&accession=...&modality=...GET /fhir/ImagingStudy/{StudyInstanceUID}GET /fhir/DiagnosticReport?patient=...&identifier=...
Storage Commitment Journal
DICOM Storage Commitment (PS3.4 Annex J) journal — records N-ACTION-RQ + N-EVENT-REPORT-RQ pairs. License: storage_commitments. RBAC: manage_database.
| Transaction UID | Calling AE | SOP Count | Status | Requested | Responded | |
|---|---|---|---|---|---|---|
| No commitment requests recorded. | ||||||
AI Pipeline
AI-vendor-driven ingestion of SR/SC/SEG DICOM. Each vendor authenticates with an opaque API key (X-Ai-Vendor-Key); the ingest endpoint enforces a per-vendor allowed-SOP-class list. License: ai_pipeline. RBAC: manage_database.
Register vendor
| Name | API Key | Enabled | SOP Classes | Total Ingest | Last Ingest | Actions |
|---|---|---|---|---|---|---|
| No vendors registered. | ||||||
Ingest audit log
| When | Vendor | Status | SOP Class | Study UID | Source IP | Reason |
|---|---|---|---|---|---|---|
| No ingest events yet. | ||||||
Diagnostic Viewer
Read-only image preview. Pick a study, browse instances, adjust window/level. License: diagnostic_viewer. RBAC: view_study_browser.
IHE Profiles
Per-profile config for the 5 IHE profiles allowed in archive mode. Status: green = licensed + enabled, amber = licensed not enabled, gray = not licensed. RBAC: manage_database.
Migration PHASE-10 PORTING
Coming in subsequent child DCR under DCR-2026-218. Reference: legacy Web/Controllers/Vna/MigrationController.cs.
License: migration. RBAC: view_destinations / edit_destinations.
Scheduled Send PHASE-10 PORTING
Coming in subsequent child DCR under DCR-2026-218. Reference: legacy legacy scheduled-send service.
License: scheduled_send. RBAC: edit_destinations.
Smart Routing PHASE-10 PORTING
Coming in subsequent child DCR under DCR-2026-218. Reference: legacy legacy smart-routing engine.
License: smart_routing. RBAC: edit_destinations.