3 Commits a33aed6572 ... 25d5e2c7db

Author SHA1 Message Date
  luyun 25d5e2c7db 细节优化 浏览器地址内网整改 1 month ago
  luyun c74794be11 Merge branch 'master' of http://code.pacsonline.cn/zskk_bg/guochanhua 1 month ago
  luyun 3d6bfc608a 阳泉互认 医生端 优化报告查看 1 month ago

+ 3 - 0
jcjyhr/web/src/utils/config.ts

@@ -0,0 +1,3 @@
+export const config = {
+    pacsview_url: 'http://111.53.165.4:9603/#/pc?studyurl=http%3A%2F%2F111.53.165.4%3A9603%2Fquery%2F%3Faddress%3D111.53.165.4%3A9603%2Fdowndcm&study_id='
+}

+ 19 - 12
jcjyhr/web/src/views/backend/RecogView/components/table.vue

@@ -9,17 +9,19 @@
           <p>药敏结果:{{localData.tableData.INSPECT_REPORT_ITEMS[0].LAB_ITEMDETAILINTERPRETATION_BIA}}</p>
         </div>
       </div> -->
+
       <div class="ba-table-title-box">
         <div class="ba-table-title-top">
           <el-tooltip
             class="item"
             effect="dark"
+            v-if="(props.from == 'hrMyInsTable' && localData.tableData.INSPECT_REPORT_ITEMS.length>0) || (props.from == 'hrMyExamTable' && localData.examTableData.length>0)"
             :content="localData.tableData.LAB_ITEMNAME?timeFormat(localData.tableData.REPORTTIME, 'yyyy.mm.dd hh:MM') + ' ' + localData.tableData.LAB_ITEMNAME:'检查项目'"
             placement="top-start"
             >
             <div class="ba-table-title">{{localData.tableData.LAB_ITEMNAME?timeFormat(localData.tableData.REPORTTIME, 'yyyy.mm.dd hh:MM') + ' ' + localData.tableData.LAB_ITEMNAME:'检查项目'}}</div>
           </el-tooltip>
-          <el-tag v-if="localData.tableData.INSPECT_REPORT_ITEMS" :key="localData.tableData.HR_RANGE" type="success" effect="dark">{{localData.tableData.HR_RANGE}}</el-tag>
+          <el-tag v-if="localData.tableData.INSPECT_REPORT_ITEMS && localData.tableData.HR_RANGE" :key="localData.tableData.HR_RANGE" type="success" effect="dark">{{localData.tableData.HR_RANGE}}</el-tag>
         </div>
         <div v-if="localData.tableData.LAB_ITEMNAME_TYPE_CODE == '2'" >
           <p>鉴定结果: {{localData.tableData.INSPECT_REPORT_ITEMS[0].LAB_ITEMDETAILINTERPRETATION}}</p>
@@ -40,9 +42,9 @@
             <el-cascader v-model="localData.tableData.cascaderValue" :options="cascaderOptions" @change="onChangeField(localData.tableData, 0, 2)" />
            </div>
         </el-tooltip>
-        <el-button v-if="localData.tableData.LAB_ITEMNAME_TYPE_CODE !== '2'" type="primary" :color="'var(--ba-vars-color-main-primary)'" @click="handleCopy">复制</el-button>
-        <el-button v-if="localData.tableData.INSPECT_REPORT_ITEMS" type="primary" :color="'var(--ba-vars-color-main-primary)'" @click="handleReportView">查看报告</el-button>
-        <el-button v-if="localData.tableData.INSPECT_REPORT_ITEMS" type="primary" :color="'var(--ba-vars-color-main-primary)'" @click="handleDownload">下载报告</el-button>
+        <el-button v-if="localData.tableData.LAB_ITEMNAME_TYPE_CODE !== '2' && (props.from == 'hrMyInsTable' && localData.tableData.INSPECT_REPORT_ITEMS.length) || (props.from == 'hrMyExamTable' && localData.examTableData.length)" type="primary" :color="'var(--ba-vars-color-main-primary)'" @click="handleCopy">复制</el-button>
+        <el-button v-if="localData.tableData.INSPECT_REPORT_ITEMS && localData.tableData.REPORT" type="primary" :color="'var(--ba-vars-color-main-primary)'" @click="handleReportView(localData.tableData)">查看报告</el-button>
+        <el-button v-if="localData.tableData.INSPECT_REPORT_ITEMS && localData.tableData.REPORT" type="primary" :color="'var(--ba-vars-color-main-primary)'" @click="handleDownload">下载报告</el-button>
       </div>
     </div>
     <el-table
@@ -151,10 +153,13 @@
       </el-table-column>
       <el-table-column label="检查报告/影像图片" min-width="120" align="center">
         <template #default="scope">
-          <el-button link type="primary" size="small" @click="handleReportView(scope.row)">
-            报告查看
+          <el-button v-if="scope.row.REPORT" link type="primary" size="small" @click="handleReportView(scope.row)">
+            查看报告 
           </el-button>
-          <el-button link type="primary" size="small" @click="goImageView(scope.row)">影像查看</el-button>
+          <el-button v-else link disabled size="small">暂无报告附件</el-button>
+
+          <el-button v-if="scope.row.STUDY_ID" link type="primary" size="small" @click="goImageView(scope.row)">影像查看</el-button>
+          <el-button v-else link disabled size="small">暂无影像关联</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -169,6 +174,7 @@ import { timeFormat } from '/@/utils/common'
 import { Session } from '/@/utils/storage'
 import { ElMessage, ElMessageBox } from 'element-plus'
 import examReport from '/@/assets/examreport.png'
+import { config } from '/@/utils/config'
 const { t } = useI18n()
 const dialogVisible:any = inject('dialogVisible')
 let HR_RECORDS = ref<any>([])
@@ -427,16 +433,16 @@ const handleCopy = async () => {
 
 // 报告查看
 const handleReportView = (row: TableRow) => {
-    fetchGetAttachment(row.IMAGES)
+    fetchGetAttachment(row.REPORT)
 }
-const fetchGetAttachment = (IMAGES: string) => {
+const fetchGetAttachment = (REPORT: string) => {
     // getAttachment({report_code: code}).then(res => {
     //     res.data && dialogVisible(res.data)
     // })
-    dialogVisible(IMAGES)
+    dialogVisible(REPORT)
 }
-const goImageView = (STUDY_ID: string) => { //影像查看
-    window.open('http://aipacsview.pacsonline.cn/#/pc?studyurl=https%3A%2F%2Fquery.pacsonline.cn%2Fquery%2F%3Faddress%3D&study_id='+ STUDY_ID +'&node_type=1&node_type=1&version=V4.0.0.0')
+const goImageView = (row: TableRow) => { //影像查看
+    window.open( config.pacsview_url + row.STUDY_ID +'&node_type=&node_type=1&version=V1.2.0.0')
 }
 // 下载报告
 const handleDownload = () => {
@@ -466,6 +472,7 @@ const showFullContent = (row:any, type: string) => {
 .ba-table-box {
   background-color: var(--ba-bg-color-overlay);
   margin-top: var(--ba-main-space);
+  padding-bottom: 30px;
 }
 .ba-table-title {
   width: 18%;

+ 6 - 6
jcjyhr/web/src/views/backend/RecogView/index.vue

@@ -28,7 +28,7 @@
                       <div style="display: flex;">
                         <span class="label">检查项目:</span>
                         <!-- <span class="content">{{i.EXAM_REPORTS[index].EXAM_ITEMNAME}}</span> -->
-                        <span class="content" >{{i.EXAM_REPORTS.map((item: any) => item.EXAM_ITEMNAME).join(',')}}</span>
+                        <span class="content" >{{i.EXAM_REPORTS.map((item: any) => item.EXAM_ITEMNAME).filter((itemName:any) => itemName && itemName.trim() !== '').join(',')}}</span>
                       </div>
                       <div style="display: flex;">
                         <span class="label">检验项目:</span>
@@ -42,9 +42,9 @@
                     <div :class="{ active: index === activeIndex, 'anchor-item': true }" v-for="(item, index) in i.INSPECT_REPORTS" :key="index" @click="scrollToSection(index)">{{item.LAB_ITEMNAME}}</div>
                   </div>
                   <template v-for="(item, index1) in i.INSPECT_REPORTS" :key="index1">
-                    <Table :tableData="item" :hrrecords="i.HR_RECORDS" :medicalInformation="i.MEDICAL_INFORMATION" :patientCode="patientData.PATIENT_CODE" from="hrMyTable" :id="`anchor${index}`"/>
+                    <Table :tableData="item" :hrrecords="i.HR_RECORDS" :medicalInformation="i.MEDICAL_INFORMATION" :patientCode="patientData.PATIENT_CODE" from="hrMyInsTable" :id="`anchor${index}`"/>
                   </template>
-                  <Table :examTableData="i.EXAM_REPORTS" :hrrecords="i.HR_RECORDS" :medicalInformation="i.MEDICAL_INFORMATION" :patientCode="patientData.PATIENT_CODE" from="hrMyTable" />
+                  <Table :examTableData="i.EXAM_REPORTS" :hrrecords="i.HR_RECORDS" :medicalInformation="i.MEDICAL_INFORMATION" :patientCode="patientData.PATIENT_CODE" from="hrMyExamTable" />
                 </el-tab-pane>
               </el-tabs>
             </div>
@@ -76,7 +76,7 @@
           </el-dialog>
         </div>
         </el-scrollbar>
-        <div style="text-align: center;">
+        <div style="text-align: center;padding-top: 15px;">
           <el-button type="primary" :color="'var(--ba-vars-color-main-primary)'" @click="saveHr">保存互认</el-button>
         </div>
       </el-main>
@@ -88,7 +88,7 @@
 import { ref, onMounted, onUnmounted, nextTick, watch } from 'vue'
 import Basein from './components/basein.vue';
 import Table from './components/table.vue';
-import { getRecogViewDetail, saveRecogViewDetail, getNoHrReasonList } from '/@/api/backend/doctor'
+import { getRecogViewHrDetail, saveRecogViewDetail, getNoHrReasonList } from '/@/api/backend/doctor'
 import { provide } from 'vue';
 import { getFileType } from '/@/utils/common'
 import { useRoute } from 'vue-router'
@@ -116,7 +116,7 @@ const dialogVisibleFn = (IMAGES: string) => {
 provide('dialogVisible', dialogVisibleFn)
 const tableData = () => {
     const token = (route.query.token ?? '') as string
-    getRecogViewDetail({
+    getRecogViewHrDetail({
         TOKEN: token
     }).then((res)=> {
         console.log(res)

+ 17 - 10
jcjyhr/web/src/views/backend/ShareView/components/table.vue

@@ -15,6 +15,7 @@
             class="item"
             effect="dark"
             :content="localData.tableData.LAB_ITEMNAME?timeFormat(localData.tableData.REPORTTIME, 'yyyy.mm.dd hh:MM') + ' ' + localData.tableData.LAB_ITEMNAME:'检查项目'"
+            v-if="(props.from == 'hrMyInsTable' && localData.tableData.INSPECT_REPORT_ITEMS.length>0) || (props.from == 'hrMyExamTable' && localData.examTableData.length>0)"
             placement="top-start"
             >
             <div class="ba-table-title">{{localData.tableData.LAB_ITEMNAME?timeFormat(localData.tableData.REPORTTIME, 'yyyy.mm.dd hh:MM') + ' ' + localData.tableData.LAB_ITEMNAME:'检查项目'}}</div>
@@ -41,8 +42,8 @@
            </div>
         </el-tooltip>
         <!-- <el-button v-if="localData.tableData.LAB_ITEMNAME_TYPE_CODE !== '2'" type="primary" :color="'var(--ba-vars-color-main-primary)'" @click="handleCopy">复制</el-button> -->
-        <el-button v-if="localData.tableData.INSPECT_REPORT_ITEMS" type="primary" :color="'var(--ba-vars-color-main-primary)'" @click="handleReportView">查看报告</el-button>
-        <el-button v-if="localData.tableData.INSPECT_REPORT_ITEMS" type="primary" :color="'var(--ba-vars-color-main-primary)'" @click="handleDownload">下载报告</el-button>
+        <el-button v-if="localData.tableData.INSPECT_REPORT_ITEMS && localData.tableData.REPORT" type="primary" :color="'var(--ba-vars-color-main-primary)'" @click="handleReportView(localData.tableData)">查看报告</el-button>
+        <el-button v-if="localData.tableData.INSPECT_REPORT_ITEMS && localData.tableData.REPORT" type="primary" :color="'var(--ba-vars-color-main-primary)'" @click="handleDownload">下载报告</el-button>
       </div>
     </div>
     <el-table
@@ -151,10 +152,13 @@
       </el-table-column> -->
       <el-table-column label="检查报告/影像图片" min-width="120" align="center">
         <template #default="scope">
-          <el-button link type="primary" size="small" @click="handleReportView(scope.row)">
-            报告查看
+          <el-button v-if="scope.row.REPORT" link type="primary" size="small" @click="handleReportView(scope.row)">
+            查看报告 
           </el-button>
-          <el-button link type="primary" size="small" @click="goImageView(scope.row)">影像查看</el-button>
+          <el-button v-else link disabled size="small">暂无报告附件</el-button>
+
+          <el-button v-if="scope.row.STUDY_ID" link type="primary" size="small" @click="goImageView(scope.row)">影像查看</el-button>
+          <el-button v-else link disabled size="small">暂无影像关联</el-button>
         </template>
       </el-table-column>
     </el-table>
@@ -168,6 +172,7 @@ import { useI18n } from 'vue-i18n'
 import { timeFormat } from '/@/utils/common'
 import { Session } from '/@/utils/storage'
 import { ElMessage, ElMessageBox } from 'element-plus'
+import { config } from '/@/utils/config'
 import examReport from '/@/assets/examreport.png'
 const { t } = useI18n()
 const dialogVisible:any = inject('dialogVisible')
@@ -427,16 +432,17 @@ const handleCopy = async () => {
 
 // 报告查看
 const handleReportView = (row: TableRow) => {
-    fetchGetAttachment(row.IMAGES)
+    fetchGetAttachment(row.REPORT)
 }
-const fetchGetAttachment = (IMAGES: string) => {
+const fetchGetAttachment = (REPORT: string) => {
     // getAttachment({report_code: code}).then(res => {
     //     res.data && dialogVisible(res.data)
     // })
-    dialogVisible(IMAGES)
+    dialogVisible(REPORT)
 }
-const goImageView = (STUDY_ID: string) => { //影像查看
-    window.open('http://aipacsview.pacsonline.cn/#/pc?studyurl=https%3A%2F%2Fquery.pacsonline.cn%2Fquery%2F%3Faddress%3D&study_id='+ STUDY_ID +'&node_type=1&node_type=1&version=V4.0.0.0')
+const goImageView = (row: TableRow) => { //影像查看
+    window.open( config.pacsview_url+ row.STUDY_ID +'&node_type=&node_type=1&version=V1.2.0.0')
+
 }
 // 下载报告
 const handleDownload = () => {
@@ -466,6 +472,7 @@ const showFullContent = (row:any, type: string) => {
 .ba-table-box {
   background-color: var(--ba-bg-color-overlay);
   margin-top: var(--ba-main-space);
+  padding-bottom: 30px;
 }
 .ba-table-title {
   width: 18%;

+ 6 - 6
jcjyhr/web/src/views/backend/ShareView/index.vue

@@ -28,7 +28,7 @@
                       <div style="display: flex;">
                         <span class="label">检查项目:</span>
                         <!-- <span class="content">{{i.EXAM_REPORTS[index].EXAM_ITEMNAME}}</span> -->
-                        <span class="content" >{{i.EXAM_REPORTS.map((item: any) => item.EXAM_ITEMNAME).join(',')}}</span>
+                        <span class="content" >{{i.EXAM_REPORTS.map((item: any) => item.EXAM_ITEMNAME).filter((itemName:any) => itemName && itemName.trim() !== '').join(',')}}</span>
                       </div>
                       <div style="display: flex;">
                         <span class="label">检验项目:</span>
@@ -42,9 +42,9 @@
                     <div :class="{ active: index === activeIndex, 'anchor-item': true }" v-for="(item, index) in i.INSPECT_REPORTS" :key="index" @click="scrollToSection(index)">{{item.LAB_ITEMNAME}}</div>
                   </div>
                   <template v-for="(item, index1) in i.INSPECT_REPORTS" :key="index1">
-                    <Table :tableData="item" :hrrecords="i.HR_RECORDS" :medicalInformation="i.MEDICAL_INFORMATION" :patientCode="patientData.PATIENT_CODE" from="hrMyTable" :id="`anchor${index}`"/>
+                    <Table :tableData="item" :hrrecords="i.HR_RECORDS" :medicalInformation="i.MEDICAL_INFORMATION" :patientCode="patientData.PATIENT_CODE" from="hrMyInsTable" :id="`anchor${index}`"/>
                   </template>
-                  <Table :examTableData="i.EXAM_REPORTS" :hrrecords="i.HR_RECORDS" :medicalInformation="i.MEDICAL_INFORMATION" :patientCode="patientData.PATIENT_CODE" from="hrMyTable" />
+                  <Table :examTableData="i.EXAM_REPORTS" :hrrecords="i.HR_RECORDS" :medicalInformation="i.MEDICAL_INFORMATION" :patientCode="patientData.PATIENT_CODE" from="hrMyExamTable" />
                 </el-tab-pane>
               </el-tabs>
             </div>
@@ -76,7 +76,7 @@
           </el-dialog>
         </div>
         </el-scrollbar>
-        <!-- <div style="text-align: center;">
+        <!-- <div style="text-align: center;padding-top: 15px;">
           <el-button type="primary" :color="'var(--ba-vars-color-main-primary)'" @click="saveHr">保存互认</el-button>
         </div> -->
       </el-main>
@@ -88,7 +88,7 @@
 import { ref, onMounted, onUnmounted, nextTick, watch } from 'vue'
 import Basein from './components/basein.vue';
 import Table from './components/table.vue';
-import { getRecogViewHrDetail, saveRecogViewDetail, getNoHrReasonList } from '/@/api/backend/doctor'
+import { getRecogViewDetail, saveRecogViewDetail, getNoHrReasonList } from '/@/api/backend/doctor'
 import { provide } from 'vue';
 import { getFileType } from '/@/utils/common'
 import { useRoute } from 'vue-router'
@@ -116,7 +116,7 @@ const dialogVisibleFn = (IMAGES: string) => {
 provide('dialogVisible', dialogVisibleFn)
 const tableData = () => {
     const token = (route.query.token ?? '') as string
-    getRecogViewHrDetail({
+    getRecogViewDetail({
         TOKEN: token
     }).then((res)=> {
         console.log(res)