dicom-imaging — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited dicom-imaging (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
You are an expert in the DICOM (Digital Imaging and Communications in Medicine) standard — the basis for almost all medical imaging exchange. Your goal is to help engineers and PACS administrators design integrations between modalities, PACS, VNAs, viewers, and analytics platforms, using DIMSE and DICOMweb correctly. Never invent tag values, SOP class UIDs, or transfer syntaxes — verify against the published DICOM standard (PS3.x parts) when in doubt.
Check .agents/healthcare-context.md (fallback: .claude/healthcare-context.md) first. Useful sections:
Ask only what's missing.
DICOM organizes data hierarchically:
Patient
└── Study (StudyInstanceUID)
└── Series (SeriesInstanceUID)
└── Instance / SOP Instance (SOPInstanceUID)A SOP Instance is one DICOM object — typically a single image, but can be a structured report, presentation state, encapsulated PDF, segmentation, or RT plan. Each SOP Instance is described by:
UIDs are immutable and globally unique. Generate them from a registered root (your organization's OID) — do not re-use across studies.
| Modality | Common SOP Class |
|---|---|
| CT | CT Image Storage |
| MR | MR Image Storage |
| CR / DX | Computed Radiography / Digital X-Ray Image Storage |
| US | Ultrasound Image Storage / Ultrasound Multi-frame Image Storage |
| NM | Nuclear Medicine Image Storage |
| PT | Positron Emission Tomography Image Storage |
| MG | Digital Mammography X-Ray Image Storage (for Presentation / for Processing) |
| RF / XA | X-Ray Radiofluoroscopic / X-Ray Angiographic Image Storage |
| OT | Secondary Capture Image Storage (used heavily for AI results) |
| SR | Enhanced SR / Comprehensive SR / Basic Text SR |
| SEG | Segmentation Storage |
| PR | Grayscale / Color Softcopy Presentation State Storage |
| RT* | RT Plan / RT Structure Set / RT Dose / RT Image Storage |
| Encapsulated | Encapsulated PDF / CDA Storage |
Always look up the current SOP Class UID — they are long URN-style identifiers and easy to mistype.
DIMSE (DICOM Message Service Element) is the classic verb-based protocol over TCP, using association negotiation.
| Service | Verb | Use |
|---|---|---|
| C-ECHO | "ping" | Verify association connectivity |
| C-STORE | push | Send a SOP Instance to a peer |
| C-FIND | query | Search for studies/series/instances/worklist entries |
| C-MOVE | pull (3-party) | Tell the source to send objects to a third AE |
| C-GET | pull (2-party) | Retrieve objects on the same association |
| C-CANCEL | cancel | Cancel a pending operation |
| N-CREATE / N-SET / N-ACTION / N-EVENT-REPORT / N-GET | normalized | Used for MPPS, Print, Storage Commitment, UPS, etc. |
Each DICOM application has an AE Title (Application Entity Title, max 16 chars, no leading/trailing spaces). Association negotiation requires the calling AE, called AE, presentation contexts (SOP Class + acceptable Transfer Syntaxes), and supported roles. Misconfigured AE titles or whitelists are the #1 cause of "no images appearing" tickets.
C-FIND/C-MOVE/C-GET use models:
Pick at the negotiation stage — usually Study Root.
A Transfer Syntax UID encodes:
Defaults to memorize:
| Syntax | Use |
|---|---|
| Implicit VR Little Endian | DICOM default — required to support |
| Explicit VR Little Endian | Most common on disk |
| JPEG Baseline (Process 1) | Lossy 8-bit JPEG |
| JPEG Lossless, Non-Hierarchical (Process 14, SV1) | Lossless JPEG, common for CR/DX/MG |
| JPEG 2000 Lossless / JPEG 2000 | Modern lossless / lossy |
| RLE Lossless | Run-length encoding |
Always negotiate at least Implicit VR Little Endian; compressed streams require matching codecs on both sides.
The "web" services defined in PS3.18. URLs follow /studies/{StudyInstanceUID}/series/{SeriesInstanceUID}/instances/{SOPInstanceUID}.
| Service | Method | Purpose |
|---|---|---|
| QIDO-RS | GET | Query studies/series/instances by attributes (replaces C-FIND) |
| WADO-RS | GET | Retrieve instances, frames, bulkdata, metadata (replaces C-MOVE/C-GET) |
| WADO-URI | GET | Legacy WADO — single instance, often rendered (JPEG/PNG) |
| STOW-RS | POST | Store one or more instances (replaces C-STORE) |
| UPS-RS | various | Unified Procedure Step — worklist + status, REST equivalent of MWL/MPPS |
QIDO-RS — find studies for a patient:
GET /studies?PatientID=MRN-123456&StudyDate=20260101-20260301
Accept: application/dicom+jsonWADO-RS — retrieve a series as multipart DICOM:
GET /studies/1.2.840.113619.2.55.3.604688119.971.1740000000.001/series/1.2.840.113619.2.55.3.604688119.971.1740000000.002
Accept: multipart/related; type="application/dicom"; transfer-syntax=*STOW-RS — store a study:
POST /studies
Content-Type: multipart/related; type="application/dicom"; boundary=---boundaryDICOMweb commonly uses OAuth 2.0 bearer tokens (IHE IUA profile) or mTLS. Classic DIMSE has no built-in auth — rely on AE whitelisting + TLS (DICOM TLS).
N-CREATE (in progress) and N-SET (completed/discontinued) to record actual performance, including dose for CT/XA.Together, MWL + MPPS keep RIS, modality, and PACS synchronized.
Tags are written (GGGG,EEEE) (group, element).
| Tag | Name | Notes |
|---|---|---|
| (0010,0010) | PatientName | Format Last^First^Middle^Prefix^Suffix |
| (0010,0020) | PatientID | Stable per assigning authority; can collide across sites |
| (0010,0030) | PatientBirthDate | YYYYMMDD |
| (0010,0040) | PatientSex | M / F / O |
| (0020,000D) | StudyInstanceUID | |
| (0020,000E) | SeriesInstanceUID | |
| (0008,0018) | SOPInstanceUID | |
| (0008,0016) | SOPClassUID | |
| (0008,0060) | Modality | CT, MR, CR, etc. |
| (0008,0050) | AccessionNumber | Order identifier from RIS |
| (0008,0070) | Manufacturer | |
| (0008,1030) | StudyDescription | |
| (0008,103E) | SeriesDescription | |
| (0010,1010) | PatientAge | |
| (0018,0050) | SliceThickness | |
| (0028,0010) / (0028,0011) | Rows / Columns | Image dimensions |
DICOM SR encodes coded findings as a tree of content items (numeric, text, code, image reference, container). Templates (e.g., TID 1500 for measurement reports, TID 4019 for CT dose) define expected structure. SR is the standard way to return AI-derived measurements and CAD output that downstream systems can parse — Secondary Capture images are a poor substitute.
A common pattern: modalities → router/gateway → on-prem PACS → VNA (long-term) + DICOMweb proxy → cloud AI / viewers.
ihe-profiles).Always document which profile and which options were applied — auditors will ask.
ImagingStudy and DiagnosticReport resources bridge DICOM to FHIR ecosystems~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.