机构表单字段说明.md 11 KB

机构表单字段说明文档

文档信息

  • 文档名称:机构管理-新增机构表单字段说明
  • 数据库表名fa_institution
  • 对应功能:机构管理 - 新增机构
  • 源码路径/application/admin/controller/institution/Institution.php
  • 表单视图/application/admin/view/institution/institution/add.html
  • 生成日期:2025-12-05

字段对照表

序号 表单显示名称 数据库字段名 字段类型 是否必填 取值说明
1 机构ID id 文本 机构唯一标识
2 机构名称 name 文本
3 医院级别 institution_level 文本
4 状态 status 单选 1=启用, 2=禁用
5 作为远程诊断医院 super_level 单选 0=否, 1=是
6 地区 area 级联选择 省/市/区,存储时拆分为下面3个字段
7 - 省份 ris_province 文本 - 从area拆分
8 - 城市 ris_city 文本 - 从area拆分
9 - 区县 ris_district 文本 - 从area拆分
10 医院地址 address 文本
11 经度 lng 文本 隐藏字段,通过地址自动获取
12 纬度 lat 文本 隐藏字段,通过地址自动获取
13 商务负责人 sale_id 文本 销售人员ID(多个用逗号分隔)
14 - 销售姓名 sale_name 文本 - 自动从sale_id查询fa_admin表获取nickname
15 代理商 agent_id 文本 从fa_admin表选择,限定group_id=3
16 报告绑定条件 institution_condition 多选 -1=未知,0=手机,1=身份证,2=病历号,3=检查号,4=住院号,5=门诊号,6=病人id(逗号分隔)
17 报告主标题 report_title 文本
18 报告副标题 report_subtitle 文本
19 本地域名 local_domain 文本
20 影像存储单位代码 image_unit_code 文本
21 报告关键字 keyword 文本 关键字ID,多个用逗号分隔
22 - 关键字文本 keyword_text 文本 - 自动从ins_keyword表获取name,逗号分隔
23 检查列表展示字段 custom_field 多选 逗号分隔存储
24 历史检查数据源 interconnected_exam_ins 文本
25 历史检查患者索引字段 interconnected_ins_field 多选 逗号分隔存储
26 报告未出之前是否可以查看影像 report_see 单选 1=可以查看, 0=不可以(默认1)
27 AI报告解读开关 ai_suggest 单选 1=启用, 0=禁用
28 同心智医-报告解读 interpret 单选 0=禁用, 1=启用
29 同心智医-机构编码 interpret_code 文本
30 短信推送患者数字影像链接 patient_sms 单选 0=不发送, 1=发送(默认0)
31 检查自动分配 is_auto_mode 单选 0=不开启, 1=开启(默认0)
32 开启新版浏览器 is_new_browser 单选 0=不开启, 1=开启(默认0)
33 公众号邮件发送功能 patient_send_email 单选 0=不开启, 1=开启(默认0)
34 打印页面是否展示审核医生 review_print 单选 1=展示, 2=不展示(默认1)
35 安装时间 install_time 日期 格式:YYYY-MM-DD
36 患者过滤-检查时间 filter (JSON字段) 文本 存储在filter字段的exam_datetime属性中,格式YYYYMMDD
37 患者过滤-检查类型 filter (JSON字段) 文本 存储在filter字段的exam_class属性中,多个用逗号分隔,如CT,MR
38 打印报告页互认标识 hr_info 文本
39 备注 remark 文本域

重要字段详细说明

1. 作为远程诊断医院 (super_level)

  • 字段名super_level
  • 数据类型:INT
  • 取值
    • 0:否
    • 1:是
  • 说明:标识该机构是否作为远程诊断医院使用
  • 代码位置:Institution.php:29-33

2. 影像存储单位代码 (image_unit_code)

  • 字段名image_unit_code
  • 数据类型:VARCHAR
  • 说明:用于存储机构的影像存储单位代码
  • 代码位置:Institution.php:101-105

3. 打印页面是否展示审核医生 (review_print)

  • 字段名review_print
  • 数据类型:INT
  • 取值
    • 1:展示(默认)
    • 2:不展示
  • 说明:控制打印报告页面是否显示审核医生信息
  • 代码位置:Institution.php:181-185

4. 商务负责人 (sale_id / sale_name)

  • 存储字段sale_id (存储ID,逗号分隔)
  • 显示字段sale_name (存储姓名,逗号分隔)
  • 数据来源
    • fa_auth_group_access 表查询 group_id 为 6 或 7 的用户
    • fa_admin 表获取对应的 id 和 nickname
  • 关联表fa_auth_institution_access 存储机构与销售人员的关联关系
  • 代码位置:Institution.php:184-212

5. 代理商 (agent_id)

  • 字段名agent_id
  • 数据来源
    • fa_auth_group_access 表查询 group_id = 3 的用户
    • fa_admin 表获取对应的用户信息
  • 代码位置:Institution.php:463-485

6. 地区字段 (area / ris_province / ris_city / ris_district)

  • 表单输入area (格式:省/市/区)
  • 数据库存储:拆分为三个字段
    • ris_province:省份
    • ris_city:城市
    • ris_district:区县
  • 处理逻辑

    $area = explode('/',$params['area']);
    $params['ris_province'] = $area[0] ?? '';
    $params['ris_city'] = $area[1] ?? '';
    $params['ris_district'] = $area[2] ?? '';
    
    • 代码位置:Institution.php:152-161

    7. 患者过滤字段 (filter)

    • 字段名filter
    • 数据类型:TEXT (存储JSON格式)
    • 包含属性
    • exam_datetime:检查时间过滤(格式:YYYYMMDD)
    • exam_class:检查类型过滤(如:CT,MR,逗号分隔)
    • 存储格式json { "exam_datetime": "20250101", "exam_class": "CT,MR" }
  • 说明:低于设定检查时间或匹配检查类型的数据不会被患者搜索到

  • 代码位置:Institution.php:170-180

8. 报告绑定条件 (institution_condition)

  • 字段名institution_condition
  • 数据类型:VARCHAR (逗号分隔)
  • 可选值
    • -1:未知
    • 0:手机
    • 1:身份证
    • 2:病历号
    • 3:检查号
    • 4:住院号
    • 5:门诊号
    • 6:病人id
  • 说明:用于配置报告绑定的条件字段
  • 数据来源:conditionDict() 方法定义
  • 代码位置:Institution.php:722-734

数据处理流程

新增机构时的数据处理

  1. 参数接收

    $params = $this->request->post("row/a");
    
    1. 字段转换处理
    2. 地区拆分:arearis_province, ris_city, ris_district
    3. 过滤条件:exam_datetime, exam_classfilter (JSON)
    4. 多选字段:数组 → 逗号分隔字符串
    5. 销售人员:sale_id → 查询获取 sale_name
    6. 关键字:keyword → 查询获取 keyword_text

    7. 关联表处理

    8. 插入 fa_auth_institution_access 表,建立用户与机构的关联关系

    9. 包括创建人和销售人员

    10. 日志记录

      SysLog::recode("institution", "C", $params);
      

编辑机构时的数据处理

  • 与新增流程类似
  • 额外处理销售人员变更:updateSaleInsId() 方法
  • 更新 fa_auth_institution_access 表中的关联关系

关联数据表

主表

  • fa_institution:机构主表

关联表

表名 关联字段 说明
fa_admin agent_id, sale_id 管理员表(代理商、销售人员)
fa_auth_group_access uid, group_id 权限组关联表(筛选代理商和销售)
fa_auth_institution_access uid, institution_id 用户机构访问权限表
ins_keyword keyword 关键字表

业务规则

1. 机构ID唯一性

  • 新增时检查机构ID是否已存在
  • 代码:Institution.php:145-148

2. 销售人员权限

  • 销售人员必须属于权限组 6 或 7
  • 定义位置:Institution.php:54-57

3. 代理商权限

  • 代理商必须属于权限组 3
  • 定义位置:Institution.php:49

4. 安装时间处理

  • 空值时设置为 NULL
  • 代码:Institution.php:141-143

5. 事务处理

  • 新增和编辑操作使用数据库事务
  • 确保数据一致性

API接口说明

1. 销售人员下拉列表

  • 接口/admin/institution/institution/saleSelectList
  • 方法:GET/POST
  • 返回:销售人员列表 (id, nickname)
  • 代码位置Institution.php:492-514

2. 代理商下拉列表

  • 接口/admin/institution/institution/agentSelectList
  • 方法:GET/POST
  • 返回:代理商列表 (id, username)
  • 代码位置Institution.php:463-485

3. 获取经纬度

  • 接口/admin/institution/institution/getLngLat
  • 方法:POST
  • 参数:name (地址名称)
  • 返回:lng (经度), lat (纬度)
  • 代码位置Institution.php:703-720

配置项说明

1. 自定义字段配置

  • 配置键ins_custom_field
  • 获取方式Config::get('ins_custom_field')
  • 代码位置Institution.php:235

2. 互联字段配置

  • 配置键interconnected_ins_field
  • 获取方式Config::get('interconnected_ins_field')
  • 代码位置Institution.php:236

注意事项

  1. 必填字段:id, name, institution_level, status, super_level, area 必须填写

  2. 字段格式

    • 日期格式:YYYY-MM-DD
    • 逗号分隔字段:去除空值,trim处理
  3. 数据校验

    • 使用模型验证器(modelValidate)
    • 验证器路径:/application/admin/validate/institution/Institution.php
  4. 权限控制

    • 代理商和销售人员从特定权限组筛选
    • 通过 fa_auth_institution_access 表控制访问权限
  5. 事务处理

    • 所有增删改操作都在事务中执行
    • 失败时自动回滚
  6. 日志记录

    • 所有操作记录到系统日志
    • 操作类型:C(新增), U(更新), D(删除)

更新记录

日期 版本 说明 修改人
2025-12-05 v1.0 初始版本,整理机构表单所有字段说明 -

相关文档

  • 数据库设计文档
  • 权限管理说明
  • API接口文档