Refine major department options
This commit is contained in:
40
患者首页处理/数据可视化网页端/app/main.py
Normal file → Executable file
40
患者首页处理/数据可视化网页端/app/main.py
Normal file → Executable file
@@ -52,6 +52,44 @@ PDF_DIR = Path(env("PDF_DIR", str(PROJECT_ROOT / "待处理-患者首页PDF"))).
|
||||
SETTINGS_PATH = Path(env("REVIEW_SETTINGS_PATH", str(PROJECT_ROOT / "数据可视化网页端/review_settings.local.json"))).resolve()
|
||||
APP_TIMEZONE = ZoneInfo(env("APP_TIMEZONE", "Asia/Shanghai") or "Asia/Shanghai")
|
||||
|
||||
DEFAULT_MAJOR_DEPARTMENT_OPTIONS = [
|
||||
"肝胆外科及肝移植相关",
|
||||
"普通外科及腹部外科",
|
||||
"急诊医学科",
|
||||
"重症医学科",
|
||||
"骨科",
|
||||
"泌尿外科",
|
||||
"呼吸内科",
|
||||
"耳鼻喉头颈外科",
|
||||
"日间诊疗中心",
|
||||
"乳腺外科",
|
||||
"胸外科",
|
||||
"肝病内科",
|
||||
"感染科",
|
||||
"肿瘤放疗科",
|
||||
"消化内科",
|
||||
"肿瘤外科",
|
||||
"特需/涉外病房",
|
||||
"老年外科",
|
||||
]
|
||||
|
||||
|
||||
def load_major_department_options() -> list[str]:
|
||||
rule_path = PROJECT_ROOT / "数据处理工作区" / "01_配置规则" / "01_科室分类规则.json"
|
||||
if rule_path.exists():
|
||||
try:
|
||||
data = json.loads(rule_path.read_text(encoding="utf-8"))
|
||||
options = [str(group.get("大科室", "")).strip() for group in data.get("大科室列表", [])]
|
||||
options = [option for option in options if option]
|
||||
if options:
|
||||
return options
|
||||
except Exception: # noqa: BLE001
|
||||
pass
|
||||
return DEFAULT_MAJOR_DEPARTMENT_OPTIONS
|
||||
|
||||
|
||||
MAJOR_DEPARTMENT_OPTIONS = load_major_department_options()
|
||||
|
||||
|
||||
FIELD_GROUPS: list[dict[str, Any]] = [
|
||||
{
|
||||
@@ -81,7 +119,7 @@ FIELD_GROUPS: list[dict[str, Any]] = [
|
||||
("discharge_dept", "出院科别", "text", None),
|
||||
("discharge_ward", "出院病房", "text", None),
|
||||
("hospital_days", "实际住院天数", "integer", None),
|
||||
("major_department", "大科室", "text", None),
|
||||
("major_department", "大科室", "select", MAJOR_DEPARTMENT_OPTIONS),
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
6
患者首页处理/数据可视化网页端/app/static/app.js
Normal file → Executable file
6
患者首页处理/数据可视化网页端/app/static/app.js
Normal file → Executable file
@@ -705,8 +705,12 @@ function renderField(record, name, label, type, options, alerted = false, source
|
||||
const sourceClass = source === "ai" ? " is-ai-modified" : source === "manual" ? " is-manual-modified" : "";
|
||||
let control = "";
|
||||
if (type === "select") {
|
||||
const normalizedValue = String(value ?? "");
|
||||
const normalizedOptions = (options || []).map((option) => String(option));
|
||||
const optionItems = ["", ...normalizedOptions];
|
||||
if (normalizedValue && !normalizedOptions.includes(normalizedValue)) optionItems.push(normalizedValue);
|
||||
control = `<select data-field="${name}" data-type="${type}">
|
||||
${(options || []).map((option) => `<option value="${escapeHtml(option)}" ${option === value ? "selected" : ""}>${escapeHtml(option)}</option>`).join("")}
|
||||
${optionItems.map((option) => `<option value="${escapeHtml(option)}" ${option === normalizedValue ? "selected" : ""}>${escapeHtml(option || "请选择")}</option>`).join("")}
|
||||
</select>`;
|
||||
} else if (type === "json") {
|
||||
control = renderJsonEditor(name, value, sourceMap);
|
||||
|
||||
22
患者首页处理/数据处理工作区/01_配置规则/01_科室分类规则.json
Normal file → Executable file
22
患者首页处理/数据处理工作区/01_配置规则/01_科室分类规则.json
Normal file → Executable file
@@ -65,7 +65,8 @@
|
||||
{
|
||||
"大科室": "呼吸内科",
|
||||
"子科室": [
|
||||
"呼吸内科3病区"
|
||||
"呼吸内科3病区",
|
||||
"呼吸内科RCU"
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -126,6 +127,18 @@
|
||||
"肿瘤放疗日间【无人】"
|
||||
]
|
||||
},
|
||||
{
|
||||
"大科室": "消化内科",
|
||||
"子科室": [
|
||||
"消化内科2病房"
|
||||
]
|
||||
},
|
||||
{
|
||||
"大科室": "肿瘤外科",
|
||||
"子科室": [
|
||||
"肿瘤外科2病房"
|
||||
]
|
||||
},
|
||||
{
|
||||
"大科室": "特需/涉外病房",
|
||||
"子科室": [
|
||||
@@ -141,6 +154,9 @@
|
||||
],
|
||||
"aliases": {
|
||||
"呼吸内科3": "呼吸内科3病区",
|
||||
"呼吸内科RCU": "呼吸内科RCU",
|
||||
"消化内科2": "消化内科2病房",
|
||||
"消化内科2病房": "消化内科2病房",
|
||||
"外科ICU": "外科ICU",
|
||||
"急诊中心病房": "急诊中心",
|
||||
"急诊中心": "急诊中心",
|
||||
@@ -176,10 +192,14 @@
|
||||
"肝移植内科": "肝移植内",
|
||||
"肝移植内N": "肝移植内N",
|
||||
"肝移植内科N": "肝移植内N",
|
||||
"肝脏移植内科N": "肝移植内N",
|
||||
"肝胆外科ICU": "肝胆ICU",
|
||||
"肿瘤放疗3": "肿瘤放疗3",
|
||||
"肿放3": "肿瘤放疗3",
|
||||
"肿瘤放疗L": "肿瘤放疗病区L",
|
||||
"肿放L": "肿瘤放疗病区L",
|
||||
"肿瘤外科2": "肿瘤外科2病房",
|
||||
"肿瘤外科2病房": "肿瘤外科2病房",
|
||||
"重症医学1": "※重症医学1病区",
|
||||
"重症医学科1": "※重症医学1病区",
|
||||
"重症1": "※重症医学1病区",
|
||||
|
||||
Reference in New Issue
Block a user