Beispiel #1
0
 def classify(self, msg: str):
     collection = db.get_collection(name='disease')  # Collection
     if collection.find_one(filter={'疾病名称': msg}):
         return IT_TYPE.CONCEPT
     status, entity = self._match_treat(msg)
     if status:
         return IT_TYPE.TREATMENT, entity
     status, entity = self._match_inquiry(msg)
     if status:
         return IT_TYPE.INQUIRY, entity
     return IT_TYPE.CHAT
Beispiel #2
0
def disease_doc(id: str):
    collection = db.get_collection(name='disease')  # Collection
    d = collection.find_one(
        filter={'_id': jsonb.ObjectId(id)},
        # projection={'疾病链接':0, 'pdf链接':0, '英文名':0, '别名':0, '所属科目':0, 'ICD号':0,})
        projection={
            '疾病名称': 1,
            '概述': 1,
            '临床表现': 1,
            '治疗': 1,
            '预防': 1
        })
    result = reconstruce_doc(d)
    return jsonify(result), 200
Beispiel #3
0
def search_result(query: str, page, per_page):
    result = []
    similarities = []
    seg_query = jieba.cut_for_search(query)
    collection = db.get_collection(name='new_disease')  # Collection
    for doc in collection.find(filter={}):
        seg_title = doc['seg_title']
        id_ = str(doc['_id'])
        similarity = query_similarity_calculation(seg_query, seg_title)
        similarities.append((id_, similarity))
    sim_top_ids = similarity_sort(similarities, page, per_page)
    for id_, _ in sim_top_ids:
        doc = collection.find_one(filter={'_id': jsonb.ObjectId(id_)})
        result.append(doc)
    return result
Beispiel #4
0
def disease_list(page: int = 0):
    collection = db.get_collection(name='disease')  # Collection
    per_page: int = app.config['PER_PAGE']
    find_result = collection.find(filter={},
                                  limit=per_page,
                                  sort={},
                                  skip=per_page * page,
                                  projection={
                                      '疾病链接': 0,
                                      'pdf链接': 0,
                                      '英文名': 0,
                                      '别名': 0,
                                      '所属科目': 0,
                                      'ICD号': 0
                                  })  # Cursor
    u_result = []
    for i in find_result:
        id_ = str(i.pop('_id'))
        i['_id'] = id_
        u_result.append(i)
    return jsonify({'data': u_result}), 200
Beispiel #5
0
import json
import jieba
from flask import Flask, jsonify, request
from pymongo import MongoClient
from bson import json_util as jsonb
from setting import config
from intention import intention_classifier, IT_TYPE
from model import db

app = Flask(__name__)

app.config.from_object(config)

DELETE_KEYS = ['']

collection = db.get_collection(name='disease')


class ChatResponse:
    def __init__(self, it_type, msg, *args, **kwargs):
        self.it_type = it_type
        self.msg = msg

    def build(self):
        if self.it_type == IT_TYPE.CONCEPT:  # 概念
            return self._build_concept_resp()
        elif self.it_type == IT_TYPE.CHAT:  # 闲聊
            return self._build_chat_resp()
        elif self.it_type == IT_TYPE.INQUIRY:  # 巡诊
            return self._build_inquiry_resp()
        elif self.it_type == IT_TYPE.TREATMENT:  # 治疗