yeshijie 4 rokov pred
rodič
commit
f36a95044c

+ 0 - 1
src/server/endpoints/v2/session.endpoint.js

@ -172,7 +172,6 @@ router.get("/", function (req, res) {
    let sessions = new Sessions();
    ControllerUtil.regModelEventHandler(sessions, res);
    //判断是否是中山医院MDT的请求
    if(videoconferencing && videoconferencing == 1){
        sessions.conversionAarticipant(userId, (doctorid) => {

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

@ -44,6 +44,45 @@ const SESSION_TYPES = {
    PRESCRIPTION_HOSPITAL_VIDEO:16, //互联网医院医院在线复诊-视频
    MUC_VIDEO:17, //视频咨询
    GUIDANCE_ASSISTANT: 18,//导诊助手
    EMERGENCY_ASSISTANCE: 20,//紧急救助
    contantsType: function (session_type) {
        if( session_type==SESSION_TYPES.MUC||
            session_type==SESSION_TYPES.P2P||
            session_type==SESSION_TYPES.GROUP||
            session_type==SESSION_TYPES.DISCUSSION||
            session_type==SESSION_TYPES.SPECIALISTGROUP||
            session_type==SESSION_TYPES.PRESCRIPTION||
            session_type==SESSION_TYPES.PRESCRIPTION_HOSPITAL||
            session_type==SESSION_TYPES.COLLABORATION_HOSPITAL||
            session_type==SESSION_TYPES.GUIDANCE_HOSPITAL||
            session_type==SESSION_TYPES.ONDOOR_NURSING||
            session_type==SESSION_TYPES.GENERAL_EXPERT||
            session_type==SESSION_TYPES.PRESCRIPTION_HOSPITAL_VIDEO||
            session_type==SESSION_TYPES.MUC_VIDEO||
            session_type==SESSION_TYPES.GUIDANCE_ASSISTANT||
            session_type==SESSION_TYPES.EMERGENCY_ASSISTANCE){
            return true;
        }
        return false;
    },
    contantsTopticType: function (session_type) {
        if( sessionType == SESSION_TYPES.MUC||
            sessionType == SESSION_TYPES.PRESCRIPTION ||
            sessionType ==SESSION_TYPES.PRESCRIPTION_HOSPITAL ||
            sessionType ==SESSION_TYPES.COLLABORATION_HOSPITAL ||
            sessionType ==SESSION_TYPES.GUIDANCE_HOSPITAL ||
            sessionType ==SESSION_TYPES.GENERAL_EXPERT ||
            sessionType ==SESSION_TYPES.PRESCRIPTION_HOSPITAL_VIDEO ||
            sessionType ==SESSION_TYPES.MUC_VIDEO ||
            sessionType ==SESSION_TYPES.ONDOOR_NURSING||
            sessionType ==SESSION_TYPES.GUIDANCE_ASSISTANT||
            session_type==SESSION_TYPES.EMERGENCY_ASSISTANCE){
            return true;
        }
        return false;
    }
};
exports.SESSION_TYPES = SESSION_TYPES;
@ -278,6 +317,8 @@ const DB_TABLES = {
            return DB_TABLES.MucMessages;
        else if (sessionType == SESSION_TYPES.MUC_VIDEO)
            return DB_TABLES.MucMessages;
        else if (sessionType == SESSION_TYPES.EMERGENCY_ASSISTANCE)
            return DB_TABLES.MucMessages;
        else throw {message: "Unknown session type"};
    }
};

+ 1 - 14
src/server/models/client/app.client.js

@ -216,20 +216,7 @@ class AppClient extends RedisModel {
                }
                var session_type = isNaN(Number(sessionType))?sessionType:Number(sessionType);
                if( session_type==SESSION_TYPES.MUC||
                    session_type==SESSION_TYPES.P2P||
                    session_type==SESSION_TYPES.GROUP||
                    session_type==SESSION_TYPES.DISCUSSION||
                    session_type==SESSION_TYPES.SPECIALISTGROUP||
                    session_type==SESSION_TYPES.PRESCRIPTION||
                    session_type==SESSION_TYPES.PRESCRIPTION_HOSPITAL||
                    session_type==SESSION_TYPES.COLLABORATION_HOSPITAL||
                    session_type==SESSION_TYPES.GUIDANCE_HOSPITAL||
                    session_type==SESSION_TYPES.ONDOOR_NURSING||
                    session_type==SESSION_TYPES.GENERAL_EXPERT||
                    session_type==SESSION_TYPES.PRESCRIPTION_HOSPITAL_VIDEO||
                    session_type==SESSION_TYPES.MUC_VIDEO||
                    session_type==SESSION_TYPES.GUIDANCE_ASSISTANT||
                if( SESSION_TYPES.contantsType(session_type)||
                    message.business_type == MESSAGE_BUSSINESS_TYPE.D_CT_01||
                    message.business_type == MESSAGE_BUSSINESS_TYPE.D_CT_02||
                    message.business_type == MESSAGE_BUSSINESS_TYPE.D_CT_03||

+ 6 - 60
src/server/models/sessions/sessions.js

@ -134,16 +134,7 @@ class Sessions extends RedisModel {
        }
        function callBusinessType(sessionId) {
            if(type == SESSION_TYPES.MUC||
                type == SESSION_TYPES.PRESCRIPTION ||
                type == SESSION_TYPES.PRESCRIPTION_HOSPITAL ||
                type==SESSION_TYPES.COLLABORATION_HOSPITAL ||
                type==SESSION_TYPES.GUIDANCE_HOSPITAL ||
                type==SESSION_TYPES.GENERAL_EXPERT ||
                type==SESSION_TYPES.PRESCRIPTION_HOSPITAL_VIDEO ||
                type==SESSION_TYPES.MUC_VIDEO ||
                type==SESSION_TYPES.ONDOOR_NURSING||
                type==SESSION_TYPES.GUIDANCE_ASSISTANT){
            if(SESSION_TYPES.contantsTopticType(type)){
                callCreate(sessionId, SESSION_BUSINESS_TYPE.PATIENT);
            }else if(type==SESSION_TYPES.DISCUSSION||type==SESSION_TYPES.GROUP){
                callCreate(sessionId, SESSION_BUSINESS_TYPE.DOCTOR);
@ -158,16 +149,7 @@ class Sessions extends RedisModel {
            let createDate = new Date();
            Participants.saveParticipantsToRedis(sessionId, participantArray, createDate, function (res) {
                let sessionKey = RedisModel.makeRedisKey(REDIS_KEYS.Session, sessionId);
                if (type == SESSION_TYPES.MUC||
                    type == SESSION_TYPES.PRESCRIPTION ||
                    type == SESSION_TYPES.PRESCRIPTION_HOSPITAL ||
                    type == SESSION_TYPES.COLLABORATION_HOSPITAL ||
                    type ==SESSION_TYPES.GUIDANCE_HOSPITAL ||
                    type==SESSION_TYPES.GENERAL_EXPERT ||
                    type==SESSION_TYPES.PRESCRIPTION_HOSPITAL_VIDEO ||
                    type==SESSION_TYPES.MUC_VIDEO ||
                    type==SESSION_TYPES.ONDOOR_NURSING||
                    type==SESSION_TYPES.GUIDANCE_ASSISTANT) {
                if (SESSION_TYPES.contantsTopticType(type)) {
                    businessType = 2;
                }
                let session = {
@ -224,16 +206,7 @@ class Sessions extends RedisModel {
        //流程2-判断session的业务类型;
        function callBusinessType() {
            if(type==SESSION_TYPES.MUC||
                type==SESSION_TYPES.PRESCRIPTION ||
                type==SESSION_TYPES.PRESCRIPTION_HOSPITAL ||
                type==SESSION_TYPES.COLLABORATION_HOSPITAL ||
                type==SESSION_TYPES.GUIDANCE_HOSPITAL ||
                type==SESSION_TYPES.GENERAL_EXPERT ||
                type==SESSION_TYPES.PRESCRIPTION_HOSPITAL_VIDEO ||
                type==SESSION_TYPES.MUC_VIDEO ||
                type==SESSION_TYPES.ONDOOR_NURSING||
                type==SESSION_TYPES.GUIDANCE_ASSISTANT){
            if(SESSION_TYPES.contantsTopticType(type)){
                callCreateSession(SESSION_BUSINESS_TYPE.PATIENT);
            }else if(type==SESSION_TYPES.SPECIALISTGROUP||type==SESSION_TYPES.DISCUSSION){
                callCreateSession(SESSION_BUSINESS_TYPE.DOCTOR);
@ -1404,16 +1377,7 @@ class Sessions extends RedisModel {
                                                if(users[j]==userId)continue;
                                                 WechatClient.sendAllRead(users[j],sessionId);
                                            }
                                        }else if(session.type == SESSION_TYPES.MUC ||
                                            session.type == SESSION_TYPES.PRESCRIPTION ||
                                            session.type==SESSION_TYPES.PRESCRIPTION_HOSPITAL ||
                                            session.type==SESSION_TYPES.COLLABORATION_HOSPITAL ||
                                            session.type==SESSION_TYPES.GUIDANCE_HOSPITAL ||
                                            session.type==SESSION_TYPES.GENERAL_EXPERT ||
                                            session.type==SESSION_TYPES.PRESCRIPTION_HOSPITAL_VIDEO ||
                                            session.type==SESSION_TYPES.MUC_VIDEO ||
                                            session.type==SESSION_TYPES.ONDOOR_NURSING||
                                            session.type==SESSION_TYPES.GUIDANCE_ASSISTANT){
                                        }else if(SESSION_TYPES.contantsTopticType(session.type)){
                                            for(var j in users){
                                                if(users[j]==userId)continue;
                                                WechatClient.sendMucAllRead(users[j],userId,sessionId);
@ -1446,16 +1410,7 @@ class Sessions extends RedisModel {
                                                //通知对方自己已经读取数据
                                                WechatClient.sendAllRead(users[j],sessionId);
                                            }
                                        }else if(session.type == SESSION_TYPES.MUC ||
                                            session.type == SESSION_TYPES.PRESCRIPTION ||
                                            session.type==SESSION_TYPES.PRESCRIPTION_HOSPITAL ||
                                            session.type==SESSION_TYPES.COLLABORATION_HOSPITAL ||
                                            session.type==SESSION_TYPES.GUIDANCE_HOSPITAL ||
                                            session.type==SESSION_TYPES.GENERAL_EXPERT ||
                                            session.type==SESSION_TYPES.PRESCRIPTION_HOSPITAL_VIDEO ||
                                            session.type==SESSION_TYPES.MUC_VIDEO ||
                                            session.type==SESSION_TYPES.ONDOOR_NURSING||
                                            session.type==SESSION_TYPES.GUIDANCE_ASSISTANT){
                                        }else if(SESSION_TYPES.contantsTopticType(session.type)){
                                            for(var j in users){
                                                if(users[j]==userId)continue;
                                                //如果是患者拉取数据告诉在线的医生患者已经读取数据
@ -1774,16 +1729,7 @@ class Sessions extends RedisModel {
                            });
                        });
                    }
                    if(sessionType == SESSION_TYPES.MUC ||
                        sessionType == SESSION_TYPES.PRESCRIPTION ||
                        sessionType ==SESSION_TYPES.PRESCRIPTION_HOSPITAL ||
                        sessionType ==SESSION_TYPES.COLLABORATION_HOSPITAL ||
                        sessionType ==SESSION_TYPES.GUIDANCE_HOSPITAL ||
                        sessionType ==SESSION_TYPES.GENERAL_EXPERT ||
                        sessionType ==SESSION_TYPES.PRESCRIPTION_HOSPITAL_VIDEO ||
                        sessionType ==SESSION_TYPES.MUC_VIDEO ||
                        sessionType ==SESSION_TYPES.ONDOOR_NURSING||
                        sessionType ==SESSION_TYPES.GUIDANCE_ASSISTANT){
                    if(SESSION_TYPES.contantsTopticType(sessionType)){
                        if(message.content_type == CONTENT_TYPES.PlainText ||
                           message.content_type == CONTENT_TYPES.Image ||
                           message.content_type == CONTENT_TYPES.Audio||

+ 1 - 10
src/server/models/sessions/topics.js

@ -265,16 +265,7 @@ class Topics extends RedisModel {
     */
    createTopic(topicName, topicId, sessionId, users, messages, sessionType) {
        let self = this;
        if (!sessionId && (sessionType == SESSION_TYPES.MUC||
                sessionType == SESSION_TYPES.PRESCRIPTION ||
                sessionType ==SESSION_TYPES.PRESCRIPTION_HOSPITAL ||
                sessionType ==SESSION_TYPES.COLLABORATION_HOSPITAL ||
                sessionType ==SESSION_TYPES.GUIDANCE_HOSPITAL ||
                sessionType ==SESSION_TYPES.GENERAL_EXPERT ||
                sessionType ==SESSION_TYPES.PRESCRIPTION_HOSPITAL_VIDEO ||
                sessionType ==SESSION_TYPES.MUC_VIDEO ||
                sessionType ==SESSION_TYPES.ONDOOR_NURSING||
                sessionType ==SESSION_TYPES.GUIDANCE_ASSISTANT)) {
        if (!sessionId && SESSION_TYPES.contantsTopticType(sessionType)) {
            ModelUtil.emitOK(self.eventEmitter, {status: -1, message: "会话ID为空,请先生成会话ID"});
            return;
        }