lighter 1 ay önce
ebeveyn
işleme
0e29589111

+ 553 - 412
src/views/medical-insurance/management/RecordManagement.vue

@@ -7,13 +7,13 @@
       <el-input v-model="psnIdNumber" placeholder="人员身份证号" clearable style="width: 180px"></el-input>
       <el-divider direction="vertical"></el-divider>
       <ReadCard
-        :pat-no="psnIdNumber"
-        biztype="01103"
-        @success="afterReadCard"
+          :pat-no="psnIdNumber"
+          biztype="01103"
+          @success="afterReadCard"
       />
       <el-button type="success" @click="queryPsnBaseInfo">参保信息</el-button>
-      <el-button type="primary" @click="startApplyRecord"> 开始备案 </el-button>
-      <el-button type="primary" @click="revokeRecord"> 撤销备案 </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>
@@ -26,35 +26,35 @@
     <div>
       <el-descriptions :column="4" border>
         <el-descriptions-item>
-          <template #label> 姓名 </template>
+          <template #label> 姓名</template>
           {{ baseinfo.psnName }}
         </el-descriptions-item>
         <el-descriptions-item>
-          <template #label> 性别 </template>
+          <template #label> 性别</template>
           {{ baseinfo.gendName }}
         </el-descriptions-item>
         <el-descriptions-item>
-          <template #label> 证件类型 </template>
+          <template #label> 证件类型</template>
           {{ baseinfo.psnCertTypeName }}
         </el-descriptions-item>
         <el-descriptions-item>
-          <template #label> 证件号码 </template>
+          <template #label> 证件号码</template>
           {{ baseinfo.certno }}
         </el-descriptions-item>
         <el-descriptions-item>
-          <template #label> 出生日期 </template>
+          <template #label> 出生日期</template>
           {{ baseinfo.brdy }}
         </el-descriptions-item>
         <el-descriptions-item>
-          <template #label> 年龄 </template>
+          <template #label> 年龄</template>
           {{ baseinfo.age }}
         </el-descriptions-item>
         <el-descriptions-item>
-          <template #label> 民族 </template>
+          <template #label> 民族</template>
           {{ baseinfo.natyName }}
         </el-descriptions-item>
         <el-descriptions-item>
-          <template #label> 人员编号 </template>
+          <template #label> 人员编号</template>
           {{ baseinfo.psnNo }}
         </el-descriptions-item>
       </el-descriptions>
@@ -94,8 +94,8 @@
     </div>
   </div>
 
-  <el-dialog v-model="showSpecialDiseaseRecords" title="慢特病备案信息">
-    <el-table :data="specialDiseaseRecords" stripe>
+  <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>
@@ -103,8 +103,8 @@
       <el-table-column prop="ideFixmedinsName" label="备案机构"></el-table-column>
     </el-table>
   </el-dialog>
-  <el-dialog v-model="showSpecialDiseaseUsedMedicines" title="慢特病用药记录">
-    <el-table :data="specialDiseaseUsedMedicines" stripe height="360">
+  <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>
@@ -134,9 +134,9 @@
       <el-button type="primary" @click="querySpecialDiseaseUsedMedicines" icon="Check">确定</el-button>
     </div>
   </el-dialog>
-  <el-dialog v-model="showFetchAllSpecialDiseaseRecords" title="门特备案记录" width="70%">
+  <el-dialog v-model="showFetchAllMtbUsedMedicines" title="门特备案记录" width="70%">
     <el-date-picker
-        v-model="fetchAllSpecialDiseaseRecordsDateRange"
+        v-model="fetchAllMtbRecordsDateRange"
         type="daterange"
         :shortcuts="maxHalfYear"
         range-separator="至"
@@ -148,7 +148,7 @@
     <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="allSpecialDiseaseRecords" height="400" stripe highlight-current-row>
+    <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>
@@ -163,7 +163,7 @@
     </el-table>
   </el-dialog>
 
-  <el-dialog v-model="showApplySpecialDiseaseRecord" width="70%" title="人员慢特病备案申请">
+  <el-dialog v-model="showMtbRecord" width="70%" title="人员慢特病备案申请">
     <i style="color: red">* </i>人员类别:&nbsp;&nbsp;
     <el-radio v-model="perstype" :label="1">职工</el-radio>
     <el-radio v-model="perstype" :label="2">居民</el-radio>
@@ -171,49 +171,51 @@
     <el-row :gutter="5">
       <el-col :span="8">
         人员编号:
-        <el-input v-model="tempSpecialDiseaseRecord.psnNo" disabled style="width: 160px"></el-input>
+        <el-input v-model="tempMtbRecord.psnNo" disabled style="width: 160px"></el-input>
       </el-col>
       <el-col :span="8">
         险种类型:
-        <el-input v-model="tempSpecialDiseaseRecord.insutypeName" disabled style="width: 160px"></el-input>
+        <el-input v-model="tempMtbRecord.insutypeName" disabled style="width: 160px"></el-input>
       </el-col>
       <el-col :span="8">
         联系电话:
-        <el-input v-model="tempSpecialDiseaseRecord.tel" style="width: 160px"></el-input>
+        <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="tempSpecialDiseaseRecord.addr" style="width: 160px"></el-input>
+        <el-input v-model="tempMtbRecord.addr" style="width: 160px"></el-input>
       </el-col>
       <el-col :span="8">
         参保地区:
-        <el-input v-model="tempSpecialDiseaseRecord.insuOptinsName" disabled style="width: 160px"></el-input>
+        <el-input v-model="tempMtbRecord.insuOptinsName" disabled style="width: 160px"></el-input>
       </el-col>
       <el-col :span="8">
         鉴定日期:
-        <el-date-picker v-model="tempSpecialDiseaseRecord.hospIdeDate" style="width: 160px"></el-date-picker>
+        <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="tempSpecialDiseaseRecord.begndate" style="width: 160px"></el-date-picker>
+        <el-date-picker v-model="tempMtbRecord.begndate" style="width: 160px"></el-date-picker>
       </el-col>
       <el-col :span="8">
         结束日期:
-        <el-date-picker v-model="tempSpecialDiseaseRecord.enddate" style="width: 160px"></el-date-picker>
+        <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="tempSpecialDiseaseRecord.opspDiseName"
-                             :fetch-suggestions="searchDiag" placeholder="请输入名称" clearable
-                             @select="handleSelectDiag">
+            <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">
@@ -231,13 +233,19 @@
     <el-row :gutter="5">
       <el-col :span="8">
         病种编码:
-        <el-input v-model="tempSpecialDiseaseRecord.opspDiseCode" disabled style="width: 160px"></el-input>
+        <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="tempSpecialDiseaseRecord.diagDrName" :fetch-suggestions="searchPhysician" placeholder="请输入姓名" clearable @select="handleSelectPhysician">
+            <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>
@@ -249,12 +257,109 @@
       </el-col>
       <el-col :span="8">
         医师编码:
-        <el-input v-model="tempSpecialDiseaseRecord.diagDrCodg" disabled style="width: 160px"></el-input>
+        <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="showApplySpecialDiseaseRecord = false">放弃备案</el-button>
-      <el-button type="primary" icon="Check" @click="submitSpecialDiseaseRecord">提交备案</el-button>
+      <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>
@@ -263,99 +368,128 @@
     <el-row :gutter="5">
       <el-col :span="8">
         人员编号:
-        <el-input v-model="tempPsAcRecord.psnNo" disabled style="width: 160px"></el-input>
+        <el-input v-model="tempWsRecord.psnNo" disabled style="width: 160px"></el-input>
       </el-col>
       <el-col :span="8">
         险种类型:
-        <el-input v-model="tempPsAcRecord.insutypeName" disabled style="width: 160px"></el-input>
+        <el-input v-model="tempWsRecord.insutypeName" disabled style="width: 160px"></el-input>
       </el-col>
       <el-col :span="8">
         联系电话:
-        <el-input v-model="tempPsAcRecord.tel" style="width: 160px"></el-input>
+        <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="tempPsAcRecord.addr" style="width: 160px"></el-input>
+        <el-input v-model="tempWsRecord.addr" style="width: 160px"></el-input>
       </el-col>
       <el-col :span="8">
         参保地区:
-        <el-input v-model="tempPsAcRecord.insuAdmdvsName" disabled style="width: 160px"></el-input>
+        <el-input v-model="tempWsRecord.insuAdmdvsName" disabled style="width: 160px"></el-input>
       </el-col>
       <el-col :span="8">
         受伤日期:
-        <el-date-picker v-model="tempPsAcRecord.trumTime" style="width: 160px" type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"></el-date-picker>
+        <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="tempPsAcRecord.begndate" style="width: 160px" type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"></el-date-picker>
+        <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="tempPsAcRecord.enddate" style="width: 160px" type="date" format="YYYY-MM-DD" value-format="YYYY-MM-DD"></el-date-picker>
+        <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="showApplySpecialDiseaseRecord = false">放弃备案</el-button>
-      <el-button type="primary" icon="Check" @click="submitSpecialDiseaseRecord">提交备案</el-button>
+      <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="showApplySpecialDiseaseRecord = false">放弃备案</el-button>
-            <el-button type="primary" icon="Check" @click="submitSpecialDiseaseRecord">提交备案</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
+        :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>
@@ -372,32 +506,35 @@
 </template>
 <script setup>
 import {
-    obtainBasicPersonInfo,
-    querySpecialChronicDiseasesAccreditation,
-    querySpecialChronicDiseasesMedicalRecord
+  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,
-    selectAllSpcSlwRcds,
-    specialChronicDiseasesRecord,
-    personnelAccidentRecord,
-    birthRecord,
-    getZyActpatient,
-    revokePersonnelAccidentRecord
+  getAllSpcChrRcdsByPsnNo, 
+  revokeSpecialChronicDiseasesRecord,
+  selectAllSpcSlwRcds,
+  specialChronicDiseasesRecord,
+  personnelAccidentRecord,
+  personnelAssignmentRecord,
+  birthRecord,
+  getZyActpatient,
+  revokePersonnelAccidentRecord
 } from "@/api/medical-insurance/si-psn-rcd";
 import {Export} from "@/utils/ExportExcel";
 import {searchData} from "@/api/inpatient/dictionary";
 import ReadCard from "@/components/medical-insurance/readcard/Index.vue";
+import env from "@/utils/setting";
 
 const allRecordTypes = [
-    { value: '2503', label: '慢特病备案' },
-    { value: '2505', label: '定点备案' },
-    { value: '2560', label: '意外伤害备案' },
-    { value: '2562', label: '生育备案' },
-    // { value: '2501', label: '转院备案' },
+  {value: '2503', label: '慢特病备案'},
+  {value: '2505', label: '定点备案'},
+  {value: '2560', label: '意外伤害备案'},
+  {value: '2562', label: '生育备案'},
+  // { value: '2501', label: '转院备案' },
 ]
 const recordType = ref('2503')
 const psnIdNumber = ref('')
@@ -405,22 +542,24 @@ const psnIdNumber = ref('')
 const baseinfo = ref({})
 const currentInsuinfo = ref({})
 const perstype = ref(1)
-const specialDiseaseRecords = ref([])
-const showSpecialDiseaseRecords = ref(false)
-const specialDiseaseUsedMedicines = ref([])
-const showSpecialDiseaseUsedMedicines = ref(false)
+const mtbRecords = ref([])
+const showMtbRecords = ref(false)
+const mtbUsedMedicines = ref([])
+const showMtbUsedMedicines = ref(false)
 const dateRange = ref(null)
 const showDateRange = ref(false)
-const showFetchAllSpecialDiseaseRecords = ref(false)
-const fetchAllSpecialDiseaseRecordsDateRange = ref(null)
-const allSpecialDiseaseRecords = ref([])
-const showApplySpecialDiseaseRecord = 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 tempSpecialDiseaseRecord = reactive({});
-const tempPsAcRecord = reactive({});
+const tempMtbRecord = reactive({});
+const tempDdRecord = reactive({});
+const tempWsRecord = reactive({});
 const tempSyRecord = reactive({});
-const actPatient = reactive({});
+const actPatient = ref({});
 
 const ybCard = reactive({
   mdtrtCertType: null,
@@ -465,7 +604,7 @@ const afterReadCard = result => {
         console.error("刷脸读卡数据解析失败:", error);
       }
     }
-    
+
     // 读卡成功后显示提示
     ElMessage({
       message: '读卡成功,已自动填充身份证号',
@@ -476,366 +615,368 @@ const afterReadCard = result => {
   }
 };
 
-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,
-      readCardResult: ybCard.readCardResult,
-      busCardInfo: ybCard.busCardInfo,
-      mdtrtCertType: ybCard.mdtrtCertType,
-    }
-    obtainBasicPersonInfo(param).then((res) => {
-        baseinfo.value = res
-    }).catch(() => {
-        baseinfo.value = {}
-    });
-    getZyActpatient(psnIdNumber.value).then(res => {
-        actPatient.value = res;
-    });
+  const param = {
+    socialNo: psnIdNumber.value,
+    onlyQry: 1,
+    readCardResult: ybCard.readCardResult || 'to be del',
+    busCardInfo: ybCard.busCardInfo,
+    mdtrtCertType: ybCard.mdtrtCertType,
+  }
+  obtainBasicPersonInfo(param).then((res) => {
+    baseinfo.value = res
+  }).catch(() => {
+    baseinfo.value = {}
+  });
+  getZyActpatient(psnIdNumber.value).then(res => {
+    actPatient.value = res;
+  });
 }
 
 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
+  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
+  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
-    }
+  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) => {
-        specialDiseaseRecords.value = res
-        showSpecialDiseaseRecords.value = true
-    })
+  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
+  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
-        specialDiseaseUsedMedicines.value = res
-        showSpecialDiseaseUsedMedicines.value = true
-    })
+  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 = () => {
-    showFetchAllSpecialDiseaseRecords.value = true
+  showFetchAllMtbUsedMedicines.value = true
 }
 
 const fetchAllSpecialDiseaseRecords = () => {
-    if (!fetchAllSpecialDiseaseRecordsDateRange.value) {
-        ElMessage({
-            message: '请选择日期范围!',
-            type: 'warning',
-            duration: 2000,
-            showClose: true,
-        })
-        return true
-    }
-    const begntime = formatDate(fetchAllSpecialDiseaseRecordsDateRange.value[0])
-    const endtime = formatDate(fetchAllSpecialDiseaseRecordsDateRange.value[1])
-    selectAllSpcSlwRcds(begntime, endtime).then((res) => {
-        allSpecialDiseaseRecords.value = res
+  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 (allSpecialDiseaseRecords.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(allSpecialDiseaseRecords.value, title, '门特备案详情')
+  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)
-        })
+  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) => {
-    tempSpecialDiseaseRecord.opspDiseCode = item.code
-    tempSpecialDiseaseRecord.opspDiseName = item.name
+  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)
-        })
+  if (queryString && queryString.length > 1) {
+    const param = {
+      method: 'name',
+      content: queryString,
+      target: 'physician',
+      medType: '14',
     }
+    searchData(param).then((res) => {
+      cb(res)
+    })
+  }
 }
 const handleSelectPhysician = (item) => {
-    tempSpecialDiseaseRecord.diagDrCodg = item.code
-    tempSpecialDiseaseRecord.diagDrName = item.name
+  tempMtbRecord.diagDrCodg = item.code
+  tempMtbRecord.diagDrName = item.name
 }
 
 const startApplyRecord = () => {
-    if (nullBaseinfo(true)) {
-        return
-    }
-    beforeApplySpecialDiseaseRecord();
+  if (nullBaseinfo(true)) {
+    return
+  }
+  beforeApplySpecialDiseaseRecord();
 }
 
 const beforeApplySpecialDiseaseRecord = () => {
-    tempSpecialDiseaseRecord.psnNo = baseinfo.value.psnNo
-    tempSpecialDiseaseRecord.psnName = baseinfo.value.psnName
-    tempSpecialDiseaseRecord.socialNo = baseinfo.value.certno
-    tempSpecialDiseaseRecord.insutype = currentInsuinfo.value.insutype
-    tempSpecialDiseaseRecord.insutypeName = currentInsuinfo.value.insutypeName
-    tempSpecialDiseaseRecord.insuOptins = currentInsuinfo.value.insuplcAdmdvs
-    tempSpecialDiseaseRecord.insuOptinsName = currentInsuinfo.value.insuplcAdmdvsName;
-
-    tempPsAcRecord.psnNo = baseinfo.value.psnNo;
-    tempPsAcRecord.insutype = currentInsuinfo.value.insutype;
-    tempPsAcRecord.insutypeName = currentInsuinfo.value.insutypeName
-    tempPsAcRecord.psnCertType = "01";
-    tempPsAcRecord.certno = baseinfo.value.certno;
-    tempPsAcRecord.insuAdmdvs = currentInsuinfo.value.insuplcAdmdvs;
-    tempPsAcRecord.bizUsedFlag = "0";
-    tempPsAcRecord.insuAdmdvs = currentInsuinfo.value.insuplcAdmdvs
-    tempPsAcRecord.insuAdmdvsName = currentInsuinfo.value.insuplcAdmdvsName;
-    tempPsAcRecord.admTime = actPatient.value.admissDate;
-
-    tempSyRecord.psnNo = baseinfo.value.psnNo;
-    tempSyRecord.psnCertType = "01";
-    tempSyRecord.certno = baseinfo.value.certno;
-    tempSyRecord.psnName = baseinfo.value.psnName;
-    tempSyRecord.insuAdmdvs = currentInsuinfo.value.insuplcAdmdvs;
-
-    switch (recordType.value) {
-        case '2503':
-          showApplySpecialDiseaseRecord.value = true;
-          break;
-        case '2560':
-          showWsRecord.value = true;
-          break;
-        case '2562':
-          showWsRecord.value = true;
-          break;
-    }
+  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 '2560':
+      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;
+      tempWsRecord.admTime = actPatient.value.admissDate;
+      showWsRecord.value = true;
+      break;
+    case '2562':
+      tempSyRecord.psnNo = baseinfo.value.psnNo;
+      tempSyRecord.psnCertType = "01";
+      tempSyRecord.certno = baseinfo.value.certno;
+      tempSyRecord.psnName = baseinfo.value.psnName;
+      tempSyRecord.insutype = currentInsuinfo.value.insutype;
+      tempSyRecord.insutypeName = currentInsuinfo.value.insutypeName
+      tempSyRecord.insuAdmdvs = currentInsuinfo.value.insuplcAdmdvs;
+      tempSyRecord.insuAdmdvsName = currentInsuinfo.value.insuplcAdmdvsName;
+      showSyRecord.value = true;
+      break;
+  }
 }
-const submitSpecialDiseaseRecord = () => {
-    switch (recordType.value) {
-        case '2503':
-            specialChronicDiseasesRecord(tempSpecialDiseaseRecord).then((res) => {
-                ElMessageBox.alert(res, {
-                  type: 'success',
-                  confirmButtonText: '确定',
-                }).then(() => {
-                  showApplySpecialDiseaseRecord.value = false
-                });
-            });
-            break;
-        case '2560':
-            personnelAccidentRecord(tempPsAcRecord).then((res) => {
-                ElMessageBox.alert(res, {
-                  type: 'success',
-                  confirmButtonText: '确定',
-                }).then(() => {
-                  showWsRecord.value = false
-                });
-            });
-          break;
-        case '2562':
-            console.log("tempSyRecord", tempSyRecord)
-            birthRecord(tempSyRecord).then((res) => {
-                ElMessageBox.alert(res, {
-                  type: 'success',
-                  confirmButtonText: '确定',
-                }).then(() => {
-                  showApplySpecialDiseaseRecord.value = false
-                });
-            });
-          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 '2560':
+      personnelAccidentRecord(tempWsRecord).then((res) => {
+        ElMessageBox.alert(res, {
+          type: 'success',
+          confirmButtonText: '确定',
+        }).then(() => {
+          showWsRecord.value = false
+        });
+      });
+      break;
+    case '2562':
+      birthRecord(tempSyRecord).then((res) => {
+        ElMessageBox.alert(res, {
+          type: 'success',
+          confirmButtonText: '确定',
+        }).then(() => {
+          showSyRecord.value = false
+        });
+      });
+      break;
+  }
 }
 
 const revokeRecord = () => {
-    if (nullBaseinfo(false)) {
-        return
-    }
-    switch (recordType.value) {
-        case '2503':
-            beforeRevokeSpecialDiseaseRecord(recordType.value);
-            break;
-        case '2560':
-            let param = {
-                trtDclaDetlSn: "321300175395231330800000079007",
-                psnNo: baseinfo.value.psnNo,
-                memo: "出院不治"
-            }
-
-            revokePersonnelAccidentRecord(param).then(res => {
-                ElMessageBox.alert(res, {
-                    type: 'success',
-                    confirmButtonText: '确定',
-                }).then(() => {
-                });
-            });
-            break;
-    }
+  if (nullBaseinfo(false)) {
+    return
+  }
+  switch (recordType.value) {
+    case '2503':
+      beforeRevokeSpecialDiseaseRecord(recordType.value);
+      break;
+    case '2560':
+      let param = {
+        trtDclaDetlSn: "321300175395231330800000079007",
+        psnNo: baseinfo.value.psnNo,
+        memo: "出院不治"
+      }
+      revokePersonnelAccidentRecord(param).then(res => {
+        ElMessageBox.alert(res, {
+          type: 'success',
+          confirmButtonText: '确定',
+        }).then(() => {
+        });
+      });
+      break;
+  }
 }
 
 const allAppliedSpecialDiseaseRecords = ref([])
 const showAllAppliedSpecicalDiseaseRecords = ref(false)
 const beforeRevokeSpecialDiseaseRecord = () => {
-    getAllSpcChrRcdsByPsnNo(baseinfo.value.psnNo).then((res) => {
-        allAppliedSpecialDiseaseRecords.value = res
-        showAllAppliedSpecicalDiseaseRecords.value = true
-    })
+  getAllSpcChrRcdsByPsnNo(baseinfo.value.psnNo).then((res) => {
+    allAppliedSpecialDiseaseRecords.value = res
+    showAllAppliedSpecicalDiseaseRecords.value = true
+  })
 }
 
 const currentAppliedSpecialDiseaseRecord = ref({})
 const handleSelectAppliedSpecialDiseaseRecord = (row) => {
-    currentAppliedSpecialDiseaseRecord.value = row
+  currentAppliedSpecialDiseaseRecord.value = row
 }
 
 const abortRevokeSpecialDiseaseRecord = () => {
-    currentAppliedSpecialDiseaseRecord.value = {}
-    showAllAppliedSpecicalDiseaseRecords.value = false
+  currentAppliedSpecialDiseaseRecord.value = {}
+  showAllAppliedSpecicalDiseaseRecords.value = false
 }
 
 const confirmRevokeSpecialDiseaseRecord = () => {
-    if (!currentAppliedSpecialDiseaseRecord.value.psnNo) {
-        ElMessage({
-            message: '请选择要撤销的备案!',
-            type: 'warning',
-            duration: 2000,
-            showClose: true,
-        })
-        return
+  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,
     }
-    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(() => {})
+    revokeSpecialChronicDiseasesRecord(param).then((res) => {
+      ElMessage({
+        message: res,
+        type: 'success',
+        duration: 2000,
+        showClose: true,
+      })
+      abortRevokeSpecialDiseaseRecord()
+    })
+  }).catch(() => {
+  })
 }
 </script>