| | |
| | | method: "get", |
| | | }); |
| | | } |
| | | // 指标统计 |
| | | export function Labelstatistics(Id) { |
| | | return request({ |
| | | url: "/smartor/serviceSubtaskDetail/countPatByTarget/" + Id, |
| | | method: "get", |
| | | }); |
| | | } |
| | | // 修改指标及其关联选项 |
| | | export function gettargetInfoedit(data) { |
| | | return request({ |
| | |
| | | bottom: 0px; |
| | | } |
| | | .el-scrollbar__wrap { |
| | | height: 49px; |
| | | height: 59px; |
| | | } |
| | | } |
| | | } |
| | |
| | | justify-content: center; |
| | | padding: 30px; |
| | | background: #daeaf5; |
| | | |
| | | color:blue |
| | | img { |
| | | width: 100px; |
| | | height: 100px; |
| | |
| | | border: 1px solid #dcdfe6; |
| | | -webkit-box-shadow: 0 2px 4px 0 rgba(0, 0, 0, 0.12), |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | |
| | | .topic-dev { |
| | | margin-bottom: 25px; |
| | | font-size: 20px !important; |
| | |
| | | subId: this.id, |
| | | taskid: this.taskid, |
| | | scriptid: item.id, |
| | | templatequestionnum:item.scriptno, |
| | | questiontext: item.scriptContent, |
| | | }; |
| | | if (item.scriptType == 2 && item.scriptResult[0]) { |
| | |
| | | this.tableDatatop.forEach((item, index) => { |
| | | console.log(item.scriptResult, "scriptResult"); |
| | | item.scriptResult = item.scriptResult.join("&"); |
| | | item.templatequestionnum = index + 1; |
| | | // item.templatequestionnum = index + 1; |
| | | item.subId = this.id; |
| | | item.taskid = this.taskid; |
| | | item.asrtext = item.matchedtext; |
| | | item.templatequestionnum = item.scriptno; |
| | | item.targetid = item.targetid; |
| | | item.scriptid = item.id; |
| | | if (!item.id) { |
| | | item.isoperation = 1; |
| | | } |
| | |
| | | key="nickName" |
| | | prop="nickName" |
| | | /> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | label="主治医生" |
| | | align="center" |
| | | key="nickName" |
| | |
| | | align="center" |
| | | key="nickName" |
| | | prop="nickName" |
| | | /> |
| | | /> --> |
| | | |
| | | <el-table-column |
| | | label="执行状态" |
| | |
| | | key="phone" |
| | | prop="phone" |
| | | /> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | label="责任护士" |
| | | width="120" |
| | | align="center" |
| | |
| | | align="center" |
| | | key="drname" |
| | | prop="drname" |
| | | /> |
| | | /> --> |
| | | |
| | | <!-- <el-table-column |
| | | label="病历号" |
| | |
| | | prop="bedNo" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | label="主治医生" |
| | | align="center" |
| | | key="drname" |
| | |
| | | key="nurseName" |
| | | prop="nurseName" |
| | | width="120" |
| | | /> |
| | | /> --> |
| | | |
| | | <el-table-column |
| | | label="操作" |
| | |
| | | prop="bedNo" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | label="主治医生" |
| | | align="center" |
| | | key="drname" |
| | |
| | | key="nurseName" |
| | | prop="nurseName" |
| | | width="120" |
| | | /> |
| | | /> --> |
| | | |
| | | <el-table-column |
| | | label="操作" |
| | |
| | | align="center" |
| | | key="age" |
| | | prop="age" |
| | | width="60" |
| | | /> |
| | | width="160" |
| | | > <template slot-scope="scope"> |
| | | <span v-if="scope.row.age">{{ scope.row.age }}{{scope.row.ageUnit }}</span><span v-if="scope.row.age2">{{ scope.row.age2 }}{{scope.row.ageUnit2 }}</span> |
| | | |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column |
| | | label="出生年月" |
| | | align="center" |
| | |
| | | allhosp: "1", |
| | | pageSize: 10, |
| | | searchscope: 2, |
| | | tagname:'', |
| | | tagname: "", |
| | | idcardno: undefined, |
| | | name: undefined, |
| | | status: undefined, |
| | |
| | | }, |
| | | RiskMarker(row) { |
| | | this.RiskVisible = true; |
| | | this.RiskObj=row; |
| | | this.RiskObj = row; |
| | | }, |
| | | |
| | | // 取消按钮 |
| | |
| | | /** 重置按钮操作 */ |
| | | resetQuery() { |
| | | this.dateRange = []; |
| | | this.queryParams= { |
| | | (this.queryParams = { |
| | | pageNum: 1, |
| | | allhosp: "1", |
| | | pageSize: 10, |
| | | searchscope: 2, |
| | | }, |
| | | this.handleQuery(); |
| | | }), |
| | | this.handleQuery(); |
| | | }, |
| | | // 多选框选中数据 |
| | | handleSelectionChange(selection) { |
| | |
| | | }); |
| | | }, |
| | | RiskService() { |
| | | |
| | | this.RiskObj.visitFlag = this.Risklist.join(", "); |
| | | this.RiskObj.visitType = this.Riskradio; |
| | | alterpatient(this.RiskObj).then((res) => { |
| | | if (res.code==200) { |
| | | if (res.code == 200) { |
| | | this.getList(); |
| | | this.Risklist=[]; |
| | | this.Riskradio=1; |
| | | this.Risklist = []; |
| | | this.Riskradio = 1; |
| | | this.$modal.msgSuccess("异常记录成功"); |
| | | } |
| | | }); |
| | |
| | | prop="hospitalname" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | label="医生" |
| | | align="center" |
| | | key="drname" |
| | | prop="drname" |
| | | width="120" |
| | | /> |
| | | /> --> |
| | | |
| | | <el-table-column |
| | | label="就诊时间" |
| | |
| | | v-model="inputValue" |
| | | @change="handleInputConfirm" |
| | | filterable |
| | | remote |
| | | :remote-method="remoteMethod" |
| | | allow-create |
| | | default-first-option |
| | | placeholder="请选择/查询" |
| | |
| | | prop="leavehospitaldistrictname" |
| | | width="120" |
| | | /> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | label="主治医生" |
| | | align="center" |
| | | key="drname" |
| | |
| | | key="nurseName" |
| | | prop="nurseName" |
| | | width="120" |
| | | /> |
| | | /> --> |
| | | </el-table> |
| | | <pagination |
| | | v-show="total > 0" |
| | |
| | | }); |
| | | }, |
| | | remoteMethod(value) { |
| | | console.log('触发'); |
| | | |
| | | const illnessqueryParams = { |
| | | pageNum: 1, |
| | | pageSize: 100, |
| | |
| | | key="phone" |
| | | prop="phone" |
| | | /> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | label="责任护士" |
| | | width="120" |
| | | align="center" |
| | |
| | | align="center" |
| | | key="drname" |
| | | prop="drname" |
| | | /> |
| | | /> --> |
| | | |
| | | <!-- <el-table-column |
| | | label="病历号" |
| | |
| | | { label: "身份证", width: "200", prop: "sfzh" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "责任护士", width: "", prop: "nurseName" }, |
| | | { label: "主治医生", width: "", prop: "drname" }, |
| | | // { label: "责任护士", width: "", prop: "nurseName" }, |
| | | // { label: "主治医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "240", prop: "dept" }, |
| | | { label: "病区", width: "240", prop: "leavehospitaldistrictname" }, |
| | | ], |
| | |
| | | { label: "身份证", width: "200", prop: "sfzh" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "责任护士", width: "", prop: "nurseName" }, |
| | | { label: "主治医生", width: "", prop: "drname" }, |
| | | // { label: "责任护士", width: "", prop: "nurseName" }, |
| | | // { label: "主治医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "180", prop: "deptName" }, |
| | | { label: "病区", width: "150", prop: "leavehospitaldistrictname" }, |
| | | ], |
| | |
| | | { label: "身份证", width: "200", prop: "sfzh" }, |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "责任护士", width: "", prop: "nurseName" }, |
| | | { label: "医生", width: "", prop: "drname" }, |
| | | // { label: "责任护士", width: "", prop: "nurseName" }, |
| | | // { label: "医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "180", prop: "dept" }, |
| | | { label: "病区", width: "150", prop: "leavehospitaldistrictname" }, |
| | | ]; |
| | |
| | | key="sfzh" |
| | | prop="sfzh" |
| | | /> |
| | | <el-table-column |
| | | <!-- <el-table-column |
| | | label="责任护士" |
| | | width="120" |
| | | align="center" |
| | |
| | | align="center" |
| | | key="drname" |
| | | prop="drname" |
| | | /> |
| | | /> --> |
| | | |
| | | |
| | | <!-- <el-table-column |
| | |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "患者标签", width: "", prop: "tag" }, |
| | | { label: "责任护士", width: "", prop: "nurseName" }, |
| | | { label: "主治医生", width: "", prop: "drname" }, |
| | | // { label: "责任护士", width: "", prop: "nurseName" }, |
| | | // { label: "主治医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "240", prop: "dept" }, |
| | | { label: "病区", width: "240", prop: "leavehospitaldistrictname" }, |
| | | ], |
| | |
| | | { label: "性别", width: "", prop: "sex" }, |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "出院天数", width: "", prop: "endDay" }, |
| | | { label: "责任护士", width: "", prop: "nurseName" }, |
| | | { label: "主治医生", width: "", prop: "drname" }, |
| | | // { label: "责任护士", width: "", prop: "nurseName" }, |
| | | // { label: "主治医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "180", prop: "deptName" }, |
| | | { label: "病区", width: "150", prop: "leavehospitaldistrictname" }, |
| | | ], |
| | |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "患者标签", width: "", prop: "tag" }, |
| | | { label: "出院天数", width: "", prop: "endDay" }, |
| | | { label: "责任护士", width: "", prop: "nurseName" }, |
| | | { label: "医生", width: "", prop: "drname" }, |
| | | // { label: "责任护士", width: "", prop: "nurseName" }, |
| | | // { label: "医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "180", prop: "dept" }, |
| | | { label: "病区", width: "150", prop: "leavehospitaldistrictname" }, |
| | | ]; |
| | |
| | | { label: "年龄", width: "", prop: "age" }, |
| | | { label: "患者标签", width: "", prop: "tag" }, |
| | | { label: "出院天数", width: "", prop: "endDay" }, |
| | | { label: "责任护士", width: "", prop: "nurseName" }, |
| | | { label: "医生", width: "", prop: "drname" }, |
| | | // { label: "责任护士", width: "", prop: "nurseName" }, |
| | | // { label: "医生", width: "", prop: "drname" }, |
| | | { label: "科室", width: "180", prop: "dept" }, |
| | | { label: "病区", width: "150", prop: "leavehospitaldistrictname" }, |
| | | ]; |
| | |
| | | <div class="value"> |
| | | <el-form ref="form" :model="form" label-width="120px"> |
| | | <el-form-item label="选择指标名称"> |
| | | <el-select v-model="value" filterable placeholder="请选择"> |
| | | <el-select |
| | | remote |
| | | :remote-method="remoteMethod" |
| | | default-first-option |
| | | v-model="value" |
| | | filterable |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | |
| | | </div> |
| | | </div> |
| | | <div class="formindex"> |
| | | <el-table :data="tableData" border style="width: 100%"> |
| | | <el-table-column prop="date" label="指标名称"> </el-table-column> |
| | | <el-table-column prop="name" label="单项名称"> </el-table-column> |
| | | <el-table-column prop="address" label="单项出现次数"> </el-table-column> |
| | | <el-table-column prop="times" label="指标出现次数"> |
| | | <el-table |
| | | v-loading="loading" |
| | | :data="tableData" |
| | | :span-method="objectSpanMethod" |
| | | border |
| | | :summary-method="getSummaries" |
| | | show-summary |
| | | style="width: 100%" |
| | | > |
| | | <el-table-column prop="targetname" label="指标名称"> </el-table-column> |
| | | <el-table-column prop="targetShowCount" label="指标出现次数"> </el-table-column> |
| | | <el-table-column prop="matchedtext" label="单项名称"> </el-table-column> |
| | | <el-table-column prop="count" label="单项选中次数"> </el-table-column> |
| | | <el-table-column prop="percentage" label="占比"> |
| | | <template slot-scope="scope"> |
| | | <span>{{ (Number(scope.row.percentage)*100).toFixed(2) }}%</span> </template> |
| | | </el-table-column> |
| | | <el-table-column prop="proportion" label="占比"> </el-table-column> |
| | | </el-table> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { gettargetInfo, Labelstatistics } from "@/api/AiCentre/index"; |
| | | export default { |
| | | name: "indexanalysis", |
| | | data() { |
| | |
| | | name: "有", |
| | | address: 1, |
| | | times: 2, |
| | | proportion: "50%", |
| | | proportion: "50", |
| | | }, |
| | | { |
| | | date: "发热有无", |
| | | name: "无", |
| | | address: 1, |
| | | times: 2, |
| | | proportion: "50%", |
| | | proportion: "50", |
| | | }, |
| | | { |
| | | date: "发热有无", |
| | | name: "其他", |
| | | address: 0, |
| | | times: 2, |
| | | proportion: "0%", |
| | | proportion: "0", |
| | | }, |
| | | ], |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 66, |
| | | }, |
| | | }; |
| | | }, |
| | | |
| | | created() {}, |
| | | created() { |
| | | this.getList(); |
| | | }, |
| | | |
| | | methods: {}, |
| | | methods: { |
| | | getList() { |
| | | this.loading = true; |
| | | gettargetInfo(this.queryParams).then((res) => { |
| | | this.targetList = res.rows; |
| | | this.Labelstatistics(res.rows[0].id) |
| | | }); |
| | | }, |
| | | Labelstatistics(id){ |
| | | Labelstatistics(id).then((res) => { |
| | | this.tableData = res.data; |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | remoteMethod(value) { |
| | | const illnessqueryParams = { |
| | | pageNum: 1, |
| | | pageSize: 66, |
| | | tagname: value, |
| | | }; |
| | | setTimeout(() => { |
| | | gettargetInfo(this.illnessqueryParams).then((res) => { |
| | | this.targetList = res.rows; |
| | | }); |
| | | }, 200); |
| | | }, |
| | | objectSpanMethod({ row, column, rowIndex, columnIndex }) { |
| | | if (columnIndex === 0 || columnIndex === 1) { |
| | | const totalRows = this.tableData.length; |
| | | if (rowIndex === 0) { |
| | | return [totalRows, 1]; |
| | | } else { |
| | | // 其他行隐藏 |
| | | return [0, 0]; |
| | | } |
| | | } |
| | | }, |
| | | getSummaries(param) { |
| | | const { columns, data } = param; |
| | | const sums = []; |
| | | columns.forEach((column, index) => { |
| | | console.log(data, "data"); |
| | | |
| | | if (index === 0) { |
| | | sums[index] = "合计"; // 修改为“合计”更符合语义 |
| | | return; |
| | | } |
| | | if (column.property === "percentage") { |
| | | // 对占比列进行特殊处理 |
| | | const values = data.map((item) => Number(item[column.property])); |
| | | const total = values.reduce((prev, curr) => { |
| | | const value = Number(curr); |
| | | if (!isNaN(value)) { |
| | | return prev + value; |
| | | } else { |
| | | return prev; |
| | | } |
| | | }, 0); |
| | | sums[index] = `${total*100}%`; // 直接添加百分号 |
| | | } else if (column.property === "targetShowCount") { |
| | | sums[index] = data[0].targetShowCount + " 次"; // 为次数相关列添加单位 |
| | | } else { |
| | | const values = data.map((item) => Number(item[column.property])); |
| | | if (!values.every((value) => isNaN(value))) { |
| | | sums[index] = values.reduce((prev, curr) => { |
| | | const value = Number(curr); |
| | | if (!isNaN(value)) { |
| | | return prev + curr; |
| | | } else { |
| | | return prev; |
| | | } |
| | | }, 0); |
| | | if (column.property === "count") { |
| | | sums[index] += " 次"; // 为次数相关列添加单位 |
| | | } |
| | | } else { |
| | | sums[index] = "/"; |
| | | } |
| | | } |
| | | }); |
| | | return sums; |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | |
| | |
| | | 0 0 6px 0 rgba(0, 0, 0, 0.04); |
| | | margin: 15px; |
| | | .title-top { |
| | | background-color: #00bbd3; |
| | | background-color: #6784f2; |
| | | color: #fff; |
| | | padding: 10px 20px; |
| | | font-size: 20px; |
| | |
| | | [process.env.VUE_APP_BASE_API]: { |
| | | // target: `http://192.168.168.60:8095`, |
| | | // target: `http://192.168.144.34:8095`, |
| | | // target: `http://61.160.111.174:8095`, |
| | | // target: `http://192.168.100.121:8095`, |
| | | target:`http://localhost:8095`, |
| | | // target: `http://192.168.101.135:8095`, |
| | | // target: `http://192.168.101.166:8093`, |