EMR电子病历管理系统:数据模型、流程对接与避坑指南
简介一套基于 Java Web 的 EMR 电子病历管理系统源码项目面向医疗信息化方向的学习者、毕业设计及课程实践人员。系统涵盖病历管理、用户注册、查询搜索、公告发布等常见模块整体采用 MVC 分层结构并整合 Servlet/JSP、JDBC/ORM、Spring 等主流后端技术适合用来理解 Java Web 项目的组织方式、权限控制与医疗数据管理逻辑。压缩包共 255 个文件、约 2.21MB以 jsp/java/xml 等源码及配置文件为主配套 gif/jpg 页面演示图、css/html 前端样式并带有 Eclipse/MyEclipse 工程配置与 SQL Server 数据库文件mdf/ldf便于导入开发环境查看完整结构。已有 1230 人学习/下载可作为课程设计、毕业设计或医信系统二次开发的参考。从中可以梳理医生检查、搜索、公告跳转等核心功能的实现思路也可对照源码追踪业务逻辑快速掌握电子病历系统的模块划分与前后端交互流程。1. EMR电子病历管理系统它不只是把病历从纸搬到屏幕在医院待过的人都明白一个反直觉的事实电子病历上线后医生最常抱怨的往往不是系统难用而是“病历越写越多反而不知道患者的核心问题在哪”。这正是EMR电子病历管理系统和简单文档存储的本质区别——它不只是把纸张扫描成图片挂到系统里而是要把病历变成可结构化、可查询、可追踪的临床数据资产。本文想讲清楚的就是围绕这套系统从数据模型、流程设计、系统对接到上线运维的完整落地路径以及那些不亲自趟一遍绝对发现不了的坑。这套系统的价值体现在两个层面对单个医院它是临床文档的主数据库医嘱、病程、检验报告、手术记录全部汇流于此对区域医疗和数据上报它又是最基础的数据源所有质量控制指标和科研统计都得从这里抽数。适合的读者是那些准备自研或深度定制EMR的开发者、产品经理以及负责系统选型和落地的信息科从业者。后面章节涉及的命令、表结构和配置都是可以直接拿去做原型验证的。2. 先立数据模型病历是写出来的但EMR是设计出来的2.1 为什么不能把病历存成一张大表很多第一次接触EMR的人最直观的想法是建一张“病历表”字段包含患者ID、主诉、现病史、既往史、体格检查、诊断、治疗意见每个字段存一大段文本。这种设计在演示Demo里跑得通一旦进入真实临床环境就会立刻翻车同一份病历会有多个版本的修改记录病程记录是每天追加的出院小结和入院记录虽然结构相似但字段语义完全不同而且这批数据要应对未来任何可能的科研提取或质控统计。一张大表承载不了这些变化。我一般会采用“核心实体文档模板”的混合模型。核心实体指患者、就诊或称“住院登记”、用户医生、护士、医嘱等全局共享的主数据它们用关系表存储强约束、强关联而病历文书本身则按类型拆分模板例如入院记录、首次病程、日常病程、手术记录、出院小结每类模板有独立的表或者独立的JSON结构但在最上层统一挂接到“就诊ID”和“文档类型”两个维度。这样做的好处是全局关系清晰单篇文书结构灵活修改留痕也好做。2.2 最小可用的EMR核心表结构一个能跑通原型的设计下面这套表结构是我做模拟项目X时反复精简后的版本去掉了所有花哨索引只保留支撑核心流程的字段可以直接在PostgreSQL或者MySQL里落地。先建患者和就诊两张基础表-- 患者主索引表 CREATE TABLE patient ( patient_id VARCHAR(32) PRIMARY KEY, id_number VARCHAR(18) UNIQUE, -- 身份证号业务上去重标识用 name VARCHAR(64) NOT NULL, birth_date DATE, gender CHAR(1) CHECK (gender IN (M,F,U)), phone VARCHAR(20), created_at TIMESTAMP DEFAULT now() ); -- 就诊登记表一次住院或门诊就是一条记录 CREATE TABLE encounter ( encounter_id VARCHAR(32) PRIMARY KEY, patient_id VARCHAR(32) NOT NULL REFERENCES patient(patient_id), visit_type VARCHAR(16) NOT NULL, -- INPATIENT / OUTPATIENT / EMERGENCY admission_time TIMESTAMP, discharge_time TIMESTAMP, department VARCHAR(64), attending_doctor VARCHAR(32), status VARCHAR(16) DEFAULT ACTIVE, -- ACTIVE / DISCHARGED / CANCELLED created_at TIMESTAMP DEFAULT now() );然后建病历文档主表和内容表。这里最关键的一点是不要把修改时间覆盖在创建时间上否则“病历在几点几分被改过”这个临床争议焦点就彻底丢了。文档主表记录版本和归属内容表存每次提交后的快照。-- 病历文档主表 CREATE TABLE clinical_document ( document_id VARCHAR(32) PRIMARY KEY, encounter_id VARCHAR(32) NOT NULL REFERENCES encounter(encounter_id), document_type VARCHAR(32) NOT NULL, -- ADMISSION_NOTE / PROGRESS_NOTE / DISCHARGE_SUMMARY ... document_title VARCHAR(128), current_version INT NOT NULL DEFAULT 1, status VARCHAR(16) DEFAULT DRAFT, -- DRAFT / SIGNED / VOIDED created_by VARCHAR(32), created_at TIMESTAMP DEFAULT now() ); -- 文档版本快照表 CREATE TABLE document_version ( document_id VARCHAR(32) NOT NULL REFERENCES clinical_document(document_id), version INT NOT NULL, content TEXT NOT NULL, -- 存储结构化JSON或Markdown渲染源文 signature VARCHAR(128), -- 电子签名摘要防篡改用 signed_by VARCHAR(32), signed_at TIMESTAMP, PRIMARY KEY (document_id, version) );这段SQL的设计逻辑有一个关键决策content字段为什么不直接拆成上百个列答案很现实——不同科室、不同病种对同一类文书的 section 要求千差万别拆列意味着每次调结构都要改表、写迁移脚本临床科室根本等不起这个周期。存JSON的代价是查询时需要表达式索引但对中小型医院来说完全在可控范围内。签名摘要字段建议存Hmac值key放在服务端配置里不要落库。2.3 主索引与业务索引的取舍让数据找得到也让数据别乱跑EMR系统上线半年后最大的数据灾难往往是同一个患者被挂了三条记录一条按身份证建的一条按医保卡号建的还有一条干脆只录了个名字。所以在设计早期就要把“患者主索引”当一等公民对待。上面patient表的id_number加了UNIQUE约束但在真实场景里会遇到空值、历史脏数据、外籍患者没身份证等情况所以更稳的做法是建一张patient_mapping表把身份证、医保卡、就诊卡、院内ID全部映射到同一个patient_id下查询时走映射表去路由。另外一个日常踩坑点是时间字段。临床数据的时间精度要求到分钟级别而且存在一个“业务时间”和“系统时间”的差异医嘱的执行时间应该是护士实际操作的时间而不是系统记录创建的时间病程记录的书写时间可以是补录的。常见做法是每个关键行为都带两个时间戳——occurred_at业务发生时间和recorded_at录入系统时间后面排查“病历书写超时”“医嘱执行延迟”这类纠纷时这两列缺一不可。我见过不少系统只存一个created_at结果质控部门要求按分钟精确核对执行单时完全没有对证依据只能翻日志硬凑。3. 把EMR读写的核心流程跑通从就诊登记到文书归档3.1 状态机是EMR的骨架DRAFT、SIGNED、VOIDED 与版本之间的关系病历文书最忌讳的是“谁都能改改完不知道谁改的”。一套可靠的状态机规则可以省掉后面90%的权限撕扯。我常习惯把文档生命周期拆成四态一轮回DRAFT草稿只有本人可改、PENDING_REVIEW待审科主任可见可批注、SIGNED已签名锁定内容、VOIDED作废仅逻辑删除并留痕。任何一次对SIGNED文档的修改都不是在原文档上动刀而是复制一个新版本置为DRAFT原版本保留不动。# 伪代码文档状态流转与版本生成 def sign_document(document_id, user_id): doc get_document(document_id) if doc.status ! DRAFT: raise PermissionError(只有草稿状态的病历才能签名) if not has_sign_permission(user_id, doc.document_type): raise PermissionError(当前用户没有该文书的签名权限) new_version doc.current_version 1 # 核心为当前内容生成签名锁定快照 signature hmac_sign(doc.content_hash, secret_keyAPP_SECRET) update_document(document_id, statusSIGNED, current_versionnew_version, signaturesignature, signed_byuser_id, signed_atnow()) return signature这个流转规则回答了几个常见困惑为什么不能直接UPDATE因为当纠纷发生时你要能拿出“患者出院时看的版本”和“当时医生签字的版本”而不是一个被后来修改过的混合体。逻辑上签名只针对content_hash不直接针对整行数据这样即使其他字段有微调也不会误伤签名有效性。文档签名权限需要按文书类型单独配置比如首次病程和日常病程通常都是住院医师签但出院小结需要主治及以上。3.2 核心操作的最小代码路径创建、暂存、电子签名、作废下面这段Python伪代码是拿Flask或FastAPI做后端时非常顺手的一套接口逻辑。它把创建文档、暂存草稿、提交签名、作废四个动作串在一条主链路上适合当作团队内部的路由参考。先看创建和暂存app.post(/api/documents) def create_document(encounter_id, doc_type, user_id): # 校验就诊存在且处于ACTIVE状态 enc get_encounter(encounter_id) if enc.status ! ACTIVE: raise BusinessError(400, 就诊已结束不能新建文书) doc_id gen_uuid() insert_document(doc_id, encounter_id, doc_type, DRAFT, user_id) insert_document_version(doc_id, version1, content{}, created_byuser_id) return {document_id: doc_id}, 201 app.put(/api/documents/{doc_id}/content) def save_draft(doc_id, content, user_id): doc get_document(doc_id) # 只有草稿状态可以反复保存签名后要走转新版本流程 if doc.status ! DRAFT: raise BusinessError(400, 非草稿状态不可直接保存) next_ver doc.current_version 1 insert_document_version(doc_id, versionnext_ver, contentcontent, created_byuser_id) update_document_version(doc_id, current_versionnext_ver) return {version: next_ver}作废操作要单独说明它不是DELETE。彻底删除一条病历在医疗合规里是不被允许的所以代码里永远用VOIDED状态加备注原因来做逻辑删。查询时所有列表接口默认过滤掉VOIDED记录但后台管理端能看到完整轨迹。这条约定需要后端和前端开发达成共识否则很容易出现前端“删除成功”而后台审计时发现数据还在白白制造误会。3.3 电子签名要签什么不是签个名字图片而是签内容指纹很多初次接触EMR的团队会在电子签名上走弯路以为签名就是把医生手写笔迹的PNG图片贴到文书底部。实际上合规意义上的电子签名核心是“内容完整性”和“身份可信”手写图像只是视觉呈现的一部分。我常用的方案是当医生点击签名时前端把当前渲染后的文书内容生成一个SHA-256摘要连同医生ID、时间戳一起送到后端后端用私钥对摘要做数字签名并把签名值、签名时间、证书序列号存进document_version表。这样后续任何人改一个标点符号都会导致摘要失配签名有效性立刻存疑。有一回我给某家医院做内部演示时医生问了个很尖锐的问题如果我把文书导出成PDF再改一下签名还成立吗答案是不成立。所以现实做法是PDF导出的文件上会附带一个独立的签名页或签名区里面包含摘要值和签名值校验时专门写一个离线小工具重新计算PDF内容的摘要和签名区里的值做对比。这套逻辑如果不提前想清楚等上线后被医务科要求“给卫健委提供抗篡改证明”时就会像没有后悔药一样难补救。4. 对接HIS、LIS、PACSEMR不是孤岛数据链路与同步的取舍4.1 EMR和数据源头的关系谁产生数据谁消费数据EMR要吃进的数据远比自己产出的多。患者基本信息、挂号科室、住院床位来自HIS检验结果来自LIS影像报告和关键影像来自PACS手术信息可能来自专科手术麻醉系统。如果把这些系统的数据全部手工录入EMR效率低下不说还很容易产生对不上的账。所以中间需要一套接口网关做集成而不是把业务数据库直接暴露给对方。常见做法是一套HL7风格的接口或者现在更流行的基于REST的轻量级集成。选型没有标准答案但有一个原则HIS侧发生的事件入院登记、转科、出院走异步推送EMR侧的更新很少需要回推给HIS除非涉及费用或状态确认。同步方向设计反了会出现一个常见怪象患者已经办理出院EMR里还是“住院中”医生写完出院小结提交时直接被状态机挡回来这就是集成时序没设计好。4.2 同步时序与幂等同一个事件发了两次会怎样接口联调时最容易被忽视的就是幂等性。HIS推送一条入院登记如果由于网络超时收到了两次EMR这边要么重复创建两条encounter要么在更新时把后来的空数据覆盖掉先到的有效数据。规避方案是给每条推送都加event_id和occurred_atEMR侧用唯一索引约束event_id重复收到时直接忽略。下面是用SQL表达的一个简单幂等插入-- 接收HIS入院推送时按event_id做幂等写入 INSERT INTO encounter (encounter_id, patient_id, visit_type, admission_time, department, source_event_id, created_at) VALUES (:enc_id, :pat_id, INPATIENT, :adm_time, :dept, :event_id, now()) ON CONFLICT (source_event_id) DO NOTHING;这段SQL的巧妙之处在最后一行如果同一个source_event_id已经在表里存在整个插入动作被跳过配合接口层返回“200 已接收”调用方就不会看到恐怖的重复数据效应。幂等不只是后端工程师的执念它直接决定了临床科室在早上7点半最忙的时候看到的患者列表是干净还是重复成灾。很多翻车现场根因不是某个系统宕机而是对接方网络重试机制把单条数据像连续剧一样往库里灌。4.3 同步失败后的补偿机制把对账做成常备工具无论接口设计得多严谨现实里总会出现同步程序容器崩了、某次网络抖动超时、对方升级期间丢弃消息这类情况。所以EMR系统必须配一套对账工具用来回答一个高频问题“HIS里有这个患者为什么EMR里没有”常见做法是拉取双方每晚的增量清单按患者ID、就诊ID、状态三个维度比对差异数据进一张reconciliation表业务人员第二天上班后在后台确认后补推。对账的时间窗口选择也值得讲究。放在凌晨业务低峰期做能避开真实临床查询压力但要注意不要和数据库备份窗口重叠否则两个重任务互相抢IO反而把生产库拖慢。我在某个项目中就遇到过这样的鬼打墙每天凌晨3点备份任务跑得正欢对账任务也准点启动结果慢查询日志爆了一屏值班电话被打爆。后来把对账推迟到5点半一切归于平静。这个教训让我养成了一个习惯凡是新增批处理任务第一件事就是去查运维日历里的其他定时任务分布。5. 常见问题与排查EMR上线后最常踩的五个坑与现实解法5.1 病历保存后内容“消失”或回退到旧版本现象医生明明保存了病程记录页面提示成功下一次打开却变成旧内容或者干脆空白。原因大部分情况是前端在保存时拿的是旧版本号提交后覆盖了后写入的新纪录产生了回退。少数情况是content字段存了空JSON但没做非空校验。解决接口层对version做严格乐观锁校验更新时必须携带当前版本号如果数据库版本号不一致直接返回409冲突。同时给content增加add约束禁止写入空串或只有空对象的JSON。经验是这类问题最容易在多人协作写同一份文书时爆发尤其值班医生和上级医生交替修改的场景。5.2 电子签名校验总是不通过现象医生正常签名后隔天或跨系统查看时提示“签名有效性验证失败”。原因最常见的不是加密逻辑错误而是文档内容在前端渲染时发生了格式微调——空格、换行、自动补全的制表符导致hash值变了。签名时摘要是从数据库原文算的预览时前端重新渲染又算了一遍两边不一致。解决签名摘要只认数据库里的原始content字段不与前端渲染结果比较如果要和PDF联动必须在服务端导出PDF并基于该PDF重新生成独立摘要。排查时先对比两条hash值能不能对上能对上再说算法问题对不上优先怀疑渲染差异。这类问题我统称“细节里的玄学”其实每一步都查得到。5.3 界面点“归档”后文书列表里找不到了现象护理人员把出院病历归档后医生在“已出院患者”列表里看不到该患者也无法打开出院小结。原因归档动作把文档状态直接切成了VOIDED业务上归档和作废是两个语义但同一个状态字段无法区分。解决状态机增加ARCHIVED状态与VOIDED严格分开。归档后数据只读、可查阅不参与可编辑列表VOIDED仅在误写错文档或纠纷废弃时使用。凡涉及医疗文书永远不要复用状态值来表达双重含义这是上线后最刺手的坑之一。5.4 时段查询永远查不准尤其跨天与跨月现象查询“7月1日到7月31日期间的出院患者”总感觉少几条或多几条。原因普遍出在时间边界admission_time存的是带时区的TIMESTAMP业务里用字符串比较或date类型硬切导致7月31日23:59:59之后出院的患者被遗漏。解决查询字段一律用闭区间加条件表达例如where admission_time :start AND admission_time :end_next_day。前端参数用ISO8601完整时间串不要让数据库做隐式转换。这个坑在报表和质控统计里出现频率极高写查询的人需要对边界条件有洁癖。5.5 演示环境的数据污染了正式库现象项目演示或培训时测试患者数据出现在正式环境的统计报表里质控指标被拉低医务科质疑系统数据准确性。原因测试环境与生产环境共用了同一个数据库连接配置或者演示时手动在生产库执行了INSERT脚本。解决从部署层面强制隔离测试库独立账号独立IP生产库的写入账号权限最小化。另外在EMR前端做一个明显的环境标识例如测试环境页面顶部固定一条红色横幅让所有人在心理上建立条件反射。这种事出过一次就长记性属于血泪经验里成本最低但收益最高的一条。6. 验证EMR真正好用的一个土办法从出院小结反查全流程与其用几十个测试用例去验证功能完整性不如用一个最贴近临床的场景做端到端检验拿一位真实脱敏患者的数据从入院登记开始沿途创建入院记录、首程、日常病程、医嘱、检查报告引用、手术记录最后生成出院小结并复核出院小结里的每一个字段能否回溯到来源数据。这个土办法能一次性暴露数据模型、状态机、权限校验、接口同步里的绝大多数问题。具体操作时我会这样检验先看入院记录里的“主诉”能不能在门诊初诊记录里找到来源再看出院小结里的“住院经过”有没有和日常病程对得上最后把出院诊断关联到ICD编码去查统计接口能否按编码维度拉出正确计数。如果中间任何一步出现断链就说明某个环节的表结构或流程衔接埋了雷。这套验证思路不需要自动化框架写几个SQL和脚本即可完成建议在每个迭代版本发布前由测试环境跑一遍。我入这行十几年吃过最大的亏就是相信“只要功能按钮在流程就成立”。现在每接一个EMR项目第三件事就是亲手走一遍出院小结反查倒不是为了挑毛病而是让自己和团队都保留对临床业务的敬畏感。电子病历系统做得好不好最终要看医生愿不愿意在里面如实写好每一笔记录。希望这篇笔记能帮你在设计和落地EMR时少走几步弯路。本文还有配套的精品资源点击获取

相关新闻

降AI率工具深度横评:五款论文改写产品实测对比

降AI率工具深度横评:五款论文改写产品实测对比

这半年来几乎每两个星期就有人在群里问:“论文被标了高比例AI生成,怎么办?”问的人不见得都是用AI写稿,很多是习惯性依赖公文腔、追求四平八稳的句子,结果被检测系统误伤。于是,免费的、付费的降AI率工具齐…

2026/10/13 19:09:18 阅读更多 →
类装饰器从入门到实战:用法、参数、元信息保留与避坑指南

类装饰器从入门到实战:用法、参数、元信息保留与避坑指南

很多人学装饰器学到函数装饰器就停了,觉得会写个timer就够用了,直到某天在源码里看到dataclass下面躺着一个 class,或者在类里看到classmethod,才意识到装饰器和水面下的冰山之间,还差着一个“类”的距离。这篇DAY29&a…

2026/10/13 19:09:18 阅读更多 →
5G时代家庭数据中心构建指南:万兆内网、Btrfs存储与Docker服务编排

5G时代家庭数据中心构建指南:万兆内网、Btrfs存储与Docker服务编排

1. 为什么“家庭数据中心”在5G时代突然从概念变成刚需五年前,我第一次在某高校实验室看到那台塞满NAS硬盘、连着三台树莓派、还挂着旧路由器改装的“家庭数据中枢”,当时只觉得是极客玩具——直到去年帮一位做远程医疗影像分析的A同学部署第二套本地存储…

2026/10/13 19:08:17 阅读更多 →

最新新闻

Unity AssetBundle标签策略:功能模块化vs资源类型化

Unity AssetBundle标签策略:功能模块化vs资源类型化

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 1:22:07 阅读更多 →
从闪存颗粒到NVMe协议:SSD存储基础原理与选购避坑指南

从闪存颗粒到NVMe协议:SSD存储基础原理与选购避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 1:22:07 阅读更多 →
电子电路基础(下):动态元件、暂态响应与有源器件入门

电子电路基础(下):动态元件、暂态响应与有源器件入门

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 1:22:07 阅读更多 →
LabVIEW异或和校验实现与串口调试避坑指南

LabVIEW异或和校验实现与串口调试避坑指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 1:22:07 阅读更多 →
通达信公式破解器V2012末日版:反汇编与伪代码还原实战

通达信公式破解器V2012末日版:反汇编与伪代码还原实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 1:22:07 阅读更多 →
半小时漫画经济学2:用漫画讲透金融危机传导链条

半小时漫画经济学2:用漫画讲透金融危机传导链条

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 1:21:07 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →