Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
V
vue-composition-api
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
宁路鹏
vue-composition-api
Commits
b910a8b3
Commit
b910a8b3
authored
Jul 07, 2023
by
唐玉峰
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
疾病分组
parent
e570dbf8
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
1220 additions
and
402 deletions
+1220
-402
src/utils/echarts.js
+57
-56
src/views/outHistorygrouping.vue
+319
-342
src/views/outpatientDetails.vue
+844
-4
No files found.
src/utils/echarts.js
View file @
b910a8b3
import
{
nextTick
}
from
'@vue/composition-api'
;
import
*
as
echarts
from
'echarts'
;
import
{
nextTick
}
from
"@vue/composition-api"
;
import
*
as
echarts
from
"echarts"
;
/**
* @param echarts初始化
...
...
@@ -11,79 +9,77 @@ import * as echarts from 'echarts';
export
function
initEcharts
(
option
,
panelId
)
{
var
svChart
;
return
nextTick
(()
=>
{
svChart
=
echarts
.
getInstanceByDom
(
document
.
getElementById
(
panelId
));
if
(
svChart
==
null
)
{
svChart
=
echarts
.
init
(
document
.
getElementById
(
panelId
));
}
document
.
getElementById
(
panelId
).
setAttribute
(
'_echarts_instance_'
,
''
);
document
.
getElementById
(
panelId
).
setAttribute
(
"_echarts_instance_"
,
""
);
svChart
.
clear
();
svChart
.
setOption
(
option
);
svChart
.
resize
();
// 屏幕大小改变
window
.
addEventListener
(
'resize'
,
()
=>
{
window
.
addEventListener
(
"resize"
,
()
=>
{
svChart
.
resize
();
});
return
svChart
;
})
});
}
//百分比图 智能分组
export
function
categoryChart
(
data
,
tcolor
)
{
const
option
=
{
title
:
[{
title
:
[
{
text
:
data
+
`%`
,
x
:
'center'
,
top
:
'38%'
,
x
:
"center"
,
top
:
"38%"
,
textStyle
:
{
fontSize
:
'16'
,
//百分比的样式
fontSize
:
"16"
,
//百分比的样式
color
:
tcolor
,
fontFamily
:
'Arial'
,
foontWeight
:
'600'
,
fontFamily
:
"Arial"
,
foontWeight
:
"600"
,
},
},
},
],
],
polar
:
{
radius
:
[
'100%'
,
'60%'
],
center
:
[
'50%'
,
'50%'
],
radius
:
[
"100%"
,
"60%"
],
center
:
[
"50%"
,
"50%"
],
},
angleAxis
:
{
max
:
100
,
show
:
false
,
},
radiusAxis
:
{
type
:
'category'
,
type
:
"category"
,
show
:
false
,
},
series
:
[{
name
:
''
,
type
:
'bar'
,
series
:
[
{
name
:
""
,
type
:
"bar"
,
roundCap
:
true
,
barWidth
:
6
,
showBackground
:
true
,
backgroundStyle
:
{
color
:
'#f3fafd'
,
//留白颜色
color
:
"#f3fafd"
,
//留白颜色
},
data
:
[
data
],
coordinateSystem
:
'polar'
,
coordinateSystem
:
"polar"
,
itemStyle
:
{
normal
:
{
color
:
new
echarts
.
graphic
.
LinearGradient
(
0
,
1
,
0
,
0
,
[{
color
:
new
echarts
.
graphic
.
LinearGradient
(
0
,
1
,
0
,
0
,
[
{
offset
:
0
,
color
:
tcolor
,
//填色颜色
},]),
},
]),
},
},
},],
},
],
};
return
option
;
...
...
@@ -92,62 +88,67 @@ export function categoryChart(data, tcolor) {
//百分比图 病案入组
export
function
categoryChart11
(
text
,
data
,
tcolor
)
{
const
option
=
{
title
:
[{
title
:
[
{
text
:
text
,
x
:
'center'
,
top
:
'52%'
,
x
:
"center"
,
top
:
"52%"
,
textStyle
:
{
fontSize
:
'14'
,
//百分比的样式
fontSize
:
"14"
,
//百分比的样式
color
:
tcolor
,
fontFamily
:
'PingFang SC'
,
foontWeight
:
'300'
,
fontFamily
:
"PingFang SC"
,
foontWeight
:
"300"
,
},
},
{
text
:
data
+
`%`
,
x
:
'center'
,
top
:
'28%'
,
text
:
data
?
data
:
0
+
`%`
,
x
:
"center"
,
top
:
"28%"
,
textStyle
:
{
fontSize
:
'20'
,
//百分比的样式
fontSize
:
"20"
,
//百分比的样式
color
:
tcolor
,
fontFamily
:
'Arial'
,
foontWeight
:
'600'
,
fontFamily
:
"Arial"
,
foontWeight
:
"600"
,
},
},
],
polar
:
{
radius
:
[
'100%'
,
'60%'
],
center
:
[
'50%'
,
'50%'
],
radius
:
[
"100%"
,
"60%"
],
center
:
[
"50%"
,
"50%"
],
},
angleAxis
:
{
max
:
100
,
show
:
false
,
},
radiusAxis
:
{
type
:
'category'
,
type
:
"category"
,
show
:
false
,
},
series
:
[{
name
:
''
,
type
:
'bar'
,
series
:
[
{
name
:
""
,
type
:
"bar"
,
roundCap
:
true
,
barWidth
:
6
,
showBackground
:
true
,
backgroundStyle
:
{
color
:
'#f3fafd'
,
//留白颜色
color
:
"#f3fafd"
,
//留白颜色
},
data
:
[
data
],
coordinateSystem
:
'polar'
,
coordinateSystem
:
"polar"
,
itemStyle
:
{
normal
:
{
color
:
new
echarts
.
graphic
.
LinearGradient
(
0
,
1
,
0
,
0
,
[{
color
:
new
echarts
.
graphic
.
LinearGradient
(
0
,
1
,
0
,
0
,
[
{
offset
:
0
,
color
:
tcolor
,
//填色颜色
},]),
},
]),
},
},],
},
},
],
};
return
option
;
...
...
src/views/outHistorygrouping.vue
View file @
b910a8b3
...
...
@@ -16,10 +16,6 @@
<el-button
class=
"outsetgrouping_button_Searchbtn"
type=
"primary"
size=
"mini"
@
click=
"gosear"
>
<span
class=
"s2"
>
疾病分组查询
</span>
</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
class=
"outsetgrouping_top"
>
<div
class=
"outsetgrouping_top_message"
>
...
...
@@ -104,8 +100,8 @@
<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_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
class=
"outsetgrouping_centent_totalnum_left_text"
>
...
...
@@ -140,6 +136,60 @@
><span>
盈亏:
{{
item
.
profitLoss
}}
</span>
</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=
"'低倍率区域:<=' + Math.round(item.lowMagnification)"
>
低倍率区域:
<
=
{{
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
class=
"outsetgrouping_centent_totalnum_right"
>
...
...
@@ -191,7 +241,6 @@
</div>
-->
</div>
<!-- 如果没有搜索时的样式 -->
<div
v-show=
"nolistShow"
class=
"outsetgrouping_centent_nodata"
>
<div
class=
"outsetgrouping_centent_nodata_img"
>
<img
src=
"../assets/img/nodata.png"
alt=
""
/>
...
...
@@ -201,7 +250,7 @@
</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_search"
>
...
...
@@ -303,31 +352,19 @@
</div>
<div
class=
"outaddrecordEnrollment_centent_totalnum_left_text3"
>
<span>
预计DRG支付费用:
{{
item
.
unitfee
}}
</span
><span>
院内历年平均费用:
{{
item
.
avgFee
}}
</span
><span>
院内历年平均住院天数:
{{
item
.
avgInHosDay
}}
</span>
<span>
预计DRG支付费用:
{{
item
.
unitfee
}}
</span>
<span>
入组类型:
{{
item
.
disNature
}}
</span>
</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=
"`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=
"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
v-show=
"addnolistShow"
class=
"outaddrecordEnrollment_centent_nodata"
>
<div
class=
"outaddrecordEnrollment_centent_nodata_img"
>
<img
src=
"../assets/img/nodata.png"
alt=
""
/>
...
...
@@ -343,17 +380,14 @@
</
template
>
<
script
>
import
http
from
"../utils/http"
;
import
{
reactive
,
toRefs
,
onMounted
,
nextTick
,
computed
}
from
"@vue/composition-api"
;
import
{
decimal
}
from
"../utils/decimal"
;
import
{
Message
}
from
"element-ui"
;
import
{
useRoute
,
useRouter
}
from
"../utils/useVueRouter"
;
import
{
initEcharts
,
categoryChart
,
categoryChart11
}
from
"../utils/echarts"
;
export
default
{
name
:
"outHistorygrouping"
,
setup
()
{
let
state
=
reactive
({
data
()
{
return
{
abc
:
""
,
casehisObj
:
null
,
searchForm
:
{
...
...
@@ -445,287 +479,283 @@ export default {
otssoptions
:
[],
//其他手术
diagList
:
[],
//诊断
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
=
()
=>
{
state
.
addrecordEnrollmentShow
=
true
;
}
;
gosear
()
{
this
.
addrecordEnrollmentShow
=
true
;
}
,
//获取基本数据
function
getCaseHis
(
code
)
{
getCaseHis
(
code
)
{
http
.
post
(
`/medical/Get/casehisData?id=
${
code
}
`
,
{})
.
then
((
data
)
=>
{
state
.
casehisObj
=
data
;
console
.
log
(
"data"
,
data
);
state
.
diagMapList
=
data
.
diagMapList
;
state
.
opsMapList
=
data
.
opsMapList
;
getlist
();
this
.
casehisObj
=
data
;
this
.
diagMapList
=
data
.
diagMapList
;
this
.
opsMapList
=
data
.
opsMapList
;
this
.
getlist
();
})
.
catch
((
error
)
=>
{});
}
}
,
//获取列表数据
const
getlist
=
()
=>
{
getlist
()
{
http
.
post
(
`/medical/get/GetCorePercents`
,
{
Type
:
1
,
DiagMapList
:
state
.
diagMapList
,
OpsMapList
:
state
.
opsMapList
,
id
:
route
.
valu
e
.
query
.
id
,
DiagMapList
:
this
.
diagMapList
,
OpsMapList
:
this
.
opsMapList
,
id
:
this
.
$rout
e
.
query
.
id
,
})
.
then
((
data
)
=>
{
state
.
CorePercents
=
data
.
list
;
if
(
state
.
CorePercents
.
length
==
0
)
{
state
.
nolistShow
=
true
;
// state.nodataShow = false;
}
for
(
var
i
=
0
;
i
<
state
.
CorePercents
.
length
;
i
++
)
{
this
.
$nextTick
();
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
}
`
);
initEcharts
(
categoryChart
(
state
.
CorePercents
[
i
].
testPercent
,
"#FFB321"
),
`indexChartfore
${
i
}
`
);
initEcharts
(
categoryChart
(
state
.
CorePercents
[
i
].
otherPercent
,
"#C05EF3"
),
`indexChartfile
${
i
}
`
);
this
.
CorePercents
=
data
.
list
;
this
.
CorePercents
.
map
((
item
)
=>
{
// 高倍率>总费用 高倍率金额+高倍率金额*30%
if
(
item
.
highMagnification
>
item
.
totalFee
)
{
item
.
heightnum
=
item
.
highMagnification
+
item
.
highMagnification
*
0.3
;
}
else
if
(
item
.
highMagnification
<
item
.
totalFee
)
{
// 高倍率
<
总费用
患者总费用的金额
+
患者总费用的金额
*
30
%
item
.
heightnum
=
item
.
totalFee
+
item
.
totalFee
*
0.3
;
}
// 低倍率宽度
item
.
lowwidth
=
Math
.
round
((
Math
.
round
(
item
.
lowMagnification
)
/
Math
.
round
(
item
.
heightnum
))
*
100
);
// 高倍率宽度
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
)
=>
{});
}
;
}
,
//提交
const
submit
=
()
=>
{
if
(
!
state
.
radio
)
{
Message
.
warning
({
message
:
"请先选择要入组的病组"
,
type
:
"warning"
,
});
}
else
{
http
.
post
(
`/medical/Update/casehisById?PatientId=
${
route
.
value
.
query
.
id
}
`
,
[
state
.
coreID
])
submit
(
coreID
)
{
http
.
post
(
`/medical/Update/casehisById?PatientId=
${
this
.
$route
.
query
.
id
}
&coreid=
${
coreID
}
`
)
.
then
((
data
)
=>
{
Message
.
success
({
message
:
`
${
data
.
message
}
`
,
type
:
"success"
,
});
getCaseHis
(
route
.
valu
e
.
query
.
id
);
this
.
getCaseHis
(
this
.
$rout
e
.
query
.
id
);
})
.
catch
((
error
)
=>
{});
}
};
var
route
=
useRoute
();
},
//关闭弹层前的回调
c
onst
closeDialog
=
()
=>
{
state
.
addrecordEnrollmentShow
=
false
;
state
.
outaddsearchForm
=
{
c
loseDialog
()
{
this
.
addrecordEnrollmentShow
=
false
;
this
.
outaddsearchForm
=
{
diagName
:
""
,
opsName
:
""
,
};
(
state
.
otdiagName
=
[]),
(
state
.
otopsName
=
[]),
addclear
();
}
;
(
this
.
otdiagName
=
[]),
(
this
.
otopsName
=
[]),
this
.
addclear
();
}
,
//清空输入框的值时触发
const
addclear
=
()
=>
{
state
.
addCorePercents
=
[];
state
.
addnodataShow
=
true
;
}
;
addclear
()
{
this
.
addCorePercents
=
[];
this
.
addnodataShow
=
true
;
}
,
//获取诊断数据
const
remoteMethod
=
(
query
)
=>
{
remoteMethod
(
query
)
{
if
(
query
)
{
http
.
post
(
`/medical/get/GetDiagOpss?diagName=
${
query
}
&type=
${
1
}
`
,
{})
.
then
((
data
)
=>
{
state
.
zdoptions
=
data
;
this
.
zdoptions
=
data
;
})
.
catch
((
error
)
=>
{});
}
else
{
state
.
zdoptions
=
[];
this
.
zdoptions
=
[];
}
}
;
}
,
//获取其他诊断数据
const
otremoteMethod
=
(
query
)
=>
{
otremoteMethod
(
query
)
{
if
(
query
)
{
http
.
post
(
`/medical/get/GetDiagOpss?diagName=
${
query
}
&type=
${
1
}
`
,
{})
.
then
((
data
)
=>
{
state
.
otzdoptions
=
data
;
this
.
otzdoptions
=
data
;
})
.
catch
((
error
)
=>
{});
}
else
{
state
.
zdoptions
=
[];
this
.
zdoptions
=
[];
}
}
;
}
,
//获取主手术,其他手术的数据
const
ssremoteMethod
=
(
query
)
=>
{
ssremoteMethod
(
query
)
{
if
(
query
)
{
http
.
post
(
`/medical/get/GetDiagOpss?diagName=
${
query
}
&type=
${
2
}
`
,
{})
.
then
((
data
)
=>
{
state
.
ssoptions
=
data
;
this
.
ssoptions
=
data
;
})
.
catch
((
error
)
=>
{});
}
else
{
state
.
zdoptions
=
[];
this
.
zdoptions
=
[];
}
}
;
}
,
//获取其他手术的数据
const
otssremoteMethod
=
(
query
)
=>
{
otssremoteMethod
(
query
)
{
if
(
query
)
{
http
.
post
(
`/medical/get/GetDiagOpss?diagName=
${
query
}
&type=
${
2
}
`
,
{})
.
then
((
data
)
=>
{
state
.
otssoptions
=
data
;
this
.
otssoptions
=
data
;
})
.
catch
((
error
)
=>
{});
}
else
{
state
.
zdoptions
=
[];
this
.
zdoptions
=
[];
}
}
;
}
,
//查询
const
addsearch
=
()
=>
{
addsearch
()
{
//诊断
if
(
state
.
otdiagName
.
length
>
0
&&
state
.
outaddsearchForm
.
diagName
)
{
state
.
diagList
.
push
({
diagCode
:
state
.
outaddsearchForm
.
diagName
,
if
(
this
.
otdiagName
.
length
>
0
&&
this
.
outaddsearchForm
.
diagName
)
{
this
.
diagList
.
push
({
diagCode
:
this
.
outaddsearchForm
.
diagName
,
diagOrder
:
"0"
,
});
state
.
otdiagName
.
forEach
((
i
)
=>
{
state
.
diagList
.
push
({
this
.
otdiagName
.
forEach
((
i
)
=>
{
this
.
diagList
.
push
({
diagCode
:
i
,
diagOrder
:
"1"
,
});
});
}
else
if
(
state
.
outaddsearchForm
.
diagName
)
{
state
.
diagList
.
push
({
diagCode
:
state
.
outaddsearchForm
.
diagName
,
}
else
if
(
this
.
outaddsearchForm
.
diagName
)
{
this
.
diagList
.
push
({
diagCode
:
this
.
outaddsearchForm
.
diagName
,
diagOrder
:
"0"
,
});
}
else
if
(
state
.
otdiagName
.
length
>
0
)
{
state
.
otdiagName
.
forEach
((
i
)
=>
{
state
.
diagList
.
push
({
}
else
if
(
this
.
otdiagName
.
length
>
0
)
{
this
.
otdiagName
.
forEach
((
i
)
=>
{
this
.
diagList
.
push
({
diagCode
:
i
,
diagOrder
:
"1"
,
});
});
}
// 手术
if
(
state
.
otopsName
.
length
>
0
&&
state
.
outaddsearchForm
.
opsName
)
{
state
.
opsList
.
push
({
opsCode
:
state
.
outaddsearchForm
.
opsName
,
if
(
this
.
otopsName
.
length
>
0
&&
this
.
outaddsearchForm
.
opsName
)
{
this
.
opsList
.
push
({
opsCode
:
this
.
outaddsearchForm
.
opsName
,
diagOrder
:
"0"
,
});
state
.
otopsName
.
forEach
((
i
)
=>
{
state
.
opsList
.
push
({
this
.
otopsName
.
forEach
((
i
)
=>
{
this
.
opsList
.
push
({
opsCode
:
i
,
diagOrder
:
"1"
,
});
});
}
else
if
(
state
.
outaddsearchForm
.
opsName
)
{
state
.
opsList
.
push
({
opsCode
:
state
.
outaddsearchForm
.
opsName
,
}
else
if
(
this
.
outaddsearchForm
.
opsName
)
{
this
.
opsList
.
push
({
opsCode
:
this
.
outaddsearchForm
.
opsName
,
diagOrder
:
"0"
,
});
}
else
if
(
state
.
otopsName
.
length
>
0
)
{
state
.
otopsName
.
forEach
((
i
)
=>
{
state
.
opsList
.
push
({
}
else
if
(
this
.
otopsName
.
length
>
0
)
{
this
.
otopsName
.
forEach
((
i
)
=>
{
this
.
opsList
.
push
({
opsCode
:
i
,
diagOrder
:
"1"
,
});
});
}
addgetlist
();
}
;
this
.
addgetlist
();
}
,
//获取列表数据
const
addgetlist
=
()
=>
{
addgetlist
()
{
http
.
post
(
`/medical/post/GetCorePercentsByAssemble`
,
{
a14
:
state
.
ageinput
?
state
.
ageinput
:
"0"
,
// 年龄
a16
:
state
.
ageinput2
?
state
.
ageinput2
:
"0"
,
// 年龄不足一周岁(天)
a12C
:
state
.
sexvalue
,
// 性别
icuTime
:
state
.
icuinput
?
state
.
icuinput
:
"0"
,
// icu总时长(分钟)
b34C
:
state
.
leavevalue
,
// 离院方式
diagList
:
state
.
diagList
,
// 诊断集合
opsList
:
state
.
opsList
,
// 手术集合
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
)
=>
{
state
.
addCorePercents
=
data
;
if
(
state
.
addCorePercents
.
length
==
0
)
{
state
.
addnolistShow
=
true
;
this
.
addCorePercents
=
data
;
if
(
this
.
addCorePercents
.
length
==
0
)
{
this
.
addnolistShow
=
true
;
}
else
{
state
.
addnolistShow
=
false
;
}
//
state
.totalCount = data.totalCount;
for
(
var
i
=
0
;
i
<
state
.
addCorePercents
.
length
;
i
++
)
{
initEcharts
(
categoryChart11
(
"药占比"
,
state
.
addCorePercents
[
i
].
drugPercent
,
"#2CABE3"
),
`indexChart11
${
i
}
`
);
initEcharts
(
categoryChart11
(
"耗材占比"
,
state
.
addCorePercents
[
i
].
materialsPercent
,
"#71D875"
),
`indexChart11two
${
i
}
`
);
initEcharts
(
categoryChart11
(
"检查占比"
,
state
.
addCorePercents
[
i
].
inspectPercent
,
"#F35E77"
),
`indexChart11tree
${
i
}
`
);
initEcharts
(
categoryChart11
(
"检验占比"
,
state
.
addCorePercents
[
i
].
testPercent
,
"#FFB321"
),
`indexChart11fore
${
i
}
`
);
initEcharts
(
categoryChart11
(
"其他"
,
state
.
addCorePercents
[
i
].
otherPercent
,
"#C05EF3"
),
`indexChart11file
${
i
}
`
);
(
state
.
diagList
=
[]),
(
state
.
opsList
=
[]);
}
this
.
addnolistShow
=
false
;
}
//
this
.totalCount = data.totalCount;
// 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
)
=>
{});
};
const
radios
=
(
e
)
=>
{
state
.
radio
=
e
.
target
.
value
;
state
.
coreID
=
state
.
CorePercents
.
find
((
item
)
=>
item
.
id
==
e
.
target
.
value
).
coreID
;
};
},
const
toPage
=
()
=>
{
http
.
get
(
`/medical/get/JumpHisMAInfo?id=
${
route
.
value
.
query
.
id
}
`
,
{})
radios
(
e
)
{
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
)
=>
{
window
.
open
(
data
.
message
);
})
.
catch
((
error
)
=>
{
console
.
log
(
error
);
});
}
;
const
topage1
=
()
=>
{
http
.
get
(
`/medical/get/JumpHisRules?id=
${
route
.
valu
e
.
query
.
id
}
`
,
{})
}
,
topage1
()
{
http
.
get
(
`/medical/get/JumpHisRules?id=
${
this
.
$rout
e
.
query
.
id
}
`
,
{})
.
then
((
data
)
=>
{
window
.
open
(
data
.
message
);
})
.
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
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
>
@import
"../styles/mixin.scss"
;
@import
"../styles/outHistorygrouping.scss"
;
.outsetgrouping
{
...
...
@@ -1061,7 +1091,7 @@ export default {
height
:
calc
(
100%
-
229px
);
overflow-y
:
auto
;
&_totalnum
{
height
:
25
0px
;
height
:
30
0px
;
background-color
:
#fff
;
margin
:
12px
;
display
:
flex
;
...
...
@@ -1076,20 +1106,20 @@ export default {
align-items
:
center
;
justify-content
:
center
;
&_radios
{
width
:
3
%
;
width
:
8
%
;
height
:
30%
;
display
:
flex
;
justify-content
:
center
;
align-items
:
center
;
}
&
_text
{
width
:
9
7
%
;
width
:
9
2
%
;
height
:
100%
;
display
:
flex
;
flex-direction
:
column
;
justify-content
:
center
;
&_msg1
{
height
:
30
%
;
height
:
15
%
;
box-sizing
:
content-box
;
border
:
10px
solid
rgba
(
44
,
171
,
227
,
0.08
);
border-bottom
:
5px
solid
rgba
(
44
,
171
,
227
,
0.08
);
...
...
@@ -1097,7 +1127,6 @@ export default {
margin-bottom
:
5px
;
//
margin-top
:
5px
;
display
:
flex
;
&_text11
{
width
:
25%
;
height
:
100%
;
...
...
@@ -1180,12 +1209,11 @@ export default {
}
}
}
&
_msg2
{
background-color
:
rgba
(
44
,
171
,
227
,
0.08
);
display
:
flex
;
flex-direction
:
column
;
height
:
5
5%
;
height
:
3
5%
;
justify-content
:
center
;
padding-top
:
10px
;
&_text3
{
...
...
@@ -1233,6 +1261,10 @@ export default {
}
}
}
.outpatientDetails_fenqu
{
height
:
35%
;
margin-bottom
:
0
;
}
}
}
&
_right
{
...
...
@@ -1337,8 +1369,12 @@ export default {
flex-direction
:
column
;
justify-content
:
center
;
align-content
:
center
;
text-align
:
center
;
&_img
{
display
:
flex
;
flex-direction
:
column
;
justify-content
:
center
;
align-content
:
center
;
img
{
width
:
115px
;
height
:
102px
;
...
...
@@ -1357,7 +1393,13 @@ export default {
justify-content
:
flex-end
;
margin-top
:
1%
;
}
.fullscreen
{
.el-dialog.is-fullscreen
{
.el-dialog__body
{
height
:
91%
;
}
}
}
.outaddrecordEnrollment
{
height
:
calc
(
100%
-
50px
);
background-color
:
white
;
...
...
@@ -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
{
background-color
:
#f1f5f8
;
height
:
63
%
;
height
:
75
%
;
overflow-y
:
auto
;
&_totalnum
{
height
:
1
40
px
;
height
:
1
51
px
;
background-color
:
#fff
;
margin
:
12px
;
display
:
flex
;
flex-direction
:
column
;
align-items
:
center
;
justify-content
:
space-around
;
&_left
{
flex
:
1
;
width
:
100%
;
height
:
70%
;
width
:
50%
;
height
:
132px
;
background-color
:
rgba
(
44
,
171
,
227
,
0.08
);
margin
:
0
15px
;
display
:
flex
;
flex-direction
:
row
;
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%
;
...
...
@@ -1886,8 +1859,12 @@ export default {
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
;
...
...
src/views/outpatientDetails.vue
View file @
b910a8b3
...
...
@@ -12,6 +12,7 @@
<div
class=
"outpatientDetails_top_div1"
>
<span
class=
"span1"
>
患者信息
</span>
<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"
type=
"primary"
size=
"mini"
@
click=
"getControl"
>
医嘱质控
</el-button>
</div>
...
...
@@ -307,14 +308,140 @@
<div class="outpatientDetails_bottom_box_text">暂无数据</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"
/>
岁
<span
class=
"outaddrecordEnrollment_search_div1_span4"
>
ICU总时长:
</span>
<el-input
v-model=
"icuinput"
placeholder=
"请输入ICU总时长"
class=
"outaddrecordEnrollment_search_div1_inp4"
size=
"mini"
/>
分钟
<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"
/>
天
<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>
</template>
<
script
>
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
{
Message
}
from
"element-ui"
;
import
{
useRoute
,
useRouter
}
from
"../utils/useVueRouter"
;
import
{
setItem
,
getItem
}
from
"../utils/auth"
;
import
{
Loading
}
from
"element-ui"
;
...
...
@@ -409,6 +536,79 @@ export default {
spinner
:
"el-icon-loading"
,
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
()
{
...
...
@@ -417,6 +617,158 @@ export default {
this
.
getlefttable
();
},
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
,
topage
()
{
http
.
get
(
`/medical/get/JumpHisRules?id=
${
this
.
$route
.
query
.
id
}
`
,
{})
...
...
@@ -449,7 +801,7 @@ export default {
if
(
this
.
tableData1
!=
[])
{
eowclick
(
this
.
tableData1
[
0
]);
//默认高亮第一行
nextTick
(()
=>
{
this
.
$
nextTick
(()
=>
{
this
.
$refs
.
monthlyPlanTable
.
setCurrentRow
(
this
.
tableData1
[
0
]);
});
}
...
...
@@ -503,6 +855,7 @@ export default {
loadingInstance2
.
close
();
});
},
//疾病查询
//点击获取中间的表格数据
getruleId
(
ruleId
,
ind
)
{
...
...
@@ -593,7 +946,7 @@ export default {
},
};
</
script
>
<
style
lang=
"scss"
scoped
>
<
style
lang=
"scss"
>
@import
"../styles/mixin.scss"
;
@import
"../styles/media/components/outpatientDetails.scss"
;
...
...
@@ -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
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment