Update PACS DICOM navigation and summaries
This commit is contained in:
@@ -351,16 +351,18 @@ def relation_cte() -> str:
|
||||
WHEN 'delayed' THEN '延迟期'
|
||||
ELSE '无法判别'
|
||||
END
|
||||
WHEN 'lower_abdomen' THEN '下腹部'
|
||||
WHEN 'pelvis' THEN '盆腔'
|
||||
WHEN 'abdomen_pelvis' THEN '腹盆部'
|
||||
WHEN 'lower_abdomen' THEN '腹盆部'
|
||||
WHEN 'pelvis' THEN '腹盆部'
|
||||
ELSE NULL
|
||||
END AS label,
|
||||
CASE part.value
|
||||
WHEN 'head_neck' THEN 1
|
||||
WHEN 'chest' THEN 2
|
||||
WHEN 'upper_abdomen' THEN 3
|
||||
WHEN 'abdomen_pelvis' THEN 4
|
||||
WHEN 'lower_abdomen' THEN 4
|
||||
WHEN 'pelvis' THEN 5
|
||||
WHEN 'pelvis' THEN 4
|
||||
ELSE 99
|
||||
END AS sort_key
|
||||
FROM public.{PACS_ANNOTATION_TABLE_SQL} a
|
||||
@@ -587,8 +589,7 @@ def relation_cte() -> str:
|
||||
CASE WHEN ps.body_parts ? 'head_neck' THEN '头颈部' END,
|
||||
CASE WHEN ps.body_parts ? 'chest' THEN '胸部' END,
|
||||
CASE WHEN ps.body_parts ? 'upper_abdomen' THEN '上腹部' END,
|
||||
CASE WHEN ps.body_parts ? 'lower_abdomen' THEN '下腹部' END,
|
||||
CASE WHEN ps.body_parts ? 'pelvis' THEN '盆腔' END
|
||||
CASE WHEN ps.body_parts ? 'abdomen_pelvis' OR ps.body_parts ? 'lower_abdomen' OR ps.body_parts ? 'pelvis' THEN '腹盆部' END
|
||||
], NULL)) AS dicom_body_parts,
|
||||
u.patient_name AS upp_patient_name,
|
||||
COALESCE(u.patient_names, '[]'::jsonb) AS upp_patient_names,
|
||||
@@ -683,10 +684,13 @@ def relation_where(q: str, status: str, algorithm_model: str, dicom_part: str) -
|
||||
if algorithm_model:
|
||||
clauses.append(f"algorithm_model = {sql_literal(algorithm_model)}")
|
||||
if dicom_part:
|
||||
valid_parts = {"head_neck", "chest", "upper_abdomen", "lower_abdomen", "pelvis"}
|
||||
valid_parts = {"head_neck", "chest", "upper_abdomen", "abdomen_pelvis"}
|
||||
if dicom_part not in valid_parts:
|
||||
raise HTTPException(status_code=400, detail="invalid DICOM part filter")
|
||||
clauses.append(f"body_parts ? {sql_literal(dicom_part)}")
|
||||
if dicom_part == "abdomen_pelvis":
|
||||
clauses.append("(body_parts ? 'abdomen_pelvis' OR body_parts ? 'lower_abdomen' OR body_parts ? 'pelvis')")
|
||||
else:
|
||||
clauses.append(f"body_parts ? {sql_literal(dicom_part)}")
|
||||
return "WHERE " + " AND ".join(clauses) if clauses else ""
|
||||
|
||||
|
||||
|
||||
@@ -130,8 +130,7 @@ function partLabel(value) {
|
||||
head_neck: "头颈部",
|
||||
chest: "胸部",
|
||||
upper_abdomen: "上腹部",
|
||||
lower_abdomen: "下腹部",
|
||||
pelvis: "盆腔",
|
||||
abdomen_pelvis: "腹盆部",
|
||||
}[value] || value;
|
||||
}
|
||||
|
||||
|
||||
@@ -47,8 +47,7 @@
|
||||
<option value="head_neck">头颈部</option>
|
||||
<option value="chest">胸部</option>
|
||||
<option value="upper_abdomen">上腹部</option>
|
||||
<option value="lower_abdomen">下腹部</option>
|
||||
<option value="pelvis">盆腔</option>
|
||||
<option value="abdomen_pelvis">腹盆部</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="filter-grid">
|
||||
|
||||
Reference in New Issue
Block a user