Explorar o código

手术信息填写,以及湖南泰和医院修改成长沙泰和医院

DESKTOP-MINPJAU\Administrator %!s(int64=3) %!d(string=hai) anos
pai
achega
f5fd5f5d27

+ 19 - 0
src/api/medical-insurance/si-setl-upload.js

@@ -134,3 +134,22 @@ export function modifyMedicalCategory(iptMenType, setlId) {
     })
 }
 
+
+export function addOrModifyBloodTransfusionVolume(data) {
+    return request({
+        url: '/setlListUpld/addOrModifyBloodTransfusionVolume',
+        method: 'post',
+        data
+    })
+}
+
+export function removeBloodTransfusion(id) {
+    return request({
+        url: '/setlListUpld/removeBloodTransfusion',
+        method: 'get',
+        params: {id}
+    })
+}
+
+
+

+ 8 - 0
src/api/public-api.js

@@ -108,6 +108,14 @@ export function getDrugInfo(name) {
     });
 }
 
+export function getBldCat(name) {
+    return request({
+        url: '/publicApi/getBldCat',
+        method: 'get',
+        params: {name}
+    });
+}
+
 
 
 

+ 10 - 0
src/api/surgical-management/surgery-arrangement.js

@@ -14,3 +14,13 @@ export function huoQuShouShuAnPaiXinXi(data) {
         data
     })
 }
+
+export function modifySurgeryTimeApi(data) {
+    return request({
+        url: '/surgeryArrangement/modifySurgeryTime',
+        method: 'post',
+        data
+    })
+}
+
+

+ 1 - 1
src/components/hui-zhen-da-ying/DaYingHuiZhen.vue

@@ -2,7 +2,7 @@
   <el-main :style="{ maxHeight: windowSize.h - 55 + 'px', overflowY: 'auto' }">
     <div class="main-info-parent" style="padding: 0 20px; overflow: hidden">
       <div id="huiZhenXinXiDaYin">
-        <h1 style="text-align: center; font-size: 30px">湖南泰和医院</h1>
+        <h1 style="text-align: center; font-size: 30px">长沙泰和医院</h1>
         <h4 style="text-align: center; font-size: 17px; margin-top: 0">会 诊 记 录 单</h4>
         <div class="divHuanZheXinXi">
           <div class="huanZheXinXi" style="margin-left: 20px">住院号:{{ huanZheXinXi.inpatientNo }}</div>

+ 95 - 0
src/components/si-sheet-upload/ShuXueXinXi.vue

@@ -0,0 +1,95 @@
+<template>
+  <el-dialog v-model="dialog" title="输血信息" @closed="emit('close')">
+    <el-form ref="patientBldInfoFrom" :model="patientBldInfo" :rules="rules" label-width="100px" size="mini">
+      <el-form-item label="输血品种" prop="bldCat">
+        <xc-select v-model="patientBldInfo" :data="bldCatList" :name="['bldCat','bldCatName']" remote
+                   @method="remoteBldCat"/>
+      </el-form-item>
+      <el-form-item label="输血量" prop="bldAmt">
+        <el-input-number v-model="patientBldInfo.bldAmt" :min="0.1" :precision="1"></el-input-number>
+      </el-form-item>
+      <el-form-item label="输血单位" prop="bldUnit">
+        <el-select v-model="patientBldInfo.bldUnit">
+          <el-option label="U" value="U"></el-option>
+          <el-option label="ml" value="ml"></el-option>
+        </el-select>
+      </el-form-item>
+      <el-form-item>
+        <el-button type="primary" @click="saveData">保存</el-button>
+      </el-form-item>
+    </el-form>
+  </el-dialog>
+</template>
+
+<script name="ShuXueXinXi" setup>
+import {getBldCat} from "@/api/public-api";
+import XcSelect from "@/components/xc/select/XcSelect.vue";
+import {unref} from "vue";
+import {addOrModifyBloodTransfusionVolume} from "@/api/medical-insurance/si-setl-upload";
+
+const props = defineProps({
+  data: {
+    type: Object,
+    default: {
+      id: -1
+    }
+  }
+})
+const emit = defineEmits(['close', 'addData'])
+const dialog = ref(true)
+let patientBldInfoFrom = $ref(null)
+let bldCatList = $ref([])
+
+let patientBldInfo = $ref({
+  id: -1,
+  patNo: '',
+  times: 0,
+  bldCat: '',
+  bldCatName: '',
+  bldAmt: 0,
+  bldUnit: ''
+})
+
+const remoteBldCat = (val) => {
+  getBldCat(val).then((res) => {
+    bldCatList = res
+  })
+}
+
+const saveData = async () => {
+  const form = unref(patientBldInfoFrom)
+  if (!form) return
+  try {
+    await form.validate()
+    addOrModifyBloodTransfusionVolume(patientBldInfo).then((res) => {
+      if (patientBldInfo.id === -1) {
+        emit('addData', patientBldInfo)
+      } else {
+        emit('close')
+      }
+
+    })
+  } catch (e) {
+    console.error(e)
+  }
+}
+
+const rules = ref({
+  bldCat: [{required: true, message: '该项不能为空', trigger: 'blur'}],
+  bldAmt: [{required: true, message: '该项不能为空', trigger: 'blur'}],
+  bldUnit: [{required: true, message: '该项不能为空', trigger: 'blur'}],
+})
+
+onMounted(() => {
+  patientBldInfo = props.data
+  if (props.data.id !== -1) {
+    remoteBldCat(props.data.bldCatName)
+  }
+})
+
+
+</script>
+
+<style scoped>
+
+</style>

+ 1 - 1
src/components/zhu-yuan-yi-sheng/jian-cha-shen-qing/da-ying/DaYingJianCha.vue

@@ -7,7 +7,7 @@
       <div id="daYing">
         <div style="width:394.875pt;height:760px;background-color: white;font-size: 13px">
           <svg id="barcode"></svg>
-          <div style="text-align: center;font-size: 25px;width:100%;height: 50px;margin-top: 3.75pt ">湖南泰和医院</div>
+          <div style="text-align: center;font-size: 25px;width:100%;height: 50px;margin-top: 3.75pt ">长沙泰和医院</div>
           <div style="text-align: center;font-size: 16px;margin-top: 7px;">{{ biaoTi }}</div>
           <div class="tanXingHeZiHeng" style="width: 520px;margin:1px auto">
             <div class="wen-zi">

+ 1 - 1
src/components/zhu-yuan-yi-sheng/shou-shu-shen-qing/DaYingShouShuShengQingDan.vue

@@ -6,7 +6,7 @@
     <div id="daYing">
       <div style="width:393pt;height:760px;background-color: white;font-size: 13px">
         <div style="height: 20px"></div>
-        <h1 style="text-align: center;font-size: 18px ">湖南泰和医院</h1>
+        <h1 style="text-align: center;font-size: 18px ">长沙泰和医院</h1>
         <div style=" margin-left: 40px"><span>申请单号:{{ data.recordId }}</span></div>
         <div style="text-align: center;width: 100%;margin-top: -15px;font-size: 14px">手术申请单</div>
         <div style=" margin-left: 40px"><span>病房:{{ data.deptCodeName }}</span></div>

+ 1 - 1
src/utils/date.js

@@ -114,7 +114,7 @@ export function getDateRangeFormatDate(data) {
 export function getDateRangeFormatDateTime(data) {
     let startTime = ''
     let endTime = ''
-    if (data === null) return {startTime, endTime}
+    if (typeof data === 'undefined' || data === null || data.length === 0) return {startTime, endTime}
     //用户手动输入了日期 并且没有按下大键盘上面的回车
     if (typeof data[0].$d !== 'undefined') {
         startTime = formatDatetime(data[0].$d)

+ 1 - 1
src/views/hospitalization/case-front-sheet/FillCaseFrontSheet.vue

@@ -43,7 +43,7 @@
             <div id="page0">
               <h3 style="width: 100%; font-size: 17px; text-align: center">住 院 病 案 首 页</h3>
               <div style="width: 100%; height: 32px; line-height: 32px; font-size: 15px; text-align: center">
-                医疗机构: <span style="font-weight: 700">湖南泰和医院</span> (组织机构代码: <span style="font-weight: 700">43010150145</span>)
+                医疗机构: <span style="font-weight: 700">长沙泰和医院</span> (组织机构代码: <span style="font-weight: 700">43010150145</span>)
               </div>
               <div style="height: 25px; line-height: 25px; display: flex">
                 <div>

+ 92 - 18
src/views/surgical-management/SurgeryArrangement.vue

@@ -27,10 +27,19 @@
       <el-tag effect="dark" size="small" type="error">急诊:{{ jiZhenJiShu }}条</el-tag>
       <el-tag effect="dark" size="small" type="success">普通:{{ shouShuData.length - jiZhenJiShu }}条</el-tag>
       <el-table :data="shouShuData.slice((currentPage - 1) * pageSize,currentPage * pageSize)"
-                :height="window.h - 120"
-                :row-class-name="rowStyle"
-      >
-        <el-table-column label="手术编号" prop="recordId"></el-table-column>
+                :height="window.h - 120">
+        <el-table-column label="手术编号" prop="recordId">
+          <template #default="scope">
+            <el-tag :type="scope.row.urgentClinicFlag === '1' ? 'error':'success'" effect="dark"
+                    @click="clickToModifyTime(scope.row)">
+              {{ scope.row.recordId }}
+            </el-tag>
+          </template>
+        </el-table-column>
+        <el-table-column label="手术开始时间" prop="opStartDate"></el-table-column>
+        <el-table-column label="手术结束时间" prop="opEndDate"></el-table-column>
+        <el-table-column label="麻醉开始时间" prop="anstStartDate"></el-table-column>
+        <el-table-column label="麻醉结束时间" prop="anstEndDate"></el-table-column>
         <el-table-column label="日期" prop="opDatetime"></el-table-column>
         <el-table-column label="送出时间" prop="applyDate"></el-table-column>
         <el-table-column label="手术间" prop="roomName"></el-table-column>
@@ -82,13 +91,49 @@
       ></el-pagination>
     </el-main>
   </el-container>
+  <el-dialog v-model="modifySurgeryTime.dialog" :close-on-click-modal="false" title="编辑手术时间">
+    手术时间:
+    <el-date-picker
+        v-model="opDate"
+        :shortcuts="shortcuts"
+        end-placeholder="结束日期"
+        placeholder="选择日期"
+        range-separator="至"
+        size="mini"
+        start-placeholder="开始日期"
+        style="width: 400px"
+        type="datetimerange"
+    ></el-date-picker>
+    <br>
+    <br>
+    麻醉时间:
+    <el-date-picker
+        v-model="anstDate"
+        :shortcuts="shortcuts"
+        end-placeholder="结束日期"
+        placeholder="选择日期"
+        range-separator="至"
+        size="mini"
+        start-placeholder="开始日期"
+        style="width: 400px"
+        type="datetimerange"
+    ></el-date-picker>
+    <template #footer>
+      <el-button icon="el-icon-refresh-left" type="info" @click="modifySurgeryTime.dialog = false">取消</el-button>
+      <el-button icon="el-icon-check" type="primary" @click="confirmDialog">确定</el-button>
+    </template>
+  </el-dialog>
 </template>
 
 <script name="SurgeryArrangement" setup>
-import {getASurgicalWard, huoQuShouShuAnPaiXinXi} from "@/api/surgical-management/surgery-arrangement";
+import {
+  getASurgicalWard,
+  huoQuShouShuAnPaiXinXi,
+  modifySurgeryTimeApi
+} from "@/api/surgical-management/surgery-arrangement";
 import {shortcuts} from '@/data/shortcuts.js'
-import {getDateRangeFormatDate} from "@/utils/date";
-import {listIsBlank, stringNotBlank} from "@/utils/blank-utils";
+import {getDateRangeFormatDate, getDateRangeFormatDateTime} from "@/utils/date";
+import {listIsBlank, stringIsBlank, stringNotBlank} from "@/utils/blank-utils";
 import store from '@/store'
 import {ElMessage} from "element-plus";
 
@@ -129,7 +174,6 @@ const clickQuery = () => {
   queryParam.startTime = dateS.startTime
   queryParam.endTime = dateS.endTime
   huoQuShouShuAnPaiXinXi(queryParam).then((res) => {
-    console.log(res)
     shouShuData = res
     jiZhenJiShu = 0
     shouShuData.forEach(item => {
@@ -142,20 +186,50 @@ const clickQuery = () => {
   })
 }
 
-const rowStyle = ({row, rowIndex}) => {
-  if (stringNotBlank(row.urgentClinicFlag)) {
-    if (row.urgentClinicFlag === '1') {
-      return 'error'
-    } else if (row.urgentClinicFlag === '0') {
-      return 'success'
-    }
-  }
-}
-
 const handleCurrentChange = (val) => {
   currentPage = val
 }
 
+let modifySurgeryTime = $ref({
+  dialog: false,
+  opStartDate: '',
+  opEndDate: '',
+  anstStartDate: '',
+  anstEndDate: '',
+  recordId: '',
+  inpatientNo: ''
+})
+
+let opDate = $ref([])
+let anstDate = $ref([])
+
+const clickToModifyTime = ({recordId, inpatientNo, opStartDate, opEndDate, anstStartDate, anstEndDate}) => {
+  opDate = [opStartDate, opEndDate]
+  anstDate = [anstStartDate, anstEndDate]
+  modifySurgeryTime.dialog = true
+  modifySurgeryTime.inpatientNo = inpatientNo
+  modifySurgeryTime.recordId = recordId
+}
+
+const confirmDialog = () => {
+  let opdateS = getDateRangeFormatDateTime(opDate)
+  modifySurgeryTime.opStartDate = opdateS.startTime
+  modifySurgeryTime.opEndDate = opdateS.endTime
+  if (stringIsBlank(modifySurgeryTime.opStartDate)) {
+    return ElMessage.error('请先填写手术时间.')
+  }
+
+  let anstDateS = getDateRangeFormatDateTime(anstDate)
+  modifySurgeryTime.anstStartDate = anstDateS.startTime
+  modifySurgeryTime.anstEndDate = anstDateS.endTime
+
+
+  modifySurgeryTimeApi(modifySurgeryTime).then((res) => {
+    console.log(res)
+  })
+
+}
+
 onMounted(() => {
   getASurgicalWard().then((res) => {
     wardList = res