示例#1
0
    def POST(self):
        web.header("Content-Type", "application/json")

        param = web.input(note_code='', version='')
        #print param

        if param.note_code=='':
            return json.dumps({'ret':-4, 'msg':'无效的note_code'})

        # 先指定版本查找,未找到则不指定版本,只按索引号找 2019-02-02
        r2 = db.notes.find_one({'note_code':param['note_code'].upper(), 'version' : param['version']}) # 索引编码大写,
        if r2 is None:
            print 'NOT FOUND NOTE with version'
            r2 = db.notes.find_one({'note_code':param['note_code'].upper()}) # 索引编码大写
            if r2 is None:
                print 'NOT FOUND NOTE'
                return json.dumps({'ret':-5, 'msg':'未找到注释内容!'})

        app_helper.log_app_api('external', 'node_note', param)

        ret_data = {
            'note'   : r2['note_content'],
        }

        return json.dumps({'ret':0,'data':ret_data})
示例#2
0
    def POST(self):
        web.header("Content-Type", "application/json")

        param = web.input(node_id='',
                          include_me='0')  # include_me == 1 同时返回当前节点数据

        #print param

        if param.node_id == '':
            return json.dumps({'ret': -4, 'msg': '无效的node_id'})

        real_node_id = param[
            'node_id']  #app_helper.realid(param['node_id']) # 恢复原始id
        if real_node_id is None:
            return json.dumps({'ret': -4, 'msg': '无效的node_id'})

        ret_data = []

        child_data = find_child(ObjectId(real_node_id), param.include_me)

        for i in child_data:
            ret_data.append({
                'gid': str(i['_id']),  #app_helper.randomid(i['_id']),
                'text': i['text'],
                'class': i.get('node_prop', ''),  # 节点属性 2018-08-14
            })

        app_helper.log_app_api('external', 'next_node', param)

        print ret_data

        return json.dumps({'ret': 0, 'data': ret_data})
示例#3
0
文件: doct.py 项目: jack139/cnnc
    def POST(self):
        web.header('Content-Type', 'application/json')
        param=web.input(page_id_or_code='')

        #print param

        if param['page_id_or_code']=='':
            return json.dumps({'ret' : -4, 'msg' : '无效的page_id_or_code'})

        if len(param['page_id_or_code'])<20: # _id长度为24
            r1 = db.pages.find_one({
                'page_code' : param['page_id_or_code'].upper(),
                #'page_type' : 0,
                'available' : 1
            }, { 'history' : 0 })
            if r1 is None:
                r1 = db.pages.find_one({
                    'page_code' : param['page_id_or_code'].upper()+'#1',  # 加 '#1' 再试一次
                    #'page_type' : 0,
                    'available' : 1
                }, { 'history' : 0 })
                if r1 is None:
                    return json.dumps({'ret' : -7, 'msg' : '页面不可用!'})
        else:
            real_page_id = app_helper.realid(param['page_id_or_code']) # 恢复原始id
            if real_page_id is None:
                return json.dumps({'ret' : -4, 'msg' : '无效的page_id'})

            r1 = db.pages.find_one({'_id': ObjectId(real_page_id)},{ 'history' : 0 })
            if r1 is None:
                return json.dumps({'ret' : -7, 'msg' : '页面不可用!'})

        r1['_id'] = str(r1['_id'])

        if not r1.has_key('start_node'):
            return json.dumps({'ret' : -5, 'msg' : '页面类型错误!'})

        r2 = db.nodes.find_one({'_id':ObjectId(r1['start_node'])})
        if r2 is None:
            return json.dumps({'ret' : -6, 'msg' : '页面数据错误!'})

        if len(r2.get('child',[]))>0:
            r1['type'] = 'map'  # 显示规则树
        else:
            r1['type'] = 'text'  # 显示纯文本

        app_helper.log_app_api('external', 'document', param)

        # 返回
        return json.dumps({'ret' : 0, 'data' : {
                'gid'        : app_helper.randomid(r1['_id']),
                'type'       : r1['type'],
                'title'      : r1['page_name'],
                'page_code'  : r1['page_code'],
                'start_node' : app_helper.randomid(r1['start_node']),
                'text'       : r1['rich_text'],
            } 
        })
示例#4
0
    def POST(self):
        web.header('Content-Type', 'application/json')
        param = web.input(parent_id='')

        #print param
        
        data = []
        last_dir_id = ''
        last_dir_name = ''
        if param['parent_id']!='': # 准备显示目录页
            # 子目录
            real_parent_id = app_helper.realid(param.parent_id) # 恢复原始id
            if real_parent_id is None:
                return json.dumps({'ret' : -4, 'msg' : '无效的parent_id'})

            db_obj=db.pages.find_one({'_id':ObjectId(real_parent_id)})
            if db_obj:
                if db_obj['page_type']!=1:
                    return json.dumps({'ret' : -5, 'msg' : '页面类型错误'})                    
                last_dir_id = str(db_obj['parent_id'])
                last_dir_name = db_obj['dir_name']

            data = get_list(real_parent_id, True)
        else:
            # 根目录
            data = get_list(param['parent_id'], False)

        ret_data = []

        for i in data:
            ret_data.append({
                'gid'       : app_helper.randomid(i['_id']),
                #'parent_id' : app_helper.randomid(i['parent_id']) if i['parent_id']!='' else '',
                'type'      : i['page_type'], # 0 页面 1 目录 2 连接
                'title'     : i['dir_name'] if i['page_type']==1 else i['page_name'],
                'version'   : i['version'] if i.has_key('version') else i['dir_note'],
                #'start_node': app_helper.randomid(i['start_node']) if i['page_type']!=1 else '',
                'page_code' : i.get('page_code', '') if i['page_type']!=1 else '', # type==2 时没有 page_code
            })

        app_helper.log_app_api('external', 'category', param)

        # 返回
        return json.dumps({'ret' : 0, 'data' : ret_data })
示例#5
0
文件: tnm_cate.py 项目: jack139/cnnc
    def POST(self):
        web.header('Content-Type', 'application/json')
        param = web.input(cate_id='')

        #print param

        if param.cate_id == '':
            # 根目录
            data = get_list()
        else:
            data = get_list2(param.cate_id)

        app_helper.log_app_api('external', 'tnm_category', param)

        #print data

        # 返回
        return json.dumps({
            'ret': 0,
            'data': {
                'data': data,
            }
        })
示例#6
0
文件: tnm_page.py 项目: jack139/cnnc
    def POST(self):
        web.header('Content-Type', 'application/json')
        param = web.input(page_id='', only_one='')

        #print param

        if param['page_id'] == '':
            return json.dumps({'ret': -4, 'msg': '参数错误'})

        #r1 = db.tnm.find_one({'_id': ObjectId(app_helper.realid(param['page_id']))},{ 'history' : 0 })
        r1 = db.tnm.find_one({'_id': ObjectId(param['page_id'])},
                             {'history': 0})
        if r1 is None:
            return json.dumps({'ret': -5, 'msg': '分期不存在'})

        r1['_id'] = str(r1['_id'])

        ret_data = ret_count = None

        # 如果only_one==1,直接返回此页面内容,否则检查是否有同名病种,生成多个入口
        if param.only_one == '1':
            # 返回
            ret_data = r1
            ret_count = 1
        else:
            r2 = db.tnm.find(
                {
                    'available': 1,
                    'tnm_name': r1['tnm_name'],
                    #'version'   : r1['version'],
                },
                {
                    'tnm_name': 1,
                    'tnm_subname1': 1,
                    'tnm_subname2': 1,
                    'use_at': 1,
                    'version': 1,
                },
                sort=[('weight', 1)])
            if r2.count() == 1:  # 只有一个病种
                # 返回
                ret_data = r1
                ret_count = 1
            else:
                ret_data = []
                for x in r2:
                    ret_data.append({
                        'gid': str(x['_id']),  #app_helper.randomid(x['_id']),
                        'name': x['tnm_name'],
                        'subname1': x['tnm_subname1'],
                        'subname2': x['tnm_subname2'],
                        'use_at': x['use_at'],
                        'version': x['version'],
                    })

                # 返回 多个入口
                ret_count = r2.count()

        if ret_count == 1:
            x = ret_data

            # 清理tnm因素数据
            for i in x['tnm'].keys():
                if len(x['tnm'][i]) == 0:
                    #print 'tnm pop: ', i
                    x['tnm'].pop(i, None)
                else:
                    for j in x['tnm'][i]:
                        j['code'] = ''.join(j['code'])

            # 清理分期数据
            for i in x['stage']:
                for j in TNM_NAME:
                    if i.has_key(j) and len(i[j]['val']) == 0:
                        #print 'stage pop: ', j
                        i.pop(j, None)
                    elif i.has_key(j) and i[j]['rule'].lower(
                    ) != 'any':  # 旧数据会有and, 都替换为 or
                        i[j]['rule'] = 'or'

                i.pop('desc', None)  # 不返回desc说明信息

            ret_data = {
                'gid': str(x['_id']),  #app_helper.randomid(x['_id']),
                'name': x['tnm_name'],
                'subname1': x['tnm_subname1'],
                'subname2': x['tnm_subname2'],
                'version': x['version'],
                'use_at': x['use_at'],
                'facts': x['tnm'],  # 影响因素
                'stages': x['stage'],  # tnm分期
            }

        app_helper.log_app_api('external', 'tnm_page', param)

        #print ret_data
        print ret_count

        return json.dumps({
            'ret': 0,
            'data': {
                'page_data': ret_data,
                'only_one': ret_count,
            }
        })