Sfoglia il codice sorgente

Merge branch 'im-internet-hospital' of liubing/im.doctor into im-internet-hospital

liubing 4 anni fa
parent
commit
2dd32704a4

+ 20 - 0
src/server/endpoints/v2/message.endpoint.js

@ -70,6 +70,26 @@ router.post(APIv2.Message.CloudCarePcManageMessage, function (req, res) {
});
/**
 * 居民端socket消息
 */
router.post(APIv2.Message.PatientSystemMessage, function (req, res) {
    let targetUserId = req.body.targetUserId;
    let message = req.body.message;
    let wechatClient = new WechatClient();
    if (!targetUserId) {
        throw {httpStatus: 406, message: 'Missing targetUserId.'};
    }
    if (!message) {
        throw {httpStatus: 406, message: 'Missing message.'};
    }
    ControllerUtil.regModelEventHandler(wechatClient, res);
    //推送居民外层新消息
    wechatClient.CloudPatientSystemMessage(targetUserId,JSON.parse(message));
});
router.get(APIv2.Message.DataMessage, function (req, res) {
    let sessionId = req.query.sessionId;
    let messages = new Messages();

+ 2 - 0
src/server/include/commons.js

@ -177,6 +177,8 @@ const CONTENT_TYPES = {
    ChangeDoorCoachPackageItems:2204, //上门辅导服务-变更工单服务项信息
    CoachInformedConsent:2205,//上门辅导服务 知情通知书
    emergencyAssistance:40,//医疗云-紧急预警弹框
    BirthdayToPatientAssistance:41,//医疗云-人文关怀(生日祝福)
    HealthIndexToPatientAssistance:42,//医疗云-设备体征测量弹框
    typeToDescription: function (type, defaultDescription) {
        if (CONTENT_TYPES.Image == type) {
            return '[图片]';

+ 1 - 0
src/server/include/endpoints.js

@ -20,6 +20,7 @@ const APIv2 = {
        DataMessage: '/dataMessage',
        CleanMessageToRedis: '/cleanMessageToRedis',
        DoctorSystemMessage: '/doctorSystemMessage',
        PatientSystemMessage: '/patientSystemMessage',
        CloudCarePcManageMessage: '/cloudCarePcManageMessage',//
        CleanMessageLastFetchTimeToRedis: '/cleanMessageLastFetchTimeToRedis'
    },

+ 42 - 0
src/server/models/client/wechat.client.js

@ -579,6 +579,48 @@ class WechatClient extends RedisModel {
    }
    /**
     * 医疗云 居民端发送socket
     * @param doctorId
     * @param message
     * @param response
     */
    CloudPatientSystemMessage(patient,message,handler) {
        let self = this;
        let patientSYSTEMClient = clientCache.findByIdAndType("patient_system_"+patient,SOCKET_TYPES.PATIENT_SYSTEM);
        if(!patientSYSTEMClient){
            log.warn("target pcManage is not online!");
            ModelUtil.emitOK(self.eventEmitter, {status: 1,message:"pcManage_not_online"});
            return;
        }else {
            if (message.content_type+""==CONTENT_TYPES.BirthdayToPatientAssistance) {//人文关怀(生日祝福)
                patientSYSTEMClient.socket.emit('message', {
                    title:message.title,
                    code:message.code,
                    content: message.content,
                    relation_code:message.relation_code,
                    type: message.content_type,
                    extend: message.extend
                });
            }
            if (message.content_type+""==CONTENT_TYPES.HealthIndexToPatientAssistance) {//体征设备上传
                patientSYSTEMClient.socket.emit('message', {
                    title:message.title,
                    code:message.code,
                    content: message.content,//体征数据
                    relation_code:message.relation_code,
                    type: message.content_type,
                    content_notice:message.content_notice,
                    extend: message.extend
                });
            }
        }
        ModelUtil.emitOK(self.eventEmitter, {status: 200});
        return;
    }
    static sendPcImSocket(targetId, message, sessionType) {
        if (message.content_type == CONTENT_TYPES.PlainText ||
            message.content_type == CONTENT_TYPES.Image ||