Browse Source

新的 4101 A 接口

DESKTOP-MINPJAU\Administrator 3 years ago
parent
commit
ff53757b13

+ 76 - 34
src/components/si-sheet-upload/jie-suan-dan-xiu-gai/JieSuanDanXiangQing.vue

@@ -114,8 +114,7 @@
                 icon="el-icon-info"
                 iconColor="#F56C6C"
                 title="是否删除该诊断"
-                @confirm="delZhenDuan(scope.$index, scope.row.disDiagNo)"
-            >
+                @confirm="delZhenDuan(scope.$index, scope.row.disDiagNo)">
               <template #reference>
                 <el-button icon="el-icon-delete" size="mini" type="danger">删除</el-button>
               </template>
@@ -126,7 +125,7 @@
       <el-tag size="small">手术操作信息</el-tag>
       <el-button icon="el-icon-circle-plus" type="success" @click="tianJiaXiuGaiShouShu(-1)">新增手术</el-button>
       <el-table id="sortable-oprninfo" :data="oprninfo" :height="store.state.app.windowSize.h / 2.5"
-                highlight-current-row row-key="id" stripe>
+                border highlight-current-row row-key="id" stripe>
         <el-table-column width="50">
           <template #default>
             <el-button class="shangxiatuodong"><i class="iconfont icon-shangxiatuodong"></i></el-button>
@@ -134,7 +133,11 @@
         </el-table-column>
         <el-table-column label="手术及操作名称" prop="ssmc"></el-table-column>
         <el-table-column label="序号" prop="ssxh" width="50"></el-table-column>
-        <el-table-column label="手术及操作日期" prop="ssrq"></el-table-column>
+        <el-table-column label="手术开始时间" prop="opStartDate" width="140"></el-table-column>
+        <el-table-column label="手术结束时间" prop="opEndDate" width="140"></el-table-column>
+        <el-table-column label="麻醉开始时间" prop="anstStartDate" width="140"></el-table-column>
+        <el-table-column label="麻醉结束时间" prop="anstEndDate" width="140"></el-table-column>
+        <el-table-column label="手术及操作日期" prop="ssrq" width="140"></el-table-column>
         <el-table-column label="手术级别" prop="ssjb"></el-table-column>
         <el-table-column label="手术及操作编码	" prop="ssbm"></el-table-column>
         <el-table-column label="手术及操作医师">
@@ -165,6 +168,28 @@
           </template>
         </el-table-column>
       </el-table>
+      <el-tag>患者输血信息</el-tag>
+      <el-button icon="el-icon-circle-plus" type="success" @click="xinZhengShuXueXinXi">新增输血信息</el-button>
+      <el-table :data="patientBldInfos" :height="store.state.app.windowSize.h / 3">
+        <el-table-column label="输血品种" prop="bldCatName"></el-table-column>
+        <el-table-column label="输血量" prop="bldAmt"></el-table-column>
+        <el-table-column label="输血计量单位" prop="bldUnit"></el-table-column>
+        <el-table-column label="操作" width="210">
+          <template #default="scope">
+            <el-button icon="el-icon-edit" type="warning" @click="modifiedBloodTransfusion(scope.row)">
+              修改
+            </el-button>
+            <el-popconfirm cancel-button-text="取消" confirm-button-text="确认" icon="el-icon-info" iconColor="#F56C6C"
+                           title="是否删除该输血信息" @confirm="clickRemoveBloodTransfusion(scope.$index,scope.row.id)">
+              <template #reference>
+                <el-button icon="el-icon-delete" size="mini" type="danger">删除</el-button>
+              </template>
+            </el-popconfirm>
+          </template>
+        </el-table-column>
+      </el-table>
+      <shu-xue-xin-xi v-if="shuXueXinXi.dialog" :data="shuXueXinXi.data" @addData="addBloodTransfusionData"
+                      @close="shuXueXinXi.dialog = false"/>
     </el-dialog>
     <el-dialog v-model="zhenDuanDialog" width="60%">
       <el-select v-model="diagnosticQuery.method" filterable style="width: 100px">
@@ -237,7 +262,6 @@
                                    :data="formShouShu"
                                    @addShouShuClick="addShouShuClick"
                                    @close="shouShuDialog = false"/>
-
     <shen-he-xin-xi v-if="shenHeRef" :data="props.data.shenHeXinXi" @close="shenHeRef = false"></shen-he-xin-xi>
     <ShuJuDuiBi
         v-if="shuJuDuiBiDialogRef"
@@ -257,8 +281,12 @@ import {searchYbDiag} from '@/api/yibao/dictionary'
 import {decTypes, operations} from '../../../data'
 import {clone} from '@/utils/clone'
 import {ElMessage, ElMessageBox} from 'element-plus'
-import {getRenYuan} from '@/api/public-api'
-import {setlUploadAudit, shouShuBianMa, upldSetlList} from '@/api/medical-insurance/si-setl-upload'
+import {
+  removeBloodTransfusion,
+  setlUploadAudit,
+  shouShuBianMa,
+  upldSetlList
+} from '@/api/medical-insurance/si-setl-upload'
 import {formatDatetime} from '@/utils/date'
 import {listIsBlank, stringIsBlank, stringNotBlank} from '@/utils/blank-utils'
 import {getAdmissCond, getsiDiagTypeName, maZuiName, qieKouName, shenHeQuanXian} from '../jieSuanDanXiuGai'
@@ -269,6 +297,7 @@ import Sortable from 'sortablejs'
 import ShuJuDuiBi from '../ShuJuDuiBi.vue'
 import {ArrayIsEqual} from "@/utils/list-utlis";
 import JieSuanDanXiuGaiShouShu from "@/components/si-sheet-upload/jie-suan-dan-xiu-gai/JieSuanDanXiuGaiShouShu.vue";
+import ShuXueXinXi from "@/components/si-sheet-upload/ShuXueXinXi.vue";
 
 const props = defineProps({
   data: {},
@@ -453,25 +482,6 @@ const queryShouShu = () => {
   queryShouShuCodeData.value.page = 1
   queryShouShuCodeData.value.total = 0
 }
-const queryShouShuClick = () => {
-  if (queryShouShuCodeName.value.length < 1) {
-    return
-  }
-  switch (queryShouShuCodeName.value) {
-    case '手术编码':
-      shouShuBianMa(queryShouShuCodeData.value.code, 1).then((res) => {
-        shouShuData.value = res.records
-        queryShouShuCodeData.value.total = res.total
-      })
-      return
-    default:
-      getRenYuan(queryShouShuCodeData.value.code).then((res) => {
-        shouShuData.value = res
-        queryShouShuCodeData.value.total = 0
-      })
-      return
-  }
-}
 
 const shouShuCurrentPage = (val) => {
   queryShouShuCodeData.value.page = val
@@ -481,14 +491,6 @@ const shouShuCurrentPage = (val) => {
   })
 }
 
-const xuanZheShouShu = (val) => {
-  formShouShu.value.ssbm = val.code
-  formShouShu.value.ssmc = val.name
-  setTimeout(() => {
-    queryShouShuDialog.value = false
-  }, 400)
-}
-
 const addShouShuClick = async (val) => {
   val.ssrq = formatDatetime(val.ssrq)
   if (oprninfoIndex.value !== -1) {
@@ -712,6 +714,7 @@ let oldData = $ref({});
 
 const init = () => {
   setlinfo.value = clone(props.data)
+  patientBldInfos = clone(props.data.patientBldInfos)
   // 如果新的没有就用老的
   if (stringNotBlank(props.data.shenHeXinXi.id)) {
     diseinfo.value = clone(props.data.newYbZyDisDiag)
@@ -783,6 +786,45 @@ function sortableOprninfo() {
   Sortable.create(el, ops)
 }
 
+
+///////////////// 患者输血量信息
+let shuXueXinXi = $ref({
+  dialog: false,
+  data: {
+    id: -1,
+    patNo: '',
+    times: 0,
+    bldCat: '',
+    bldCatName: '',
+    bldAmt: 0,
+    bldUnit: ''
+  }
+})
+let patientBldInfos = $ref([])
+const xinZhengShuXueXinXi = () => {
+  shuXueXinXi.dialog = true
+  shuXueXinXi.data.id = -1
+  shuXueXinXi.data.patNo = setlinfo.value.inpatientNo
+  shuXueXinXi.data.times = setlinfo.value.admissTimes
+}
+
+const modifiedBloodTransfusion = (val) => {
+  shuXueXinXi.dialog = true
+  shuXueXinXi.data = val
+}
+
+const addBloodTransfusionData = (val) => {
+  patientBldInfos.push(val)
+}
+
+const clickRemoveBloodTransfusion = (index, id) => {
+  removeBloodTransfusion(id).then((res) => {
+    patientBldInfos.splice(index, 1)
+  })
+}
+
+///////////////// 患者输血量信息 结束
+
 onMounted(() => {
   init()
   keFouShenHe.value = !(stringNotBlank(props.data.shenHeXinXi.id) && props.data.shenHeXinXi.auditFlag === 0)

+ 48 - 1
src/components/si-sheet-upload/jie-suan-dan-xiu-gai/JieSuanDanXiuGaiShouShu.vue

@@ -17,6 +17,32 @@
       <el-form-item label="手术日期" prop="ssrq">
         <el-date-picker v-model="formShouShu.ssrq" type="datetime"></el-date-picker>
       </el-form-item>
+      <el-form-item label="手术时间" prop="opDate">
+        <el-date-picker
+            v-model="formShouShu.opDate"
+            :shortcuts="shortcuts"
+            end-placeholder="结束日期"
+            placeholder="选择日期"
+            range-separator="至"
+            size="mini"
+            start-placeholder="开始日期"
+            style="width: 400px"
+            type="datetimerange"
+        ></el-date-picker>
+      </el-form-item>
+      <el-form-item label="麻醉时间" prop="anstDate">
+        <el-date-picker
+            v-model="formShouShu.anstDate"
+            :shortcuts="shortcuts"
+            end-placeholder="结束日期"
+            placeholder="选择日期"
+            range-separator="至"
+            size="mini"
+            start-placeholder="开始日期"
+            style="width: 400px"
+            type="datetimerange"
+        ></el-date-picker>
+      </el-form-item>
       <el-form-item label="手术级别" prop="ssjb">
         <el-select v-model="formShouShu.ssjb">
           <el-option :key="1" :label="1" :value="1"></el-option>
@@ -66,6 +92,8 @@ import SelectStaffCode from "@/components/SelectStaffCode.vue";
 import {maZuiFangShis, qks,} from '../jieSuanDanXiuGai'
 import {shouShuBianMa} from "@/api/medical-insurance/si-setl-upload";
 import {current} from "@/data/input-table-header";
+import {shortcuts} from '@/data/shortcuts.js'
+import {getDateRangeFormatDateTime} from "@/utils/date";
 
 const props = defineProps({
   data: {
@@ -95,6 +123,12 @@ let formShouShu = $ref({
   mzff: '',
   mzys: '',
   mzysName: '',
+  opStartDate: '',
+  opEndDate: '',
+  anstStartDate: '',
+  anstEndDate: '',
+  opDate: [],
+  anstDate: []
 })
 
 const shouShuData = $ref({
@@ -111,6 +145,7 @@ const shouShuRules = ref({
   ssbm: [{required: true, message: '该项不能为空', trigger: 'blur'}],
   ssysName: [{required: true, message: '该项不能为空', trigger: 'blur'}],
   qkName: [{required: true, message: '该项不能为空', trigger: 'blur'}],
+  opDate: [{required: true, message: '该项不能为空', trigger: 'blur'}],
 })
 
 const formQieKou = (val) => {
@@ -142,15 +177,27 @@ const addShouShuClick = async () => {
   if (!form) return
   try {
     await form.validate()
+    let opdateS = getDateRangeFormatDateTime(formShouShu.opDate)
+    formShouShu.opStartDate = opdateS.startTime
+    formShouShu.opEndDate = opdateS.endTime
+
+    console.log(formShouShu.anstDate)
+
+    let anstDateS = getDateRangeFormatDateTime(formShouShu.anstDate)
+    formShouShu.anstStartDate = anstDateS.startTime
+    formShouShu.anstEndDate = anstDateS.endTime
+
     emit('addShouShuClick', formShouShu)
   } catch (e) {
-
+    console.log(e)
   }
 }
 
 onMounted(() => {
   if (props.data !== null) {
     formShouShu = props.data
+    formShouShu.opDate = [formShouShu.opStartDate, formShouShu.opEndDate]
+    formShouShu.anstDate = [formShouShu.anstStartDate, formShouShu.anstEndDate]
   }
 })
 

+ 2 - 1
src/views/medical-insurance/allpatient/SetSheetUpload.vue

@@ -308,7 +308,7 @@ export default {
     const queryTerm = ref({
       startTime: '',
       endTime: '',
-      patNo: '',
+      patNo: '0406567',
       referPhysician: shenHeQuanXian() ? '' : store.state.user.info.code,
       insutype: [],
       dateRange: [clockinShortcuts[0].value[0], clockinShortcuts[0].value[1]],
@@ -463,6 +463,7 @@ export default {
         return
       }
       jieSuanDanKeXiuGaiXinXi(val.patNo, val.times, val.ledgerSn).then((res) => {
+        console.log(res)
         jieSuanDanData.value = res
         jieSuanDanData.value.medType = val.medType
         jieSuanDanData.value.actIptDays = val.actIptDays