自定义IM消息类型

一、前言

本次重构使用了网易云信来实现业务中需要的IM功能,在实际业务场景中有很多需要自定义消息类型来满足业务需求。


二、自定义消息类型

基于以上背景,我们目前共定义了9种自定义消息类型:

消息类型 类型值 说明
图库 1 用于患者图库,图片上传到七牛云
问诊单 2 用于预约医生服务场景
医生服务 3 用于顾问推荐医生场景
照护服务 4 用于顾问推荐照护服务场景
服务报告 5 用于顾问发送服务报告场景
系统消息 6 用于各类系统通知消息场景
模拟语音 7 由于患者端h5无法正确解析医生端发送的网易云信语音消息,故采用先将语音文件转存到七牛云,再由系统模拟发送语音消息给患者端来解决该问题,此类型消息不存储到数据库中
强制退出 8 预留,暂未使用
病情资料 9 用于患者上传服务必备材料场景,消息体结构与问诊单完全一致,由于产品上要求该类型消息在患者端不展示,随访中心跟上患者正常展示,故无法复用「问诊单」类型,只能新定义一种消息类型
患教文章 10 用于顾问发送患教文章场景

三、消息体结构

1. 图库

1
2
3
4
{
"galleryId":338653,
"galleryUrl":"https://imgtest.120yibao.com/test/assistant/o7kq9uk16f7lx1fy4dg.gif"
}

2. 问诊单

1
2
3
4
5
6
7
8
9
10
11
{
"consultContent":"",
"consultImageList":[
{
"origin":"https://imgtest.120yibao.com/dev/h5-erbihou/o8v5claxtses51gsno.jpeg",
"thumbnail":"https://imgtest.120yibao.com/dev/h5-erbihou/o8v5claxtses51gsno.jpeg?imageView2/2/w/150/h/150"
}
],
"servingInquirySheetId":83,
"servingOrderId":44315
}

3. 医生服务

1
2
3
4
{
"doctorId":1144,
"doctorName":"李志宇"
}

4. 照护服务

1
2
3
4
{
"servingPackageId":3,
"servingPackageName":"儿童鼾症监护服务"
}

5. 服务报告

1
2
3
4
5
6
{
"patientId":76070,
"servingName":"呵呵测试单次服务2",
"servingReportId":11,
"servingSheetId":28
}

6. 系统消息

1
2
3
{
"noticeContent":"患者修改了到院就诊的预期就诊时间:到院就诊-医生建议001从2019-05-19改为2019-06-17"
}

7. 模拟语音

1
2
3
4
{
"audioDuration":22000,
"audioUrl":"https://img.120yibao.com/beyond/d45029eaf19648fa81342490139ddc38.wav"
}

8. 强制退出

预留,暂未使用

9. 病情资料

1
2
3
4
5
6
7
8
9
10
11
{
"consultContent":"",
"consultImageList":[
{
"origin":"https://imgtest.120yibao.com/dev/h5-erbihou/o8ye05380ya9n69px49.jpeg",
"thumbnail":"https://imgtest.120yibao.com/dev/h5-erbihou/o8ye05380ya9n69px49.jpeg?imageView2/2/w/150/h/150"
}
],
"servingInquirySheetId":86,
"servingOrderId":44335
}

10. 患教文章

1
2
3
4
5
6
{
"patientId":76070,
"articleTitle":"呵呵测试",
"articleId":11,
"doctorName":"李志宇"
}