一个二维码、一部手机,贯穿数据传输、问卷调查、信息反馈全过程。由温州医科大学附属眼视光医院牵头研发的近视防控大数据平台已收录全市域、110万名中小学生连续3次视力和屈光筛查数据。通过大数据分析,平台向24万近视发生高风险孩子家长发出预警提示,提供解决方案。借助大数据和信息技术,温州市探索出一套行之有效的近视防控模式。
建立视觉健康档案
“刚复学,我们就联合教育局制订印发温州市《深入推进明眸皓齿工程近视综合防控实施方案》,启动第四次110万中小学生近视普查。同时,实施教室灯光、桌椅改造,研制学业减负、运动、营养、科普和环境近视防控综合解决方案,并向3岁~6岁儿童试点推广。此外,还开展近视防控科普宣传。”温州医科大学眼视光医学部主任瞿佳最近忙得不行。
明眸皓齿工程是温州市委市政府确定的2019年、2020年为民办实事项目,开展中小学生近视防控的同时,实施预防龋齿窝沟封闭,保护孩子们的眼健康和口腔健康。2018年年底,温州市委市政府在温州医科大学附属眼视光医院设立了温州市儿童青少年近视防控工作指导中心,为该项工程落实提供专业技术指导。
“这一年多,温医大眼视光医院指导近视防控科技企业,共同设计搭建了儿童青少年近视防控大数据平台。与温州市教育局携手,于2019年6月、9月、12月开展了3次筛查,获得了全市中小学生视力和屈光数据,建立了眼健康档案,并支持长期随访。”瞿佳说,筛查内容包括近视率、视力不良率等。针对高度近视学生,进一步指导检测眼轴、眼位、眼前节,以及眼底检查、父母屈光状态调查等,随后开展高度近视干预。
过去的视力普查都是手工填写表格,易出错,一箱箱的纸质表格很难统计,更难及时将检查结果告知孩子和家长。现在,依托大数据平台,学生的姓名、学号、身份证号自动获取,连同对数视力和电脑验光检测结果上传至平台。家长扫一下二维码或登录“中国近视防控”公众号,就能知道孩子的眼健康情况。对于有近视风险的孩子,平台会提示家长采取干预办法,或建议到专业医院进行验光矫正。此台,平台会推送近视防控科普知识。
明眸皓齿工程在2020年年初的全市群众评议中满意度位列14项民生工程第一名。数据显示,温州市中小学生总体近视率下降1.45个百分点,高于国家倡导的“每年降低0.5~1个百分点”的防控目标。普查还发现,中小学生近视未矫正率和欠矫正率比6月初筛时分别下降2.9和2.5个百分点,高于近视增长幅度。
“两三分钟就可以查一个学生,1000人的学校一到两套设备,两到四名经过基本培训的保健老师几天就可以查完。温州市第一轮110万中小学生筛查花了一个半月,第二轮一个月,第三轮不到20天就基本完成了。即使一年查4次,每名学生也仅需财政支付10元~12元。因此,‘温州模式’是可复制、可推广的。”瞿佳说。
政府主导教医协同
通过平台数据的分析,瞿佳团队发现了一些现象。“比如,关于近视率,城市学校显著高于农村学校,武术学校、体育学校、职高显著低于常规学校,重点学校显著高于非重点学校,女生明显高于男生。特别是,我们发现,高度近视的现象比较严重,600度以上的孩子在一些重点高中里几乎达到20%,这是要警惕的。因为高度近视会引发很多并发症,未来致盲的风险也会成倍提高,必须重视。”瞿佳强调。
“我们还发现,入学时间不同会对同龄儿童的近视率带来显著差异。比如同一年出生的孩子,9月和8月出生的孩子相比,近视率低7%~8%左右。这提示我们,有必要研究探讨是否需要开展缩短学制、推迟孩子入学年龄的教育改革,给孩子健康成长留足空间。”瞿佳建议。
青少年近视防控,医院只是一个环节。瞿佳将“温州模式”的关键经验总结为政府、学校、医疗机构、学生、家长“五方协同”。
“政府主导,学校主体,教医协同,家校联动。”瞿佳介绍,温州市政府高度重视儿童青少年近视问题,把近视防控纳入民生大事,市委市政府一把手亲自督导,做好顶层设计,制订实施方案。教育、卫生部门紧密配合,特别是切实做到教医协同。教育部门促进具体工作的落实,学校作为号召老师、家庭配合行动的关键力量,而专业医院提供技术支持,开展教师培训。温州的教医协同成效显著,首批已培训4176名校医和普通教师,支持温州各中小学校开展专家讲座50余场,为各地300余名医务工作者开展近视防控专题培训。
引领创新转化新动能
有了信息化支撑,与传统筛查模式相比,明眸皓齿工程的筛查人员减少一半,效率提升一倍,设备成本下降3/4,而这些都源于临床科研创新。
“当初设计数据平台,需要协同各方,难度很大。我们与一些高新技术企业合作,加快科技成果转化。依托医院的国家重点实验室、国家工程技术研究中心、国家临床医学研究中心三大国家平台,有力地推进了医工结合。未来我们期待借助人工智能等新技术,把普查变成自查,让校园‘眼健康小屋’成为时尚。”瞿佳说。
在瞿佳看来,医疗、教学和科研是相互促进的关系。坚持医教研一体化发展,有助于真正促进医疗卫生事业整体水平的提升。“没有高质量的临床医疗的支撑,就无法开展高质量的医学生实习、医师住培专培和继续医学教育,也不可能开展高水平的科学研究。反过来,教学和科研会让医生更加深入地思考,不仅知其然,更要知其所以然,探索疾病的本质,研究处理疾病的手段和方法。这对医生来说也是激励和压力。当然,医学研究的本质还是要解决健康和临床问题,据此开展基础研究、临床研究、工程转化和人才培养。我们需要约30万名眼科和眼视光学医师,确实要加快高水平眼科眼视光医师的培养步伐。”
此外,瞿佳介绍,温州机场附近正在建设中国“眼谷”眼视光科创城,6月底将正式运营。“接下来的两三年,要建成占地近1000亩的眼视光科技创新集群,引进更多眼健康领域高新企业、研发机构,构建覆盖近视防控、健康照明、眼科材料、眼健康食品药品、医疗器械研发生产等全链条产业集群,发展人工视网膜、干细胞基因治疗等眼科前沿技术,把细分领域做到极致,以眼视光产业发展带动眼健康。”
''标签解析异常!
Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应。
在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
在 System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
在 System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync()
在 System.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket()
在 System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer()
在 System.Data.SqlClient.TdsParserStateObject.TryReadByteArray(Byte[] buff, Int32 offset, Int32 len, Int32& totalRead)
在 System.Data.SqlClient.TdsParserStateObject.TryReadString(Int32 length, String& value)
在 System.Data.SqlClient.TdsParser.TryReadSqlStringValue(SqlBuffer value, Byte type, Int32 length, Encoding encoding, Boolean isPlp, TdsParserStateObject stateObj)
在 System.Data.SqlClient.TdsParser.TryReadSqlValue(SqlBuffer value, SqlMetaDataPriv md, Int32 length, TdsParserStateObject stateObj)
在 System.Data.SqlClient.SqlDataReader.TryReadColumnInternal(Int32 i, Boolean readHeaderOnly)
在 System.Data.SqlClient.SqlDataReader.TryReadColumn(Int32 i, Boolean setTimeout, Boolean allowPartiallyReadColumn)
在 System.Data.SqlClient.SqlDataReader.GetValues(Object[] values)
在 System.Data.ProviderBase.DataReaderContainer.CommonLanguageSubsetDataReader.GetValues(Object[] values)
在 System.Data.ProviderBase.SchemaMapping.LoadDataRow()
在 System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping)
在 System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
在 System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
在 Whir.Repository.Database.Query(String sql, Object[] args)
在 Whir.Label.Dynamic.Content.GetColumnFileValue()
在 Whir.Label.Dynamic.Content.Render(HtmlTextWriter output)
''标签解析异常!
Timeout 时间已到。在操作完成之前超时时间已过或服务器未响应。
在 System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action`1 wrapCloseInAction)
在 System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj, Boolean callerHasConnectionLock, Boolean asyncClose)
在 System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)
在 System.Data.SqlClient.TdsParserStateObject.ReadSniSyncOverAsync()
在 System.Data.SqlClient.TdsParserStateObject.TryReadNetworkPacket()
在 System.Data.SqlClient.TdsParserStateObject.TryPrepareBuffer()
在 System.Data.SqlClient.TdsParserStateObject.TryReadByteArray(Byte[] buff, Int32 offset, Int32 len, Int32& totalRead)
在 System.Data.SqlClient.TdsParserStateObject.TryReadString(Int32 length, String& value)
在 System.Data.SqlClient.TdsParser.TryReadSqlStringValue(SqlBuffer value, Byte type, Int32 length, Encoding encoding, Boolean isPlp, TdsParserStateObject stateObj)
在 System.Data.SqlClient.TdsParser.TryReadSqlValue(SqlBuffer value, SqlMetaDataPriv md, Int32 length, TdsParserStateObject stateObj)
在 System.Data.SqlClient.SqlDataReader.TryReadColumnInternal(Int32 i, Boolean readHeaderOnly)
在 System.Data.SqlClient.SqlDataReader.TryReadColumn(Int32 i, Boolean setTimeout, Boolean allowPartiallyReadColumn)
在 System.Data.SqlClient.SqlDataReader.GetValues(Object[] values)
在 System.Data.ProviderBase.DataReaderContainer.CommonLanguageSubsetDataReader.GetValues(Object[] values)
在 System.Data.ProviderBase.SchemaMapping.LoadDataRow()
在 System.Data.Common.DataAdapter.FillLoadDataRow(SchemaMapping mapping)
在 System.Data.Common.DataAdapter.FillFromReader(DataSet dataset, DataTable datatable, String srcTable, DataReaderContainer dataReader, Int32 startRecord, Int32 maxRecords, DataColumn parentChapterColumn, Object parentChapterValue)
在 System.Data.Common.DataAdapter.Fill(DataSet dataSet, String srcTable, IDataReader dataReader, Int32 startRecord, Int32 maxRecords)
在 System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
在 System.Data.Common.DbDataAdapter.Fill(DataSet dataSet)
在 Whir.Repository.Database.Query(String sql, Object[] args)
在 Whir.Label.Dynamic.Content.GetColumnFileValue()
在 Whir.Label.Dynamic.Content.Render(HtmlTextWriter output)