4 changed files with 868 additions and 383 deletions
-
2src/components/doctorCheck/PacsDcmList.vue
-
708src/components/doctorCheck/PacsImgPreview.vue
-
537src/components/patientRegister/PatientRegisterList.vue
-
4src/views/doctorCheck/doctorCheck.vue
@ -0,0 +1,708 @@ |
|||
<template> |
|||
<div style="display: flex;"> |
|||
<div :style="`overflow-y: scroll;width:140px;height:${window.pageHeight - 195}px`"> |
|||
<div v-for="(item, index) in checkPictures" :key="item.id" |
|||
style="display: inline-block; padding: 0 0 0 2px"> |
|||
<div style=" |
|||
position: relative; |
|||
font-size: 24px; |
|||
margin: -6px 0 0 55px; |
|||
height: 30px; |
|||
z-index: 2; |
|||
"> |
|||
<el-tooltip content="删除该图" placement="bottom" effect="light"> |
|||
<i class="el-icon-close" @click="btnDelImage(index)" v-show="!doctorBtnDisabled('btnDelImage')" |
|||
style="color: red; cursor: pointer"></i> |
|||
</el-tooltip> |
|||
</div> |
|||
<div style="margin-top: -25px"> |
|||
<el-image style="width: 120px; height: 120px; border-radius: 5px" :src="imageFilePlus(item.pictureFilename)" |
|||
@click="imgClick(item)"> |
|||
</el-image> |
|||
</div> |
|||
<div style="display: flex;margin-bottom: 10px;"> |
|||
<div style="margin: -6px 2px 0 1px"> |
|||
<el-tooltip content="是否打印" placement="bottom" effect="light"> |
|||
<el-checkbox v-model="item.isPrintTrans" @change="btnSavePic" |
|||
:disabled="doctorBtnDisabled('btnSavePic')"></el-checkbox> |
|||
</el-tooltip> |
|||
</div> |
|||
<div style="font-size: 12px; margin: -2px 0 0 1px">打印</div> |
|||
<div style="font-size: 15px; margin: -5px 2px 0 2px"> |
|||
<el-tooltip content="保存后,图片将按序号从小到大排序" placement="bottom" effect="light"> |
|||
<input placeholder="排序" v-model="item.displayOrder" @onkeyup="validateInteger(e, index)" |
|||
style="width: 30px" :disabled="doctorBtnDisabled('btnSavePic')" /> |
|||
</el-tooltip> |
|||
</div> |
|||
<div style="margin: -6px 0 0 2px"> |
|||
<el-tooltip content="是否报告图片" placement="bottom" effect="light"> |
|||
<el-checkbox v-model="item.pictureFileType" @change="btnSavePic" true-label="1" false-label="0" |
|||
:disabled="doctorBtnDisabled('btnSavePic')"></el-checkbox> |
|||
</el-tooltip> |
|||
</div> |
|||
<div style="font-size: 12px; margin: -2px 0 0 1px">报告</div> |
|||
</div> |
|||
</div> |
|||
|
|||
</div> |
|||
<div :style="`width: ${window.pageWidth - 470}px;`"> |
|||
<el-image :src="imageFile" :preview-src-list="previewSrcLists" |
|||
:style="`overflow-y: auto;max-width: ${window.pageWidth - 470}px;height: auto;`"></el-image> |
|||
</div> |
|||
</div> |
|||
</template> |
|||
<script> |
|||
import moment from "moment"; |
|||
import { mapState } from "vuex"; |
|||
import { Loading } from "element-ui"; |
|||
import { getapi, postapi, putapi, deletapi } from "@/api/api"; |
|||
import { getPagePriv, checkPagePriv, deepCopy, arrayExistObj } from "../../utlis/proFunc"; |
|||
import { hadoopGet, hadoopPost, hadoopPut, hadoopDel } from "../../api/hadoopApi" |
|||
import CheckPictureUpload from "./CheckPictureUpload.vue"; |
|||
import PacsTemplate from "./PacsTemplate.vue"; |
|||
import PacsCutPic from "./PacsCutPic.vue"; |
|||
|
|||
export default { |
|||
components: { |
|||
CheckPictureUpload, PacsTemplate, PacsCutPic |
|||
}, |
|||
props: ["doctorBtnDisabled", "save"], |
|||
data() { |
|||
return { |
|||
sysConfig: {}, // |
|||
pagePriv: { |
|||
routeUrlorPageName: 'doctorCheck', //当前页面归属路由或归属页面权限名称 |
|||
privs: [] // 页面权限 |
|||
}, |
|||
|
|||
checkRequestNo: '', |
|||
dialogDcm: false, |
|||
iframeSrc: '', |
|||
pacsParams: { |
|||
from: 'dcm', |
|||
refresh: -1, |
|||
row: {}, |
|||
index: 0, |
|||
result: '', |
|||
summary: '' |
|||
}, |
|||
tabPosition: 'top', |
|||
tabChoosed: "0", |
|||
|
|||
checkPictures: [ |
|||
// { |
|||
// id: "1", |
|||
// registerCheckId: "registerCheckId", |
|||
// isPrint: "Y", |
|||
// isPrintTrans: true, |
|||
// pictureFilename: |
|||
// "https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg", |
|||
// }, |
|||
// { |
|||
// id: "2", |
|||
// registerCheckId: "registerCheckId", |
|||
// isPrint: "Y", |
|||
// isPrintTrans: true, |
|||
// pictureFilename: |
|||
// "https://fuss10.elemecdn.com/1/8e/aeffeb4de74e2fde4bd74fc7b4486jpeg.jpeg", |
|||
// }, |
|||
], |
|||
//图片上传 |
|||
dialogCheckPictureUpload: false, |
|||
uploadSeq: 0, //第几次点图片上传,每点一次清空前次所选图片 |
|||
// 裁图 |
|||
dialogWinCutPic: false, |
|||
cutPicParam: {}, |
|||
pictureFileType: '1', |
|||
imageFile:"", |
|||
previewSrcLists:[], |
|||
}; |
|||
}, |
|||
|
|||
created() { |
|||
//获取用户当前页面的权限 |
|||
let userPriv = window.sessionStorage.getItem('userPriv') |
|||
if (userPriv) this.pagePriv.privs = deepCopy(getPagePriv(this.pagePriv.routeUrlorPageName)) |
|||
this.sysConfig = JSON.parse(window.sessionStorage.getItem('sysConfig')) |
|||
// console.log('this.sysConfig checkPictures', this.sysConfig) |
|||
|
|||
}, |
|||
|
|||
//挂载完成 |
|||
mounted() { |
|||
this.getCheckPictures(this.dataTransOpts.tableS.register_check.id); |
|||
}, |
|||
|
|||
computed: { |
|||
...mapState([ |
|||
"window", |
|||
"dict", |
|||
"dialogWin", |
|||
"dataTransOpts", |
|||
"doctorCheck", |
|||
"patientRegister", |
|||
"customerOrg" |
|||
]), |
|||
lmoment(date, forMat) { |
|||
return moment(new Date(date)).format(forMat); |
|||
}, |
|||
}, |
|||
methods: { |
|||
checkPagePriv, |
|||
// 根据checkId获取图片列表信息 |
|||
getCheckPictures(registerCheckId) { |
|||
this.checkPictures = []; |
|||
if (!registerCheckId) { |
|||
return; |
|||
} |
|||
// { |
|||
// "registerCheckId": "3a0f6a3c-88a5-d5f7-d59b-ef3b3807490b", |
|||
// "pictureFilename": "https://fuss10.elemecdn.com/8/27/f01c15bb73e1ef3793e64e6b7bbccjpeg.jpeg", |
|||
// "isPrint": "N", |
|||
// "displayOrder": 1, |
|||
// "creatorName": "admin", |
|||
// "lastModifierName": "admin", |
|||
// "lastModificationTime": "2023-12-15T15:24:08", |
|||
// "lastModifierId": "3a0c4180-107c-0c89-b25b-0bd34666dcec", |
|||
// "creationTime": "2023-12-15T15:24:06", |
|||
// "creatorId": "3a0c4180-107c-0c89-b25b-0bd34666dcec", |
|||
// "id": "3a0f6a3c-88a5-d5f7-d59b-ef3b38074901" |
|||
// } |
|||
hadoopGet('pacsApi', `/api/app/registercheckpicture/getregistercheckpictureinregistercheckid?RegisterCheckId=${registerCheckId}`) |
|||
// getapi(`/api/app/registercheckpicture/getregistercheckpictureinregistercheckid?RegisterCheckId=${registerCheckId}`) |
|||
.then((res) => { |
|||
if (res.code > -1) { |
|||
this.checkPictures = res.data |
|||
this.checkPictures.forEach(e => { |
|||
e.isPrintTrans = e.isPrint == "Y" ? true : false |
|||
}); |
|||
} |
|||
}); |
|||
}, |
|||
|
|||
imgClick(item){ |
|||
this.imageFile = this.imageFilePlus(item.pictureFilename) |
|||
this.previewSrcLists = this.previewSrcList(this.checkPictures, item) |
|||
}, |
|||
|
|||
// 生成 图片预览列表 |
|||
previewSrcList(oriList, curImag) { |
|||
let srcList = [] |
|||
let image = curImag.pictureFilename.indexOf('http') > -1 |
|||
? curImag.pictureFilename |
|||
: (this.sysConfig.pacsApi || this.sysConfig.apiurl) + curImag.pictureFilename; |
|||
srcList.push(image) |
|||
let lfind = arrayExistObj(oriList, 'id', curImag.id) |
|||
if (lfind > -1) { |
|||
for (let i = lfind + 1; i < oriList.length; i++) { |
|||
let e = oriList[i]; |
|||
image = this.imageFilePlus(e.pictureFilename) |
|||
srcList.push(image) |
|||
} |
|||
for (let index = 0; index < lfind; index++) { |
|||
let e = oriList[index]; |
|||
image = this.imageFilePlus(e.pictureFilename) |
|||
srcList.push(image) |
|||
} |
|||
} |
|||
return srcList |
|||
}, |
|||
|
|||
//删除小结 |
|||
delSum(index) { |
|||
this.$confirm("此操作将删除该记录, 是否继续?", "提示", { |
|||
confirmButtonText: "是", |
|||
cancelButtonText: "否", |
|||
type: "warning", |
|||
}).then(() => { |
|||
this.doctorCheck.checkSummaryList.splice(index, 1); |
|||
}).catch(err => { |
|||
if (err == "cancel") { |
|||
// this.$message.info("已取消删除"); |
|||
console.log('已取消删除') |
|||
} |
|||
}); |
|||
}, |
|||
|
|||
// 图片文件补全路径 |
|||
imageFilePlus(fileName) { |
|||
if (fileName.indexOf('base64') > -1 || fileName.indexOf('http') > -1) { |
|||
return fileName |
|||
} else { |
|||
return (this.sysConfig.pacsApi || this.sysConfig.apiurl) + fileName |
|||
} |
|||
}, |
|||
|
|||
// 采图 |
|||
btnGetPic() { |
|||
if (!this.doctorCheck.RegisterCheckId) { |
|||
this.$message.warning({ showClose: true, message: "未选中组合项目!" }); |
|||
return; |
|||
} |
|||
if (!this.$peisAPI) { |
|||
this.$message.info({ showClose: true, message: "此功能,需要在壳客户端才可运行!" }) |
|||
return |
|||
} |
|||
|
|||
let toOutShell = { |
|||
barCode: this.doctorCheck.checkRequestNo, |
|||
patientName: this.dataTransOpts.tableS.patient_register.patientName, |
|||
sexName: this.dataTransOpts.tableS.patient_register.sexName, |
|||
age: (this.dataTransOpts.tableS.patient_register.age || '') + '', |
|||
asbitemName: this.doctorCheck.asbitemName |
|||
} |
|||
// console.log('this.$peisAPI.imageAcquisition', JSON.stringify(toOutShell)) |
|||
|
|||
let loading = Loading.service({ |
|||
lock: true, |
|||
text: "正在加载中,请稍后", |
|||
spinner: "el-icon-loading", |
|||
background: "rgba(0, 0, 0, 0)", |
|||
customClass: "boxStyle" |
|||
}); |
|||
|
|||
this.$peisAPI.imageAcquisition(JSON.stringify(toOutShell)) |
|||
.then(async (res) => { |
|||
let lres = JSON.parse(res) |
|||
console.log('this.$peisAPI.imageAcquisition', lres) |
|||
if (lres.code > -1) { |
|||
for (let i = 0; i < lres.data.length; i++) { |
|||
let item = lres.data[i]; |
|||
|
|||
// FilePath: |
|||
// Image |
|||
// ImageFormat |
|||
let baseHead = 'data:image/jpeg;base64,' |
|||
switch (item.ImageFormat) { |
|||
case 'png': |
|||
case 'bmp': |
|||
baseHead = `data:image/${item.ImageFormat};base64,` |
|||
break; |
|||
default: |
|||
break; |
|||
} |
|||
this.checkPictures.push({ pictureFilename: baseHead + item.Image }) |
|||
let fileName = item.FilePath |
|||
let dotIndex = fileName.lastIndexOf('\\'); |
|||
if (dotIndex > -1) fileName = fileName.substring(dotIndex, fileName.length); |
|||
|
|||
let body = { |
|||
registerCheckId: this.dataTransOpts.tableS.register_check.id, |
|||
pictureBaseStrs: [{ |
|||
fileName, |
|||
localPathName: item.FilePath, |
|||
pictureBaseStr: baseHead + item.Image |
|||
}], |
|||
pictureFileType: '0' //采图暂定图0,上传暂定报告1 this.pictureFileType |
|||
} |
|||
try { |
|||
//await postapi('/api/app/RegisterCheckPicture/InstrumentMapping', body) |
|||
await hadoopPost('pacsApi', '/api/app/RegisterCheckPicture/InstrumentMapping', body) |
|||
} catch (error) { |
|||
console.log('btnGetPic err', error) |
|||
} |
|||
} |
|||
this.getCheckPictures(this.dataTransOpts.tableS.register_check.id) |
|||
} else { |
|||
console.log('this.$peisAPI.imageAcquisition', lres.message) |
|||
} |
|||
}).catch(err => { |
|||
this.$message.error(err) |
|||
}).finally(() => { |
|||
loading.close() |
|||
}); |
|||
|
|||
}, |
|||
|
|||
// 显示tab标签名称,过长处理 |
|||
dispLabel(itemName) { |
|||
return itemName.length > 5 ? (itemName.substring(0, 4) + "…") : itemName |
|||
}, |
|||
|
|||
// 清除结果 |
|||
btnClear(seq) { |
|||
if (this.doctorBtnDisabled('save')) { |
|||
this.$message.warning({ showClose: true, message: "已保存,不可操作!" }) |
|||
return |
|||
} |
|||
this.doctorCheck.checkItemList[seq].result = '' |
|||
}, |
|||
|
|||
// 默认结果 |
|||
btnDefResult(seq) { |
|||
if (this.doctorBtnDisabled('save')) { |
|||
this.$message.warning({ showClose: true, message: "已保存,不可操作!" }) |
|||
return |
|||
} |
|||
this.doctorCheck.checkItemList[seq].result = this.doctorCheck.checkItemList[seq].defaultResult |
|||
}, |
|||
|
|||
// 浏览Dcm文件 |
|||
btnBrowseDcm() { |
|||
this.checkRequestNo = this.doctorCheck.checkRequestNo |
|||
this.pacsParams.result = this.doctorCheck.checkItemList[0].result |
|||
let summary = '' |
|||
this.doctorCheck.checkSummaryList.forEach(e => { |
|||
summary += e.summary |
|||
}); |
|||
this.pacsParams.summary = summary |
|||
this.pacsParams.row = deepCopy(this.doctorCheck.checkItemList[0]) |
|||
this.pacsParams.index = 0 |
|||
this.pacsParams.refresh++ |
|||
|
|||
// console.log('pacsParams', this.pacsParams) |
|||
let token = window.sessionStorage.getItem('token') |
|||
this.iframeSrc = `${this.sysConfig.dcmViewers}/?mrn=${this.doctorCheck.checkRequestNo}&token=${token}&pacsapi=${this.sysConfig.pacsApiHttps}` |
|||
// this.iframeSrc = `${this.sysConfig.dcmViewers}/viewer?StudyInstanceUIDs=1.3.12.2.1107.5.1.4.79623.30000024091203062645300000022` |
|||
this.tabPosition = this.doctorCheck.checkItemList.length > 2 ? 'left' : 'top' |
|||
this.tabChoosed = "0" |
|||
this.dialogDcm = true |
|||
|
|||
}, |
|||
|
|||
// 选择描述与结论 |
|||
btnChooseBigtext() { |
|||
// console.log('this.pacsParams', this.pacsParams) |
|||
this.pacsParams.index = parseInt(this.tabChoosed) |
|||
this.pacsParams.refresh++ |
|||
this.dialogWin.PacsTemplate = true |
|||
}, |
|||
|
|||
// 确定描述与结论 |
|||
btnOkBigtext() { |
|||
console.log('this.pacsParams', this.pacsParams) |
|||
// this.doctorCheck.checkItemList[0].result = this.pacsParams.result |
|||
/* |
|||
this.doctorCheck.checkSummaryList = [{ |
|||
id: Math.random(), |
|||
registerCheckId: this.doctorCheck.RegisterCheckEdit.id, |
|||
summary: this.pacsParams.summary, |
|||
summaryFlag: 'N', |
|||
}] |
|||
*/ |
|||
if (this.doctorCheck.checkSummaryList.length == 0) { |
|||
this.$message.warning({ showClose: true, message: "请填写检查结论" }) |
|||
return |
|||
} |
|||
this.save() |
|||
|
|||
this.dialogDcm = false |
|||
}, |
|||
|
|||
// 处理 pacs 结果录入的情况 |
|||
handlePacsResult(row, index, pacsResult) { |
|||
Object.assign(this.pacsParams, pacsResult) |
|||
}, |
|||
|
|||
// 浏览Dcm文件 |
|||
btnBrowseDcmBak() { |
|||
if (!this.doctorCheck.RegisterCheckId) { |
|||
this.$message.warning({ showClose: true, message: "未选中组合项目!" }); |
|||
return; |
|||
} |
|||
|
|||
// 创建一个新的 <a> 元素 |
|||
let a = document.createElement('a'); |
|||
|
|||
// 设置 href 属性为要跳转的 URL |
|||
a.href = `${this.sysConfig.dcmViewers}/?mrn=24071610696`; |
|||
|
|||
//(可选)设置 target 属性,比如在新窗口打开 |
|||
a.target = '_blank'; |
|||
|
|||
//(可选)防止浏览器将链接添加到历史记录 |
|||
a.rel = 'noopener noreferrer'; |
|||
|
|||
// 将新创建的 <a> 元素添加到 DOM 中 |
|||
// 注意:这一步是可选的,如果你只想模拟点击而不想在页面上显示 <a> 元素,可以省略这一步 |
|||
// document.body.appendChild(a); |
|||
|
|||
// 模拟点击 <a> 元素 |
|||
a.click(); |
|||
|
|||
//(可选)移除刚才添加到 DOM 中的 <a> 元素 |
|||
// 如果你选择了将 <a> 元素添加到 DOM 中,现在可以移除它 |
|||
// document.body.removeChild(a); |
|||
}, |
|||
|
|||
btnBrowseDcmBak2() { |
|||
let userName = "peis", key = "peis@123" |
|||
// let encodedAuthstring = btoa(this.stringToAscIIBytes(`${userName}:${key}`)); |
|||
let encodedAuthstring = this.toBase64FromUtf8(`${userName}:${key}`); |
|||
console.log('encodedAuthstring', encodedAuthstring) |
|||
const url = 'http://192.168.4.161:8042/ohif/viewer?url=../studies/dcdc7b20-fe11f38d-f5357ad7-139cd2cd-c0bd3701/ohif-dicom-json'; |
|||
const Authorization = 'Basic ' + encodedAuthstring; |
|||
|
|||
fetch(url, { |
|||
headers: { |
|||
'Authorization': Authorization |
|||
} |
|||
}) |
|||
.then(response => response.json()) |
|||
.then(data => console.log(data)) |
|||
.catch(error => console.error('Error:', error)); |
|||
}, |
|||
|
|||
toBase64FromUtf8(str) { |
|||
// 使用 TextEncoder 将字符串转换为UTF-8字节序列 |
|||
const encoder = new TextEncoder(); |
|||
const bytes = encoder.encode(str); |
|||
|
|||
// 将字节序列转换为二进制字符串 |
|||
let binaryString = ''; |
|||
for (let byte of bytes) { |
|||
binaryString += String.fromCharCode(byte); |
|||
} |
|||
|
|||
// 使用 btoa 将二进制字符串转换为Base64 |
|||
return btoa(binaryString); |
|||
}, |
|||
|
|||
//导图(上传图片) |
|||
btnExpPic() { |
|||
if (!this.doctorCheck.RegisterCheckId) { |
|||
this.$message.warning({ showClose: true, message: "未选中组合项目!" }); |
|||
return; |
|||
} |
|||
this.uploadSeq++; |
|||
this.dialogCheckPictureUpload = true; |
|||
}, |
|||
btnClean() { |
|||
if (!this.doctorCheck.RegisterCheckId) { |
|||
this.$message.warning({ showClose: true, message: "未选中组合项目!" }); |
|||
return; |
|||
} |
|||
postapi("/api/app/PacsBusiness/DeletePacsCheckDicomDataByRegisterCheckId", { |
|||
registerCheckId: this.doctorCheck.RegisterCheckId |
|||
}) |
|||
.then((res) => { |
|||
if (res.code > -1) { |
|||
|
|||
} |
|||
}); |
|||
}, |
|||
|
|||
// 裁图/修图/ |
|||
btnCutPicBak() { |
|||
|
|||
// 跨域了 |
|||
this.dialogWinCutPic = true |
|||
this.$refs.imgCutterModal.handleOpen({ |
|||
name: "1.png", |
|||
src: "http://192.168.2.74:9529/PacsCheckPictureImg/pacs/2024/8/29//3a141f59-cf4c-5e34-966d-aec0a0eea94c//2408010001_0005.jpg.jpg", |
|||
}); |
|||
|
|||
}, |
|||
|
|||
btnCutPic() { |
|||
if (this.checkPictures.length == 0) { |
|||
this.$message.warning({ showClose: true, message: "暂无可裁图片!" }); |
|||
return; |
|||
} |
|||
|
|||
if (!this.$peisAPI) { |
|||
this.$message.info({ showClose: true, message: "此功能,需要在壳客户端才可运行!" }) |
|||
return |
|||
} |
|||
let token = window.sessionStorage.getItem("token"); |
|||
let toOutShell = { |
|||
asbitemName: this.doctorCheck.asbitemName, |
|||
images: this.checkPictures, |
|||
token, |
|||
}; |
|||
this.$peisAPI.imageCut(JSON.stringify(toOutShell)) |
|||
.then(res => { |
|||
let lres = JSON.parse(res) |
|||
if (lres.code > -1) { |
|||
this.getCheckPictures(this.dataTransOpts.tableS.register_check.id); |
|||
} else { |
|||
console.log('裁图失败', lres.message) |
|||
} |
|||
}) |
|||
.catch(err => { |
|||
console.log('裁图失败', err) |
|||
}) |
|||
|
|||
}, |
|||
|
|||
//关闭上传图片窗口 |
|||
closePicUpload() { |
|||
this.dialogCheckPictureUpload = false; |
|||
}, |
|||
|
|||
btnSavePic() { |
|||
if (!this.doctorCheck.RegisterCheckId) { |
|||
this.$message.warning({ showClose: true, message: "未选中组合项目!" }); |
|||
return; |
|||
} |
|||
|
|||
let body = []; |
|||
// [ |
|||
// { |
|||
// "registerCheckPictureId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", // 新增无需传此值 |
|||
// "registerCheckId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", |
|||
// "pictureFilename": "string", |
|||
// "isPrint": "string", |
|||
// "displayOrder": 0 |
|||
// } |
|||
// ] |
|||
if (this.checkPictures.length == 0) { |
|||
this.$message.warning({ showClose: true, message: "没有可保存的图片数据!" }); |
|||
return; |
|||
} |
|||
|
|||
let checkPictures = deepCopy(this.checkPictures); |
|||
checkPictures.sort((a, b) => { |
|||
let seq1 = 0; |
|||
let seq2 = 0; |
|||
try { |
|||
seq1 = parseInt(a.displayOrder); |
|||
} catch (error) { |
|||
seq1 = 0; |
|||
} |
|||
try { |
|||
seq2 = parseInt(b.displayOrder); |
|||
} catch (error) { |
|||
seq2 = 0; |
|||
} |
|||
return seq1 - seq2; |
|||
}); |
|||
|
|||
checkPictures.forEach((e) => { |
|||
let item = { |
|||
registerCheckId: e.registerCheckId, |
|||
pictureFilename: e.pictureFilename, |
|||
pictureFileType: e.pictureFileType |
|||
}; |
|||
if (e.id) item.registerCheckPictureId = e.id; |
|||
if (e.isPrintTrans) { |
|||
item.isPrint = "Y"; |
|||
} else { |
|||
item.isPrint = "N"; |
|||
} |
|||
body.push(item); |
|||
}); |
|||
|
|||
postapi("/api/app/registercheckpicture/UpdateRegisterCheckPictureStatusMany", body) |
|||
.then((res) => { |
|||
if (res.code > -1) { |
|||
this.getCheckPictures(checkPictures[0].registerCheckId); |
|||
} |
|||
}); |
|||
}, |
|||
|
|||
// 删除图片 |
|||
btnDelImage(index) { |
|||
let body = [this.checkPictures[index].id]; |
|||
this.$confirm("此操作将永久删除该记录, 是否继续?", "提示", { |
|||
confirmButtonText: "是", |
|||
cancelButtonText: "否", |
|||
type: "warning", |
|||
}) |
|||
.then(() => { |
|||
return postapi(`/api/app/registercheckpicture/deleteregistercheckpicturemany`, body); |
|||
}) |
|||
.then((res) => { |
|||
if (res && res.code > -1) { |
|||
this.checkPictures.splice(index, 1); |
|||
} |
|||
}) |
|||
.catch((err) => { |
|||
if (err == "cancel") { |
|||
this.$message.info({ showClose: true, message: "已取消" }); |
|||
} |
|||
}); |
|||
}, |
|||
|
|||
validateInteger(e, index) { |
|||
var regex = /^[0-9]*$/; |
|||
console.log(e, index); |
|||
if (!regex.test(e.value)) { |
|||
// 如果输入不满足整数条件,则清除输入框内容 |
|||
e.value = ""; |
|||
} |
|||
}, |
|||
|
|||
// 通过检查条码查询相关数据 |
|||
onQueryByPacsNo(checkRequestNo) { |
|||
this.checkRequestNo = checkRequestNo |
|||
this.$refs['checkRequestNo'].select() |
|||
postapi('/api/app/PacsBusiness/GetPatientRegisterWithCheckResultByCheckRequestNo', { checkRequestNo }) |
|||
.then(res => { |
|||
if (res.code > -1) { |
|||
// 人员信息 |
|||
this.dataTransOpts.tableS.patient_register = res.data.patientRegisterDetail |
|||
|
|||
// 组合项目 |
|||
this.doctorCheck.RegisterCheckList = [res.data.registerCheckDetail] |
|||
|
|||
// 组合项目明细 |
|||
this.doctorCheck.checkItemList = res.data.registerCheckItemDetails |
|||
|
|||
// 小结与建议 |
|||
this.doctorCheck.checkSummaryList = res.data.registerCheckSummaryDetails |
|||
this.doctorCheck.checkSuggestionList = res.data.registerCheckSuggestionDetails |
|||
|
|||
// 上次结果 |
|||
this.doctorCheck.preResult = res.data.lastTimeAsbitemResultDetail |
|||
|
|||
// 检查情况 |
|||
this.doctorCheck.RegisterCheckEdit = res.data.registerCheckDetail |
|||
|
|||
// 图片 |
|||
this.checkPictures = res.data.registerCheckPictureDetails |
|||
this.checkPictures.forEach(e => { |
|||
e.isPrintTrans = e.isPrint == "Y" ? true : false |
|||
}); |
|||
|
|||
this.iframeSrc = '' |
|||
this.btnBrowseDcm() |
|||
} |
|||
}) |
|||
|
|||
}, |
|||
|
|||
onFocus(event) { |
|||
this.$refs['checkRequestNo'].select() |
|||
} |
|||
}, |
|||
|
|||
//监听事件 |
|||
watch: { |
|||
//检查项目未切换换时 也可以强制刷新数据 |
|||
"dataTransOpts.refresh.register_check_item.M": { |
|||
// immediate: true, |
|||
handler(newVal, oldVal) { |
|||
console.log(`watch 检查图片 newVal:${newVal} oldVal:${oldVal} registerCheckId: ${this.dataTransOpts.tableS.register_check.id}`); |
|||
if (newVal != oldVal) this.getCheckPictures(this.dataTransOpts.tableS.register_check.id); |
|||
} |
|||
}, |
|||
|
|||
}, |
|||
}; |
|||
</script> |
|||
<style scoped> |
|||
.query { |
|||
margin-left: 10px; |
|||
margin-right: 2px; |
|||
padding: 1px 1px; |
|||
} |
|||
|
|||
.btnClass { |
|||
margin: 2px 2px 0; |
|||
height: 26px; |
|||
min-width: 40px; |
|||
padding: 5px 5px; |
|||
/*原始 默认值 10px 10px */ |
|||
} |
|||
|
|||
/* 强制出现滚动条 */ |
|||
::-webkit-scrollbar { |
|||
height: 0.5rem; |
|||
} |
|||
|
|||
::-webkit-scrollbar-thumb { |
|||
background-color: #ccc; |
|||
border-radius: 0.25rem; |
|||
} |
|||
</style> |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue