面试-专业问题

Posted by TimerIzaya on May 4, 2024

自我介绍

各位考官大家好,我是面试信息科的考生,下面先介绍一下我的基本情况,我今年26岁,本科专业为软件工程,硕士专业为计算机技术,在研究生期间研究方向为自监督学习与强化学习,也就是现在流行的大模型,曾发表论文与专利若干。

从研究生一年级起,我就在导师创办的公司进行实习,主要工作为带队完成教育类应用的软件开发与教育类AI模型的开发。

同时,在科研时间外,还参与了阿里巴巴和中国计算机学会举办的很多数据库和大数据性能优化竞赛,获得了比较可观的成绩。

研究生三年级至今,我在网易杭州研究院实习并成功转正,主要负责低代码产品的存储与多人协作模块,同时在团队内部进行有关数据库存储引擎的技术分享,我的工作收到领导和团队的广泛认可,也得到了两级晋升的奖励。

如果能够入职,我希望能够为医疗系统的信息化做出自己的一份贡献,感谢各位考官的聆听。

数据可用性(通用废话)(1min30s)

数据库的高可用最核心体现在两个方面,容灾和备份。

容灾主要表现在分布式的机房的某一个节点受到损坏,整个系统能否可用。

备份主要表现在,主节点写入的数据能及时同步到其余节点,能否保证数据不被丢失。

从硬件层面来说,必须采用分布式机房,防止单点故障,才能一定程度保证数据的安全性。

从软件层面来说:

  • 单节点的高可用已经通过数据库的redolog和undolog去保证事务的持久性和原子性了。
  • 多节点的高可用就需要配置和调整主从节点,通过一系列的读策略和写策略,以及选举策略,保证主从节点的一致性,同时通过调整负载均衡策略,保证分布式机器能够均匀流量。

从运维层面来说:

  • 监控:对于同步延迟等异常场景,需要随时监控,运维人员随时接受异常并处理
  • 演练:还需要定期执行故障演练,保证关键时刻主从切换能够稳定实现

HIS医院管理系统概述

HIS作为一个复杂的综合性系统,这可以划分为若干个子系统,例如门诊管理系统、电子病历管理系统、药房管理系统、住院管理系统、人事管理系统等等。

这些子系统也不是完全割裂开的,之间需要有数据共享,例如门诊系统和收费系统,药房系统和门诊系统之间,都需要有一定的业务关联,整体服务呈网状关系。

HIS系统属于民生基建类系统,容错度很低,要求稳定性很高,所以在整体服务高可用的情况下,需要有一套完善的备份和恢复机制,以及故障演练机制,来应对随时突发的问题,例如机房损坏、地震火灾等自然灾害,保证数据的同步,能随时找回。

最后,HIS系统的数据安全性要求很高,因为存储的都是医疗相关的敏感信息,需要有完善的权限管理机制,保证数据不被泄露,同时对于所有的操作要有相应的安全审计功能。

HIS的不足和期望

传统HIS的不足:

  1. 系统的碎片化

    早期系统不完善,引入了大量第三方软件,比如EMR、EHR等等,本来应该紧耦合的系统逐渐变得松耦合,限制了很多横向功能的发展,比如要对患者数据脱敏,由于系统过于松散,要进行很多无谓的人力物力逐个增加脱敏功能。同时系统的碎片化还会导致数据在各个模块之间存储过于冗余,不一致性风险较大。

  2. 系统抽象能力不足

    一些业务子系统独立开发,由于开发者早期对业务不够熟悉,导致相似模块的复用性不高,简单说就是冗余开发。例如住院医生站和门诊医生站都有患者管理模块,诊断信息管理功能,如果不能复用这些细粒度的子模块,那么会造成很大的资源浪费和不一致风险。

  3. 缺乏完整的数据中心

    早期的HIS数据架构以事务处理为中心,缺乏以患者为中心的数据整合,例如门诊医疗记录和住院医疗记录的数据相互独立

  4. 系统可拓展性不足

    随着业务规模的扩大,医院也可能会分为多个院区,HIS系统理论上应该支持横向拓展,但是后端业务强依赖数据库,传统的关系型数据库又比较难去横向拓展。

新一代HIS应该有的特点

  1. 期望体化,EMR相关功能集成到HIS系统,24年医疗信息化会议的趋势……

  2. 数据一体化,要构建以人为中心的数据模型,数据存储能够包容各种结构类型的医疗数据,同时要有定期的冷数据仓库,来进行历史数据归档管理。

  3. 系统开放性。

    1. 各模块之间能够实现接口标准化,方便后续新系统的集成,保证整体一致性。

    2. 考虑到AI大模型的发展,在架构上也要为未来的智能化功能做要预留,例如AI初步就诊,AI药品解释等等。

子系统 - LIS

LIS全称是实验室信息管理系统,严格来说也是HIS的一部分。

例如在门诊系统中,医生觉得病人需要去做个血常规,那么此时就需要走LIS系统。

首先第一步是医生或者助理确认检查项目,每一个项目都有一个traceId作为唯一标识符去追踪流程。

然后等到具体检测的时候,例如抽血,系统会告知护士要抽多少血,同时LIS系统会生成一个血样指标的条形码作为唯一标识。

后续实验室由自动化的血液计数器计算检测结果,然后自动录入系统。

最后,门诊的医生可以直接看到检测结果,方便进一步诊断,这是LIS的一条完整链路。

子系统 - EMR

EMR电子病例的话严格来说也是HIS的一部分。

一般来说传统的病历包含的内容非常多,关键信息例如:个人信息、患者口述症状、手术史、各项检验、诊断、医疗计划、医嘱等等。

EMR最核心的需求一般有,把这些信息集成起来,针对医生和病人,实现自动提醒,电子处方,药品跟踪,自动归档等等功能。

EMR也有着自己的分级标准。

例如三级EMR是部门级别的数据交换、四级EMR是全院信息共享。

4 5 6级分别能提供不同等级的医疗决策支持,例如CT影像AI识别等等。

七级可以实现区域内医疗信息的共享,医疗信息的流通可以大大降低老百姓看病的难度。

子系统 - PACS

PACS是图像归档与传输系统,主要是给CT、核磁共振等医疗设备提供数据采集、存储与传输的综合应用系统。

子系统 - CRM

医患管理系统是众多医院子系统中比较面向用户的信息,主要功能有微信挂号、诊断自查、套餐预定、消息提醒,以及各种强大的诊后服务,比如医患沟通等等。

医保综述

  • 基本医疗保险

    • 职工医保

      • 参保人员
        • 强制参保(打工人)
        • 自愿参保(灵活就业)
      • 筹资:双方缴费制,个人和单位一起缴费,灵活就业人员自己缴纳。一般个人缴费是基数的2%,企业是6%。
      • 账户模式:
        • 单位:一部分进入统筹基金(一般70%),一部分进入个人账户(一般30%)
        • 个人:个人缴纳的费用,加入个人账户
      • 个人账户的使用途径:
        • 门诊缴费
        • 医保定点药店买药
        • 住院费自付部分缴费
      • 待遇
        • 起付标准以下,由个人账户或者个人支付
        • 起付标准以上,最高限额以下,主要走统筹,少部分个人支付
    • 居民医保

      • 新农村合作医保

        主要新在政府补贴出资,保证农民就医的问题。

      • 城镇居民医保

      • 城乡居民医保

        逐步整合农村和城镇,将覆盖范围(覆盖除职工医疗保险以外的所有城乡居民)、筹资政策、保障待遇、医保目录、定点管理、基金管理全部统一

  • 补充医疗保险:职工已经交了基本医保之后,根据自身需求适当增加的保险项目,是一种针对重大疾病的二次保险。

最后要再提一嘴信息化在医保的应用,信息化公开透明xxxxx。

增加医保定点类型的意义

推动医保定点类型增加,有利于提高医疗保障基金的使用效率,增强广大参保人员的权益,也能方便群众就医。

首先,参保的群众可以更方便的看病。群众没必要所有就医的项目都要到某个医院去看,身边就近的血液透析中心、附近的卫生所,都可以用医保看病,给群众带来了很大的便利性。

其次,推动了分级诊疗制度。过去,患者往往要绕开基层的医疗机构,直接到上级医疗机构,这导致上级医疗机构供不应求,基层医疗机构供大于求,浪费了很多医疗资源,定点类型增加后,有利于医疗体系分工明确,更高效的为患者服务。

最后,随着人口老龄化的加深,这些年流行的医养结合模式也非常有价值,开放更多的定点医保机构,可以满足老年人的多样化的养老要求。

当然,更多的医保定点机构也造成的管理上的难度,也要同时推进大数据+医保监管的平台,保证医保基金安全合法合理的使用,管好群众的救命钱。

你的技术能为医疗体系做什么?

我的就读专业是计算机技术,我在软件工程领域主要研究的方向是后端开发,主要技术栈是Java、Springboot、Mongodb、Mysql、K8s等等,同时我对前端技术栈也有一定的了解,例如Vue、Vutify,前后端技术可以实现医院大部分管理系统的开发,例如HIS医院信息系统,EMR电子病历系统,门诊挂号系统,药品管理系统等等。我在AI领域主要研究的是强化学习和自监督学习,两者都属于无监督学习,也就是现在的大模型。通过医疗大数据,例如会诊时候问答的数据,可以训练出就诊机器人,智能客服等模型,提高小病看病效率,以及人工成本的损耗。

门户网站

首先从产品的角度来说,门户网站需要具备的最重要的要素就是集成资源服务,从医院的角度来说,一个医院门户网站必不可少的要有医院背景介绍、在线预约挂号、患者咨询、报告查询、联系方式等等基础模块的资源集成。同时,因为病患涉及人群很广泛,也要保证产品交互步骤、交互流程足够简洁,降低患者的使用门槛。

从软件开发角度来说,门户网站是一个集成多模块的综合性平台,在进行最初的技术架构的时候,要保证模块划分明确,例如住院模块和门诊模块要严格划分开,同时又要约定要通用的接口,保证模块之间的关联性,例如住院模块和就诊模块都需要与财务模块关联。虽然服务是拆分的,但是数据是要集中的,不然冗余的数据可能导致后续很多不一致的地方,增加系统的不稳定性。在开发当前模块的时候也要保证后续新模块的可集成性,做好一定的预留。

从软件维护角度来说,门户网站是一个要求高可用的大型平台,门户网站如果崩溃,会影响到很多病人的就诊。所以要定时做好可观测性的功能,例如数据库主从节点同步的延时这些指标等等,如果发现异常,及时通知运维人员处理。同时也要定期做好故障演练,保证极端场景下,例如地震、火灾,机房受损,但是服务依然可用。

地方病防控措施和作用

个人防控措施:

  1. 主动了解艾滋、乙肝、丙肝的危害,抵制卖淫嫖娼和吸毒等等违法行为,避免和患者接触。
  2. 血液科、男同性恋、有多个性伴侣的人,建议接种乙肝疫苗。
  3. 出现咳嗽、痰中带血症状两周以上的患者,尽早去医院就医。
  4. 老年人、儿童等建议在流感季节之前接种流感疫苗
  5. 带猫狗出门的时候,要带好链子和嘴套,如果被抓伤 咬伤,要尽快注射狂犬疫苗
  6. 接触禽畜之后要洗手,不食用没有卫生检验的肉类。

地方政府措施:

  1. 开展艾滋病宣传防治工作
  2. 落实艾滋病、乙肝、梅毒等等传染病的检测和救助全覆盖。
  3. 全面实施病毒性肝炎的防治措施,控制肝炎、肝癌、肝硬化的上升趋势
  4. 持续开展流感检测和疫情预测,及时发布预警信息。
  5. 开展寄生虫防治工作,加强卫生治理。
  6. 加强宠物狗狂犬疫苗的注射覆盖率

信息科的作用/意义

严格来说,信息科没有直接的经济效益,但是间接的经济效益是一定有的。

从患者的角度来说:

  1. 就诊方便,全面无纸化,所有信息都可以在手机上看到
  2. 收费透明,复杂的医保一目了然
  3. 号源管理,防止号贩子钻空子,造福普通百姓

从医生角度来说:

  1. 使用方便,随手开流程
  2. 对医生行为进行监管,规范医疗过程
  3. 大数据 辅助科研、辅助工作

从医院角度来说:

  1. 药物监管+核算,成本监管+核算,主要起到一个统筹全局的作用,相比传统的管理方式,不必直接与各个科室对接,从系统中就可以看到医院的全景图。

信息科员工要具备的条件

  1. 技术要过硬,对硬件、前端、后端、运维、测试都要有一定的涉猎,这样不管是管理还是协调,都能精准的找到主要矛盾,快速解决问题。

  2. 沟通能力要强。讲话要讲到要点,能最快的知道对方的需求,避免无谓的效率浪费。

  3. 要具备一定的抗压能力。大型系统的运维、上线,很多时候是需要短期高强度的工作的,所以要具备一个良好的心态。

新农合系统的功能和难点

中心管理系统+各个医院的客户端+财务系统

问题一在于数据不够中心化,各个县医院之间的交流,甚至还要管理中心的人专车去线下处理,效率很低。

问题二在于功能不够一体化,也不够规范。系统之间的子模块要保证彼此之间的接口规范性,方便后续子模块集成。系统和系统之间也要保证彼此之间的接口的规范和公开,麻烦接口约束不一致,也可以做一个中间转换,保证数据沟通。

问题三在于管理不够中心化,正常的趋势,应该是县级向市级靠拢,市级往省级靠拢,省级往国级靠拢,最好是统一中心管理,保证子医疗体系彼此通信顺畅,也方便上级管理。

信息科管理的信息资源

硬件

服务器、工作站、路由器等等

软件

his那一套说一下

数据

电子病历等等

网络资源

网络带宽、IP分配资源等等

终端设备

打印机、PC端等等

数据库库基础

数据库基础

索引

索引的作用简单来说就是加速查询,现在流行的数据库索引主要有两类,一类是B+树,一类是LSM树,B+树适配传统的机械硬盘的写入方式,Mysql、Mongodb都是采用的B+树,而LSM树主要适配当前固态硬盘的擦除类型的写入方式,例如现在很有名的国产数据库,蚂蚁集团的OceanBase。

数据库也存在一定的缺点,例如索引随着时间发展,不必避免的会造成一些磁盘碎片,同时在复杂场景,数据库本身的存储引擎层面也可能会走错索引,反而降低了查询速度。

在对数据库进行设计时需要注意哪些方面

先确认需求,后设计方案。

  1. 数据模型设计,是选用关系型模型还是非关系模型,或者两种兼容,管理系统一般采用关系型,缓存或者复杂关系数据可以考虑非关系型数据库,例如mongodb、redis、neo4j等等

  2. 关系型数据库要考虑表设计的时候范式化,简单来说就是保证数据的一致性和避免冗余。

  3. 数据表详细设计的时候也要考虑到约束和规范,例如财务系统的精度、患者管理的性别、年龄等等,都要一定的约束。

  4. 性能优化:索引设计、分库分表等等

  5. 安全性: 用户认证、数据加密等等

  6. 拓展性: 表结构要合理的设计来支持未来的横向拓展

  7. 高可用性:吹!

  8. 注释和文档

数据库优化

索引

查询

架构 分库分表

缓冲区

事务+并发

运维 索引重建等等

通用垃圾问题

准备如何开展岗位工作

加强学习,尽快熟悉业务,适应本职工作需要。

明确职责,充分履行好自己的职责和义务。

对于本中心的工作,有哪些你可预见的困难

首先是自己要熟悉

其次同4的缺陷

谈谈你对你应聘的这个职位的认识,并谈一谈你的优势与劣势?

我理解的信息科的工作分为几个模块,首先是信息系统的管理,例如挂号系统、电子病历系统的管理和维护,其次是技术支持,确保医务人员能够顺利的使用信息化工作,解决他们的问题,另外还有数据分析和决策支持,例如训练影像科的大数据,可以实现一个AI初步诊断结果的功能,最后就是新技术的应用,例如现在的大模型、远程医疗等等,要时刻跟进,尝试把这些技术运用到医疗系统当中。

我个人的优势在于拥有丰富的软件开发经验,具备扎实的基础,对数据库、后端开发、自监督学习领域都有自己的深入研究,并且对待工作认真负责,要么不做,要么做好。

我个人的劣势在于,对医疗体系还不是足够了解,对技术的细节实现,整套运行的流程不够熟悉,需要一定的时间才能正式胜任工作。

工作中如何看待领导或者同事的批评?

在以往的实践或工作经历中,你最后悔的一件事是什么?

你缺乏工作经验怎么胜任此项工作?

你能给信息科带来什么?

整个大楼采用HIS,完善网络系统

如果让我去开展优化工作

首先我会组建工作小组,首先需求分析,例如是网络扩容等等,其次商定方案,最后结合领导意见,确认最终方案。

首先是内网优化,网络架构上采用经典的核心-汇聚-接入三层网络设计,核心交换机可以根据情况选定一个万兆路由交换机,汇聚层可以选一台千兆的光纤交换机,保证无阻塞互联,接入层可以用百兆交换机接入。

其次外网的拓扑结构和内网大致相同,只是规模较小。

最后,也要考虑网络未来的发展,医院发展过程中,必然会有新的大楼 新的园区,所有的子区域设备都要以该区域为中心,按照模块化的思想接入到现有的网络中,保证当前架构是可插拔的,能够满足今后扩容的需要。

另外,完善工作以后,也要把网络系统维护规范化来长期执行,包括日常的监控、审查,以及定期进行故障演练,保证网络系统的稳定运行。

互联网+医院

互联网+的含义就是互联网+传统行业,用互联网去改造传统行业,以医院为例,80年代没有计算机的时候,单靠人力和账本其实也可以完成基础医疗服务,但是会消耗相当多的人力物力,患者就诊体验也很差。

互联网赋能后,医院可以应用的首先就是整个HIS系统,引入计算机技术本质上是为了提升效率,例如医院现在可以用EMR、LIS、PACS等等,全面打通医院各个模块。

后期随着业务发展,可以根据实际需求,不断提升软件服务,比如:新生儿系统、传染病系统等等,做到医院的全面无纸化。

具体以EMR为例,六级就可以实现高级的医疗决策支持,七级就可以实现区域内医疗信息的共享,这些就属于互联网+给医院来带的提效工具。

最后,最近流行的自监督学习,也就是大模型在医疗体系内也有着很广泛的应用,例如AI影像诊断、智能客服等等,把这些AI数据作为参考,也可以大大加速现在的就诊流程,提高医院的核心竞争力。

人力资源管理优化

  1. 首先,通过内网资料和咨询等去了解单位人力资源管理情况,了解人力资源管理信息化的瓶颈所在。

  2. 主要细化以下几个方面的信息化建设

    1. 业务流程管理

      人员调入 调出 录用 离职 退休等等流程占用了HR部门大部分的时间,复杂的系统往往更提倡数据中心化,功能上也更提倡抽象性,人员管理模块和人员管理数据应当集中存储,定义好流程业务,简化沟通效率,同时数据归档,可以追溯。

    2. 招聘信息化

      招聘板块,自动对简历进行分类,录用人员自动入库,未录用人员自动进入人才库,有不良历史人员进入黑名单,一切操作自动化,提高招聘效率。后期也可以考虑大模型一键对候选人进行分析,总结为资料给HR提供参考。

    3. 信息共享功能

      不同人员的信息要能实现共享化,例如员工可以查看自己的所有的个人信息,部门领导可以查看自己部分所有员工的个人信息、岗位调用、人员情况等等,方便做后续决策。

      所以,信息管理功能也要集成数据权限功能。

      整体提高了效率,人力资源部门也可以摆脱重复给哥各个部分提供数据的情况。

中心化

首先是系统设计的原因,先说一下碎片、抽象性不够、数据分散。

数据一体化的解决方案:

  1. 数据清洗

    存储的数据要足够标准化,例如影像数据统一格式、敏感数据统一脱敏等等。

  2. 数据存储

    数据一体化可以采用现在流行的数据湖方案,数据湖可以存储各种类型的数据,例如文本、日志、图片等等。

    数据库采用分布式架构,更容易伸缩,成本也很低。

    另外,对于后期的医疗大模型训练,数据库也更方便我们数据挖掘去做机器学习。

  3. 数据可视化

  4. 数据运维

软件安全

软件安全体现在多个方面

一个是软件系统的高可用

一个是软件系统的隐私安全

  1. 访问控制和权限管理,例如vpn等等
  2. 数据加密
  3. 安全的通信协议,例如https等等

一个是软件系统的安全预防

  1. 操作系统及时安装补丁,避免后面入侵
  2. 安装杀毒软件
  3. 安装防火墙,防御和流量监控

硬件运维

其主要包括两个方面内容,即服务器维护与管理 + 网络设备维护管理

系统服务器

非常重要,如果服务器产生了问题,整个网络也会受到直接影响,尤其是分布式服务,如果某个机房出了问题,软件实施没跟上,很容易出现雪崩的场景,导致整个平台瘫痪。

解决方案是:

  1. 电源要符合标准,例如UPS电源
  2. 分布式服务器,可以用k8s等运维软件管理,服务器之间要有一个主备的关系
  3. 不同服务器之间,双机热备

网络设备维护管理

  1. 网卡维护

    网卡在长期使用的过程中,和主板很容易有不兼容或者接触不良的现象,需要定期维护

  2. 交换机维护

    交换机的信息损耗量是否过高,指示灯能否正常工作,除垢防水有没有做到位

  3. RJ45头的维护

    RJ45头作为以太网连接线的末端,由于手工压制等等原因,很容易松动,要定期维护

  4. 网线光缆维护

    实际网络连接中,网线可能有车拉扯或者压断的场景,要定期全面检修

机房建设

首先,在医院信息机房的选址上,要避开化学实验室、浴室、厕所等区域,也要避开电磁场的干扰,也要保障机房内的消防和制冷设施齐全。例如网易的机房就是放在一楼的架空层,干燥阴凉,消防设备也很齐全。

网络架构方面,采用以光纤构成垂直主干、双绞线为边缘的布线方案,也就是垂直子系统采用光纤,其他子系统采用五类双绞线,网络技术使用快速交换式以太网,最大限度满足内网核心和外网核心的网络需求。

另外,要优化防雷和供电设备,按照三级电源防雷标准,强化机房建设。

同时,机房也要设置两台大功率UPS,即使出现节点损坏,也不会影响全局系统正常运行,同时交换机、路由器都要采用成对的冗余配置,配置双电源,保证主备安全。

最后,机房空调也要双备,保证机房可以恒温干燥。

挂号一天变三天

挂号一天变三天,从产品层面来说是比较大的变动,从开发层面来说是比较小的变动,属于正常的软件迭代流程。

我能想到的:

  1. 优化EMR的挂号配置的时候,注意好边界条件,例如一天的时长是0点到23点59分59秒,如果现在变成72小时,那跨月的计算会不会有问题。同时也要注意耦合的相关代码会不会受到影响。
  2. 如果这个配置EMR厂商很难配合改动的话,那也可以考虑剑走偏锋,例如第二天第三天自动挂一个免费号,但是这样要考虑占用号源的场景,会不会造成公用资源的浪费。

  3. 不管采用什么实现方式。优化完后,进行单元测试,代码覆盖率达到一定指标,然后走正常的测试流程,例如冒烟、提测、演练、回归等等。

  4. 正式上线之后,可以先进行小范围灰度测试,例如先对5%的患者开放该功能,如果没有问题之后,再全面开放。

解释数字证书在医疗领域应用

数字证书的大致原理是:每个服务器需要使用公钥的时候,防止这个公钥在网络上被人篡改,所以需要一个专门的CA机构颁发才可以,CA机构用自己的私钥对证书的内容加密,作为数字签名,其他人收到公钥的时候,再用CA机构的公钥解密,来判断证书的合法性。

  1. 身份验证,护士或医生等登录系统的时候,需要进行身份验证,保证合法登录。
  2. 数据安全,医疗机构需要处理大量敏感的医疗数据,例如病人自己的EMR、病人私人信息等等,数字证书在传输的时候可以保证不被窃取
  3. 医生给患者的电子签名
  4. 医疗设备的认证

解释什么是入侵监测系统

入侵检测系统顾名思义就是检测入侵的系统,这里的入侵指网络或系统入侵。

所以IDS分为两种,网络检测和主机检测

主机检测主要检测系统中异常的活动和事件,例如异常进程、文件被篡改,系统被监控等等。

网络检测主要检测网络流量中的数据包,他可以分析网络流量,识别恶意请求,进行拦截。

技术实现:

  1. 大数据统计
  2. 深度学习
  3. 签名检测,简单来说就是和库里已知的攻击模式匹配