量表管理

量表列表: /questionnaires GET

请求参数

参数名 示列值 类型 必须 说明
page 1 number 当前页数
pageSize 10 number 每页条数
title xxx string 标题
sourceId 1 number 来源组织id, 0=云医后台
categoryId 1 number 量表分类id
type 0 number 量表类型
isSingle 1 number 是否单一量表
scoreType 1 number 计分类型
status 1 numbe 量表状态
sort -createdAt string 排序。多个排序字段用,号隔开。sort=-a,b
expand 'source' string 获取指定子资源数据 'stats,source,creator,category,organizations,questionnaireSets,questionnaireSets.category,questionnaireSets.questionCount,questionnaireSets.questions,questionnaireSets.dimensions.comments,questionnaireSets.assessments'
attributes "id,name" string 本资源的字段。不定义该字段时返回所有字段;空数组不返回字段

返回参数

参数名 示列值 说明
page 1 当前页数
pageSize 10 每页条数
limit 10 同 pageSize
offset 2 起始条数
total 3231 符合条件的总数量
items [{ "id": 4, "name": "test2"] 返回数据项
参数名 示列值 类型 说明
id 1 number id
sourceId 1 number 来源组织id,0=云医后台
categoryId 1 number 量表分类id
title "测试" string 标题
description "xx" string 描述
guide "xxx" string 指导语
endRemark "xxx" string 结束语
type 0 number 问卷类型,0=普通问卷, 1=测试问卷, 2=草稿问卷
isSingle 1 number 是否单一问卷, 1=单一问卷, 0=合并问卷
scoreType 0 number 计分类型,0=不计分,1=计分(单因子),2=维度(多因子)
status 0 number 量表状态, 0=编辑中, 1=收集中(已发布)
coverUrl "" string 封面url
lastResultOnly 0 number 是否仅展示最后一个结果, 0=否, 1=是
viewReport 1 number 是否可以查看报告, 0=否, 1=是
showIntro 0 number 是否显示封面, 0=否, 1=是
dataComparisonType 0 number 数据对比类型,0=减分率类型,1=增分率类型
creatorId 0 number 创建者id
creatorType "console" string 创建者类型, console=云医超管, organization=机构端
submitCount 1 number 测评次数,expand传stats才返回
userCount 1 numbe 测评人数, expand传stats才返回
stats { submitCount: 1, userCount: 26 } object 统计数据, submitCount: 测评次数, userCount: 测评人数
source {"id": 1, "name": "test" } object 来源组织信息
creator {"id": 1, "name": "张三" } object 创建者信息
category {"id": 1, "name": "分类1" } object 量表分类信息
organizations [{"id": 1, "name": "组织1"}] array 入库组织列表
questionnaireSets [{ "id": 1, "title": "" }] array 量表集列表
createdAt 1650160322 number 创建时间
updatedAt 1650160322 number 更新时间
  • questionnaireSets: 量表集信息

    单一量表才会创建量表集, 合并量表复用单一量表集

参数名 示列值 类型 说明
id 1 number id
questionnaireId 1 number 单一量表id
code 'PSQI' string 量表代号
serialNumber 'N500' string 量表编号
title "测试" string 标题
scoreType 0 number 计分类型,0=不计分,1=计分(单因子),2=维度(多因子)
categoryId 1 number 量表分类id
description "xx" string 描述
guide "xxx" string 指导语
referenceState 1 number 引用状态,0=未引用,1=已引用
config {} object 配置信息
category {"id": 1, "name": "分类1" } object 子量表分类信息
questions [{ "id": 1, "title": "" }] array 题目列表
questionCount 1 number 题目数量
dimensions [] array 维度列表
summaries [] array 总结结论列表
assessments [] array 维度条件列表
pivotControls [] array 结果逻辑设置列表
createdAt 1650160322 number 创建时间
updatedAt 1650160322 number 更新时间

返回示列

HTTP/1.1 200 OK
{
    "items": [
      {
        "id": 1, // 量表id
        "title": "量表1",
        "type": 0,
        "status": 1,
        "viewReport": 1,
        "sourceId": 1,
        "dataComparisonType": 0,
        "source": {
          "id": 1,
          "name": "demo",
        },
        "creator": {
          "id": 1,
          "name": "张三"
        },
        "category": {
          "id": 1,
          "name": "分类1"
        },
        "organizations": [
          {
            "id": 1,
            "name": "组织一"
          }
        ],
        "questionnaireSets": [
          {
            "id": 1,
            "questionnaireId": 1, // 量表id,
            "index": 1, // 序号
            "code": "PSQI",
            "serialNumber": "N500",
            "title": "量表一",
            "scoreType": 1, // 计分类型,0=不计分,1=计分(单因子),2=维度(多因子)
            "referenceState": 1, // 引用状态,0=未引用,1=已引用
            "description": "", // 描述
            "categoryId": 1, // 分类id
            "guide": "" , // 指导语
            "category": {
              "id": 1,
              "name": "分类1"
            },
            "config": {
              "minScore": 0, // 分值范围,最小值
              "maxScore": 100, // 分值范围, 最大值
              "autoNext": 1, // 是否自动下一题, 0=否, 1=是
              "standardRange": { // 参考范围
                "minScore": 40,
                    "maxScore": 60,
              },
              "tableCfg": { // 表格设置
                "showTotal": 0, // 显示总分, 0=否, 1=是
                "showDimension": 0, // 显示各维度分, 0=否, 1=是
              },
              "graphCfg": { // 图表设置
                "totalGraphType": 1, // 总分图表类型, 0=无,1=雷达图,2=柱状图,3=条形图,4=折线图,5=表格, 6=仪表盘
                "dimensionGraphCfg": [
                  {
                    "type": 6, // 各维度总分图表类型, 0=无,1=雷达图,2=柱状图,3=条形图,4=折线图,5=表格, 6=仪表盘
                    "wnos": ["W1", "W2"], // 显示维度数组
                  }
                ],
              }
            },
            "questionCount": 1, // 题目数量
            "questions": [
              {
                "defaultValue": null,
                "id": 7788,
                "index": 1,
                "qno": "Q1",
                "partition": "Q", // 分区
                "title": "单选一",
                "rftTitle": "",
                "questionnaireSetId": 372,
                "type": 1,
                "isMustAnswer": 1, // 是否必答题,0=否,1=是
                "optionStyleType": 1, // 选项样式,1=勾选,2=下拉
                "isCalcScore": 1, // 是否计算得分, 0=不计算, 1=计算
                "data": {
                  "options":[ // 选项
                    {
                      "value":"A",
                      "text":"选项一",
                    },
                  ],
                  "scorer": { // 分值设置
                    "type": "map",
                    "mapping": [
                      {
                        "value": "A",
                        "score": "1"
                      },
                      {
                        "value": "B",
                        "score": "2"
                      }
                    ]
                  },
                }
              },
              {
                "id": 7789,
                "questionnaireSetId": 372,
                "index": 2,
                "qno": "Q2",
                "type": 2,
                "title": "多选1",
                "rftTitle": "",
                "defaultValue": null,
                "isMustAnswer": 1, // 是否必答题,0=否,1=是
                "optionStyleType": 1, // 选项样式,1=勾选,2=下拉
                "isCalcScore": 1, // 是否计算得分, 0=不计算, 1=计算
                "data": {
                  "options": [
                    {
                      "value": "A",
                      "text": "选项一",
                    },
                    {
                      "value": "B",
                      "text": "选项二",
                    },
                    {
                      "value": "C",
                      "text": "选项三",
                    }
                  ],
                  "scorer": {
                    "type": "map_and_sum",
                    "mapping": [
                      {
                        "value": "A",
                        "score": "1"
                      },
                      {
                        "value": "B",
                        "score": "2"
                      },
                      {
                        "value": "C",
                        "score": "3"
                      }
                    ]
                  }
                },
              },
              {
                "id": 7790,
                "questionnaireSetId": 372,
                "index": 3,
                "qno": "Q3",
                "type": 3,
                "title": "填空题一",
                "rftTitle": "",
                "defaultValue": null,
                "data": {
                },
              },
              {
                "id": 7791,
                "questionnaireSetId": 372,
                "index": 4,
                "qno": "Q4",
                "type": 4,
                "title": "日期题一",
                "rftTitle": "",
                "defaultValue": "2000-01-01",
                "data": {
                },
              },
              {
                "id": 7792,
                "questionnaireSetId": 372,
                "index": 5,
                "qno": "Q5",
                "type": 5,
                "title": "时间题一",
                "rftTitle": "",
                "defaultValue": "00:00",
                "data": {

                },
              },
              {
                "id": 7794,
                "questionnaireSetId": 372,
                "index": 7,
                "qno": "Q7",
                "type": 6,
                "title": "数值题目一",
                "rftTitle": "",
                "defaultValue": "11",
                "data": {
                  "decimals": 0,
                  "min": "0",
                  "max": "200",
                  "scorer": {
                    "type": "answer_value"
                  }
                },
              },
              {
                "id": 7795,
                "questionnaireSetId": 372,
                "index": 8,
                "qno": "Q8",
                "type": 7,
                "title": "地区题一",
                "rftTitle": "",
                "defaultValue": null,
                "data": {
                },
              }
            ],
            "dimensions": [ // 结果设置
              {
                "id": 588,
                "questionnaireSetId": 372,
                "index": 1,
                "wno": "W1",
                "name": "",
                "minScore": null,
                "maxScore": null,
                "factor": { // 计分因子
                  "type": "sum_score"
                },
                "comments": [ // 维度结果
                  {
                    "id": 676,
                    "dimensionId": 588,
                    "index": 1,
                    "matcher": {
                      "type": "range",
                      "min": "2",
                      "max": "10"
                    },
                    "result": "评估结果一",
                    "comment": "<p>XXXX</p>",
                    "alarmLevel": 1, // 预警等级,1=轻,2=中,3=重,4=结果无效
                    "suggest": "xxx", // 建议
                    "createdAt": 1654676817,
                    "updatedAt": 1654676817
                  },
                  {
                    "id": 677,
                    "dimensionId": 588,
                    "index": 2,
                    "matcher": {
                      "type": "range",
                      "min": "11",
                      "max": "50"
                    },
                    "result": "评估结果二",
                    "comment": "<p>嘻嘻嘻</p>",
                    "alarmLevel": 1, // 预警等级,1=轻,2=中,3=重,4=结果无效
                    "suggest": "xxx", // 建议
                    "createdAt": 1654676817,
                    "updatedAt": 1654676817
                  }
                ]
              }
            ],
            "pivotControls": [ // 结果关联逻辑
              {
                "condition": {
                  "type": "comment", // 条件类型, comment=维度结果, dimension=维度
                  "commentId": 1, // 维度结果id
                },
                "action": { // action 结果跳转, type类型: finish=跳转结束, jump=跳转题目, toQno: 跳转题目编号, toIndex: 调到量表对应index
                  "type": "jump",
                  "toId": 1, // 量表id
                }
              },
              {
                "condition": {
                  "type": "comment",
                  "commentId": 4
                },
                "action": {
                  "type": "jump",
                  "toIndex": 1,
                }
              }
            ]
          }
        ],
        "createdAt": 1647846587,
        "updatedAt": 1647846587,
    }],
    "total": 4070,
    "offset": 1,
    "limit": 2,
    "page": 1,
    "pageSize": 2
  }

检查维度表达式: /checkExpression/questionnaires POST

请求参数

参数名 示列值 类型 必须 说明
expression "SUM(Q1,Q2,Q3)" string 维度表达式
questions [] array 题目数组

请求示例:

{
  "expression":  "SUM(Q1,Q2,Q3)",
  "questions": [
    {
      "type": 1, //  题型, 1=单选,2=多选,3=简答,4=日期,5=时钟,6=矩阵单选,7=数值,8=地区,9=时长
      "index": 1, // 序号
      "qno": "Q1", // 编号
      "title": "维度计分-单选1", // 问题
      "data": { // 问题数据
        "options": [ // 选项
          {
            "value": "A", // 值
            "text": "维度计分-单选-选项1", // 选项名
          },
          {
            "value": "B",
            "text": "维度计分-单选-选项2",
          }
        ],
      },
      "scorer": { // 得分设置
        "type": "map",
        "mapping": [
          {
            "value": "A",
            "score": "0"
          },
          {
            "value": "B",
            "score": "5"
          }
        ]
      },
      "minScore": 0, // 最小值
      "maxScore": 5, // 最大值
    },
    {
      "type": 2,
      "index": 2,
      "qno": 2,
      "title": "维度计分-多选1",
      "data": {
        "options": [
          {
            "value": "A",
            "text": "维度计分-多选-选项1",
          },
          {
            "value": "B",
            "text": "维度计分-多选-选项2",
          }
        ]
      },
      "scorer": {
        "type": "map_and_sum",
        "mapping": [
          {
            "value": "A",
            "score": "0"
          },
          {
            "value": "B",
            "score": "5"
          }
        ]
      },
      "minScore": 0,
      "maxScore": 5
    },
    {
      "type": 3,
      "index": 3,
      "qno": "Q3",
      "title": "维度计分-简答1",
      "data": {}
    }
  ]
}

返回参数

参数名 示列值 说明
ok 1 是否有效

返回示列

HTTP/1.1 200 OK
{
  "ok": 1, // 0=无效, 1=有效
  // "minScore": 1, // 最小值
  // "maxScore": 100, // 最大值
}

新建单一量表: /questionnaires POST

请求参数

参数名 示列值 类型 必须 说明
categoryId 1 number 量表分类id
code 'PSQI' string 量表代号
serialNumber 'N500' string 量表编号
title "测试" string 标题
description "xx" string 描述
guide "xxx" string 指导语
endRemark "xxx" string 结束语
isAllPutInQuestion 0 number 题目是否入库
type 0 number 问卷类型,0=普通问卷, 1=测试问卷, 2=草稿问卷
isSingle 1 number 是否单一问卷, 1=单一问卷, 0=合并问卷
scoreType 0 number 计分类型,0=不计分,1=计分(单因子),2=维度(多因子)
coverUrl "" string 封面url
viewReport 1 number 是否可以查看报告, 0=否, 1=是
dataComparisonType 0 number 数据对比类型,0=减分率类型,1=增分率类型
config {} object 配置信息
questions [] array 问题集
dimensions [] array 结果维度
controls [] array 逻辑设置
assessments [] array 维度条件
summaries [] array 总结结论

请求示例:

{
  "isSingle": 0, // 单一量表
  "categoryId": 1, // 量表分类id
  "code": "PSQI", // 量表代号
  "serialNumber": "N500", // 量表编号
  "title": "bbb", // 标题
  "description": "", // 描述
  "guide": "", // 指导语
  "endRemark": "",  // 结束语
  "templateId": 4, // 模板, 量表id
  "scoreType": 0, // 计分方式
  "showIntro": 0, // 是否显示封面
  "coverUrl": "", // 封面URL
  "type": 0, // 问卷类型 0=普通问卷,1=测试问卷, 2-草稿问卷
  "isAllPutInQuestion": 1, // 题目是否全部入库, 0=不加入, 1=全部加入
  "viewReport": 1, // 是否可以查看报告, 0=否, 1=是
  "dataComparisonType": 1,
  "config": {
    "minScore": 0, // 分值范围,最小值
    "maxScore": 100, // 分值范围, 最大值
    "autoNext": 1, // 是否自动下一题, 0=否, 1=是
    "standardRange": { // 参考范围
      "minScore": 40,
          "maxScore": 60,
    },
    "tableCfg": {
      "showTotal": 0, // 显示总分, 0=否, 1=是
      "showDimension": 0, // 显示各维度分, 0=否, 1=是
    },
    "graphCfg": {
      "totalGraphType": 1, // 总分图表类型, 0=无,1=雷达图,2=柱状图,3=条形图,4=折线图,5=表格, 6=仪表盘
     "dimensionGraphCfg": [
        {
          "type": 6, // 各维度总分图表类型, 0=无,1=雷达图,2=柱状图,3=条形图,4=折线图,5=表格, 6=仪表盘
          "wnos": ["W1", "W2"], // 显示维度数组
        }
      ],
    }
  },
  "questions": [ // 题目列表
    {
      "type": 1, // 题目类型, 1=单选,2=多选,3=简答,4=日期,5=时钟,6=矩阵单选,7=数值,8=地区,9=时长
      "index": 1, // 序号
      "id": 1, 
      "qno": "Q1", // 题目编号
      "partition": "Q", // 分区
      "isPutInQuestion": 1, // 是否加入题库, 0=不加入, 1=加入
      "title": "可悲事的有哪些", // 题目标题
      "rftTitle": "", // 题目标题富文本
      "isMustAnswer": 1, // 是否必答题, 0=否,1=是
      "optionStyleType": 1, // 选项样式, 1=勾选,2=下拉
      "isCalcScore": 1, // 是否计算得分, 0=不计算, 1=计算
      "data": { // 题目数据
        "options": [ // 题目选项
          {
            "value": "A",
            "text": "执意求死",
            "score": 0, // scoreType为计分,传score
          },
          {
            "value": "B",
            "text": "无力求生",
            "score": 3,
          }
        ],
      },
      "config": { // 配置信息
        "stepSize": 15, // 步长
        "genderShow": 1, // 性别显示限制, 0=无, 1=男,2=女
        "genderDiff": 0, // 性别区分, 0=不区分, 1=区分 
        "genders": [ // 根据性别设置
            {
                "gender": 1, // 性别, 1=男, 2=女
                "title": "xxx", // 显示标题
            },
            {
                "gender": 2,
                "title": "xxx",
            }
        ],
        "minText": "", // 最小值描述, 只有数值题型有
        "maxText": "", // 最大值描述, 只有数值题型有
      },
      "minScore": 0, // 最小分值
      "maxScore": 0, // 最大分值
      // 分值计算, 单选scorer
      "scorer": {
        "type": "map",
        "mapping": [
          {
            "value": "A",
            "score": 0
          },
          {
            "value": "B",
            "score": 3
          }
        ]
      },
      // 分值计算, 矩阵单选scorer
      "scorer": {
        "type": "map_and_matrix",
        "mapping": [
          {
            "value": "A",
            "score": 0
          },
          {
            "value": "B",
            "score": 3
          }
        ]
      },
      // 分值计算, 多选
      "scorer": {
        "type": "map_and_sum",
        "mapping": [
          {
             "value": "A",
            "score": 1
          },
          {
            "value": "B",
            "score": 2
          }
        ]
      },
      // 分值计算, 数值, 按区间计分
      "scorer": {
        "type": "ranges",
        "ranges": [
          {
            "min": 0,
            "max": 10,
            "score": 1
          },
          {
            "min": 11,
            "max": 50,
            "score": 5
          },
        ]
      },
      // 分值计算, 数值, 按值计分
      "scorer": {
        "type": "answer_value",
        "ranges": []
      }
      // 分值计算, 填空,时长, 日期, 地区, 不传scorer
    }
  ],
  // 逻辑设置
  "controls": [
    {
      "operator": "or", // 关联类型,and=且, or=或, 默认为or
      // condition逻辑条件,  type类型: choice=选中,unChoice=未选中, answered=已答, unAnswered=未答
      "conditions":[
        {
          "qno": "Q1", // 选择题目编号
          "type": "choice", // 选中
          "value": ["A"] // 选项值 , type=choice或unChoice才有value, 
        }
      ],
      // action 结果跳转, type类型: finish=跳转结束, jump=跳转题目, toQno: 跳转题目编号
      "action": { // 跳转结束
        "type": "finish",
        "toQno": "finish",
      },
    },
    {
      "operator": "or", // 关联类型,and=且, or=或, 默认为or
      "conditions": [
        {
          "qno": "Q1", // 选择题目编号
          "type": "answered", // 已答
        },
      ],
      "action": {  // 跳转题目, toQno: 跳转题目编号
        "type": "jump",
        "toQno": "Q1"
      }
    }
  ],
  // 维度结果,不计分
  "dimensions": [
    {
      "name": "", // 维度名称
      "index": 1, // 序号
      "wno": "W1", // 维度编号
      "comments": [ // 维度结果
        {
          "index": 1, // 序号
          "result": "不计分-评估结果1",
          "comment": "不计分描述",
          "alarmLevel": 0, // 预警等级,0=无,1=轻,2=中,3=重,4=结果无效
          "suggest": "xxx", // 建议
          "matcher": { // 结果条件
            "type": "choices", // 类型, choices=选中
            "operator": "and", // 关联类型,and=且, or=或
            "choices": [ // 关联题目
              {
                "operator": "or", // 选中类型, or=选中其中一项, and=全部选中
                "values": [
                  "A"
                ],
                "qno": "Q1" // 题目编号
              },
              {
                "operator": "and",
                "values": [
                  "A"
                ],
                "qno": 1
              }
            ]
          },
        },
        {
          "index": 2,
          "result": "不计分2-评估结果2",
          "comment": "嘻嘻嘻",
          "alarmLevel": 0, // 预警等级,0=无, 1=轻,2=中,3=重,4=结果无效
          "suggest": "xxx", // 建议
          "matcher": {
            "type": "choices",
            "operator": "or",
            "choices": [
              {
                "operator": "or",
                "values": [
                  "A",
                  "B"
                ],
                "qno": "Q1"
              },
              {
                "operator": "and",
                "values": [
                  "A",
                  "B"
                ],
                "qno": "Q1"
              }
            ]
          },
        },
        {  // 默认空结果
          "index": 3,
          "matcher": null,
          "result": "",
          "comment": "",
          "alarmLevel": 0,
          "suggest": "",
        }
      ]
    }
  ],
  // 维度结果, 计分
  "dimensions": [
    {
      "name": "", // 维度名称
      "index": 1, // 序号
      "wno": "W1", // 维度编号
      "factor": {
        "type": "sum_score", // 计分
        "scorePercent": 100, //分值系数,
      },
      "comments": [
        {
          "index": 1, // 序号
          "matcher": { // 分值范围
            "type": "range",
            "min": "0",
            "max": "4"
          },
          "result": "无焦虑", // 结果
          "comment": "在您真实填写的情况下,您的量表得分较低", // 结果描述
          "alarmLevel": 0, // 预警等级,0=无, 1=轻,2=中,3=重,4=结果无效
          "suggest": "xxx", // 建议
        },
        { // 默认空结果
          "index": 2,
          "matcher": null,
          "result": "",
          "comment": "",
          "alarmLevel": 0,
          "suggest": "",
        }
      ]
    }
  ],
  // 维度结果, 维度计分
  "dimensions": [
    {
      "name": "维度1", // 维度名称
      "minScore": 0, // 最大值
      "maxScore": 3, // 最小值
      "config": { // 配置信息
        "genderDiff": 0, // 性别区分, 0=不区分, 1=区分 
        "genders": [ // 根据性别设置
            {
                "gender": 1, // 性别, 1=男, 2=女
                "title": "xxx", // 显示标题
            },
            {
                "gender": 2,
                "title": "xxx",
            }
        ],
      },
      "factor": { // 维度分值因子
        "type": "expression", // sum=求和, avg=平均, expression=自定义公式
        "expression": "SUM(Q1,Q2,Q3)",
        "genders": [ // 性别设置
          {
            "gender": 1, // 性别, 1=男, 2=女
            "expression": "SUM(Q1,Q2)",
            "qnos":[],
          },
          {
            "gender": 2, // 性别, 1=男, 2=女
            "expression": "",
            "qnos": [],
          }
        ]
      },
      "index": 1, // 序号
      "wno": "W1", // 维度编号
      "qnos": [ // 题目绑定编号数组
        "Q1",
        "Q2"
      ],
      "comments": [ // 维度结果
        {
          "index": 1,
          "result": "WW", // 结果
          "comment": "<p>CCC</p>", // 评语
          "alarmLevel": 1, // 预警等级,0=无, 1=轻,2=中,3=重,4=结果无效
          "suggest": "xxx", // 建议
          "matcher": { // 匹配器
            "type": "range", // 分值范围
            "min": 0, // 最小值
            "max": 3, // 最大值
            "minOperator": "<=", // 最小值比较符,默认<=, 可选值: <=, < 
            "maxOperator": "<=", // 最大值比较符, 默认<=, 可选值: <=, <
            "age": { // 年龄设置
              "min": 10,
              "max": 10
            },
            "gender": 0, // 性别, 1=男, 2=女,
            "scoreType": 0, // 得分计算类型, 0=得分, 1=原始分, 2=T分, 3=K分
          },
        }
      ],
    }
  ],
  // 维度计分, 维度条件
  "assessments": [
    {
      "id": 1, // 条件id,
      "questionnaireSetId": 1, // 问题集id
      "index": 1, // 序号
      "name": "", //条件名称
      "matcher": { // 条件匹配器
        "type":"expression",
        "expression":"Q1==1",
      },
      "comment": "条件评语",
      "suggest": "建议",
    }
  ],
    // 维度计分, 总结结论
  "summaries": [
    {
      "id": 1, // 总结id,
      "questionnaireSetId": 1, // 问题集id
      "result": "WW", // 结果
      "comment": "<p>CCC</p>", // 评语
      "alarmLevel": 1, // 预警等级,0=无, 1=轻,2=中,3=重,4=结果无效
      "suggest": "xxx", // 建议
      "matcher": { // 匹配器
        "type": "range", // 分值范围
        "min": 0, // 最小值
        "max": 3, // 最大值
      },
    }
  ],
}

返回结果: 量表信息

编辑单一量表: /questionnaires/:id PUT

请求参数

参数名 示列值 类型 必须 说明
categoryId 1 number 量表分类id
Code 'PSQI' string 量表代号
SerialNumber 'N500' string 量表编号
title "测试" string 标题
description "xx" string 描述
guide "xxx" string 指导语
endRemark "xxx" string 结束语
isAllPutInQuestion 0 number 题目是否入库
type 0 number 问卷类型,0=普通问卷, 1=测试问卷, 2=草稿问卷
scoreType 0 number 计分类型,0=不计分,1=计分(单因子),2=维度(多因子)
coverUrl "" string 封面url
viewReport 1 number 是否可以查看报告, 0=否, 1=是
dataComparisonType 0 number 数据对比类型,0=减分率类型,1=增分率类型
config {} object 配置信息
questions [] array 问题集
dimensions [] array 结果维度
controls [] array 逻辑设置
assessments [] array 维度条件
summaries [] array 总结结论

请求示例:

{
  "code": "PSQI", // 量表代号
  "serialNumber": "N500", // 量表编号
  "categoryId": 1, // 量表分类id
  "title": "bbb", // 标题
  "description": "", // 描述
  "guide": "", // 指导语
  "endRemark": "",  // 结束语
  "scoreType": 0, // 计分方式
  "showIntro": 0, // 是否显示封面
  "coverUrl": "", // 封面URL
  "type": 0, // 问卷类型 0=普通问卷,1=测试问卷, 2-草稿问卷
  "isAllPutInQuestion": 1, // 题目是否全部入库, 0=不加入, 1=全部加入
  "viewReport": 1, // 是否可以查看报告, 0=否, 1=是 
  "dataComparisonType": 1,
  "config": {
    "minScore": 0, // 分值范围,最小值
    "maxScore": 100, // 分值范围, 最大值
    "autoNext": 1, // 是否自动下一题, 0=否, 1=是
    "standardRange": { // 参考范围
      "minScore": 40,
          "maxScore": 60,
    },
    "tableCfg": {
      "showTotal": 0, // 显示总分, 0=否, 1=是
      "showDimension": 0, // 显示各维度分, 0=否, 1=是
    },
    "graphCfg": {
      "totalGraphType": 1, // 总分图表类型, 0=无,1=雷达图,2=柱状图,3=条形图,4=折线图,5=表格, 6=仪表盘
      "dimensionGraphCfg": [
        {
          "type": 6, // 各维度总分图表类型, 0=无,1=雷达图,2=柱状图,3=条形图,4=折线图,5=表格, 6=仪表盘
          "wnos": ["W1", "W2"], // 显示维度数组
        }
      ],
    }
  },
  "questions": [ // 题目列表
    {
      "id": 1, // 问题id, 编辑必传
      "type": 1, // 题目类型, 1=单选,2=多选,3=简答,4=日期,5=时间,6=矩阵单选,7=数值,8=地区
      "index": 1, // 序号
      "qno": "Q1", // 题目编号
      "partition": "Q", // 分区
      "isPutInQuestion": 1, // 是否加入题库, 0=不加入, 1=加入
      "title": "可悲事的有哪些", // 题目标题
      "rftTitle": "", // 题目标题富文本
      "isMustAnswer": 1, // 是否必答题, 0=否,1=是
      "optionStyleType": 1, // 选项样式, 1=勾选,2=下拉
      "data": { // 题目数据
        "options": [ // 题目选项
          {
            "value": "A",
            "text": "执意求死",
          },
          {
            "value": "B",
            "text": "无力求生",
          }
        ],
      },
      "minScore": 0, // 最小分值
      "maxScore": 0, // 最大分值
    }
  ],
  // 逻辑设置
  "controls": [
    {
      "operator": "or", // 关联类型,and=且, or=或, 默认为or
      // condition逻辑条件,  type类型: choice=选中,unChoice=未选中, answered=已答, unAnswered=未答
      "conditions":[
        {
          "qno": "Q1", // 选择题目编号
          "type": "choice", // 选中
          "value": ["A"] // 选项值 , type=choice或unChoice才有value, 
        }
      ],
      // action 结果跳转, type类型: finish=跳转结束, jump=跳转题目, toQno: 跳转题目编号
      "action": { // 跳转结束
        "type": "finish",
        "toQno": "finish",
      },
    },
    {
      "operator": "or", // 关联类型,and=且, or=或, 默认为or
      "conditions": [
        {
          "qno": "Q1", // 选择题目编号
          "type": "answered", // 已答
        },
      ],
      "action": {  // 跳转题目, toQno: 跳转题目编号
        "type": "jump",
        "toQno": "Q1"
      }
    }
  ],
  // 维度结果,不计分
  "dimensions": [
    {
      "id": 1, // 维度id,
      "name": "", // 维度名称
      "index": 1, // 序号
      "wno": "W1", // 维度编号
      "comments": [ // 维度结果
        {
          "id": 1, // 维度结果id
          "index": 1, // 序号
          "matcher": { // 结果条件
            "type": "choices", // 类型, choices=选中
            "operator": "and", // 关联类型,and=且, or=或
            "choices": [ // 关联题目
              {
                "operator": "or", // 选中类型, or=选中其中一项, and=全部选中
                "values": [
                  "A"
                ],
                "qno": "Q1" // 题目编号
              },
              {
                "operator": "and",
                "values": [
                  "A"
                ],
                "qno": "Q1"
              }
            ]
          },
          "result": "不计分-评估结果1",
          "comment": "不计分描述",
        },
        {  // 默认空结果
          "id": 2,
          "index": 2,
          "matcher": null,
          "result": "",
          "comment": "",
        }
      ]
    }
  ],
  // 维度结果, 计分
  "dimensions": [
    {
      "id": 1, // 维度id
      "name": "", // 维度名称
      "index": 1, // 序号
      "wno": "W1", // 维度编号
      "factor": {
        "type": "sum_score", // 计分
        "scorePercent": 100, //分值系数
      },
      "comments": [
        {
          "id": 1, // 维度结果id
          "index": 1, // 序号
          "matcher": { // 分值范围
            "type": "range",
            "min": "0",
            "max": "4"
          },
          "result": "无焦虑", // 结果
          "comment": "在您真实填写的情况下,您的量表得分较低", // 结果描述
        },
        { // 默认空结果
          "id": 2, // 维度结果id
          "index": 2,
          "matcher": null,
          "result": "",
          "comment": "",
        }
      ]
    }
  ],
  // 维度结果, 维度计分
  "dimensions": [
    {
      "id": 1, // 维度id
      "name": "维度1", // 维度名称
      "minScore": 0, // 最大值
      "maxScore": 3, // 最小值
      "factor": { // 维度分值因子
        "type": "expression", // sum=求和, avg=平均, expression=自定义公式
        "expression": "SUM(Q1,Q2,Q3)",
        "index": -1
      },
      "index": 1, // 序号
      "wno": "W1", // 维度编号
      "qnos": [ // 题目绑定编号数组
        "Q1",
        "Q2"
      ],
      "comments": [
        {
          "id": 1, // 维度结果id
          "index": 1, // 序号
          "result": "WW",
          "comment": "<p>CCC</p>",
          "matcher": {
            "type": "range",
            "min": 0,
            "max": 3
          },
        }
      ],
    }
  ],
  // 维度计分, 维度条件
  "assessments": [
    {
      "id": 1, // 条件id,
      "questionnaireSetId": 1, // 问题集id
      "index": 1, // 序号
      "name": "", //条件名称
      "matcher": { // 条件匹配器
        "type":"expression",
        "expression":"Q1==1",
      },
      "comment": "条件评语"
    }
  ],
}

返回结果: 量表信息

新建合并量表: merge/questionnaires POST

请求参数

参数名 示列值 类型 必须 说明
categoryId 1 number 量表分类id
title "测试" string 标题
description "xx" string 描述
endRemark "xxx" string 结束语
type 0 number 问卷类型,0=普通问卷, 1=测试问卷, 2=草稿问卷
isSingle 1 number 是否单一问卷, 1=单一问卷, 0=合并问卷
coverUrl "" string 封面url
items [] array 合并量表数组
lastResultOnly 0 number 是否仅展示最后一个结果, 0=否, 1=是
viewReport 1 number 是否可以查看报告, 0=否, 1=是
dataComparisonType 0 number 数据对比类型,0=减分率类型,1=增分率类型
mergeConfig {} object 合并量表配置信息

请求示例:

{
  "categoryId": 1, // 量表分类id
  "isSingle": 0, // 合并量表
  "title": "bbb", // 标题
  "description": "", // 描述
  "guide": "", // 指导语
  "endRemark": "", //结束语
  "type": 0, // 问卷类型 0=普通问卷,1=测试问卷, 2-草稿问卷
  "title": "ddd",
  "showIntro": 0, // 是否显示封面
  "coverUrl": "", // 封面URL
  "dataComparisonType": 1, 
  "lastResultOnly": 0,
  "items": [
    { // 量表1
      "questionnaireSetId": 3, // 量表集Id,
      "index": 1, // 序号
      "pivotControls": [ // 结果关联逻辑
          {
            "condition": {
              "type": "comment", // 条件类型, comment=维度结果, dimension=维度
              "commentId": 1, // 维度结果id
            },
            "action": { // action 结果跳转, type类型: finish=跳转结束, jump=跳转题目, toQno: 跳转题目编号, toIndex: 调到量表对应index
              "type": "jump",
              "toId": 1, // 量表id
            }
          },
          {
            "condition": {
              "type": "comment",
              "commentId": 4
            },
            "action": {
              "type": "jump",
              "toIndex": 1,
            }
          }
      ]
    },
    { // 量表2
      "questionSetId": 4, // 量表集Id,
      "index": 2, // 序号
      "pivotControls": [
          {
            "condition": {
              "type": "comment",
              "commentId": 5
            },
            "action": {
              "type": "finish",
              "toQno": "finish"
            }
          },
          {
            "condition": {
              "type": "comment",
              "commentId": 6
            },
            "action": {
              "type": "finish",
              "toQno": "finish"
            }
          }
      ]
    }
  ],
}

返回结果: 量表信息

编辑合并量表: /merge/questionnaires/:id PUT

请求参数

参数名 示列值 类型 必须 说明
categoryId 1 number 量表分类id
title "测试" string 标题
description "xx" string 描述
endRemark "xxx" string 结束语
type 0 number 问卷类型,0=普通问卷, 1=测试问卷, 2=草稿问卷
isSingle 1 number 是否单一问卷, 1=单一问卷, 0=合并问卷
coverUrl "" string 封面url
items [] array 合并量表数组
lastResultOnly 0 number 是否仅展示最后一个结果, 0=否, 1=是
viewReport 1 number 是否可以查看报告, 0=否, 1=是
dataComparisonType 0 number 数据对比类型,0=减分率类型,1=增分率类型
mergeConfig {} object 合并量表配置信息

返回结果: 量表信息

量表详情: /questionnaires/:id GET

请求参数

参数名 示列值 类型 必须 说明
id 1 number 资源id
expand 'source' string 获取指定子资源数据 'source,creator,category,organizations,questionnaireSets.questionCount,questionnaireSets.questions,questionnaireSets.dimensions.comments,questionnaireSets.assessments'
attributes ["id", "name"] array 本资源的字段。不定义该字段时返回所有字段

返回结果: 量表信息

删除量表: /questionnaires/:id DELETE

请求参数

参数名 示列值 类型 必须 说明
id 1 number 资源id

返回示列

HTTP/1.1 204 NO CONTENT

所有量表: /listAll/questionnaires GET

请求参数

参数名 示列值 类型 必须 说明 默认值
title xxx string 标题
sourceId 1 number 来源组织id, 0=云医后台
categoryId 1 number 量表分类id
type 0 number 量表类型
isSingle 1 number 是否单一量表
scoreType 1 number 计分类型
status 1 numbe 量表状态
expand 'source' string 获取指定子资源数据 'source,creator,category,organizations,questionnaireSets.questionCount,questionnaireSets.questions,questionnaireSets.dimensions.comments,questionnaireSets.assessments'
attributes "id,name" string 本资源的字段。不定义该字段时返回所有字段;空数组不返回字段

返回结果: 量表信息

返回示列

HTTP/1.1 200 OK
[
  {}
]

量表入库组织: /putOrganization/questionnaires POST

请求参数

参数名 示列值 类型 必须 说明
itemIds [1] array Y 资源 id 数组
orgIds [1,2] array Y 组织 id 数组
isBatch 0 number Y 是否批量入库组织, 0=否, 1=是

返回示列

HTTP/1.1 200