MASMATIXInnovations
← All insights

Paper follow-up · Clinical AI · Evaluation

A medical similarity metric scores "left knee" closer to "right knee" than "lumbar spine" to "lower back"

RaTEScore is a newer way to grade AI-written medical reports, built on matching medical terms by meaning. I tested whether that kind of matching notices the error my Roman Urdu notes make most: the wrong side.

By Muzammal Hussain · 4 November 2026 · 4 min read

Word-overlap scores such as BLEU and ROUGE count shared words, so they miss a note that uses different words for the same thing. RaTEScore (Zhao et al., 2024) takes the medical terms out of a report, turns each one into a vector with a medical encoder called BioLORD-2023-C, and matches every term with its closest term in the reference. It agreed with radiologists better than BLEU, ROUGE-L, BERTScore and RadGraph F1 in the paper's tests. The paper does not discuss left and right. In my last experiment a wrong or missing injured side was the most common error in notes from Roman Urdu consultations, so I wanted to know whether meaning-based matching sees it.

Key findings

  1. To the encoder, a wrong side is almost a synonym. "Right knee" vs "left knee" scored 0.77, the same as "right knee" vs "right patella" (0.77) and higher than "lower back" vs "lumbar spine" (0.60).
  2. When I swapped only left and right in 25 safe notes, the soft score flagged 11. A plain code check flagged all 25.
  3. On the 200 real notes the soft score looked good (AUROC 0.955), mainly because many unsafe notes also lost or changed a whole body part. It still passed a real note that said left elbow for a right elbow, with a score of 0.92.
  4. Its 5 false flags came from short but safe notes that left out other body parts mentioned in the consultation, not from synonyms.

What I did

This is a RaTEScore-style score, not RaTEScore itself. I used the same encoder and the same matching (each term matched to its closest term, then the average of both directions), but without the paper's term extractor model or its learned weights, and only for anatomy. Body parts and sides ("right ankle", "lower back") were read with the English and Roman Urdu word lists from my side check. No language model was called.

A note was flagged when its soft score fell below the cut that flags about 5% of safe notes (0.797). The code check flags a note when its side words or body parts disagree with the consultation.

Results

PairKindSimilarity
right knee / left kneeside swap0.770
right ankle / left ankleside swap0.748
left shoulder / right shoulderside swap0.717
right knee / right patellasynonym0.767
lower back / lumbar spinesynonym0.596
right ankle / right kneebody-part swap0.504
knee / headacheunrelated0.268
Bar chart of notes flagged by the soft anatomy score and by the code check. Real unsafe notes: 83 of 108 vs 104 of 108. Side swaps: 11 of 25 vs 25 of 25. Part swaps: 19 of 31 vs 31 of 31. Safe notes flagged: 5 of 92 vs 4 of 92.
Notes flagged at the cut that flags about 5% of safe notes. BioLORD-2023-C on a MacBook M4 CPU.
SetNotesSoft score flaggedCode check flagged
Real unsafe notes10883104
Side swaps251125
Body-part swaps311931
Safe notes (false flags)9254

Swapping only the sides lowered the soft score by 0.17 on average, and swapping the body part by 0.27. The code check flagging every swap is expected, because the swaps were made with the same word lists it reads.

What this means

Meaning-based matching is a real step up from counting words, and it does catch notes that drop or change a whole body part. But the encoder places "left knee" and "right knee" in almost the same spot, so a score built on it can pass a note with the wrong side. For a physiotherapist that is the error that matters most. For MeetPhysio, the clinical documentation system I am building, I would keep the code check as the gate for side and body part and use a soft score only as a second signal, for example to rank notes for review.

Limitations

This is not the full RaTEScore: no term extractor model, no learned weights, anatomy only, so the full metric could rank notes differently. The notes come from 20 consultations I wrote, two models and one run each. The reference label uses the same word lists as the code check, which gives the code check an advantage on the real notes; the swap test does not have this problem. BioLORD-2023-C loads with mean pooling, which its owner describes as the correct behaviour.

What I will test next

Follows: Zhao W., Wu C., Zhang X., Zhang Y., Wang Y., Xie W. (2024). RaTEScore: A Metric for Radiology Report Generation. arXiv. arXiv:2406.16845