标准化问诊训练软件“雅问”的探索
2020-12-17谭游海靳兆恒申鹏程
谭游海,靳兆恒,张 瑞*,王 靖,申鹏程
(1.中南大学湘雅三医院 肝胆胰外科,湖南 长沙 410013;2.中南大学 湘雅医学院, 湖南 长沙 410013;3.中南大学 生命科学学院,湖南 长沙 410013)
问诊是医师通过对患者或相关人员的系统询问获取病史资料,经过分析综合而做出临床判断的一种诊法,是临床诊断学的基本组成部分[1]。能否获得一个完整准确的病史,对于医生能否避免漏诊并做出正确诊断都起着决定性的作用。实际上,有很多疾病通过详尽的问诊,就已经可以基本确定诊断[2]。然而,不管在考试还是实际工作中,医学生和低级医生甚至一些基层的高年资医生整体的问诊水平都不尽如人意。其中,问诊学习时间严重不足[3]、问诊实践空间狭窄[4]和有效的问诊训练手段匮乏为主要的3个原因。为丰富问诊训练手段,有些院校鼓励学生在业余时间观看问诊视频及自行训
练作为弥补,但因缺乏监督和针对性的指导和循序渐进的训练,学生无所适从甚至干脆放弃训练,达不到应有的效果[5-6]。一些院校培训了标准化病人(standard patient, SP)来协助教学,但是合格的SP同样非常稀缺且费用高昂,无法广泛开展[7-8]。为此利用信息技术开发出一套能模拟问诊的软件,建立起可供积累、扩充、修订的“标准病例库”,对于缓解临床医疗实际情景与教学计划需要之间的客观矛盾和实际困难是非常有现实意义的[9]。
1 软件开发需求调查
为了明确医学生在问诊过程中的重难点、易错易漏点以及对于问诊软件具体需求,本团队首先通过电子问卷的形式,对医学院临床专业的学生开展了关于问诊的调查。由于电子问卷采取了匿名、线上的形式,可以很好的排除其他因素的干扰,因此在一定程度上能够反映用户当前阶段的真实需求。在41份有效问卷中,大二占比30%,大三占比27%,大四占比30%,五年及以上占比13%。调查数据显示,在学习过程中最容易遗忘或混淆的前3名是主要症状特点、病因与诱因和伴随症状。这与教学实践是一致的,因此在设计病例资料时,对这些项目需要赋予更多的权重。而且75%的同学认为使用软件有很大程度或者一定的帮助,还有22%的同学愿意尝试使用软件提升问诊技能(表1,图1)。
表1 问诊过程中难点调查结果Table 1 Results of survey of difficulty in inquiry
图1 使用问诊软件的意愿Fig 1 Willingness to use inquiry training software
2 软件开发思路
由于绝大多数问诊都是围绕主要症状,并按照现病史、既往史、个人史、婚育史和家族史的病史框架和采集顺序完成的,整个问诊的内容和过程是可以在大量病例基础上加以分类提炼,从而形成标准化模板,这为问诊软件的实现提供了一定的理论依据。本软件以选择题+“一问一答”的设计思路进行研发,因为选择题的形式可以使开发人员明确问诊的顺序逻辑,而限制性的选择形式可以让刚接触问诊的医学生避免思维过于发散而忽略重点,使其更专注于问诊的全面与逻辑顺序的正确。
3 软件简介
通过Microsoft Visual Studio 2017开发的以选择一般项目包括姓名、性别、年龄等,一般情况包括体重、大小便、精神状态等.
题形式进行训练的软件具有以下的几个模块:数据模块、选择模块、评价模块,图2将详细说明使用步骤,图3和图4分别为问诊对话和评价界面。
图2 软件使用流程图Fig 2 Flow chart of software
图3 问诊对话界面Fig 3 Window of inquiry dialog
图4 评价界面Fig 4 Window of evaluation
3.1 数据模块
数据模块以文件的形式存储着问诊问题与对应的回复,问诊问题与对应的回复由人工处理而得。从真实的病例中可以提取出来症状,病史等各种有用数据,利用医生或医学生的专业知识,将这些数据组合成一系列的患者回复,然后反推出医生的问诊问题,再根据问诊的规则,对这些问诊问题及其回复加以筛选和附加顺序则得到了一个符合规范的问诊案例。将这些案例通过一个由Python写的文本处理脚本,则案例文本实现了一定的结构化后将其存储到对应的存储数据文件中。数据模块中拥有一定的接口方便其他的模块调用数据。
3.2 选择模块
选择模块是该软件的核心,该模块中蕴含着主要的逻辑算法。选择模块根据使用者想训练的类型将数据模块中存储的数据调用出来,其中的算法利用调取的数据为每次选择提供4个选项并判定每次选择是否错误。每次选择后都会给予一个对应的回复。软件中有两种使用模式,分别为Training和Test,其中Test模式的逻辑算法较为复杂,为了使该逻辑算法具有一定的数理依据,本团队建立了一个数学模型来表示其中的算法。
建立二维数组Qij,其中i∈(1,n),j∈(1,m)。存储不同层次的问题。
对于分数,设总分为FTotal,对于n个层次,具有n种不同分数权重w,并且FTotal表达式为:
另设随机项p1、p2、p3、q1、q2、q3。且有:
n≥p1,p2,p3≥i
m≥q1,q2,q3≥j
则对于每轮的选项集合A有:
A={QijQp1q1,Qp2q2,Qp3q3}
每次选择,选手分数Fi有:
Fi+1=Fi+wi
每次选择,选择后的Qij即从数组中移除。
选择后,进行判断,如果该选择所在的层次前,具有问题,即说明该选择错误。即存在:
Qi0j0∉Ø
此时下一轮的集合A变为:
A={Qij,Qp1q1,Qp2q2,Qi0j0}
并且:
Fi+1=Fi=wj
选择Qi0j0,则Qi0j0=Qij。若不选择Qi0j0,则移除所有Qi0j0。
对于该数学模型,在软件中的逻辑表示为,所有的问诊问题有一个隐含的顺序,问诊问题根据主诉、现病史、既往史等分为几个大类,同一类中的问题不存在顺序,不同类的问题遵循着一定的顺序,若对后面的类问题提前进行了选择则判定为错误。判定为错误后在后面的选择中提供一次纠正顺序的机会,若纠正回来则继续按照正确的顺序进行选择,若没有进行纠正则按照错误的顺序进行下去。Test模式中,每一个被选择过的问题不会再出现在备选项中,即意味着问诊问题一旦被选过则使用者不能二次进行选择该问题。同样的Test模式下,错误不会被提示,只有在选择了排在最后的选项时也即问诊选择结束后才会给予一定的反馈。而在Training模式下,每次错误都会被立即提醒,选择错误的选项在以后仍然可以进行选择。两种模式互相补充,Training实时给予使用者反馈模拟老师纠正错误,Test则使使用者处于一个独立自主的环境中,与真实问诊情况更加相似。
3.3 评价模块
当选择模块结束运行后则进入到诊断模块,这个模块要求使用者根据前面的问诊给出一定的诊断,随后计算机会反馈一定的结果并给出一定的建议。评价模块的设计思路主要参考国家执业医师实践技能考试和湖南省住院医师规范化培训结业考试的评分标准,由参与多年考试的考官们对不同病例的每个问诊问题根据其重要性赋以不同的分值(总分为90分),再将答题时的顺序错误规定不同的分值(总分为10分)。这样,使用者的最终得分由整个问诊过程的完成度和逻辑性两个方面决定。
4 总结
综上所述,本团队研发的这款问诊软件,是一款面向于广大医学生和医学教育人员,基于真实病例资料,采用视频和文字交互形式的问诊软件,在提供医学教育服务类软件方面,填补了国内空白。软件研发初期,医学院进行了广泛调查,选择了需求更高的软件训练方式和诊断结果反馈方式,并根据重要性对不同的问诊内容赋予了差异性的权值,以得到合适的测试或训练分数。然而目前本软件的评价体系还处在较简单的水平,而且所涵盖的病例数量偏少,接下来将建立一个专门的数据库来适应这种非结构化的数据。另外如何将“雅问”软件结合互联网实现互联网+教育模式也是接下来重点考虑的一个方面,希望能在未来实现深层次的医学问诊教育模式改革。