/** * 此文件内容为常用的系统枚举及变量。 */ /** * 系统部署时的配置文件。 * * @type {string} */ "use strict"; let configFile = "config."; if (process.env.IM_PROFILE === "prod") { configFile += "prod"; } else if (process.env.IM_PROFILE === "local") { configFile += "local"; } else if (process.env.IM_PROFILE === "test") { configFile += "test"; } else { configFile += "test"; } exports.CONFIG_FILE = configFile; /** * 会话类型 */ const SESSION_TYPES = { SYSTEM: 0, // 系统会话 MUC: 1, // MUC会话 P2P: 2, // P2P GROUP: 3, // 固定组 DISCUSSION: 4, // 临时讨论组 SPECIALISTGROUP: 5, // 专科医生和家庭医生的固定组 PRESCRIPTION: 8, // 续方 KANGFU: 18, // 续方 PRESCRIPTION_HOSPITAL:9, //医院在线复诊 SCREENING_REFERRAL:1037, //筛查转诊 ONDOOR_NURSING:11 //上门护理 }; exports.SESSION_TYPES = SESSION_TYPES; /** * 会话状态 */ const TOPIC_STATUS = { NEW: 0, // 新建 PROCEEDINGS: 1, // 进行中 ENDED: 10 // 结束 }; exports.SESSION_STATUS = { PROCEEDINGS: 0, // 进行中 ENDED:1 // 结束 }; /** * 会话业务类型 */ exports.SESSION_BUSINESS_TYPE = { PATIENT: 2,//针对患者 DOCTOR: 1//针对医生 }; exports.TOPIC_STATUS = TOPIC_STATUS; /** * 会话参与者角色 */ const PARTICIPANT_ROLES = { HOST: 0,//主持者 REGULAR: 1,//普通参与者 BYSTANDER: 10//旁听者 }; exports.PARTICIPANT_ROLES = PARTICIPANT_ROLES; /** * 消息内容类型。 */ const CONTENT_TYPES = { PlainText: 1, // 文本信息 Image: 2, // 图片信息 Audio: 3, // 语音信息 Article: 4, // 文章信息 GoTo: 5, // 跳转信息,求组其他医生或者邀请其他医生发送的推送消息 TopicBegin: 6, // 议题开始 TopicEnd: 7, // 议题结束 10 11 系统发送的会话消息 PersonalCard: 18, // 个人名片 MessageForward: 19, // 消息转发 TopicInto: 14, // 进入议题 系统发送的会话消息 Video:12,//视频 System:13,//系统消息 PrescriptionCheck:15,//续方审核消息消息 PrescriptionBloodStatus:16,//续方咨询血糖血压咨询消息 PrescriptionFollowupContent:17,//续方咨询随访问卷消息 Rehabilitation: 20, //康复计划发送 ReservationDoorCardInfo: 2101,//上门服务-预约工单卡片信息 ChangeDoorCardInfo: 2102,//上门服务-修改工单卡片信息 ChangeDoorDoctor: 2103,//上门服务-变更工单医生信息 ChangeDoorPackageItems:2104, //上门服务-变更工单服务项信息 typeToDescription: function (type, defaultDescription) { if (CONTENT_TYPES.Image == type) { return '[图片]'; } else if (CONTENT_TYPES.Audio == type) { return '[语音]'; } else if (CONTENT_TYPES.Video == type) { return '[视频]'; } else if (type > 3) { return defaultDescription; } return false; } }; exports.CONTENT_TYPES = CONTENT_TYPES; exports.SOCKET_TYPES={ PATIENT:"patient", DOCTOR:"doctor", PC_DOCTOR:"pc_doctor", PCIM_DOCTOR:"pcim_doctor", DEMO:"demo" } /** * 客户端平台。 */ exports.PLATFORM = { iOS: 0, Android: 1, PC: 4, Wechat: 10 }; /** * 组类型。 */ exports.GROUP_TYPE = { AdminTeam: 1, DiscussionGroup: 2 }; /** * 模型事件。 * * @type {{Error: string, DataNotFound: string, OK: string}} */ exports.MODEL_EVENTS = { Error: "error", // 数据库访问出错 DataNotFound: "no_data", // 找不到指定的数据 OK: "ok", // 操作结束或有数据返回 Exists: "exists" // 数据已存在 }; /** * 整型最大值。 */ exports.MAX_INT = 9007199254740992; /** * 置顶会话基础分值,以此为下限向上递增。 */ exports.STICKY_SESSION_BASE_SCORE = 9000000000000; /** * 默认分页大小。 */ exports.DEFAULT_PAGE_SIZE = 100; /** * Redis Key列表与占位符。 */ const REDIS_KEY_REPLACER = "{id}"; exports.REDIS_KEY_REPLACER = REDIS_KEY_REPLACER; exports.SESSION_USER_STATUS = { ONLINE: 0, OTHER: 1 }; exports.REDIS_KEYS = { Users: "users:", User: "users:" + REDIS_KEY_REPLACER, UserAppStatus: "users:" + REDIS_KEY_REPLACER + ":app_status", UserPcStatus: "users:" + REDIS_KEY_REPLACER + ":pc_status", UserWechatStatus: "users:" + REDIS_KEY_REPLACER + ":wechat_status", UserSessions: "users:" + REDIS_KEY_REPLACER + ":sessions", Sessions: "sessions:", Session: "sessions:" + REDIS_KEY_REPLACER, SessionParticipants: "participants:" + REDIS_KEY_REPLACER, SessionParticipantsRole: "participants:" + REDIS_KEY_REPLACER + ":role", Topics: "sessions:" + REDIS_KEY_REPLACER + ":topics", Topic: "topics:" + REDIS_KEY_REPLACER, Messages: "sessions:" + REDIS_KEY_REPLACER + ":messages", MessagesByTimestamp: "sessions:" + REDIS_KEY_REPLACER + ":messages_by_timestamp" }; const DB_TABLES = { Doctors: "doctors", Patients: "patients", P2pMessages: "p2p_messages", MucMessages: "muc_messages", GroupMessages: "group_messages", SystemMessages: "system_messages", Participants: "participants", Sessions: "sessions", Topics: "topics", StickySessions: "sticky_sessions", WlyyConsult:"wlyy_consults", WlyyConsultTeam:"wlyy.wlyy_consult_team", WlyyConsultS:"wlyy.wlyy_consult", WlyyMessage:"wlyy.wlyy_message", MessageNoticeSetting:"wlyy.wlyy_message_notice_setting", SignFamily:"wlyy.wlyy_sign_family", sessionTypeToTableName: function (sessionType) { if (sessionType == SESSION_TYPES.SYSTEM) return DB_TABLES.SystemMessages; else if (sessionType == SESSION_TYPES.MUC) return DB_TABLES.MucMessages; else if (sessionType == SESSION_TYPES.P2P) return DB_TABLES.P2pMessages; else if (sessionType == SESSION_TYPES.SCREENING_REFERRAL) return DB_TABLES.P2pMessages; else if (sessionType == SESSION_TYPES.GROUP) return DB_TABLES.GroupMessages; else if (sessionType == SESSION_TYPES.DISCUSSION) return DB_TABLES.GroupMessages; else if (sessionType == SESSION_TYPES.PRESCRIPTION) return DB_TABLES.MucMessages; else if (sessionType == SESSION_TYPES.KANGFU) return DB_TABLES.MucMessages; else if (sessionType == SESSION_TYPES.PRESCRIPTION_HOSPITAL) return DB_TABLES.MucMessages; else if (sessionType == SESSION_TYPES.ONDOOR_NURSING) return DB_TABLES.MucMessages; else if (sessionType == SESSION_TYPES.SPECIALISTGROUP) return DB_TABLES.GroupMessages; else if (sessionType == SESSION_TYPES.PRESCRIPTION_HOSPITAL) return DB_TABLES.MucMessages; else if (sessionType == SESSION_TYPES.ONDOOR_NURSING) return DB_TABLES.MucMessages; else throw {message: "Unknown session type"}; } }; exports.DB_TABLES = DB_TABLES; const MESSAGE_BUSSINESS_TYPE = { D_CT_01: "D_CT_01",//指定咨询, 您有新的指定咨询 D_CT_02: "D_CT_02",//指定咨询, 您有新的消息 D_CT_03: "D_CT_03",//名医咨询, 您有新的名医咨询 D_CT_04: "D_CT_04",//名医咨询, 您有新的名医咨询 D_CT_05: "D_CT_05",//续方咨询, 您有新的续方咨询 D_CT_06: "D_CT_06",//在线复诊咨询, 您有新的复诊咨询 D_CT_07: "D_CT_07"//上门服务咨询, 您有新的上门服务咨询回复 }; exports.MESSAGE_BUSSINESS_TYPE = MESSAGE_BUSSINESS_TYPE;