APP下载

基于大数据的住院医师规范化培训系统设计与实现

2018-04-18钱旦敏何德福韦玉芳董建成

计算机应用与软件 2018年3期
关键词:住院医师日志科室

王 杰 钱旦敏 娄 帅 何德福 韦玉芳 董建成*

1(南通大学医学信息系 江苏 南通 226001) 2(江苏中康软件有限责任公司 江苏 南通 226001)

0 引 言

住院医师规范化培训是医学毕业生接受继续医学教育的重要组成部分,目的是为各级医疗机构培养具有良好的职业道德、扎实的医学理论知识和临床技能,能独立、规范承担本专业常见疾病诊疗工作的临床医师。住院医师规范化培训效果的好坏也是检验一个医院医疗水平高低的一项重要因素,对医院的发展密切相关。

住院医师规范化培训管理工作涉及到的医疗数据具有琐碎、繁杂的特点,由于医学教育背景不同、医院科室设置、医院流程的差异,不同医院在具体培训管理上也无法避免存有差异[1]。为了规范培训内容,保证培训质量,利用信息化手段进行管理成为必然趋势。

随着大数据理念的出现,医疗行业迎来了大数据潮流,而医疗数据已经具备了大数据的基本特征:数据量大、数据种类多、价值高、价值密度低、产生快、处理快[2-3]。在系统的设计与开发阶段,结合大数据“4V”特点,使得系统能够承载多用户的高并发读写,达到快速处理、快速响应的目标。为了存储不同结构、体积大的数据,本系统部分模块采用流行的非关系型数据库MongoDB进行存储,使系统拥有存储海量数据的能力,在安全性、可靠性、扩展性和资源重复利用率上更胜一筹[4-5],为日后大数据研究与应用奠定基础。

1 国内外研究现状

1.1 国内研究现状

在我国,自1921年开始实行住院医师培训。2013年,伴随着七部委发布的相关指导意见,标志着住院医师规范化培训在我国全面启动。2014年8月在全国范围内启动第一批住培基地认定工作。不久,国家住院医师规范化培训管理信息系统建立,该系统整合了国家级和省级两个平台,使得国家和省级单位能够全面掌握医师培训情况。截至2015年,半数以上省市已逐步建立满足地方需求的住院医师规范化培训系统。然而,由于各个地方住培系统不统一,使得顶层信息系统难以高效地统筹各地方子系统,给国家级住培系统整合全国住院医师培训资源带来一定的困难[6]。

1.2 国外研究现状

在美国,全国已有上千家医院接受住院医师培训,其管理制度和信息系统的运用不断完善。在日本,医院信息化建设开展得比较早,20世纪70年代末就率先提出了共享的医院信息系统。在欧共体也开展了类似的“欧洲健康信息网络战略计划”[7]。由于国外医院信息化发展较早,积累了大量的经验,技术相对成熟先进,从而为住院医师规范化培训系统的实现与应用奠定了良好的基础。

1.3 存在的不足

无论是国家住院医师规范化培训管理信息系统还是各个培训基地的住培系统都尚未采用非关系型数据库进行存储,而是采用传统的关系型数据库进行数据保存。医疗数据不仅量大而且结构复杂,在这数据急剧增长的“大数据时代”,传统的关系型数据库表现出明显的缺陷:性能弱、灵活性和可扩展性差[8]。

在系统功能上,国家住院医师规范化培训管理信息系统在题库管理和轮转排班管理上尚有欠缺。

针对以上不足,基于大数据的住院医师规范化培训系统在部分模块已采用流行的Nosql进行存储,满足大数据时代的需求。在系统功能上,新增题库管理模块和轮转排班模块,使得系统更加健壮和自动化。

2 系统功能需求分析

在满足国家和省级住培系统功能结构基础上,本系统角色主要分为四类:住院医师、指导医师、专业基地负责人和管理人员。不同角色拥有不同的职责,相互关联,相互协调,共同维持住院医师培训的信息化管理。

2.1 住院医师功能需求的用例分析

住院医师进行规范化培训时,需每日上报工作量,经指导医师审核通过后计入培训档案。住院医师日常管理还包括轮转信息的填写,病例上报,操作技能上报,教学、科研等情况上报,填写问卷调查表(出科评价表),参加考试考核、申请出科等。其功能用例图如图1所示。

图1 住院医师用例图

2.2 指导医师功能需求的用例分析

指导医师即每个科室的管理人员,也就是带教老师,应当严格按照住院医师规范化培训内容与标准的要求实施培训工作,认真负责地指导和教育培训对象。其最主要任务是负责住院医师的日常考核和出科考核,出科考核原则上应当在培训对象出科前完成,并由专业基地审核其真实性和有效性。指导医师的功能需求包括:日常考核、出科考核、预约信息、问卷查看(出科评价表的查看)、知识库学习、学员基本信息管理(包括个人信息、相关科室的学习情况)、出科审核、学员每日工作量审核等。其功能用例图如图2所示。

图2 指导医师用例图

2.3 专业基地负责人功能需求的用例分析

培训基地由符合条件的专业基地组成。专业基地由本专业科室牵头,会同相关科室制订和落实本专业培训对象的具体培训计划,实施轮转培训,并对培训全过程进行严格质量管理。培训基地、专业基地应当定期向所在地省级卫生计生行政部门或其指定的行业组织、单位报告培训工作情况,接受检查指导。其功能需求包括:学员信息管理、学员考核审核、学员轮转记录查看、预约信息等。功能用例图如图3所示。

图3 专业基地负责人用例图

2.4 管理员功能需求的用例分析

医院管理员拥有较多的管理权限,其功能需求包括:住院医师规范化培训管理相关文件材料的发布、学员录取、学员信息管理、考核管理、基地申报、账号审核、预约信息审核、轮转排班等。其功能用例图如图4所示。

图4 管理员用例图

3 系统设计与实现

3.1 系统设计原则

标准化:严格按照国家卫生计生委办公厅关于印发《住院医师规范化培训基地认定标准(试行)》和《住院医师规范化培训内容与标准(试行)》等材料实施开发。

个性化:在国家级和省级住培系统结构标准的基础上,医院可根据自身的实际情况提出合理的需求进行个性化设计开发。

智能化:住院医师规范化培训系统实现了对培训过程的智能化管理,在题库训练、轮转安排、考试考核、统计分析等模块上通过程序自动完成,易错地方设有智能化提示等。

3.2 系统体系结构设计

目前,常见的系统体系结构有C/S(客户机/服务器)和B/S(浏览器/服务器)两种。B/S结构随着互联网技术的兴起而出现,主要优势体现在:① 具有强大的数据操作和事务处理能力。② B/S体系维护方便,易于扩展。③ 适用于分布式集群系统,支持多层应用架构,更有利于大数据的研究[9]。

本系统采用流行的B/S体系结构,如图5所示。无论是住院医师、指导医师、专业基地负责人还是管理人员,可以随时随地查看信息,作出重要指示。

图5 系统体系结构示意图

3.3 技术架构设计

在技术架构方面,采用功能上可扩展、接口安全开放的松耦合架构,确保系统能够适应各种应用环境,稳步运行。本系统以微软.NET Framework 4.5为平台,采用ASP.NET MVC5框架,将数据、业务、展现进行有效分离[10]。本系统架构是在三层的基础上进行多层架构面向接口设计,各层之间通过依赖注入实现解耦,体现了系统设计的开闭原则。系统架构如图6所示。

图6 系统架构图

数据访问驱动层:本系统采用微软官方ORM实体框架Entity Framework,简称EF,是一种基于关系型数据库的数据存储,提高软件开发效率,有着仅仅通过改变配置就可以做到跨数据库的能力。其中知识库学习模块,由于数据量巨大,数据结构复杂,包括:文本、图片、音频、视频等多种格式,传统的关系型数据库在可靠性和性能方面越来越无能为力[11]。而日志管理模块是一个完整医疗信息系统的重要组成部分,面对海量的日志信息,传统的关系型数据库显得力不从心。为了减轻Web系统的巨大压力,保证网站的可用性、增强网站性能、提升用户体验,知识库学习和日志管理模块已采用异步编程,结合C#官方MongoDB驱动,利用非关系型数据库MongoDB进行实现。

数据访问接口层和业务逻辑接口层:分别为DAL(数据访问实现层)和BLL(业务逻辑实现层)提供接口规范、约束,实现多态,降低耦合。为了提高网站并发处理能力,提高应用程序执行速度、响应速度,采用异步编程模型,在数据访问接口层定义公共的仓储操作接口,供数据访问层继承使用。其中方法名称以Async结尾并以泛型Task作为返回值。核心代码如下:

Task CountAsync();

Task CountAsync(Expression> p);

Task DeleAsync(Expression> p);

Task DeleAsync(TKey id);

Task DeleAsync(T entity);

Task FirOrDefAsync(Expression> p);

Task FirOrDefAsync(TKey id);

Task> QueryAllAsync();

Task> QueryAllAsync(Expression> p);

Task QueryAsync(TKey id);

Task AddAndGetIdAsync(T entity);

Task AddAsync(T entity);

Task UpdateByLambdaAsync(T entity, Expression> p);

Task AddOrUpdateAndGetIdAsync(T entity);

Task AddOrUpdateAsync(T entity);

展现层:采用MVC框架进行分层开发,使得控制更加灵活,页面更加干净,复杂的项目更加容易维护,减少项目间的耦合[12]。通过MVC中Controller调用业务逻辑层的方法进行数据处理,进而通过View将数据在页面展示。

各层之间调用不能任意相互调用,具有一定的规则。即展现层通过Controller层利用接口调用业务逻辑层的具体业务方法,业务逻辑层通过接口调用数据访问层的核心代码,服务器端做出响应返回数据,然后按照相反顺序将数据结果在展现层呈现出来。多层架构的优点是依赖接口编程,结构清晰、安全性高、易于维护和扩展。

3.4 系统功能设计与介绍

在国家级住培系统功能基础上,按照国家级的数据标准、接口规范,以信息安全为切入点[6],设计出可与国家级住培系统对接的满足医院业务需求的住院医师规范化培训系统。主要功能模块包括:住院医师管理模块、培训基地管理模块、带教师资管理模块、考试考核管理模块、统计分析模块、公共信息管理模块、系统维护模块。系统整体功能结构如图7所示。

图7 系统整体功能结构示意图

3.4.1系统主要功能设计

住院医师规范化培训系统是在国家级住培系统的基础上,开发的一套功能齐全的软件。其中新增的题库管理模块实现灵活组题,可供学员随时进行题库训练和日常考核。知识库学习模块采用流行的非关系型数据库MongoDB存储,提高多用户并发访问时的查询效率,结合专业知识创建索引,提高查询准确度。轮转排班模块利用排班算法将管理员从繁杂的手动排班中解放出来,使系统更加智能化、人性化。日志管理模块包括系统日志和异常日志,系统每天都会产生大量的日志信息,为了对海量日志数据能够进行高效分析和存储,发掘隐藏在日志数据中的用户访问规律和模式,该模块采用MongoDB进行存储,利用其中的数据聚合工具MapReduce来实现数据的统计处理[13-14]。

1) 题库管理模块设计随着医院教学要求的提高,传统的利用人工组卷不仅效率低下,而且工作量大、易出错,浪费大量的人力物力,难以适应现代化的教学需求。管理员利用该系统可进行试题的批量导入,学员进行题库训练或日常考核时,系统可进行随机组卷,灵活组题。

系统中设有五种题型,分别为:单选题、多选题、判断题、名词解释和问答题,试题选项和答案均存于相应的表中。学员进行题库训练时,题型包括单选、多选和判断题,系统可自动组卷改卷。以单选题为例,系统会自动从库中随机抽取50道单选题,将试题题目、选项以及答案以json的数据格式返回至前台页面。学员考试结束后,系统会以键值对key-value的形式将题号和答案保存至库中,可供学员日后查看学习。其中单选题抽取核心代码如下:

string code=CommonFunc.FilterSpecialString(Common-Func.SafeGetStringFromObj(Request[″code″]));

//获取科目代码,判断内科还是外科

var OptionList = OptionService.QueryAllAsync(u=>u.SubjectCode==code).OrderBy(u=>Guid.NewGuid()).Take(50);

//随机取50道相应科目下的单选题

return Json(OptionList,JsonRequestBehavior.AllowG-et);

//结果以json格式返回

2) 知识库学习模块设计住院医师在轮转过程中可以通过知识库学习进行知识积累与管理,但面对浩瀚的知识数据,如何进行信息的定位与准确检索变得尤为重要。本系统采用Lucene.NET全文检索开发包,基于盘古分词的词库分词算法,实现培训知识库的快速搜索功能,底层数据库采用MongoDB,可对图片、音频、视频等大文件数据进行存储。多用户查询时,能够高效、快速地返回结果。相比较于传统关系型数据库,不仅提高了检索速度,而且提高了检索的准确度。

3) 轮转排班管理模块设计当培训人数较多时,轮转排班成为培训管理的难点。大量住院医师的轮转排班既要符合个人培训计划,又要满足临床科室的工作安排。该系统通过特定的算法完成学员的自动排班,既减轻人工排班的工作量,减少排班差错,又有利于临床工作的安排[1]。本系统轮转排班模块包括:轮转科室管理、指导医师分配、学员轮转分配和查看轮转排班四个模块。

首先对专业基地下的轮转科室进行设置,完毕后进入指导医师分配模块,对该专业基地下的所有指导老师进行科室分配。接着进行学员轮转分配,该模块包括两步:生成轮转方案和分配学员。在轮转方案生成之前,应先设置该专业轮转开始时间和结束时间并对专业下轮转的科室顺序进行调整,最后保存轮转方案。其中轮转方案生成核心代码如下:

function Generate() {

var RotaryBeginTime = (″#RotaryBeginTime″).val();

//获取轮转开始时间

var RotaryEndTime = (″#RotaryEndTime″).val();

//获取轮转结束时间

var strHtml = ″…″;

//用于拼接html代码

for (var n = 0; n < (″#selectRight option″).length; n++) {

//根据调整好的轮转科室数循环产生tr标签

strHtml += ″″;

for (var j = 0; j < (″#selectRight option″).length; j++) {

//根据调整好的轮转科室数循环产生td标签

var k;

for (var i = 0; i < jsonRes.length; i++) {//jsonRes为专业基地下设置好的轮转科室相关数据

if ((″#selectRight option:eq(″ + j + ″)″).val()== jsonRes[i].DeptCode) {

//调整好顺序的轮转科室与专业基地下设置好的轮转科

//室一致时执行以下代码

k = i;

//根据轮转开始时间、结束时间和jsonRes值对轮转方

//案下相关字段进行计算赋值

}

}

RotaryBeginTime = countNextTime(RotaryBeginTime, jsonRes[k].RealTime);

//计算下一个科室的轮转开始时间

}

strHtml +=″...″;

//拼接html标签,并绑定value值用于保存

}

strHtml += ″…″;

$(″#RotaryScheme″).append(strHtml);

//将拼接好的html标签加载到前端显示

}

4) 日志管理模块设计日志管理模块是一个完整医疗信息系统的重要组成部分,用户每次访问系统将产生海量的日志数据。通过对日志数据进行有效的数据挖掘,将为优化网站结构、发掘用户访问规律提供有用信息。本系统日志管理模块包括系统日志和异常日志两部分,住院医师规范化培训系统实现了基于MongoDB的日志系统,由原来利用传统关系型数据库的日志管理转变成高效、可进一步分析利用的日志管理。

3.4.2系统主要功能介绍

1) 题库管理模块介绍学员进行题库训练或日常考核时,根据需求选择训练科目进行答题。进入答题系统后,系统开始计时,并在规定时间内强制收卷,也可提前交卷。训练过程中,若学员因中途有事可暂停答题。答题结束后,系统自动给出评分和错题解析并生成近10次训练成绩的统计图表,学员也可进行错题打印,以便日后复习。题库训练界面如图8所示。

图8 图库训练界面

2) 知识库学习模块介绍培训知识库模块包括基本检索和高级检索。如用户检索关于“diabetic foot(糖尿病足)”的相关知识时,页面会显示所有关于糖尿病足的知识内容,系统可针对不同主题词查看特定内容。如图9所示。

图9 知识库学习界面

3) 轮转排班管理模块介绍轮转排班管理使得学员排班更加智能化和自动化。系统对特定专业基地下的各个科室轮转时间、是否必轮等进行设置,设置好后管理员即可对专业基地下的指导医师和学员进行分配,实现学员科室轮转安排。轮转科室管理界面如图10所示。

图10 轮转科室管理界面

4) 日志管理模块介绍用户登录系统时会产生大量的系统日志,系统异常出错时,亦会产生异常日志信息。住院医师规范化培训管理系统能够自动收集日志信息,为今后日志分析、大数据研究奠定基础。系统异常日志列表如图11所示。

图11 异常日志列表界面

4 结 语

住院医师规范化培训系统基于.NET平台的ASP.NET MVC5技术实现,采用面向接口多层架构设计,并运用依赖注入进行各层间的解耦,提高开发效率,系统升级与维护更加容易。在住院医师规范化培训系统中,针对数据量大、数据结构复杂、需高并发读写的模块,采用流行的NoSQL数据库MongoDB进行开发与实现。如知识库学习和日志管理模块,以便满足将来数据挖掘和大数据分析的需要。在国家和省级住培系统基础上,除了实现基本功能外,拓展新增题库管理和轮转排班管理模块,学员可随时进行题库训练,指导医师可随时进行日常考核。在轮转排班上,本系统解放了传统的手工排班,运用成熟的轮转排班算法实现对学员轮转管理。在编程模型上,采用C#最新语法async/await进行异步编程,提高系统响应速度和执行速度。

住院医师规范化培训系统的应用是医院信息化发展的必然趋势,目标是通过对系统的使用,提高住院医师培训质量和医院管理效率,从而将住院医师整体培训认证工作达到科学、高效、规范的效果。

[1] 黄虑,周颖杰,邵强,等.住院医师规范化培训信息管理平台建设[J].现代医院管理,2016,14(5):79-82.

[2] 汪鹏,吴昊,罗阳,等.医疗大数据应用需求分析与平台建设构想[J].中国医院管理,2015,35(6):40-42.

[3] Dimitrov D V.Medical Internet of Things and Big Data in Healthcare[J].Healthcare Informatics Research,2016,22(3):156.

[4] 钟麟,员建厦.一种基于MongoDB的大数据管理架构[J].计算机与网络,2016,42(5):62-64.

[5] Wang X,Chen H,Wang Z.Research on Improvement of Dynamic Load Balancing in MongoDB[C]//IEEE,International Conference on Dependable,Autonomic and Secure Computing.IEEE Computer Society,2013:124-130.

[6] 孟群,邢昊,李岳峰.国家住院医师规范化培训管理信息系统设计与实施[J].中国卫生信息管理杂志,2015(5):466-472.

[7] 白芙蓉.住院医师培训信息管理系统的设计与实现[D].成都:电子科技大学,2013.

[8] Corbellini A,Mateos C,Zunino A,et al.Persisting big-data:The NoSQL landscape[J].Information Systems,2017,63:1-23.

[9] 贺建峰,宝媛媛,张俊,等.基于B/S模式的医学实验室信息平台(LIS)的设计与实现[J].计算机应用与软件,2016,33(3):83-86.

[10] Guo C,Zhu K,Zongguo M A.The Design of B2B E-commerce System Based on MVC Model and J2EE[J].Management Science & Engineering,2010,4(4):113.

[11] 申德荣,于戈,王习特,等.支持大数据管理的NoSQL系统研究综述[J].软件学报,2013(8):1786-1803.

[12] 杨静,华颂文,赵丽萍.基于JavaEE伤口门诊患者信息采集系统的设计与实现[J].计算机应用与软件,2017,34(2):142-146.

[13] Lü Q,Xie W.A Real-Time Log Analyzer Based on MongoDB[J].Applied Mechanics & Materials,2014,571-572:497-501.

[14] 曾强,缪力,秦拯.面向大数据处理的Hadoop与MongoDB整合技术研究[J].计算机应用与软件,2016,33(2):21-24.

猜你喜欢

住院医师日志科室
消毒供应中心与临床科室建立有效沟通的实践与探讨
论中医住院医师规范化培训中的六个关系
BOPPPS教学模式在全科住院医师神经内科临床教学中的应用
麻醉科住院医师在疼痛科轮转期间临床教学实践与探索
美国住院医师招收匹配计划简介与借鉴
科室层级护理质量控制网的实施与探讨
一名老党员的工作日志
扶贫日志
爱紧张的猫大夫
新医改形势下的科室文化建设