| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888 |
- <template>
- <div class="layout_container">
- <header class="round-header">
- <el-select v-model="recordType" style="width: 120px">
- <el-option v-for="item in allRecordTypes" :label="item.label" :value="item.value"></el-option>
- </el-select>
- <el-input v-model="psnIdNumber" placeholder="人员身份证号" clearable style="width: 180px"></el-input>
- <el-divider direction="vertical"></el-divider>
- <el-button type="success" @click="queryPsnBaseInfo">参保信息</el-button>
- <el-button type="primary" @click="startApplyRecord"> 开始备案 </el-button>
- <el-button type="primary" @click="revokeRecord"> 撤销备案 </el-button>
- <span v-if="recordType === '2503'" style="margin-left: 12px">
- <el-button type="success" @click="querySpecialDiseaseRecords"> 备案查询 </el-button>
- <el-button type="success" @click="displayDateRange"> 用药记录 </el-button>
- <el-button type="warning" @click="beforeFetchAllSpecialDiseaseRecords"> 备案统计 </el-button>
- </span>
- </header>
- <el-divider content-position="left">
- 人员基本信息
- </el-divider>
- <div>
- <el-descriptions :column="4" border>
- <el-descriptions-item>
- <template #label> 姓名 </template>
- {{ baseinfo.psnName }}
- </el-descriptions-item>
- <el-descriptions-item>
- <template #label> 性别 </template>
- {{ baseinfo.gendName }}
- </el-descriptions-item>
- <el-descriptions-item>
- <template #label> 证件类型 </template>
- {{ baseinfo.psnCertTypeName }}
- </el-descriptions-item>
- <el-descriptions-item>
- <template #label> 证件号码 </template>
- {{ baseinfo.certno }}
- </el-descriptions-item>
- <el-descriptions-item>
- <template #label> 出生日期 </template>
- {{ baseinfo.brdy }}
- </el-descriptions-item>
- <el-descriptions-item>
- <template #label> 年龄 </template>
- {{ baseinfo.age }}
- </el-descriptions-item>
- <el-descriptions-item>
- <template #label> 民族 </template>
- {{ baseinfo.natyName }}
- </el-descriptions-item>
- <el-descriptions-item>
- <template #label> 人员编号 </template>
- {{ baseinfo.psnNo }}
- </el-descriptions-item>
- </el-descriptions>
- </div>
- <el-divider content-position="left">
- 人员参保信息
- </el-divider>
- <div>
- <el-table :data="baseinfo.insuinfo" stripe highlight-current-row @row-click="handleClickInsuinfo">
- <el-table-column property="balc" label="余额" width="50"></el-table-column>
- <el-table-column prop="insutypeName" label="险种类型"></el-table-column>
- <el-table-column prop="psnTypeName" label="人员类别" width="120"></el-table-column>
- <el-table-column prop="psnInsuStasName" label="参保状态" width="80"></el-table-column>
- <el-table-column property="psnInsuDate" label="个人参保日期" width="100"></el-table-column>
- <el-table-column property="pausInsuDate" label="暂停参保日期" width="100"></el-table-column>
- <el-table-column property="cvlservFlagName" label="公务员标志" width="100"></el-table-column>
- <el-table-column property="insuplcAdmdvs" label="参保地医保区划" width="120"></el-table-column>
- <el-table-column property="insuplcAdmdvsName" label="参保地名称"></el-table-column>
- <el-table-column property="empName" label="单位名称"></el-table-column>
- </el-table>
- </div>
- <el-divider content-position="left">
- 人员身份信息
- </el-divider>
- <div>
- <el-table :data="baseinfo.idetinfo">
- <el-table-column label="人员身份类别" prop="psnIdetTypeName"></el-table-column>
- <el-table-column label="人员类别等级" prop="psnTypeLv"></el-table-column>
- <el-table-column label="备注" prop="memo"></el-table-column>
- <el-table-column label="开始时间" prop="begntime"></el-table-column>
- <el-table-column label="结束时间" prop="endtime"></el-table-column>
- </el-table>
- </div>
- </div>
- <el-dialog v-model="showMtbRecords" title="慢特病备案信息">
- <el-table :data="mtbRecords" stripe>
- <el-table-column property="begndate" label="开始日期"></el-table-column>
- <el-table-column prop="enddate" label="结束日期"></el-table-column>
- <el-table-column prop="opspDiseCode" label="病种编码"></el-table-column>
- <el-table-column prop="opspDiseName" label="病种名称"></el-table-column>
- <el-table-column prop="ideFixmedinsName" label="备案机构"></el-table-column>
- </el-table>
- </el-dialog>
- <el-dialog v-model="showMtbUsedMedicines" title="慢特病用药记录">
- <el-table :data="mtbUsedMedicines" stripe height="360">
- <el-table-column prop="fixmedinsCode" label="定点医药机构编号"></el-table-column>
- <el-table-column prop="fixmedinsName" 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="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="prodname" label="商品名"></el-table-column>
- <el-table-column prop="spec" label="规格"></el-table-column>
- <el-table-column prop="dosformName" label="剂型"></el-table-column>
- </el-table>
- </el-dialog>
- <el-dialog v-model="showDateRange" title="请选择时间范围" width="320px">
- <el-date-picker
- v-model="dateRange"
- type="daterange"
- :shortcuts="maxHalfYear"
- range-separator="至"
- start-placeholder="开始日期"
- end-placeholder="结束日期"
- size="small"
- style="width: 260px"
- ></el-date-picker>
- <div style="width: 260px; text-align: right; margin-top: 24px">
- <el-button type="primary" @click="querySpecialDiseaseUsedMedicines" icon="Check">确定</el-button>
- </div>
- </el-dialog>
- <el-dialog v-model="showFetchAllMtbUsedMedicines" title="门特备案记录" width="70%">
- <el-date-picker
- v-model="fetchAllMtbRecordsDateRange"
- type="daterange"
- :shortcuts="maxHalfYear"
- range-separator="至"
- start-placeholder="开始日期"
- end-placeholder="结束日期"
- size="small"
- style="width: 240px"
- ></el-date-picker>
- <el-divider direction="vertical"></el-divider>
- <el-button type="primary" icon="Check" @click="fetchAllSpecialDiseaseRecords">查询</el-button>
- <el-button type="primary" icon="Download" @click="exportExcel">导出Excel</el-button>
- <el-table :data="allMtbRecords" height="400" stripe highlight-current-row>
- <el-table-column prop="psnName" label="人员姓名"></el-table-column>
- <el-table-column prop="psnNo" label="人员编码"></el-table-column>
- <el-table-column prop="socialNo" label="身份证号"></el-table-column>
- <el-table-column prop="opspDiseCode" label="病种编码"></el-table-column>
- <el-table-column prop="opspDiseName" label="病种名称"></el-table-column>
- <el-table-column prop="ideFixmedinsName" label="鉴定机构"></el-table-column>
- <el-table-column prop="hospIdeDate" label="鉴定日期"></el-table-column>
- <el-table-column prop="diagDrName" 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="trtDclaDetlSn" label="备案流水号"></el-table-column>
- </el-table>
- </el-dialog>
- <el-dialog v-model="showMtbRecord" width="70%" title="人员慢特病备案申请">
- <i style="color: red">* </i>人员类别:
- <el-radio v-model="perstype" :label="1">职工</el-radio>
- <el-radio v-model="perstype" :label="2">居民</el-radio>
- <div style="height: 20px"></div>
- <el-row :gutter="5">
- <el-col :span="8">
- 人员编号:
- <el-input v-model="tempMtbRecord.psnNo" disabled style="width: 160px"></el-input>
- </el-col>
- <el-col :span="8">
- 险种类型:
- <el-input v-model="tempMtbRecord.insutypeName" disabled style="width: 160px"></el-input>
- </el-col>
- <el-col :span="8">
- 联系电话:
- <el-input v-model="tempMtbRecord.tel" style="width: 160px"></el-input>
- </el-col>
- </el-row>
- <div style="height: 12px"></div>
- <el-row :gutter="5">
- <el-col :span="8">
- 联系地址:
- <el-input v-model="tempMtbRecord.addr" style="width: 160px"></el-input>
- </el-col>
- <el-col :span="8">
- 参保地区:
- <el-input v-model="tempMtbRecord.insuOptinsName" disabled style="width: 160px"></el-input>
- </el-col>
- <el-col :span="8">
- 鉴定日期:
- <el-date-picker v-model="tempMtbRecord.hospIdeDate" style="width: 160px"></el-date-picker>
- </el-col>
- </el-row>
- <div style="height: 12px"></div>
- <el-row :gutter="5">
- <el-col :span="8">
- 开始日期:
- <el-date-picker v-model="tempMtbRecord.begndate" style="width: 160px"></el-date-picker>
- </el-col>
- <el-col :span="8">
- 结束日期:
- <el-date-picker v-model="tempMtbRecord.enddate" style="width: 160px"></el-date-picker>
- </el-col>
- <el-col :span="8">
- <div style="display: flex">
- <div>病种名称:</div>
- <div>
- <el-autocomplete
- v-model="tempMtbRecord.opspDiseName"
- :fetch-suggestions="searchDiag" placeholder="请输入名称" clearable
- @select="handleSelectDiag"
- >
- <template #default="{ item }">
- <div style="height: 40px">
- <div style="height: 16px; margin-top: 4px; font-size: 12px; color: #8492a6">
- {{ item.code }}
- </div>
- <div style="height: 16px">{{ item.name }}</div>
- </div>
- </template>
- </el-autocomplete>
- </div>
- </div>
- </el-col>
- </el-row>
- <div style="height: 12px"></div>
- <el-row :gutter="5">
- <el-col :span="8">
- 病种编码:
- <el-input v-model="tempMtbRecord.opspDiseCode" disabled style="width: 160px"></el-input>
- </el-col>
- <el-col :span="8">
- <div style="display: flex">
- <div>医师姓名:</div>
- <div>
- <el-autocomplete
- v-model="tempMtbRecord.diagDrName"
- :fetch-suggestions="searchPhysician"
- placeholder="请输入姓名"
- clearable
- @select="handleSelectPhysician"
- >
- <template #default="{ item }">
- <span style="color: #8492a6; font-size: 12px">{{ item.code }}</span>
- <el-divider direction="vertical"></el-divider>
- <span>{{ item.name }}</span>
- </template>
- </el-autocomplete>
- </div>
- </div>
- </el-col>
- <el-col :span="8">
- 医师编码:
- <el-input v-model="tempMtbRecord.diagDrCodg" disabled style="width: 160px"></el-input>
- </el-col>
- </el-row>
- <div style="margin-top: 24px; width: 100%; text-align: right">
- <el-button plain icon="Close" @click="showMtbRecord = false">放弃备案</el-button>
- <el-button type="primary" icon="Check" @click="submitRecord">提交备案</el-button>
- </div>
- <div style="height: 12px"></div>
- </el-dialog>
- <el-dialog v-model="showDdRecord" width="70%" title="定点备案申请">
- <el-row :gutter="5">
- <el-col :span="8">
- 人员编号:
- <el-input v-model="tempDdRecord.psnNo" disabled style="width: 160px"></el-input>
- </el-col>
- <el-col :span="8">
- 险种类型:
- <el-input v-model="tempDdRecord.insutypeName" disabled style="width: 160px"></el-input>
- </el-col>
- <el-col :span="8">
- 参保地区:
- <el-input v-model="tempDdRecord.insuOptinsName" disabled style="width: 160px"></el-input>
- </el-col>
- </el-row>
- <div style="height: 12px"></div>
- <el-row :gutter="5">
- <el-col :span="8">
- 联系电话:
- <el-input v-model="tempDdRecord.tel" style="width: 160px"></el-input>
- </el-col>
- <el-col :span="8">
- 联系地址:
- <el-input v-model="tempDdRecord.addr" style="width: 160px"></el-input>
- </el-col>
- <el-col :span="8">
- 业务申请类型:
- <el-select
- v-model="tempDdRecord.bizAppyType"
- style="width: 160px"
- >
- <el-option value="01" label="门诊慢特病登记" />
- <el-option value="08" label="异地安置登记" />
- <el-option value="03" label="就医定点医疗机构登记" />
- </el-select>
- </el-col>
- </el-row>
- <div style="height: 12px"></div>
- <el-row :gutter="5">
- <el-col :span="8">
- 定点排序号:
- <el-input
- v-model="tempDdRecord.fixSrtNo"
- style="width: 160px"
- />
- </el-col>
- <el-col :span="8">
- 机构编号:
- <el-input
- v-model="tempDdRecord.fixmedinsCode"
- disabled
- style="width: 160px"
- />
- </el-col>
- <el-col :span="8">
- 机构名称:
- <el-input
- v-model="tempDdRecord.fixmedinsName"
- disabled
- style="width: 160px"
- />
- </el-col>
- </el-row>
- <div style="height: 12px"></div>
- <el-row :gutter="5">
- <el-col :span="8">
- 开始日期:
- <el-date-picker
- v-model="tempDdRecord.begndate"
- style="width: 160px" type="date"
- format="YYYY-MM-DD"
- value-format="YYYY-MM-DD"
- />
- </el-col>
- <el-col :span="8">
- 结束日期:
- <el-date-picker
- v-model="tempDdRecord.enddate"
- style="width: 160px" type="date"
- format="YYYY-MM-DD"
- value-format="YYYY-MM-DD"
- />
- </el-col>
- <el-col :span="8">
- 补充说明:
- <el-input v-model="tempDdRecord.memo" style="width: 160px"></el-input>
- </el-col>
- </el-row>
- <div style="height: 12px"></div>
- <div style="margin-top: 24px; width: 100%; text-align: right">
- <el-button plain icon="Close" @click="showDdRecord = false">放弃备案</el-button>
- <el-button type="primary" icon="Check" @click="submitRecord">提交备案</el-button>
- </div>
- <div style="height: 12px"></div>
- </el-dialog>
- <el-dialog v-model="showWsRecord" width="70%" title="外伤备案申请">
- <el-row :gutter="5">
- <el-col :span="8">
- 人员编号:
- <el-input v-model="tempWsRecord.psnNo" disabled style="width: 160px"></el-input>
- </el-col>
- <el-col :span="8">
- 险种类型:
- <el-input v-model="tempWsRecord.insutypeName" disabled style="width: 160px"></el-input>
- </el-col>
- <el-col :span="8">
- 联系电话:
- <el-input v-model="tempWsRecord.tel" style="width: 160px"></el-input>
- </el-col>
- </el-row>
- <div style="height: 12px"></div>
- <el-row :gutter="5">
- <el-col :span="8">
- 联系地址:
- <el-input v-model="tempWsRecord.addr" style="width: 160px"></el-input>
- </el-col>
- <el-col :span="8">
- 参保地区:
- <el-input v-model="tempWsRecord.insuAdmdvsName" disabled style="width: 160px"></el-input>
- </el-col>
- <el-col :span="8">
- 受伤日期:
- <el-date-picker v-model="tempWsRecord.trumTime" style="width: 160px" type="datetime"
- format="YYYY-MM-DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss"></el-date-picker>
- </el-col>
- </el-row>
- <div style="height: 12px"></div>
- <el-row :gutter="5">
- <el-col :span="8">
- 受伤部位:
- <el-input v-model="tempWsRecord.trumPart" style="width: 160px"></el-input>
- </el-col>
- <el-col :span="8">
- 受伤地点:
- <el-input v-model="tempWsRecord.trumSite" style="width: 160px"></el-input>
- </el-col>
- <el-col :span="8">
- 受伤原因:
- <el-input v-model="tempWsRecord.trumRea" style="width: 160px"></el-input>
- </el-col>
- </el-row>
- <div style="height: 12px"></div>
- <el-row :gutter="5">
- <el-col :span="8">
- 开始日期:
- <el-date-picker v-model="tempWsRecord.begndate" style="width: 160px" type="date" format="YYYY-MM-DD"
- value-format="YYYY-MM-DD"></el-date-picker>
- </el-col>
- <el-col :span="8">
- 结束日期:
- <el-date-picker v-model="tempWsRecord.enddate" style="width: 160px" type="date" format="YYYY-MM-DD"
- value-format="YYYY-MM-DD"></el-date-picker>
- </el-col>
- <el-col :span="8">
- 补充说明:
- <el-input v-model="tempWsRecord.memo" style="width: 160px"></el-input>
- </el-col>
- </el-row>
- <div style="height: 12px"></div>
- <div style="margin-top: 24px; width: 100%; text-align: right">
- <el-button plain icon="Close" @click="showWsRecord = false">放弃备案</el-button>
- <el-button type="primary" icon="Check" @click="submitRecord">提交备案</el-button>
- </div>
- <div style="height: 12px"></div>
- </el-dialog>
- <el-dialog v-model="showSyRecord" width="70%" title="生育备案申请">
- <el-row :gutter="5">
- <el-col :span="8">
- 人员编号:
- <el-input v-model="tempSyRecord.psnNo" disabled style="width: 160px"></el-input>
- </el-col>
- <el-col :span="8">
- 险种类型:
- <el-input v-model="tempSyRecord.insutypeName" disabled style="width: 160px"></el-input>
- </el-col>
- <el-col :span="8">
- 联系电话:
- <el-input v-model="tempSyRecord.tel" style="width: 160px"></el-input>
- </el-col>
- </el-row>
- <div style="height: 12px"></div>
- <el-row :gutter="5">
- <el-col :span="8">
- 联系地址:
- <el-input v-model="tempSyRecord.addr" style="width: 160px"></el-input>
- </el-col>
- <el-col :span="8">
- 参保地区:
- <el-input v-model="tempSyRecord.insuAdmdvsName" disabled style="width: 160px"></el-input>
- </el-col>
- </el-row>
- <div style="height: 12px"></div>
- <el-row :gutter="5">
- <el-col :span="8">
- 开始日期:
- <el-date-picker v-model="tempSyRecord.begndate" style="width: 160px" type="date" format="YYYY-MM-DD"
- value-format="YYYY-MM-DD"></el-date-picker>
- </el-col>
- <el-col :span="8">
- 结束日期:
- <el-date-picker v-model="tempSyRecord.enddate" style="width: 160px" type="date" format="YYYY-MM-DD"
- value-format="YYYY-MM-DD"></el-date-picker>
- </el-col>
- </el-row>
- <div style="height: 12px"></div>
- <div style="margin-top: 24px; width: 100%; text-align: right">
- <el-button plain icon="Close" @click="showSyRecord = false">放弃备案</el-button>
- <el-button type="primary" icon="Check" @click="submitRecord">提交备案</el-button>
- </div>
- <div style="height: 12px"></div>
- </el-dialog>
- <el-dialog v-model="showAllAppliedSpecicalDiseaseRecords" title="请选择要撤销的备案" width="70%">
- <div style="height: 12px"></div>
- <el-table
- :data="allAppliedSpecialDiseaseRecords"
- stripe
- highlight-current-row
- @row-click="handleSelectAppliedSpecialDiseaseRecord"
- >
- <el-table-column prop="opspDiseCode" label="病种编码"></el-table-column>
- <el-table-column prop="opspDiseName" label="病种名称"></el-table-column>
- <el-table-column prop="hospIdeDate" label="鉴定日期"></el-table-column>
- <el-table-column prop="diagDrName" label="鉴定医生"></el-table-column>
- <el-table-column prop="begndate" label="开始日期"></el-table-column>
- <el-table-column prop="enddate" label="结束日期"></el-table-column>
- </el-table>
- <div style="margin-top: 24px; width: 100%; text-align: right">
- <el-button plain icon="Close" @click="abortRevokeSpecialDiseaseRecord">放弃</el-button>
- <el-button type="primary" icon="RefreshLeft" @click="confirmRevokeSpecialDiseaseRecord">撤销备案</el-button>
- </div>
- <div style="height: 12px"></div>
- </el-dialog>
- </template>
- <script setup>
- import {
- obtainBasicPersonInfo,
- querySpecialChronicDiseasesAccreditation,
- querySpecialChronicDiseasesMedicalRecord
- } from "@/api/medical-insurance/si-query";
- import {ElMessage, ElMessageBox} from "element-plus";
- import {formatDate, formatDatetime} from "@/utils/date";
- import {maxHalfYear} from "@/data/shortcuts";
- import {
- getAllSpcChrRcdsByPsnNo,
- revokeSpecialChronicDiseasesRecord,
- personnelAccidentRecord,
- selectAllSpcSlwRcds,
- specialChronicDiseasesRecord, personnelAssignmentRecord
- } from "@/api/medical-insurance/si-psn-rcd";
- import {Export} from "@/utils/ExportExcel";
- import {searchData} from "@/api/inpatient/dictionary";
- import env from "@/utils/setting";
- const allRecordTypes = [
- { value: '2503', label: '慢特病备案' },
- { value: '2505', label: '定点备案' },
- { value: '2507', label: '意外伤害备案' },
- ]
- const recordType = ref('2503')
- const psnIdNumber = ref('')
- const baseinfo = ref({})
- const currentInsuinfo = ref({})
- const perstype = ref(1)
- const mtbRecords = ref([])
- const showMtbRecords = ref(false)
- const mtbUsedMedicines = ref([])
- const showMtbUsedMedicines = ref(false)
- const dateRange = ref(null)
- const showDateRange = ref(false)
- const showFetchAllMtbUsedMedicines = ref(false)
- const fetchAllMtbRecordsDateRange = ref(null)
- const allMtbRecords = ref([])
- const showMtbRecord = ref(false);
- const showDdRecord = ref(false);
- const showWsRecord = ref(false);
- const showSyRecord = ref(false);
- const tempMtbRecord = reactive({});
- const tempDdRecord = reactive({});
- const tempWsRecord = reactive({});
- const tempSyRecord = reactive({});
- const nullIdNumber = () => {
- if (!psnIdNumber.value) {
- ElMessage({
- message: '请输入患者身份证号!',
- type: 'warning',
- duration: 2000,
- showClose: true,
- })
- return true
- }
- return false
- }
- const queryPsnBaseInfo = () => {
- if (nullIdNumber()) {
- return
- }
- const param = {
- socialNo: psnIdNumber.value,
- onlyQry: 1,
- }
- obtainBasicPersonInfo(param).then((res) => {
- baseinfo.value = res
- }).catch(() => {
- baseinfo.value = {}
- })
- }
- const nullBaseinfo = (needInsuinfo) => {
- if (!baseinfo.value.psnNo) {
- ElMessage({
- message: '请先查询参保信息!',
- type: 'warning',
- duration: 2000,
- showClose: true,
- })
- return true
- }
- if (needInsuinfo && !currentInsuinfo.value.insutype) {
- 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 handleClickInsuinfo = (row) => {
- currentInsuinfo.value = row
- if (row.insutype === '310') {
- perstype.value = 1
- } else if (row.insutype === '390') {
- perstype.value = 2
- }
- }
- const querySpecialDiseaseRecords = () => {
- if (nullBaseinfo(true)) {
- return
- }
- querySpecialChronicDiseasesAccreditation({
- psnNo: baseinfo.value.psnNo,
- admdvs: currentInsuinfo.value.insuplcAdmdvs,
- needAllRcd: 1,
- }).then((res) => {
- mtbRecords.value = res
- showMtbRecords.value = true
- })
- }
- const displayDateRange = () => {
- showDateRange.value = true
- }
- const querySpecialDiseaseUsedMedicines = () => {
- if (nullBaseinfo(false)) {
- return
- }
- if (nullDateRange()) {
- return
- }
- const param = {
- psnNo: baseinfo.value.psnNo,
- begntime: formatDatetime(dateRange.value[0]),
- endtime: formatDatetime(dateRange.value[1]),
- }
- querySpecialChronicDiseasesMedicalRecord(param).then((res) => {
- showDateRange.value = false
- mtbUsedMedicines.value = res
- showMtbUsedMedicines.value = true
- })
- }
- const beforeFetchAllSpecialDiseaseRecords = () => {
- showFetchAllMtbUsedMedicines.value = true
- }
- const fetchAllSpecialDiseaseRecords = () => {
- if (!fetchAllMtbRecordsDateRange.value) {
- ElMessage({
- message: '请选择日期范围!',
- type: 'warning',
- duration: 2000,
- showClose: true,
- })
- return true
- }
- const begntime = formatDate(fetchAllMtbRecordsDateRange.value[0])
- const endtime = formatDate(fetchAllMtbRecordsDateRange.value[1])
- selectAllSpcSlwRcds(begntime, endtime).then((res) => {
- allMtbRecords.value = res
- })
- }
- const exportExcel = () => {
- if (allMtbRecords.value.length === 0) {
- ElMessage({
- message: '没有可以导出的数据。',
- type: 'warning',
- duration: 2000,
- showClose: true,
- })
- return true
- }
- const title = {
- psnName: '人员姓名',
- psnNo: '人员编码',
- socialNo: '身份证号',
- opspDiseCode: '病种编码',
- opspDiseName: '病种名称',
- ideFixmedinsName: '鉴定机构',
- hospIdeDate: '鉴定日期',
- diagDrName: '诊断医师',
- begndate: '开始日期',
- enddate: '结束日期',
- trtDclaDetlSn: '备案流水号',
- }
- Export(allMtbRecords.value, title, '门特备案详情')
- }
- const searchDiag = (queryString, cb) => {
- if (queryString && queryString.length > 1) {
- const param = {
- method: 'name',
- content: queryString,
- target: 'slwspcdiag',
- perstype: perstype.value,
- medType: '14',
- }
- searchData(param).then((res) => {
- cb(res)
- })
- }
- }
- const handleSelectDiag = (item) => {
- tempMtbRecord.opspDiseCode = item.code
- tempMtbRecord.opspDiseName = item.name
- }
- const searchPhysician = (queryString, cb) => {
- if (queryString && queryString.length > 1) {
- const param = {
- method: 'name',
- content: queryString,
- target: 'physician',
- medType: '14',
- }
- searchData(param).then((res) => {
- cb(res)
- })
- }
- }
- const handleSelectPhysician = (item) => {
- tempMtbRecord.diagDrCodg = item.code
- tempMtbRecord.diagDrName = item.name
- }
- const startApplyRecord = () => {
- if (nullBaseinfo(true)) {
- return
- }
- beforeApplySpecialDiseaseRecord()
- }
- const beforeApplySpecialDiseaseRecord = () => {
- switch (recordType.value) {
- case '2503':
- tempMtbRecord.psnNo = baseinfo.value.psnNo
- tempMtbRecord.psnName = baseinfo.value.psnName
- tempMtbRecord.socialNo = baseinfo.value.certno
- tempMtbRecord.insutype = currentInsuinfo.value.insutype
- tempMtbRecord.insutypeName = currentInsuinfo.value.insutypeName
- tempMtbRecord.insuOptins = currentInsuinfo.value.insuplcAdmdvs
- tempMtbRecord.insuOptinsName = currentInsuinfo.value.insuplcAdmdvsName;
- showMtbRecord.value = true;
- break;
- case '2505':
- tempDdRecord.psnNo = baseinfo.value.psnNo
- tempDdRecord.insutype = currentInsuinfo.value.insutype
- tempDdRecord.insutypeName = currentInsuinfo.value.insutypeName
- tempDdRecord.insuOptins = currentInsuinfo.value.insuplcAdmdvs
- tempDdRecord.insuOptinsName = currentInsuinfo.value.insuplcAdmdvsName;
- tempDdRecord.fixmedinsCode = env.VITE_HOSPITAL_CODE
- tempDdRecord.fixmedinsName = env.VITE_HOSPITAL_NAME
- showDdRecord.value = true;
- break;
- case '2507':
- tempWsRecord.psnNo = baseinfo.value.psnNo;
- tempWsRecord.insutype = currentInsuinfo.value.insutype;
- tempWsRecord.insutypeName = currentInsuinfo.value.insutypeName
- tempWsRecord.psnCertType = "01";
- tempWsRecord.certno = baseinfo.value.certno;
- tempWsRecord.insuAdmdvs = currentInsuinfo.value.insuplcAdmdvs;
- tempWsRecord.bizUsedFlag = "0";
- tempWsRecord.insuAdmdvs = currentInsuinfo.value.insuplcAdmdvs
- tempWsRecord.insuAdmdvsName = currentInsuinfo.value.insuplcAdmdvsName;
- showWsRecord.value = true;
- break;
- }
- }
- const submitRecord = () => {
- switch (recordType.value) {
- case '2503':
- specialChronicDiseasesRecord(tempMtbRecord).then((res) => {
- ElMessageBox.alert(res, {
- type: 'success',
- confirmButtonText: '确定',
- }).then(() => {
- showMtbRecord.value = false
- });
- });
- break;
- case '2505':
- personnelAssignmentRecord(tempDdRecord).then((res) => {
- ElMessageBox.alert(res, {
- type: 'success',
- confirmButtonText: '确定',
- }).then(() => {
- showDdRecord.value = false
- });
- })
- break;
- case '2507':
- personnelAccidentRecord(tempWsRecord).then((res) => {
- ElMessageBox.alert(res, {
- type: 'success',
- confirmButtonText: '确定',
- }).then(() => {
- showWsRecord.value = false
- });
- });
- break;
- }
- }
- const revokeRecord = () => {
- if (nullBaseinfo(false)) {
- return
- }
- switch (recordType.value) {
- case '2503':
- beforeRevokeSpecialDiseaseRecord()
- break
- }
- }
- const allAppliedSpecialDiseaseRecords = ref([])
- const showAllAppliedSpecicalDiseaseRecords = ref(false)
- const beforeRevokeSpecialDiseaseRecord = () => {
- getAllSpcChrRcdsByPsnNo(baseinfo.value.psnNo).then((res) => {
- allAppliedSpecialDiseaseRecords.value = res
- showAllAppliedSpecicalDiseaseRecords.value = true
- })
- }
- const currentAppliedSpecialDiseaseRecord = ref({})
- const handleSelectAppliedSpecialDiseaseRecord = (row) => {
- currentAppliedSpecialDiseaseRecord.value = row
- }
- const abortRevokeSpecialDiseaseRecord = () => {
- currentAppliedSpecialDiseaseRecord.value = {}
- showAllAppliedSpecicalDiseaseRecords.value = false
- }
- const confirmRevokeSpecialDiseaseRecord = () => {
- if (!currentAppliedSpecialDiseaseRecord.value.psnNo) {
- ElMessage({
- message: '请选择要撤销的备案!',
- type: 'warning',
- duration: 2000,
- showClose: true,
- })
- return
- }
- ElMessageBox.prompt('请填写撤销原因:', '提示', {
- confirmButtonText: '确定',
- cancelButtonText: '取消',
- type: 'warning',
- inputPattern: /\S/,
- inputErrorMessage: '撤销原因为必填项!',
- }).then(({ value }) => {
- currentAppliedSpecialDiseaseRecord.value.memo = value
- const param = {
- id: currentAppliedSpecialDiseaseRecord.value.id,
- psnNo: currentAppliedSpecialDiseaseRecord.value.psnNo,
- trtDclaDetlSn: currentAppliedSpecialDiseaseRecord.value.trtDclaDetlSn,
- memo: value,
- }
- revokeSpecialChronicDiseasesRecord(param).then((res) => {
- ElMessage({
- message: res,
- type: 'success',
- duration: 2000,
- showClose: true,
- })
- abortRevokeSpecialDiseaseRecord()
- })
- }).catch(() => {})
- }
- </script>
|