简介:这份资料是医院信息科计算机考试试题汇总,面向医院信息科工作人员、医疗信息化岗位备考者以及需要了解医院信息系统知识的初学者。内容围绕医院信息系统、电子病历、LIS、PACS、远程放射学、医保制度等高频考点展开,以选择题和填空题形式整理,并附有拟题答案,方便自测后对照纠错。资源为单个doc文档,整体大小约56KB,文档结构清晰,打开即可按题号顺序逐题练习,也可按模块挑重点复习。目前已有59人学习下载,是小体量但内容密度较高的速刷型资料。从内容预览看,试题覆盖范围较广:既包括医院信息系统特性、电子病历组成、公共卫生信息化等基础概念,也涉及电子病历结构化录入、ICD分类依据、医学影像系统的工作流与存储方式、DICOM标准、LIS系统与HIS系统的连接方式、远程放射学分类等专业细节。通过系统做题,能够帮助读者快速回顾医院信息化领域的核心考点、行业术语以及常见考查方向,适合用来完成考前突击或入职自测。
1. 医院信息科计算机考试试题大全.doc 究竟考什么
一份名为“医院信息科计算机考试试题大全.doc”的文件,常在内网共享盘上流传多年。它更像一捆毛坯:目录页码错乱,判断题答案跟着题干走,单选题把正确选项直接写在括号里,还混着 HIS 验收时的截图题。所以更务实的做法,是先把它改成结构化题库,再谈刷题。
医院信息科的考试不考通用文字排版,核心是计算机系统结构、数据库运维、终端网络排障与院内系统常识;这份 doc 的价值在于把散落知识点聚合成题,供新人自测、供带教组卷。
下文按文件安全检查、文档解析、抽题自测、考点串讲四条线展开,所有步骤都能直接复现。适合准备入职信息科的工程师、参加年度考核的运维人员,也适合带教同事自己出卷。
2. 把 doc 题库解析成结构化数据:文件头、无头转换与正则切题
2.1 扩展名不靠谱,先用文件头判断 doc 和 docx
拿到这份文件,我第一个动作不是双击打开,而是先确认它到底是不是老式 OLE2 文档。扩展名在这类文件上不太可信:Windows 默认隐藏扩展名,医院内网传文件时常改名,docx 被直接改名为 doc 的情况也见过。
判断方法看文件头。PowerShell 下执行:
Format-Hex -Path "医院信息科计算机考试试题大全.doc" -Count 16输出前 16 字节时,如果最前面是D0 CF 11 E0 A1 B1 1A E1,说明是 OLE2 复合文档,对应老式 .doc;如果是50 4B 03 04,说明本质是 ZIP 容器,其实是 docx。Linux 或 macOS 上等效命令是xxd -l 16 "文件名"。
这个判断直接影响后续工具选型:python-docx 只能读 docx,读不了老的 .doc 二进制格式。所以下一步的转换要交给 LibreOffice 这类能解析 OLE2 的工具。
2.2 LibreOffice 无头模式转换,绕开二进制乱码
把 .doc 直接放进文本编辑器只会看到乱码,因为 OLE2 不是纯文本协议。常见做法是用 LibreOffice 的无头模式转成 txt,一次性去掉样式、页眉页脚、文本框的干扰,输出纯文本交给正则处理。
soffice --headless --convert-to txt:Text --outdir ~/exam_bank \ "医院信息科计算机考试试题大全.doc"参数说明:--headless表示不启动图形界面,适合在服务器或无人值守环境跑;--convert-to txt:Text明确指定用 Text 过滤器导出 UTF-8 纯文本,而不是让 LibreOffice 猜测输出类型;--outdir ~/exam_bank指定输出目录,转换后的文件名保持原名,只是后缀变成 .txt。
如果文档里有大量表格和拓扑图截图,转 txt 会丢掉版式,改用转 docx 再解析:
soffice --headless --convert-to docx --outdir ~/exam_bank \ "医院信息科计算机考试试题大全.doc"转成 docx 后能拿到段落和表格对象,但图片仍需单独处理。还要注意一点:不要用在线文库下载器或在线转换网站处理这类文档。医院考试内容常包含院内系统的操作截图,传到第三方平台本身就不合适,离线转换更稳妥。
2.3 正则按题号切块,把题目归档成 JSON
拿到纯文本后,下一步是把题目切块并按题型归类。老试题的编号很杂:1.、2、、12.都有,选项行又常以A.开头,不能靠空行切。我一般按行首编号切,零宽断言只匹配数字编号,不会误切选项行。
import re, json from pathlib import Path def parse_bank(text: str): text = text.replace("\r\n", "\n").replace("\r", "\n") blocks = re.split(r"\n(?=\d{1,3}[\.、])", text) bank = [] for i, block in enumerate(blocks, 1): block = block.strip() if len(block) < 8: continue head = re.match(r"\d{1,3}[\.、]\s*(.*)", block, re.S) if not head: continue body = head.group(1) if re.search(r"[A-D]\s*[\.、]", body) or re.search(r"[A-D]\s*[\))]", body): q_type = "single" elif re.search(r"(√|×|对|错|正确|错误)", body): q_type = "judge" else: q_type = "short" bank.append({"id": i, "type": q_type, "text": body}) return bank if __name__ == "__main__": raw = Path("exam_bank.txt").read_text(encoding="utf-8", errors="replace") with open("bank_raw.json", "w", encoding="utf-8") as f: json.dump(parse_bank(raw), f, ensure_ascii=False, indent=2)逻辑说明:先把换行统一成\n,再用(?=\d{1,3}[\.、])这个零宽断言在下一个题号前切分;判断题型时,出现A.、B、或A)这类模式归到单选,出现对/错/√/× 标记归到判断,都没命中则归到简答。输出 bank_raw.json,每条记录带 id、type、text 三个字段。
这里的 id 是重新生成的顺序号,不是原题号;type 直接给第 3 章的抽题器用;text 暂时保留题干、选项和可能藏在括号里的答案,不做进一步清洗。清洗太早反而容易误删选项里带括号的内容。
注意:题型自动判定只做初步分流,多选题与单选题必须人工复核。老试题经常把正确答案
(ABCD)整个写在题干后面,机器分不出选项数量,这部分只能靠人扫一遍。
2.4 doc 处理工具怎么选
| 工具 | 输入格式 | 输出 | 适合场景 | 踩坑点 |
|---|---|---|---|---|
| LibreOffice headless | doc/docx | txt/docx/pdf | 批量转存、去样式解析 | 转 txt 丢表格和图片 |
| python-docx | docx | 段落/表格对象 | 解析已转好的 docx | 不认老 .doc 二进制 |
| antiword | doc | 纯文本 | 快速提取老 doc 正文 | 中文编码偶发乱码 |
| olevba | doc/docx | VBA 宏代码 | 安全审计 | 需额外安装 oletools |
前两行是主推组合,antiword 能应急但中文编码兼容一般,olevba 不进解析主链路,只在怀疑文档带宏时使用,具体见第 5 章。
3. 离线抽题器:从题库 JSON 到 HTML 自测卷与 Word 卷
3.1 选型:为什么信息科考试用离线抽题器就够
信息科出卷的场景通常是会议室一台笔记本、内网断外网,再加一台打印机。为这个场景部署在线考试系统是过度设计:装数据库、配用户、设域名,最后实际用到的功能只是随机抽题和打印试卷。一个读取第 2 章 bank_raw.json、按题型抽题、生成单个 HTML 或 Word 文件的脚本完全够用。
python 自带的 random 模块就能解决随机抽题,不需要引入额外依赖。真正的关键在于两点:抽出的题不重复,以及同一套卷能复现。前者用random.sample,后者靠固定随机种子。补考或换卷时只要换一个 seed,整套卷子就会重新洗牌。
3.2 抽题算法:按题型随机不重复
import json, random, argparse from collections import defaultdict def load_bank(source): with open(source, encoding="utf-8") as f: return json.load(f) def draw_paper(bank, rule, seed=None): if seed is not None: random.seed(seed) pool = defaultdict(list) for q in bank: pool[q["type"]].append(q) paper = [] for q_type, want in rule.items(): candidates = pool.get(q_type, []) n = min(want, len(candidates)) paper.extend(random.sample(candidates, n)) random.shuffle(paper) return paper if __name__ == "__main__": ap = argparse.ArgumentParser() ap.add_argument("--source", default="bank_raw.json") ap.add_argument("--single", type=int, default=30) ap.add_argument("--judge", type=int, default=10) ap.add_argument("--multi", type=int, default=0) ap.add_argument("--short", type=int, default=5) ap.add_argument("--seed", type=int) args = ap.parse_args() rule = {"single": args.single, "judge": args.judge, "multi": args.multi, "short": args.short} paper = draw_paper(load_bank(args.source), rule, args.seed) json.dump(paper, open("paper.json", "w", encoding="utf-8"), ensure_ascii=False, indent=2)逻辑说明:先把题库按 type 分组;遍历 rule 字典时,min(want, len(candidates))保证抽取数量不会超过库存,题库缺题时能自动降级;最后random.shuffle把整个 paper 打乱,避免同类题连续出现。输出 paper.json 就是最终的卷面数据。
命令行参数表:
| 参数 | 默认值 | 含义 |
|---|---|---|
| --source | bank_raw.json | 第 2 章产出的题库文件 |
| --single | 30 | 单选题数量 |
| --judge | 10 | 判断题数量 |
| --multi | 0 | 多选题数量 |
| --short | 5 | 简答题数量 |
| --seed | 空 | 固定随机种子,保证可复现 |
用--seed 20240607跑出来的卷子和同事用同一参数跑出来的完全一致。这种方法也适合核对试卷时来回按相同条件生成多套备选。
3.3 生成 HTML 自测卷:答案折叠零依赖
自测卷主要给人看,不是跑前端框架。单个 HTML 文件最实用:用原生<details>折叠答案,不依赖 CDN、不需要联网,U 盘拷到哪台电脑都能打开。生成函数如下:
import html as html_lib def render_html(paper): out = ['<!DOCTYPE html><html lang="zh-CN"><head><meta charset="utf-8">' '<title>医院信息科自测卷</title></head><body><h1>自测卷</h1>'] for i, q in enumerate(paper, 1): out.append(f'<section><h3>{i}. {html_lib.escape(q["text"])}</h3>') ans = q.get("answer", "") out.append(f'<details><summary>答案</summary><p>{html_lib.escape(ans)}</p></details>') out.append('</section>') out.append('</body></html>') return "\n".join(out)说明:每道题一个 section,<details>把答案折起来,想看哪题点哪题;html.escape会把题干里的<、>、&转成实体,避免破坏页面结构。注意q.get("answer", "")表示答案不是必填字段,题库没校答案时页面会显示空但不会报错。这个 HTML 可以直接用打印机的 A4 纵向打印,也可以在浏览器里放大字号再打印。
3.4 用 python-docx 出 A4 纸质卷
考场纸质卷对格式有要求时,用 python-docx 重新生成一份 docx 更合适。最简版本是循环 add_paragraph,但中文字体和字号要单独设置,否则 Word 里可能显示成默认西文字体。
from docx import Document from docx.shared import Pt from docx.oxml.ns import qn def render_docx(paper, output="paper.docx"): doc = Document() for i, q in enumerate(paper, 1): p = doc.add_paragraph(f"{i}. {q['text']}") run = p.runs[0] if p.runs else p.add_run("") run.font.size = Pt(12) run.font.name = "SimSun" run._element.rPr.rFonts.set(qn("w:eastAsia"), "宋体") doc.save(output)说明:run 级别同时设置 font.name 和 eastAsia 字体,是 python-docx 处理中文的固定写法,w:eastAsia属性把中文字体绑定到宋体。生成防作弊用的空白版本时,只需要把 paper 里的题目 text 替换成去掉答案的版本,这套代码不用改。
4. 考点串讲:计算机系统结构、SQL Server 备份与终端网络排障
4.1 计算机系统结构:信息科考试里的常驻考点
信息科对计算机系统结构的考察不是理论推导,而是名词辨析加选型判断。复习优先级按出现频率排,大概四块:冯·诺依曼体系、存储层次、指令周期、总线和接口。这四块都是识记型考点,投入产出比高。
| 考点 | 常见考法 | 采分点 |
|---|---|---|
| 冯·诺依曼结构 | 五大部件/存储程序控制 | 运算器、控制器、存储器、输入、输出 |
| 存储层次 | 寄存器/Cache/主存/外存 | 速度递减、容量递增、价格递减 |
| 指令周期 | 取指、译码、执行 | 一个指令周期可能跨多个机器周期 |
| 总线与接口 | PCIe、SATA、USB 速率 | 记住典型速率,不需要背时序 |
复习时把这几块对照机房真实设备记,效果更好。比如 Cache 的局部性对应 HIS 常用字典表的热点数据,总线速率对应服务器固态盘是 SATA 还是 NVMe 接口。考试题目虽然不会直接问你服务器用什么盘,但选择题里经常拿这些概念做干扰项。
4.2 SQL Server 数据库运维:备份还原的必背参数
医院信息系统的核心库多是 SQL Server,信息科最该背的 SQL 语句不是 select,而是备份和还原。考试操作题常见的是“给 HISDB 做全量备份并压缩”,一份可直接在 cmd 里执行的脚本:
BACKUP_DIR="D:/SQLBackup" FNAME="HISDB_$(date +%Y%m%d).bak" sqlcmd -S localhost,1433 -U sa -P "********" -Q " BACKUP DATABASE HISDB TO DISK = N'${BACKUP_DIR}/${FNAME}' WITH INIT, COMPRESSION, CHECKSUM, STATS = 10; "参数说明:INIT表示覆盖同名备份文件;COMPRESSION启用备份压缩,对 HIS 这种动辄几十 GB 的库能省一半空间;CHECKSUM在备份时做页校验,还原时可发现损坏;STATS = 10每完成 10% 向终端输出一条进度。D:/SQLBackup 目录要提前建好,SQL Server 服务账户要有写权限,否则会报操作系统错误 5。
与 SQL Server 直接相关的另一个高频题是安装 2008 R2 时提示“重新启动计算机失败”。常见做法是检查注册表里挂起的文件重命名操作:
reg query "HKLM\SYSTEM\CurrentControlSet\Control\Session Manager" /v PendingFileRenameOperations有返回值说明系统里存在未完成的重命名操作,安装程序检测到后会要求重启。问题是重启后键值没清掉,就会循环要你重启。先用 reg query 看内容,确认和 SQL Server 无关后再用 reg delete 删除,不要一上来就删键,键里还挂补丁项时删了会导致系统处于半装状态。
4.3 终端与网络排障:从 ping 到打印队列
操作题几乎逃不开“护士站电脑上不了网”或“打印机打不出”的场景。作答套路固定:先看 IP 层,再测网关,再验服务器端口,最后查服务状态。
ipconfig /all ping -t -l 64 192.168.10.1 tracert -d 192.168.10.1 netstat -ano | findstr :1433参数说明:ipconfig /all看本机 IP 是否和网关在同一网段,DNS 是否配好;ping -t持续发包,-l 64指定数据包大小,适合观察丢包;tracert -d跳过域名解析,加快路径显示;netstat -ano加findstr :1433用来确认 SQL Server 是否在监听。
打印队列报错“策略使你无法连接到此打印队列”时,处理顺序通常是先检查 Print Spooler 服务,再刷新组策略,最后重启缓冲服务:
Get-Service -Name Spooler gpupdate /force Restart-Service -Name Spooler说明:Get-Service看服务当前状态,如果是 Disabled 要先设为 Automatic 再启动;gpupdate /force强制刷新组策略,域环境需要机器已加回网络;Restart-Service等效于旧命令net stop spooler && net start spooler。答题时按“服务→策略→缓冲队列”的顺序写,基本不会漏采分点。
虚拟化问题这两年也开始出现在信息科考试里,比如“WSL2 无法启动,提示此计算机上未启用虚拟化”。这种题先分硬件开关还是 Windows 功能:
systeminfo | Select-String "Hyper-V" bcdedit /set hypervisorlaunchtype auto第一行确认 Hyper-V 组件状态,第二行把 hypervisor 启动类型设为自动。如果 systeminfo 里显示固件虚拟化已禁用,只能进 BIOS 打开 SVM 或 Intel VT-x,软件层面改不了。这类题的出现说明试卷在跟着技术环境更新,备考别只背十年前的老题。
5. 老 doc 的安全检查与批量转存技巧
5.1 先扫宏再做解析,别让试题变成安全事件
浏览器和 Office 对来自下载目录的文件会弹“文件可能对你的计算机有害”的提示,这个警告不是空穴来风。老 doc 属于 OLE2 容器,内部能藏 VBA 宏代码,而“试题大全”这类文件名最容易让人放松警惕。第 2 章的无头转换本身就有安全检查价值:LibreOffice 非交互模式把内容抽成文本,宏代码不会进入执行流程。
如果文件来历不明,先扫一遍宏记录:
pip install oletools olevba "医院信息科计算机考试试题大全.doc"说明:olevba 会把 OLE2 内部宏代码导出,并标注 AutoOpen、AutoExec 等自动执行入口,以及 CreateObject("WScript.Shell") 这类可疑调用。看到这些关键词就要把文件隔离处理。不要直接在生产值班机上装 pip 包,放到隔离虚拟机和离线环境里跑更安全。
5.2 批量转存旧 doc:一个 for 循环跑完整个目录
科室共享盘上通常不止一份试题,还有“历年真题”“上机操作题”等多个文档。逐个打开另存太慢,一个循环全部转换:
mkdir -p converted for f in *.doc; do soffice --headless --convert-to txt:Text --outdir converted "$f" done说明:"$f"必须加引号,文件名里有空格时这样才安全;--outdir converted把所有产物集中到一个目录,避免和源文件混放。循环里如果某个文件卡住不再继续,基本是这个 doc 损坏,把它单独挑出来用 WPS 或 Office 打开修复后再转。
5.3 先验行数再过解析器
批量转出来的 txt 不一定全合格。信息科老 doc 里常有整页表格,Text 过滤器可能把它们压成一行甚至直接丢弃。我一般先检查产出文件的行数和大小,再接第 2 章的 parse_bank:
wc -l converted/*.txt如果某个文件的行数明显低于同页数其他文档,基本是表格内容被吞。这种情况改用 docx 转换,再用 python-docx 的 doc.tables 分段读取,表格行才能保住。这个先验行数再过解析器的步骤,比事后对答案省时间得多,也避免辛辛苦苦排出的一套自测卷少了半道题。把这个 for 循环的目录换成共享盘的真实路径,跑完再执行第 2 章的 parse_bank,任何一版老 doc 题库都能拉进同一条自测流水线。
本文还有配套的精品资源,点击获取