Commit b910a8b3 by 唐玉峰

疾病分组

parent e570dbf8
import { nextTick } from '@vue/composition-api'; import { nextTick } from "@vue/composition-api";
import * as echarts from 'echarts'; import * as echarts from "echarts";
/** /**
* @param echarts初始化 * @param echarts初始化
...@@ -11,79 +9,77 @@ import * as echarts from 'echarts'; ...@@ -11,79 +9,77 @@ import * as echarts from 'echarts';
export function initEcharts(option, panelId) { export function initEcharts(option, panelId) {
var svChart; var svChart;
return nextTick(() => { return nextTick(() => {
svChart = echarts.getInstanceByDom(document.getElementById(panelId)); svChart = echarts.getInstanceByDom(document.getElementById(panelId));
if (svChart == null) { if (svChart == null) {
svChart = echarts.init(document.getElementById(panelId)); svChart = echarts.init(document.getElementById(panelId));
} }
document.getElementById(panelId).setAttribute('_echarts_instance_', ''); document.getElementById(panelId).setAttribute("_echarts_instance_", "");
svChart.clear(); svChart.clear();
svChart.setOption(option); svChart.setOption(option);
svChart.resize(); svChart.resize();
// 屏幕大小改变 // 屏幕大小改变
window.addEventListener('resize', () => { window.addEventListener("resize", () => {
svChart.resize(); svChart.resize();
}); });
return svChart; return svChart;
}) });
} }
//百分比图 智能分组 //百分比图 智能分组
export function categoryChart(data, tcolor) { export function categoryChart(data, tcolor) {
const option = { const option = {
title: [{ title: [
{
text: data + `%`, text: data + `%`,
x: 'center', x: "center",
top: '38%', top: "38%",
textStyle: { textStyle: {
fontSize: '16', //百分比的样式 fontSize: "16", //百分比的样式
color: tcolor, color: tcolor,
fontFamily: 'Arial', fontFamily: "Arial",
foontWeight: '600', foontWeight: "600",
},
}, },
},], ],
polar: { polar: {
radius: ['100%', '60%'], radius: ["100%", "60%"],
center: ['50%', '50%'], center: ["50%", "50%"],
}, },
angleAxis: { angleAxis: {
max: 100, max: 100,
show: false, show: false,
}, },
radiusAxis: { radiusAxis: {
type: 'category', type: "category",
show: false, show: false,
}, },
series: [{ series: [
name: '', {
type: 'bar', name: "",
type: "bar",
roundCap: true, roundCap: true,
barWidth: 6, barWidth: 6,
showBackground: true, showBackground: true,
backgroundStyle: { backgroundStyle: {
color: '#f3fafd', //留白颜色 color: "#f3fafd", //留白颜色
}, },
data: [data], data: [data],
coordinateSystem: 'polar', coordinateSystem: "polar",
itemStyle: { itemStyle: {
normal: { normal: {
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0, offset: 0,
color: tcolor, //填色颜色 color: tcolor, //填色颜色
},]), },
]),
}, },
}, },
},], },
],
}; };
return option; return option;
...@@ -92,62 +88,67 @@ export function categoryChart(data, tcolor) { ...@@ -92,62 +88,67 @@ export function categoryChart(data, tcolor) {
//百分比图 病案入组 //百分比图 病案入组
export function categoryChart11(text, data, tcolor) { export function categoryChart11(text, data, tcolor) {
const option = { const option = {
title: [{ title: [
{
text: text, text: text,
x: 'center', x: "center",
top: '52%', top: "52%",
textStyle: { textStyle: {
fontSize: '14', //百分比的样式 fontSize: "14", //百分比的样式
color: tcolor, color: tcolor,
fontFamily: 'PingFang SC', fontFamily: "PingFang SC",
foontWeight: '300', foontWeight: "300",
}, },
}, },
{ {
text: data + `%`, text: data ? data : 0 + `%`,
x: 'center', x: "center",
top: '28%', top: "28%",
textStyle: { textStyle: {
fontSize: '20', //百分比的样式 fontSize: "20", //百分比的样式
color: tcolor, color: tcolor,
fontFamily: 'Arial', fontFamily: "Arial",
foontWeight: '600', foontWeight: "600",
}, },
}, },
], ],
polar: { polar: {
radius: ['100%', '60%'], radius: ["100%", "60%"],
center: ['50%', '50%'], center: ["50%", "50%"],
}, },
angleAxis: { angleAxis: {
max: 100, max: 100,
show: false, show: false,
}, },
radiusAxis: { radiusAxis: {
type: 'category', type: "category",
show: false, show: false,
}, },
series: [{ series: [
name: '', {
type: 'bar', name: "",
type: "bar",
roundCap: true, roundCap: true,
barWidth: 6, barWidth: 6,
showBackground: true, showBackground: true,
backgroundStyle: { backgroundStyle: {
color: '#f3fafd', //留白颜色 color: "#f3fafd", //留白颜色
}, },
data: [data], data: [data],
coordinateSystem: 'polar', coordinateSystem: "polar",
itemStyle: { itemStyle: {
normal: { normal: {
color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [{ color: new echarts.graphic.LinearGradient(0, 1, 0, 0, [
{
offset: 0, offset: 0,
color: tcolor, //填色颜色 color: tcolor, //填色颜色
},]),
}, },
]),
}, },
},], },
},
],
}; };
return option; return option;
......
...@@ -16,10 +16,6 @@ ...@@ -16,10 +16,6 @@
<el-button class="outsetgrouping_button_Searchbtn" type="primary" size="mini" @click="gosear"> <el-button class="outsetgrouping_button_Searchbtn" type="primary" size="mini" @click="gosear">
<span class="s2">疾病分组查询</span> <span class="s2">疾病分组查询</span>
</el-button> </el-button>
<el-button class="outsetgrouping_button_Submitbtn" size="mini" type="primary" @click="submit">
<span class="iconfont icon-ipr_tijiao"></span>
<span class="s2">提交</span>
</el-button>
</div> </div>
<div class="outsetgrouping_top"> <div class="outsetgrouping_top">
<div class="outsetgrouping_top_message"> <div class="outsetgrouping_top_message">
...@@ -104,8 +100,8 @@ ...@@ -104,8 +100,8 @@
<div class="outsetgrouping_centent_totalnum" v-for="(item, index) in CorePercents" :key="index"> <div class="outsetgrouping_centent_totalnum" v-for="(item, index) in CorePercents" :key="index">
<div class="outsetgrouping_centent_totalnum_left"> <div class="outsetgrouping_centent_totalnum_left">
<div class="outsetgrouping_centent_totalnum_left_radios"> <div class="outsetgrouping_centent_totalnum_left_radios">
<!-- <input type="radio" name="radios" v-model="radio" /> --> <!-- <input type="radio" name="radios" :value="item.id" @input="radios" /> -->
<input type="radio" name="radios" :value="item.id" @input="radios" /> <el-button class="outsetgrouping_button_Submitbtn" size="mini" type="primary" @click="submit(item.coreID)"> 分组提交 </el-button>
</div> </div>
<div class="outsetgrouping_centent_totalnum_left_text"> <div class="outsetgrouping_centent_totalnum_left_text">
...@@ -140,6 +136,60 @@ ...@@ -140,6 +136,60 @@
><span>盈亏:{{ item.profitLoss }}</span> ><span>盈亏:{{ item.profitLoss }}</span>
</div> </div>
</div> </div>
<div class="outpatientDetails_fenqu" v-if="item.lowMagnification != 0 && item.highMagnification != 0">
<div class="outpatientDetails_fenqu_di">
<div class="outpatientDetails_fenqu_di_bb">
<div class="outpatientDetails_fenqu_di_bb_div1">
<span
class="outpatientDetails_fenqu_di_bb_div1_num"
:style="{ marginLeft: item.totalwidth - 1 + '%', color: item.totalcolor }"
>{{ decimal(item.totalFee) }}</span
>
<span
class="outpatientDetails_fenqu_di_bb_div1_he"
:style="{
marginLeft: item.totalwidth + '%',
backgroundColor: item.totalcolor,
}"
></span>
</div>
<div class="outpatientDetails_fenqu_di_bb_div2">
<span class="outpatientDetails_fenqu_di_bb_div2_span1" :style="{ width: item.lowwidth + '%' }"
><span
class="outpatientDetails_fenqu_di_bb_div2_span1_t1"
:title="'低倍率区域:&lt;=' + Math.round(item.lowMagnification)"
>低倍率区域:&lt;={{ Math.round(item.lowMagnification) }}</span
></span
>
<span class="outpatientDetails_fenqu_di_bb_div2_span2" :style="{ width: item.contentwidth + '%' }"
><span
class="outpatientDetails_fenqu_di_bb_div2_span2_t2"
:title="'正常区域:' + (Math.round(item.lowMagnification) + 1) + '~' + (Math.round(item.highMagnification) - 1)"
>正常区域:{{ Math.round(item.lowMagnification) + 1 + "~" + (Math.round(item.highMagnification) - 1) }}</span
></span
>
<span class="outpatientDetails_fenqu_di_bb_div2_span3" :style="{ width: item.heightwidth + '%' }"
><span
class="outpatientDetails_fenqu_di_bb_div2_span3_t3"
:title="'高倍率区域:>=' + Math.round(item.highMagnification)"
>高倍率区域:>={{ Math.round(item.highMagnification) }}</span
></span
>
</div>
<!-- <div class="outpatientDetails_fenqu_di_bb_div3">
<span class="outpatientDetails_fenqu_di_bb_div3_span1" :style="{ width: lowwidth + '%' }"> 0 </span>
<span class="outpatientDetails_fenqu_di_bb_div3_span2" :style="{ width: contentwidth + '%' }">
{{ Math.round(lowMagnification) }}
</span>
<span class="outpatientDetails_fenqu_di_bb_div3_span3" :style="{ width: heightwidth + '%' }">
<span class="outpatientDetails_fenqu_di_bb_div3_span2_nmm1">{{ Math.round(highMagnification) }}</span>
<span class="outpatientDetails_fenqu_di_bb_div3_span2_nmm2">{{ Math.round(heightnum) }}</span>
</span>
</div> -->
</div>
</div>
</div>
</div> </div>
</div> </div>
<!-- <div class="outsetgrouping_centent_totalnum_right"> <!-- <div class="outsetgrouping_centent_totalnum_right">
...@@ -191,7 +241,6 @@ ...@@ -191,7 +241,6 @@
</div> --> </div> -->
</div> </div>
<!-- 如果没有搜索时的样式 --> <!-- 如果没有搜索时的样式 -->
<div v-show="nolistShow" class="outsetgrouping_centent_nodata"> <div v-show="nolistShow" class="outsetgrouping_centent_nodata">
<div class="outsetgrouping_centent_nodata_img"> <div class="outsetgrouping_centent_nodata_img">
<img src="../assets/img/nodata.png" alt="" /> <img src="../assets/img/nodata.png" alt="" />
...@@ -201,7 +250,7 @@ ...@@ -201,7 +250,7 @@
</div> </div>
<!-- 弹出层 --> <!-- 弹出层 -->
<el-dialog center :visible.sync="addrecordEnrollmentShow" :before-close="closeDialog" :fullscreen="true"> <el-dialog center :visible.sync="addrecordEnrollmentShow" class="fullscreen" :before-close="closeDialog" :fullscreen="true">
<!-- 病案入组 --> <!-- 病案入组 -->
<div class="outaddrecordEnrollment" id="outaddrecordEnrollment"> <div class="outaddrecordEnrollment" id="outaddrecordEnrollment">
<div class="outaddrecordEnrollment_search"> <div class="outaddrecordEnrollment_search">
...@@ -303,31 +352,19 @@ ...@@ -303,31 +352,19 @@
</div> </div>
<div class="outaddrecordEnrollment_centent_totalnum_left_text3"> <div class="outaddrecordEnrollment_centent_totalnum_left_text3">
<span>预计DRG支付费用:{{ item.unitfee }}</span <span>预计DRG支付费用:{{ item.unitfee }}</span>
><span>院内历年平均费用:{{ item.avgFee }}</span <span>入组类型:{{ item.disNature }}</span>
><span>院内历年平均住院天数:{{ item.avgInHosDay }}</span>
</div> </div>
</div> </div>
<div class="outaddrecordEnrollment_centent_totalnum_right"> <!-- <div class="outaddrecordEnrollment_centent_totalnum_right">
<div :id="`indexChart11` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar1"></div> <div :id="`indexChart11` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar1"></div>
<div :id="`indexChart11two` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar2"></div> <div :id="`indexChart11two` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar2"></div>
<div :id="`indexChart11tree` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar3"></div> <div :id="`indexChart11tree` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar3"></div>
<div :id="`indexChart11fore` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar4"></div> <div :id="`indexChart11fore` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar4"></div>
<div :id="`indexChart11file` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar5"></div> <div :id="`indexChart11file` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar5"></div>
</div>
</div>
<!-- 如果没有数据时的样式 -->
<!-- <div
v-show="addnodataShow"
class="outaddrecordEnrollment_centent_nodata"
>
<div class="outaddrecordEnrollment_centent_nodata_img">
<img src="../assets/img/nodata.png" alt="" />
</div>
<div class="outaddrecordEnrollment_centent_nodata_text">
请输入要搜索的内容
</div>
</div> --> </div> -->
</div>
<div v-show="addnolistShow" class="outaddrecordEnrollment_centent_nodata"> <div v-show="addnolistShow" class="outaddrecordEnrollment_centent_nodata">
<div class="outaddrecordEnrollment_centent_nodata_img"> <div class="outaddrecordEnrollment_centent_nodata_img">
<img src="../assets/img/nodata.png" alt="" /> <img src="../assets/img/nodata.png" alt="" />
...@@ -343,17 +380,14 @@ ...@@ -343,17 +380,14 @@
</template> </template>
<script> <script>
import http from "../utils/http"; import http from "../utils/http";
import { reactive, toRefs, onMounted, nextTick, computed } from "@vue/composition-api";
import { decimal } from "../utils/decimal"; import { decimal } from "../utils/decimal";
import { Message } from "element-ui"; import { Message } from "element-ui";
import { useRoute, useRouter } from "../utils/useVueRouter"; import { useRoute, useRouter } from "../utils/useVueRouter";
import { initEcharts, categoryChart, categoryChart11 } from "../utils/echarts"; import { initEcharts, categoryChart, categoryChart11 } from "../utils/echarts";
export default { export default {
name: "outHistorygrouping", name: "outHistorygrouping",
data() {
setup() { return {
let state = reactive({
abc: "", abc: "",
casehisObj: null, casehisObj: null,
searchForm: { searchForm: {
...@@ -445,287 +479,283 @@ export default { ...@@ -445,287 +479,283 @@ export default {
otssoptions: [], //其他手术 otssoptions: [], //其他手术
diagList: [], //诊断 diagList: [], //诊断
opsList: [], //手术 opsList: [], //手术
});
//返回
const router = useRouter();
const goback = () => {
router.go(-1);
}; };
},
mounted() {
this.getCaseHis(this.$route.query.id);
if (this.searchForm.diagName.length > 0) {
this.getlist();
}
},
methods: {
decimal,
goback() {
router.go(-1);
},
//疾病查询 //疾病查询
const gosear = () => { gosear() {
state.addrecordEnrollmentShow = true; this.addrecordEnrollmentShow = true;
}; },
//获取基本数据 //获取基本数据
function getCaseHis(code) { getCaseHis(code) {
http.post(`/medical/Get/casehisData?id=${code}`, {}) http.post(`/medical/Get/casehisData?id=${code}`, {})
.then((data) => { .then((data) => {
state.casehisObj = data; this.casehisObj = data;
console.log("data", data); this.diagMapList = data.diagMapList;
state.diagMapList = data.diagMapList; this.opsMapList = data.opsMapList;
state.opsMapList = data.opsMapList; this.getlist();
getlist();
}) })
.catch((error) => {}); .catch((error) => {});
} },
//获取列表数据 //获取列表数据
const getlist = () => { getlist() {
http.post(`/medical/get/GetCorePercents`, { http.post(`/medical/get/GetCorePercents`, {
Type: 1, Type: 1,
DiagMapList: state.diagMapList, DiagMapList: this.diagMapList,
OpsMapList: state.opsMapList, OpsMapList: this.opsMapList,
id: route.value.query.id, id: this.$route.query.id,
}) })
.then((data) => { .then((data) => {
state.CorePercents = data.list; this.CorePercents = data.list;
this.CorePercents.map((item) => {
if (state.CorePercents.length == 0) { // 高倍率>总费用 高倍率金额+高倍率金额*30%
state.nolistShow = true; if (item.highMagnification > item.totalFee) {
// state.nodataShow = false; item.heightnum = item.highMagnification + item.highMagnification * 0.3;
} } else if (item.highMagnification < item.totalFee) {
for (var i = 0; i < state.CorePercents.length; i++) { // 高倍率<总费用 患者总费用的金额+患者总费用的金额*30%
this.$nextTick(); item.heightnum = item.totalFee + item.totalFee * 0.3;
initEcharts(categoryChart(state.CorePercents[i].drugPercent, "#2CABE3"), `indexChart${i}`); }
initEcharts(categoryChart(state.CorePercents[i].materialsPercent, "#71D875"), `indexCharttwo${i}`); // 低倍率宽度
initEcharts(categoryChart(state.CorePercents[i].inspectPercent, "#F35E77"), `indexCharttree${i}`); item.lowwidth = Math.round((Math.round(item.lowMagnification) / Math.round(item.heightnum)) * 100);
initEcharts(categoryChart(state.CorePercents[i].testPercent, "#FFB321"), `indexChartfore${i}`); // 高倍率宽度
initEcharts(categoryChart(state.CorePercents[i].otherPercent, "#C05EF3"), `indexChartfile${i}`); item.heightwidth = Math.round(((Math.round(item.heightnum) - Math.round(item.highMagnification)) / Math.round(item.heightnum)) * 100);
// 正常倍率宽度
item.contentwidth = 100 - (item.lowwidth + item.heightwidth);
//总费用宽度
item.totalwidth = Math.round((Math.round(item.totalFee) / Math.round(item.heightnum)) * 100);
// 判断总费用显示的颜色
if (item.totalFee < item.lowMagnification) {
item.totalcolor = "#e9c622";
} else if (item.totalFee > item.lowMagnification && item.totalFee < item.highMagnification) {
item.totalcolor = "#22d016";
} else if (item.totalFee > item.highMagnification) {
item.totalcolor = "#ff7e00";
}
if (item.lowMagnification == 0 || item.highMagnification == 0) {
item.bottomheight = "80%";
} else if (data.lowMagnification != 0) {
item.bottomheight = "68%";
} }
});
if (this.CorePercents.length == 0) {
this.nolistShow = true;
}
// for (var i = 0; i < this.CorePercents.length; i++) {
// this.$nextTick();
// initEcharts(categoryChart(this.CorePercents[i].drugPercent, "#2CABE3"), `indexChart${i}`);
// initEcharts(categoryChart(this.CorePercents[i].materialsPercent, "#71D875"), `indexCharttwo${i}`);
// initEcharts(categoryChart(this.CorePercents[i].inspectPercent, "#F35E77"), `indexCharttree${i}`);
// initEcharts(categoryChart(this.CorePercents[i].testPercent, "#FFB321"), `indexChartfore${i}`);
// initEcharts(categoryChart(this.CorePercents[i].otherPercent, "#C05EF3"), `indexChartfile${i}`);
// }
}) })
.catch((error) => {}); .catch((error) => {});
}; },
//提交 //提交
const submit = () => { submit(coreID) {
if (!state.radio) { http.post(`/medical/Update/casehisById?PatientId=${this.$route.query.id}&coreid=${coreID}`)
Message.warning({
message: "请先选择要入组的病组",
type: "warning",
});
} else {
http.post(`/medical/Update/casehisById?PatientId=${route.value.query.id}`, [state.coreID])
.then((data) => { .then((data) => {
Message.success({ Message.success({
message: `${data.message}`, message: `${data.message}`,
type: "success", type: "success",
}); });
getCaseHis(route.value.query.id); this.getCaseHis(this.$route.query.id);
}) })
.catch((error) => {}); .catch((error) => {});
} },
};
var route = useRoute();
//关闭弹层前的回调 //关闭弹层前的回调
const closeDialog = () => { closeDialog() {
state.addrecordEnrollmentShow = false; this.addrecordEnrollmentShow = false;
state.outaddsearchForm = { this.outaddsearchForm = {
diagName: "", diagName: "",
opsName: "", opsName: "",
}; };
(state.otdiagName = []), (state.otopsName = []), addclear(); (this.otdiagName = []), (this.otopsName = []), this.addclear();
}; },
//清空输入框的值时触发 //清空输入框的值时触发
const addclear = () => { addclear() {
state.addCorePercents = []; this.addCorePercents = [];
state.addnodataShow = true; this.addnodataShow = true;
}; },
//获取诊断数据 //获取诊断数据
const remoteMethod = (query) => { remoteMethod(query) {
if (query) { if (query) {
http.post(`/medical/get/GetDiagOpss?diagName=${query}&type=${1}`, {}) http.post(`/medical/get/GetDiagOpss?diagName=${query}&type=${1}`, {})
.then((data) => { .then((data) => {
state.zdoptions = data; this.zdoptions = data;
}) })
.catch((error) => {}); .catch((error) => {});
} else { } else {
state.zdoptions = []; this.zdoptions = [];
} }
}; },
//获取其他诊断数据 //获取其他诊断数据
const otremoteMethod = (query) => { otremoteMethod(query) {
if (query) { if (query) {
http.post(`/medical/get/GetDiagOpss?diagName=${query}&type=${1}`, {}) http.post(`/medical/get/GetDiagOpss?diagName=${query}&type=${1}`, {})
.then((data) => { .then((data) => {
state.otzdoptions = data; this.otzdoptions = data;
}) })
.catch((error) => {}); .catch((error) => {});
} else { } else {
state.zdoptions = []; this.zdoptions = [];
} }
}; },
//获取主手术,其他手术的数据 //获取主手术,其他手术的数据
const ssremoteMethod = (query) => { ssremoteMethod(query) {
if (query) { if (query) {
http.post(`/medical/get/GetDiagOpss?diagName=${query}&type=${2}`, {}) http.post(`/medical/get/GetDiagOpss?diagName=${query}&type=${2}`, {})
.then((data) => { .then((data) => {
state.ssoptions = data; this.ssoptions = data;
}) })
.catch((error) => {}); .catch((error) => {});
} else { } else {
state.zdoptions = []; this.zdoptions = [];
} }
}; },
//获取其他手术的数据 //获取其他手术的数据
const otssremoteMethod = (query) => { otssremoteMethod(query) {
if (query) { if (query) {
http.post(`/medical/get/GetDiagOpss?diagName=${query}&type=${2}`, {}) http.post(`/medical/get/GetDiagOpss?diagName=${query}&type=${2}`, {})
.then((data) => { .then((data) => {
state.otssoptions = data; this.otssoptions = data;
}) })
.catch((error) => {}); .catch((error) => {});
} else { } else {
state.zdoptions = []; this.zdoptions = [];
} }
}; },
//查询 //查询
const addsearch = () => { addsearch() {
//诊断 //诊断
if (state.otdiagName.length > 0 && state.outaddsearchForm.diagName) { if (this.otdiagName.length > 0 && this.outaddsearchForm.diagName) {
state.diagList.push({ this.diagList.push({
diagCode: state.outaddsearchForm.diagName, diagCode: this.outaddsearchForm.diagName,
diagOrder: "0", diagOrder: "0",
}); });
state.otdiagName.forEach((i) => { this.otdiagName.forEach((i) => {
state.diagList.push({ this.diagList.push({
diagCode: i, diagCode: i,
diagOrder: "1", diagOrder: "1",
}); });
}); });
} else if (state.outaddsearchForm.diagName) { } else if (this.outaddsearchForm.diagName) {
state.diagList.push({ this.diagList.push({
diagCode: state.outaddsearchForm.diagName, diagCode: this.outaddsearchForm.diagName,
diagOrder: "0", diagOrder: "0",
}); });
} else if (state.otdiagName.length > 0) { } else if (this.otdiagName.length > 0) {
state.otdiagName.forEach((i) => { this.otdiagName.forEach((i) => {
state.diagList.push({ this.diagList.push({
diagCode: i, diagCode: i,
diagOrder: "1", diagOrder: "1",
}); });
}); });
} }
// 手术 // 手术
if (state.otopsName.length > 0 && state.outaddsearchForm.opsName) { if (this.otopsName.length > 0 && this.outaddsearchForm.opsName) {
state.opsList.push({ this.opsList.push({
opsCode: state.outaddsearchForm.opsName, opsCode: this.outaddsearchForm.opsName,
diagOrder: "0", diagOrder: "0",
}); });
state.otopsName.forEach((i) => { this.otopsName.forEach((i) => {
state.opsList.push({ this.opsList.push({
opsCode: i, opsCode: i,
diagOrder: "1", diagOrder: "1",
}); });
}); });
} else if (state.outaddsearchForm.opsName) { } else if (this.outaddsearchForm.opsName) {
state.opsList.push({ this.opsList.push({
opsCode: state.outaddsearchForm.opsName, opsCode: this.outaddsearchForm.opsName,
diagOrder: "0", diagOrder: "0",
}); });
} else if (state.otopsName.length > 0) { } else if (this.otopsName.length > 0) {
state.otopsName.forEach((i) => { this.otopsName.forEach((i) => {
state.opsList.push({ this.opsList.push({
opsCode: i, opsCode: i,
diagOrder: "1", diagOrder: "1",
}); });
}); });
} }
addgetlist(); this.addgetlist();
}; },
//获取列表数据 //获取列表数据
const addgetlist = () => { addgetlist() {
http.post(`/medical/post/GetCorePercentsByAssemble`, { http.post(`/medical/post/GetCorePercentsByAssemble`, {
a14: state.ageinput ? state.ageinput : "0", // 年龄 a14: this.ageinput ? this.ageinput : "0", // 年龄
a16: state.ageinput2 ? state.ageinput2 : "0", // 年龄不足一周岁(天) a16: this.ageinput2 ? this.ageinput2 : "0", // 年龄不足一周岁(天)
a12C: state.sexvalue, // 性别 a12C: this.sexvalue, // 性别
icuTime: state.icuinput ? state.icuinput : "0", // icu总时长(分钟) icuTime: this.icuinput ? this.icuinput : "0", // icu总时长(分钟)
b34C: state.leavevalue, // 离院方式 b34C: this.leavevalue, // 离院方式
diagList: state.diagList, // 诊断集合 diagList: this.diagList, // 诊断集合
opsList: state.opsList, // 手术集合 opsList: this.opsList, // 手术集合
}) })
.then((data) => { .then((data) => {
state.addCorePercents = data; this.addCorePercents = data;
if (state.addCorePercents.length == 0) { if (this.addCorePercents.length == 0) {
state.addnolistShow = true; this.addnolistShow = true;
} else { } else {
state.addnolistShow = false; this.addnolistShow = false;
} }
// state.totalCount = data.totalCount; // this.totalCount = data.totalCount;
for (var i = 0; i < state.addCorePercents.length; i++) { // for (var i = 0; i < this.addCorePercents.length; i++) {
initEcharts(categoryChart11("药占比", state.addCorePercents[i].drugPercent, "#2CABE3"), `indexChart11${i}`); // initEcharts(categoryChart11("药占比", this.addCorePercents[i].drugPercent, "#2CABE3"), `indexChart11${i}`);
initEcharts(categoryChart11("耗材占比", state.addCorePercents[i].materialsPercent, "#71D875"), `indexChart11two${i}`); // initEcharts(categoryChart11("耗材占比", this.addCorePercents[i].materialsPercent, "#71D875"), `indexChart11two${i}`);
initEcharts(categoryChart11("检查占比", state.addCorePercents[i].inspectPercent, "#F35E77"), `indexChart11tree${i}`); // initEcharts(categoryChart11("检查占比", this.addCorePercents[i].inspectPercent, "#F35E77"), `indexChart11tree${i}`);
initEcharts(categoryChart11("检验占比", state.addCorePercents[i].testPercent, "#FFB321"), `indexChart11fore${i}`); // initEcharts(categoryChart11("检验占比", this.addCorePercents[i].testPercent, "#FFB321"), `indexChart11fore${i}`);
initEcharts(categoryChart11("其他", state.addCorePercents[i].otherPercent, "#C05EF3"), `indexChart11file${i}`); // initEcharts(categoryChart11("其他", this.addCorePercents[i].otherPercent, "#C05EF3"), `indexChart11file${i}`);
(state.diagList = []), (state.opsList = []); // (this.diagList = []), (this.opsList = []);
} // }
}) })
.catch((error) => {}); .catch((error) => {});
}; },
const radios = (e) => {
state.radio = e.target.value;
state.coreID = state.CorePercents.find((item) => item.id == e.target.value).coreID;
};
const toPage = () => { radios(e) {
http.get(`/medical/get/JumpHisMAInfo?id=${route.value.query.id}`, {}) this.radio = e.target.value;
this.coreID = this.CorePercents.find((item) => item.id == e.target.value).coreID;
},
toPage() {
http.get(`/medical/get/JumpHisMAInfo?id=${this.$route.query.id}`, {})
.then((data) => { .then((data) => {
window.open(data.message); window.open(data.message);
}) })
.catch((error) => { .catch((error) => {
console.log(error); console.log(error);
}); });
}; },
const topage1 = () => { topage1() {
http.get(`/medical/get/JumpHisRules?id=${route.value.query.id}`, {}) http.get(`/medical/get/JumpHisRules?id=${this.$route.query.id}`, {})
.then((data) => { .then((data) => {
window.open(data.message); window.open(data.message);
}) })
.catch((error) => {}); .catch((error) => {});
}; },
onMounted(() => {
getCaseHis(route.value.query.id);
if (state.searchForm.diagName.length > 0) {
getlist();
}
// if (state.outaddsearchForm.diagName.length > 0) {
// addgetlist();
// }
});
return {
...toRefs(state),
decimal,
getCaseHis,
getlist,
submit,
goback,
gosear,
addsearch,
addgetlist,
remoteMethod,
otremoteMethod,
otssremoteMethod,
addclear,
ssremoteMethod,
closeDialog,
radios,
toPage,
topage1,
};
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss">
@import "../styles/mixin.scss"; @import "../styles/mixin.scss";
@import "../styles/outHistorygrouping.scss"; @import "../styles/outHistorygrouping.scss";
.outsetgrouping { .outsetgrouping {
...@@ -1061,7 +1091,7 @@ export default { ...@@ -1061,7 +1091,7 @@ export default {
height: calc(100% - 229px); height: calc(100% - 229px);
overflow-y: auto; overflow-y: auto;
&_totalnum { &_totalnum {
height: 250px; height: 300px;
background-color: #fff; background-color: #fff;
margin: 12px; margin: 12px;
display: flex; display: flex;
...@@ -1076,20 +1106,20 @@ export default { ...@@ -1076,20 +1106,20 @@ export default {
align-items: center; align-items: center;
justify-content: center; justify-content: center;
&_radios { &_radios {
width: 3%; width: 8%;
height: 30%; height: 30%;
display: flex; display: flex;
justify-content: center; justify-content: center;
align-items: center; align-items: center;
} }
&_text { &_text {
width: 97%; width: 92%;
height: 100%; height: 100%;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
&_msg1 { &_msg1 {
height: 30%; height: 15%;
box-sizing: content-box; box-sizing: content-box;
border: 10px solid rgba(44, 171, 227, 0.08); border: 10px solid rgba(44, 171, 227, 0.08);
border-bottom: 5px solid rgba(44, 171, 227, 0.08); border-bottom: 5px solid rgba(44, 171, 227, 0.08);
...@@ -1097,7 +1127,6 @@ export default { ...@@ -1097,7 +1127,6 @@ export default {
margin-bottom: 5px; margin-bottom: 5px;
// margin-top: 5px; // margin-top: 5px;
display: flex; display: flex;
&_text11 { &_text11 {
width: 25%; width: 25%;
height: 100%; height: 100%;
...@@ -1180,12 +1209,11 @@ export default { ...@@ -1180,12 +1209,11 @@ export default {
} }
} }
} }
&_msg2 { &_msg2 {
background-color: rgba(44, 171, 227, 0.08); background-color: rgba(44, 171, 227, 0.08);
display: flex; display: flex;
flex-direction: column; flex-direction: column;
height: 55%; height: 35%;
justify-content: center; justify-content: center;
padding-top: 10px; padding-top: 10px;
&_text3 { &_text3 {
...@@ -1233,6 +1261,10 @@ export default { ...@@ -1233,6 +1261,10 @@ export default {
} }
} }
} }
.outpatientDetails_fenqu {
height: 35%;
margin-bottom: 0;
}
} }
} }
&_right { &_right {
...@@ -1337,8 +1369,12 @@ export default { ...@@ -1337,8 +1369,12 @@ export default {
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
align-content: center; align-content: center;
text-align: center;
&_img { &_img {
display: flex;
flex-direction: column;
justify-content: center;
align-content: center;
img { img {
width: 115px; width: 115px;
height: 102px; height: 102px;
...@@ -1357,7 +1393,13 @@ export default { ...@@ -1357,7 +1393,13 @@ export default {
justify-content: flex-end; justify-content: flex-end;
margin-top: 1%; margin-top: 1%;
} }
.fullscreen {
.el-dialog.is-fullscreen {
.el-dialog__body {
height: 91%;
}
}
}
.outaddrecordEnrollment { .outaddrecordEnrollment {
height: calc(100% - 50px); height: calc(100% - 50px);
background-color: white; background-color: white;
...@@ -1468,161 +1510,92 @@ export default { ...@@ -1468,161 +1510,92 @@ export default {
} }
} }
} }
// &_centent {
// background-color: #f1f5f8;
// height: 70vh;
// overflow-y: auto;
// &_totalnum {
// height: 151px;
// background-color: #fff;
// margin: 12px;
// display: flex;
// align-items: center;
// justify-content: space-around;
// &_left {
// flex: 1;
// width: 50%;
// height: 132px;
// background-color: rgba(44, 171, 227, 0.08);
// margin: 0 15px;
// display: flex;
// flex-direction: column;
// align-items: center;
// justify-content: center;
// &_text1 {
// width: 100%;
// height: 30%;
// display: flex;
// margin-top: 5px;
// margin-bottom: 10px;
// justify-content: space-between;
// span {
// height: 100%;
// width: 50%;
// margin: 5px 10px;
// background-color: #fff;
// display: flex;
// justify-content: start;
// align-items: center;
// font-size: 14px;
// padding-left: 10px;
// font-family: PingFang SC;
// font-weight: 300;
// color: #6a707e;
// }
// }
// &_text2 {
// width: 100%;
// height: 30%;
// display: flex;
// justify-content: space-between;
// span {
// height: 100%;
// width: 50%;
// margin: 5px 10px;
// background-color: #fff;
// display: flex;
// justify-content: start;
// align-items: center;
// font-size: 14px;
// padding-left: 10px;
// font-family: PingFang SC;
// font-weight: 300;
// color: #6a707e;
// }
// }
// &_text3 {
// margin-bottom: 10px;
// width: 100%;
// height: 30%;
// margin-top: 10px;
// display: flex;
// justify-content: space-between;
// span {
// height: 100%;
// width: 50%;
// margin: 5px 10px;
// background-color: #fff;
// display: flex;
// justify-content: start;
// align-items: center;
// font-size: 14px;
// padding-left: 10px;
// font-family: PingFang SC;
// font-weight: 300;
// color: #6a707e;
// }
// }
// }
// &_right {
// width: 50%;
// height: 132px;
// display: flex;
// justify-content: space-around;
// &_echar1 {
// width: 20%;
// height: 132px;
// }
// &_echar2 {
// width: 20%;
// height: 132px;
// }
// &_echar3 {
// width: 20%;
// height: 132px;
// }
// &_echar4 {
// width: 20%;
// height: 132px;
// }
// &_echar5 {
// width: 20%;
// height: 132px;
// }
// }
// }
// // 没有数据
// &_nodata {
// width: 100%;
// height: 100%;
// display: flex;
// flex-direction: column;
// justify-content: center;
// align-items: center;
// &_img {
// img {
// width: 115px;
// height: 102px;
// }
// }
// &_text {
// font-size: 18px;
// font-family: PingFang SC;
// font-weight: 400;
// color: #abafb3;
// }
// }
// }
&_centent { &_centent {
background-color: #f1f5f8; background-color: #f1f5f8;
height: 63%; height: 75%;
overflow-y: auto; overflow-y: auto;
&_totalnum { &_totalnum {
height: 140px; height: 151px;
background-color: #fff; background-color: #fff;
margin: 12px; margin: 12px;
display: flex; display: flex;
flex-direction: column;
align-items: center; align-items: center;
justify-content: space-around;
&_left { &_left {
flex: 1; flex: 1;
width: 100%; width: 50%;
height: 70%; height: 132px;
background-color: rgba(44, 171, 227, 0.08);
margin: 0 15px;
display: flex; display: flex;
flex-direction: row; flex-direction: column;
align-items: center; align-items: center;
justify-content: center; justify-content: center;
&_text1 {
width: 100%;
height: 30%;
display: flex;
margin-top: 5px;
margin-bottom: 10px;
justify-content: space-between;
span {
height: 100%;
width: 50%;
margin: 5px 10px;
background-color: #fff;
display: flex;
justify-content: start;
align-items: center;
font-size: 14px;
padding-left: 10px;
font-family: PingFang SC;
font-weight: 300;
color: #6a707e;
}
}
&_text2 {
width: 100%;
height: 30%;
display: flex;
justify-content: space-between;
span {
height: 100%;
width: 50%;
margin: 5px 10px;
background-color: #fff;
display: flex;
justify-content: start;
align-items: center;
font-size: 14px;
padding-left: 10px;
font-family: PingFang SC;
font-weight: 300;
color: #6a707e;
}
}
&_text3 {
margin-bottom: 10px;
width: 100%;
height: 30%;
margin-top: 10px;
display: flex;
justify-content: space-between;
span {
height: 100%;
width: 50%;
margin: 5px 10px;
background-color: #fff;
display: flex;
justify-content: start;
align-items: center;
font-size: 14px;
padding-left: 10px;
font-family: PingFang SC;
font-weight: 300;
color: #6a707e;
}
}
&_radios { &_radios {
width: 3%; width: 3%;
height: 30%; height: 30%;
...@@ -1886,8 +1859,12 @@ export default { ...@@ -1886,8 +1859,12 @@ export default {
flex-direction: column; flex-direction: column;
justify-content: center; justify-content: center;
align-content: center; align-content: center;
text-align: center;
&_img { &_img {
display: flex;
justify-content: center;
align-content: center;
text-align: center;
img { img {
width: 115px; width: 115px;
height: 102px; height: 102px;
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
<div class="outpatientDetails_top_div1"> <div class="outpatientDetails_top_div1">
<span class="span1">患者信息</span> <span class="span1">患者信息</span>
<div> <div>
<el-button class="outpatientDetails_top_div1_button" type="primary" size="mini" @click="gosear"> 疾病分组查询 </el-button>
<el-button class="outpatientDetails_top_div1_button" size="mini" type="primary" @click="topage">病案质控</el-button> <el-button class="outpatientDetails_top_div1_button" size="mini" type="primary" @click="topage">病案质控</el-button>
<el-button class="outpatientDetails_top_div1_button" type="primary" size="mini" @click="getControl">医嘱质控</el-button> <el-button class="outpatientDetails_top_div1_button" type="primary" size="mini" @click="getControl">医嘱质控</el-button>
</div> </div>
...@@ -307,14 +308,140 @@ ...@@ -307,14 +308,140 @@
<div class="outpatientDetails_bottom_box_text">暂无数据</div> <div class="outpatientDetails_bottom_box_text">暂无数据</div>
</div> </div>
</div> --> </div> -->
<!-- 弹出层 -->
<el-dialog center :visible.sync="addrecordEnrollmentShow" :before-close="closeDialog" class="fullscreen" :fullscreen="true">
<!-- 病案入组 -->
<div class="outaddrecordEnrollment" id="outaddrecordEnrollment">
<div class="outaddrecordEnrollment_search">
<div class="outaddrecordEnrollment_search_div1">
<span class="outaddrecordEnrollment_search_div1_span1"><span style="color: red">*</span> 主诊断:</span>
<el-select
class="outaddrecordEnrollment_search_div1_inp1"
v-model="outaddsearchForm.diagName"
filterable
remote
reserve-keyword
placeholder="请输入主诊断"
:remote-method="remoteMethod"
size="mini"
clearable
>
<el-option v-for="item in zdoptions" :key="item.name" :label="item.name" :value="item.name" />
</el-select>
<span class="outaddrecordEnrollment_search_div1_span2">其他诊断:</span>
<el-select
class="outaddrecordEnrollment_search_div1_inp2"
v-model="otdiagName"
multiple
collapse-tags
collapse-tags-tooltip
filterable
remote
reserve-keyword
placeholder="请输入其他诊断"
:remote-method="otremoteMethod"
size="mini"
clearable
>
<el-option v-for="item in otzdoptions" :key="item.name" :label="item.name" :value="item.name" />
</el-select>
<span class="outaddrecordEnrollment_search_div1_span3">年龄:</span>
<el-input v-model="ageinput" placeholder="请输入年龄" class="outaddrecordEnrollment_search_div1_inp3" size="mini" />&nbsp;
<span class="outaddrecordEnrollment_search_div1_span4">ICU总时长:</span>
<el-input v-model="icuinput" placeholder="请输入ICU总时长" class="outaddrecordEnrollment_search_div1_inp4" size="mini" />&nbsp;分钟
<span class="outaddrecordEnrollment_search_div1_span5">
<el-button size="mini" type="primary" @click="addsearch">查询</el-button>
</span>
</div>
<div class="outaddrecordEnrollment_search_div2">
<span class="outaddrecordEnrollment_search_div2_span1">主手术:</span>
<el-select
class="outaddrecordEnrollment_search_div2_inp1"
v-model="outaddsearchForm.opsName"
filterable
remote
reserve-keyword
placeholder="请输入主手术"
:remote-method="ssremoteMethod"
size="mini"
clearable
>
<el-option v-for="item in ssoptions" :key="item.name" :label="item.name" :value="item.name" />
</el-select>
<span class="outaddrecordEnrollment_search_div2_span2">其他手术:</span>
<el-select
class="outaddrecordEnrollment_search_div2_inp2"
v-model="otopsName"
multiple
collapse-tags
collapse-tags-tooltip
filterable
remote
reserve-keyword
placeholder="请输入其他手术"
:remote-method="otssremoteMethod"
size="mini"
clearable
>
<el-option v-for="item in otssoptions" :key="item.name" :label="item.name" :value="item.name" />
</el-select>
<span class="outaddrecordEnrollment_search_div2_span3">新生儿年龄:</span>
<el-input v-model="ageinput2" placeholder="请输入新生儿年龄" class="outaddrecordEnrollment_search_div2_inp3" size="mini" />&nbsp;
<span class="outaddrecordEnrollment_search_div2_span4">离院方式:</span>
<el-select v-model="leavevalue" placeholder="请选择离院方式" size="mini" class="outaddrecordEnrollment_search_div2_inp4">
<el-option v-for="item in leaveoptions" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</div>
<div class="outaddrecordEnrollment_search_div3">
<span class="outaddrecordEnrollment_search_div3_span1">性别:</span>
<el-radio-group v-model="sexvalue">
<el-radio v-for="item in sexoptions" :key="item.value" :label="item.value" size="small">{{ item.label }}</el-radio>
</el-radio-group>
</div>
</div>
<div class="outaddrecordEnrollment_centent">
<div class="outaddrecordEnrollment_centent_totalnum" v-for="(item, index) in addCorePercents" :key="index">
<div class="outaddrecordEnrollment_centent_totalnum_left">
<div class="outaddrecordEnrollment_centent_totalnum_left_text1">
<span>分组编码:{{ item.code }}</span>
<span>入组名称:{{ item.coreName }}</span>
<span>基准点数:{{ item.score }}</span>
</div>
<div class="outaddrecordEnrollment_centent_totalnum_left_text3">
<span>预计DRG支付费用:{{ item.unitfee }}</span> <span>入组类型:{{ item.disNature }}</span>
</div>
</div>
<!-- <div class="outaddrecordEnrollment_centent_totalnum_right">
<div :id="`indexChart11` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar1"></div>
<div :id="`indexChart11two` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar2"></div>
<div :id="`indexChart11tree` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar3"></div>
<div :id="`indexChart11fore` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar4"></div>
<div :id="`indexChart11file` + index" class="outaddrecordEnrollment_centent_totalnum_right_echar5"></div>
</div> -->
</div>
<div v-show="addnolistShow" class="outaddrecordEnrollment_centent_nodata">
<div class="outaddrecordEnrollment_centent_nodata_img">
<img src="../assets/img/nodata.png" alt="" />
</div>
<div class="outaddrecordEnrollment_centent_nodata_text">暂无数据</div>
</div>
</div>
<div class="outaddrecordEnrollment_pagination"></div>
</div>
</el-dialog>
</div> </div>
</template> </template>
<script> <script>
import http from "../utils/http"; import http from "../utils/http";
import { reactive, toRefs, onMounted, nextTick, computed, ref } from "@vue/composition-api"; import { initEcharts, categoryChart, categoryChart11 } from "../utils/echarts";
import { decimal } from "../utils/decimal"; import { decimal } from "../utils/decimal";
import { Message } from "element-ui"; import { Message } from "element-ui";
import { useRoute, useRouter } from "../utils/useVueRouter";
import { setItem, getItem } from "../utils/auth"; import { setItem, getItem } from "../utils/auth";
import { Loading } from "element-ui"; import { Loading } from "element-ui";
...@@ -409,6 +536,79 @@ export default { ...@@ -409,6 +536,79 @@ export default {
spinner: "el-icon-loading", spinner: "el-icon-loading",
background: "rgba(0, 0, 0, 0.5)", background: "rgba(0, 0, 0, 0.5)",
}, },
//疾病查询
addrecordEnrollmentShow: false,
outaddsearchForm: {
diagName: "",
opsName: "",
},
addCorePercents: [],
addnolistShow: true, //没有搜索数据的时候显示
addgroupList: [], //主诊断
addgroupArr: [],
addgroupList2: [], //主手术
addgroupArr2: [],
addrecordEnrollmentShow: false,
// 性别选择器
sexoptions: [
{
label: "未知",
value: "0",
},
{
label: "男",
value: "1",
},
{
label: "女",
value: "2",
},
],
//离院方式选择器
leaveoptions: [
{
label: "医嘱离院",
value: "1",
},
{
label: "医嘱转院",
value: "2",
},
{
label: "医嘱转社区卫生服务机构/乡镇卫生院",
value: "3",
},
{
label: "非医嘱离院",
value: "4",
},
{
label: "死亡",
value: "5",
},
{
label: "其他",
value: "9",
},
],
//性别输入框
sexvalue: "0",
//年龄 岁
ageinput: "0",
//年龄 天
ageinput2: "0",
//icu时长
icuinput: "0",
//离院方式
leavevalue: "1",
otdiagName: "", //其他诊断
otopsName: "", //其他手术
zdoptions: [], //诊断的数据
otzdoptions: [], //其他诊断数据
ssoptions: [], //主手术
otssoptions: [], //其他手术
diagList: [], //诊断
opsList: [], //手术
}; };
}, },
mounted() { mounted() {
...@@ -417,6 +617,158 @@ export default { ...@@ -417,6 +617,158 @@ export default {
this.getlefttable(); this.getlefttable();
}, },
methods: { methods: {
//疾病查询
gosear() {
this.addrecordEnrollmentShow = true;
},
//查询
addsearch() {
//诊断
if (this.otdiagName.length > 0 && this.outaddsearchForm.diagName) {
this.diagList.push({
diagCode: this.outaddsearchForm.diagName,
diagOrder: "0",
});
this.otdiagName.forEach((i) => {
this.diagList.push({
diagCode: i,
diagOrder: "1",
});
});
} else if (this.outaddsearchForm.diagName) {
this.diagList.push({
diagCode: this.outaddsearchForm.diagName,
diagOrder: "0",
});
} else if (this.otdiagName.length > 0) {
this.otdiagName.forEach((i) => {
this.diagList.push({
diagCode: i,
diagOrder: "1",
});
});
}
// 手术
if (this.otopsName.length > 0 && this.outaddsearchForm.opsName) {
this.opsList.push({
opsCode: this.outaddsearchForm.opsName,
diagOrder: "0",
});
this.otopsName.forEach((i) => {
this.opsList.push({
opsCode: i,
diagOrder: "1",
});
});
} else if (this.outaddsearchForm.opsName) {
this.opsList.push({
opsCode: this.outaddsearchForm.opsName,
diagOrder: "0",
});
} else if (this.otopsName.length > 0) {
this.otopsName.forEach((i) => {
this.opsList.push({
opsCode: i,
diagOrder: "1",
});
});
}
this.addgetlist();
},
//获取列表数据
addgetlist() {
http.post(`/medical/post/GetCorePercentsByAssemble`, {
a14: this.ageinput ? this.ageinput : "0", // 年龄
a16: this.ageinput2 ? this.ageinput2 : "0", // 年龄不足一周岁(天)
a12C: this.sexvalue, // 性别
icuTime: this.icuinput ? this.icuinput : "0", // icu总时长(分钟)
b34C: this.leavevalue, // 离院方式
diagList: this.diagList, // 诊断集合
opsList: this.opsList, // 手术集合
})
.then((data) => {
this.addCorePercents = data;
if (this.addCorePercents.length == 0) {
this.addnolistShow = true;
} else {
this.addnolistShow = false;
}
// for (var i = 0; i < this.addCorePercents.length; i++) {
// initEcharts(categoryChart11("药占比", this.addCorePercents[i].drugPercent, "#2CABE3"), `indexChart11${i}`);
// initEcharts(categoryChart11("耗材占比", this.addCorePercents[i].materialsPercent, "#71D875"), `indexChart11two${i}`);
// initEcharts(categoryChart11("检查占比", this.addCorePercents[i].inspectPercent, "#F35E77"), `indexChart11tree${i}`);
// initEcharts(categoryChart11("检验占比", this.addCorePercents[i].testPercent, "#FFB321"), `indexChart11fore${i}`);
// initEcharts(categoryChart11("其他", this.addCorePercents[i].otherPercent, "#C05EF3"), `indexChart11file${i}`);
// (this.diagList = []), (this.opsList = []);
// }
})
.catch((error) => {});
},
//清空输入框的值时触发
addclear() {
this.addCorePercents = [];
this.addnodataShow = true;
},
//关闭弹层前的回调
closeDialog() {
this.addrecordEnrollmentShow = false;
this.outaddsearchForm = {
diagName: "",
opsName: "",
};
(this.otdiagName = []), (this.otopsName = []), this.addclear();
},
//获取诊断数据
remoteMethod(query) {
if (query) {
http.post(`/medical/get/GetDiagOpss?diagName=${query}&type=${1}`, {})
.then((data) => {
this.zdoptions = data;
})
.catch((error) => {});
} else {
this.zdoptions = [];
}
},
//获取其他诊断数据
otremoteMethod(query) {
if (query) {
http.post(`/medical/get/GetDiagOpss?diagName=${query}&type=${1}`, {})
.then((data) => {
this.otzdoptions = data;
})
.catch((error) => {});
} else {
this.zdoptions = [];
}
},
//获取主手术,其他手术的数据
ssremoteMethod(query) {
if (query) {
http.post(`/medical/get/GetDiagOpss?diagName=${query}&type=${2}`, {})
.then((data) => {
this.ssoptions = data;
})
.catch((error) => {});
} else {
this.zdoptions = [];
}
},
//获取其他手术的数据
otssremoteMethod(query) {
if (query) {
http.post(`/medical/get/GetDiagOpss?diagName=${query}&type=${2}`, {})
.then((data) => {
this.otssoptions = data;
})
.catch((error) => {});
} else {
this.zdoptions = [];
}
},
////
decimal, decimal,
topage() { topage() {
http.get(`/medical/get/JumpHisRules?id=${this.$route.query.id}`, {}) http.get(`/medical/get/JumpHisRules?id=${this.$route.query.id}`, {})
...@@ -449,7 +801,7 @@ export default { ...@@ -449,7 +801,7 @@ export default {
if (this.tableData1 != []) { if (this.tableData1 != []) {
eowclick(this.tableData1[0]); eowclick(this.tableData1[0]);
//默认高亮第一行 //默认高亮第一行
nextTick(() => { this.$nextTick(() => {
this.$refs.monthlyPlanTable.setCurrentRow(this.tableData1[0]); this.$refs.monthlyPlanTable.setCurrentRow(this.tableData1[0]);
}); });
} }
...@@ -503,6 +855,7 @@ export default { ...@@ -503,6 +855,7 @@ export default {
loadingInstance2.close(); loadingInstance2.close();
}); });
}, },
//疾病查询
//点击获取中间的表格数据 //点击获取中间的表格数据
getruleId(ruleId, ind) { getruleId(ruleId, ind) {
...@@ -593,7 +946,7 @@ export default { ...@@ -593,7 +946,7 @@ export default {
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss">
@import "../styles/mixin.scss"; @import "../styles/mixin.scss";
@import "../styles/media/components/outpatientDetails.scss"; @import "../styles/media/components/outpatientDetails.scss";
...@@ -1461,5 +1814,492 @@ export default { ...@@ -1461,5 +1814,492 @@ export default {
} }
} }
} }
.fullscreen {
.el-dialog.is-fullscreen {
.el-dialog__body {
height: 91%;
}
}
}
.outaddrecordEnrollment {
height: calc(100% - 50px);
background-color: white;
padding: 20px;
overflow: hidden;
position: relative;
&_search {
// margin-bottom: 20px;
height: 15%;
margin-bottom: 10px;
display: flex;
flex-direction: column;
justify-content: space-between;
&_div1 {
color: #abafb3;
display: flex;
font-size: 12px;
align-items: center;
margin-bottom: 10px;
&_span1 {
width: 50px;
display: flex;
align-items: center;
justify-content: flex-end;
}
&_inp1 {
width: 400px;
}
&_span2 {
width: 70px;
display: flex;
justify-content: flex-end;
}
&_inp2 {
width: 500px;
}
&_span3 {
width: 80px;
display: flex;
justify-content: flex-end;
}
&_inp3 {
width: 100px;
}
&_span4 {
width: 80px;
display: flex;
justify-content: flex-end;
}
&_inp4 {
width: 150px;
}
&_span5 {
margin-left: 290px;
display: flex;
justify-content: flex-end;
}
}
&_div2 {
display: flex;
font-size: 12px;
align-items: center;
color: #abafb3;
margin-bottom: 10px;
&_span1 {
width: 50px;
display: flex;
align-items: center;
justify-content: flex-end;
}
&_inp1 {
width: 400px;
}
&_span2 {
width: 70px;
display: flex;
justify-content: flex-end;
}
&_inp2 {
width: 500px;
}
&_span3 {
width: 80px;
display: flex;
justify-content: flex-end;
}
&_inp3 {
width: 100px;
}
&_span4 {
width: 80px;
display: flex;
justify-content: flex-end;
}
&_inp4 {
width: 150px;
}
}
&_div3 {
color: #abafb3;
display: flex;
font-size: 12px;
&_span1 {
width: 50px;
display: flex;
align-items: center;
justify-content: flex-end;
}
}
}
&_centent {
background-color: #f1f5f8;
height: 75%;
overflow-y: auto;
&_totalnum {
height: 151px;
background-color: #fff;
margin: 12px;
display: flex;
align-items: center;
justify-content: space-around;
&_left {
flex: 1;
width: 50%;
height: 132px;
background-color: rgba(44, 171, 227, 0.08);
margin: 0 15px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
&_text1 {
width: 100%;
height: 30%;
display: flex;
margin-top: 5px;
margin-bottom: 10px;
justify-content: space-between;
span {
height: 100%;
width: 50%;
margin: 5px 10px;
background-color: #fff;
display: flex;
justify-content: start;
align-items: center;
font-size: 14px;
padding-left: 10px;
font-family: PingFang SC;
font-weight: 300;
color: #6a707e;
}
}
&_text2 {
width: 100%;
height: 30%;
display: flex;
justify-content: space-between;
span {
height: 100%;
width: 50%;
margin: 5px 10px;
background-color: #fff;
display: flex;
justify-content: start;
align-items: center;
font-size: 14px;
padding-left: 10px;
font-family: PingFang SC;
font-weight: 300;
color: #6a707e;
}
}
&_text3 {
margin-bottom: 10px;
width: 100%;
height: 30%;
margin-top: 10px;
display: flex;
justify-content: space-between;
span {
height: 100%;
width: 50%;
margin: 5px 10px;
background-color: #fff;
display: flex;
justify-content: start;
align-items: center;
font-size: 14px;
padding-left: 10px;
font-family: PingFang SC;
font-weight: 300;
color: #6a707e;
}
}
&_radios {
width: 3%;
height: 30%;
display: flex;
justify-content: center;
align-items: center;
}
&_text {
width: 97%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
&_msg1 {
height: 40%;
box-sizing: content-box;
border: 10px solid rgba(44, 171, 227, 0.08);
border-bottom: 5px solid rgba(44, 171, 227, 0.08);
border-top: 5px solid rgba(44, 171, 227, 0.08);
margin-bottom: 5px;
// margin-top: 5px;
display: flex;
&_text11 {
width: 25%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
span {
height: 100%;
width: 85%;
// margin:5px 5px;
display: flex;
justify-content: start;
align-items: center;
font-size: 14px;
padding-left: 10px;
font-family: PingFang SC;
font-weight: 300;
color: #6a707e;
}
}
&_text22 {
width: 25%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
span {
height: 100%;
width: 85%;
// margin:5px 5px;
display: flex;
justify-content: start;
align-items: center;
font-size: 14px;
padding-left: 10px;
font-family: PingFang SC;
font-weight: 300;
color: #6a707e;
}
}
&_text33 {
width: 25%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
span {
height: 100%;
width: 85%;
// margin:5px 5px;
display: flex;
justify-content: start;
align-items: center;
font-size: 14px;
padding-left: 10px;
font-family: PingFang SC;
font-weight: 300;
color: #6a707e;
}
}
&_text44 {
width: 25%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
span {
height: 100%;
width: 85%;
// margin:5px 5px;
display: flex;
justify-content: start;
align-items: flex-start;
font-size: 14px;
padding-left: 10px;
font-family: PingFang SC;
font-weight: 300;
color: #6a707e;
}
}
}
&_msg2 {
background-color: rgba(44, 171, 227, 0.08);
display: flex;
flex-direction: column;
height: 40%;
justify-content: center;
// padding-top: 10px;
&_text3 {
// margin-bottom: 10px;
width: 100%;
height: 83%;
display: flex;
justify-content: space-between;
span {
display: block;
height: 100%;
width: 50%;
margin: 0px 10px;
background-color: #fff;
display: flex;
justify-content: start;
align-items: center;
font-size: 14px;
padding-left: 10px;
font-family: PingFang SC;
font-weight: 300;
color: #6a707e;
}
}
&_text5 {
margin-top: 10px;
margin-bottom: 10px;
width: 100%;
height: 45%;
display: flex;
justify-content: space-between;
span {
height: 100%;
width: 50%;
margin: 0px 10px;
background-color: #fff;
display: flex;
justify-content: start;
align-items: center;
font-size: 14px;
padding-left: 10px;
font-family: PingFang SC;
font-weight: 300;
color: #6a707e;
}
}
}
}
}
&_right {
width: 100%;
height: 30%;
display: flex;
justify-content: space-around;
&_text1 {
width: 19%;
display: flex;
justify-content: center;
align-items: center;
margin-left: 3%;
&_span1 {
color: #2cabe3;
font-family: PingFang SC;
font-weight: 400;
font-size: 14px;
}
&_echar1 {
width: 50%;
height: 88px;
margin-left: -30px;
}
}
&_text2 {
width: 19%;
display: flex;
justify-content: center;
align-items: center;
&_span2 {
color: #71d875;
font-family: PingFang SC;
font-weight: 400;
font-size: 14px;
}
&_echar2 {
width: 50%;
height: 88px;
margin-left: -30px;
}
}
&_text3 {
width: 19%;
display: flex;
justify-content: center;
align-items: center;
&_span3 {
color: #f35e77;
font-family: PingFang SC;
font-weight: 400;
font-size: 14px;
}
&_echar3 {
width: 50%;
height: 85px;
margin-left: -30px;
}
}
&_text4 {
width: 19%;
display: flex;
justify-content: center;
align-items: center;
&_span4 {
color: #ffb321;
font-family: PingFang SC;
font-weight: 400;
font-size: 14px;
}
&_echar4 {
width: 50%;
height: 88px;
margin-left: -30px;
}
}
&_text5 {
width: 19%;
display: flex;
justify-content: center;
align-items: center;
&_span5 {
color: #c05ef3;
font-family: PingFang SC;
font-weight: 400;
font-size: 14px;
}
&_echar5 {
width: 50%;
height: 88px;
margin-left: -30px;
}
}
}
}
// 没有数据
&_nodata {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
justify-content: center;
align-content: center;
text-align: center;
&_img {
display: flex;
justify-content: center;
align-content: center;
text-align: center;
img {
width: 115px;
height: 102px;
}
}
&_text {
font-size: 18px;
font-family: PingFang SC;
font-weight: 400;
color: #abafb3;
}
}
}
}
} }
</style> </style>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment