简介:一份医院门诊系统需求分析报告文书,面向系统设计开发人员、医院信息化项目管理者及软件工程学习者。资源包内共有1个doc文档,容量455KB,内容涵盖引言、需求概述、目标及用户特点、需求规定、功能与性能规定、系统结构等章节。已有152人浏览学习。报告以门诊实际业务为基础,梳理了医院组织机构及部门协作关系,并对挂号、病人信息录入、医生诊断、处方、化验结果录入、门诊结算等核心流程给出明确需求。同时针对病人信息、医生信息、各类单据和库存信息提出管理要求,功能上注重快速检索与业务流程自动化,性能上强调安全性、完整性与可靠性。对于编写门诊系统需求文档或开展课程设计者,这份分析报告能提供清晰框架与章节参考。
1. 医院门诊系统的需求分析:为什么文档动工前先把需求“锁”住
医院门诊系统的需求分析,最怕的不是写不出文档,而是写出来的需求分析报告,开发看完不知道怎么动手,业务看完觉得“这不是我要的”。行业内常说一句话:门诊系统的坑,一半在需求分析阶段就埋下了。挂号流程、号源规则、退号时限、医保结算、医生排班,看起来都是“常识”,一旦落成需求文书,每个字都要经得起追问。本文围绕《医院门诊系统需求分析报告文书.doc》这类交付物,讲清楚需求分析要做什么、报告怎么组织、哪些决策必须当场敲定,适合正要接门诊系统需求分析的从业者,也适合在实训项目里练手需求分析仿真实验的学习者。
2. 需求获取:把门诊现场的碎片信息变成一致的需求基线
门诊系统的需求,大部分不在科室主任的汇报材料里,而在挂号员的窗口、医生的诊室和收费员的打印机上。需求获取阶段的目标是穷举业务场景和异常分支,而不是急着写“系统支持挂号”。一旦在这个阶段拿到的是“大概流程”,后面需求文书里的每个功能条目都会带上模糊成分。
2.1 涉众识别与核心诉求:挂号员、医生、医保办谁的意见最重要
先列涉众,这一步决定需求分析的范围。典型涉众包括:患者(线上预约、现场取号)、挂号员(窗口挂号与退号)、分诊护士、出诊医生、收费员、药房药师、检验科技师、医保办、门诊部管理员、信息科。每个角色关注的东西不同,需求分析要做的不是平均用力,而是识别出每条诉求背后的业务约束。
| 角色 | 核心诉求 | 常见需求提法 | 需求分析时的注意点 |
|---|---|---|---|
| 挂号员 | 挂号快、退号有据 | “窗口挂号不要超过30秒” | 真正关心的是减少操作步骤 |
| 出诊医生 | 开单顺手、历史病历可查 | “处方要能一键复制常用药” | 医生时间受限,界面操作要少 |
| 收费员 | 费用明细准确、医保结算成功率高 | “医保报销金额要提前算给患者看” | 需要医保办确认政策字段 |
| 分诊护士 | 排队有序、叫号清晰 | “回诊患者要优先插队吗” | 这类决策要写成业务规则 |
| 医保办 | 结算合规 | “费用类别要按医保目录映射” | 外部接口约束,必须提前确认 |
| 信息科 | 系统可维护、权限清晰 | “账号要能按岗位批量开” | 涉及后台管理需求 |
| 患者 | 少排队、费用透明 | “线上挂号不取号直接进诊室” | 线上环节需要排号策略支持 |
这张表其实解释了冲突为什么会发生。医生希望处方一键复制,但医保办要求每次开药都重新核对用量;挂号员希望窗口直接退号,但财务要求退费必须走审批。需求分析会议如果只收集意见、不裁决冲突,文档就只能写“支持退号”,至于谁审批、退费边界在哪,留给开发去猜,这就是需求分析skill最需要训练的地方。
2.2 业务流程梳理:从预约挂号到取药的节点、角色和异常
门诊业务主线是“预约/挂号 → 分诊/候诊 → 就诊/开单 → 缴费 → 检查/检验 → 复诊 → 取药”。画流程时不要只画正常路径。每个节点要问一句:如果这一步失败,系统让谁来处理?常见的异常分支包括:
- 预约后未取号(爽约)的号源释放时间。
- 分诊优先级:过号患者、回诊患者、急诊插队。
- 医生加号后号源池余额变化。
- 退号发生在缴费前与缴费后的不同处理路径。
- 处方缴费后发现药房库存不足,费用怎么冲正。
- 医保结算中途失败,患者已付款但系统未确认。
异常分支一旦列出来,需求文书里的“业务规则”章节就有了素材。很多项目只写主流程,把异常当成“技术容错”,这是错位。爽约号源什么时候释放是业务规则,不是技术容错;退费审批权限也是业务规则,不是数据库事务。画流程时我会用泳道图把角色标清楚,每个泳道里的动作都要能对应到一个系统功能或一个人工处理动作。
2.3 需求获取的具体做法:跟班观察、半结构化访谈、历史数据统计
我一般分三步走。第一步是跟班观察:在门诊挂号窗口和收费窗口各跟半天,记录每一笔操作的步骤数,留意操作员为完成一次挂号需要切换几次界面。第二步是半结构化访谈:按角色逐一访谈,提前准备提纲但不限制回答方向,超过5分钟还没讲到“这个流程不对”就换问题方向。第三步是历史数据统计:让信息科拉出门诊近三个月的挂号量、退号量、高峰时段、平均排队时长,这些数据直接用于非功能需求。
访谈不是聊完就结束。每场访谈结束后当天整理纪要,把“原话”和“分析判断”分开写。医生说“我开单的时候最烦系统弹窗”,这是原话;如果纪要里写成“医生要求减少弹窗”,这就是分析判断,可能失真。真正需要进需求文书的,是带业务约束的原话,例如“退回的号源必须15分钟内释放,超过15分钟患者要重新挂号”。
这一步还有一个隐性收益:为后续的需求分析仿真实验积累真实数据。实训平台上的门诊系统需求分析仿真实验往往给的是理想流程,真实项目里数据的波动和异常边界才是需求分析skill真正训练的地方。访谈结束后我还会做一次“需求确认会”,把整理出来的业务规则逐条念给业务方听,当场确认、当场签字。别小看这个环节,后来开发阶段很多争议,靠的都是这份签字记录。
3. 《医院门诊系统需求分析报告文书》结构:一份能签字、能验收的Word怎么写
需求分析报告文书的价值在于“可评审”。门诊系统的需求分析报告,建议按“引言—总体描述—功能需求—外部接口—非功能需求—约束与假设—附录”七段式组织。这个骨架对应软件需求规格说明(SRS)的通用写法,和常见的GB/T 8567或IEEE 830思想一致,但按门诊业务调整过。
3.1 文档骨架:从引言到验收条件的七段式结构
拿到这份.doc,最重要的判断标准是评审会上能不能逐条过。如果章节之间内容重叠、业务规则分散在多个地方,评审会开三轮都收不了场。以下是我常用的章节结构。
| 文档章节 | 必写内容 | 评审关注点 |
|---|---|---|
| 1 引言 | 目的、范围、名词定义、参考文档 | 范围是不是只含门诊?住院、体检要不要带? |
| 2 总体描述 | 系统角色、业务流程总览、约束条件 | 流程是否覆盖线上、窗口、自助机三条渠道? |
| 3 功能需求 | 分模块的功能条目 | 每条需求有没有编号、是否可测试? |
| 4 外部接口 | 与医保、LIS、PACS、短信网关的接口约定 | 接口字段由谁定义,超时算不算异常? |
| 5 非功能需求 | 性能、并发、可用性、数据保留策略 | 挂号高峰并发怎么算出来的? |
| 6 约束与假设 | 网络、终端、政策、暂不实现项 | 哪些功能明确不做? |
| 7 附录 | 用例清单、业务规则表、需求追踪矩阵 | 规则表是否覆盖异常分支? |
评审时会发现一个规律:文档越长,吵得越凶。长不是问题,问题是很多人把文档写成了“会的都写上去”,核心需求反而被淹没。好的做法是功能需求分模块写,每个模块开头加一段“本模块业务目标”,让评审人先理解目标,再逐条看条目。功能模块按业务对象划分:号源与挂号、分诊与排队、医生工作站、收费与退费、处方与发药、基础数据与权限。不要按技术架构分模块,否则业务方看不懂。
3.2 功能需求条目模板:一条能开发和测试的需求包含什么
一条需求条目建议包含这些字段:需求编号、需求名称、优先级、业务目的、前置条件、操作角色、正常流程、异常分支、验收标准。每个字段都要有内容,不能留空。下面以“窗口退号并释放号源”为例。
| 字段 | 内容示例 |
|---|---|
| 需求编号 | FR-HIS-挂号-003 |
| 需求名称 | 窗口退号并释放号源 |
| 优先级 | P1 |
| 业务目的 | 患者因迟到、行程变更退号,系统应释放号源供重新挂号 |
| 前置条件 | 患者已挂号且未就诊,号源处于占用状态 |
| 正常流程 | 挂号员输入就诊卡号 → 系统展示当前未就诊挂号记录 → 确认退号 → 号源恢复为可挂 → 打印退号凭证 |
| 异常分支 | 退号时患者已取药,提示先办理退药;医保已结算需先撤销结算 |
| 验收标准 | 退号成功后5秒内,号源余号+1;门诊医生站不可再看到该患者候诊队列记录 |
这个模板里的每个字段都有用途。“业务目的”用于防止需求被误读,开发改方案时知道为什么做;“异常分支”用于测试用例设计;“验收标准”用于交付确认。写功能需求时最容易犯的错是只写“正常流程怎么走”,不写“哪些情况不能走”。比如退号需求只写可退,不写“已取药的挂号单不允许直接在挂号窗口退号”,测试设计就只能靠猜。所以功能需求条目里,我通常要求验收标准必须包含一条反向用例。
3.3 需求优先级排序与基线管理:P0/P1/P2怎么排,变更怎么走
优先级排序看“业务停不停得了”。P0是第一优先级:挂不了号、开不了单、收不了费就是事故,必须第一批开发和测试。P1是流程必须完整但可短暂容忍延时,比如退号审核、电子发票打印。P2是体验优化类,比如短信通知内容、自助机界面布局。优先级应由门诊部、信息科、开发方三方共同拍板,而不是研发Leader自己定。
变更管理是需求文书从写出来到项目结束一直在做的事。门诊系统最常见的变更来源是医保接口政策调整、科室排班规则变化、挂号渠道新增。建议在文档附录增加一张需求变更记录表,字段包括变更编号、变更日期、原需求内容、变更后内容、变更原因、涉及需求编号、审批人。这张表是验收阶段“为什么这里和需求文书不一致”的后悔药。
基线管理的意思是:每个阶段评审通过后,把当前版本冻结,后续变更不再直接改Word原文,而是走变更流程。需求分析报告文书作为.doc交付,最大的风险是版本混乱,一版改成“最终版2”,下一版改成“最终版3修订”。我的习惯是在页眉标注“基线版本号+冻结日期”,变更记录表放在附录,正文冻结。谁要改,走流程,不留口头约定。
4. 需求建模与关键规格:把门诊业务转成用例、规则与数据字典
需求文书里最容易出现两类极端:一类只有流程图,开发看完不知道每个字段怎么填;另一类写了很多字段,业务方却看不懂。要兼顾两者,就得有四种东西:用例、业务规则、数据字典、接口约定。
4.1 用例建模:门诊挂号、分诊、收费的用例书写
用例描述“某个角色通过系统完成一个目标的过程以及过程中的分支”,不是产品说明书。门诊系统至少有这些用例:预约挂号、现场挂号、退号、分诊排队、医生接诊、开具处方、收费结算、退费、发药、患者身份建档。每个用例在需求文书里占一张表。
| 用例元素 | 内容示例 |
|---|---|
| 用例名称 | 现场挂号 |
| 主执行者 | 挂号员 |
| 前置条件 | 号源池有空号,患者已在门诊建档 |
| 主流程 | 挂号员输入患者身份信息 → 系统查询患者档案 → 选择科室、日期、医生 → 系统锁定号源 → 生成挂号单并收费 |
| 备选流 | A1 患者档案不存在,先建档再挂号;A2 号源被并发占用,提示重新选择时段;A3 收费超时,号源自动释放 |
| 后置条件 | 患者处于候诊状态,号源被占用,收费窗口可见待缴费记录 |
用例表里最重要的部分是备选流。备选流写的是边界情况:患者建档信息缺失、号源被并发占用、挂号费用支付超时、患者医保卡无法读取。开发实现时,备选流就是异常处理的来源;测试设计时,备选流就是边界测试用例。如果用例里的备选流超过三条,说明这个功能需要进一步拆分,别把一整个诊疗流程塞进一个用例。
4.2 业务规则表:号源锁定、退号时限、医保结算的规则表达
有些需求不适合塞进功能条目,比如号源锁定的时限、退号手续费的算法、复诊插队的条件、医保报销比例变化。这些属于业务规则,独立成表更好维护。规则表字段建议是:规则编号、规则名称、适用场景、规则描述、生效条件、例外情况、提出方。
| 规则编号 | 规则名称 | 规则描述 | 生效条件 | 例外情况 |
|---|---|---|---|---|
| BR-挂号-001 | 号源锁定 | 患者预约挂号成功后,系统锁定号源直至所选就诊时段开始后30分钟;超过锁定时间未取号,自动释放号源并记录爽约 | 线上预约渠道 | 科室提前备注的延时取号患者除外 |
| BR-退号-002 | 退号时限 | 已缴费且未就诊的挂号单,在就诊时段开始前可线上退号;超过该时段需窗口退号,由分诊台护士审批 | 全部门诊科室 | 急诊退号不设时间限制 |
| BR-结算-003 | 医保结算 | 处方缴费时,系统必须按医保目录匹配费用类别,匹配失败的收费项目不得进入结算 | 医保患者 | 自费项目跳过匹配 |
写业务规则时,“规则描述”不能有歧义。比如“超过锁定时间未取号自动释放”,要写清楚超过多少分钟、释放后患者能否重新挂号、爽约记录保留多久。这些字段开发做定时任务时直接对应调度参数,测试写用例时直接对应边界值。规则表要和功能需求编号关联,比如在功能需求条目里标注“涉及规则:BR-挂号-001”,否则评审时看着两处内容对不上。
4.3 数据字典与外部接口:字段约定、LIS/PACS/医保接口边界
需求分析阶段的数据字典不需要到数据库设计级别,但要约定业务字段的名字、类型、取值范围、来源与变更责任方。否则开发按自己的理解建“挂号表”,检验科又说LIS传过来的字段名不一样,两边对接时全是撕扯。常见做法是在附录放一张数据字典表,只收录跨系统、跨模块共享的字段。
| 字段名 | 业务含义 | 类型与长度 | 取值范围/字典项 | 来源系统 |
|---|---|---|---|---|
| 就诊卡号 | 患者唯一身份标识 | varchar(32) | 医院统一发放 | 门诊建档 |
| 就诊流水号 | 一次就诊的唯一标识 | varchar(20) | 日期+科室编码+序号 | 门诊系统 |
| 号源状态 | 号源当前占用情况 | varchar(10) | 可挂/锁定/已用/释放 | 号源管理 |
| 费用类别 | 医保费用分类 | varchar(10) | 甲/乙/丙/自费 | 医保目录 |
最容易被忽略的是外部接口。门诊系统至少要跟医保系统、检验系统(LIS)、影像系统(PACS)、短信服务商打交道。需求分析阶段要确定三件事:接口由谁提供、字段以谁为准、失败后谁重试。医保结算接口常见做法是门诊系统先生成结算申请,推送给医保系统,医保返回结算结果后门诊系统再关账;如果医保系统超时,要不要自动重试、重试几次、重试期间患者账单怎么处理,必须写在接口需求里,不能留到联调再说。
接口文档通常会在需求分析报告里单列一节,把接口名称、调用方向、同步异步、超时阈值、异常码定义写清楚。联调环境申请周期往往是项目排期的黑匣子,需求分析时把“联调环境是否已具备”这一条写进约束与假设章节,能让排期少一点玄学。
5. 需求分析避坑:门诊系统项目中五个最典型的翻车现场
这一章是血泪经验。医院门诊系统的需求分析文档,最容易在五个地方翻车。每一条我都见过不止一次,有的翻车现场还相当难看。
5.1 错把现状描述当需求定义
现象:需求文档写“系统支持窗口挂号、自助机挂号、线上预约挂号”,开发照做,做完业务方说不对,我要的是“同一个号源池,三个渠道同步显示余号”,需求里根本没写。
原因:调研时只记录了“目前有哪几种挂号方式”,没有追问“三者的号源关系是什么”。现状描述说的是“有什么”,需求定义说的是“系统应该怎么做”。
解决:在文档里要求至少三分之一的细节是业务规则。写完“支持窗口挂号”这条功能后,必须补一句渠道之间号源池关系、并发冲突后谁优先、数据同步延迟容忍度。评审时多问一句“如果不这么做会怎样”,现状描述就会被逼成需求定义。
5.2 流程图里没有异常分支,开发时规则靠猜
现象:业务流程图画到“缴费完成→取药”就结束了,数据库设计也没考虑到患者缴费后药房库存不足。上线第一个月,这类单据二十多笔,运维手工处理到崩溃。
原因:画流程时大家一起顺着“正常流程”走,异常分支被当成小概率事件略过了。
解决:流程复审时,每个业务节点问三个问题:如果上一步失败走哪?如果并发冲突走哪?如果外部系统超时走哪?在需求文书里单独建“异常处理清单”,列出异常场景、提示文案、处理角色、超时阈值。别等开发阶段再补,那是给团队买后悔药。
5.3 非功能需求只写“要快”,没有可验证指标
现象:验收时院方组织20人同时挂号测试,发现响应慢。开发说“并发是你们说的20人”,院方说“门诊高峰期一分钟60个号”,双方互相甩锅。
原因:非功能需求是“系统响应要快”这种口号式描述,没有量化指标。
解决:用历史数据说话。让信息科拉出去年某高峰时段门诊挂号量,算出峰值并发。需求分析报告里写清楚:并发用户数按挂号窗口、自助机、线上渠道的峰值求和;挂号请求在高峰期95%的响应时间小于2秒;号源数据变更后,三个渠道同步延迟小于10秒。写数字,不写形容词。
5.4 涉众冲突用“谁声音大听谁的”,没有决策记录
现象:分诊护士说回诊患者要直接插队首,医生说回诊患者必须排队,护士长嗓门大,规则就定成了“回诊直接插队”。上线后投诉剧增。
原因:需求分析会上没有把冲突放进规则表,没有指定裁决人。
解决:需求分析阶段专门做一次冲突分析。把意见冲突列成“需求冲突记录表”,字段至少包括冲突描述、涉众A诉求、涉众B诉求、业务影响、建议方案、裁决人、裁决结果。裁决结果必须由门诊部主任签字确认,然后才进需求文档。软件需求分析的基本概念里都提过干系人优先级,到了实际项目里,落成一张签字表最有效。
5.5 需求文书写成数据库设计,业务评审走过场
现象:需求文档里写“号源表:字段包括号源ID、排班ID、就诊日期、开始时间、结束时间、状态”,业务方评审时看不懂,只能签字通过。开发做出系统后,业务说这界面跟我想的完全不一样。
原因:把需求分析报告写成了数据库设计说明,用字段定义替代业务功能。字段写得越细,离业务越远。
解决:需求文书先讲业务场景,再讲功能需求,数据字典作为附录出现。评审时按“角色+目标”一条条过:挂号员能在30秒内完成一次现场挂号吗?医生能查看到既往处方吗?业务方不需要看到任何技术名词。需求文书写完,让一个不懂技术的门诊部同事过一遍,看不懂的地方就是需要重写的部分。
6. 从需求文书到门诊系统落地:用追踪矩阵和验收样例把文档变成可执行依据
需求文书写到评审通过,只是第一步。开发、测试、验收阶段还要继续用它。我建议在文档最后放一张需求追踪矩阵,每一条功能需求编号对应一个测试用例编号、一个交付模块,状态在评审、开发、测试、验收四个节点各更新一次。
| 需求编号 | 需求名称 | 功能模块 | 测试用例编号 | 验收状态 |
|---|---|---|---|---|
| FR-HIS-挂号-003 | 窗口退号并释放号源 | 号源与挂号 | TC-挂号-009 | 测试通过 |
| FR-HIS-分诊-001 | 回诊患者按规则进入候诊队列 | 分诊与排队 | TC-分诊-011 | 评审通过 |
| FR-HIS-结算-005 | 医保结算失败自动重试 | 收费与退费 | TC-结算-023 | 开发中 |
有了矩阵,覆盖率就是可计算的了,而不是拍胸脯保证。每轮测试结束,数一下状态列的分布就知道需求落地了多少。如果开发中途改了方案,改的是需求编号对应的模块,测试用例同步更新,不会出现文档是文档、代码是代码两张皮的情况。
再往深一步说:现在很多人问如何通过AI把系统需求分析书实现成系统。我的回答是,AI可以帮很大忙,但它不能替代需求确认。把需求文书丢给AI,它可以生成原型页面、生成接口Mock、生成测试用例,甚至生成一版数据字典草稿。这些可以作为开发热身,也可以用来验证需求是否足够具体——如果AI在原型的某一步不知道弹什么提示,那大概率是需求条目里缺了异常分支。
最后做一个验证:从需求文书里随机抽三个需求条目,不看正文,只看“验收标准”字段,能不能写出测试用例?如果写不出来,文档还要补。这个习惯帮我挡掉了不少上线后的紧急补丁。需求分析这份工作,做到能验收才算完,希望帮到你。
本文还有配套的精品资源,点击获取