Enhance LLM question import and detail views with feedback display and source references

This commit is contained in:
Ross
2025-10-20 11:39:43 +01:00
parent 80171da78d
commit d37376d998
3 changed files with 44 additions and 8 deletions
+11 -2
View File
@@ -23,7 +23,8 @@ Please adhere to the following guidelines when creating each question:
10. For article sources pleese reference the article doi within the explanation field in the format [doi:10.xxxx/xxxxx], if you do not know the doi please use the article name.
11. For statdx sources please reference the article name in the format [statdx:article_id].
12. References should be included inline within the feedback fields.
13. Questions need to have a radiology focus, please avoid questions that are purely clinical or biochemical without imaging relevance.
13. Sources can also be included in the sources field as a list.
14. Questions need to have a radiology focus, please avoid questions that are purely clinical or biochemical without imaging relevance.
JSON Schema (draft-07 compatible)
{
@@ -76,6 +77,12 @@ JSON Schema (draft-07 compatible)
{ "type": "string", "description": "Category name ('Central Nervous and Head & Neck', 'Paediatric', 'Genito-urinary, Adrenal, Obstetrics & Gynaecology and Breast', 'Gastro-intestinal', 'Musculoskeletal and Trauma', 'Cardiothoracic and Vascular')" }
]
},
"sources": {
"type": "array",
"description": "List of source references for the question (e.g. article DOIs or StatDx IDs or Source file names).",
"items": { "type": "string" },
"uniqueItems": true
},
"finding": {
"type": "array",
"description": "References to Finding objects. Prefer numeric IDs; names allowed if importer resolves them.",
@@ -130,4 +137,6 @@ JSON Schema (draft-07 compatible)
}
}
</pre>
</pre>
{% endblock %}
@@ -4,18 +4,35 @@
{% for item in items %}
<div class="card mb-2">
<div class="card-body">
<h5 class="card-title">Question {{ item.index }}</h5>
<h5 class="card-title">Question {{ item.index|add:1 }}</h5>
{% if item.payload %}
<p><strong>Title:</strong> {{ item.payload.title|default:'(No title)'|safe }}</p>
<p><strong>Stem:</strong> {{ item.payload.stem|default:''|safe }}</p>
<p><strong>Answers:</strong>
<ul>
<li>A: {{ item.payload.a_answer|default:''|safe }}</li>
{% if item.payload.a_feedback %}
<p><strong>A Feedback:</strong> {{ item.payload.a_feedback|default:''|safe }}</p>
{% endif %}
<li>B: {{ item.payload.b_answer|default:''|safe }}</li>
{% if item.payload.b_feedback %}
<p><strong>B Feedback:</strong> {{ item.payload.b_feedback|default:''|safe }}</p>
{% endif %}
<li>C: {{ item.payload.c_answer|default:''|safe }}</li>
{% if item.payload.c_feedback %}
<p><strong>C Feedback:</strong> {{ item.payload.c_feedback|default:''|safe }}</p>
{% endif %}
<li>D: {{ item.payload.d_answer|default:''|safe }}</li>
{% if item.payload.d_feedback %}
<p><strong>D Feedback:</strong> {{ item.payload.d_feedback|default:''|safe }}</p>
{% endif %}
<li>E: {{ item.payload.e_answer|default:''|safe }}</li>
{% if item.payload.e_feedback %}
<p><strong>E Feedback:</strong> {{ item.payload.e_feedback|default:''|safe }}</p>
{% endif %}
</ul>
</p>
<p><strong>Feedback:</strong> {{ item.payload.feedback|default:''|safe }}</p>
{% endif %}
<p><strong>Missing M2M:</strong>
{% if item.missing_m2m %}
+15 -5
View File
@@ -15,11 +15,21 @@
<span>{{question.stem}}</span>
<div>
<ol class="abcde">
<li>{{ question.a_answer }}</li>
<li>{{ question.b_answer }}</li>
<li>{{ question.c_answer }}</li>
<li>{{ question.d_answer }}</li>
<li>{{ question.e_answer }}</li>
<li><strong>{{ question.a_answer }}</strong>
{% if question.a_feedback %}<p>Feedback:<i>{{ question.a_feedback|default:''|safe }}</i> </p>{% endif %}
</li>
<li><strong>{{ question.b_answer }}</strong>
{% if question.b_feedback %}<p>Feedback:<i>{{ question.b_feedback|default:''|safe }}</i> </p>{% endif %}
</li>
<li><strong>{{ question.c_answer }}</strong>
{% if question.c_feedback %}<p>Feedback:<i>{{ question.c_feedback|default:''|safe }}</i> </p>{% endif %}
</li>
<li><strong>{{ question.d_answer }}</strong>
{% if question.d_feedback %}<p>Feedback:<i>{{ question.d_feedback|default:''|safe }}</i> </p>{% endif %}
</li>
<li><strong>{{ question.e_answer }}</strong>
{% if question.e_feedback %}<p>Feedback:<i>{{ question.e_feedback|default:''|safe }}</i> </p>{% endif %}
</li>
</ol>
Best answer: {{ question.best_answer }} ({{question.get_correct_answer_stripped}})
</div>