| | |
| | | data: data, |
| | | }); |
| | | } |
| | | // 指标统计 |
| | | export function Labelstatistics(Id) { |
| | | return request({ |
| | | url: "/smartor/serviceSubtaskDetail/countPatByTarget/" + Id, |
| | | method: "get", |
| | | }); |
| | | } |
| | | |
| | | // 删除指标 |
| | | export function deletetarget(userId) { |
| | | return request({ |
| | |
| | | key="remark" |
| | | prop="remark" |
| | | > |
| | | <template slot-scope="scope" v-if="scope.row.remark"> |
| | | <template slot-scope="scope" v-if="scope.row.remark"> |
| | | <el-tooltip |
| | | :content="scope.row.remark" |
| | | placement="top" |
| | |
| | | ><i class="el-icon-s-order"></i>查看详情</span |
| | | ></el-button |
| | | > |
| | | <el-button |
| | | size="medium" |
| | | type="text" |
| | | @click="handleUpdate(scope.row)" |
| | | ><span class="button-textxga" |
| | | ><i class="el-icon-edit"></i>患者过滤</span |
| | | ></el-button |
| | | > |
| | | </template> |
| | | </el-table-column> |
| | | </el-table> |
| | |
| | | </el-row> |
| | | <!-- 添加或修改影像随访对话框 --> |
| | | <el-dialog |
| | | :title="title" |
| | | :visible.sync="addalteropen" |
| | | width="700px" |
| | | append-to-body |
| | | :title="amendtag ? '修改患者信息' : '新增患者'" |
| | | :visible.sync="Labelchange" |
| | | width="900px" |
| | | > |
| | | <el-form ref="form" :model="form" label-width="100px"> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="12" |
| | | ><el-form-item label="任务名称"> |
| | | <el-input v-model="form.name"></el-input> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24" |
| | | ><el-form-item label="所属科室"> |
| | | <el-select v-model="form.region" placeholder="请选择科室"> |
| | | <el-option label="区域一" value="shanghai"></el-option> |
| | | <el-option label="区域二" value="beijing"></el-option> |
| | | </el-select> </el-form-item></el-col |
| | | ></el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24" |
| | | ><el-form-item label="随访类型"> |
| | | <el-select v-model="form.region" placeholder="请选择随访类型"> |
| | | <el-option label="区域一" value="shanghai"></el-option> |
| | | <el-option label="区域二" value="beijing"></el-option> |
| | | </el-select> </el-form-item |
| | | ></el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | <el-col :span="24"> |
| | | <el-form-item label="服务模块"> |
| | | <el-select v-model="form.region" placeholder="请选择模块"> |
| | | <el-option label="区域一" value="shanghai"></el-option> |
| | | <el-option label="区域二" value="beijing"></el-option> |
| | | <el-form ref="form" :model="form" :rules="rules" label-width="100px"> |
| | | <el-row> |
| | | <el-col :span="8"> |
| | | <el-form-item label="姓名" width="100" prop="name"> |
| | | <el-input |
| | | v-model="form.name" |
| | | placeholder="请输入姓名" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="性别" width="100" prop="sex"> |
| | | <el-select v-model="form.sex" placeholder="请选择性别"> |
| | | <el-option |
| | | v-for="dict in sextype" |
| | | :key="dict.value" |
| | | :label="dict.label" |
| | | :value="dict.value" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </el-col> |
| | | <el-col :span="8"> |
| | | <el-form-item label="年龄" prop="age"> |
| | | <el-input |
| | | v-model="form.age" |
| | | placeholder="请输入年龄" |
| | | maxlength="30" |
| | | /> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | <el-row :gutter="20"> |
| | | |
| | | <el-row> |
| | | <el-col :span="24"> |
| | | <el-form-item label="影像随访要求"> |
| | | <el-input type="textarea" v-model="form.desc"></el-input> |
| | | <el-form-item label="过滤原因"> |
| | | <el-input |
| | | v-model="form.notrequiredreason" |
| | | type="textarea" |
| | | placeholder="请输入过滤原因" |
| | | ></el-input> |
| | | </el-form-item> |
| | | </el-col> |
| | | </el-row> |
| | | </el-form> |
| | | <div slot="footer" class="dialog-footer"> |
| | | <el-button type="primary" @click="submitForm">提 交</el-button> |
| | | <el-button @click="cancel">返 回</el-button> |
| | | <el-button type="primary" @click="submitForm">确 定</el-button> |
| | | <el-button @click="cancel">取 消</el-button> |
| | | </div> |
| | | </el-dialog> |
| | | <!-- 修改发送时间对话框 --> |
| | |
| | | zcform: {}, |
| | | dynamicTags: ["选项一", "选项二", "选项三"], //选项 |
| | | inputVisible: false, |
| | | Labelchange: false, |
| | | ycvalue: "", |
| | | yfsvalue: "", |
| | | inputValue: "", |
| | |
| | | |
| | | topicoptions: [ |
| | | { |
| | | value: null, |
| | | label: "全部", |
| | | }, |
| | | { |
| | | value: 1, |
| | | label: "表单已领取", |
| | | }, |
| | |
| | | this.getList(1); |
| | | }, |
| | | methods: { |
| | | /** 查询影像随访服务列表 */ |
| | | /** 查询随访服务列表 */ |
| | | getList(refresh) { |
| | | // 默认全部 |
| | | if (this.topqueryParams.searchscope == 3) { |
| | |
| | | row.status = row.status === "0" ? "1" : "0"; |
| | | }); |
| | | }, |
| | | // 取消按钮 |
| | | cancel() { |
| | | this.addalteropen = false; |
| | | this.reset(); |
| | | }, |
| | | |
| | | // 表单重置 |
| | | reset() { |
| | | this.form = { |
| | |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | |
| | | // 取消按钮 |
| | | cancel() { |
| | | this.Labelchange = false; |
| | | this.reset(); |
| | | }, |
| | | /** 提交按钮 */ |
| | | submitForm: function () { |
| | | this.$refs["form"].validate((valid) => { |
| | | if (valid) { |
| | | if (this.form.userId != undefined) { |
| | | updateUser(this.form).then((response) => { |
| | | this.$modal.msgSuccess("修改成功"); |
| | | this.open = false; |
| | | this.form.isoperation = 2; |
| | | this.form.notrequiredFlag = 1; |
| | | alterpatient(this.form) |
| | | .then((response) => { |
| | | console.log(response); |
| | | }) |
| | | .then(() => { |
| | | this.getList(1); |
| | | this.$modal.msgSuccess("患者过滤成功"); |
| | | }); |
| | | } else { |
| | | addUser(this.form).then((response) => { |
| | | this.$modal.msgSuccess("新增成功"); |
| | | this.open = false; |
| | | this.getList(1); |
| | | }); |
| | | } |
| | | |
| | | this.reset(); |
| | | this.Labelchange = false; |
| | | } |
| | | }); |
| | | }, |
| | |
| | | }) |
| | | .catch(() => {}); |
| | | }, |
| | | // 患者过滤触发 |
| | | handleUpdate(row) { |
| | | particularpatient(row.patid).then((response) => { |
| | | this.form = response.data; |
| | | }); |
| | | this.amendtag = true; |
| | | this.Labelchange = true; |
| | | }, |
| | | // 便捷按钮 |
| | | toleadExport(too) { |
| | | if (too == 1) { |
| | |
| | | if (valid) { |
| | | let form = structuredClone(this.zcform); |
| | | form.longSendTime = this.formatTime(form.date1); |
| | | form.finishtime = ''; |
| | | form.finishtime = ""; |
| | | if (form.resource) { |
| | | if (form.resource == 2) { |
| | | form.serviceType = 10; |
| | |
| | | .dispatch("Login", this.loginForm) |
| | | .then(() => { |
| | | // this.$router.push({ path: this.redirect || "/" }).catch(() => {}); |
| | | this.$router.push({ path:"/patient/patient" }).catch(() => {}); |
| | | this.$router.push({ path:"/followvisit/discharge" }).catch(() => {}); |
| | | }) |
| | | .catch(() => { |
| | | this.loading = false; |
| | |
| | | <div class="analysis-top"> |
| | | <div class="title-top">查询条件</div> |
| | | <div class="value"> |
| | | <el-form ref="form" :model="form" label-width="120px"> |
| | | <el-form ref="form" :model="queryParams" 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="targetvalue" |
| | | @change="Labelstatistics" |
| | | filterable |
| | | placeholder="请选择" |
| | | > |
| | | <el-option |
| | | v-for="item in options" |
| | | :key="item.value" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | v-for="item in targetList" |
| | | :key="item.id" |
| | | :label="item.targetname" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | |
| | | </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="proportion" 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> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | |
| | | <script> |
| | | import { gettargetInfo, Labelstatistics } from "@/api/AiCentre/index"; |
| | | export default { |
| | | name: "indexanalysis", |
| | | data() { |
| | | return { |
| | | options: [ |
| | | targetList: [ |
| | | { |
| | | value: "选项1", |
| | | label: "发热有无", |
| | |
| | | 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", |
| | | }, |
| | | ], |
| | | targetvalue: "", |
| | | queryParams: { |
| | | pageNum: 1, |
| | | pageSize: 66, |
| | | scriptType: "1", |
| | | }, |
| | | }; |
| | | }, |
| | | |
| | | 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) { |
| | | console.log(id, "id"); |
| | | |
| | | Labelstatistics(id).then((res) => { |
| | | if (res.data.length > 0) { |
| | | this.tableData = res.data; |
| | | } else { |
| | | gettargetInfo({ id: id }).then((res) => { |
| | | console.log(res, "替换展示值"); |
| | | this.tableData = []; |
| | | res.rows[0].targetoptionList.forEach((item) => { |
| | | this.tableData.push({ |
| | | targetname: res.rows[0].targetname, |
| | | targetShowCount:0, |
| | | count:0, |
| | | percentage:0, |
| | | matchedtext:item.targetvalue, |
| | | }); |
| | | }); |
| | | }); |
| | | } |
| | | this.loading = false; |
| | | }); |
| | | }, |
| | | remoteMethod(value) { |
| | | const illnessqueryParams = { |
| | | pageNum: 1, |
| | | pageSize: 66, |
| | | targetname: value, |
| | | scriptType: "1", |
| | | }; |
| | | setTimeout(() => { |
| | | gettargetInfo(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; |