智慧医院不良事件精细化管理平台——微信小程序总结
到目前为止,微信小程序开发,到此就算是结束了,其中实现了不少功能,如下:
1.1 角色与权限(后端同学实现的,写这个方便介绍后面的功能)
平台可以配置不同的用户角色并授予其不同的操作权限。每个用户在使用平台时都需要指定一个角色。
1.2 可视范围——根据角色绑定的权限菜单
全体职工可以查看自己上报的事件(待审核、已通过、被驳回)。
质控人员可以查看所有的事件(待审核、待评价、已通过、已驳回、已评价)。
职能人员可以查看自己/自己部门负责的事件(待整改、待评价、已评价)。
各科室医务人员可以查看本科室相关的事件(待整改、待评价、已评价)。
质控人员/院领导可以查看全院统计分析 。
职能人员可以查看自己/自己部门的统计分析 。
各科室医务人员可以查看本科室的统计分析 。
1.3 消息提醒——微信公众号模板消息提醒
当用户上报事件或驳回事件或派发事件或完成事件整改后,平台会通过微信公众号消息模板推送的方式提醒相关用户有事件需处理。
由于主要代码部分需要后端同学来实现,笔者在这个功能上只做了一个身份绑定和解绑的功能页面 (只有关注了公众号并且做了身份绑定,才能接收到消息提醒,所以需要一个身份绑定和解绑的视图。) ,类似于登录界面,因此笔者在前文并没有介绍。
1.4 登录与退出
用户需要使用用户名与密码登录平台后方可使用平台。平台主动记录登录用户的双token信息,但不主动记录登录密码。
用户可以主动退出登录。对于没有主动退出登录,超过超时时限又没有操作的,平台自动将其退出登录——即refreshToken过期的用户。
1.5 编写事件报告
医院所有职工在登录平台后都可以编写并提交事件报告,可以选择实名提交,也可以选择匿名提交。对于匿名提交的事件报告,无法追查提交人信息。
不良事件报告表包含的字段与报表格式由医院定制。
对于患者信息,平台通HIS接口实时获取,自动填表。
对于实名上报,平台自动根据用户登录信息填写上报人信息,不可更改。
平台提供两套提前定义好的典型事件报告表并明确必选字段。
在事件报告表编辑界面,提供暂存功能,用户在完成事件编辑前可以暂存已经填写的内容,再次登录时平台自动将最近一次暂存的内容显示在报告表中。对于用户没有主动暂存的内容,在退出登录后将不予保存。
上报内容支持文字、文档(pdf、ppt、word等)、图片。支持文档预览和图片预览。
在完成报告表编写后,用户可以提交报告表。
1.6 派发/驳回事件
事件报告发送到质控人员后,所有的质控人员都会收到微信公众号的提醒消息,登录平台后会看到所有已经完成提交的事件,无论其当前状态如何。对于已经由质控人员处理过的事件,会显示处理时间。
质控人员收到事件报告后,平台提供派发方向选项供质控人员选择,可多勾选,多选后事件报告表同时转发给多个部门。
质控人员收到事件报告后,可以将不合适的事件驳回。
1.7 待整改事件内容提交
对于质控人员审核通过的事件,所有涉事科室人员或职能人员会收到提醒消息,在登录平台后会看到所有事件列表。对于已经处理的事件,会显示处理时间。
针对不良事件,需要负责科室人员和职能人员需要填写整改内容,并提交。
1.8 关闭事件(待评价事件)
在一个事件相关的所有整改计划整体通过确认后,会提醒质控人员,关闭整个事件——对事件进行点评。
1.9 查看统计
平台能对不良事件做不同维度的统计分析,并以简明图表、图形的形式展示。
不同类别的人员登录时可以看到的统计信息是不同的,一般原则是各科室人员能够看自己科室的统计数据,质控人员和医院管理层可以看所有统计信息。
1.10 修改密码
平台提供修改密码功能,用户可以根据需要,自主去修改用户在平台中的密码。
通过这次的项目实训,笔者收获颇多。
首先是笔者持续学习能力的提升。
笔者从不会看官方文档到对文档运用得纯火炉青的蜕变,从只专注于理论知识到兼顾理论与实践共发展的转变,从对问题和问题解决思路的泛泛而谈到详细地阐述问题关键所在的思维逐步缜密过程。IT行业技术更新迭代是十分迅速的,只有通过不断学习才能在这个行业内立足,而持续学习的基础则是能看懂新颖而实用的技术,加之转化为自身知识,最终实现创新发展。如果连接收新技术的能力都不没有,又如何将前沿的技术转化为自身的知识,又如何能够紧跟时代步伐,创新发展又从何谈起?不得不说,经过这次项目实训,笔者的能力虽仍达不到上述所说的境界,但向这个境界又迈进了一步是客观存在的事实。
其次是笔者沟通能力的提升。
(1)笔者作为开发团队队长,在项目实行的时候,和导师进行沟通以及与队员进行沟通是不可避免的。其中包括明确需求的沟通、明确开发流程的沟通、队员遇到问题时的沟通等等。
(2)笔者作为微信小程序前端开发者,那必然是要与后端开发队员进行密切沟通的,沟通过程堪称“相爱相杀”。。。因为开发前期进行沟通的时候,很多问题都是泛泛而谈(一方觉得他所表达的意思是另一个方能够理解的,然而并不是。。)所以大家听的都是云里雾里,从而不能相互理解前端需要什么或者后端需要什么。以致到后面的细节沟通,大家都能够理解。
(3)笔者作为前端开发进度最快的开发者。负责PC端开发的队员和负责APP开发的队员基本都需要与笔者进行沟通——需要实现哪些视图、这些视图具体展示逻辑、以及相应的实现逻辑等等。当然了,有笔者实现的视图以及相应逻辑作为参考,另两位负责前端队员开发起来能够轻松许多。
最后是笔者技术方面的提升。
一个偏后端而前端基础薄弱的开发人员,能够独立完整的开发前端项目,其中的艰辛是不言而喻的。更何况笔者开发的还是从未接触过的领域——微信小程序开发。虽然前端开发都有异曲同工之处,但不得不说第一次接触新玩意,这其中的压力是十分巨大的。正如笔者以前所说——借项目实训之手,圆全栈开发之梦。因为一个站在时代前沿的人,必然是具备全面发展的能力的。
(1)前端开发能力的提升。笔者历经Promise的认知、Vue的学习以及Uni-App的使用,其中观看相关视频、查阅相关资料的历经简直不堪回首——真真真的痛苦!!!因为啥啥都不会。再到现在完整开发出整个前端项目,其中学会了大大小小的新知识和新技术。甚至于笔者能够对前端代码进行重构,这次项目实训中的一次重构经历是笔者经过过最美妙的一次经历——因为这一次重构,笔者相当于重新梳理了以前所学习和使用的知识,对一些知识加深了印象。
(2)debug能力和测试能力的提升。对于项目的测试以及部署的经历,其中测试是最令人头疼的,一旦测试出现bug,小的bug还好,大的bug简直令人奔溃,经过项目实训的洗礼,笔者的debug的能力和测试能力简直是大幅度的提升。
经过这次项目实训,团队中四个人各尽其职,完美配合,才把项目落实到位。首先导师的指导是功不可没的,导师在团队存在问题的时候,能够及时指出问题,并解决问题,让团队少走了很多歪路。其次团队的协作能力是分不开的,我们四个人互相沟通,互相发现问题,解决问题,前后端交互,成功的完成一个又一个功能。从PC端、小程序和app向服务器发起请求上传数据,到获取服务器返回的数据,每一个环节都牵动团队每一位成员,良好的团队协作是成功的基础。
经历了本次项目实训,笔者感觉真的成长了许多,不仅很多能力有所提升,还学习了许多知识。这个过程让笔者学习到了很多课本上学不到的知识,亲身实践过才明白其中的道理。
一年的时间里真的能够改变一个人很多东西。去年暑假里的数据库课程设计,笔者才刚刚学会用JavaWeb去开发项目,才刚开始学会使用数据库,才刚开始第一次自己做项目,才刚开始……——那个暑假可以说是笔者正式推开软件工程这个世界的大门也不为过。再到如今,笔者已然多技傍身——从JavaWeb、Spring SpringMVC Mybatis、SpringBoot、SpringCloud、Redis、Vue、Uni-App、微信小程序开发、微信公众号开发等等。这些种种,放在一年前,笔者是闻所未闻的,更何况掌握使用了,如若在一年前有人跟笔者说:“你一年后在软件工程领域必有很大提升。” 笔者只会嗤之以鼻——我自己的情况,我自己还不了解吗?事实证明,笔者以前的想法是错误的,感谢这一年以来没有自暴自弃的自己。
笔者很喜欢这一句话,也正是因为这一句话推动着笔者咬紧牙关奋力前行。现笔者做下分享:“偷偷努力的感觉很好,在自己还不够好的时候不声张不埋怨,自己一个人一点点的去改变,等你告别了以前的自己的时候,你就可以对自己说:‘ 呼,太棒了终于熬过来了。’ 心情放晴,生活变得亮晶晶的,再见了!从前的自己。” 当说出“再见了!从前的自己”的那一刻,笔者认为任何人心里都是自豪的,因为自己的努力终有所交代!
本次项目实训的博客更新到此就告一段落了。而新的征程早已来临——考研。笔者目前还不够好,仍需要一点点的去改变。





我需要检查DateTime是否采用有效的ISO8601格式。喜欢:#iso8601?我检查了ruby是否有特定方法,但没有找到。目前我正在使用date.iso8601==date来检查这个。有什么好的方法吗?编辑解释我的环境,并改变问题的范围。因此,我的项目将使用jsapiFullCalendar,这就是我需要iso8601字符串格式的原因。我想知道更好或正确的方法是什么,以正确的格式将日期保存在数据库中,或者让ActiveRecord完成它们的工作并在我需要时间信息时对其进行操作。 最佳答案 我不太明白你的问题。我假设您想检查
这个问题在这里已经有了答案:Railsformattingdate(4个答案)关闭4年前。我想格式化Time.Now函数以显示YYYY-MM-DDHH:MM:SS而不是:“2018-03-0909:47:19+0000”该函数需要放在时间中.现在功能。require‘roo’require‘roo-xls’require‘byebug’file_name=ARGV.first||“Template.xlsx”excel_file=Roo::Spreadsheet.open(“./#{file_name}“,extension::xlsx)xml=Nokogiri::XML::Build
我正在尝试解析一个CSV文件并使用SQL命令自动为其创建一个表。CSV中的第一行给出了列标题。但我需要推断每个列的类型。Ruby中是否有任何函数可以找到每个字段中内容的类型。例如,CSV行:"12012","Test","1233.22","12:21:22","10/10/2009"应该产生像这样的类型['integer','string','float','time','date']谢谢! 最佳答案 require'time'defto_something(str)if(num=Integer(str)rescueFloat(s
SPI接收数据左移一位问题目录SPI接收数据左移一位问题一、问题描述二、问题分析三、探究原理四、经验总结最近在工作在学习调试SPI的过程中遇到一个问题——接收数据整体向左移了一位(1bit)。SPI数据收发是数据交换,因此接收数据时从第二个字节开始才是有效数据,也就是数据整体向右移一个字节(1byte)。请教前辈之后也没有得到解决,通过在网上查阅前人经验终于解决问题,所以写一个避坑经验总结。实际背景:MCU与一款芯片使用spi通信,MCU作为主机,芯片作为从机。这款芯片采用的是它规定的六线SPI,多了两根线:RDY和INT,这样从机就可以主动请求主机给主机发送数据了。一、问题描述根据从机芯片手
我正在尝试查询我的Rails数据库(Postgres)中的购买表,我想查询时间范围。例如,我想知道在所有日期的下午2点到3点之间进行了多少次购买。此表中有一个created_at列,但我不知道如何在不搜索特定日期的情况下完成此操作。我试过:Purchases.where("created_atBETWEEN?and?",Time.now-1.hour,Time.now)但这最终只会搜索今天与那些时间的日期。 最佳答案 您需要使用PostgreSQL'sdate_part/extractfunction从created_at中提取小时
因为我现在正在做一些时间测量,我想知道是否可以在不使用Benchmark类或命令行实用程序time的情况下测量用户时间或系统时间。使用Time类只显示挂钟时间,而不显示系统和用户时间,但是我正在寻找具有相同灵active的解决方案,例如time=TimeUtility.now#somecodeuser,system,real=TimeUtility.now-time原因是我有点不喜欢Benchmark,因为它不能只返回数字(编辑:我错了-它可以。请参阅下面的答案。)。当然,我可以解析输出,但感觉不对。*NIX系统的time实用程序也应该可以解决我的问题,但我想知道是否已经在Ruby中实
我有以下内容:text.gsub(/(lower)(upper)/,'\1\2')我可以将\2替换为大写吗?类似于:sed-e's/\(abc\)/\U\1/'这在Ruby中可行吗? 最佳答案 查看gsub文档:str.gsub(模式){|匹配|block}→new_str在block形式中,当前匹配字符串作为参数传入,$1、$2、$`、$&、$'等变量将被适当设置。block返回的值将替换为每次调用的匹配项。"alowerupperb".gsub(/(lower)(upper)/){|s|$1+""+$2.upcase}
在Ruby中,以毫秒为单位获取自纪元(1970)以来的当前系统时间的正确方法是什么?我试过了Time.now.to_i,好像不是我想要的结果。我需要结果显示毫秒并且使用long类型,而不是float或double。 最佳答案 (Time.now.to_f*1000).to_iTime.now.to_f显示包含十进制数字的时间。要获得毫秒数,只需将时间乘以1000。 关于ruby-以毫秒为单位获取当前系统时间,我们在StackOverflow上找到一个类似的问题:
我想知道我应该如何着手这个项目。我需要每周向人们发送一次电子邮件。但是,这必须在每周的特定时间自动生成并发送。编码有多难?我需要知道是否有任何书籍可以提供帮助,或者你们中的任何人是否可以指导我。它必须使用rubyonrails进行编程。因此有一个网络服务和数据库集成。干杯 最佳答案 为什么这么复杂?您只需安排工作。您可以使用Delayed::Job例如。Delayed::Job让您可以使用run_at符号在特定时间安排作业,如下所示:Delayed::Job.enqueue(SendEmailJob.new(...),:run_
我在ruby1.9.3p0上运行rails3.2.1和rspec2.8.1,在运行我的测试时它显示负时间值。这很烦人,因为我正在尝试优化我的测试。Running:spec/models/transaction_spec.rb................................................Finishedin-7603162.49414seconds我已经尝试将rspec更新到2.9.0,但这没有帮助。 最佳答案 你在使用timecopgem吗?确保在卡住后Timecop.return。或者你在某处