| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393 |
- <template>
- <div style="height: 100%; overflow-y: scroll">
- <el-container>
- <el-header style="height: 35px; margin-top: 10px">
- <div style="display: flex">
- <div style="width: 230px">
- <el-input v-model="patNo" clearable style="width: 220px">
- <template #prepend>住院号/门诊ID</template>
- </el-input>
- </div>
- <div class="el-input el-input--mini el-input-group el-input-group--prepend" style="width: 240px">
- <div class="el-input-group__prepend">医疗类别</div>
- <el-select v-model="medType" style="width: 140px">
- <el-option v-for="item in medTypes" :key="item.code" :value="item.code" :label="item.name"></el-option>
- </el-select>
- </div>
- <div>
- <el-date-picker
- v-model="dateRange"
- type="daterange"
- :shortcuts="maxHalfYear"
- range-separator="至"
- start-placeholder="开始日期"
- end-placeholder="结束日期"
- style="width: 240px"
- ></el-date-picker>
- <el-divider direction="vertical"></el-divider>
- <el-button type="primary" @click="getVisitInfo">就诊信息</el-button>
- <el-button type="primary" @click="getDiseInfo">诊断信息</el-button>
- <el-button type="primary" @click="getSetlInfo">结算信息</el-button>
- <el-button type="primary" @click="getFeeDetl">费用明细</el-button>
- <el-button type="primary" @click="getCumInfo">累计信息</el-button>
- </div>
- </div>
- </el-header>
- <el-main>
- <el-tag type="success">就诊信息</el-tag>
- <el-table :height="tableHeight" :data="mdtrtInfos" stripe highlight-current-row @row-click="handleClickMdtrtInfo">
- <el-table-column prop="mdtrtId" label="就诊ID"></el-table-column>
- <el-table-column prop="psnNo" label="人员编号"></el-table-column>
- <el-table-column prop="psnCertTypeName" label="人员证件类型"></el-table-column>
- <el-table-column prop="certno" label="证件号码"></el-table-column>
- <el-table-column prop="psnName" label="人员姓名"></el-table-column>
- <el-table-column prop="gendName" label="性别"></el-table-column>
- <el-table-column prop="natyName" label="民族"></el-table-column>
- <el-table-column prop="brdy" label="出生日期"></el-table-column>
- <el-table-column prop="insutypeName" label="险种类型"></el-table-column>
- <el-table-column prop="psnTypeName" label="人员类别"></el-table-column>
- <el-table-column prop="insuOptinsName" label="参保地区"></el-table-column>
- <el-table-column prop="empName" label="单位名称"></el-table-column>
- <el-table-column prop="begntime" label="开始时间"></el-table-column>
- <el-table-column prop="endtime" label="结束时间"></el-table-column>
- <el-table-column prop="mdtrtCertTypeName" label="就诊凭证类型"></el-table-column>
- <el-table-column prop="medTypeName" label="医疗类别"></el-table-column>
- <el-table-column prop="opterId" label="经办人ID"></el-table-column>
- <el-table-column prop="opterName" label="经办人姓名"></el-table-column>
- <el-table-column prop="optTime" label="经办时间"></el-table-column>
- <el-table-column prop="iptOtpNo" label="住院号/门诊号"></el-table-column>
- <el-table-column prop="atddrNo" label="主治医生编码"></el-table-column>
- <el-table-column prop="chfpdrName" label="主诊医生姓名"></el-table-column>
- <el-table-column prop="admDeptCodg" label="入院科室编码"></el-table-column>
- <el-table-column prop="admDeptName" label="入院科室名称"></el-table-column>
- <el-table-column prop="admBed" label="入院床位"></el-table-column>
- <el-table-column prop="dscgMaindiagCode" label="住院主诊断编码"></el-table-column>
- <el-table-column prop="dscgMaindiagName" label="住院主诊断名称"></el-table-column>
- <el-table-column prop="dscgDeptCodg" label="出院科室编码"></el-table-column>
- <el-table-column prop="dscgDeptName" label="出院科室名称"></el-table-column>
- <el-table-column prop="dscgBed" label="出院床位"></el-table-column>
- <el-table-column prop="dscgWayName" label="离院方式"></el-table-column>
- <el-table-column prop="memo" label="备注"></el-table-column>
- </el-table>
- <el-dialog v-model="showDiagnosisInfo" title="诊断信息" :close-on-click-modal="false" width="80%">
- <el-table :data="diseInfos" stripe height="400">
- <el-table-column prop="mdtrtId" label="就诊ID"></el-table-column>
- <el-table-column prop="psnNo" label="人员编号"></el-table-column>
- <el-table-column prop="diagInfoId" label="诊断信息ID"></el-table-column>
- <el-table-column prop="inoutDiagTypeName" label="出入院诊断类别"></el-table-column>
- <el-table-column prop="diagTypeName" label="诊断类别"></el-table-column>
- <el-table-column prop="maindiagFlagName" label="主诊断标志"></el-table-column>
- <el-table-column prop="diagSrtNo" label="诊断排序号"></el-table-column>
- <el-table-column prop="diagCode" label="诊断代码"></el-table-column>
- <el-table-column prop="diagName" label="诊断名称"></el-table-column>
- <el-table-column prop="diagDept" label="诊断科室"></el-table-column>
- <el-table-column prop="diseDorNo" label="诊断医生编码"></el-table-column>
- <el-table-column prop="diseDorName" label="诊断医生姓名"></el-table-column>
- <el-table-column prop="diagTime" label="诊断时间"></el-table-column>
- <el-table-column prop="opterId" label="经办人ID"></el-table-column>
- <el-table-column prop="opterName" label="经办人姓名"></el-table-column>
- </el-table>
- </el-dialog>
- <el-dialog v-model="showSetlInfo" title="结算信息" :close-on-click-modal="false" width="80%">
- <el-table :data="setlInfo" stripe height="400">
- <el-table-column prop="setlId" label="结算ID"></el-table-column>
- <el-table-column prop="mdtrtId" label="就诊ID"></el-table-column>
- <el-table-column prop="psnNo" label="人员编号"></el-table-column>
- <el-table-column prop="psnName" label="人员姓名"></el-table-column>
- <el-table-column prop="brdy" label="出生日期"></el-table-column>
- <el-table-column prop="fixmedinsCode" label="定点医药机构编号"></el-table-column>
- <el-table-column prop="fixmedinsName" label="定点医药机构名称"></el-table-column>
- <el-table-column prop="begndate" label="开始日期"></el-table-column>
- <el-table-column prop="enddate" label="结束日期"></el-table-column>
- <el-table-column prop="setlTime" label="结算时间"></el-table-column>
- <el-table-column prop="clrTypeName" label="清算类别"></el-table-column>
- <el-table-column prop="medfeeSumamt" label="医疗费总额"></el-table-column>
- <el-table-column prop="fundPaySumamt" label="基金支付总额"></el-table-column>
- <el-table-column prop="psnPay" label="个人支付金额"></el-table-column>
- <el-table-column prop="acctPay" label="个人账户支出"></el-table-column>
- <el-table-column prop="cashPayamt" label="现金支付金额"></el-table-column>
- <el-table-column prop="balc" label="余额"></el-table-column>
- <el-table-column prop="acctMulaidPay" label="个人账户共济支付金额"></el-table-column>
- <el-table-column prop="fulamtOwnpayAmt" label="全自费金额"></el-table-column>
- <el-table-column prop="overlmtSelfpay" label="超限价自费费用"></el-table-column>
- <el-table-column prop="preselfpayAmt" label="先行自付金额"></el-table-column>
- <el-table-column prop="inscpScpAmt" label="符合政策范围金额"></el-table-column>
- <el-table-column prop="actPayDedc" label="实际支付起付线"></el-table-column>
- <el-table-column prop="hifpPay" label="基本医疗保险统筹基金支出"></el-table-column>
- <el-table-column prop="poolPropSelfpay" label="基本医疗保险统筹基金支付比例"></el-table-column>
- <el-table-column prop="cvlservPay" label="公务员医疗补助资金支出"></el-table-column>
- <el-table-column prop="hifesPay" label="企业补充医疗保险基金支出"></el-table-column>
- <el-table-column prop="hifmiPay" label="居民大病保险资金支出"></el-table-column>
- <el-table-column prop="hifobPay" label="职工大额医疗费用补助基金支出"></el-table-column>
- <el-table-column prop="mafPay" label="医疗救助基金支出"></el-table-column>
- <el-table-column prop="othPay" label="其他支出"></el-table-column>
- <el-table-column prop="medinsSetlId" label="医药机构结算ID"></el-table-column>
- <el-table-column prop="year" label="年度"></el-table-column>
- <el-table-column prop="diseCodg" label="病种编码"></el-table-column>
- <el-table-column prop="diseName" label="病种名称"></el-table-column>
- <el-table-column prop="invono" label="发票号"></el-table-column>
- <el-table-column prop="opterId" label="经办人ID"></el-table-column>
- <el-table-column prop="opterName" label="经办人姓名"></el-table-column>
- <el-table-column prop="optTime" label="经办时间"></el-table-column>
- </el-table>
- </el-dialog>
- <el-dialog v-model="showFeeDetl" title="费用明细" :close-on-click-modal="false" width="80%">
- <el-table :data="feeDetls" stripe height="400">
- <el-table-column prop="mdtrtId" label="就诊ID"></el-table-column>
- <el-table-column prop="setlId" label="结算ID"></el-table-column>
- <el-table-column prop="feedetlSn" label="流水号"></el-table-column>
- <el-table-column prop="feeOcurTime" label="费用发生时间"></el-table-column>
- <el-table-column prop="cnt" label="数量"></el-table-column>
- <el-table-column prop="pric" label="单价"></el-table-column>
- <el-table-column prop="detItemFeeSumamt" label="金额"></el-table-column>
- <el-table-column prop="selfpayPropPercent" label="自付比例" sortable></el-table-column>
- <el-table-column prop="fulamtOwnpayAmt" label="全自费金额" sortable></el-table-column>
- <el-table-column prop="overlmtAmt" label="超限价金额" sortable></el-table-column>
- <el-table-column prop="preselfpayAmt" label="先行自付金额" sortable></el-table-column>
- <el-table-column prop="inscpScpAmt" label="符合政策范围金额" sortable></el-table-column>
- <el-table-column prop="chrgitmLvName" label="收费项目等级"></el-table-column>
- <el-table-column prop="hilistCode" label="医保目录编码"></el-table-column>
- <el-table-column prop="hilistName" label="医保目录名称"></el-table-column>
- <el-table-column prop="medListCodg" label="医疗目录编码"></el-table-column>
- <el-table-column prop="medinsListCodg" label="医药机构目录编码"></el-table-column>
- <el-table-column prop="medinsListName" label="医药机构目录名称"></el-table-column>
- <el-table-column prop="bilgDeptName" label="开单科室"></el-table-column>
- <el-table-column prop="bilgDrName" label="开单医生"></el-table-column>
- <el-table-column prop="opterId" label="经办人ID"></el-table-column>
- <el-table-column prop="opterName" label="经办人姓名"></el-table-column>
- <el-table-column prop="optTime" label="经办时间"></el-table-column>
- </el-table>
- </el-dialog>
- <el-dialog title="人员累计信息查询" v-model="showCumInfo" width="50%">
- 请选择累计年月:
- <el-date-picker v-model="cumYm" type="month" format="YYYYMM" value-format="YYYYMM" style="width: 160px" placeholder="不填则查询所有年月"> </el-date-picker>
- <el-divider direction="vertical"></el-divider>
- <el-button type="primary" icon="el-icon-search" @click="executeGetCumulativeInfo">查询</el-button>
- <el-table :data="cumInfos.slice((cumCurrentPage - 1) * cumPageSize, cumCurrentPage * cumPageSize)" stripe height="300">
- <el-table-column prop="insutypeName" label="险种类型"></el-table-column>
- <el-table-column prop="year" label="年度"></el-table-column>
- <el-table-column prop="cumYm" label="累计年月"></el-table-column>
- <el-table-column prop="cumTypeCode" label="累计类别代码"></el-table-column>
- <el-table-column prop="cum" label="累计值"></el-table-column>
- </el-table>
- <el-pagination
- @size-change="handleCumSizeChange"
- @current-change="handleCumCurrentChange"
- :current-page="cumCurrentPage"
- :page-sizes="[10, 20, 30, 50, 100]"
- :page-size="cumPageSize"
- layout="total, sizes, prev, pager, next, jumper"
- :total="cumInfos.length"
- style="margin-top: 5px"
- ></el-pagination>
- </el-dialog>
- </el-main>
- </el-container>
- </div>
- </template>
- <script>
- import { ref, onMounted } from 'vue'
- import { maxHalfYear } from '@/data/shortcuts'
- import { getMedAllTypes } from '@/api/medical-insurance/si-dict'
- import { ElMessage } from 'element-plus'
- import { queryDiagnosisInfo, queryFeeDetails, querySettlementInfo, queryVisitInfo, queryPersonnelCumulativeInfo } from '@/api/medical-insurance/si-query'
- import { formatDatetime } from '@/utils/date'
- import store from '@/store'
- export default {
- setup() {
- const windowSize = store.state.app.windowSize
- const tableHeight = windowSize.h - 80
- const patNo = ref('')
- const medTypes = ref([])
- const medType = ref(null)
- const dateRange = ref(null)
- const mdtrtInfos = ref([])
- const mdtrtInfo = ref({})
- const diseInfos = ref([])
- const setlInfo = ref([])
- const feeDetls = ref([])
- const showDiagnosisInfo = ref(false)
- const showSetlInfo = ref(false)
- const showFeeDetl = ref(false)
- const nullPatNo = () => {
- if (!patNo.value) {
- ElMessage({
- message: '请输入患者住院号/门诊ID!',
- type: 'warning',
- duration: 2000,
- showClose: true,
- })
- return true
- }
- return false
- }
- const nullMedType = () => {
- if (!medType.value) {
- ElMessage({
- message: '请选择医疗类别!',
- type: 'warning',
- duration: 2000,
- showClose: true,
- })
- return true
- }
- return false
- }
- const nullDateRange = () => {
- if (!dateRange.value) {
- ElMessage({
- message: '请选择日期范围!',
- type: 'warning',
- duration: 2000,
- showClose: true,
- })
- return true
- }
- return false
- }
- const nullMdtrtInfo = () => {
- if (!mdtrtInfo.value.mdtrtId) {
- ElMessage({
- message: '请选择一条就诊信息!',
- type: 'warning',
- duration: 2000,
- showClose: true,
- })
- return true
- }
- return false
- }
- const getVisitInfo = () => {
- if (nullPatNo() || nullMedType() || nullDateRange()) {
- return
- }
- const param = {
- patNo: patNo.value,
- medType: medType.value,
- begntime: formatDatetime(dateRange.value[0]),
- endtime: formatDatetime(dateRange.value[1]),
- }
- queryVisitInfo(param).then((res) => {
- mdtrtInfos.value = res
- })
- }
- const handleClickMdtrtInfo = (row) => {
- mdtrtInfo.value = row
- }
- const getDiseInfo = () => {
- if (nullMdtrtInfo()) {
- return
- }
- const param = {
- psnNo: mdtrtInfo.value.psnNo,
- mdtrtId: mdtrtInfo.value.mdtrtId,
- }
- queryDiagnosisInfo(param).then((res) => {
- diseInfos.value = res
- showDiagnosisInfo.value = true
- })
- }
- const getSetlInfo = () => {
- if (nullMdtrtInfo()) {
- return
- }
- const param = {
- psnNo: mdtrtInfo.value.psnNo,
- mdtrtId: mdtrtInfo.value.mdtrtId,
- }
- querySettlementInfo(param).then((res) => {
- setlInfo.value[0] = res
- showSetlInfo.value = true
- })
- }
- const getFeeDetl = () => {
- if (nullMdtrtInfo()) {
- return
- }
- const param = {
- psnNo: mdtrtInfo.value.psnNo,
- mdtrtId: mdtrtInfo.value.mdtrtId,
- }
- queryFeeDetails(param).then((res) => {
- feeDetls.value = res
- showFeeDetl.value = true
- })
- }
- const showCumInfo = ref(false)
- const cumYm = ref(null)
- const cumInfos = ref([])
- const cumPageSize = ref(10)
- const cumCurrentPage = ref(1)
- const handleCumSizeChange = (val) => {
- cumPageSize.value = val
- }
- const handleCumCurrentChange = (val) => {
- cumCurrentPage.value = val
- }
- const getCumInfo = () => {
- if (nullMdtrtInfo()) {
- return
- }
- showCumInfo.value = true
- }
- const executeGetCumulativeInfo = () => {
- const param = {
- patNo: patNo.value,
- psnNo: mdtrtInfo.value.psnNo,
- cumYm: cumYm.value,
- }
- queryPersonnelCumulativeInfo(param).then((res) => {
- cumInfos.value = res
- })
- }
- onMounted(() => {
- getMedAllTypes().then((res) => {
- medTypes.value = res
- })
- })
- return {
- tableHeight,
- patNo,
- dateRange,
- maxHalfYear,
- medTypes,
- medType,
- getVisitInfo,
- mdtrtInfos,
- mdtrtInfo,
- handleClickMdtrtInfo,
- getDiseInfo,
- diseInfos,
- setlInfo,
- feeDetls,
- getSetlInfo,
- getFeeDetl,
- showDiagnosisInfo,
- showSetlInfo,
- showFeeDetl,
- getCumInfo,
- cumYm,
- showCumInfo,
- cumInfos,
- executeGetCumulativeInfo,
- cumPageSize,
- cumCurrentPage,
- handleCumSizeChange,
- handleCumCurrentChange,
- }
- },
- }
- </script>
|