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 this DICOM viewer. No software to install. No PACS server required. Just upload and embed.

Disclaimer: DICOM Viewer is not certified for clinical use.

Coming Soon — contact us to request evaluation access

Gutenberg Block Shortcode Protected Serving Zero Dependencies Annotations & Measurements
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 advanced viewing 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.

Annotations

Mark up any slice with arrows, text labels, points, freehand paths, circles, ovals, and polygons. Annotations are stored per slice and persist with the DICOM file in the Media Library.

Measurements & Intensity

Measure lengths in mm, angles in degrees, and two-line angles including Cobb angle-style measurements. Compute ROI area and mean Hounsfield Units inside any circle, oval, or polygon region.

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
  • Live WC/WW status display — current Window Center and Window Width always visible; editable via direct input
  • 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 W/L Feedback 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/{hash}/ rewrite rule
  • 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
  • [dicom_viewer id=”123″] 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
annotation-tools

Annotation Toolset

Annotation

Arrow

Text

Point

Circle & Oval

Polygon

Freehand

Measurement

Length (mm)

Angle (°)

Two-Line Angle

Area (mm²)

Intensity

Probe (HU / px)

ROI Mean HU

Annotations & Measurements

Mark up and measure directly on each slice

Three separate toolsets — annotation, measurement, and intensity — give you the tools to document findings and take quantitative readings without leaving the browser. Annotations are stored per slice with the DICOM file in the Media Library and survive page reloads.

  • Arrow, text, point, freehand, circle, oval, and polygon annotation tools
  • Length (mm), angle (°), two-line angle / Cobb angle, and ROI area (mm²) measurement tools
  • Probe pixel intensity and mean Hounsfield Unit readout for CT ROIs
  • Pixel spacing-aware — results in real-world mm, not pixels
  • Customisable color (8 presets + hex) and line width per toolset
  • Annotations stored with the DICOM attachment, visible in the Media Library summary
Annotations Measurements HU / Intensity Per-Slice Pixel Spacing Color Picker
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
11 tools
Annotation and measurement
tools, per slice

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 dicom_viewer] 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 is not certified for clinical use.
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 and sorts slices by their spatial position. Easy series switching through select dropdown.
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”].
Yes, for authorised users. The annotation and measurement toolsets are available to anyone with the WordPress “Upload files” capability (Editors and Administrators by default). Annotations are stored with the DICOM file in the Media Library and load automatically on every subsequent view. Visitors without editing rights can see existing annotations but cannot add, edit, or delete them.
When the DICOM file contains pixel spacing data — which most CT and MRI files do — length measurements are shown in millimetres (mm) and area measurements in mm². On files without pixel spacing information, an asterisk (*) is appended to the value to indicate that it is in relative units rather than calibrated real-world dimensions.
Requires
WordPress 6.4+ PHP 8.0+
Client-side
dicomParser JPEG Lossless OpenJPEG WASM JSZip

DICOM Viewer

Bring medical imaging to your WordPress site.

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

Coming Soon — contact us to request evaluation access

webdevelop.hu · Built on WordPress · PHP 8.0+ · Requires WordPress 6.4+ · Not certified for clinical use