Skip to main content

Imaging

What it does

Imaging is the platform's radiology information system (RIS). It records what can be requested, what was requested, and what was reported. It is not a PACS: it never stores the images themselves, only the metadata and links to wherever the images are held.

The procedure catalog is the list of orderable imaging procedures. Everything downstream depends on it: an order names a procedure, a worklist entry carries its modality, and a national extract reports its code.

Imaging orders are placed from a patient's record against that catalog.

The image archive page records where this facility's images are stored — if they are stored anywhere at all. Many facilities have no image archive, and that is a supported way to run the platform. Ordering, reporting and releasing a report all work with no archive configured; the only difference is that the chart says "images are not available" instead of offering a link.

Where to find it

  • Imaging → Procedure catalog/imaging/catalog
  • Imaging → Image archive/imaging/pacs
  • Imaging → Scheduling board/imaging/schedule
  • Imaging → Critical results/imaging/critical-results (imaging-filtered shared queue)
  • Imaging → Critical criteria/imaging/critical-criteria (which findings raise on release)
  • Imaging → Viewer/imaging/viewer (embedded OHIF over a short-lived brokered session)
  • Imaging → Teleradiology board/imaging/teleradiology (reads assigned to remote radiologists, with SLA breaches)
  • Imaging → National extract runs/imaging/extracts (per-country extract packs, enablement and run history)
  • Imaging → KPI dashboard/imaging/kpis (turnaround, backlog, modality utilisation and other metrics from the admin-managed imaging KPI source catalog)
  • A patient's record → Imaging orders — ordering and the orders already placed for them
  • A patient's record → Imaging reports — draft and reopen structured reports; released reports with images offer Open images

You need the view imaging catalog permission to see the catalog, and the manage imaging catalog permission to change it or to open the image archive page. Ordering needs the view imaging orders and place imaging orders permissions. Scheduling needs view imaging schedule / write imaging schedule. Reporting needs view imaging reports / write imaging reports. Critical results need view imaging critical (imaging.critical.read); criteria admin needs manage imaging critical (imaging.critical.write). Opening images needs view imaging studies (imaging.study.read). Acknowledgement actions on the shared loop also require the notification critical-result write permission. The teleradiology board needs view teleradiology (imaging.teleradiology.read); assigning and reassigning need manage teleradiology (imaging.teleradiology.write). National extract runs need view extract runs (imaging.extract.read); enabling/disabling a pack and triggering a run need manage extract runs (imaging.extract.write). The KPI dashboard needs view imaging KPIs (imaging.kpi.read); enabling or disabling catalog sources needs manage imaging KPIs (imaging.kpi.write).

Common tasks

Add a procedure

  1. Open Imaging → Procedure catalog and choose Add procedure.
  2. Give it a name a clinician would recognise, e.g. CT abdomen with contrast. This is a local label — the clinical coding lives on the concept you pick next.
  3. Choose the procedure concept from the concept dictionary (search by name or code). Every procedure must be coded as a concept; LOINC / RadLex mappings live on that concept, not as a separate code typed here. The same concept cannot be registered twice for the same owner.
  4. Choose the modality from the list — never typed. See below if the one you need is missing.
  5. Optionally add the body site, laterality, whether contrast is required and which agent, preparation instructions, typical room time and a reference dose. Body site, laterality and contrast agent are searched from the concept dictionary — type "chest" rather than a number.
  6. Choose Available to: every facility in your organisation, or this facility only.
  7. Add procedure.

Register a modality

If the modality your department acquires on is not in the list, register it from the Reference lists section, or from the Register a modality button beside the picker while adding a procedure.

Modalities are managed records rather than free text on purpose: if one person typed CT and another Ct, they would become two different modalities and a worklist filter would quietly miss half the work. Coding schemes are not registered here — they live in the platform concept dictionary.

Retire a procedure

Use Retire procedure on the row and give a reason. You can only retire entries your own facility or organisation published. Procedures published by a national body are visible to you and can be ordered against, but only their publisher may retire them.

Order imaging for a patient

  1. Open the patient's record and choose Imaging orders. There is no patient chooser on the order form — the order is for whoever's record you opened. If that is the wrong patient, go back; do not try to change it on the form.
  2. Their name, identifiers and allergies stay on screen while you order. Check them before ordering a contrast study.
  3. Choose Place imaging order.
  4. Set the priorityRoutine, Urgent (same day, ahead of routine work) or STAT (immediately, ahead of everything scheduled).
  5. Write the clinical indication: the question you want answered. The radiologist reads it before the images.
  6. Search the catalog and add each procedure the order needs. A CT of the abdomen and pelvis is one order with two procedures — add both here rather than placing two orders.
  7. Place order.

The order comes back with its accession number. That number identifies the order on every film, worklist and archive entry, and each requested procedure gets its own requested procedure ID beneath it.

Schedule a procedure onto a station

Open Imaging → Scheduling board.

This board books requested procedures onto a station for a date. It is not the scanner worklist: modalities query DICOM C-FIND on the DIMSE listener. A full board here does not prove a scanner can see those rows.

If this facility's RIS mode is External (set under Image archive), the board shows that the named external system owns the worklist. An empty board in that mode is expected — not a quiet morning and not a load failure. Chart orders/reports, critical results and KPIs still work.

  1. Choose the from / to dates (and optional station or modality filters).
  2. Schedule procedure — enter the patient id from the record where the order was placed, Load orders, pick an unscheduled requested procedure, set the start time, and optionally the station AE Title (if the procedure has no default), modality and department. (Hidden when RIS mode is External.)
  3. The row appears with the patient's current name from the record (not a copy from booking time).
  4. Acquisition shows whether the modality has started (In progress / Completed / Discontinued). Custody shows storage commitment: Commitment pending means the archive has not answered yet — that is normal for a while and is not success. Commitment overdue means the system gave up waiting; those studies also appear in a banner at the top of the board.
  5. Cancel on a row removes it from the board (and from the modality worklist). Cancelling the whole order is done from the patient's Imaging orders screen.

Cancel an imaging order

On Imaging orders, choose Cancel order on a request that the modality has not started, and give a reason. The accession number is never reused.

Draft an imaging report

  1. Open the patient's record and choose Imaging reports. The patient is whoever's record you opened — there is no patient chooser on the workbench.
  2. Choose New draft, pick the imaging order the report is about, and optionally a report template authored in the form builder.
  3. Write the narrative and impression. Add coded findings by concept id — each finding shows the concept's name, not a bare number.
  4. Create draft, then Save draft when you reopen it. A verified report is read-only here; corrections append (they do not overwrite).

About the accession number

You cannot type one, and this is deliberate. The number is issued by your facility's server, in sequence, and once issued it is never reused — not even when an order is cancelled, because it may already be printed on a film. If two orders could share a number, two studies would be indistinguishable afterwards.

Set up the image archive (or record that there is none)

Open Imaging → Image archive.

The same page also holds RIS mode (who owns the worklist) — see below. Archive settings and RIS mode share this screen and the manage imaging catalog permission; there is no separate menu item.

If nothing has been configured, the page says "Images are not available — this facility has no image archive configured". That is a statement, not an error: nothing is broken, and nothing on this page has to be filled in for the rest of imaging to work.

To configure one, choose Configure archive and fill in what applies:

  1. Store adapter — chosen from the adapters this installation actually has. Leave it on Deployment default unless you were told otherwise. It is a list rather than a box because a name you invent matches no adapter, and the failure would show up much later as images that never arrive anywhere.
  2. DICOMweb endpoints — the web addresses used to find studies (QIDO-RS), retrieve them (WADO-RS) and submit what we produce (STOW-RS).
  3. DICOM node identity — the host and port of the archive, the archive's AE Title (whom we call) and our AE Title (whom the modalities call).
  4. Release policy — whether a report may only be released once images are stored. Leave this off unless your facility always images; a facility with no archive must still be able to release reports.
  5. Save archive configuration.

Every field is optional. You can save with nothing filled in.

Choose who owns the worklist (RIS mode)

Still on Imaging → Image archive, use the RIS mode section at the top of the page.

  • Internal — this platform owns the worklist. We schedule procedures and answer modality worklist queries. This is the default when nothing has been saved yet.
  • External — another radiology information system owns the worklist. You must name that system (for example Carestream RIS, Radiology Dept). Charts, critical results and imaging KPIs keep working; this is not imaging switched off.

Save RIS mode after you choose. Unlike the archive settings beside it, a facility with no saved RIS configuration still has a mode: Internal. The server always answers with that effective setting rather than "nothing configured".

When the mode is External, the Scheduling board states plainly that the named system owns scheduling and does not offer Schedule procedure. An empty board there is expected — it is not a quiet morning. Use the external system to book.

About AE Titles

An AE Title is how a DICOM device announces itself. It can be at most 16 characters, must be ordinary printable characters, and can never contain a backslash — DICOM uses \ to separate values, so a title containing one cannot be sent at all. The form tells you immediately if a title breaks those rules, because otherwise you would find out hours later from a radiographer whose scanner is being refused.

AE Titles are case-sensitive: CT_1 and ct_1 are two different devices.

Permit a device to reach us (the callers list)

The Permitted callers list is the authentication for our DICOM port. A DICOM connection carries no password and no login: a device connects, states its AE Title, and this list is the only thing that decides whether it may see this facility's worklist or send us images.

Treat adding an entry as granting access, not as adding a preference. You can permit a caller even before the archive form has been saved — permitting creates the facility's archive row if it does not exist yet.

  1. Choose Permit a caller.
  2. Enter the calling AE Title exactly as the device announces itself, and say which device it is ("Siemens CT, radiology basement") so whoever maintains this list after you knows what it is.
  3. Permit this caller.

To remove one, choose Withdraw access on the row and say why. That device stops being able to query the worklist or send images, usually within the minute, and the reason is what an audit reads afterwards.

If the list is empty, nothing can reach us at all — the page says so plainly.

Verify and release a report

  1. Open the patient's Imaging reports workbench.
  2. Finish the draft (narrative, impression, coded findings) and choose Verify. The report becomes read-only; corrections append as amendments rather than editing the verified row.
  3. Choose Release to chart. Coded findings are written into the clinical record. The report then appears on the patient summary page and in the summary panel above clinical forms. Drafts and verified-but-unreleased reports stay on the workbench only.

Release does not depend on an image archive. When no PACS is configured, the chart still shows the report and calmly says images are not available.

When there are no images

Wherever a study would be shown, you may instead see "Images are not available". It means one of three things, and none of them is a failure:

  • this facility has no image archive configured;
  • there is an archive, but no images have been stored for this request yet;
  • you may read the report but not open its images.

The report is complete either way. The platform never waits on the archive to draw a chart, so a slow or unreachable PACS cannot freeze the screen you are working in.

Send a read to a remote radiologist

Open Imaging → Teleradiology board.

This is an outbound worklist for reads sent to radiologists reporting remotely rather than reads performed at this facility. The point of the board is that a breached SLA is visible without opening the row — it is a badge on the row and a filter chip, not something you find out only after clicking in.

  1. Assign radiologist — enter the requested procedure id (from the patient's imaging order) and the radiologist id. There is no radiologist picker yet, so this is typed directly, the same as the patient id on the scheduling board. Leave SLA (minutes) blank to use the deployment default turnaround.
  2. The row appears with its accession, procedure, assigned/due times and state. SLA breach shows SLA breached or On track as its own column — never something you have to compute yourself from the due time.
  3. Filter by Radiologist id, State, or toggle SLA breached only to see just the reads that have missed their turnaround.
  4. Reassign on a row moves that read to a different radiologist and restarts its SLA clock from now. Use this when a radiologist cannot complete a read in time.

The SLA breached badge is exactly what the server decided, not a client-side guess against the due time — the browser's clock is never trusted for this.

Run a national extract

Open Imaging → National extract runs.

This is the admin and history screen for the per-country extract packs — the scheduled exports a national health body or program consumes. It answers three questions: which pack ran, when, and what it produced.

⚠ Built ahead of its backend (M10B-012). Confirm with the platform team that the extract-run API has actually shipped before relying on this screen for a real submission — see the Troubleshooting table below if the page cannot reach it yet.

  1. Extract packs lists every pack registered for this deployment, with whether it is Enabled or Disabled for this facility. There is no facility picker — enablement is always for the facility you are signed in to, the same as the image archive page.
  2. Enable / Disable a pack from its row. A disabled pack cannot be chosen when triggering a run.
  3. Trigger run — choose an enabled pack and a period from / to. Only enabled packs are offered; enable one first if it is missing from the list.
  4. The run history table shows every run's pack, period, status, rows produced, validation issues, and start/completion times. Choose View on a row to open its detail panel.

Reading the status column — a failed run is not the same as an empty one

A run that completed and produced zero rows is a normal, calm outcome — some countries have periods with genuinely nothing to extract. A run that failed is not, and the two are never shown as the same badge:

  • Failed — a red badge. The detail panel shows the run's error summary so you know what to fix before retrying.
  • Completed — no rows — a neutral badge. The detail panel explains that this is expected and shows no error text, because there is none.
  • Completed (with a row count) — the pack found data and produced it.

Do not read a 0 in the Rows column as a problem on its own — check the status badge next to it.

Read the imaging KPI dashboard

Open Imaging → KPI dashboard.

This page reads the admin-managed imaging KPI source catalog and live metrics from imaging. It does not calculate anything itself — every card presents a figure the imaging metrics API already computed. Milestone 11 reporting will reuse the same contracts over Feign later.

  1. Choose the from / to dates. They apply to every card on the page.
  2. Each card is one enabled KPI source (seeded samples include turnaround by stage, unreported backlog, modality utilisation, repeat/reject rate, dose per procedure, and critical-result acknowledgement time). Administrators with manage imaging KPIs can enable or disable sources.
  3. Refresh re-fetches the catalog and the combined metrics summary for the current date range.

If a card shows "No data for this period", imaging reported nothing for that range — not a broken chart. If the whole page shows "No enabled imaging KPI source is registered yet", no source is enabled in the catalog.

Configure critical-finding criteria

  1. Open Imaging → Critical criteria.
  2. Choose the finding concept that should raise a critical result when it appears on a released report, set a severity, and the notify channel / recipient used for the first alert.
  3. Add criterion. Leave the list empty if this facility should raise no imaging critical results.
  4. Open Imaging → Critical results to watch the imaging-filtered shared acknowledgement queue (source_module=imaging). Acknowledge and close there — there is no second imaging-only loop.

What you are looking at

The catalog you see is three lists merged:

  • procedures your facility published,
  • procedures your organisation published,
  • procedures published by national health bodies in your country.

A country often has more than one national body, so two entries with the same name are normal. The Published by column is how you tell them apart, and it also states whether an entry is tenant-wide or local to one facility.

Automated full-stack check (developers)

The Playwright suite src/test/e2e-fullstack/imaging-journey.spec.ts (FE-229) walks order → schedule → report → release → chart against a live backend, once with no PACS and once with Orthanc URLs configured (M10B-014 compose). Run details live in src/test/e2e-fullstack/README.md. Acquisition from a scanner is not a UI click — the board showing Scheduled is the hand-off to the modality.

Troubleshooting

What you seeWhat it means
"No modality is registered in this scope yet"Nothing has been registered for your facility, organisation or country. Register the equipment you actually have.
"This procedure is published by another owner and cannot be retired here"The entry belongs to another organisation. Ask them, or publish your own version.
"A live procedure with concept id … already exists for this owner"That concept is already in your catalog for this owner. Search for it rather than creating a duplicate.
The Imaging section is missing from the sidebarYou do not hold the imaging catalog permission, or the imaging module is not activated for your facility.
"This facility has no accession-number format configured"No order can be placed until an administrator configures the format — prefix, year and sequence width — for this facility.
"An imaging order must request at least one procedure"Add at least one procedure from the catalog before placing the order.
"No procedure is published in this scope yet"The catalog has nothing to order. Someone with catalog permission must publish a procedure first.
Imaging orders is missing from the patient's recordYou do not hold the imaging order permission, or the imaging module is not activated for your facility.
"This facility has no image archive configured"Nothing is wrong. No PACS has been set up here; ordering, reporting and release still work. Configure one only if this facility actually has somewhere to store images.
"External RIS owns this facility's worklist" on the scheduling boardRIS mode is External. Schedule in the named system; an empty board here is expected. Not imaging switched off — chart, critical results and KPIs still work. Change mode under Image archive only when this facility takes the worklist back.
RIS mode save asks for an external system nameExternal mode must name the system that owns the worklist so the board can say which one.
"AE Title … is already permitted"That AE Title is in use somewhere in this installation, not only at your facility. An AE Title names one device; permitting it twice would leave us unable to tell which hospital a connection belongs to, so it is refused rather than guessed. Give the device its own title.
"An AE Title is at most 16 characters" / "…may contain only printable ASCII…"The title cannot be carried by DICOM. Shorten it, or remove the backslash or accented character.
"No device is permitted to open a DIMSE association with this facility"Nothing can query the worklist or send us images yet. Permit the modalities you actually have — including before the rest of the archive form is filled in.
Image archive is missing from the Imaging menuYou hold the view permission but not the manage imaging catalog permission. This page changes who may reach us, so it needs the manage permission.
Critical criteria / Critical results missing from ImagingYou lack imaging.critical.write / imaging.critical.read, or the imaging module is not activated.
Released report with a critical finding never appears on Critical resultsNo active criterion matches that finding concept for this facility, or the shared notification critical-result API is unavailable.
Teleradiology board missing from ImagingYou lack imaging.teleradiology.read, or the imaging module is not activated.
Assign radiologist / Reassign missing on the teleradiology boardYou hold imaging.teleradiology.read but not imaging.teleradiology.write.
National extract runs missing from ImagingYou lack imaging.extract.read, or the imaging module is not activated.
Enable / Disable / Trigger run missing on National extract runsYou hold imaging.extract.read but not imaging.extract.write.
National extract runs shows a load error for packs or historyBackend M10B-012 may not be deployed yet — this screen was built against the ticket's sketch contract ahead of the real controller. Confirm the API exists before treating this as a defect.
A run's Rows shows 0 with a Completed — no rows badgeNot a failure. The pack ran and genuinely found nothing for that period; check the badge, not the row count alone.
KPI dashboard missing from ImagingYou lack imaging.kpi.read, or the imaging module is not activated.
Enable / Disable missing under KPI source catalogYou hold imaging.kpi.read but not imaging.kpi.write.
KPI dashboard shows a load error for sources or metricsBackend M10B-013 may not be deployed yet, or the selected facility context is missing.
A KPI card shows "No data for this period"Imaging returned no samples for the chosen dates — normal for a quiet period, not an error.