Blood supply of pancreas diagram , relation diagram and pancreas easy diagram for exam drawing all easy diagrams
arterial blood supply of pancreas diagram
relations of the pancreas posterior abdominal wall
pancreas parts head neck body tail pancreatic duct
ls -la /tmp/workspace/ ; mkdir -p /tmp/workspace/pancreas-diagrams
mkdir -p /tmp/workspace/pancreas-diagrams/src /tmp/workspace/pancreas-diagrams/output && cat > /tmp/workspace/pancreas-diagrams/src/draw.py <<'EOF' import matplotlib matplotlib.use("Agg") import matplotlib.pyplot as plt from matplotlib.patches import Polygon, Ellipse, FancyArrowPatch, Circle, PathPatch from matplotlib.path import Path import numpy as np OUT="/tmp/workspace/pancreas-diagrams/output/" YEL="#f7e08a"; RED="#d62828"; BLUE="#1d4ed8"; GRN="#2a9d4a"; PINK="#f6c1c7" def setup(title, w=10, h=7): fig, ax = plt.subplots(figsize=(w,h)) ax.set_xlim(0,100); ax.set_ylim(0,70); ax.axis("off") ax.set_title(title, fontsize=16, fontweight="bold", pad=10) return fig, ax def lab(ax, text, xy, xytext, ha="left", color="k", fs=11): ax.annotate(text, xy=xy, xytext=xytext, ha=ha, va="center", fontsize=fs, color=color, arrowprops=dict(arrowstyle="-", color=color, lw=1.1)) def pancreas_poly(ax, alpha=1): # head (low left), neck, body (rising to right), tail (top right) pts=[(26,18),(36,14),(42,20),(44,27),(52,31),(64,36),(76,44),(86,50),(89,54),(84,56),(74,52),(62,46),(50,42),(40,40),(31,36),(26,28)] p=Polygon(pts, closed=True, fc=YEL, ec="#8a6d00", lw=2, alpha=alpha, joinstyle="round") ax.add_patch(p); return p # ---------- Diagram 1: Parts & ducts ---------- fig,ax=setup("Fig 1. Pancreas: parts and ducts (anterior view)") # duodenum C-loop th=np.linspace(np.pi/2,-np.pi/2,60) cx,cy=34,24 xs=cx-12*np.cos(th)*-1; # simple C: draw as thick arc open to the right ang=np.linspace(np.radians(80),np.radians(280),80) ax.plot(cx+19*np.cos(ang)*-1*-1*-1 if False else cx+ 20*np.cos(ang), cy+ 15*np.sin(ang), color="#e8a0a8", lw=22, solid_capstyle="round", zorder=1) ax.plot(cx+20*np.cos(ang), cy+15*np.sin(ang), color=PINK, lw=18, solid_capstyle="round", zorder=1) pancreas_poly(ax) # ducts duct=[(31,22),(36,24),(44,30),(54,35),(66,41),(78,48),(86,53)] ax.plot(*zip(*duct), color="#1b6ca8", lw=3, zorder=5) # accessory duct ax.plot([40,36,33],[29,26,22], color="#7aa6c2", lw=2, zorder=5) ax.plot([32,33,34],[22,21,20], color="#1b6ca8", lw=3, zorder=5) # CBD ax.plot([20,22,28,31],[56,40,28,22], color=GRN, lw=4, zorder=5) ax.add_patch(Circle((31,21),1.4,fc="k",zorder=6)) # uncinate ax.add_patch(Polygon([(26,18),(33,17),(40,22),(33,23)],fc="#e9c94a",ec="#8a6d00",lw=1,zorder=3)) lab(ax,"HEAD (in C of duodenum)",(30,24),(4,6)) lab(ax,"Uncinate process",(34,19),(30,6),) lab(ax,"NECK (1.5-2 cm)\nin front of portal vein / SMV",(42,29),(10,64)) lab(ax,"BODY (triangular on section)",(60,40),(40,64)) lab(ax,"TAIL (in lienorenal ligament,\nreaches splenic hilum)",(87,53),(62,64),fs=10.5) lab(ax,"Main duct (of Wirsung)",(68,42),(72,26),color="#1b6ca8") lab(ax,"Accessory duct (of Santorini)",(38,28),(52,16),color="#4a7fa0") lab(ax,"Common bile duct",(21,48),(2,44),color=GRN) lab(ax,"Ampulla of Vater\n(major duodenal papilla, D2)",(31,21),(52,5)) lab(ax,"Duodenum (C-loop)",(14,22),(0,14),color="#b5545f") fig.savefig(OUT+"fig1_pancreas_parts.png",dpi=160,bbox_inches="tight",facecolor="white"); plt.close(fig) # ---------- Diagram 2: Arterial supply ---------- fig,ax=setup("Fig 2. Arterial supply of the pancreas (schematic)",10.5,8) ax.set_ylim(0,80) # pancreas pts=[(24,20),(34,16),(40,22),(42,28),(52,32),(64,37),(76,44),(86,50),(89,54),(84,56),(74,52),(62,47),(50,43),(40,41),(30,37),(24,30)] ax.add_patch(Polygon(pts,fc=YEL,ec="#8a6d00",lw=2)) def art(xy_list,color=RED,lw=3,ls="-"): ax.plot(*zip(*xy_list),color=color,lw=lw,ls=ls,solid_capstyle="round") # aorta ax.plot([48,48],[2,76],color="#e07070",lw=10,solid_capstyle="butt",alpha=.5) ax.text(48,0.2,"Aorta",ha="center",fontsize=10,color="#a02020") # celiac trunk art([(48,66),(48,60)]) ax.text(50,70,"COELIAC TRUNK (T12)",fontsize=11,fontweight="bold",color=RED) # splenic: runs along upper border to the right art([(48,60),(56,62),(66,58),(76,56),(86,58)]) ax.text(60,64,"Splenic artery",fontsize=11,color=RED) # CHA to left art([(48,60),(40,62),(33,60)]) ax.text(34,64,"Common hepatic a.",fontsize=11,color=RED,ha="center") # GDA art([(33,60),(30,52),(30,42),(30,34)]) ax.text(21,52,"Gastroduodenal a.",fontsize=11,color=RED,ha="center") ax.annotate("To liver\n(proper hepatic a.)",xy=(33,60),xytext=(28,72),fontsize=9,ha="center",arrowprops=dict(arrowstyle="->")) # Superior pancreaticoduodenal anterior/posterior art([(30,34),(27,28),(26,22)],lw=2.5) art([(30,34),(33,28),(33,22)],lw=2.5) ax.text(11,26,"Anterior &\nposterior SUPERIOR\npancreatico-\nduodenal aa.",fontsize=10,color=RED,ha="center") art([(30,40),(27,43)],lw=2) # Right gastroepiploic art([(30,34),(24,34),(18,34)],lw=2,ls="--") ax.text(1,37,"Rt gastro-\nepiploic a.",fontsize=9,color=RED) # SMA art([(48,48),(48,36),(48,22),(48,12)]) ax.text(50,10,"SUPERIOR MESENTERIC a. (L1)",fontsize=11,fontweight="bold",color=RED) # Inferior pancreaticoduodenal art([(48,20),(40,18),(33,19),(29,20)],lw=2.5) ax.text(27,12,"INFERIOR pancreatico-\nduodenal a.",fontsize=10,color=RED,ha="center") ax.annotate("",xy=(33,23),xytext=(33,19),arrowprops=dict(arrowstyle="<->",color="purple",lw=1.5)) ax.text(36,24.8,"anastomosis",fontsize=9,color="purple") # Splenic branches to body/tail for x,y,name in [(60,57.5,""),(70,56.5,"")]: pass art([(58,61),(58,52)],lw=2) ax.text(58.5,50.4,"Dorsal pancreatic a.",fontsize=9.5,color=RED) art([(66,58),(66,50)],lw=2) art([(74,56),(74,50)],lw=2) ax.annotate("Pancreatica magna\n(great pancreatic a.)",xy=(66,50),xytext=(80,40),fontsize=10,color=RED,arrowprops=dict(arrowstyle="-",color=RED)) ax.annotate("Caudal pancreatic a.\n(to tail)",xy=(80,55),xytext=(84,66),fontsize=10,color=RED,arrowprops=dict(arrowstyle="-",color=RED)) art([(58,52),(52,44),(44,38)],lw=2,color="#d6609a") ax.text(60,32,"Inferior pancreatic a.\n(from dorsal pancreatic;\njoins SMA branches)",fontsize=9.5,color="#b03070") # Spleen ax.add_patch(Ellipse((93,62),8,14,fc="#c9b6e4",ec="#6b4fa0")) ax.text(93,62,"Spleen",rotation=90,ha="center",va="center",fontsize=9) ax.text(4,3,"Head + uncinate: gastroduodenal (superior) + SMA (inferior) arcades\nNeck, body, tail: splenic artery branches",fontsize=10.5,bbox=dict(fc="#fff7cc",ec="#8a6d00")) ax.text(41,38,"HEAD",fontsize=9,alpha=.6); ax.text(70,45,"BODY",fontsize=9,alpha=.6,rotation=30) fig.savefig(OUT+"fig2_arterial_supply.png",dpi=160,bbox_inches="tight",facecolor="white"); plt.close(fig) # ---------- Diagram 3: Relations (posterior view of pancreas bed) ---------- fig,ax=setup("Fig 3. Relations of the pancreas (structures behind it, L1-L2)",10.5,7.5) pts=[(26,26),(36,22),(42,28),(44,34),(52,38),(64,43),(76,50),(86,56),(89,60),(84,62),(74,58),(62,52),(50,48),(40,46),(31,42),(26,34)] ax.add_patch(Polygon(pts,fc=YEL,ec="#8a6d00",lw=2,alpha=.9)) ax.text(33,31,"HEAD",fontsize=11,fontweight="bold") ax.text(60,46,"BODY",fontsize=11,fontweight="bold",rotation=25) ax.text(80,57,"TAIL",fontsize=11,fontweight="bold",rotation=35) # Duodenum C ang=np.linspace(np.radians(80),np.radians(280),80) ax.plot(34+20*np.cos(ang),32+14*np.sin(ang),color=PINK,lw=14,zorder=0) ax.text(9,32,"Duodenum\n(D1-D3)",fontsize=10,ha="center",color="#b5545f") # IVC, aorta behind head/neck ax.add_patch(Ellipse((36,12),9,6,fc="#9db7f5",ec=BLUE,lw=1.5)); ax.text(36,12,"IVC",ha="center",va="center",fontsize=10) ax.add_patch(Circle((53,11),3.4,fc="#f08080",ec=RED,lw=1.5)); ax.text(53,11,"Ao",ha="center",va="center",fontsize=10) ax.plot([53,53],[14.4,22],color=RED,lw=2.5); ax.text(54.5,19,"SMA",fontsize=10,color=RED) ax.plot([41,57],[18,18],color=BLUE,lw=3); ax.text(44,14.3,"Left renal vein",fontsize=9.5,color=BLUE) # SMV / portal confluence ax.add_patch(Ellipse((46,31),4,5,fc="#9db7f5",ec=BLUE,lw=1.5)); ax.annotate("Portal vein / SMV\nconfluence (behind neck)",xy=(46,30),xytext=(48,3),fontsize=10,color=BLUE,arrowprops=dict(arrowstyle="-",color=BLUE)) # splenic vein ax.plot([48,58,70,82,90],[36,40,46,53,58],color=BLUE,lw=3) ax.text(70,38,"Splenic vein\n(runs behind body)",fontsize=10,color=BLUE) # CBD in groove behind head ax.plot([30,30,31],[46,38,30],color=GRN,lw=4); ax.text(22,48,"CBD (groove on\nposterior head)",fontsize=10,color=GRN) # left kidney, adrenal ax.add_patch(Ellipse((78,28),9,16,fc="#d9a066",ec="#8a5a20")); ax.text(78,28,"Left\nkidney",ha="center",va="center",fontsize=9) ax.add_patch(Polygon([(70,38),(76,38),(73,44)],fc="#e8c547",ec="#8a6d00")); ax.text(60,28,"Left supra-\nrenal gland",fontsize=9.5) ax.annotate("",xy=(72,38),xytext=(68,31),arrowprops=dict(arrowstyle="-")) ax.text(95,67,"Hilum of spleen\n(tail, lienorenal lig.)",fontsize=9.5,ha="right") ax.text(2,64,"Posterior relations: IVC, aorta, SMA origin, left renal vein, CBD, portal/SMV/splenic veins,\nleft kidney, left suprarenal, crus of diaphragm",fontsize=9.5,bbox=dict(fc="#eef6ff",ec=BLUE)) fig.savefig(OUT+"fig3_posterior_relations.png",dpi=160,bbox_inches="tight",facecolor="white"); plt.close(fig) # ---------- Diagram 4: Anterior relations & sagittal ---------- fig,ax=setup("Fig 4. Sagittal section at L1-L2: relations of body of pancreas (easy exam sketch)",10,7) ax.set_xlim(0,100); ax.set_ylim(0,70) # vertical structures from front (left) to back (right) ax.add_patch(Polygon([(2,12),(18,12),(18,58),(2,58)],fc="#f6c1c7",ec="#b5545f",lw=1.5)) ax.text(10,35,"STOMACH\n(posterior\nwall)",ha="center",va="center",fontsize=10) ax.add_patch(Ellipse((26,38),8,4,fc="#fff",ec="#999",ls="--")); ax.text(26,45,"Lesser sac",fontsize=9.5,ha="center",style="italic") # pancreas body (oval) ax.add_patch(Polygon([(32,30),(42,34),(48,40),(44,46),(34,44),(30,38)],fc=YEL,ec="#8a6d00",lw=2)) ax.text(39,38,"Pancreas\nbody",ha="center",va="center",fontsize=10,fontweight="bold") # splenic vein ax.add_patch(Ellipse((49,33),5,3,fc="#9db7f5",ec=BLUE)); ax.text(49,29,"Splenic v.",fontsize=9,color=BLUE,ha="center") # SMA ax.add_patch(Circle((53,26),1.8,fc="#f08080",ec=RED)); ax.text(56,26,"SMA",fontsize=9.5,color=RED) # left renal vein ax.plot([52,66],[20,20],color=BLUE,lw=3); ax.text(56,17.5,"Left renal v.",fontsize=9,color=BLUE) # aorta & vertebra ax.add_patch(Circle((62,30),4,fc="#f08080",ec=RED)); ax.text(62,30,"Ao",ha="center",va="center",fontsize=10) ax.add_patch(Polygon([(72,8),(88,8),(88,60),(72,60)],fc="#eee",ec="#777")); ax.text(80,35,"Vertebra\nL1-L2",ha="center",va="center",fontsize=10) # transverse mesocolon root ax.plot([36,36],[30,22],color="#555",lw=2); ax.annotate("Root of transverse\nmesocolon (along\nlower border)",xy=(36,26),xytext=(18,6),fontsize=9.5,arrowprops=dict(arrowstyle="-")) ax.text(1,66,"FRONT",fontsize=10,fontweight="bold"); ax.text(92,66,"BACK",fontsize=10,fontweight="bold") ax.text(18,62,"Anterior surface: covered by peritoneum of lesser sac;\nstomach in front. Tuber omentale at the neck-body junction touches lesser omentum.",fontsize=9) ax.annotate("Duodenojejunal flexure\n(below body)",xy=(46,22),xytext=(30,12),fontsize=9.5,arrowprops=dict(arrowstyle="-")) fig.savefig(OUT+"fig4_sagittal_relations.png",dpi=160,bbox_inches="tight",facecolor="white"); plt.close(fig) EOF cd /tmp/workspace/pancreas-diagrams/src && python draw.py && ls ../output
Quick answer
fig1 pancreas parts
Image · PNG
fig2 arterial supply
Image · PNG
fig3 posterior relations
Image · PNG
fig4 sagittal relations
Image · PNG

AORTA
|-- COELIAC TRUNK (T12)
| |-- Splenic artery (along upper border of body and tail)
| | |-- Dorsal pancreatic a. -> inferior pancreatic a.
| | |-- Pancreatica magna (great pancreatic a.)
| | |-- Caudal pancreatic a. (tail)
| |-- Common hepatic a.
| |-- Gastroduodenal a.
| |-- Superior pancreaticoduodenal a. (anterior + posterior)
|
|-- SUPERIOR MESENTERIC ARTERY (L1)
|-- Inferior pancreaticoduodenal a. (anterior + posterior)
| Part | Anterior | Posterior | Other |
|---|---|---|---|
| Head | Root of transverse mesocolon, transverse colon, pylorus region | IVC, right renal vein, right crus, CBD | Right: D2. Left: SMV. Below: D3 |
| Neck | Pylorus | Portal vein formation (SMV + splenic vein) | Gastroduodenal artery in front-right |
| Body | Lesser sac, then stomach | Aorta, SMA, left crus, left suprarenal, left kidney, left renal vein, splenic vein | Below: duodenojejunal flexure and jejunal loops |
| Tail | Lies in the lienorenal ligament | Left kidney | Reaches the splenic hilum with the splenic vessels |
Fast brooo
fig1 pancreas parts
Image · PNG
fig2 arterial supply
Image · PNG
fig3 posterior relations
Image · PNG
fig4 sagittal relations
Image · PNG

Liver/CBD TAIL -> splenic hilum
| /
___|____ NECK BODY ___/
/ D2 \__ HEAD \______/ ~~~~~~~~
| C-loop | (uncinate main duct (Wirsung)
\__D3____/ process)
Ampulla of Vater (D2) <- CBD + main duct join
AORTA
________|________
| |
COELIAC TRUNK (T12) SMA (L1)
| | |
Common Splenic a. Inferior pancreatico-
hepatic a. | duodenal a. (ant + post)
| | |
Gastroduodenal | |
| | |
Superior pancreatico- |
duodenal (ant + post) <--anastomose-->
= HEAD + UNCINATE
Splenic a. gives: dorsal pancreatic -> inferior (transverse) pancreatic a.
pancreatica magna
caudal pancreatic a.
= NECK + BODY + TAIL
FRONT (anterior)
Stomach / lesser sac / transverse mesocolon root
|
[HEAD]--[NECK]--[BODY]--------[TAIL]
| | | |
IVC Portal v./ Aorta, SMA, Splenic hilum,
R renal SMV + L crus, L lienorenal lig.
vein, splenic v. suprarenal,
CBD confluence L kidney,
L renal vein,
splenic vein
BACK (posterior)