Browse Source

pacslook

master
pengjun 1 year ago
parent
commit
a18827ec92
  1. 4
      src/assets/css/global.css
  2. 15
      src/components/common/LocalConfig.vue
  3. 197
      src/components/doctorCheck/PacsDcmList.vue

4
src/assets/css/global.css

@ -179,4 +179,8 @@ a {
.el-button.is-plain:hover {
border-color: #c6e2ff;
background-color: #0046FB;
}
.el-checkbox__label {
padding-left: 2px;
}

15
src/components/common/LocalConfig.vue

@ -83,11 +83,19 @@
<el-tab-pane label="医生诊台">
<el-form label-width="100px" size="medium">
<el-row>
<el-col :span="24">
<el-col :span="12">
<el-form-item label="是否显示图片">
<el-checkbox v-model="LocalConfig.doctorCheck.isCheckPicture" size="small" />
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item label="pacs分类">
<el-select v-model="LocalConfig.doctorCheck.pacsType" placeholder="pacs分类" clearable filterable
size="small" >
<el-option v-for="item in localDict.pacsTypes" :key="item.value" :label="item.label" :value="item.value" />
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="6">
@ -160,7 +168,7 @@ export default {
},
doctorCheck: { //
isCheckPicture: false, //
pacsType:'image',
isQueue: 'N', //
queueRoom: '', //
queueItemTypeIds: [], //
@ -169,7 +177,8 @@ export default {
},
LocalConfigInit: {},
localDict: {
room: [], //
room: [], //
pacsTypes:[{label:'dcm',value:'dcm'},{label:'图片',value:'image'}]
}
};
},

197
src/components/doctorCheck/PacsDcmList.vue

@ -4,7 +4,13 @@
体检 /<span class="contenttitleBold">pacs看图</span>
</div>
<div style="display: flex;">
<div>
<div v-if="pacsType == 'image'" class="image__preview"
:style="`overflow-y: auto;width: ${window.pageWidth - 330}px;height: ${window.pageHeight - 105}px;`">
<el-image v-for="item in checkPictures" :key="item.id" :src="imageFilePlus(item.pictureFilename)"
:preview-src-list="previewSrcList(checkPictures, item)"
:style="`overflow-y: auto;width: ${window.pageWidth - 330}px;height: auto;`"></el-image>
</div>
<div v-else>
<iframe :src="iframeSrc" :height="window.pageHeight - 105" :width="window.pageWidth - 330"></iframe>
</div>
<div style="width: 310px;margin-left: 2px;">
@ -24,7 +30,7 @@
style="font-size: 20px;height:32px;min-width:30px; padding: 5px;z-index: 2;" size="small"></el-button>
</div>
<el-table :data="pacsList" style="width: 100%;" border highlight-current-row @row-click="rowClick"
:height="tableHeight" :row-style="{ height: '28px' }">
:height="tableHeight" :row-style="{ height: '28px' }" ref="pacsList">
<el-table-column prop="patientName" label="姓名" min-width="80" align="center" />
<el-table-column prop="checkRequestNo" label="检查条码" min-width="120" align="center" />
<el-table-column prop="asbitemName" label="检查项目" show-overflow-tooltip min-width="200" />
@ -83,6 +89,7 @@
:disabled="dataTransOpts.tableS.patient_register.completeFlag == '3'">选择描述</el-button>
<el-button type="primary" @click="btnOkBigtext" size="small" class="commonbutton"
:disabled="dataTransOpts.tableS.patient_register.completeFlag == '3'">保存结果</el-button>
<el-checkbox v-model="autoNext" true-label="Y" false-label="N" size="small">自动下一条</el-checkbox>
</div>
</div>
</div>
@ -125,8 +132,10 @@ export default {
maxResultCount: 1000,
skipCount: 0
},
autoNext: 'Y', //
doctorCheckEdit: {},
pacsList: [],
curPacs: {},
checkRequestNo: '',
dialogDcm: false,
iframeSrc: '',
@ -138,6 +147,8 @@ export default {
result: '',
summary: ''
},
pacsType: 'dcm', // image/dcm
checkPictures: [],
};
},
@ -146,7 +157,9 @@ export default {
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)
let LocalConfig = JSON.parse(window.localStorage.getItem("LocalConfig") || null)
if (LocalConfig && LocalConfig.doctorCheck && LocalConfig.doctorCheck.pacsType) this.pacsType = LocalConfig.doctorCheck.pacsType
// console.log('this.pacsType', this.pacsType,)
},
//
@ -177,6 +190,38 @@ export default {
methods: {
checkPagePriv, moment,
//
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
},
//
imageFilePlus(fileName) {
if (fileName.indexOf('base64') > -1 || fileName.indexOf('http') > -1) {
return fileName
} else {
return (this.sysConfig.pacsApi || this.sysConfig.apiurl) + fileName
}
},
btnQuery() {
let body = Object.assign({}, this.query)
if (!body.checkRequestNo) delete body.checkRequestNo
@ -187,16 +232,23 @@ export default {
}
postapi('/api/app/PacsBusiness/GetPatientRegisterPacsCheck', body)
.then(res => {
if (res.code > -1) this.pacsList = res.data.items
if (res.code > -1) {
res.data.items.forEach((e, i) => {
e.seq = i //
});
this.pacsList = res.data.items
}
})
},
rowClick(row) {
this.curPacs = row
this.onQueryByPacsNo(row.checkRequestNo)
},
// Dcm
btnBrowseDcm() {
// console.log('this.doctorCheck', this.doctorCheck.RegisterCheckEdit)
this.checkRequestNo = this.doctorCheck.RegisterCheckEdit.checkRequestNo
this.pacsParams.result = this.doctorCheck.checkItemList[0].result
@ -227,6 +279,10 @@ export default {
//
btnOkBigtext() {
// console.log('this.pacsParams', this.pacsParams)
if (!this.pacsParams.result || !this.pacsParams.summary) {
this.$message.warning({ showClose: true, message: '请填写检查结果与结论' })
return
}
this.doctorCheck.checkItemList[0].result = this.pacsParams.result
this.doctorCheck.checkSummaryList = [{
id: Math.random(),
@ -236,70 +292,80 @@ export default {
}]
this.save()
.then(() => {
if (this.autoNext == 'Y') {
let lfind = arrayExistObj(this.pacsList, 'seq', this.curPacs.seq)
if (lfind > -1 && this.pacsList.length - 1 > lfind) {
this.rowClick(this.pacsList[lfind + 1])
this.$refs['pacsList'].setCurrentRow(this.pacsList[lfind + 1]);
}
}
})
.catch(err => {
console.log(err)
this.$message.error({ showClose: true, message: err })
})
},
//
save() {
let checkDate = this.doctorCheck.RegisterCheckEdit.checkDate || new Date();
checkDate = moment(new Date(checkDate)).format('yyyy-MM-DD HH:mm:ss'); //yyyy-MM-DD HH:mm:ss
let checkDoctorId = this.doctorCheck.RegisterCheckEdit.checkDoctorId || null;
let registerCheckId = this.doctorCheck.RegisterCheckEdit.id
//
let registerCheckItems = []
this.doctorCheck.checkItemList.forEach(e => {
registerCheckItems.push({
itemId: e.itemId,
result: e.result,
checkDoctorName: checkDoctorId,
save() {
return new Promise((resolve, reject) => {
let checkDate = this.doctorCheck.RegisterCheckEdit.checkDate || new Date();
checkDate = moment(new Date(checkDate)).format('yyyy-MM-DD HH:mm:ss'); //yyyy-MM-DD HH:mm:ss
let checkDoctorId = this.doctorCheck.RegisterCheckEdit.checkDoctorId || null;
let registerCheckId = this.doctorCheck.RegisterCheckEdit.id
//
let registerCheckItems = []
this.doctorCheck.checkItemList.forEach(e => {
registerCheckItems.push({
itemId: e.itemId,
result: e.result,
checkDoctorName: checkDoctorId,
checkDate,
})
});
//
let summarys = []
this.doctorCheck.checkSummaryList.forEach(item => {
summarys.push({
summary: item.summary,
summaryFlag: item.summaryFlag,
})
});
//
let suggestions = []
this.doctorCheck.checkSuggestionList.forEach(item => {
suggestions.push({
suggestion: item.suggestion
})
});
let body = {
registerCheckId,
checkDoctorId,
checkDate,
})
});
//
let summarys = []
this.doctorCheck.checkSummaryList.forEach(item => {
summarys.push({
summary: item.summary,
summaryFlag: item.summaryFlag,
})
});
//
let suggestions = []
this.doctorCheck.checkSuggestionList.forEach(item => {
suggestions.push({
suggestion: item.suggestion
})
});
let body = {
registerCheckId,
checkDoctorId,
checkDate,
registerCheckItems,
summarys,
suggestions
}
if (summarys.length == 0) {
this.$message.warning({ showClose: true, message: '请生成小结!' })
return
}
postapi('/api/app/registercheck/UpdateCheckResult', body)
.then(res => {
if (res.code > -1) {
this.doctorCheck.RegisterCheckEdit.completeFlag = '1';
//
let lfind = arrayExistObj(this.doctorCheck.RegisterCheckList, 'id', body.registerCheckId)
if (lfind > -1) this.doctorCheck.RegisterCheckList[lfind].completeFlag = '1'
console.log('操作成功')
} else {
this.$message.error({ showClose: true, message: res.message })
}
})
registerCheckItems,
summarys,
suggestions
}
if (summarys.length == 0) reject('请填写结论!')
postapi('/api/app/registercheck/UpdateCheckResult', body)
.then(res => {
if (res.code > -1) {
this.doctorCheck.RegisterCheckEdit.completeFlag = '1';
//
let lfind = arrayExistObj(this.doctorCheck.RegisterCheckList, 'id', body.registerCheckId)
if (lfind > -1) this.doctorCheck.RegisterCheckList[lfind].completeFlag = '1'
resolve(res)
} else {
reject(res.message)
}
})
.catch(err => reject(err))
})
},
@ -373,6 +439,11 @@ export default {
padding: 1px 1px;
}
.spanClass {
font-size: 14px;
padding: 6px 2px 0 0;
}
.btnClass {
margin: 2px 2px 0;
height: 26px;

Loading…
Cancel
Save