diff --git a/src/api/trials.js b/src/api/trials.js
index 764286a0..94baeebc 100644
--- a/src/api/trials.js
+++ b/src/api/trials.js
@@ -4422,4 +4422,12 @@ export function getTrialSubjectVisitMarkList(data) {
method: 'post',
data
})
+}
+// 更新缩略图
+export function updateImageResizePath(data) {
+ return request({
+ url: `/Series/updateImageResizePath`,
+ method: 'post',
+ data
+ })
}
\ No newline at end of file
diff --git a/src/views/dicom-show/dicom-study.vue b/src/views/dicom-show/dicom-study.vue
index 11529201..082cdd7f 100644
--- a/src/views/dicom-show/dicom-study.vue
+++ b/src/views/dicom-show/dicom-study.vue
@@ -29,8 +29,12 @@
:src="item.previewImageUrl"
fit="fill"
/> -->
-
+
@@ -136,7 +140,7 @@ import * as cornerstone from 'cornerstone-core'
import * as cornerstoneWADOImageLoader from 'cornerstone-wado-image-loader'
import dicomViewer from '@/components/Dicom/DicomViewer'
import { getStudyInfo, getSeriesList } from '@/api/reading'
-import { getInstanceList, getPatientSeriesList, setSeriesStatus, setInstanceStatus } from '@/api/trials'
+import { getInstanceList, getPatientSeriesList, setSeriesStatus, setInstanceStatus, updateImageResizePath } from '@/api/trials'
import requestPoolManager from '@/utils/request-pool'
import store from '@/store'
@@ -247,6 +251,62 @@ export default {
workSpeedclose(true)
},
methods: {
+ async updateImageResizePath(data) {
+ try {
+ let res = await updateImageResizePath(data)
+ if (res.IsSuccess) {
+ this.$message.success(this.$t("message:tip:updateImageResizePath:success"))
+ }
+ } catch (err) {
+ console.log(err)
+ }
+ },
+ async refreshImage(item) {
+ let thumbnailPath = item.previewImageUrl.split(this.OSSclientConfig.basePath)[1]
+ let blob = await this.dicomToPng(item.imageIds[0])
+ let OSSclient = this.OSSclient
+ try {
+ let seriesRes = await OSSclient.put(thumbnailPath, blob)
+ if (seriesRes && seriesRes.url) {
+ let path = this.$getObjectName(seriesRes.url)
+ item.previewImageUrl = seriesRes.url
+ let data = {
+ seriesId: item.seriesId,
+ ImageResizePath: path
+ }
+ this.updateImageResizePath(data)
+ }
+ } catch (e) {
+
+ }
+ },
+ dicomToPng(imageId) {
+ return new Promise((resolve) => {
+ cornerstone.loadImage(imageId).then(async (image) => {
+ let width = image.columns, height = image.rows;
+ let canvas = document.createElement('canvas')
+ canvas.width = (width * 60) / height
+ canvas.height = 60
+ if (image) {
+ cornerstone.renderToCanvas(canvas, image)
+ // 将 Canvas 图像对象转换为 PNG 格式
+ let blob = await this.canvasToBlob(canvas)
+ resolve(blob)
+ } else {
+ resolve()
+ }
+ })
+ }).catch((reason) => {
+ reason()
+ })
+ },
+ canvasToBlob(canvas) {
+ return new Promise((resolve) => {
+ canvas.toBlob((blob) => {
+ resolve(blob)
+ })
+ })
+ },
async loadStudy() {
let params = {}
if (this.isPacs) {
@@ -905,7 +965,18 @@ export default {
}
-