def predict(self, request, c): ''' 具体的grpc请求处理 :param request: grpc请求 :param c: grpc context :return: grpc返回结果 ''' with Session(request, c) as context: # 打印请求日志 context.logger.info('req:{}'.format(MessageToDict(request))) # 真实处理请求的地方 ret_code, ret_msg, results = self.engine.predict(context, request.questions, request.strategy) # 生成gen_common_resp common_reply = CommonPbHelper.gen_common_resp(ret_code, ret_msg) resp = nCoV_diagnosis_engine_pb2.DPReply() resp.common_rep.CopyFrom(common_reply) # 填充返回结果 if ret_code == 0: if type(results) is dict: if 'reply_type' in results: resp.reply_type = results['reply_type'] if 'answer' in results: resp.answer = results['answer'] if 'severity_level' in results: resp.severity_level = results['severity_level'] if 'answer_index' in results: resp.answer_index = results['answer_index'] if 'question' in results: ParseDict(results['question'], resp.question) if 'conclusions' in results: ParseDict(results['conclusions'], resp.conclusions) # 填充返回结果的标志,供后续的监控平台使用 context.mark_succ('Query', 1 if ret_code == 0 else 0, ret_code) # 打印返回结果日志 context.logger.info('rep:{}'.format(MessageToDict(resp))) return resp
def predict(self, request, c): ''' grpc request :param request: grpc :param c: grpc context :return: grpc result ''' with Session(request, c) as context: context.logger.info('req:{}'.format(MessageToDict(request))) # call predict function ret_code, ret_msg, results = self.engine.predict( context, request.questions, request.strategy) # generate gen_common_resp common_reply = CommonPbHelper.gen_common_resp(ret_code, ret_msg) resp = nCoV_diagnosis_engine_pb2.DPReply() resp.common_rep.CopyFrom(common_reply) if ret_code == 0: if type(results) is dict: if 'reply_type' in results: resp.reply_type = results['reply_type'] if 'answer' in results: resp.answer = results['answer'] if 'severity_level' in results: resp.severity_level = results['severity_level'] if 'answer_index' in results: resp.answer_index = results['answer_index'] if 'question' in results: ParseDict(results['question'], resp.question) if 'conclusions' in results: ParseDict(results['conclusions'], resp.conclusions) # return flag context.mark_succ('Query', 1 if ret_code == 0 else 0, ret_code) # print log context.logger.info('rep:{}'.format(MessageToDict(resp))) return resp
def _real_test(qs, answer_index): his = [] for q in qs: question = nCoV_diagnosis_engine_pb2.DetailedQuestions() ParseDict(q, question, ignore_unknown_fields=True) his.append(question) with Session(temp_req, None) as context: ret_code, _, result = engine.predict(context, his_questions=his, strategy='beijing') assert ret_code == 0 assert result['reply_type'] == nCoV_diagnosis_engine_pb2.NO_NEED assert result['answer_index'] == answer_index context.mark_succ('Quiz', 1 if ret_code == 0 else 0, ret_code) # def test_case1(): # qs = [{'questionQuery': '是否发烧?', 'candidateSymp': ['是', '否'], 'sympList': ['是'], 'no': 1}, # {'questionQuery': '发烧体温是多少度?', 'candidateSymp': ['<38', '>=38'], # 'sympList': ['<38'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '是否有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '咽痛', '干咳', '腹泻', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 3}] # # _real_test(qs, 1) # # def test_case2(): # qs = [{'questionQuery': '是否发烧?', 'candidateSymp': ['是', '否'], 'sympList': ['是'], 'no': 1}, # {'questionQuery': '发烧体温是多少度?', 'candidateSymp': ['<38', '>=38'], # 'sympList': ['>=38'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '是否有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '咽痛', '干咳', '腹泻', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 3}] # # _real_test(qs, 2) # # def test_case3(): # qs = [{'questionQuery': '是否发烧?', 'candidateSymp': ['是', '否'], 'sympList': ['否'], 'no': 1}, # {'questionQuery': '发烧体温是多少度?', 'candidateSymp': ['<38', '>=38'], # 'sympList': ['<38'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '是否有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '咽痛', '干咳', '腹泻', '以上都没有'], # 'sympList': ['腹泻'], 'no': 3}, # {'questionQuery': '是否有明显的气喘或憋喘等症状?', 'candidateSymp': ['是', '否'], # 'sympList': ['是'], 'no': 4}] # # _real_test(qs, 3) # # def test_case4(): # qs = [{'questionQuery': '是否发烧?', 'candidateSymp': ['是', '否'], 'sympList': ['否'], 'no': 1}, # {'questionQuery': '发烧体温是多少度?', 'candidateSymp': ['<38', '>=38'], # 'sympList': ['<38'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '是否有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '咽痛', '干咳', '腹泻', '以上都没有'], # 'sympList': ['腹泻'], 'no': 3}, # {'questionQuery': '是否有明显的气喘或憋喘等症状?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 4}, # {'questionQuery': '是否休息1~2天病情无好转,或逐渐加重?', 'candidateSymp': ['是', '否'], # 'sympList': ['是'], 'no': 5}] # # _real_test(qs, 4) # # def test_case5(): # qs = [{'questionQuery': '是否发烧?', 'candidateSymp': ['是', '否'], 'sympList': ['否'], 'no': 1}, # {'questionQuery': '发烧体温是多少度?', 'candidateSymp': ['<38', '>=38'], # 'sympList': ['<38'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '是否有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '咽痛', '干咳', '腹泻', '以上都没有'], # 'sympList': ['腹泻'], 'no': 3}, # {'questionQuery': '是否有明显的气喘或憋喘等症状?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 4}, # {'questionQuery': '是否休息1~2天病情无好转,或逐渐加重?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 5}, # {'questionQuery': '年龄?', 'candidateSymp': ['小于5岁', '5~60岁', '60岁以上'], # 'sympList': ['60岁以上'], 'no': 6}] # # _real_test(qs, 5) # # def test_case6(): # qs = [{'questionQuery': '是否发烧?', 'candidateSymp': ['是', '否'], 'sympList': ['否'], 'no': 1}, # {'questionQuery': '发烧体温是多少度?', 'candidateSymp': ['<38', '>=38'], # 'sympList': ['<38'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '是否有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '咽痛', '干咳', '腹泻', '以上都没有'], # 'sympList': ['腹泻'], 'no': 3}, # {'questionQuery': '是否有明显的气喘或憋喘等症状?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 4}, # {'questionQuery': '是否休息1~2天病情无好转,或逐渐加重?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 5}, # {'questionQuery': '年龄?', 'candidateSymp': ['小于5岁', '5~60岁', '60岁以上'], # 'sympList': ['5~60岁'], 'no': 6}, # {'questionQuery': '是否为孕妇?', 'candidateSymp': ['是', '否'], # 'sympList': ['是'], 'no': 7}] # # _real_test(qs, 6) # # def test_case7(): # qs = [{'questionQuery': '是否发烧?', 'candidateSymp': ['是', '否'], 'sympList': ['否'], 'no': 1}, # {'questionQuery': '发烧体温是多少度?', 'candidateSymp': ['<38', '>=38'], # 'sympList': ['<38'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '是否有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '咽痛', '干咳', '腹泻', '以上都没有'], # 'sympList': ['腹泻'], 'no': 3}, # {'questionQuery': '是否有明显的气喘或憋喘等症状?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 4}, # {'questionQuery': '是否休息1~2天病情无好转,或逐渐加重?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 5}, # {'questionQuery': '年龄?', 'candidateSymp': ['小于5岁', '5~60岁', '60岁以上'], # 'sympList': ['5~60岁'], 'no': 6}, # {'questionQuery': '是否为孕妇?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 7}, # {'questionQuery': '是否患有心脏病、慢性肺病、慢性肝肾病、肥胖等慢性病?', # 'candidateSymp': ['是', '否'], 'sympList': ['是'], 'no': 8}] # # _real_test(qs, 7) # # def test_case8(): # qs = [{'questionQuery': '是否发烧?', 'candidateSymp': ['是', '否'], 'sympList': ['否'], 'no': 1}, # {'questionQuery': '发烧体温是多少度?', 'candidateSymp': ['<38', '>=38'], # 'sympList': ['<38'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '是否有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '咽痛', '干咳', '腹泻', '以上都没有'], # 'sympList': ['腹泻'], 'no': 3}, # {'questionQuery': '是否有明显的气喘或憋喘等症状?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 4}, # {'questionQuery': '是否休息1~2天病情无好转,或逐渐加重?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 5}, # {'questionQuery': '年龄?', 'candidateSymp': ['小于5岁', '5~60岁', '60岁以上'], # 'sympList': ['5~60岁'], 'no': 6}, # {'questionQuery': '是否为孕妇?', 'candidateSymp': ['是', '否'], 'sympList': ['否'], 'no': 7}, # {'questionQuery': '是否患有心脏病、慢性肺病、慢性肝肾病、肥胖等慢性病?', # 'candidateSymp': ['是', '否'], 'sympList': ['否'], 'no': 8}, # {'questionQuery': '最近两周是否居住在武汉或去过武汉?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 9}, # {'questionQuery': '最近两周是否接触过来自武汉的发热伴有呼吸道症状的患者,或有与他人聚集性发病?', # 'candidateSymp': ['是', '否'], 'sympList': ['是'], 'no': 10}] # # _real_test(qs, 8) # # def test_case9(): # qs = [{'questionQuery': '是否发烧?', 'candidateSymp': ['是', '否'], 'sympList': ['否'], 'no': 1}, # {'questionQuery': '发烧体温是多少度?', 'candidateSymp': ['<38', '>=38'], # 'sympList': ['<38'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '是否有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '咽痛', '干咳', '腹泻', '以上都没有'], # 'sympList': ['腹泻'], 'no': 3}, # {'questionQuery': '是否有明显的气喘或憋喘等症状?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 4}, # {'questionQuery': '是否休息1~2天病情无好转,或逐渐加重?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 5}, # {'questionQuery': '年龄?', 'candidateSymp': ['小于5岁', '5~60岁', '60岁以上'], # 'sympList': ['5~60岁'], 'no': 6}, # {'questionQuery': '是否为孕妇?', 'candidateSymp': ['是', '否'], 'sympList': ['否'], 'no': 7}, # {'questionQuery': '是否患有心脏病、慢性肺病、慢性肝肾病、肥胖等慢性病?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 8}, # {'questionQuery': '最近两周是否居住在武汉或去过武汉?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 9}, # {'questionQuery': '最近两周是否接触过来自武汉的发热伴有呼吸道症状的患者,或有与他人聚集性发病?', # 'candidateSymp': ['是', '否'], 'sympList': ['否'], 'no': 10}] # # _real_test(qs, 9)
def _real_test(qs, answer_index): his = [] for q in qs: question = nCoV_diagnosis_engine_pb2.DetailedQuestions() ParseDict(q, question, ignore_unknown_fields=True) his.append(question) with Session(temp_req, None) as context: ret_code, _, result = engine.predict(context, his_questions=his, strategy='v3') assert ret_code == 0 assert result['reply_type'] == nCoV_diagnosis_engine_pb2.NO_NEED assert result['answer_index'] == answer_index context.mark_succ('Quiz', 1 if ret_code == 0 else 0, ret_code) print(result['conclusions']) # def test_case1(): # qs = [{'questionQuery': '请问您的年龄阶段是?', 'candidateSymp': ['小于5岁', '5~14岁', '15~60岁', '60岁以上'], # 'sympList': ['15~60岁'], 'no': 1}, # {'questionQuery': '好的,请问您是否为孕妇?', 'candidateSymp': ['是', '否'], # 'sympList': ['是'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '了解,请问您是否患有以下慢性疾病?', # 'candidateSymp': ['慢性心脑血管疾病', '慢性呼吸道疾病', '慢性肝、肾病', '免疫力低下', '其它慢性病', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 3}, # {'questionType': 'MULTI', 'questionQuery': '好的,最近两周内,是否有以下相关情况或接触史?', # 'candidateSymp': ['有武汉及周边地区的旅行或居住史', '接触过武汉及周边(或其他病例聚集区)发热伴呼吸道症状的患者', # '接触过的家人、同事或朋友同时出现发热或呼吸道症状', '接触、探视过疑似病例或确诊病例', '与疑似病例或确诊病例同乘一趟交通工具', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 4}, # {'questionQuery': '了解,请问您是否发热?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 5}, # {'questionType': 'MULTI', 'questionQuery': '收到,请问最近两周内是否还有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '胸闷、憋喘或呼吸困难', '鼻塞', '流鼻涕', # '咽痛', '头痛', '肌肉酸痛', '腹泻', '结膜炎', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 7}, # ] # # _real_test(qs, 1) # # # def test_case2(): # qs = [{'questionQuery': '请问您的年龄阶段是?', 'candidateSymp': ['小于5岁', '5~14岁', '15~60岁', '60岁以上'], # 'sympList': ['15~60岁'], 'no': 1}, # {'questionQuery': '好的,请问您是否为孕妇?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '了解,请问您是否患有以下慢性疾病?', # 'candidateSymp': ['慢性心脑血管疾病', '慢性呼吸道疾病', '慢性肝、肾病', '免疫力低下', '其它慢性病', '以上都没有'], # 'sympList': ['以上都没有'], # 'no': 3}, # {'questionType': 'MULTI', 'questionQuery': '好的,最近两周内,是否有以下相关情况或接触史?', # 'candidateSymp': ['有武汉及周边地区的旅行或居住史', '接触过武汉及周边(或其他病例聚集区)发热伴呼吸道症状的患者', # '接触过的家人、同事或朋友同时出现发热或呼吸道症状', '接触、探视过疑似病例或确诊病例', # '与疑似病例或确诊病例同乘一趟交通工具', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 4}, # {'questionQuery': '了解,请问您是否发热?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 5}, # {'questionType': 'MULTI', 'questionQuery': '收到,请问最近两周内是否还有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '胸闷、憋喘或呼吸困难', '鼻塞', '流鼻涕', # '咽痛', '头痛', '肌肉酸痛', '腹泻', '结膜炎', '以上都没有'], # # 'sympList': ['以上都没有'], 'no': 7}, # ] # # _real_test(qs, 1) # # def test_case3(): # qs = [{'questionQuery': '请问您的年龄阶段是?', 'candidateSymp': ['小于5岁', '5~14岁', '15~60岁', '60岁以上'], # 'sympList': ['15~60岁'], 'no': 1}, # {'questionQuery': '好的,请问您是否为孕妇?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '了解,请问您是否患有以下慢性疾病?', # 'candidateSymp': ['慢性心脑血管疾病', '慢性呼吸道疾病', '慢性肝、肾病', '免疫力低下', '其它慢性病', '以上都没有'], # 'sympList': ['其它慢性病'], # 'no': 3}, # {'questionType': 'MULTI', 'questionQuery': '好的,最近两周内,是否有以下相关情况或接触史?', # 'candidateSymp': ['有武汉及周边地区的旅行或居住史', '接触过武汉及周边(或其他病例聚集区)发热伴呼吸道症状的患者', # '接触过的家人、同事或朋友同时出现发热或呼吸道症状', '接触、探视过疑似病例或确诊病例', # '与疑似病例或确诊病例同乘一趟交通工具', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 4}, # {'questionQuery': '了解,请问您是否发热?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 5}, # {'questionType': 'MULTI', 'questionQuery': '收到,请问最近两周内是否还有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '胸闷、憋喘或呼吸困难', '鼻塞', '流鼻涕', # '咽痛', '头痛', '肌肉酸痛', '腹泻', '结膜炎', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 7}, # ] # # _real_test(qs, 1) # # def test_case4(): # qs = [{'questionQuery': '请问您的年龄阶段是?', 'candidateSymp': ['小于5岁', '5~14岁', '15~60岁', '60岁以上'], # 'sympList': ['15~60岁'], 'no': 1}, # {'questionQuery': '好的,请问您是否为孕妇?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '了解,请问您是否患有以下慢性疾病?', # 'candidateSymp': ['慢性心脑血管疾病', '慢性呼吸道疾病', '慢性肝、肾病', '免疫力低下', '其它慢性病', '以上都没有'], # 'sympList': ['以上都没有'], # 'no': 3}, # {'questionType': 'MULTI', 'questionQuery': '好的,最近两周内,是否有以下相关情况或接触史?', # 'candidateSymp': ['有武汉及周边地区的旅行或居住史', '接触过武汉及周边(或其他病例聚集区)发热伴呼吸道症状的患者', # '接触过的家人、同事或朋友同时出现发热或呼吸道症状', '接触、探视过疑似病例或确诊病例', # '与疑似病例或确诊病例同乘一趟交通工具', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 4}, # {'questionQuery': '了解,请问您是否发热?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 5}, # {'questionType': 'MULTI', 'questionQuery': '收到,请问最近两周内是否还有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '胸闷、憋喘或呼吸困难', '鼻塞', '流鼻涕', # '咽痛', '头痛', '肌肉酸痛', '腹泻', '结膜炎', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 7}, # ] # # _real_test(qs, 1) # # def test_case5(): # qs = [{'questionQuery': '请问您的年龄阶段是?', 'candidateSymp': ['小于5岁', '5~14岁', '15~60岁', '60岁以上'], # 'sympList': ['15~60岁'], 'no': 1}, # {'questionQuery': '好的,请问您是否为孕妇?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '了解,请问您是否患有以下慢性疾病?', # 'candidateSymp': ['慢性心脑血管疾病', '慢性呼吸道疾病', '慢性肝、肾病', '免疫力低下', '其它慢性病', '以上都没有'], # 'sympList': ['以上都没有'], # 'no': 3}, # {'questionType': 'MULTI', 'questionQuery': '好的,最近两周内,是否有以下相关情况或接触史?', # 'candidateSymp': ['有武汉及周边地区的旅行或居住史', '接触过武汉及周边(或其他病例聚集区)发热伴呼吸道症状的患者', # '接触过的家人、同事或朋友同时出现发热或呼吸道症状', '接触、探视过疑似病例或确诊病例', # '与疑似病例或确诊病例同乘一趟交通工具', '以上都没有'], # 'sympList': ['有武汉及周边地区的旅行或居住史'], 'no': 4}, # {'questionQuery': '了解,请问您是否发热?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 5}, # {'questionType': 'MULTI', 'questionQuery': '收到,请问最近两周内是否还有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '胸闷、憋喘或呼吸困难', '鼻塞', '流鼻涕', # '咽痛', '头痛', '肌肉酸痛', '腹泻', '结膜炎', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 7}, # ] # # _real_test(qs, 2) # # def test_case6(): # qs = [{'questionQuery': '请问您的年龄阶段是?', 'candidateSymp': ['小于5岁', '5~14岁', '15~60岁', '60岁以上'], # 'sympList': ['15~60岁'], 'no': 1}, # {'questionQuery': '好的,请问您是否为孕妇?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '了解,请问您是否患有以下慢性疾病?', # 'candidateSymp': ['慢性心脑血管疾病', '慢性呼吸道疾病', '慢性肝、肾病', '免疫力低下', '其它慢性病', '以上都没有'], # 'sympList': ['以上都没有'], # 'no': 3}, # {'questionType': 'MULTI', 'questionQuery': '好的,最近两周内,是否有以下相关情况或接触史?', # 'candidateSymp': ['有武汉及周边地区的旅行或居住史', '接触过武汉及周边(或其他病例聚集区)发热伴呼吸道症状的患者', # '接触过的家人、同事或朋友同时出现发热或呼吸道症状', '接触、探视过疑似病例或确诊病例', # '与疑似病例或确诊病例同乘一趟交通工具', '以上都没有'], # 'sympList': ['有武汉及周边地区的旅行或居住史'], 'no': 4}, # {'questionQuery': '了解,请问您是否发热?', 'candidateSymp': ['是', '否'], # 'sympList': ['是'], 'no': 5}, # {'questionQuery': '请问您体温最高达到多少度?', 'candidateSymp': ['> 37.3℃', '≤ 37.3℃'], # 'sympList': ['> 37.3℃'], 'no': 6}, # {'questionType': 'MULTI', 'questionQuery': '收到,请问最近两周内是否还有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '胸闷、憋喘或呼吸困难', '鼻塞', '流鼻涕', # '咽痛', '头痛', '肌肉酸痛', '腹泻', '结膜炎', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 7}, # ] # # _real_test(qs, 11) # # def test_case7(): # qs = [{'questionQuery': '请问您的年龄阶段是?', 'candidateSymp': ['小于5岁', '5~14岁', '15~60岁', '60岁以上'], # 'sympList': ['15~60岁'], 'no': 1}, # {'questionQuery': '好的,请问您是否为孕妇?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '了解,请问您是否患有以下慢性疾病?', # 'candidateSymp': ['慢性心脑血管疾病', '慢性呼吸道疾病', '慢性肝、肾病', '免疫力低下', '其它慢性病', '以上都没有'], # 'sympList': ['以上都没有'], # 'no': 3}, # {'questionType': 'MULTI', 'questionQuery': '好的,最近两周内,是否有以下相关情况或接触史?', # 'candidateSymp': ['有武汉及周边地区的旅行或居住史', '接触过武汉及周边(或其他病例聚集区)发热伴呼吸道症状的患者', # '接触过的家人、同事或朋友同时出现发热或呼吸道症状', '接触、探视过疑似病例或确诊病例', # '与疑似病例或确诊病例同乘一趟交通工具', '以上都没有'], # 'sympList': ['有武汉及周边地区的旅行或居住史'], 'no': 4}, # {'questionQuery': '了解,请问您是否发热?', 'candidateSymp': ['是', '否'], # 'sympList': ['是'], 'no': 5}, # {'questionQuery': '请问您体温最高达到多少度?', 'candidateSymp': ['> 37.3℃', '≤ 37.3℃'], # 'sympList': ['≤ 37.3℃'], 'no': 6}, # {'questionType': 'MULTI', 'questionQuery': '收到,请问最近两周内是否还有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '胸闷、憋喘或呼吸困难', '鼻塞', '流鼻涕', # '咽痛', '头痛', '肌肉酸痛', '腹泻', '结膜炎', '以上都没有'], # # 'sympList': ['鼻塞'], 'no': 7}, # {'questionQuery': '请问上述症状是否有加重或休息后仍不见好转?', 'candidateSymp': ['是', '否'], # 'sympList': ['是'], 'no': 8} # ] # # _real_test(qs, 12) # # def test_case8(): # qs = [{'questionQuery': '请问您的年龄阶段是?', 'candidateSymp': ['小于5岁', '5~14岁', '15~60岁', '60岁以上'], # 'sympList': ['15~60岁'], 'no': 1}, # {'questionQuery': '好的,请问您是否为孕妇?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '了解,请问您是否患有以下慢性疾病?', # 'candidateSymp': ['慢性心脑血管疾病', '慢性呼吸道疾病', '慢性肝、肾病', '免疫力低下', '其它慢性病', '以上都没有'], # 'sympList': ['以上都没有'], # 'no': 3}, # {'questionType': 'MULTI', 'questionQuery': '好的,最近两周内,是否有以下相关情况或接触史?', # 'candidateSymp': ['有武汉及周边地区的旅行或居住史', '接触过武汉及周边(或其他病例聚集区)发热伴呼吸道症状的患者', # '接触过的家人、同事或朋友同时出现发热或呼吸道症状', '接触、探视过疑似病例或确诊病例', # '与疑似病例或确诊病例同乘一趟交通工具', '以上都没有'], # 'sympList': ['有武汉及周边地区的旅行或居住史'], 'no': 4}, # {'questionQuery': '了解,请问您是否发热?', 'candidateSymp': ['是', '否'], # 'sympList': ['是'], 'no': 5}, # {'questionQuery': '请问您体温最高达到多少度?', 'candidateSymp': ['> 37.3℃', '≤ 37.3℃'], # 'sympList': ['> 37.3℃'], 'no': 6}, # {'questionType': 'MULTI', 'questionQuery': '收到,请问最近两周内是否还有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '胸闷、憋喘或呼吸困难', '鼻塞', '流鼻涕', # '咽痛', '头痛', '肌肉酸痛', '腹泻', '结膜炎', '以上都没有'], # # 'sympList': ['鼻塞'], 'no': 7}, # {'questionQuery': '请问上述症状是否有加重或休息后仍不见好转?', 'candidateSymp': ['是', '否'], # 'sympList': ['是'], 'no': 8} # ] # # _real_test(qs, 13) # # def test_case9(): # qs = [{'questionQuery': '请问您的年龄阶段是?', 'candidateSymp': ['小于5岁', '5~14岁', '15~60岁', '60岁以上'], # 'sympList': ['15~60岁'], 'no': 1}, # {'questionQuery': '好的,请问您是否为孕妇?', 'candidateSymp': ['是', '否'], # 'sympList': ['是'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '了解,请问您是否患有以下慢性疾病?', # 'candidateSymp': ['慢性心脑血管疾病', '慢性呼吸道疾病', '慢性肝、肾病', '免疫力低下', '其它慢性病', '以上都没有'], # 'sympList': ['以上都没有'], # 'no': 3}, # {'questionType': 'MULTI', 'questionQuery': '好的,最近两周内,是否有以下相关情况或接触史?', # 'candidateSymp': ['有武汉及周边地区的旅行或居住史', '接触过武汉及周边(或其他病例聚集区)发热伴呼吸道症状的患者', # '接触过的家人、同事或朋友同时出现发热或呼吸道症状', '接触、探视过疑似病例或确诊病例', # '与疑似病例或确诊病例同乘一趟交通工具', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 4}, # {'questionQuery': '了解,请问您是否发热?', 'candidateSymp': ['是', '否'], # 'sympList': ['是'], 'no': 5}, # {'questionQuery': '请问您体温最高达到多少度?', 'candidateSymp': ['> 37.3℃', '≤ 37.3℃'], # 'sympList': ['> 37.3℃'], 'no': 6}, # {'questionType': 'MULTI', 'questionQuery': '收到,请问最近两周内是否还有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '胸闷、憋喘或呼吸困难', '鼻塞', '流鼻涕', # '咽痛', '头痛', '肌肉酸痛', '腹泻', '结膜炎', '以上都没有'], # # 'sympList': ['以上都没有'], 'no': 7}, # {'questionQuery': '请问上述症状是否休息后无好转,或逐渐加重?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 8} # ] # # _real_test(qs, 8) # # def test_case10(): # qs = [{'questionQuery': '请问您的年龄阶段是?', 'candidateSymp': ['小于5岁', '5~14岁', '15~60岁', '60岁以上'], # 'sympList': ['15~60岁'], 'no': 1}, # {'questionQuery': '好的,请问您是否为孕妇?', 'candidateSymp': ['是', '否'], # 'sympList': ['是'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '了解,请问您是否患有以下慢性疾病?', # 'candidateSymp': ['慢性心脑血管疾病', '慢性呼吸道疾病', '慢性肝、肾病', '免疫力低下', '其它慢性病', '以上都没有'], # 'sympList': ['以上都没有'], # 'no': 3}, # {'questionType': 'MULTI', 'questionQuery': '好的,最近两周内,是否有以下相关情况或接触史?', # 'candidateSymp': ['有武汉及周边地区的旅行或居住史', '接触过武汉及周边(或其他病例聚集区)发热伴呼吸道症状的患者', # '接触过的家人、同事或朋友同时出现发热或呼吸道症状', '接触、探视过疑似病例或确诊病例', # '与疑似病例或确诊病例同乘一趟交通工具', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 4}, # {'questionQuery': '了解,请问您是否发热?', 'candidateSymp': ['是', '否'], # 'sympList': ['是'], 'no': 5}, # {'questionQuery': '请问您体温最高达到多少度?', 'candidateSymp': ['> 37.3℃', '≤ 37.3℃'], # 'sympList': ['≤ 37.3℃'], 'no': 6}, # {'questionType': 'MULTI', 'questionQuery': '收到,请问最近两周内是否还有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '胸闷、憋喘或呼吸困难', '鼻塞', '流鼻涕', # '咽痛', '头痛', '肌肉酸痛', '腹泻', '结膜炎', '以上都没有'], # # 'sympList': ['乏力'], 'no': 7}, # {'questionQuery': '请问上述症状是否有加重或休息后仍不见好转?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 8} # ] # # _real_test(qs, 9) # # # def test_case11(): # qs = [{'questionQuery': '请问您的年龄阶段是?', 'candidateSymp': ['小于5岁', '5~14岁', '15~60岁', '60岁以上'], # 'sympList': ['15~60岁'], 'no': 1}, # {'questionQuery': '好的,请问您是否为孕妇?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '了解,请问您是否患有以下慢性疾病?', # 'candidateSymp': ['慢性心脑血管疾病', '慢性呼吸道疾病', '慢性肝、肾病', '免疫力低下', '其它慢性病', '以上都没有'], # 'sympList': ['以上都没有'], # 'no': 3}, # {'questionType': 'MULTI', 'questionQuery': '好的,最近两周内,是否有以下相关情况或接触史?', # 'candidateSymp': ['有武汉及周边地区的旅行或居住史', '接触过武汉及周边(或其他病例聚集区)发热伴呼吸道症状的患者', # '接触过的家人、同事或朋友同时出现发热或呼吸道症状', '接触、探视过疑似病例或确诊病例', # '与疑似病例或确诊病例同乘一趟交通工具', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 4}, # {'questionQuery': '了解,请问您是否发热?', 'candidateSymp': ['是', '否'], # 'sympList': ['是'], 'no': 5}, # {'questionQuery': '请问您体温最高达到多少度?', 'candidateSymp': ['> 37.3℃', '> 37.3'], # 'sympList': ['> 37.3℃'], 'no': 6}, # {'questionType': 'MULTI', 'questionQuery': '收到,请问最近两周内是否还有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '胸闷、憋喘或呼吸困难', '鼻塞', '流鼻涕', # '咽痛', '头痛', '肌肉酸痛', '腹泻', '结膜炎', '以上都没有'], # # 'sympList': ['乏力'], 'no': 7}, # {'questionQuery': '请问上述症状是否有加重或休息后仍不见好转?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 8} # ] # # _real_test(qs, 5) # # def test_case12(): # qs = [{'questionQuery': '请问您的年龄阶段是?', 'candidateSymp': ['小于5岁', '5~14岁', '15~60岁', '60岁以上'], # 'sympList': ['15~60岁'], 'no': 1}, # {'questionQuery': '好的,请问您是否为孕妇?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '了解,请问您是否患有以下慢性疾病?', # 'candidateSymp': ['慢性心脑血管疾病', '慢性呼吸道疾病', '慢性肝、肾病', '免疫力低下', '其它慢性病', '以上都没有'], # 'sympList': ['以上都没有'], # 'no': 3}, # {'questionType': 'MULTI', 'questionQuery': '好的,最近两周内,是否有以下相关情况或接触史?', # 'candidateSymp': ['有武汉及周边地区的旅行或居住史', '接触过武汉及周边(或其他病例聚集区)发热伴呼吸道症状的患者', # '接触过的家人、同事或朋友同时出现发热或呼吸道症状', '接触、探视过疑似病例或确诊病例', # '与疑似病例或确诊病例同乘一趟交通工具', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 4}, # {'questionQuery': '了解,请问您是否发热?', 'candidateSymp': ['是', '否'], # 'sympList': ['是'], 'no': 5}, # {'questionQuery': '请问您体温最高达到多少度?', 'candidateSymp': ['> 37.3℃', '> 37.3'], # 'sympList': ['> 37.3℃'], 'no': 6}, # {'questionType': 'MULTI', 'questionQuery': '收到,请问最近两周内是否还有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '胸闷、憋喘或呼吸困难', '鼻塞', '流鼻涕', # '咽痛', '头痛', '肌肉酸痛', '腹泻', '结膜炎', '以上都没有'], # # 'sympList': ['胸闷、憋喘或呼吸困难'], 'no': 7} # ] # # _real_test(qs, 15) # # def test_case13(): # qs = [{'questionQuery': '请问您的年龄阶段是?', 'candidateSymp': ['小于5岁', '5~14岁', '15~60岁', '60岁以上'], # 'sympList': ['15~60岁'], 'no': 1}, # {'questionQuery': '好的,请问您是否为孕妇?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '了解,请问您是否患有以下慢性疾病?', # 'candidateSymp': ['慢性心脑血管疾病', '慢性呼吸道疾病', '慢性肝、肾病', '免疫力低下', '其它慢性病', '以上都没有'], # 'sympList': ['以上都没有'], # 'no': 3}, # {'questionType': 'MULTI', 'questionQuery': '好的,最近两周内,是否有以下相关情况或接触史?', # 'candidateSymp': ['有武汉及周边地区的旅行或居住史', '接触过武汉及周边(或其他病例聚集区)发热伴呼吸道症状的患者', # '接触过的家人、同事或朋友同时出现发热或呼吸道症状', '接触、探视过疑似病例或确诊病例', # '与疑似病例或确诊病例同乘一趟交通工具', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 4}, # {'questionQuery': '了解,请问您是否发热?', 'candidateSymp': ['是', '否'], # 'sympList': ['是'], 'no': 5}, # {'questionQuery': '请问您体温最高达到多少度?', 'candidateSymp': ['> 37.3℃', '> 37.3'], # 'sympList': ['≤ 37.3℃'], 'no': 6}, # {'questionType': 'MULTI', 'questionQuery': '收到,请问最近两周内是否还有其它症状?', # 'candidateSymp': ['乏力', '咳嗽', '胸闷、憋喘或呼吸困难', '鼻塞', '流鼻涕', # '咽痛', '头痛', '肌肉酸痛', '腹泻', '结膜炎', '以上都没有'], # # 'sympList': ['胸闷、憋喘或呼吸困难'], 'no': 7} # ] # # _real_test(qs, 14)
from server.test.test_v3 import _real_test from server.config.config import load_config config = load_config() from google.protobuf.json_format import ParseDict, MessageToDict from server.utils.common_help import Session engine = nCoVTestEngine(config) temp_req = nCoV_diagnosis_engine_pb2.DPRequest() # temp_req.strategy = 'wuhan' # temp_req.strategy = 'beijing' temp_req.strategy = 'v3' with Session(temp_req, None) as context: his_question = [] ret_code, ret_msg, result = engine.predict(context, his_question, temp_req.strategy) while result[ 'reply_type'] == nCoV_diagnosis_engine_pb2.NEED_DETAILED_QUESTION: question_info = result['question'] print('\nq_no:{}'.format(question_info['no'])) print('q_type:{}'.format(question_info['question_type'])) print('q:{}'.format(question_info['question_query'])) print('s_a:{}'.format(question_info['candidate_symp'])) answer = input() question_info['symp_list'] = [answer]
def _real_test(qs, answer_index): his = [] for q in qs: question = nCoV_diagnosis_engine_pb2.DetailedQuestions() ParseDict(q, question, ignore_unknown_fields=True) his.append(question) with Session(temp_req, None) as context: ret_code, _, result = engine.predict(context, his_questions=his, strategy='wuhan') assert ret_code == 0 assert result['reply_type'] == nCoV_diagnosis_engine_pb2.NO_NEED assert result['answer_index'] == answer_index context.mark_succ('Quiz', 1 if ret_code == 0 else 0, ret_code) # def test_case1(): # qs = [{'questionQuery': '请问您是否发热?', 'candidateSymp': ['是', '否'], 'sympList': ['是'], 'no': 1}, # {'questionQuery': '请问发热到多少度?', 'candidateSymp': ['> 37.3℃', '≤ 37.3℃'], # 'sympList': ['≤ 37.3℃'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '请问是否还有其它症状?', # 'candidateSymp': ['乏力', '干咳', '鼻塞', '流鼻涕', '咽痛', '头痛', '浑身酸痛', '腹泻', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 3}, # {'questionQuery': '最近两周是否居住在武汉或去过武汉?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 4}, # {'questionQuery': '最近两周是否接触过来自武汉(或其他病例持续传播地区)的发热或有呼吸道症状的患者,或有聚集性发病?', # 'candidateSymp': ['是', '否'], 'sympList': ['否'], 'no': 5} # ] # _real_test(qs, 1) # # def test_case2(): # qs = [{'questionQuery': '请问您是否发热?', 'candidateSymp': ['是', '否'], 'sympList': ['是'], 'no': 1}, # {'questionQuery': '请问发热到多少度?', 'candidateSymp': ['> 37.3℃', '≤ 37.3℃'], # 'sympList': ['> 37.3℃'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '请问是否还有其它症状?', # 'candidateSymp': ['乏力', '干咳', '鼻塞', '流鼻涕', '咽痛', '头痛', '浑身酸痛', '腹泻', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 3}, # {'questionQuery': '最近两周是否居住在武汉或去过武汉?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 4}, # {'questionQuery': '最近两周是否接触过来自武汉(或其他病例持续传播地区)的发热或有呼吸道症状的患者,或有聚集性发病?', # 'candidateSymp': ['是', '否'], 'sympList': ['否'], 'no': 5} # ] # _real_test(qs, 2) # # def test_case3(): # qs = [{'questionQuery': '请问您是否发热?', 'candidateSymp': ['是', '否'], 'sympList': ['是'], 'no': 1}, # {'questionQuery': '请问发热到多少度?', 'candidateSymp': ['> 37.3℃', '≤ 37.3℃'], # 'sympList': ['≤ 37.3℃'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '请问是否还有其它症状?', # 'candidateSymp': ['乏力', '干咳', '鼻塞', '流鼻涕', '咽痛', '头痛', '浑身酸痛', '腹泻', '以上都没有'], # 'sympList': ['流鼻涕'], 'no': 3}, # {'questionQuery': '最近两周是否居住在武汉或去过武汉?', 'candidateSymp': ['是', '否'], 'sympList': ['否'], # 'no': 4}, # {'questionQuery': '最近两周是否接触过来自武汉(或其他病例持续传播地区)的发热或有呼吸道症状的患者,或有聚集性发病?', # 'candidateSymp': ['是', '否'], 'sympList': ['否'], 'no': 5} # ] # _real_test(qs, 3) # # def test_case4(): # qs = [{'questionQuery': '请问您是否发热?', 'candidateSymp': ['是', '否'], 'sympList': ['是'], 'no': 1}, # {'questionQuery': '请问发热到多少度?', 'candidateSymp': ['> 37.3℃', '≤ 37.3℃'], # 'sympList': ['≤ 37.3℃'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '请问是否还有其它症状?', # 'candidateSymp': ['乏力', '干咳', '鼻塞', '流鼻涕', '咽痛', '头痛', '浑身酸痛', '腹泻', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 3}, # {'questionQuery': '最近两周是否居住在武汉或去过武汉?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 4}, # {'questionQuery': '最近两周是否接触过来自武汉(或其他病例持续传播地区)的发热或有呼吸道症状的患者,或有聚集性发病?', # 'candidateSymp': ['是', '否'], 'sympList': ['是'], 'no': 5} # ] # _real_test(qs, 4) # # def test_case5(): # qs = [{'questionQuery': '请问您是否发热?', 'candidateSymp': ['是', '否'], 'sympList': ['是'], 'no': 1}, # {'questionQuery': '请问发热到多少度?', 'candidateSymp': ['> 37.3℃', '≤ 37.3℃'], # 'sympList': ['> 37.3℃'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '请问是否还有其它症状?', # 'candidateSymp': ['乏力', '干咳', '鼻塞', '流鼻涕', '咽痛', '头痛', '浑身酸痛', '腹泻', '以上都没有'], # 'sympList': ['腹泻'], 'no': 3}, # {'questionQuery': '最近两周是否居住在武汉或去过武汉?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 4}, # {'questionQuery': '最近两周是否接触过来自武汉(或其他病例持续传播地区)的发热或有呼吸道症状的患者,或有聚集性发病?', # 'candidateSymp': ['是', '否'], 'sympList': ['否'], 'no': 5} # ] # _real_test(qs, 5) # # def test_case6(): # qs = [{'questionQuery': '请问您是否发热?', 'candidateSymp': ['是', '否'], 'sympList': ['是'], 'no': 1}, # {'questionQuery': '请问发热到多少度?', 'candidateSymp': ['> 37.3℃', '≤ 37.3℃'], # 'sympList': ['> 37.3℃'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '请问是否还有其它症状?', # 'candidateSymp': ['乏力', '干咳', '鼻塞', '流鼻涕', '咽痛', '头痛', '浑身酸痛', '腹泻', '以上都没有'], # 'sympList': ['以上都没有'], 'no': 3}, # {'questionQuery': '最近两周是否居住在武汉或去过武汉?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 4}, # {'questionQuery': '最近两周是否接触过来自武汉(或其他病例持续传播地区)的发热或有呼吸道症状的患者,或有聚集性发病?', # 'candidateSymp': ['是', '否'], 'sympList': ['是'], 'no': 5} # ] # _real_test(qs, 6) # # def test_case7(): # qs = [{'questionQuery': '请问您是否发热?', 'candidateSymp': ['是', '否'], 'sympList': ['是'], 'no': 1}, # {'questionQuery': '请问发热到多少度?', 'candidateSymp': ['> 37.3℃', '≤ 37.3℃'], # 'sympList': ['≤ 37.3℃'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '请问是否还有其它症状?', # 'candidateSymp': ['乏力', '干咳', '鼻塞', '流鼻涕', '咽痛', '头痛', '浑身酸痛', '腹泻', '以上都没有'], # 'sympList': ['腹泻'], 'no': 3}, # {'questionQuery': '最近两周是否居住在武汉或去过武汉?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 4}, # {'questionQuery': '最近两周是否接触过来自武汉(或其他病例持续传播地区)的发热或有呼吸道症状的患者,或有聚集性发病?', # 'candidateSymp': ['是', '否'], 'sympList': ['是'], 'no': 5} # ] # _real_test(qs, 7) # # def test_case8(): # qs = [{'questionQuery': '请问您是否发热?', 'candidateSymp': ['是', '否'], 'sympList': ['是'], 'no': 1}, # {'questionQuery': '请问发热到多少度?', 'candidateSymp': ['> 37.3℃', '≤ 37.3℃'], # 'sympList': ['> 37.3℃'], 'no': 2}, # {'questionType': 'MULTI', 'questionQuery': '请问是否还有其它症状?', # 'candidateSymp': ['乏力', '干咳', '鼻塞', '流鼻涕', '咽痛', '头痛', '浑身酸痛', '腹泻', '以上都没有'], # 'sympList': ['腹泻'], 'no': 3}, # {'questionQuery': '最近两周是否居住在武汉或去过武汉?', 'candidateSymp': ['是', '否'], # 'sympList': ['否'], 'no': 4}, # {'questionQuery': '最近两周是否接触过来自武汉(或其他病例持续传播地区)的发热或有呼吸道症状的患者,或有聚集性发病?', # 'candidateSymp': ['是', '否'], 'sympList': ['是'], 'no': 5} # ] # _real_test(qs, 8)