{
 "id": "ct-image-production",
 "modality": "CT",
 "category": "Image Production",
 "title": "CT Image Production: Acquisition, Reconstruction and Artifacts",
 "minutes": 10,
 "slides": [
  {
   "id": 1,
   "diagram": "title",
   "heading": "CT Image Production",
   "bullets": [
    "52 of 165 scored questions (31.5%)",
    "Equipment, technique, pitch, acquisition modes",
    "Reconstruction, windowing, CT numbers, artifacts"
   ],
   "narration": "Welcome to CT Image Production. This is the second biggest category on the CT boards: 52 of the 165 scored questions, almost one third of the exam. We'll cover the gantry and detectors, then technique factors and noise, pitch and fields of view, and the different acquisition modes. After that we move to reconstruction and kernels, pixels and windowing, CT numbers and quality control, and finally artifacts and how to fix them. Expect math here, so have a pencil handy for a few quick formulas.",
   "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 200\" role=\"img\" aria-label=\"Title card showing 52 of 165 scored CT questions for image production\" font-family=\"inherit\"><text x=\"160\" y=\"62\" font-size=\"28\" text-anchor=\"middle\" font-weight=\"bold\" style=\"fill:var(--ib-pink)\">52 of 165</text><text x=\"160\" y=\"84\" font-size=\"14\" text-anchor=\"middle\" fill=\"currentColor\">scored CT questions</text><line x1=\"60\" y1=\"100\" x2=\"260\" y2=\"100\" style=\"stroke:var(--stroke-primary)\" stroke-width=\"2\"/><rect x=\"40\" y=\"116\" width=\"240\" height=\"26\" rx=\"4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><text x=\"160\" y=\"134\" font-size=\"13\" text-anchor=\"middle\" fill=\"currentColor\">Acquire and reconstruct</text><rect x=\"40\" y=\"150\" width=\"240\" height=\"26\" rx=\"4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><text x=\"160\" y=\"168\" font-size=\"13\" text-anchor=\"middle\" fill=\"currentColor\">Evaluate and fix artifacts</text></svg>"
  },
  {
   "id": 2,
   "diagram": "gantry-geometry",
   "heading": "Gantry and detectors",
   "bullets": [
    "3rd generation: tube and detectors rotate together",
    "Slip rings allow continuous helical rotation",
    "Scintillator turns x-rays to light, photodiode to signal",
    "DAS amplifies, log-converts and digitizes (ADC)",
    "Prepatient collimation sets beam width and dose"
   ],
   "narration": "Modern scanners are third generation, rotate rotate: the tube and a curved detector array spin together. Slip rings carry power and data without cables, which allows continuous rotation and made helical scanning possible. Solid-state detectors use a scintillator that turns x-rays into light, then a photodiode that turns light into an electrical signal. The data acquisition system, or D A S, amplifies that signal, log-converts it, and digitizes it with an analog to digital converter. Remember, prepatient collimation sets beam width and patient dose; postpatient collimation only cuts scatter.",
   "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 200\" role=\"img\" aria-label=\"Third-generation gantry: x-ray tube at top with fan beam through the patient to a curved detector array opposite\" font-family=\"inherit\"><circle cx=\"110\" cy=\"100\" r=\"78\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><rect x=\"92\" y=\"14\" width=\"36\" height=\"18\" rx=\"3\" style=\"fill:var(--ib-pink)\"/><text x=\"136\" y=\"28\" font-size=\"12\" style=\"fill:var(--ib-pink)\">X-ray tube</text><path d=\"M110 32 L60 160\" fill=\"none\" style=\"stroke:var(--ib-pink)\" stroke-width=\"2\"/><path d=\"M110 32 L160 160\" fill=\"none\" style=\"stroke:var(--ib-pink)\" stroke-width=\"2\"/><circle cx=\"110\" cy=\"100\" r=\"22\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><text x=\"110\" y=\"104\" font-size=\"12\" text-anchor=\"middle\" fill=\"currentColor\">pt</text><path d=\"M52 162 Q110 192 168 162\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"5\"/><text x=\"204\" y=\"92\" font-size=\"13\" fill=\"currentColor\">Detector array</text><text x=\"204\" y=\"110\" font-size=\"12\" fill=\"currentColor\">spins with tube</text><text x=\"204\" y=\"142\" font-size=\"12\" fill=\"currentColor\">DAS: amplify,</text><text x=\"204\" y=\"158\" font-size=\"12\" fill=\"currentColor\">log, digitize</text><path d=\"M200 104 L176 150\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"1\"/></svg>"
  },
  {
   "id": 3,
   "diagram": "noise-mas-curve",
   "heading": "kVp, mAs and noise",
   "bullets": [
    "Noise is proportional to 1 / square root of mAs",
    "Double mAs: about 29% less noise",
    "Halve noise: four times the mAs",
    "kVp sets penetration and contrast",
    "Low kVp boosts iodine but adds noise"
   ],
   "narration": "Noise follows one over the square root of mAs, the product of tube current and time. So doubling mAs cuts noise by only about 29 percent. To cut noise in half, you need four times the mAs, and four times the dose. k V p, kilovolts peak, controls beam energy, penetration and image contrast, not just quantity. Dropping k V p brings the beam closer to the iodine K edge, so vessels get brighter, but noise rises, especially in large patients. Those large patients need higher technique to avoid photon starvation streaks.",
   "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 200\" role=\"img\" aria-label=\"Curve showing image noise falling with the inverse square root of mAs; four times the mAs halves noise\" font-family=\"inherit\"><line x1=\"40\" y1=\"170\" x2=\"300\" y2=\"170\" stroke=\"currentColor\" stroke-width=\"2\"/><line x1=\"40\" y1=\"170\" x2=\"40\" y2=\"30\" stroke=\"currentColor\" stroke-width=\"2\"/><text x=\"12\" y=\"22\" font-size=\"13\" font-weight=\"bold\" fill=\"currentColor\">Noise vs mAs</text><path d=\"M56 50 71 85 87 101 102 110 118 116 134 121 149 125 165 128 181 130 196 132 212 134 228 135 243 137 259 138 274 139 290 140\" fill=\"none\" style=\"stroke:var(--ib-pink)\" stroke-width=\"2\"/><text x=\"170\" y=\"188\" font-size=\"12\" text-anchor=\"middle\" fill=\"currentColor\">mAs</text><text x=\"50\" y=\"46\" font-size=\"12\" fill=\"currentColor\">noise</text><text x=\"130\" y=\"90\" font-size=\"13\" fill=\"currentColor\">Noise = 1 / sqrt(mAs)</text><text x=\"130\" y=\"112\" font-size=\"13\" style=\"fill:var(--ib-pink)\">4x mAs = half the noise</text></svg>"
  },
  {
   "id": 4,
   "diagram": "pitch-overlap",
   "heading": "Pitch and fields of view",
   "bullets": [
    "Pitch = table travel per rotation / beam width",
    "Over 1 = gaps, faster, lower dose; under 1 = overlap",
    "z-axis runs head to foot along the table",
    "SFOV must cover the body; DFOV can't exceed SFOV"
   ],
   "narration": "Pitch is table travel per rotation divided by total beam width. With a 40 millimeter beam and 60 millimeters of travel, pitch is 1.5. Pitch over 1 leaves gaps filled by interpolation, scanning faster at lower dose; under 1 overlaps data, as in cardiac gating. Know the axes: x is left to right, y is front to back, and z runs head to foot along the table. The scan field of view must cover the whole body part or you get out-of-field artifact. The display field of view is chosen later and can't exceed it.",
   "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 200\" role=\"img\" aria-label=\"Beam footprints along the table at pitch 1 contiguous, pitch above 1 with gaps, and pitch below 1 overlapping\" font-family=\"inherit\"><text x=\"12\" y=\"22\" font-size=\"13\" font-weight=\"bold\" fill=\"currentColor\">Pitch = table feed / beam</text><text x=\"12\" y=\"56\" font-size=\"12\" font-weight=\"bold\" fill=\"currentColor\">Pitch 1</text><rect x=\"80.0\" y=\"42\" width=\"32\" height=\"20\" rx=\"1\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><rect x=\"112.0\" y=\"42\" width=\"32\" height=\"20\" rx=\"1\" fill=\"none\" style=\"stroke:var(--ib-pink)\" stroke-width=\"2\"/><rect x=\"144.0\" y=\"42\" width=\"32\" height=\"20\" rx=\"1\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><rect x=\"176.0\" y=\"42\" width=\"32\" height=\"20\" rx=\"1\" fill=\"none\" style=\"stroke:var(--ib-pink)\" stroke-width=\"2\"/><text x=\"80\" y=\"80\" font-size=\"12\" fill=\"currentColor\">contiguous</text><text x=\"12\" y=\"108\" font-size=\"12\" font-weight=\"bold\" fill=\"currentColor\">Pitch &gt;1</text><rect x=\"80.0\" y=\"94\" width=\"32\" height=\"20\" rx=\"1\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><rect x=\"124.80000000000001\" y=\"94\" width=\"32\" height=\"20\" rx=\"1\" fill=\"none\" style=\"stroke:var(--ib-pink)\" stroke-width=\"2\"/><rect x=\"169.60000000000002\" y=\"94\" width=\"32\" height=\"20\" rx=\"1\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><rect x=\"214.4\" y=\"94\" width=\"32\" height=\"20\" rx=\"1\" fill=\"none\" style=\"stroke:var(--ib-pink)\" stroke-width=\"2\"/><text x=\"80\" y=\"132\" font-size=\"12\" fill=\"currentColor\">gaps, lower dose</text><text x=\"12\" y=\"160\" font-size=\"12\" font-weight=\"bold\" fill=\"currentColor\">Pitch &lt;1</text><rect x=\"80.0\" y=\"146\" width=\"32\" height=\"20\" rx=\"1\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><rect x=\"102.4\" y=\"146\" width=\"32\" height=\"20\" rx=\"1\" fill=\"none\" style=\"stroke:var(--ib-pink)\" stroke-width=\"2\"/><rect x=\"124.80000000000001\" y=\"146\" width=\"32\" height=\"20\" rx=\"1\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><rect x=\"147.2\" y=\"146\" width=\"32\" height=\"20\" rx=\"1\" fill=\"none\" style=\"stroke:var(--ib-pink)\" stroke-width=\"2\"/><text x=\"80\" y=\"184\" font-size=\"12\" fill=\"currentColor\">overlap, more dose</text></svg>"
  },
  {
   "id": 5,
   "diagram": "acquisition-modes",
   "heading": "Acquisition modes",
   "bullets": [
    "Sequential: table stops each slice (HRCT, gating)",
    "Helical: continuous rotation plus table motion",
    "Wide detector covers an organ in one rotation",
    "Dual energy: two spectra, monoenergetic, iodine maps"
   ],
   "narration": "Sequential, or step and shoot, scanning stops the table for each exposure, then moves. It's used for high resolution chest and prospective cardiac gating. Helical scanning combines continuous rotation with continuous table motion to build a volume that needs z-axis interpolation. A wide detector, up to about 16 centimeters, can cover the heart or brain in one rotation without moving the table. Dual energy uses two spectra to make virtual monoenergetic images, iodine maps and virtual noncontrast images. Low keV boosts iodine; high keV reduces metal artifact.",
   "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 200\" role=\"img\" aria-label=\"Four acquisition modes: sequential step blocks, helical continuous path, volumetric single wide rotation, and dual energy\" font-family=\"inherit\"><text x=\"12\" y=\"22\" font-size=\"13\" font-weight=\"bold\" fill=\"currentColor\">Acquisition modes</text><text x=\"12\" y=\"52\" font-size=\"12\" font-weight=\"bold\" fill=\"currentColor\">Sequential</text><rect x=\"110\" y=\"40\" width=\"30\" height=\"16\" rx=\"1\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><rect x=\"160\" y=\"40\" width=\"30\" height=\"16\" rx=\"1\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><rect x=\"210\" y=\"40\" width=\"30\" height=\"16\" rx=\"1\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><text x=\"250\" y=\"53\" font-size=\"12\" fill=\"currentColor\">stop-go</text><text x=\"12\" y=\"92\" font-size=\"12\" font-weight=\"bold\" fill=\"currentColor\">Helical</text><path d=\"M110 88 C120 70 130 70 140 88 S160 106 170 88 S190 70 200 88 S220 106 230 88\" fill=\"none\" style=\"stroke:var(--ib-pink)\" stroke-width=\"2\"/><text x=\"250\" y=\"93\" font-size=\"12\" fill=\"currentColor\">volume</text><text x=\"12\" y=\"132\" font-size=\"12\" font-weight=\"bold\" fill=\"currentColor\">Volumetric</text><rect x=\"110\" y=\"116\" width=\"120\" height=\"24\" rx=\"1\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><text x=\"250\" y=\"133\" font-size=\"12\" fill=\"currentColor\">1 turn</text><text x=\"12\" y=\"172\" font-size=\"12\" font-weight=\"bold\" fill=\"currentColor\">Dual energy</text><text x=\"110\" y=\"172\" font-size=\"12\" style=\"fill:var(--ib-pink)\">2 spectra: mono, iodine</text></svg>"
  },
  {
   "id": 6,
   "diagram": "raw-vs-image-data",
   "heading": "Reconstruction",
   "bullets": [
    "Raw data: change kernel, slice, DFOV; image: window",
    "FBP is fast; iterative recon cuts noise, lowers dose",
    "Sharp kernel = edge detail and more noise",
    "Overlapping recons improve MPR with no added dose",
    "MIP shows brightest voxels; MinIP shows airways"
   ],
   "narration": "Raw data are the recipe ingredients. From them you can change the kernel, slice thickness, interval and display field of view. Image data only let you window, zoom and reformat. Filtered back projection is fast but noisy at low dose; iterative reconstruction compares estimates with measured data to cut noise, allowing lower dose. A sharp bone or lung kernel gives edge detail but more noise. Overlapping reconstructions, like 50 percent overlap, improve reformats with no extra dose. Finally, maximum intensity projection shows the brightest voxels, like vessels; minimum intensity projection shows airways.",
   "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 200\" role=\"img\" aria-label=\"Flow from raw data, where kernel, slice and DFOV can change, to image data, where only windowing, zoom and reformats apply\" font-family=\"inherit\"><rect x=\"12\" y=\"30\" width=\"110\" height=\"40\" rx=\"4\" fill=\"none\" style=\"stroke:var(--ib-pink)\" stroke-width=\"2\"/><text x=\"67\" y=\"55\" font-size=\"13\" text-anchor=\"middle\" font-weight=\"bold\" style=\"fill:var(--ib-pink)\">Raw data</text><line x1=\"122\" y1=\"50\" x2=\"190\" y2=\"50\" stroke=\"currentColor\" stroke-width=\"2\"/><path d=\"M182 44 L190 50 L182 56\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><rect x=\"198\" y=\"30\" width=\"110\" height=\"40\" rx=\"4\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><text x=\"253\" y=\"55\" font-size=\"13\" text-anchor=\"middle\" font-weight=\"bold\" fill=\"currentColor\">Image data</text><text x=\"12\" y=\"92\" font-size=\"12\" fill=\"currentColor\">Kernel</text><text x=\"12\" y=\"110\" font-size=\"12\" fill=\"currentColor\">Slice and interval</text><text x=\"12\" y=\"128\" font-size=\"12\" fill=\"currentColor\">DFOV, center</text><text x=\"198\" y=\"92\" font-size=\"12\" fill=\"currentColor\">Window, zoom</text><text x=\"198\" y=\"110\" font-size=\"12\" fill=\"currentColor\">MPR, 3D</text><text x=\"198\" y=\"128\" font-size=\"12\" fill=\"currentColor\">No new kernel</text><line x1=\"12\" y1=\"142\" x2=\"308\" y2=\"142\" style=\"stroke:var(--stroke-primary)\" stroke-width=\"1\"/><text x=\"12\" y=\"164\" font-size=\"12\" fill=\"currentColor\">Sharp kernel: detail + noise</text><text x=\"12\" y=\"184\" font-size=\"12\" fill=\"currentColor\">Smooth: less noise, contrast</text></svg>"
  },
  {
   "id": 7,
   "diagram": "window-scale",
   "heading": "Pixels and windowing",
   "bullets": [
    "Pixel size = DFOV / matrix",
    "Smaller DFOV, same matrix = better resolution",
    "Range shown = WL plus or minus half the WW",
    "Narrow WW = high contrast; wide WW for lung, bone",
    "Raise WL = darker image; lower WL = brighter"
   ],
   "narration": "Pixel size equals display field of view divided by matrix. A 250 millimeter field on a 512 matrix gives pixels of about half a millimeter. Shrink the field with the same matrix and pixels get smaller, so spatial resolution improves. Zooming image data does not. For windowing, the level is the center and the width is the spread: the range shown is the level plus or minus half the width. Width 400, level 40 shows minus 160 to plus 240. A narrow width means high contrast. Raising the level makes the image darker.",
   "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 200\" role=\"img\" aria-label=\"Gray scale bar showing window width 400 and level 40 displaying minus 160 to plus 240 HU\" font-family=\"inherit\"><text x=\"12\" y=\"22\" font-size=\"13\" font-weight=\"bold\" style=\"fill:var(--ib-pink)\">WW 400 / WL 40</text><rect x=\"30\" y=\"44\" width=\"70\" height=\"30\" fill=\"currentColor\"/><path d=\"M100 44 L220 74 L100 74 Z\" fill=\"currentColor\" opacity=\"0.5\"/><rect x=\"30\" y=\"44\" width=\"260\" height=\"30\" rx=\"0\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\"/><rect x=\"100\" y=\"44\" width=\"120\" height=\"30\" rx=\"0\" fill=\"none\" style=\"stroke:var(--ib-pink)\" stroke-width=\"2\"/><line x1=\"160\" y1=\"36\" x2=\"160\" y2=\"82\" style=\"stroke:var(--ib-pink)\" stroke-width=\"2\"/><text x=\"160\" y=\"98\" font-size=\"12\" text-anchor=\"middle\" style=\"fill:var(--ib-pink)\">WL 40</text><text x=\"100\" y=\"98\" font-size=\"12\" text-anchor=\"middle\" fill=\"currentColor\">-160</text><text x=\"220\" y=\"98\" font-size=\"12\" text-anchor=\"middle\" fill=\"currentColor\">+240</text><text x=\"65\" y=\"118\" font-size=\"12\" text-anchor=\"middle\" fill=\"currentColor\">black</text><text x=\"255\" y=\"118\" font-size=\"12\" text-anchor=\"middle\" fill=\"currentColor\">white</text><text x=\"160\" y=\"118\" font-size=\"12\" text-anchor=\"middle\" fill=\"currentColor\">gray ramp</text><line x1=\"12\" y1=\"134\" x2=\"308\" y2=\"134\" style=\"stroke:var(--stroke-primary)\" stroke-width=\"1\"/><text x=\"12\" y=\"156\" font-size=\"13\" fill=\"currentColor\">Shown = WL +/- WW/2</text><text x=\"12\" y=\"180\" font-size=\"13\" fill=\"currentColor\">Pixel = DFOV / matrix</text></svg>"
  },
  {
   "id": 8,
   "diagram": "hu-scale",
   "heading": "CT numbers and QC",
   "bullets": [
    "HU = 1000 x (tissue mu - water mu) / water mu",
    "Water 0, air -1000, fat about -100",
    "ROI standard deviation = noise",
    "Daily QC: water 0 plus or minus 7 HU",
    "Uniformity: edge within 5 HU of center"
   ],
   "narration": "A Hounsfield unit is 1000 times the tissue's attenuation coefficient minus water's, divided by water's. By definition water is 0 and air is minus 1000. Fat sits around minus 100, so don't confuse it with air. Soft tissue is about plus 40 to 60, and dense bone reaches 1000 or more. An R O I, or region of interest, gives mean H U, and its standard deviation measures noise. Daily quality control uses a water phantom, which should read 0, give or take 7 H U. For uniformity, the edges stay within 5 H U of center.",
   "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 200\" role=\"img\" aria-label=\"Vertical Hounsfield scale from air at minus 1000 to bone above plus 400, with QC water and uniformity limits\" font-family=\"inherit\"><line x1=\"30\" y1=\"24\" x2=\"30\" y2=\"170\" style=\"stroke:var(--ib-pink)\" stroke-width=\"2\"/><line x1=\"24\" y1=\"34\" x2=\"36\" y2=\"34\" stroke=\"currentColor\" stroke-width=\"2\"/><text x=\"44\" y=\"38\" font-size=\"12\" font-weight=\"bold\" fill=\"currentColor\">Bone</text><text x=\"124\" y=\"38\" font-size=\"12\" fill=\"currentColor\">+400 to +1000</text><line x1=\"24\" y1=\"70\" x2=\"36\" y2=\"70\" stroke=\"currentColor\" stroke-width=\"2\"/><text x=\"44\" y=\"74\" font-size=\"12\" font-weight=\"bold\" fill=\"currentColor\">Soft tissue</text><text x=\"124\" y=\"74\" font-size=\"12\" fill=\"currentColor\">+40 to +60</text><line x1=\"24\" y1=\"100\" x2=\"36\" y2=\"100\" stroke=\"currentColor\" stroke-width=\"2\"/><text x=\"44\" y=\"104\" font-size=\"12\" font-weight=\"bold\" fill=\"currentColor\">Water</text><text x=\"124\" y=\"104\" font-size=\"12\" fill=\"currentColor\">0</text><line x1=\"24\" y1=\"128\" x2=\"36\" y2=\"128\" stroke=\"currentColor\" stroke-width=\"2\"/><text x=\"44\" y=\"132\" font-size=\"12\" font-weight=\"bold\" fill=\"currentColor\">Fat</text><text x=\"124\" y=\"132\" font-size=\"12\" fill=\"currentColor\">-100 to -50</text><line x1=\"24\" y1=\"160\" x2=\"36\" y2=\"160\" stroke=\"currentColor\" stroke-width=\"2\"/><text x=\"44\" y=\"164\" font-size=\"12\" font-weight=\"bold\" fill=\"currentColor\">Air</text><text x=\"124\" y=\"164\" font-size=\"12\" fill=\"currentColor\">-1000</text><text x=\"264\" y=\"40\" font-size=\"12\" text-anchor=\"middle\" font-weight=\"bold\" fill=\"currentColor\">QC water</text><text x=\"264\" y=\"58\" font-size=\"12\" text-anchor=\"middle\" style=\"fill:var(--ib-pink)\">0 +/- 7 HU</text><text x=\"264\" y=\"104\" font-size=\"12\" text-anchor=\"middle\" font-weight=\"bold\" fill=\"currentColor\">Uniformity</text><text x=\"264\" y=\"122\" font-size=\"12\" text-anchor=\"middle\" style=\"fill:var(--ib-pink)\">edge +/- 5</text></svg>"
  },
  {
   "id": 9,
   "diagram": "artifact-table",
   "heading": "Artifacts",
   "bullets": [
    "Ring = bad or miscalibrated detector (3rd gen)",
    "Beam hardening: cupping, dark streaks between bones",
    "Partial volume: fix with thinner slices",
    "Metal: MAR software, higher kVp, high keV",
    "Out of field: center patient, raise arms"
   ],
   "narration": "Know each artifact and its fix. A ring means a bad or miscalibrated detector element in a third generation scanner; recalibrate or call service. Beam hardening causes cupping, where the center reads too low, and dark streaks between dense bones like the petrous ridges. Partial volume averaging blurs edges and changes H U; thinner slices fix it. Metal makes bright and dark streaks; use metal artifact reduction software, higher k V p, or high keV monoenergetic images. Anatomy outside the scan field causes shading, so center the patient and raise the arms.",
   "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 200\" role=\"img\" aria-label=\"Table matching CT artifacts to causes: ring, cupping, streaks, double edges and shading\" font-family=\"inherit\"><text x=\"12\" y=\"22\" font-size=\"13\" font-weight=\"bold\" style=\"fill:var(--ib-pink)\">Artifact</text><text x=\"118\" y=\"22\" font-size=\"13\" font-weight=\"bold\" style=\"fill:var(--ib-pink)\">Cause</text><line x1=\"12\" y1=\"30\" x2=\"308\" y2=\"30\" style=\"stroke:var(--stroke-primary)\" stroke-width=\"1\"/><text x=\"12\" y=\"52\" font-size=\"13\" font-weight=\"bold\" fill=\"currentColor\">Ring</text><text x=\"118\" y=\"52\" font-size=\"13\" fill=\"currentColor\">bad detector, recalibrate</text><text x=\"12\" y=\"82\" font-size=\"13\" font-weight=\"bold\" fill=\"currentColor\">Cupping</text><text x=\"118\" y=\"82\" font-size=\"13\" fill=\"currentColor\">beam hardening</text><text x=\"12\" y=\"112\" font-size=\"13\" font-weight=\"bold\" fill=\"currentColor\">Streaks</text><text x=\"118\" y=\"112\" font-size=\"13\" fill=\"currentColor\">metal, photon starvation</text><text x=\"12\" y=\"142\" font-size=\"13\" font-weight=\"bold\" fill=\"currentColor\">Double edge</text><text x=\"118\" y=\"142\" font-size=\"13\" fill=\"currentColor\">motion</text><text x=\"12\" y=\"172\" font-size=\"13\" font-weight=\"bold\" fill=\"currentColor\">Shading</text><text x=\"118\" y=\"172\" font-size=\"13\" fill=\"currentColor\">outside SFOV</text></svg>"
  },
  {
   "id": 10,
   "diagram": "summary",
   "heading": "Lock these in",
   "bullets": [
    "Quadruple mAs to halve noise",
    "Pitch = table feed per rotation / beam width",
    "Pixel size = DFOV / matrix",
    "Window shows WL plus or minus WW/2",
    "Ring artifact = bad detector element"
   ],
   "narration": "Let's lock it in. To cut noise in half, quadruple the mAs, because noise follows one over the square root of mAs. Pitch equals table feed per rotation divided by total beam width. Pixel size equals display field of view divided by matrix, so a smaller field means smaller pixels. The window shows the level plus or minus half the width, and raising the level darkens the image. And a ring artifact means a bad or miscalibrated detector element. Now hit Practice this chapter and test yourself.",
   "svg": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 320 200\" role=\"img\" aria-label=\"Checklist summary of five high-yield CT image production facts\" font-family=\"inherit\"><text x=\"12\" y=\"22\" font-size=\"14\" font-weight=\"bold\" style=\"fill:var(--ib-pink)\">Lock these in</text><path d=\"M14 45 l4 4 l8 -9\" fill=\"none\" style=\"stroke:var(--ib-pink)\" stroke-width=\"2\"/><text x=\"36\" y=\"50\" font-size=\"13\" fill=\"currentColor\">4x mAs = half the noise</text><path d=\"M14 75 l4 4 l8 -9\" fill=\"none\" style=\"stroke:var(--ib-pink)\" stroke-width=\"2\"/><text x=\"36\" y=\"80\" font-size=\"13\" fill=\"currentColor\">Pitch = feed / beam width</text><path d=\"M14 105 l4 4 l8 -9\" fill=\"none\" style=\"stroke:var(--ib-pink)\" stroke-width=\"2\"/><text x=\"36\" y=\"110\" font-size=\"13\" fill=\"currentColor\">Pixel = DFOV / matrix</text><path d=\"M14 135 l4 4 l8 -9\" fill=\"none\" style=\"stroke:var(--ib-pink)\" stroke-width=\"2\"/><text x=\"36\" y=\"140\" font-size=\"13\" fill=\"currentColor\">Shown = WL +/- WW/2</text><path d=\"M14 165 l4 4 l8 -9\" fill=\"none\" style=\"stroke:var(--ib-pink)\" stroke-width=\"2\"/><text x=\"36\" y=\"170\" font-size=\"13\" fill=\"currentColor\">Ring = bad detector</text></svg>"
  }
 ]
}