CN114629867A - 在线问诊即时通讯系统和消息处理方法 - Google Patents
在线问诊即时通讯系统和消息处理方法 Download PDFInfo
- Publication number
- CN114629867A CN114629867A CN202210283140.9A CN202210283140A CN114629867A CN 114629867 A CN114629867 A CN 114629867A CN 202210283140 A CN202210283140 A CN 202210283140A CN 114629867 A CN114629867 A CN 114629867A
- Authority
- CN
- China
- Prior art keywords
- message
- inquiry
- data
- component
- identity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000004891 communication Methods 0.000 title claims abstract description 77
- 238000003672 processing method Methods 0.000 title claims abstract description 12
- 238000012545 processing Methods 0.000 claims abstract description 52
- 238000013500 data storage Methods 0.000 claims abstract description 48
- 238000013467 fragmentation Methods 0.000 claims abstract description 19
- 238000006062 fragmentation reaction Methods 0.000 claims abstract description 19
- 239000000284 extract Substances 0.000 claims abstract description 9
- 238000003860 storage Methods 0.000 claims description 26
- 238000000586 desensitisation Methods 0.000 claims description 24
- 238000000034 method Methods 0.000 claims description 12
- 230000001960 triggered effect Effects 0.000 claims description 6
- 238000003745 diagnosis Methods 0.000 claims 1
- 238000013473 artificial intelligence Methods 0.000 abstract description 7
- 239000012634 fragment Substances 0.000 description 9
- 239000000178 monomer Substances 0.000 description 8
- 230000008569 process Effects 0.000 description 6
- 230000005540 biological transmission Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000010365 information processing Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000008707 rearrangement Effects 0.000 description 1
- 238000012954 risk control Methods 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- G—PHYSICS
- G16—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR SPECIFIC APPLICATION FIELDS
- G16H—HEALTHCARE INFORMATICS, i.e. INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR THE HANDLING OR PROCESSING OF MEDICAL OR HEALTHCARE DATA
- G16H80/00—ICT specially adapted for facilitating communication between medical practitioners or patients, e.g. for collaborative diagnosis, therapy or health monitoring
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
- H04L51/043—Real-time or near real-time messaging, e.g. instant messaging [IM] using or handling presence information
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Medical Informatics (AREA)
- Health & Medical Sciences (AREA)
- Pathology (AREA)
- Biomedical Technology (AREA)
- Epidemiology (AREA)
- General Health & Medical Sciences (AREA)
- Primary Health Care (AREA)
- Public Health (AREA)
- Information Transfer Between Computers (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本申请涉及人工智能领域,提供一种在线问诊即时通讯系统和消息处理方法。其中,所述系统包括通信组件、消息处理组件和数据存储组件,通信组件接收IM问诊对话消息,将IM问诊对话消息发送至消息处理组件和数据存储组件,数据存储组件提取IM问诊对话消息中的患者身份标识和医生身份标识,将患者身份标识和医生身份标识拼接成会话标识,基于会话标识,以数据分片和数据路由的方式,将IM问诊对话消息存储至预设IM数据库中,消息处理组件接收携带医生身份标识或患者身份标识的数据查询请求,根据医生身份标识或患者身份标识在预设IM数据库中进行查询,得到查询结果,通过通信组件推送查询结果。采用上述方案能够支持高并发的高效查询。
Description
技术领域
本申请涉及人工智能技术领域,特别是涉及一种在线问诊即时通讯系统和在线问诊即时通讯系统的消息处理方法。
背景技术
在当今高度信息化的移动互联网时代,生活中IM(Instant Messaging,即时通讯)类产品已经成为必备品,像‘微信’、‘钉钉’等以IM核心的社交产品备受大家的青睐。一个网络即时通讯系统由一个即时消息服务器、连接到IM服务器的一个业务管理系统(SMS,Service Management System)以及同时连接到IM服务器的多个IM客户端组成。而IM服务框架大多是以IM服务单体框架呈现。
伴随着互联网医疗行业的蓬勃发展,在线问诊场景成为嫁接医生和患者之间,提供医疗服务的重要核心功能。传统的IM服务单体无法支持高并发的消息传递,在医疗领域中的在线问诊场景下,传统的IM服务单体无法支持个性化的查询,如查询特定医生发送的所有消息、特定患者收到的特定医生的消息、或特定某次问诊过程中所有的消息,若遇到高并发的在线问诊时,传统的IM服务单体将会出现负载过大的情况,无法保证系统的稳定运行。
因此,目前医疗行业普遍亟需一个能够支持高效查询的即时通讯方案。
发明内容
基于此,有必要针对上述技术问题,提供一种能够支持高并发在线问诊的在线问诊即时通讯系统和在线问诊即时通讯系统的消息处理方法。
第一方面,本申请提供了一种在线问诊即时通讯系统,系统包括:通信组件、消息处理组件和数据存储组件,通信组件和数据存储组件分别与消息处理组件连接;
通信组件用于接收IM问诊对话消息,将IM问诊对话消息发送至消息处理组件和数据存储组件;
数据存储组件用于提取IM问诊对话消息中的患者身份标识和医生身份标识,将患者身份标识和医生身份标识拼接成会话标识,基于会话标识,以数据分片和数据路由的方式,将IM问诊对话消息存储至预设IM数据库中;
消息处理组件用于接收携带医生身份标识或患者身份标识的数据查询请求,根据医生身份标识或患者身份标识在预设IM数据库中进行查询,得到查询结果,通过通信组件推送查询结果。
在其中一个实施例中,数据存储组件还用于提取会话标识中预设数量的字符,将预设数量的字符确定为数据分片和数据路由的主键,根据主键,以数据分片和数据路由的方式,将IM问诊对话消息存储至对应的预设IM数据库中。
在其中一个实施例中,数据存储组件还包括IM问诊对话消息存储模型,IM问诊对话消息存储模型用于将IM问诊对话消息按照问诊会话标识字段、患者身份标识字段、医生身份标识字段、终端标识字段和消息业务类型字段的格式存储至预设IM数据库。
在其中一个实施例中,通信组件还用于当模板消息生成事件触发时,获取消息模板,根据消息模板生成对应的模板消息,推送模板消息。
在其中一个实施例中,通信组件还用于当会话结束达到预设时长时,提取会话的IM问诊对话消息体中的消息业务类型和问诊标识,根据消息业务类型和问诊标识,查找到对应的目标消息模板,基于目标消息模板,生成模板消息,推送模板消息。
在其中一个实施例中,IM数据库包括多个子数据库和子数据表,数据存储组件还用于按照分库分表的方式将IM问诊对话消息存储至预设IM数据库。
在其中一个实施例中,通信组件还用于监听客户端的连接状态,当监听到客户端处于离线状态,则发送用户注销事件消息至客户端,将连接状态更新为离线状态。
在其中一个实施例中,通信组件还用于当监听到客户端处于离线状态时,获取当前的IM文本消息内容和预设离线消息推送字段,根据当前的IM文本消息内容和预设离线消息推送字段合成离线消息,并推送离线消息至客户端。
在其中一个实施例中,消息处理组件还用于在通过所述通信组件推送所述查询结果之前,对所述查询结果进行数据脱敏处理,所述通信组件用于推送数据脱敏后的查询结果。
上述在线问诊即时通讯系统,将传统的IM服务单体架构分割成独立的组件模块,使得在线问诊即时通讯系统同时具备通信、消息处理和存储的功能,各组件之间能够保持消息的一致性,且支持高并发的数据查询。此外,基于患者身份标识和医生身份标识,以数据分片和数据路由的方式存储IM问诊对话消息,能够在极大地分散读写压力的同时,使得在接收到携带医生身份标识或患者身份标识的数据查询请求时,根据医生身份标识或患者身份标识在预设IM数据库中进行查询,得到相应的查询结果,实现特定医生和特定患者的问诊对话消息的个性化查询。综上所述,通过采用上述系统,能够支持高并发的高效查询。
第二方面,本申请还提供了一种在线问诊即时通讯系统的消息处理方法,在线问诊即时通讯系统包括通信组件、消息处理组件和数据存储组件,通信组件和数据存储组件分别与消息处理组件连接,方法包括:
通信组件接收IM问诊对话消息,将IM问诊对话消息发送至消息处理组件和数据存储组件;
数据存储组件提取IM问诊对话消息中的患者身份标识和医生身份标识,将患者身份标识和医生身份标识拼接成会话标识,基于会话标识,以数据分片和数据路由的方式,将IM问诊对话消息存储至预设IM数据库中;
当消息处理组件接收到携带医生身份标识或患者身份标识的数据查询请求时,根据医生身份标识或患者身份标识在预设IM数据库中进行查询,得到查询结果,并通过通信组件推送查询结果。
上述在线问诊即时通讯系统的消息处理方法,在线问诊即时通讯系统包括相互独立的组件,同时具备通信、消息处理和存储的功能,各组件之间能够保持消息的一致性,且支持高并发的数据查询。数据存储组件基于患者身份标识和医生身份标识,以数据分片和数据路由的方式存储IM问诊对话消息,不仅能够极大地分散读写压力,还能使消息处理组件在接收到携带医生身份标识或患者身份标识的数据查询请求时,根据医生身份标识或患者身份标识在预设IM数据库中进行查询,得到相应的查询结果,实现特定医生和特定患者的问诊对话消息的个性化查询。综上所述,采用上述方法,能够支持高并发的高效查询。
附图说明
图1为一个实施例中在线问诊即时通讯系统的结构框图;
图2为一个实施例中在线问诊场景的场景示意图;
图3为一个实施例中在线问诊即时通讯系统的消息处理方法的流程示意图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在其中一个实施例中,如图1所示,提供了一种在线问诊即时通讯系统,包括系统包括:通信组件200、消息处理组件202和数据存储组件204,通信组件200和所述数据存储组件204分别与消息处理组件202连接;
通信组件用于接收IM问诊对话消息,将IM问诊对话消息发送至消息处理组件和数据存储组件;
数据存储组件用于提取IM问诊对话消息中的患者身份标识和医生身份标识,将患者身份标识和医生身份标识拼接成会话标识,基于会话标识,以数据分片和数据路由的方式,将IM问诊对话消息存储至预设IM数据库中;
消息处理组件用于接收携带医生身份标识或患者身份标识的数据查询请求,根据医生身份标识或患者身份标识在预设IM数据库中进行查询,得到查询结果,通过通信组件推送查询结果。
即时通信系统是一款跨平台(Linux Server,Windows Server),可定制的P2P即时通信系统(集成多人视频会议功能),为各行业门户网站和企事业单位提供“一站式”定制解决方案,打造一个稳定,安全,高效,可扩展的即时通信系统,在用户使用习惯的设计上接近或兼容MSN,TM,贸易通和淘宝旺旺等即时通讯产品。但是,传统的IM服务框架一般都是服务单体框架,当本实施例中,通信组件负责消息的推送到达,是中心化的服务。所有类型的用户消息都会通过这个中心化的通信组件来完成消息的流转和投递,但每条消息处理是交给数据存储组件和消息处理组件的。需要说明的是,常规的IM服务是从来不提供API(Application Programming Interface,应用程序编程接口)向外的,只提供基础的长链接通信功能。为了满足模板消息的投递,就必须让IM服务暴露独立的服务端接口,该接口面向其他相关业务应用,提供发送模板消息的功能。因此,本实施例中,通信组件增加有独立的服务端API接口后,该接口对外暴露给各个服务后台,用来发送机器人消息(模板消息)和卡片消息等,该接口能够满足接口调用方的容错和负载均衡并支持横向扩展API层,此外,为了防止信息轰炸,该接口还可以满足安全的、流控、脱敏等功能支持。
消息处理组件又可称为计算组件,提供IM问诊对话消息的相关查询服务,并负责对查询结果进行数据脱敏处理。在部署上面,根据各自服务负载的不同单独预估容量并规划服务器资源。由于IM问诊对话消息是根据患者身份标识和医生身份标识进行存储的,因此,当用户想要查询特定的医生和患者发送的消息时,可发送携带医生身份标识或患者身份标识的数据查询请求至消息处理组件,消息处理组件可根据数据查询请求中的医生身份标识或患者身份标识在预设IM数据库中进行查询,得到相应的查询结果,然后,将查询结果通过通信组件发送至客户端,以满足用户的查询需求。
对于待存储处理的海量数据,需要通过数据分片(Shard/Partition)将数据进行切分并分配到各个机器中区,数据分片后,通过数据路由的方式,能够找到某条记录的存储位置。因此,本实施例中,数据存储组件接收到IM问诊对话消息后,提取IM问诊对话消息实体中的患者身份标识patientId和医生身份标识doctorId,将患者身份标识patientId和医生身份标识patientId拼接成会话标识,将会话标识作为数据分片和数据路由的KEY,以数据分片和数据路由的方式,将IM问诊对话消息存储至预设IM数据库中。如此,不仅极大地分散了数据读写压力,也能会话消息与医生和患者关联起来。
上述在线问诊即时通讯系统,将传统的IM服务单体架构分割成独立的组件模块,使得在线问诊即时通讯系统具备通信、消息处理和存储的功能,各组件之间能够达到消息的一致性,支持高并发的数据查询。此外,基于患者身份标识和医生身份标识,以数据分片和数据路由的方式存储IM问诊对话消息,能够在极大地分散读写压力的同时,使得在接收到携带医生身份标识或患者身份标识的数据查询请求时,根据医生身份标识或患者身份标识在预设IM数据库中进行查询,得到相应的查询结果,实现特定医生和特定患者的问诊对话消息的个性化查询。综上所述,通过采用上述系统,能够支持高并发的高效查询。
在其中一个实施例中,消息处理组件还用于在通过通信组件推送查询结果之前,对查询结果进行数据脱敏处理,通信组件还用于推送数据脱敏后的查询结果。
数据脱敏是指对某些敏感信息通过脱敏规则进行数据的变形,实现敏感隐私数据的可靠保护。在涉及客户安全数据或者一些商业性敏感数据的情况下,在不违反系统规则条件下,对真实数据进行改造并提供测试使用,如身份证号、手机号、卡号、客户号等个人信息都需要进行数据脱敏。敏感信息依赖于实际业务场景和安全维度,以自然人为例,用户个体的敏感字段包括:姓名、身份证号、手机号、邮箱地址等等;在银行系统,作为客户,可能还涉及银行卡号、过期时间、支付密码等等;在公司系统,作为员工,可能还涉及薪资、教育背景等;在医疗系统,作为患者,可能还涉及就诊信息等等。具体的,数据脱敏分为静态数据脱敏和动态数据脱敏。静态数据脱敏,是数据的“搬移并仿真替换”,是将数据抽取进行脱敏处理后,下发给下游环节,随意取用和读写的,脱敏后数据与生产环境相隔离,满足业务需求的同时保障生产数据库的安全。动态数据脱敏,在访问敏感数据的同时实时进行脱敏处理,可以为不同角色、不同权限、不同数据类型执行不同的脱敏方案,从而确保返回的数据可用而安全。
本实施例中,可以是按照动态数据脱敏的方式,在接收到查询请求,执行查询语句的过程中,根据判断预设的生效条件是否满足,实现实时的脱敏处理。生效条件,通常是针对当前用户角色的判断。敏感数据的可见范围,即是针对不同用户预设的。系统管理员,具有最高权限,任何时刻对任何表的任何字段都可见。本实施例中,可以是确认客户端的用户的身份后,在执行查询语句的过程中,按照脱敏规则对查询结果进行实时脱敏处理,实现数据的可靠保护。在另一个实施例中,还可以是消息处理组件在IM问诊对话消息进行存储之前,对IM问诊对话消息进行脱敏处理,将脱敏后的IM问诊消息发送至数据存储组件,以便数据存储组件将脱敏后的IM问诊对话消息存储至预设IM数据库中,具体的,常用的脱敏规则包括替换、重排、加密、截断、掩码,本实施例中,可以是通过重排、加密或掩码等方式对医生身份标识和患者身份标识进行脱敏处理。
在其中一个实施例中,数据存储组件还用于提取会话标识中预设数量的字符,将预设数量的字符确定为数据分片和数据路由的主键,根据主键,以数据分片和数据路由的方式,将IM问诊对话消息存储至对应的预设IM数据库中。
具体实施时,可以是提取由会话标识中末4位,将其作为数据分片和数据路由的主键即key,然后,划分IM问诊对话消息,以数据分片和数据路由的方式将IM问诊对话消息存储至IM数据库中,本实施例中,以会话标识的末4位为唯一标识,存储IM数据能够在保障IM问诊对话消息的有序存储的同时,做到将IM问诊对话消息与展开会话的医生和患者相关联起来,便于后续的数据查询。
在其中一个实施例中,数据存储组件还用于还包括IM问诊对话消息存储模型,IM问诊对话消息存储模型用于将IM问诊对话消息按照问诊会话标识字段、患者身份标识字段、医生身份标识字段、终端标识字段和消息业务类型字段的格式存储至预设IM数据库。
目前,非医疗场景下的经典IM问诊对话消息存储模型是:MessageId(消息ID)、From(发送者)、To(接收者)、Message(消息内容)、Time(发送时间)和Status(消息状态)。上述IM问诊对话消息存储模型的无法明确消息收发者的身份,如果用户要查询特定医生发送的所有消息、特定患者收到的特定医生的消息、或特定某次问诊过程中所有的消息,便无法满足用户的查询需求。因此,本实施例中,对IM问诊对话消息存储模型进行扩展,本实施例中的IM问诊对话消息存储模型包括的字段有:MessageId(消息ID)、ConsultId(问诊ID)、appId(终端类型)、bizType(消息业务类型)、doctorId(医生ID)、patientId(患者ID)、From(发送者)、To(接收者)、Message(消息内容)、Time(发送时间)、Status(消息状态)。其中doctorId和patientId会在存储中用作数据路由分片的key。AppId会用在后期的推送中,用来表明推送的设备终端类型。BizType和consultID会用在风险控制和AI(ArtificialIntelligence,人工智能)场景中,用来细化消息的业务所属、业务类型。其中,人工智能场景可以包括开展智能问诊会话,发送机器人模板消息。通过新引入的、ConsultId(问诊ID)、appId(终端类型)、bizType(消息业务类型)、doctorId(医生ID)、patientId(患者ID)这5个字段,可以扩充出更为丰富的医疗数据维度,从而更好满足医疗相关特定场景。
在其中一个实施例中,通信组件还用于当模板消息生成事件触发时,获取消息模板,根据消息模板生成对应的模板消息,推送模板消息。
具体实施时,IM问诊对话消息的发送者,有的时候,不是人为发出的,而是通讯组件在特定规则触发的、并根据特定模版规则生成并发出来的模板消息,也就是AI机器人模板消息,例如,可以是在患者点击展开会话时,触发问候消息发送事件,根据问候消息模板生成问候消息,例如“您好,请问有什么可以帮到您?”,本实施例中,通过发送模板消息能够提高沟通效率,节省沟通时长。
在其中一个实施例中,通信组件还用于当会话结束达到预设时长时,提取会话的IM问诊对话消息体中的消息业务类型和问诊标识,根据消息业务类型和问诊标识,查找到对应的目标消息模板,基于目标消息模板,生成模板消息,推送模板消息。
本实施例中,例如在问诊结束后的评价信息场景中,此时的触发规则由通信组件来应用并触发的,当问诊结束后,开始计时,当问诊结束后满了20分钟,会立刻根据IM问诊对话消息体中的biztype、consultid字段查询对应业务的消息模板,此模板以占位符替换的方式来提供。例如:您好,$User,您的问诊$ConsultID已经结束,您对此次服务评价如何?然后,当查询到此模板后,结合consultid等变量信息,替换模板中的占位符生成最终的模板消息。可以理解的是,在其他实施例中,可以是在问诊结束后的10分钟或5分钟后,发送模板消息,具体可根据实际情况而设定,在此不做限定。
在其中一个实施例中,IM数据库包括多个子数据库和子数据表,数据存储组件还用于按照分库分表的方式将IM问诊对话消息存储至预设IM数据库。
在实际应用中,对于一个用户规模较大的IM平台来说,IM问诊对话消息的存储至关重要,存储必须满足存储空间可扩展、读写时效低、历史数据归档等特性。本方案立足于这三点特性,在存储层面,将底层的数据库拆分为若干的子库和子表,并在应用层面利用了分库分表的写入数据方案。具体的,可以是将IM数据库拆分为10库10表,并给每个表都加上单独的表名,例如:msg_1010、msg_0103、msg_0204,数字的前两位表征子库的序号,后两位表征子表的编号,然后,提取IM问诊对话消息中的doctorId、patientId两个用户id拼接成会话id,然后根据会话id的尾4位来做数据的分片路由写入和读取。可以理解的是,在其他实施例中,还可以是将IM数据库拆分为更多的子库和子表。本实施例中,通过将IM数据库拆分为多个子库和子表的方式,能够进一步分散数据读写压力。
在其中一个实施例中,通信组件还用于监听客户端的连接状态,当监听到客户端处于离线状态,则发送用户注销事件消息至客户端,将连接状态更新为离线状态。
具体实施时,IM的通信组件会实时监听所有用户终端的连接情况,一旦发现用户终端断联一段时间,就会发送用户注销事件消息至用户终端,并将用户状态更新为离线状态。本实施例中,通信组件监听用户终端的连接情况,能够及时更新用户终端的状态,以便离线消息的推送。
在其中一个实施例中,通信组件还用于当监听到客户端处于离线状态时,获取当前的IM文本消息内容和预设离线消息推送字段,根据当前的IM文本消息内容和预设离线消息推送字段合成离线消息,并推送离线消息至客户端。
具体实施时,每条消息在数据流的处理中,都会判断当前用户的在线状态,一旦发现用户离线,会获取当前的IM文本消息和预设的离线消息推送字段(如appId、设备号、设备类型、推送的标题等),并基于当前IM文本消息内容,并加以补充appId、设备号、设备类型、推送的标题等内容,合成完整的离线消息后,调用推送平台的接口完成离线的消息推送。如此,即使用户终端在离线状态下,也能完成消息的推送和存储。
在其中一个实施例中,通信组件和数据存储组件通过RPC或消息队列的方式与消息处理组件进行通信。
在实际应用中,为了解决IM服务单体架构下的负载过大问题,对IM问诊对话消息的通信、存储、计算三块主要功能切割为3块独立的组件模块,彼此之间通过RPC(RemoteProcedure Call,远程进程调用)、消息队列等方式维持通信。RPC提供了一种进程间通信机制,程序可使用这种协议向网络中的另一台计算机上的程序请求服务,通过这一机制,在一台计算机上运行的程序可以顺畅地执行某个远程系统上的代码。“消息队列”是在消息的传输过程中保存消息的容器。消息被发送到队列中,消息队列管理器再将消息从它的源中继到它的目标时充当中间人。队列的主要目的是提供路由并保证消息的传递;如果发送消息时,接收者无法接收消息,消息队列会保留消息,直到可以成功地传递它。本实施例中,通过RPC或消息队列的方式,能够保证IM问诊对话消息的成功传递。
在一个实施例中,如图3所示,本申请还提供了一种在线问诊即时通讯系统的消息处理方法,在线问诊即时通讯系统包括通信组件、消息处理组件和数据存储组件,通信组件和数据存储组件分别与消息处理组件连接,以该方法应用于如图1所示的在线即时通讯系统为例进行说明,包括以下步骤:
步骤302,通信组件接收IM问诊对话消息,将IM问诊对话消息发送至消息处理组件和数据存储组件;
步骤304,数据存储组件提取IM问诊对话消息中的患者身份标识和医生身份标识,将患者身份标识和医生身份标识拼接成会话标识,基于会话标识,以数据分片和数据路由的方式,将IM问诊对话消息存储至预设IM数据库中;
步骤306,当消息处理组件接收到携带医生身份标识或患者身份标识的数据查询请求时,根据医生身份标识或患者身份标识在预设IM数据库中进行查询,得到查询结果,并通过通信组件推送查询结果。
具体实施时,通信组件、数据存储组件和消息处理组件,彼此通过RPC、消息队列等方式维持通信。数据存储组件接收到IM问诊对话消息后,提取IM问诊对话消息实体中的患者身份标识patientId和医生身份标识doctorId,将患者身份标识patientId和医生身份标识patientId拼接成会话标识,将会话标识作为数据分片和数据路由的KEY,以数据分片和数据路由的方式,将IM问诊对话消息存储至预设IM数据库中。当用户想要查询特定的医生和患者发送的消息时,可发送携带医生身份标识或患者身份标识的数据查询请求至消息处理组件,消息处理组件可根据数据查询请求中的医生身份标识或患者身份标识在预设IM数据库中进行查询,得到相应的查询结果,然后,将查询结果通过通信组件发送至客户端,以满足用户的查询需求。进一步的,在另一个实施例中,消息处理组件在推送查询结果之前,还对查询结果进行数据脱敏处理,通过通信组件推送进行数据脱敏处理后的查询结果。
上述在线问诊即时通讯系统的消息处理方法,在线问诊即时通讯系统包括相互独立的组件,同时具备通信、消息处理和存储的功能,各组件之间能够保持消息的一致性,且支持高并发的数据查询。数据存储组件基于患者身份标识和医生身份标识,以数据分片和数据路由的方式存储IM问诊对话消息,不仅能够极大地分散读写压力,还能使消息处理组件在接收到携带医生身份标识或患者身份标识的数据查询请求时,根据医生身份标识或患者身份标识在预设IM数据库中进行查询,得到相应的查询结果,实现特定医生和特定患者的问诊对话消息的个性化查询。综上所述,采用上述方法,能够支持高并发的高效查询。
为了对本申请提供的在线问诊即时通讯系统和在线问诊即时通讯系统的消息处理方法进行更为清楚的说明,下面结合一个具体实施例以及图2进行说明:
本实施例中,为了解决传统的IM服务单体架构下,在高并发的消息传递时的负载过大问题,将IM问诊对话消息的通信、存储和计算三块主要功能切割为3块独立的组件模块,包括通信组件、数据存储组件和消息处理组件,通信组件、数据存储组件和消息处理组件,彼此通过RPC、消息队列等方式维持通信。并且,常规的IM服务是从来不提供API向外的,本实施例中,通信组件增加有独立的服务端API接口,该接口对外暴露给各个服务后台,用来发送机器人消息(模板消息)和卡片消息等,该接口能够满足接口调用方的容错和负载均衡并支持横向扩展API层,此外,为了防止信息轰炸,该接口还可以满足安全的、流控、脱敏等功能支持。
用户终端与通信组件建立连接,此时,通信组件可触发问候消息发送事件,根据问候消息模板生成问候消息,例如“您好,请问有什么可以帮到您?”,以此开展在线问诊会话,同时将会话中的IM问诊对话消息实时发送至计算组件和数据存储组件。在会话过程中,通信组件实时监听所有用户终端的连接情况,一旦发现用户终端断联一段时间,就会发送用户注销事件至用户终端,并将用户状态更新为离线状态,并且,会获取当前的IM文本消息和预设的离线消息推送字段(如appId、设备号、设备类型、推送的标题等),并基于当前IM文本消息内容,并加以补充appId、设备号、设备类型、推送的标题等内容,合成完整的离线消息后,调用推送平台的接口完成离线的消息推送。当问诊结束后,开始计时,当问诊结束后满了20分钟,会立刻根据IM问诊对话消息体中的biztype、consultid字段查询对应业务的消息模板,此模板以占位符替换的方式来提供。例如:您好,$User,您的问诊$ConsultID已经结束,您对此次服务评价如何?然后,当查询到此模板后,结合consultid等变量信息,替换模板中的占位符生成最终的模板消息。
数据存储组件在接收到IM问诊对话消息后,提取IM问诊对话消息的消息实体中的患者身份标识patientId和医生身份标识doctorId,将患者身份标识patientId和医生身份标识patientId拼接成会话标识,将会话标识的末4位,作为数据分片和数据路由的KEY,以数据分片和数据路由的方式,将IM问诊对话消息存储至预设IM数据库中。此外,IM问诊对话消息的存储是根据已构建的IM问诊对话消息存储模型,以分库分表的形式进行存储的。IM问诊对话消息存储模型包括的字段有:MessageId(消息ID)、ConsultId(问诊ID)、appId(终端类型)、bizType(消息业务类型)、doctorId(医生ID)、patientId(患者ID)、From(发送者)、To(接收者)、Message(消息内容)、Time(发送时间)、Status(消息状态)。其中doctorId和patientId会在存储中用作数据路由分片的key。AppId会用在后期的推送中,用来表明推送的设备终端类型。BizType和consultID会用在风控和AI场景中,用来细化消息的业务所属、业务类型。
消息处理组件在接收到客户端发送的携带医生身份标识或患者身份标识的数据查询请求时,根据医生身份标识或患者身份标识在预设IM数据库中进行查询,得到查询结果,将查询结果通过通信组件发送至客户端,以满足用户的查询需求。
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请的保护范围应以所附权利要求为准。
Claims (10)
1.一种在线问诊即时通讯系统,其特征在于,所述系统包括通信组件、消息处理组件和数据存储组件,所述通信组件和所述数据存储组件分别与所述消息处理组件连接;
所述通信组件用于接收IM问诊对话消息,将所述IM问诊对话消息发送至所述消息处理组件和所述数据存储组件;
所述数据存储组件用于提取所述IM问诊对话消息中的患者身份标识和医生身份标识,将所述患者身份标识和所述医生身份标识拼接成会话标识,基于所述会话标识,以数据分片和数据路由的方式,将所述IM问诊对话消息存储至预设IM数据库中;
所述消息处理组件用于接收携带医生身份标识或患者身份标识的数据查询请求,根据所述医生身份标识或所述患者身份标识在预设IM数据库中进行查询,得到查询结果,通过所述通信组件推送所述查询结果。
2.根据权利要求1所述的在线问诊即时通讯系统,其特征在于,所述数据存储组件还用于提取所述会话标识中预设数量的字符,将所述预设数量的字符确定为数据分片和数据路由的主键,根据所述主键,以数据分片和数据路由的方式,将IM问诊对话消息存储至对应的预设IM数据库中。
3.根据权利要求1所述的在线问诊即时通讯系统,其特征在于,所述数据存储组件包括IM问诊对话消息存储模型;所述IM问诊对话消息存储模型用于将所述IM问诊对话消息按照问诊会话标识字段、患者身份标识字段、医生身份标识字段、终端标识字段和消息业务类型字段的格式存储至预设IM数据库。
4.根据权利要求1所述的在线问诊即时通讯系统,其特征在于,所述通信组件还用于当模板消息生成事件触发时,获取消息模板,根据所述消息模板生成对应的模板消息,推送所述模板消息。
5.根据权利要求1所述的在线问诊即时通讯系统,其特征在于,所述通信组件还用于当会话结束达到预设时长时,提取会话的IM问诊对话消息体中的消息业务类型和问诊标识,根据所述消息业务类型和所述问诊标识,查找到对应的目标消息模板,基于所述目标消息模板,生成模板消息,推送所述模板消息。
6.根据权利要求1所述的在线问诊即时通讯系统,其特征在于,所述预设IM数据库包括多个子数据库和子数据表,所述数据存储组件还用于按照分库分表的方式将IM问诊对话消息存储至预设IM数据库。
7.根据权利要求1至6任意一项所述的在线问诊即时通讯系统,其特征在于,所述通信组件还用于监听客户端的连接状态,若监听到所述客户端处于离线状态,则发送用户注销事件消息至所述客户端,将所述连接状态更新为离线状态。
8.根据权利要求1至6任意一项所述的在线问诊即时通讯系统,其特征在于,所述通信组件还用于当监听到客户端处于离线状态时,获取当前的IM文本消息内容和预设离线消息推送字段,根据所述当前的IM文本消息内容和所述预设离线消息推送字段合成离线消息,推送所述离线消息至所述客户端。
9.根据权利要求1至6任意一项所述的在线问诊即时通讯系统,其特征在于,所述消息处理组件还用于对所述查询结果进行数据脱敏处理;所述通信组件用于推送数据脱敏后的查询结果。
10.一种在线问诊即时通讯系统的消息处理方法,其特征在于,所述在线问诊即时通讯系统包括通信组件、消息处理组件和数据存储组件,所述通信组件和所述数据存储组件分别与所述消息处理组件连接,所述方法包括:
所述通信组件接收IM问诊对话消息,将所述IM问诊对话消息发送至所述消息处理组件和所述数据存储组件;
所述数据存储组件提取所述IM问诊对话消息中的患者身份标识和医生身份标识,将所述患者身份标识和所述医生身份标识拼接成会话标识,基于所述会话标识,以数据分片和数据路由的方式,将所述IM问诊对话消息存储至预设IM数据库中;
当所述消息处理组件接收到携带医生身份标识或患者身份标识的数据查询请求时,根据所述医生身份标识或所述患者身份标识在预设IM数据库中进行查询,得到查询结果,并通过所述通信组件推送所述查询结果。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210283140.9A CN114629867A (zh) | 2022-03-22 | 2022-03-22 | 在线问诊即时通讯系统和消息处理方法 |
PCT/CN2022/121760 WO2023178973A1 (zh) | 2022-03-22 | 2022-09-27 | 在线问诊即时通讯系统和消息处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210283140.9A CN114629867A (zh) | 2022-03-22 | 2022-03-22 | 在线问诊即时通讯系统和消息处理方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114629867A true CN114629867A (zh) | 2022-06-14 |
Family
ID=81904006
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210283140.9A Pending CN114629867A (zh) | 2022-03-22 | 2022-03-22 | 在线问诊即时通讯系统和消息处理方法 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN114629867A (zh) |
WO (1) | WO2023178973A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115208846A (zh) * | 2022-07-08 | 2022-10-18 | 武汉联影医疗科技有限公司 | 一种会话交互方法和系统 |
WO2023178973A1 (zh) * | 2022-03-22 | 2023-09-28 | 康键信息技术(深圳)有限公司 | 在线问诊即时通讯系统和消息处理方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296200A (zh) * | 2008-06-30 | 2008-10-29 | 腾讯科技(深圳)有限公司 | 一种创建多用户会话的系统和方法 |
CN108763524A (zh) * | 2018-05-31 | 2018-11-06 | 康键信息技术(深圳)有限公司 | 电子装置、聊天数据处理方法和计算机可读存储介质 |
CN112035636A (zh) * | 2020-08-28 | 2020-12-04 | 康键信息技术(深圳)有限公司 | 医疗问诊系统的问答管理方法、装置、设备及存储介质 |
CN113284633A (zh) * | 2021-06-11 | 2021-08-20 | 杭州智多心网络科技有限公司 | 一种用于互联网医院的患者在线问诊系统 |
WO2021233348A1 (zh) * | 2020-05-20 | 2021-11-25 | 中山大学肿瘤防治中心 | 基于医疗角色的即时通讯方法及装置、系统、电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108899064A (zh) * | 2018-05-31 | 2018-11-27 | 平安医疗科技有限公司 | 电子病历生成方法、装置、计算机设备和存储介质 |
CN110636106B (zh) * | 2019-08-15 | 2023-04-07 | 平安普惠企业管理有限公司 | 信息推送方法、装置、计算机设备和存储介质 |
CN110620719A (zh) * | 2019-09-09 | 2019-12-27 | 深圳安泰创新科技股份有限公司 | 一种即时通讯系统和即时通讯连接的创建方法 |
CN114629867A (zh) * | 2022-03-22 | 2022-06-14 | 康键信息技术(深圳)有限公司 | 在线问诊即时通讯系统和消息处理方法 |
-
2022
- 2022-03-22 CN CN202210283140.9A patent/CN114629867A/zh active Pending
- 2022-09-27 WO PCT/CN2022/121760 patent/WO2023178973A1/zh unknown
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101296200A (zh) * | 2008-06-30 | 2008-10-29 | 腾讯科技(深圳)有限公司 | 一种创建多用户会话的系统和方法 |
CN108763524A (zh) * | 2018-05-31 | 2018-11-06 | 康键信息技术(深圳)有限公司 | 电子装置、聊天数据处理方法和计算机可读存储介质 |
WO2021233348A1 (zh) * | 2020-05-20 | 2021-11-25 | 中山大学肿瘤防治中心 | 基于医疗角色的即时通讯方法及装置、系统、电子设备 |
CN112035636A (zh) * | 2020-08-28 | 2020-12-04 | 康键信息技术(深圳)有限公司 | 医疗问诊系统的问答管理方法、装置、设备及存储介质 |
CN113284633A (zh) * | 2021-06-11 | 2021-08-20 | 杭州智多心网络科技有限公司 | 一种用于互联网医院的患者在线问诊系统 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2023178973A1 (zh) * | 2022-03-22 | 2023-09-28 | 康键信息技术(深圳)有限公司 | 在线问诊即时通讯系统和消息处理方法 |
CN115208846A (zh) * | 2022-07-08 | 2022-10-18 | 武汉联影医疗科技有限公司 | 一种会话交互方法和系统 |
CN115208846B (zh) * | 2022-07-08 | 2023-06-09 | 武汉联影医疗科技有限公司 | 一种会话交互方法和系统 |
Also Published As
Publication number | Publication date |
---|---|
WO2023178973A1 (zh) | 2023-09-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11425571B2 (en) | Device configuration method, apparatus and system | |
US20130097124A1 (en) | Automatically aggregating contact information | |
US10404631B2 (en) | Creating groups in a messaging system | |
WO2018125737A1 (en) | Artificial intelligence system for automatically generating custom travel documents | |
US10389665B2 (en) | Service apparatus and method for providing deferred message, and storage medium | |
CN114629867A (zh) | 在线问诊即时通讯系统和消息处理方法 | |
CN109088812A (zh) | 信息处理方法、装置、计算机设备和存储介质 | |
CN109154968A (zh) | 用于组织内的安全且高效的通信的系统和方法 | |
CN109189502A (zh) | 一种基于即时通讯公众平台的消息处理方法和相关设备 | |
CN112150030A (zh) | 基于多单位多身份的账号管理方法、终端设备及存储介质 | |
CN110231965A (zh) | 一种云端设备、应用程序处理方法及电子设备 | |
CN110554885A (zh) | 子应用生成方法、装置、电子设备及存储介质 | |
CN112241544B (zh) | 业务系统、访问方法、装置、计算机设备和存储介质 | |
CN116226499B (zh) | 信息查询方法、装置及电子设备 | |
CN109302503A (zh) | 签名档的生成方法、签名档模板的分享方法及装置 | |
CN111339189B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN113037613A (zh) | 在线文档操作方法、消息协作系统及计算机存储介质 | |
CA3195744A1 (en) | Client-side device bloom filter mapping | |
US20220004403A1 (en) | Methods of providing an integrated interface that includes a virtual mobile device | |
CN108881344B (zh) | 业务处理方法、装置、存储设备及处理服务器 | |
US11743218B2 (en) | Message capture in a multi channel communication environment | |
CN114978702B (zh) | 账户管理方法、平台及系统、计算设备和可读存储介质 | |
CN111506644A (zh) | 一种应用数据处理方法、装置和电子设备 | |
US20070155409A1 (en) | Message and address book interchange via short message service | |
US11153111B1 (en) | Renaming of web conference emails based on corresponding calendar entries |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |