疾病分组查询

parent a4d05141
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
* @Author: wsq * @Author: wsq
* @Date: 2022-03-02 16:34:58 * @Date: 2022-03-02 16:34:58
* @LastEditors: wsq * @LastEditors: wsq
* @LastEditTime: 2022-07-11 16:37:03 * @LastEditTime: 2022-07-21 15:48:27
* @Description: * @Description:
--> -->
<template> <template>
...@@ -227,57 +227,155 @@ ...@@ -227,57 +227,155 @@
<!-- 病案入组 --> <!-- 病案入组 -->
<div class="outaddrecordEnrollment" id="outaddrecordEnrollment"> <div class="outaddrecordEnrollment" id="outaddrecordEnrollment">
<div class="outaddrecordEnrollment_search"> <div class="outaddrecordEnrollment_search">
<div class="outaddrecordEnrollment_search_message"> <div class="outaddrecordEnrollment_search_div1">
<div class="outaddrecordEnrollment_search_message_left"> <span class="outaddrecordEnrollment_search_div1_span1"
<div class="outaddrecordEnrollment_search_message_left_t1"> >主诊断:</span
<span class="iconfont icon-tingzhenqi"> </span >
><span <el-select
class="outaddrecordEnrollment_search_message_lef_t1_span2" class="outaddrecordEnrollment_search_div1_inp1"
>主诊断名称或诊断编码:</span v-model="outaddsearchForm.diagName"
> filterable
</div> remote
<el-autocomplete reserve-keyword
class="outaddrecordEnrollment_search_message_left_t2" placeholder="请输入主诊断"
v-model.trim="outaddsearchForm.diagName" :remote-method="remoteMethod"
:trigger-on-focus="true" size="mini"
placeholder="请输入主诊断名称或诊断编码" >
clearable <el-option
:fetch-suggestions="addquerySearchGroup" v-for="item in zdoptions"
select-when-unmatched="true" :key="item.name"
@clear="addclear" :label="item.name"
@select="addsearch" :value="item.name"
> />
</el-autocomplete> </el-select>
</div> <span class="outaddrecordEnrollment_search_div1_span2"
<div class="outaddrecordEnrollment_search_message_centert"> >其他诊断:</span
<div class="outaddrecordEnrollment_search_message_centert_t1"> >
<span class="iconfont icon-jiandaosvg"> </span <el-select
><span class="outaddrecordEnrollment_search_div1_inp2"
class="outaddrecordEnrollment_search_message_centert_t1_span2" v-model="otdiagName"
>主手术名称或操作编码:</span multiple
> collapse-tags
</div> collapse-tags-tooltip
<el-autocomplete filterable
class="outaddrecordEnrollment_search_message_centert_t2" remote
v-model.trim="outaddsearchForm.opsName" reserve-keyword
clearable placeholder="请输入其他诊断"
:trigger-on-focus="true" :remote-method="otremoteMethod"
placeholder="请输入主手术名称或操作编码" size="mini"
select-when-unmatched="true" >
:fetch-suggestions="addquerySearchGroup2" <el-option
@select="addsearch" 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"
/>
<span class="outaddrecordEnrollment_search_div1_span4"
>ICU总时长:</span
>
<el-input
v-model="icuinput"
placeholder="单位:分钟"
class="outaddrecordEnrollment_search_div1_inp4"
size="mini"
/>
<span class="outaddrecordEnrollment_search_div1_span5">
<el-button size="mini" type="primary" @click="addsearch"
>查询</el-button
> >
</el-autocomplete> </span>
</div> </div>
<div <div class="outaddrecordEnrollment_search_div2">
class="outaddrecordEnrollment_search_message_right" <span class="outaddrecordEnrollment_search_div2_span1"
@click="addsearch" >主手术:</span
>
<el-select
class="outaddrecordEnrollment_search_div2_inp1"
v-model="outaddsearchForm.opsName"
filterable
remote
reserve-keyword
placeholder="请输入主手术"
:remote-method="ssremoteMethod"
size="mini"
>
<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"
>
<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"
/>
<span class="outaddrecordEnrollment_search_div2_span4"
>离院方式:</span
>
<el-select
v-model="leavevalue"
placeholder="请选择离院方式"
size="mini"
class="outaddrecordEnrollment_search_div2_inp4"
> >
<span class="iconfont icon-sousuo_o"></span> <el-option
<span class="outaddrecordEnrollment_search_message_right_span2" v-for="item in leaveoptions"
>查询</span :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
> >
</div> </el-radio-group>
</div> </div>
</div> </div>
<div class="outaddrecordEnrollment_centent"> <div class="outaddrecordEnrollment_centent">
...@@ -323,7 +421,7 @@ ...@@ -323,7 +421,7 @@
</div> </div>
</div> </div>
<!-- 如果没有数据时的样式 --> <!-- 如果没有数据时的样式 -->
<div <!-- <div
v-show="addnodataShow" v-show="addnodataShow"
class="outaddrecordEnrollment_centent_nodata" class="outaddrecordEnrollment_centent_nodata"
> >
...@@ -333,7 +431,7 @@ ...@@ -333,7 +431,7 @@
<div class="outaddrecordEnrollment_centent_nodata_text"> <div class="outaddrecordEnrollment_centent_nodata_text">
请输入要搜索的内容 请输入要搜索的内容
</div> </div>
</div> </div> -->
<div <div
v-show="addnolistShow" v-show="addnolistShow"
class="outaddrecordEnrollment_centent_nodata" class="outaddrecordEnrollment_centent_nodata"
...@@ -352,7 +450,7 @@ ...@@ -352,7 +450,7 @@
</el-dialog> </el-dialog>
</div> </div>
</template> </template>
<script > <script>
import http from "../utils/http"; import http from "../utils/http";
import { import {
reactive, reactive,
...@@ -395,13 +493,72 @@ export default { ...@@ -395,13 +493,72 @@ export default {
opsName: "", opsName: "",
}, },
addCorePercents: [], addCorePercents: [],
addnodataShow: true, //没有搜索时显示 addnolistShow: true, //没有搜索数据的时候显示
addnolistShow: false, //没有搜索数据的时候显示
addgroupList: [], //主诊断 addgroupList: [], //主诊断
addgroupArr: [], addgroupArr: [],
addgroupList2: [], //主手术 addgroupList2: [], //主手术
addgroupArr2: [], addgroupArr2: [],
addrecordEnrollmentShow: false, 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: [], //手术
}); });
//返回 //返回
const router = useRouter(); const router = useRouter();
...@@ -499,98 +656,147 @@ export default { ...@@ -499,98 +656,147 @@ export default {
//关闭弹层前的回调 //关闭弹层前的回调
const closeDialog = () => { const closeDialog = () => {
state.addrecordEnrollmentShow=false; state.addrecordEnrollmentShow = false;
state.outaddsearchForm = { state.outaddsearchForm = {
diagName: "", diagName: "",
opsName: "", opsName: "",
}; };
addclear(); (state.otdiagName = []), (state.otopsName = []), addclear();
}; };
//获取主诊断模糊数据
function addgroupListMe() {
http
.post(
`/medical/get/GetDiagOpss?diagName=${
state.outaddsearchForm.diagName
}&type=${1}`,
{}
)
.then((data) => {
state.addgroupList = data;
for (let item of state.addgroupList) {
state.addgroupArr.push({
value: item.name,
});
}
})
.catch((error) => {});
}
function addquerySearchGroup(queryString, cb) {
if (state.outaddsearchForm.diagName.length > 0) {
addgroupListMe();
}
state.addgroupArr = [];
cb(state.addgroupArr);
}
//清空输入框的值时触发 //清空输入框的值时触发
const addclear = () => { const addclear = () => {
state.addCorePercents = []; state.addCorePercents = [];
state.addnodataShow = true; state.addnodataShow = true;
}; };
//获取主手术模糊数据 //获取诊断数据
function addgroupListMe2() { const remoteMethod = (query) => {
http if (query) {
.post( http
`/medical/get/GetDiagOpss?diagName=${ .post(`/medical/get/GetDiagOpss?diagName=${query}&type=${1}`, {})
state.outaddsearchForm.opsName .then((data) => {
}&type=${2}`, state.zdoptions = data;
{} })
) .catch((error) => {});
.then((data) => { } else {
state.addgroupList2 = data; state.zdoptions = [];
for (let item of state.addgroupList2) {
state.addgroupArr2.push({
value: item.name,
});
}
})
.catch((error) => {});
}
function addquerySearchGroup2(queryString, cb) {
if (state.outaddsearchForm.opsName.length > 0) {
addgroupListMe2();
} }
state.addgroupArr2 = []; };
cb(state.addgroupArr2); //获取其他诊断数据
} const otremoteMethod = (query) => {
if (query) {
http
.post(`/medical/get/GetDiagOpss?diagName=${query}&type=${1}`, {})
.then((data) => {
state.otzdoptions = data;
})
.catch((error) => {});
} else {
state.zdoptions = [];
}
};
//获取主手术,其他手术的数据
const ssremoteMethod = (query) => {
if (query) {
http
.post(`/medical/get/GetDiagOpss?diagName=${query}&type=${2}`, {})
.then((data) => {
state.ssoptions = data;
})
.catch((error) => {});
} else {
state.zdoptions = [];
}
};
//获取其他手术的数据
const otssremoteMethod = (query) => {
if (query) {
http
.post(`/medical/get/GetDiagOpss?diagName=${query}&type=${2}`, {})
.then((data) => {
state.otssoptions = data;
})
.catch((error) => {});
} else {
state.zdoptions = [];
}
};
//查询 //查询
const addsearch = () => { const addsearch = () => {
state.addCorePercents = []; //诊断
addgetlist(); if (state.otdiagName.length > 0 && state.outaddsearchForm.diagName) {
if (state.outaddsearchForm.diagName) { state.diagList.push({
state.addnodataShow = false; diagCode: state.outaddsearchForm.diagName,
state.addnolistShow = false; diagOrder: "0",
} else { });
state.addnodataShow = true; state.otdiagName.forEach((i) => {
state.addnolistShow = false; state.diagList.push({
diagCode: i,
diagOrder: "1",
});
});
} else if (state.outaddsearchForm.diagName) {
state.diagList.push({
diagCode: state.outaddsearchForm.diagName,
diagOrder: "0",
});
} else if (state.otdiagName.length > 0) {
state.otdiagName.forEach((i) => {
state.diagList.push({
diagCode: i,
diagOrder: "1",
});
});
}
// 手术
if (state.otopsName.length > 0 && state.outaddsearchForm.opsName) {
state.opsList.push({
opsCode: state.outaddsearchForm.opsName,
diagOrder: "0",
});
state.otopsName.forEach((i) => {
state.opsList.push({
opsCode: i,
diagOrder: "1",
});
});
} else if (state.outaddsearchForm.opsName) {
state.opsList.push({
opsCode: state.outaddsearchForm.opsName,
diagOrder: "0",
});
} else if (state.otopsName.length > 0) {
state.otopsName.forEach((i) => {
state.opsList.push({
opsCode: i,
diagOrder: "1",
});
});
} }
addgetlist();
}; };
//获取列表数据 //获取列表数据
const addgetlist = () => { const addgetlist = () => {
http http
.post(`/medical/get/GetCorePercents`, { .post(`/medical/post/GetCorePercentsByAssemble`, {
diagName: state.outaddsearchForm.diagName, a14: state.ageinput, // 年龄
opsName: state.outaddsearchForm.opsName, a16: state.ageinput2, // 年龄不足一周岁(天)
a12C: state.sexvalue, // 性别
icuTime: state.icuinput, // icu总时长(分钟)
b34C: state.leavevalue, // 离院方式
diagList: state.diagList, // 诊断集合
opsList: state.opsList, // 手术集合
}) })
.then((data) => { .then((data) => {
state.addCorePercents = data.list; state.addCorePercents = data;
if (state.addCorePercents.length == 0) { if (state.addCorePercents.length == 0) {
state.addnolistShow = true; state.addnolistShow = true;
state.addnodataShow = false; }else{
state.addnolistShow = false;
} }
// state.totalCount = data.totalCount; // state.totalCount = data.totalCount;
for (var i = 0; i < state.addCorePercents.length; i++) { for (var i = 0; i < state.addCorePercents.length; i++) {
...@@ -634,6 +840,7 @@ export default { ...@@ -634,6 +840,7 @@ export default {
), ),
`indexChart11file${i}` `indexChart11file${i}`
); );
(state.diagList = []), (state.opsList = []);
} }
}) })
.catch((error) => {}); .catch((error) => {});
...@@ -660,17 +867,17 @@ export default { ...@@ -660,17 +867,17 @@ export default {
addsearch, addsearch,
addgetlist, addgetlist,
addquerySearchGroup, remoteMethod,
addgroupListMe, otremoteMethod,
addquerySearchGroup2, otssremoteMethod,
addgroupListMe2,
addclear, addclear,
ssremoteMethod,
closeDialog, closeDialog,
}; };
}, },
}; };
</script> </script>
<style lang="scss" scoped> <style lang="scss" scoped>
@import "../styles/mixin.scss"; @import "../styles/mixin.scss";
.outsetgrouping { .outsetgrouping {
...@@ -1073,7 +1280,7 @@ export default { ...@@ -1073,7 +1280,7 @@ export default {
justify-content: center; justify-content: center;
span { span {
height: 100%; height: 100%;
width: 85%; width: 85%;
// margin:5px 5px; // margin:5px 5px;
display: flex; display: flex;
justify-content: start; justify-content: start;
...@@ -1113,7 +1320,7 @@ export default { ...@@ -1113,7 +1320,7 @@ export default {
justify-content: center; justify-content: center;
span { span {
height: 100%; height: 100%;
width: 85%; width: 85%;
// margin:5px 5px; // margin:5px 5px;
display: flex; display: flex;
justify-content: start; justify-content: start;
...@@ -1359,104 +1566,105 @@ export default { ...@@ -1359,104 +1566,105 @@ export default {
position: relative; position: relative;
&_search { &_search {
// margin-bottom: 20px; // margin-bottom: 20px;
height: 6%; height: 15%;
margin-bottom: 20px; margin-bottom: 10px;
&_message { display: flex;
flex-direction: column;
justify-content: space-between;
&_div1 {
color: #abafb3;
display: flex; display: flex;
justify-content: space-between; font-size: 12px;
align-items: center; align-items: center;
&_left { margin-bottom: 10px;
&_span1 {
width: 50px;
display: flex; display: flex;
justify-content: space-between;
align-items: center; align-items: center;
background-color: #f3fafd; justify-content: flex-end;
font-family: PingFang SC; }
width: 43%; &_inp1 {
height: 51px; width: 200px;
&_t1 {
display: flex;
justify-content: space-between;
align-items: center;
width: 30%;
font-size: 15px;
font-family: PingFang SC;
font-weight: 400;
color: #2cabe3;
.iconfont {
color: #2cabe3;
padding-left: 29px;
font-size: 23px;
}
}
&_t2 {
width: 70%;
border-radius: 1px solid white;
.el-input__inner {
width: 98%;
height: 42px;
line-height: 42px;
font-size: 16px;
border: none;
}
}
} }
&_centert { &_span2 {
width: 120px;
display: flex;
justify-content: flex-end;
}
&_inp2 {
width: 300px;
}
&_span3 {
width: 120px;
display: flex;
justify-content: flex-end;
}
&_inp3 {
width: 100px;
}
&_span4 {
width: 120px;
display: flex;
justify-content: flex-end;
}
&_inp4 {
width: 150px;
}
&_span5 {
margin-left: 600px;
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; display: flex;
justify-content: space-between;
align-items: center; align-items: center;
background-color: #f3fafd; justify-content: flex-end;
font-family: PingFang SC;
width: 43%;
height: 51px;
&_t1 {
display: flex;
justify-content: space-between;
align-items: center;
width: 30%;
font-size: 15px;
font-family: PingFang SC;
font-weight: 400;
color: #2cabe3;
.iconfont {
color: #2cabe3;
padding-left: 25px;
font-size: 23px;
}
}
&_t2 {
width: 70%;
border-radius: 1px solid white;
.el-input__inner {
width: 98%;
height: 42px;
line-height: 42px;
font-size: 16px;
border: none;
}
}
} }
&_right { &_inp1 {
width: 136px; width: 200px;
height: 37px; }
background: #2cabe3; &_span2 {
border-radius: 4px; width: 120px;
display: flex;
justify-content: flex-end;
}
&_inp2 {
width: 300px;
}
&_span3 {
width: 120px;
display: flex;
justify-content: flex-end;
}
&_inp3 {
width: 100px;
}
&_span4 {
width: 120px;
display: flex;
justify-content: flex-end;
}
&_inp4 {
width: 150px;
}
}
&_div3 {
color: #abafb3;
display: flex;
font-size: 12px;
&_span1 {
width: 50px;
display: flex; display: flex;
align-items: center; align-items: center;
justify-content: center; justify-content: flex-end;
&_span2 {
font-size: 15px;
font-family: PingFang SC;
font-weight: 400;
color: #fefefe;
}
span {
margin-right: 5px;
}
.iconfont {
color: white;
font-size: 19px;
}
} }
} }
} }
......
...@@ -13,7 +13,7 @@ ...@@ -13,7 +13,7 @@
class="outaddrecordEnrollment_search_message_left_t2" class="outaddrecordEnrollment_search_message_left_t2"
v-model.trim="outaddsearchForm.diagName" v-model.trim="outaddsearchForm.diagName"
:trigger-on-focus="true" :trigger-on-focus="true"
placeholder="请输入主诊断名称或诊断编码" placeholder="请输入预计DIP支付费用"
clearable clearable
:fetch-suggestions="addquerySearchGroup" :fetch-suggestions="addquerySearchGroup"
select-when-unmatched="true" select-when-unmatched="true"
......
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