WordPress Plugin for Medical Imaging

Near-Professional DICOM viewing,
right inside WordPress.

Display medical imaging — CT, MRI, X-ray, ultrasound — directly on your WordPress site with a browser-based DICOM viewer. No software to install. No PACS server required. Just upload and embed.

Gutenberg Block Shortcode Protected Serving Zero Dependencies
100% Browser-Based
Filename Obfuscation
Gutenberg + Shortcode
Multi-Format DICOM
Cine Playback
ZIP Archive Support

Core Features

Everything you need to display DICOM on the web

A complete DICOM viewing solution for WordPress — from upload to display, with professional-grade tools and enterprise security built in.

Interactive Viewer

Pan, zoom (0.1x–20x), and Window/Level adjustment with mouse or touch. Navigate slices with scroll wheel or the built-in scrollbar. Professional controls, zero learning curve.

Multi-Series Support

Upload entire studies — the viewer automatically groups files by Series UID and sorts slices by position. Switch between series with a click.

Cine Playback

Animate through multi-frame DICOM series with play/pause control. Auto-loops at 10 FPS with a real-time frame counter — ideal for dynamic studies and CT scrolling.

Protected File Serving

Original filenames are scrambled to random hex on upload. Optional rewrite-rule serving via /dv-file/{id}/ with per-file access control: public, logged-in, or admin only.

Gutenberg Block

Drag-and-drop a DICOM viewer into any post or page. Pick files from the Media Library, set custom height, and see a live preview — all inside the block editor.

Shortcode & Classic Editor

[dicom_viewer id=”123″] — drop a viewer anywhere. Configure height, width, and download button visibility per instance. Classic Editor gets a dedicated media button.

Loading DICOM…
— / —

Interactive Viewer

Radiology-workstation controls, delivered in the browser

Every tool a radiologist expects — pan, zoom, Window/Level contrast, slice navigation, and cine playback — rendered on an HTML5 Canvas with offscreen buffer caching for silky-smooth performance. No plugins, no Java applets, no downloads.

  • Pan with grab cursor, zoom from 0.1x to 20x magnification
  • Window/Level drag adjustment — horizontal for width, vertical for center
  • Quick zoom and W/L buttons for fine-tuned ±25% / ±10% adjustments
  • Slice scrollbar with visual position indicator and mouse wheel support
  • One-click reset to restore original viewport state
Pan Zoom W/L Slice Navigation Cine Playback Reset

Format Support

Every major DICOM transfer syntax, handled client-side

From uncompressed Implicit VR Little Endian to JPEG 2000 Lossless — the viewer decodes everything in the browser. JPEG 2000 uses a WebAssembly-powered OpenJPEG decoder for native-speed performance. ZIP archives are extracted on the fly with JSZip.

  • Uncompressed: Implicit VR LE, Explicit VR LE, Explicit VR BE
  • JPEG Baseline (Process 1, 2 & 4)
  • JPEG Lossless (Process 14, First-Order Prediction)
  • JPEG 2000 Lossless & Lossy via OpenJPEG WASM
  • ZIP archive support — upload a .zip, viewer finds the .dcm files automatically
  • 8-bit and 16-bit pixel data with rescale slope/intercept
DICOM Parser JPEG Lossless JPEG 2000 OpenJPEG WASM JSZip Big Endian
transfer-syntax.js

// Transfer Syntax Detection

const syntax = detectTransferSyntax(uid);

// Supported formats:

Implicit VR Little Endian

Explicit VR Little Endian

Explicit VR Big Endian

JPEG Baseline (Process 1)

JPEG Extended (Process 2 & 4)

JPEG Lossless (Process 14)

JPEG 2000 Lossless

JPEG 2000 Lossy

// WASM decoder loaded on demand

await loadOpenJPEG();

Security & Privacy

Filename obfuscation and access control, out of the box

Medical images contain sensitive data. DICOM Viewer protects them at every layer: original filenames are scrambled to random hex strings on upload, files can be served through a permission-gated rewrite endpoint, and access levels are configurable per file.

  • Filename obfuscation — original names replaced with random hex, preserved in metadata
  • Protected serving via /dv-file/{id}/ rewrite rule (optional, toggle in settings)
  • Per-file access control: Public, Logged In, or Admin only
  • Secure MIME type validation and attachment post-type verification
  • Original filename preserved in post meta for download display
Filename Scramble Rewrite Rules Access Control MIME Validation
settings.php

Settings > DICOM Viewer

Protected File Serving

Serve files via /dv-file/{id}/

Default Viewer Height

480px

Show Download Button

Display original filename

Filenames are automatically scrambled on upload

block-editor.js

Gutenberg Block Editor

DICOM Viewer

Select a DICOM file from the Media Library

Media Library
Height: 480px Alignment: Wide Download: On

WordPress Integration

Three ways to embed — Gutenberg block, shortcode, or classic editor

The Gutenberg block lets you pick a DICOM file from the Media Library with a visual preview. The shortcode gives you full control with parameters for height, width, and download visibility. The Classic Editor gets a dedicated toolbar button that opens a file picker.

  • Gutenberg block with Media Library picker and live preview
  • shortcode with height, width, show_download params
  • [dicom_viewer url=”https://…”] for external DICOM file URLs
  • Classic Editor media button with dedicated file selection modal
  • Dynamic server-side rendering — assets loaded only when block is on page
Gutenberg Shortcode Classic Editor Media Library Block API v3
8 formats
DICOM transfer syntaxes
supported client-side
20x
Maximum zoom
magnification
3 methods
Block, shortcode,
classic editor
3 levels
Access control:
public, logged in, admin

How It Works

From upload to display in three steps

No server-side rendering, no PACS infrastructure, no third-party accounts. Install the plugin and start embedding DICOM files immediately.

01

Upload DICOM Files

Upload .dcm files or ZIP archives through the WordPress Media Library. Filenames are automatically scrambled for privacy and the original name is preserved in metadata.

02

Embed the Viewer

Add a DICOM Viewer block in Gutenberg, use the shortcode, or click the toolbar button in the Classic Editor. Pick your file and configure the height.

03

View & Interact

Visitors see a professional DICOM viewer with pan, zoom, W/L, slice navigation, and cine playback. Multi-series studies display a thumbnail sidebar automatically. No software to install.

FAQ

Common questions answered

No. DICOM Viewer renders everything in the browser using HTML5 Canvas and JavaScript. JPEG 2000 files are decoded using a WebAssembly-based OpenJPEG decoder. No Java applets, no ActiveX, no downloads — it works in any modern browser on desktop and mobile.
The viewer handles all major DICOM transfer syntaxes: Uncompressed (Implicit/Explicit VR, Little/Big Endian), JPEG Baseline (Process 1, 2 & 4), JPEG Lossless (Process 14, First-Order Prediction), and JPEG 2000 (both lossless and lossy). It also supports ZIP archives containing multiple DICOM files.
Yes. When you upload a ZIP archive containing multiple DICOM files, the viewer automatically groups them by Series UID, displays thumbnails in a sidebar, and sorts slices by their spatial position. Click any thumbnail to switch between series.
When a DICOM file is uploaded to the Media Library, the plugin automatically replaces the original filename with a random hexadecimal string. The original name is saved in post meta so it can still be displayed in the download button. This prevents patient information from leaking through URLs or directory listings.
Yes. When protected serving is enabled, each file can be set to one of three access levels: Public (everyone), Logged In (authenticated WordPress users only), or Admin (editors and administrators only). The plugin validates permissions before serving each file.
Yes. The plugin adds an “Add DICOM Viewer” button to the Classic Editor toolbar. Clicking it opens the Media Library modal where you can select a DICOM file. A shortcode is automatically inserted into your content. You can also manually type the shortcode: [dicom_viewer id=”123″ height=”600px”].
Requires
WordPress 6.4+ PHP 8.0+
Client-side
dicomParser JPEG Lossless OpenJPEG WASM JSZip

DICOM Viewer

Bring medical imaging to your WordPress site.

Professional-grade DICOM viewing for hospitals, clinics, telehealth platforms, medical education sites, and veterinary practices. Upload, embed, and let your visitors interact with diagnostic imaging directly in the browser.

webdevelop.hu · Built on WordPress · PHP 8.0+ · Requires WordPress 6.4+