Browse Source

诊疗病种统计

newMaster
1747191978@qq.com 4 months ago
parent
commit
c3f6693936
  1. 7
      acupuncture-前台/src/api/indexCom.js
  2. 12
      acupuncture-前台/src/views/index.vue
  3. 226
      acupuncture-前台/src/views/indexCom/JM.vue
  4. 59
      acupuncture-前台/src/views/indexCom/index.js
  5. 4
      acupuncture-前台/src/views/indexCom/patient.vue

7
acupuncture-前台/src/api/indexCom.js

@ -114,5 +114,12 @@ export function patientTotal(data) {
}); });
} }
// 诊疗信息 // 诊疗信息
export function zlInfo(data) {
return request({
url: "/statistics/zlInfo",
method: "post",
data: data,
});
}
// 治疗类型 // 治疗类型
// 随访分布 // 随访分布

12
acupuncture-前台/src/views/index.vue

@ -17,13 +17,13 @@
<search <search
@radio-change="radioChange" @radio-change="radioChange"
@picker-change="pickerChage" @picker-change="pickerChage"
title="静脉溶栓统计" title="诊疗信息统计"
type="2" type="2"
></search> ></search>
</el-card> </el-card>
<JM ref="JM"></JM> <JM ref="JM"></JM>
</div> </div>
<div> <!-- <div>
<el-card shadow="always"> <el-card shadow="always">
<search <search
@radio-change="radioChange" @radio-change="radioChange"
@ -33,7 +33,7 @@
></search> ></search>
</el-card> </el-card>
<XGZL ref="XGZL"></XGZL> <XGZL ref="XGZL"></XGZL>
</div> </div> -->
</div> </div>
</template> </template>
@ -69,9 +69,9 @@ export default {
}, },
methods: { methods: {
resize() { resize() {
this.$refs.patient.getRenew(); // this.$refs.patient.getRenew();
this.$refs.JM.getRenew(); // this.$refs.JM.getRenew();
this.$refs.XGZL.getRenew(); // this.$refs.XGZL.getRenew();
}, },
// //
radioChange(_data, _type, _timeType) { radioChange(_data, _type, _timeType) {

226
acupuncture-前台/src/views/indexCom/JM.vue

@ -1,84 +1,45 @@
<template> <template>
<div>
<div class="app-container"> <div class="app-container">
<!-- 静脉溶栓 数据对比 -->
<div class="dis" style="width: 100%"> <div class="dis" style="width: 100%">
<div style="flex: 1"> <div style="flex: 1; margin-right: 20px">
<el-card shadow="always"> <el-card shadow="always">
<div class="dis title-box"> <div class="dis title-box">
<span class="header-title">静脉溶栓率 </span> <span class="header-title">病种排名</span>
<div class="dis"></div>
</div> </div>
<!-- 统计图 -->
<div style="height: 300px" v-loading="loading"> <div style="height: 300px" v-loading="loading">
<div id="JMz" style="width: 100%"></div> <div id="diagnose" style="width: 100%"></div>
</div> </div>
</el-card> </el-card>
</div> </div>
<div style="flex: 1; margin-left: 20px">
<el-card shadow="always">
<div class="dis title-box">
<span class="header-title">数据对比</span>
<div class="dis">
<div class="dian-box dis">
<span class="dian" style="background: #00d1a1"></span>
静脉溶栓人数
</div>
<div class="dian-box dis">
<span class="dian" style="background: #4f8bff"></span>
急救特征人数
</div>
</div>
</div>
<!-- 统计图 -->
<div style="height: 300px" v-loading="loading">
<div id="JMy" style="width: 100%"></div>
</div>
</el-card>
</div>
</div>
<!-- DNT分布 sICH发生率 -->
<div class="dis" style="width: 100%">
<div style="flex: 1"> <div style="flex: 1">
<el-card shadow="always"> <el-card shadow="always">
<div class="dis title-box"> <div class="dis title-box">
<span class="header-title">DNT分布 </span> <span class="header-title">体型分布</span>
<div class="dis"> <div class="dis">
<div class="dian-box dis">
<span class="dian" style="background: #ffcd6c"></span> 45 min
</div>
<div class="dian-box dis">
<span class="dian" style="background: #f97186"></span> 60 min
</div> </div>
<div class="dian-box dis">
<span class="dian" style="background: #4f8bff"></span> >60 min
</div> </div>
</div>
</div>
<!-- 统计图 -->
<div style="height: 300px" v-loading="loading"> <div style="height: 300px" v-loading="loading">
<div id="DNT" style="width: 100%"></div> <!-- <div id="gender" style="width: 100%"></div> -->
</div> </div>
</el-card> </el-card>
</div> </div>
<div style="flex: 1; margin-left: 20px">
<el-card shadow="always">
<div class="dis title-box">
<span class="header-title">sICH发生率</span>
</div>
<!-- 统计图 -->
<div style="height: 300px" v-loading="loading">
<div id="sICH" style="width: 100%"></div>
</div>
</el-card>
</div> </div>
</div> </div>
</div> </div>
</template> </template>
<script> <script>
import * as echarts from "echarts"; import * as echarts from "echarts";
require("echarts/theme/macarons"); // echarts theme require("echarts/theme/macarons"); // echarts theme
import resize from "@/views/dashboard/mixins/resize"; import resize from "@/views/dashboard/mixins/resize";
import { queryDntResult, querySichResult, queryJmrs } from "@/api/indexCom.js"; import {
import { JMRSL, JMSJDB, DNT, SICH } from "./index"; zlInfo
} from "@/api/indexCom.js";
import {
diagnoseEcharts
} from "./index";
export default { export default {
name: "Post", name: "Post",
props: ["title"], props: ["title"],
@ -86,21 +47,38 @@ export default {
data() { data() {
return { return {
loading: false, loading: false,
JMRSLvalue: null, diagnoseValue: null, //
DNTvalue: null,
SICHvalue: null,
//
queryParams: { queryParams: {
param: { param: {
timeType: 4,
startTime: "", startTime: "",
endTime: "", endTime: "",
}, },
}, },
jwbzObj: {
"gxy": "高血压", //
"nxgb": "脑血管病", //
"exzl": "恶性肿瘤", //
"gxb": "冠心病", //
"jsjb": "精神疾病", //
"whsezcky": "胃和十二指肠溃疡", //
"fpz": "肥胖症", //
"gzssz": "骨质疏松症", //
"ycxXtxjb": "遗传性、先天性疾病", //
"tnb": "糖尿病", //尿
"mxfxjb": "慢性肺系疾病", //
"gzxz": "高脂血症", //
"gzjb": "肝脏疾病", //
"gmxjb": "过敏性疾病", //
"gjy": "关节炎", //
"tf": "痛风", //
"sySb": "肾炎、肾病", //
"other": "其他" //
}
}; };
}, },
created() { created() {
// this.getData(); // this.Linepatient();
this.getData();
}, },
methods: { methods: {
statistics(_data, _type) { statistics(_data, _type) {
@ -108,112 +86,33 @@ export default {
this.loading = true; this.loading = true;
this.getData(); // this.getData(); //
}, },
// //
async getData() { async getData() {
try { try {
//RSL await zlInfo(this.queryParams).then((res) => {
await queryJmrs(this.queryParams).then((res) => { const {jlfb,smfb,sort,ttfb,txfb,zytz} = res.data
this.JMRSLvalue = res.data; //
console.log("this.JMRSLvalue: ", this.JMRSLvalue); this.diagnoseValue = sort.sort((a, b) => a.total-b.total)
this.columnar(); this.handleDiagnose()
});
//DNT
await queryDntResult(this.queryParams).then((res) => {
this.DNTvalue = res.data;
console.log("this.DNTvalue: ", this.DNTvalue);
this.lineDNT();
}); });
// //
await querySichResult(this.queryParams).then((res) => {
this.SICHvalue = res.data;
this.LineSICH();
});
this.LineJM();
this.columnar();
this.lineDNT();
this.LineSICH();
this.loading = false; this.loading = false;
} catch (e) {} } catch (e) {}
}, },
// ` //
LineJM() { handleDiagnose() {
JMSJDB.series[0].data = this.JMRSLvalue?.map((item) => {
return item.gailv; diagnoseEcharts.series[0].data = this.diagnoseValue?.map((item) => {
});
JMSJDB.series[1].data = this.JMRSLvalue?.map((item) => {
return item.total; return item.total;
}); });
JMSJDB.xAxis[0].data = this.JMRSLvalue?.map((item) => { diagnoseEcharts.yAxis.data = this.diagnoseValue?.map((item) => {
return item.date; //X return item.type;
});
this.$nextTick(() => {
// domecharts
var myChart = echarts.init(document.getElementById("JMy"), null, {
height: 300,
});
myChart.setOption(JMSJDB, true);
myChart.resize();
window.onresize = myChart.resize;
});
},
//
columnar() {
JMRSL.series[0].data = this.JMRSLvalue?.map((item) => {
return item.decimal;
});
JMRSL.xAxis.data = this.JMRSLvalue?.map((item) => {
return item.date;
});
JMRSL.series[0].data = this.JMRSLvalue?.map((item) => {
return item.decimal;
});
this.$nextTick(() => {
// domecharts
var myChart = echarts.init(document.getElementById("JMz"), null, {
height: 300,
});
myChart.setOption(JMRSL, true);
myChart.resize();
window.onresize = myChart.resize;
});
},
lineDNT() {
DNT.series[0].data = this.DNTvalue?.map((item) => {
return item.dy45; //45
});
DNT.series[1].data = this.DNTvalue?.map((item) => {
return item.dy60; //60
});
DNT.series[2].data = this.DNTvalue?.map((item) => {
return item.other; //>60
});
DNT.xAxis.data = this.DNTvalue?.map((item) => {
return item.date; //X
});
this.$nextTick(() => {
// domecharts
var myChart = echarts.init(document.getElementById("DNT"), null, {
height: 300,
});
myChart.setOption(DNT, true);
myChart.resize();
window.onresize = myChart.resize;
});
},
LineSICH() {
SICH.series[0].data = this.SICHvalue?.map((item) => {
return item.decimal; //45
});
SICH.xAxis[0].data = this.SICHvalue?.map((item) => {
return item.time; //X
}); });
console.log('diagnoseEcharts',diagnoseEcharts)
this.$nextTick(() => { this.$nextTick(() => {
// domecharts var myChart = echarts.init(document.getElementById("diagnose"), null, {
var myChart = echarts.init(document.getElementById("sICH"), null, {
height: 300, height: 300,
}); });
myChart.setOption(SICH, true); myChart.setOption(diagnoseEcharts, true);
myChart.resize(); myChart.resize();
window.onresize = myChart.resize; window.onresize = myChart.resize;
}); });
@ -223,17 +122,14 @@ export default {
_data[0] = this.$moment(_data[0]).format("YYYY-MM-DD"); _data[0] = this.$moment(_data[0]).format("YYYY-MM-DD");
_data[1] = this.$moment(_data[1]).format("YYYY-MM-DD"); _data[1] = this.$moment(_data[1]).format("YYYY-MM-DD");
this.queryParams.param = { this.queryParams.param = {
timeType: _type,
startTime: _data[0] + " " + "00:00:00", startTime: _data[0] + " " + "00:00:00",
endTime: _data[1] + " " + "23:59:59", endTime: _data[1] + " " + "23:59:59",
}; };
}, },
// //
getRenew() { getRenew() {
this.LineJM(); this.Linepatient();
this.columnar(); this.columnar();
this.lineDNT();
this.LineSICH();
}, },
}, },
}; };
@ -243,19 +139,24 @@ export default {
>>>.el-card__body { >>>.el-card__body {
padding: 10px 0 !important; padding: 10px 0 !important;
} }
.dis { .dis {
display: flex; display: flex;
} }
.header-title { .header-title {
font-size: 18px; font-size: 18px;
} }
.title-box { .title-box {
padding: 10px 20px; padding: 10px 20px;
border-bottom: 1px solid #dfe6ec; border-bottom: 1px solid #dfe6ec;
} }
.dian-box { .dian-box {
align-items: center; align-items: center;
} }
.dian { .dian {
display: inline-block; display: inline-block;
width: 16px; width: 16px;
@ -263,28 +164,37 @@ export default {
border-radius: 50%; border-radius: 50%;
margin: 0 10px; margin: 0 10px;
} }
.title-box { .title-box {
justify-content: space-between; justify-content: space-between;
} }
.>>>.el-radio--small.is-bordered { .>>>.el-radio--small.is-bordered {
margin-right: 20px !important; margin-right: 20px !important;
margin-left: 0 !important; margin-left: 0 !important;
} }
>>>.el-radio__input { >>>.el-radio__input {
display: none; display: none;
} }
>>>.el-radio__label { >>>.el-radio__label {
padding-left: 5px; padding-left: 5px;
} }
.app-container { .app-container {
padding: 0; padding: 0;
display: flex;
justify-content: space-between;
} }
.title1 {
.title {
display: flex; display: flex;
align-items: center; align-items: center;
font-size: 20px; font-size: 20px;
font-weight: 600; font-weight: 600;
} }
.title-bor { .title-bor {
display: inline-block; display: inline-block;
height: 20px; height: 20px;

59
acupuncture-前台/src/views/indexCom/index.js

@ -1,4 +1,5 @@
import * as echarts from "echarts"; import * as echarts from "echarts";
// 患者信息统计
// 患者总数 // 患者总数
export const HZXX = { export const HZXX = {
tooltip: { tooltip: {
@ -218,6 +219,64 @@ export const diseaseEcharts = {
], ],
}; };
export const diagnoseEcharts = {
tooltip: {
trigger: "axis",
axisPointer: {
type: "cross",
label: {
backgroundColor: "#6a7985",
},
},
formatter: function (params) {
let res1 = params[0].name;
for (var i = 0, l = params.length; i < l; i++) {
res1 +=
"<br/>" +
`<span style="background:${params[i].color};width:12px;display:inline-block;height:12px;border-radius:50%;margin-right:5px;"></span>` +
params[i].seriesName +
" : " +
params[i].value +
"个";
}
return res1;
},
},
xAxis: {
name: "数量( 个 )",
type: "value",
minInterval: 1,
splitLine: {
show: true,
lineStyle: {
type: "dashed",
},
},
},
grid: {
top: "12%",
left: "3%",
right: "12%",
bottom: "0%",
containLabel: true,
},
yAxis: {
type: "category",
data: [],
},
series: [
{
name: "数量:",
data: [],
type: "bar",
barMaxWidth: 24, //柱图宽度
color: "#4f8bff",
},
],
};
// 患者信息 - 数据分析 // 患者信息 - 数据分析
export const HZXXSJFX = { export const HZXXSJFX = {
tooltip: { tooltip: {

4
acupuncture-前台/src/views/indexCom/patient.vue

@ -249,8 +249,8 @@
}, },
// //
getRenew() { getRenew() {
this.Linepatient(); // this.Linepatient();
this.columnar(); // this.columnar();
}, },
}, },
}; };

Loading…
Cancel
Save