YOU HAVE TO MAKE A CHART FOR KNEE EXAMINATION -ORTHO, 10 MINUTE STATION. THE COLUMNS ARE STEPS- POSITION , HOW TO DO , IMPLICATION

Reading File
Finding Sources
Finding Sources
Searching PubMed

"knee joint" AND examination

Searching the Web

knee examination OSCE inspection palpation range of motion special tests

Reading File
Reading File
Reading File
Reading File

Knee Examination - Orthopaedics OSCE (10-minute station)

Principle: Compare both knees throughout. Start with the unaffected side. Ask about pain before each manoeuvre and stop if severe pain or suspected acute fracture/dislocation.
StepsPositionHow to doImplication
1. Introduction and preparationPatient standing initially, both lower limbs exposed from mid-thigh to feetWash hands, introduce yourself, confirm identity, explain examination, obtain consent. Ask about pain. Adequately expose both knees and compare sides.Ensures consent, comfort, and recognition of asymmetry.
2. General inspectionStandingLook for walking aid, braces, dressings, general distress, body habitus, and posture.May indicate chronic disease, recent surgery/injury, or functional impairment.
3. GaitWalking away, turning, and returningAsk patient to walk normally. Observe antalgic gait, stiff-knee gait, varus thrust, inability to fully extend, and foot drop.Antalgic gait suggests pain. Varus thrust suggests medial compartment OA or lateral ligament instability. Foot drop suggests common peroneal nerve involvement.
4. Standing alignmentStanding, inspect front, side, and behindCompare limb alignment. Assess genu varum, genu valgum, rotational deformity, flexion deformity, and quadriceps wasting.Varus: medial compartment OA or malunion. Valgus: lateral compartment OA. Fixed flexion deformity: OA, effusion, contracture. Quadriceps wasting: chronic knee pathology or disuse.
5. Standing posterior inspectionStanding, behind patientInspect popliteal fossa for swelling and compare calf bulk.Popliteal swelling may be a Baker cyst. Calf wasting may suggest chronic pathology; calf swelling warrants consideration of DVT in the appropriate setting.
6. Supine inspectionSupine, legs fully exposed and extendedInspect skin, erythema, bruising, scars including arthroscopy portals, swelling, deformity, patellar position, and suprapatellar fullness.Erythema/warmth: inflammation or infection. Scars: prior surgery. Bruising: trauma. Suprapatellar fullness: knee effusion. Patella alta/baja may indicate extensor mechanism pathology.
7. TemperatureSupine, knees extendedUse dorsum of hand to compare temperature from thigh to knee and knee to calf.Increased warmth suggests synovitis, inflammatory arthritis, crystal arthritis, or infection.
8. Quadriceps bulkSupine, knees extendedInspect and, if needed, measure circumference at the same distance above both patellae.Wasting suggests chronic effusion, OA, ACL injury, pain inhibition, or disuse.
9. Palpate extensor mechanismSupine, knee extendedPalpate quadriceps tendon, superior pole of patella, patella, patellar tendon, and tibial tuberosity. Ask about tenderness.Tenderness/defect may indicate quadriceps or patellar tendinopathy, rupture, patellofemoral pain, or Osgood-Schlatter disease.
10. Patellar palpation and trackingSupine, knee extended then gently flexedPalpate medial/lateral patellar facets. Ask patient to flex and extend knee while observing patellar movement.Facet tenderness or crepitus suggests patellofemoral syndrome/OA. Lateral tracking may predispose to patellar instability.
11. Joint-line palpationSupine, knee flexed about 90°Palpate medial and lateral joint lines, comparing both sides.Joint-line tenderness suggests meniscal injury or compartmental OA.
12. Collateral ligaments and bony landmarksSupine, knee flexed 20-30° and then 90° as necessaryPalpate MCL, LCL, medial/lateral femoral condyles, fibular head, pes anserinus, and popliteal fossa.MCL/LCL tenderness suggests sprain. Fibular-head tenderness may accompany LCL or posterolateral-corner injury. Pes anserine tenderness suggests bursitis. Popliteal mass may be Baker cyst.
13. Assess effusion: patellar tapSupine, knee fully extended and relaxedEmpty the suprapatellar pouch with one hand; sharply press patella posteriorly with the other. Feel for a tap against femur.Positive patellar tap suggests a moderate or large knee effusion.
14. Assess small effusion: sweep/bulge testSupine, knee extendedMilk fluid from the medial side upward into suprapatellar pouch, then sweep down lateral side and observe medial bulge.Medial fluid bulge indicates a small effusion.
15. Active movementsSupine or sitting with legs over bedAsk patient to actively flex and extend knee. Observe range, pain, crepitus, and extensor lag.Reduced/painful movement suggests OA, effusion, internal derangement, or inflammation. Extensor lag suggests quadriceps weakness or extensor mechanism disruption.
16. Passive movementsSupineGently flex and extend knee, comparing sides. Palpate for crepitus. Check terminal extension.Painful restriction suggests effusion, OA, inflammatory arthritis, or mechanical block. Crepitus suggests OA/patellofemoral disease. A hard block or locking can suggest meniscal tear or loose body.
17. Straight-leg raiseSupine, knee extendedAsk patient to lift the entire leg off the couch while keeping the knee straight.Inability suggests disrupted extensor mechanism, such as patellar tendon rupture, quadriceps tendon rupture, or patellar fracture.
18. Posterior sag signSupine, hips and knees flexed to 90°, feet supportedInspect from side for posterior displacement of tibia relative to femur.Positive posterior sag suggests posterior cruciate ligament (PCL) injury.
19. Lachman testSupine, knee flexed 20-30°Stabilise distal femur with one hand and pull proximal tibia anteriorly with the other. Compare translation and end point with other side.Increased anterior translation or soft/absent end point suggests ACL rupture. This is generally the most sensitive clinical test for ACL insufficiency.
20. Anterior drawer testSupine, hip flexed 45°, knee flexed 90°, foot stabilisedGrasp proximal tibia with both hands and pull it anteriorly. Ensure hamstrings are relaxed.Excess anterior tibial translation suggests ACL injury. A false-negative result may occur with hamstring spasm.
21. Posterior drawer testSame as anterior drawer positionPush proximal tibia posteriorly.Excess posterior translation suggests PCL injury.
22. Valgus stress testSupine, first in extension then at 20-30° flexionStabilise lateral femur and apply an outward force to calf/ankle to open medial joint line.Pain/laxity at 30° suggests MCL injury. Laxity in full extension suggests more extensive injury, possibly capsule/cruciate involvement.
23. Varus stress testSupine, first in extension then at 20-30° flexionStabilise medial femur and apply an inward force to calf/ankle to open lateral joint line.Pain/laxity at 30° suggests LCL injury. Laxity in full extension suggests posterolateral-corner or combined ligament injury.
24. McMurray testSupine, knee fully flexedPalpate joint line. For medial meniscus: externally rotate tibia and extend knee while applying valgus stress. For lateral meniscus: internally rotate tibia and extend knee while applying varus stress.Joint-line pain, palpable click, or painful “thud” suggests a meniscal tear.
25. Thessaly test, if safe and patient can weight-bearStanding, supported by examiner, knee flexed about 20°Ask patient to rotate body and knee internally/externally three times. Do not perform in acute severe injury or instability.Joint-line pain, locking, or catching may support meniscal pathology.
26. Patellar apprehension testSupine, knee flexed about 20-30°Gently translate patella laterally while watching patient’s face. Stop if apprehension occurs.Apprehension suggests recurrent lateral patellar instability. Do not forcibly dislocate the patella.
27. Neurovascular assessmentSupineAssess dorsalis pedis/posterior tibial pulses and distal sensation, particularly common peroneal nerve distribution if trauma or fibular-head tenderness.Neurovascular deficit requires urgent assessment, especially after knee dislocation or major ligament injury.
28. Complete examinationPatient comfortable, coveredThank patient and allow redressing. State that you would examine the hip, ankle, contralateral knee, and review imaging.Knee symptoms can be referred from hip/spine; adjacent-joint and neurovascular assessment completes orthopaedic examination.

Concise presentation of findings

“On examination, the patient has a [varus/valgus] alignment with [presence/absence] of effusion and quadriceps wasting. There is tenderness over the [joint line/patella/MCL/LCL]. Knee movements are [full/restricted] and [painful/painless]. Ligament testing shows [normal/abnormal] ACL, PCL, collateral ligament stability, and meniscal tests are [positive/negative]. I would complete the examination with hip, ankle, contralateral knee, neurovascular assessment, and appropriate imaging.”
This sequence follows the standard look, feel, move, special tests framework described in Bailey & Love’s Short Practice of Surgery, p. 925-926, and the examination components in the Geeky Medics knee OSCE checklist.

Make a presentation for the 10-minute knee OSCE station

Reading File
Reading File
Browsing Directory

~/

Searching the Web

knee examination OSCE checklist inspection palpation range of movement special tests

Searching PubMed

"knee joint" AND examination

Reading File
Finding Sources
Searching Images

knee clinical examination Lachman test anterior drawer test patient demonstration

Searching Images

knee joint examination anatomy ligaments menisci diagram

Generating Image

Educational anatomical illustration of the knee joint showing femur, tibia, patella, quadriceps tendon, patellar tendon, ACL, PCL, medial collateral ligament, lateral collateral ligament, and medial and lateral menisci, with clear labels for a medical student OSCE presentation

I’m building a concise, visual teaching deck with a timed OSCE flow, test techniques, and a final examiner-style summary.
Running Command

mkdir -p "/tmp/workspace/knee-osce-presentation/src" "/tmp/workspace/knee-osce-presentation/assets" "/tmp/workspace/knee-osce-presentation/output" && python /tmp/skills/shared/scripts/fetch_images.py "https://cdn.orris.care/image-gen/d3b6fec11cd94355bfabe63ff94c71f9.png" > "/tmp/workspace/knee-osce-presentation/assets/image_fetch.json"

Running Command

python -c "import json,base64; d=json.load(open('/tmp/workspace/knee-osce-presentation/assets/image_fetch.json')); x=d[0]; open('/tmp/workspace/knee-osce-presentation/assets/knee_anatomy.png','wb').write(base64.b64decode(x['base64'].split(',',1)[1] if ',' in x['base64'] else x['base64'])); print(len(d), x.get('error'))" && ls -la "/tmp/workspace/knee-osce-presentation/assets/"

Running Command

python - <<'PY' from pathlib import Path p=Path('/tmp/workspace/knee-osce-presentation/src/create_deck.py') p.write_text(r'''from pptx import Presentation from pptx.util import Inches, Pt from pptx.enum.shapes import MSO_SHAPE from pptx.enum.text import PP_ALIGN, MSO_ANCHOR from pptx.dml.color import RGBColor from pptx.enum.dml import MSO_THEME_COLOR from pptx.enum.shapes import MSO_CONNECTOR OUT='/tmp/workspace/knee-osce-presentation/output/Knee_OSCE_10_Minute_Station.pptx' IMG='/tmp/workspace/knee-osce-presentation/assets/knee_anatomy.png' prs=Presentation(); prs.slide_width=Inches(13.333); prs.slide_height=Inches(7.5) blank=prs.slide_layouts[6] NAVY=RGBColor(12,35,64); TEAL=RGBColor(0,128,132); MINT=RGBColor(221,244,240); SKY=RGBColor(232,242,250) INK=RGBColor(24,38,53); GREY=RGBColor(88,102,114); WHITE=RGBColor(255,255,255); ORANGE=RGBColor(237,133,59); PALE=RGBColor(248,250,252); RED=RGBColor(190,61,69) def rect(slide,x,y,w,h,fill, radius=False, line=None): sh=slide.shapes.add_shape(MSO_SHAPE.ROUNDED_RECTANGLE if radius else MSO_SHAPE.RECTANGLE, Inches(x), Inches(y), Inches(w), Inches(h)) sh.fill.solid(); sh.fill.fore_color.rgb=fill sh.line.color.rgb = line if line else fill return sh def text(slide,x,y,w,h,s,size=18,color=INK,bold=False,align=PP_ALIGN.LEFT, font='Aptos', valign=MSO_ANCHOR.TOP): tb=slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h)); tf=tb.text_frame; tf.clear(); tf.word_wrap=True tf.margin_left=tf.margin_right=Pt(0); tf.margin_top=tf.margin_bottom=Pt(0); tf.vertical_anchor=valign lines=s.split('\n') for i,line in enumerate(lines): p=tf.paragraphs[0] if i==0 else tf.add_paragraph(); p.text=line; p.alignment=align; p.space_after=Pt(4) for r in p.runs: r.font.name=font; r.font.size=Pt(size); r.font.bold=bold; r.font.color.rgb=color return tb def bullet_list(slide,x,y,w,h,items,size=17, color=INK, bullet_color=TEAL, leading=1.08): tb=slide.shapes.add_textbox(Inches(x), Inches(y), Inches(w), Inches(h)); tf=tb.text_frame; tf.clear(); tf.word_wrap=True tf.margin_left=tf.margin_right=Pt(0); tf.margin_top=tf.margin_bottom=Pt(0) for i,item in enumerate(items): p=tf.paragraphs[0] if i==0 else tf.add_paragraph(); p.text=item; p.level=0; p.space_after=Pt(7); p.bullet=True for r in p.runs: r.font.name='Aptos'; r.font.size=Pt(size); r.font.color.rgb=color return tb def title(slide, n, heading, sub=''): rect(slide,0,0,13.333,0.18,TEAL) text(slide,0.55,0.36,0.55,0.35,f'{n:02d}',13,TEAL,True) text(slide,1.1,0.28,11.5,0.52,heading,28,NAVY,True) if sub: text(slide,1.1,0.86,11.2,0.35,sub,12,GREY) text(slide,12.17,7.14,0.65,0.2,'KNEE OSCE',8,GREY,True,PP_ALIGN.RIGHT) def add_notes(slide, notes): slide.notes_slide.notes_text_frame.text = notes def chip(slide,x,y,w,label,fill=TEAL): rect(slide,x,y,w,0.38,fill,True); text(slide,x,y+0.07,w,0.2,label,10,WHITE,True,PP_ALIGN.CENTER) def card(slide,x,y,w,h,heading,items, accent=TEAL): rect(slide,x,y,w,h,WHITE,True,RGBColor(220,228,234)); rect(slide,x,y,w,0.1,accent) text(slide,x+0.22,y+0.23,w-0.44,0.32,heading,16,NAVY,True) bullet_list(slide,x+0.24,y+0.68,w-0.45,h-0.8,items,14) # 1 s=prs.slides.add_slide(blank); rect(s,0,0,13.333,7.5,NAVY); rect(s,0,0,0.22,7.5,TEAL) text(s,0.75,0.72,7.2,0.6,'Knee Examination',38,WHITE,True) text(s,0.75,1.42,6.8,0.45,'Orthopaedics OSCE | 10-minute station',21,RGBColor(190,224,225)) rect(s,0.75,2.18,5.65,0.06,TEAL) text(s,0.75,2.55,5.5,1.15,'A practical, examiner-friendly sequence:\nLOOK • FEEL • MOVE • TEST • COMPLETE',21,WHITE,True) for x,l,c in [(0.75,'01 SAFE START',TEAL),(2.83,'02 SYSTEMATIC EXAM',ORANGE),(5.57,'03 CLEAR CLOSE',RGBColor(93,169,208))]: chip(s,x,4.35,1.85,l,c) s.shapes.add_picture(IMG, Inches(8.35), Inches(0.75), width=Inches(4.25), height=Inches(5.85)) text(s,0.75,6.75,7.4,0.35,'Teaching deck for student practice. Compare with the contralateral knee throughout.',13,RGBColor(190,224,225)) add_notes(s,'Open with the structure. Emphasise safety, comparison and a consistent routine.') # 2 s=prs.slides.add_slide(blank); title(s,2,'The 10-minute game plan','Keep the patient comfortable while maintaining a visible, reproducible sequence.') steps=[('0:00-0:45','Start safely','Introduce, consent, pain, expose both legs'),('0:45-2:00','LOOK standing','General inspection, gait, alignment, posterior view'),('2:00-5:00','FEEL supine','Temperature, bulk, landmarks, joint lines, effusion'),('5:00-6:15','MOVE','Active then passive range, straight-leg raise'),('6:15-8:45','TEST','Cruciates, collaterals, menisci, patella'),('8:45-10:00','COMPLETE','Neurovascular, adjacent joints, summary')] for i,(tm,h,detail) in enumerate(steps): y=1.35+i*0.86; rect(s,0.8,y,1.2,0.58,TEAL if i<4 else ORANGE,True); text(s,0.8,y+0.16,1.2,0.18,tm,11,WHITE,True,PP_ALIGN.CENTER) text(s,2.28,y+0.04,2.2,0.25,h,16,NAVY,True); text(s,4.55,y+0.06,7.4,0.26,detail,14,INK) text(s,0.8,6.73,11.8,0.3,'Time-saving rule: do the core tests well, then state what you would add if time permits.',15,TEAL,True) add_notes(s,'The station normally rewards safe handling and a logical sequence more than an exhaustive list of manoeuvres.') #3 s=prs.slides.add_slide(blank); title(s,3,'Start safely and expose properly','Your opening should score communication, safety and professionalism.') card(s,0.7,1.35,3.85,4.85,'INTRODUCE', ['Hand hygiene and PPE if required','Name and role; confirm identity','Explain the examination and obtain consent','Ask: “Do you have pain anywhere?”'],TEAL) card(s,4.76,1.35,3.85,4.85,'POSITION', ['Expose from mid-thigh to feet','Examine both lower limbs','Start standing for gait and alignment','Then lie patient supine with legs relaxed'],ORANGE) card(s,8.82,1.35,3.85,4.85,'PROTECT', ['Compare sides throughout','Begin away from the painful area','Support the limb for movements','Stop a provocative test if pain is severe'],RGBColor(93,169,208)) text(s,0.7,6.55,11.8,0.34,'Say aloud: “I will compare both sides and stop at any point if you have pain.”',16,NAVY,True) add_notes(s,'Poor exposure and not checking pain are common avoidable errors. Position makes subsequent testing easier.') #4 s=prs.slides.add_slide(blank); title(s,4,'LOOK: standing and supine inspection','Do not touch the knee before you have looked at the whole limb.') card(s,0.7,1.35,3.8,4.85,'STANDING', ['Gait: antalgic, stiff knee, varus thrust','Alignment: genu varum or valgum','Fixed flexion deformity from the side','Quadriceps bulk and asymmetry'],TEAL) card(s,4.77,1.35,3.8,4.85,'POSTERIOR VIEW', ['Popliteal swelling','Hamstring contour','Calf symmetry','Walking aids, braces or footwear'],ORANGE) card(s,8.84,1.35,3.8,4.85,'SUPINE', ['Skin, erythema and bruising','Scars and arthroscopy portals','Effusion: suprapatellar fullness','Patellar position or deformity'],RGBColor(93,169,208)) text(s,0.7,6.52,12,0.42,'Quick interpretations: varus thrust = possible medial compartment disease/instability; warm red swollen knee = consider inflammatory or infective pathology.',14,RED,True) add_notes(s,'Mention the posterior aspect specifically. The standing inspection should include gait and alignment before placing the patient on the couch.') #5 s=prs.slides.add_slide(blank); title(s,5,'FEEL: a reliable palpation route','Use the same route every time and compare tenderness with the opposite side.') # route route=[('1','Temperature','Back of hand, compare side-to-side'),('2','Quadriceps','Bulk and tendon'),('3','Patella','Facets, mobility and crepitus'),('4','Extensor mechanism','Patellar tendon to tibial tuberosity'),('5','Joint lines','Medial and lateral menisci'),('6','Collateral ligaments','MCL, LCL and fibular head'),('7','Posterior knee','Popliteal fossa, if appropriate')] for i,(num,h,d) in enumerate(route): col=0 if i<4 else 1; r=i if i<4 else i-4; x=0.8+col*6.1; y=1.35+r*1.17 rect(s,x,y,0.52,0.52,TEAL if col==0 else ORANGE,True); text(s,x,y+0.14,0.52,0.2,num,12,WHITE,True,PP_ALIGN.CENTER) text(s,x+0.72,y,2.25,0.25,h,15,NAVY,True); text(s,x+0.72,y+0.34,4.8,0.22,d,13,GREY) text(s,0.8,6.45,11.8,0.35,'Tip: flexing the knee to 90° makes the joint lines, tibial tuberosity, fibular head and popliteal fossa easier to assess.',14,TEAL,True) add_notes(s,'Palpation is most efficient when it follows a fixed anatomical route rather than random tender-point searching.') #6 s=prs.slides.add_slide(blank); title(s,6,'Effusion and movement','Detect fluid, then document active and passive function.') card(s,0.7,1.3,3.8,4.95,'EFFUSION', ['Patellar tap: knee extended; empty suprapatellar pouch then press patella down','Sweep/bulge test: milk fluid to detect small effusions','Look for suprapatellar “horseshoe” swelling'],TEAL) card(s,4.77,1.3,3.8,4.95,'MOVEMENT', ['Active flexion and extension first','Then passive flexion and extension','Assess terminal extension and hyperextension','Feel for crepitus and observe pain'],ORANGE) card(s,8.84,1.3,3.8,4.95,'EXTENSOR MECHANISM', ['Straight-leg raise with knee kept straight','Assess extensor lag','If unable, support limb and reassess safely'],RGBColor(93,169,208)) text(s,0.7,6.52,12,0.32,'Interpretation: painful restriction can reflect effusion, OA or synovitis. A true mechanical block/locking needs focused assessment.',15,NAVY,True) add_notes(s,'Perform active before passive movement. Failure of straight-leg raise raises concern for extensor-mechanism disruption in the acute setting.') #7 s=prs.slides.add_slide(blank); title(s,7,'Special tests: cruciate ligaments','Always compare translation and endpoint with the other knee.') card(s,0.72,1.35,3.8,4.92,'POSTERIOR SAG', ['Hips and knees flexed to 90°, feet supported','Inspect lateral profile of tibia','Posterior tibial sag suggests PCL insufficiency'],TEAL) card(s,4.78,1.35,3.8,4.92,'LACHMAN', ['Knee flexed 20-30°','Stabilise distal femur; pull proximal tibia anteriorly','Increased translation or soft endpoint suggests ACL injury'],ORANGE) card(s,8.84,1.35,3.8,4.92,'DRAWER TESTS', ['Knee flexed 90°, foot stabilised','Pull tibia forward: anterior drawer (ACL)','Push tibia back: posterior drawer (PCL)'],RGBColor(93,169,208)) text(s,0.72,6.55,11.8,0.34,'Clinical pearl: Lachman is generally more sensitive than anterior drawer for ACL insufficiency.',15,TEAL,True) add_notes(s,'Show the correct angle for Lachman. Explain that a firm endpoint matters as much as the amount of movement.') #8 s=prs.slides.add_slide(blank); title(s,8,'Special tests: collaterals, menisci and patella','Do these gently, with the patient relaxed. Stop if significant pain occurs.') card(s,0.72,1.35,3.8,4.95,'COLLATERALS', ['Valgus stress opens medial joint line: MCL','Varus stress opens lateral joint line: LCL','Test at 20-30° flexion, then in full extension','Pain/laxity at extension implies broader injury'],TEAL) card(s,4.78,1.35,3.8,4.95,'MENISCI', ['McMurray: flex knee, rotate tibia, extend while palpating joint line','Pain, click or thud at joint line supports meniscal lesion','Thessaly may be mentioned if safe and weight bearing'],ORANGE) card(s,8.84,1.35,3.8,4.95,'PATELLA', ['Knee relaxed at 20-30° flexion','Gently translate patella laterally','Apprehension suggests lateral patellar instability','Never force a dislocation'],RGBColor(93,169,208)) add_notes(s,'If time is short, demonstrate collateral testing and state you would assess the menisci with McMurray. Apprehension, not displacement, is the positive finding.') #9 s=prs.slides.add_slide(blank); title(s,9,'Structure-to-test map','Know what each manoeuvre is testing and what a positive result means.') headers=['Test','Main structure','Positive finding','Likely implication'] rows=[['Lachman','ACL','Increased anterior translation / soft endpoint','ACL insufficiency'],['Posterior sag / drawer','PCL','Posterior tibial displacement','PCL insufficiency'],['Valgus stress','MCL','Medial opening or pain','MCL injury'],['Varus stress','LCL','Lateral opening or pain','LCL injury'],['McMurray','Meniscus','Joint-line pain/click/thud','Meniscal pathology'],['Patellar apprehension','Patellofemoral restraint','Fear/apprehension on lateral glide','Lateral patellar instability']] x=[0.6,2.6,5.15,8.6]; widths=[1.9,2.4,3.3,4.1] for i,h in enumerate(headers): rect(s,x[i],1.32,widths[i],0.55,NAVY); text(s,x[i]+.1,1.49,widths[i]-.2,.18,h,12,WHITE,True) for r,row in enumerate(rows): y=1.88+r*.72 fill=PALE if r%2==0 else WHITE for i,val in enumerate(row): rect(s,x[i],y,widths[i],.7,fill,False,RGBColor(224,230,235)); text(s,x[i]+.1,y+.16,widths[i]-.2,.32,val,12,INK, i==0) text(s,.6,6.65,12,.28,'Avoid over-interpreting a single test. Integrate mechanism, history, inspection, tenderness and side-to-side comparison.',14,TEAL,True) add_notes(s,'Use this slide to reinforce why the tests are performed, rather than just memorising hand positions.') #10 s=prs.slides.add_slide(blank); title(s,10,'Finish like an OSCE candidate','The last minute should demonstrate clinical completeness and clear communication.') card(s,.72,1.4,3.8,4.7,'COMPLETE', ['Check distal neurovascular status when indicated','Examine contralateral knee','State you would examine hip and ankle','Review relevant imaging'],TEAL) card(s,4.78,1.4,3.8,4.7,'SUMMARISE', ['Alignment and gait','Effusion, warmth, wasting and tenderness','Range of movement','Stability and meniscal/patellar findings'],ORANGE) card(s,8.84,1.4,3.8,4.7,'CLOSE', ['Explain examination is complete','Thank patient and allow redressing','Wash hands','State likely differentials and next steps if asked'],RGBColor(93,169,208)) text(s,.72,6.45,11.8,.46,'Example: “There is a right knee effusion with medial joint-line tenderness and painful terminal flexion. The ACL and collateral ligaments are stable; McMurray provokes medial joint-line pain.”',14,NAVY,True) add_notes(s,'A short structured summary can secure marks even when a full diagnostic conclusion is not required.') #11 s=prs.slides.add_slide(blank); title(s,11,'Common pitfalls and final checklist','A calm, systematic performance usually scores better than rushing through every named test.') left=['Forgetting gait or posterior inspection','Poor exposure or no contralateral comparison','Palpating before asking about pain','Testing active movement after passive movement','Performing special tests roughly','Forgetting hip, ankle and neurovascular completion'] right=['Introduce, consent, ask pain','Standing: gait + alignment + posterior view','Supine: look, feel, effusion','Move: active, passive, straight-leg raise','Test: ACL/PCL, MCL/LCL, meniscus, patella','Complete: NV, adjacent joints, summary'] rect(s,.72,1.35,5.75,4.95,RGBColor(255,244,241),True,RGBColor(247,205,193)); text(s,1.0,1.65,5.2,.3,'AVOID',19,RED,True); bullet_list(s,1.0,2.18,5.05,3.65,left,16,INK) rect(s,6.87,1.35,5.75,4.95,RGBColor(239,250,247),True,RGBColor(181,222,214)); text(s,7.15,1.65,5.2,.3,'DO EVERY TIME',19,TEAL,True); bullet_list(s,7.15,2.18,5.05,3.65,right,16,INK) text(s,.72,6.63,11.8,.27,'Memory aid: LOOK • FEEL • MOVE • TEST • COMPLETE',20,NAVY,True,PP_ALIGN.CENTER) add_notes(s,'Finish by asking learners to rehearse the sequence aloud, in real time, with a partner.') # 12 s=prs.slides.add_slide(blank); title(s,12,'References and practice prompt','Use this deck alongside supervised clinical practice and your institution’s OSCE marking scheme.') text(s,.85,1.45,11.6,.42,'Core references',21,NAVY,True) bullet_list(s,.95,2.0,11.2,2.2,[ 'Bailey & Love’s Short Practice of Surgery, 28th ed. Knee examination summary box, pp. 925-926.', 'Rheumatology, 2-volume set (2022). Knee examination and mechanical manoeuvres, pp. 919-926.', 'Geeky Medics. Knee Examination OSCE Checklist, accessed 2026.', 'TeachMeSurgery. Examination of the Knee Joint OSCE Checklist, accessed 2026.' ],16) rect(s,.85,5.1,11.65,.82,MINT,True); text(s,1.05,5.3,11.25,.34,'Practice prompt: perform the entire station in 8 minutes, then spend 2 minutes giving a structured summary and differentials.',17,NAVY,True,PP_ALIGN.CENTER) text(s,.85,6.55,11.65,.3,'Educational use only. Apply local examination protocols and escalate acute neurovascular compromise, suspected infection, fracture or dislocation urgently.',12,GREY,False,PP_ALIGN.CENTER) add_notes(s,'References support the sequence. Encourage supervised repetition and feedback.') prs.save(OUT) print(OUT) ''') PY python "/tmp/workspace/knee-osce-presentation/src/create_deck.py" ls -lh "/tmp/workspace/knee-osce-presentation/output/Knee_OSCE_10_Minute_Station.pptx"

Running Command

python - <<'PY' from pptx import Presentation p='/tmp/workspace/knee-osce-presentation/output/Knee_OSCE_10_Minute_Station.pptx' prs=Presentation(p) print('slides',len(prs.slides)) for i,s in enumerate(prs.slides,1): txt=' | '.join(sh.text.replace('\n',' / ') for sh in s.shapes if getattr(sh,'has_text_frame',False) and sh.text.strip()) print(i, txt[:180]) PY python - <<'PY' from zipfile import ZipFile p='/tmp/workspace/knee-osce-presentation/output/Knee_OSCE_10_Minute_Station.pptx' with ZipFile(p) as z: bad=z.testzip() print('zip_integrity',bad or 'OK') PY

Created a 12-slide teaching presentation for the 10-minute orthopaedic knee OSCE station, covering:
  • Timed station plan
  • Introduction, consent, exposure, and pain safety
  • Standing and supine inspection
  • Palpation route and effusion tests
  • Active/passive movements and straight-leg raise
  • Cruciate, collateral, meniscal, and patellar tests
  • Test-to-structure implication table
  • OSCE closing summary, pitfalls, and references

Knee OSCE 10 Minute Station

Presentation · PPTX

This is a shared conversation. Sign in to Orris to start your own chat.