Browse Source

浏览器ip配置及外端医生端互认页面优化

luyun 1 month ago
parent
commit
77b0e6ee82

+ 45 - 1
jcjyhr/web/src/utils/config.ts

@@ -1,3 +1,47 @@
+function isInternalNetwork() {
+    // 获取当前主机名或IP
+    const hostname = window.location.hostname;
+    // 内网常见IP地址段
+    const internalIPs = [
+        /^10\./,        // 10.0.0.0 - 10.255.255.255
+        /^172\.(1[6-9]|2[0-9]|3[0-1])\./, // 172.16.0.0 - 172.31.255.255
+        /^192\.168\./,  // 192.168.0.0 - 192.168.255.255
+        /^127\./,       // 127.0.0.0 - 127.255.255.255
+        /^localhost$/,
+        /^::1$/,
+        /^fc00::/,
+        /^fe80::/
+    ];
+  
+    // 检查是否是内网IP
+    return internalIPs.some(regex => regex.test(hostname));
+}
+const getIp = () => {
+    const ip = /\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}/;
+    const url = window.location.href;
+    const res = ip.exec(url) || [null];
+    return res[0];
+};
+const ip = getIp();
+const protocol = window.location.protocol
+const pacsview_port = "9603"; //浏览器端口
+const pacsview_new_url = ip
+    ? `http://${ip}:${pacsview_port}`
+    : protocol + "//aipacsview.pacsonline.cn"
+const request_url = ip
+    ? `http://${ip}:${pacsview_port}`
+    : protocol + "//query.pacsonline.cn"
+const dcm_url = ip ? `${ip}:${pacsview_port}` : ""
+
+// console.log(isInternalNetwork() ? "内网" : "外网");
+// 10.200.199.136:9603 内网
+// const  baseUrl = isInternalNetwork() ? "10.200.199.136:9603" : "111.53.165.4:9603"
+// const baseUrl = import.meta.env.VITE_AXIOS_BASE_URL
+// const port = '9603'
+// const baseUrlHost = window.location.hostname + ':' + port;
+// export const studyNewBaseUrl = `${pacsview_new_url}/#/pc?studyurl=${request_url}/query/?address=${dcm_url}/downdcm&study_id=`;
 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='
+    // pacsview_url: 'http://'+ baseUrl +'/#/pc?studyurl=http%3A%2F%2F'+ baseUrl +'%2Fquery%2F%3Faddress%3D'+ baseUrl +'%2Fdowndcm&study_id='
+    pacsview_url: `${pacsview_new_url}/#/pc?studyurl=${request_url}/query/?address=${dcm_url}/downdcm&study_id=`
+    // pacsview_url: baseUrl +'/#/pc?studyurl='+ baseUrl +'%2Fquery%2F%3Faddress%3D'+ baseUrl +'%2Fdowndcm&study_id='
 }

+ 16 - 8
jcjyhr/web/src/views/backend/RecogView/components/table.vue

@@ -23,7 +23,7 @@
           </el-tooltip>
           <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'" >
+        <div v-if="switchType(localData.tableData.LAB_ITEMNAME_TYPE_CODE) == '2'" >
           <p>鉴定结果: {{localData.tableData.INSPECT_REPORT_ITEMS[0].LAB_ITEMDETAILINTERPRETATION}}</p>
           <p>药敏结果:{{localData.tableData.INSPECT_REPORT_ITEMS[0].LAB_ITEMDETAILINTERPRETATION_BIA}}</p>
         </div>
@@ -35,21 +35,21 @@
           effect="dark"
           :content="localData.tableData.BHR_REASON?localData.tableData.BHR_REASON:initCascaderContent(localData.tableData.HR_STATUS)"
           placement="top-start"
-          v-if="(localData.tableData.LAB_ITEMNAME_TYPE_CODE == '1' && localData.tableData.LAB_HR_ITEMLNAME_CODE) || localData.tableData.LAB_ITEMNAME_TYPE_CODE == '2'"
+          v-if="(switchType(localData.tableData.LAB_ITEMNAME_TYPE_CODE) == '1' && localData.tableData.LAB_HR_ITEMLNAME_CODE) || switchType(localData.tableData.LAB_ITEMNAME_TYPE_CODE) == '2'"
         >
           <!-- <el-button>1212</el-button> -->
            <div class="hr-select-box">
             <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' && (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="switchType(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
         class="ba-data-table w100"
-        v-if="localData.tableData.LAB_ITEMNAME_TYPE_CODE == '1'" 
+        v-if="switchType(localData.tableData.LAB_ITEMNAME_TYPE_CODE) == '1'" 
         :data="localData.tableData.INSPECT_REPORT_ITEMS" 
         header-cell-class-name="table-header-cell" 
         stripe
@@ -89,7 +89,7 @@
       </el-table-column>
       
     </el-table>
-    <div v-if="localData.tableData.LAB_ITEMNAME_TYPE_CODE == '2'">
+    <div v-if="switchType(localData.tableData.LAB_ITEMNAME_TYPE_CODE) == '2'">
       <el-table
         class="ba-data-table w100"
         :data="localData.tableData.INSPECT_REPORT_ITEMS" 
@@ -230,7 +230,15 @@ const getChangeCascaderContent = (value:any, options:any, arr = []) => {
     });
     return arr.join('/');
 }
+const switchType = (code: string) => {
+    if(code && code !== '11'){
+        return '1'
+    }else if(code && code === '11') {
+        return '2'
+    }
+}
 const checkData = () => {  //检验细项 是否展示互认结果列 (大项不存在互认项目编码)
+    console.log(localData.tableData.INSPECT_REPORT_ITEMS )
     const hasCode = localData.tableData.INSPECT_REPORT_ITEMS.some((item: any) => !localData.tableData.LAB_HR_ITEMLNAME_CODE && item.LAB_HR_ITEMDETAILNAME_CODE);
     return hasCode
 }
@@ -254,7 +262,7 @@ const localData = reactive<{
     examTableData: props.examTableData
 });
 const formatTableData = () => {
-    if(localData.tableData && localData.tableData.LAB_ITEMNAME_TYPE_CODE == '2' && props.hrrecords){ //微生物
+    if(localData.tableData && switchType(localData.tableData.LAB_ITEMNAME_TYPE_CODE) == '2' && props.hrrecords){ //微生物
         const findMatchingItem = props.hrrecords.find((it: { ITEMNAMECODE: string; }) => it.ITEMNAMECODE === localData.tableData.LAB_HR_ITEMLNAME_CODE);
         localData.tableData = {
             ...localData.tableData,
@@ -262,7 +270,7 @@ const formatTableData = () => {
             BHR_REASON: findMatchingItem?(findMatchingItem.BHR_REASON ? findMatchingItem.BHR_REASON: initCascaderContent(findMatchingItem?.HR_STATUS)): initCascaderContent(findMatchingItem?.HR_STATUS),
             cascaderValue: findMatchingItem?(findMatchingItem.BHR_CODE ? [findMatchingItem.HR_STATUS,findMatchingItem.BHR_CODE]:[findMatchingItem.HR_STATUS]):['0']
         }
-    }else if(localData.tableData && localData.tableData.LAB_ITEMNAME_TYPE_CODE == '1' && props.hrrecords){
+    }else if(localData.tableData && switchType(localData.tableData.LAB_ITEMNAME_TYPE_CODE) == '1' && props.hrrecords){
         const INSPECTREPORTITEMS = localData.tableData.INSPECT_REPORT_ITEMS.map((item: any) => {
             const findMatchingItem = props.hrrecords.find((it: { ITEMNAMECODE: string; }) => it.ITEMNAMECODE === item.LAB_ITEMDETAILNAME_CODE);
             return {
@@ -308,7 +316,7 @@ const onChangeField = (row: TableRow[], index: any, oragin: number) => { // 检
     clickOragin.value = oragin
     currentRow.value = row
     // LAB_ITEMNAME_TYPE_CODE == '1'是检验项目  2是检验项目-微生物
-    if((localData.tableData.LAB_ITEMNAME_TYPE_CODE == '1' && localData.tableData.LAB_HR_ITEMLNAME_CODE) || localData.tableData.LAB_ITEMNAME_TYPE_CODE == '2'){// 大项 检验项目编码存在 或者 微生物
+    if((switchType(localData.tableData.LAB_ITEMNAME_TYPE_CODE) == '1' && localData.tableData.LAB_HR_ITEMLNAME_CODE) || switchType(localData.tableData.LAB_ITEMNAME_TYPE_CODE) == '2'){// 大项 检验项目编码存在 或者 微生物
         const hrRecords = Session.get('HR_RECORDS')
         const isNameCode = hrRecords && hrRecords.some((item:any) => item.ITEMNAMECODE == localData.tableData.LAB_ITEMNAME_CODE)
         if(hrRecords && isNameCode){

+ 14 - 7
jcjyhr/web/src/views/backend/ShareView/components/table.vue

@@ -22,7 +22,7 @@
           </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>
         </div>
-        <div v-if="localData.tableData.LAB_ITEMNAME_TYPE_CODE == '2'" >
+        <div v-if="switchType(localData.tableData.LAB_ITEMNAME_TYPE_CODE) == '2'" >
           <p>鉴定结果: {{localData.tableData.INSPECT_REPORT_ITEMS[0].LAB_ITEMDETAILINTERPRETATION}}</p>
           <p>药敏结果:{{localData.tableData.INSPECT_REPORT_ITEMS[0].LAB_ITEMDETAILINTERPRETATION_BIA}}</p>
         </div>
@@ -34,7 +34,7 @@
           effect="dark"
           :content="localData.tableData.BHR_REASON?localData.tableData.BHR_REASON:initCascaderContent(localData.tableData.HR_STATUS)"
           placement="top-start"
-          v-if="(localData.tableData.LAB_ITEMNAME_TYPE_CODE == '1' && localData.tableData.LAB_HR_ITEMLNAME_CODE) || localData.tableData.LAB_ITEMNAME_TYPE_CODE == '2'"
+          v-if="(switchType(localData.tableData.LAB_ITEMNAME_TYPE_CODE) == '1' && localData.tableData.LAB_HR_ITEMLNAME_CODE) || switchType(localData.tableData.LAB_ITEMNAME_TYPE_CODE) == '2'"
         >
           <!-- <el-button>1212</el-button> -->
            <div class="hr-select-box">
@@ -48,7 +48,7 @@
     </div>
     <el-table
         class="ba-data-table w100"
-        v-if="localData.tableData.LAB_ITEMNAME_TYPE_CODE == '1'" 
+        v-if="switchType(localData.tableData.LAB_ITEMNAME_TYPE_CODE) == '1'" 
         :data="localData.tableData.INSPECT_REPORT_ITEMS" 
         header-cell-class-name="table-header-cell" 
         stripe
@@ -88,7 +88,7 @@
       </el-table-column> -->
       
     </el-table>
-    <div v-if="localData.tableData.LAB_ITEMNAME_TYPE_CODE == '2'">
+    <div v-if="switchType(localData.tableData.LAB_ITEMNAME_TYPE_CODE) == '2'">
       <el-table
         class="ba-data-table w100"
         :data="localData.tableData.INSPECT_REPORT_ITEMS" 
@@ -229,6 +229,13 @@ const getChangeCascaderContent = (value:any, options:any, arr = []) => {
     });
     return arr.join('/');
 }
+const switchType = (code: string) => {
+    if(code && code !== '11'){
+        return '1'
+    }else if(code && code === '11') {
+        return '2'
+    }
+}
 const checkData = () => {  //检验细项 是否展示互认结果列 (大项不存在互认项目编码)
     const hasCode = localData.tableData.INSPECT_REPORT_ITEMS.some((item: any) => !localData.tableData.LAB_HR_ITEMLNAME_CODE && item.LAB_HR_ITEMDETAILNAME_CODE);
     return hasCode
@@ -253,7 +260,7 @@ const localData = reactive<{
     examTableData: props.examTableData
 });
 const formatTableData = () => {
-    if(localData.tableData && localData.tableData.LAB_ITEMNAME_TYPE_CODE == '2' && props.hrrecords){ //微生物
+    if(localData.tableData && switchType(localData.tableData.LAB_ITEMNAME_TYPE_CODE) == '2' && props.hrrecords){ //微生物
         const findMatchingItem = props.hrrecords.find((it: { ITEMNAMECODE: string; }) => it.ITEMNAMECODE === localData.tableData.LAB_HR_ITEMLNAME_CODE);
         localData.tableData = {
             ...localData.tableData,
@@ -261,7 +268,7 @@ const formatTableData = () => {
             BHR_REASON: findMatchingItem?(findMatchingItem.BHR_REASON ? findMatchingItem.BHR_REASON: initCascaderContent(findMatchingItem?.HR_STATUS)): initCascaderContent(findMatchingItem?.HR_STATUS),
             cascaderValue: findMatchingItem?(findMatchingItem.BHR_CODE ? [findMatchingItem.HR_STATUS,findMatchingItem.BHR_CODE]:[findMatchingItem.HR_STATUS]):['0']
         }
-    }else if(localData.tableData && localData.tableData.LAB_ITEMNAME_TYPE_CODE == '1' && props.hrrecords){
+    }else if(localData.tableData && switchType(localData.tableData.LAB_ITEMNAME_TYPE_CODE) == '1' && props.hrrecords){
         const INSPECTREPORTITEMS = localData.tableData.INSPECT_REPORT_ITEMS.map((item: any) => {
             const findMatchingItem = props.hrrecords.find((it: { ITEMNAMECODE: string; }) => it.ITEMNAMECODE === item.LAB_ITEMDETAILNAME_CODE);
             return {
@@ -307,7 +314,7 @@ const onChangeField = (row: TableRow[], index: any, oragin: number) => { // 检
     clickOragin.value = oragin
     currentRow.value = row
     // LAB_ITEMNAME_TYPE_CODE == '1'是检验项目  2是检验项目-微生物
-    if((localData.tableData.LAB_ITEMNAME_TYPE_CODE == '1' && localData.tableData.LAB_HR_ITEMLNAME_CODE) || localData.tableData.LAB_ITEMNAME_TYPE_CODE == '2'){// 大项 检验项目编码存在 或者 微生物
+    if((switchType(localData.tableData.LAB_ITEMNAME_TYPE_CODE) == '1' && localData.tableData.LAB_HR_ITEMLNAME_CODE) || switchType(localData.tableData.LAB_ITEMNAME_TYPE_CODE) == '2'){// 大项 检验项目编码存在 或者 微生物
         const hrRecords = Session.get('HR_RECORDS')
         const isNameCode = hrRecords && hrRecords.some((item:any) => item.ITEMNAMECODE == localData.tableData.LAB_ITEMNAME_CODE)
         if(hrRecords && isNameCode){