feat: temp save
This commit is contained in:
parent
6f62e35ff3
commit
7877259057
|
@ -22,7 +22,12 @@
|
|||
"@tavi/util": "1.0.0",
|
||||
"js-cookie": "3.0.5",
|
||||
"three": "0.156.1",
|
||||
"path-to-regexp": "6.2.1"
|
||||
"path-to-regexp": "6.2.1",
|
||||
"@cornerstonejs/core": "1.16.5",
|
||||
"dicom-parser": "1.8.21",
|
||||
"cornerstone-wado-image-loader": "4.13.2",
|
||||
"@msgpack/msgpack": "3.0.0-beta2",
|
||||
"pako": "2.1.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@babel/core": "^7.21.8",
|
||||
|
|
|
@ -22,4 +22,9 @@ export const proxyMap: TProxyMap = {
|
|||
changeOrigin: true,
|
||||
pathRewrite: { "^/api": "" },
|
||||
},
|
||||
"/py": {
|
||||
target: "http://localhost:5000/",
|
||||
changeOrigin: true,
|
||||
pathRewrite: { "^/py": "" },
|
||||
},
|
||||
};
|
||||
|
|
62
apps/aorta/src/modules/Root/Viewer/DiffViewer/index.tsx
Normal file
62
apps/aorta/src/modules/Root/Viewer/DiffViewer/index.tsx
Normal file
|
@ -0,0 +1,62 @@
|
|||
import { useEffect } from "react";
|
||||
import { decode } from "@msgpack/msgpack";
|
||||
import pako from "pako";
|
||||
import * as cornerstone from "@cornerstonejs/core";
|
||||
import dicomParser from "dicom-parser";
|
||||
import cornerstoneWADOImageLoader from "cornerstone-wado-image-loader";
|
||||
import axios from "axios";
|
||||
|
||||
interface DiffViewerProps {
|
||||
children?: JSX.Element;
|
||||
}
|
||||
|
||||
export const DiffViewer = (props: DiffViewerProps) => {
|
||||
useEffect(() => {
|
||||
axios({
|
||||
url: "/py/get_reference_image",
|
||||
method: "get",
|
||||
responseType: "arraybuffer",
|
||||
})
|
||||
.then((response) => {
|
||||
const decompressedData = pako.inflate(new Uint8Array(response.data)); // Use pako to decompress the data
|
||||
const pixelArray1 = decode(decompressedData); // Decode the data using msgpack
|
||||
|
||||
console.log(pixelArray1);
|
||||
|
||||
// 请求compressed_data
|
||||
// for (let i = 2; i < 220; i++) {
|
||||
// axios
|
||||
// .get(`/py/get_compressed_data/${i}`)
|
||||
// .then((response) => {
|
||||
// const compressedData = response.data.compressed_data;
|
||||
|
||||
// // TODO: 根据需要进一步处理数据
|
||||
// })
|
||||
// .catch((error) => {
|
||||
// console.error(
|
||||
// `Error fetching compressed data for image ${i}:`,
|
||||
// error
|
||||
// );
|
||||
// });
|
||||
// }
|
||||
})
|
||||
.catch((error) => {
|
||||
console.error("Error fetching reference image:", error);
|
||||
});
|
||||
}, []);
|
||||
|
||||
useEffect(() => {
|
||||
cornerstoneWADOImageLoader.external.cornerstone = cornerstone;
|
||||
cornerstoneWADOImageLoader.webWorkerManager.initialize({
|
||||
maxWebWorkers: navigator.hardwareConcurrency || 1,
|
||||
startWebWorkersOnDemand: true,
|
||||
webWorkerPath: "/path/to/cornerstoneWADOImageLoaderWebWorker.js",
|
||||
taskConfiguration: {
|
||||
decodeTask: {
|
||||
codecsPath: "/path/to/cornerstoneWADOImageLoaderCodecs.js",
|
||||
},
|
||||
},
|
||||
});
|
||||
}, []);
|
||||
return <div>DiffViewer</div>;
|
||||
};
|
13
apps/aorta/src/modules/Root/Viewer/index.tsx
Normal file
13
apps/aorta/src/modules/Root/Viewer/index.tsx
Normal file
|
@ -0,0 +1,13 @@
|
|||
import { DiffViewer } from "./DiffViewer";
|
||||
|
||||
interface RootViewerProps {
|
||||
children?: JSX.Element;
|
||||
}
|
||||
|
||||
export const RootViewer = (props: RootViewerProps) => {
|
||||
return (
|
||||
<div>
|
||||
<DiffViewer />
|
||||
</div>
|
||||
);
|
||||
};
|
|
@ -1,12 +1,12 @@
|
|||
import { Navigate, RouteObject } from "react-router";
|
||||
import { Login } from "../modules/Login";
|
||||
import { PatientList } from "../modules/PatientList";
|
||||
import { RootViewer } from "../modules/Root/Viewer/Root";
|
||||
import { PeripheralViewer } from "../modules/Peripheral";
|
||||
import { Dashboard } from "@/modules/Dashboard";
|
||||
import { ReportFullVersion } from "@/modules/Report/Full";
|
||||
import { Layout } from "@/components/Layout";
|
||||
import { ExpandRouteProps } from ".";
|
||||
import { RootViewer } from "@/modules/Root/Viewer";
|
||||
|
||||
/**
|
||||
* 基础路由
|
||||
|
|
|
@ -136,15 +136,16 @@ export const DicomUpload = (props: DicomUploadProps) => {
|
|||
* 分配任务
|
||||
*/
|
||||
const onAssignConfirm = async () => {
|
||||
if (!selectAnnotator?.id) return;
|
||||
if (!selectAnnotator) return;
|
||||
const { code, ignore } = await userDomainService.createArchiveTask(
|
||||
selectAnnotator,
|
||||
selectRows
|
||||
);
|
||||
if (code === 0) {
|
||||
const { username = "" } = selectAnnotator;
|
||||
const info =
|
||||
ignore?.length > 0
|
||||
? `,其中${ignore.length}条序列,用户${selectAnnotator.username}已存在`
|
||||
? `,其中${ignore.length}条序列,用户${username}已存在`
|
||||
: ``;
|
||||
message.info(`创建任务成功${info}`);
|
||||
}
|
||||
|
|
|
@ -87,7 +87,7 @@ export const LabelTree = (props: LabelTreeProps) => {
|
|||
label: (
|
||||
<Row>
|
||||
<Col span={18}>{item.name}</Col>
|
||||
<Col span={6}>
|
||||
<Col span={6} style={{ textAlign: "right" }}>
|
||||
<Space>
|
||||
<Tooltip title={`编辑 ${item.name} 分类`}>
|
||||
<FormOutlined
|
||||
|
@ -98,9 +98,9 @@ export const LabelTree = (props: LabelTreeProps) => {
|
|||
}}
|
||||
/>
|
||||
</Tooltip>
|
||||
<Tooltip title={`删除 ${item.name} 分类`}>
|
||||
{/* <Tooltip title={`删除 ${item.name} 分类`}>
|
||||
<CloseOutlined />
|
||||
</Tooltip>
|
||||
</Tooltip> */}
|
||||
</Space>
|
||||
</Col>
|
||||
</Row>
|
||||
|
@ -111,7 +111,7 @@ export const LabelTree = (props: LabelTreeProps) => {
|
|||
<li key={label.id}>
|
||||
<Row>
|
||||
<Col span={18}>{label.name}</Col>
|
||||
<Col span={6}>
|
||||
<Col span={6} style={{ textAlign: "right" }}>
|
||||
<Space>
|
||||
<Tooltip title={`编辑 ${label.name} 标签`}>
|
||||
<EditOutlined
|
||||
|
|
|
@ -75,7 +75,7 @@ export class AppController {
|
|||
private readonly configService: ConfigService,
|
||||
) {}
|
||||
|
||||
@EventPattern({ cmd: 'dicom.find.dicom' })
|
||||
@EventPattern('dicom.find')
|
||||
async findDicoms() {
|
||||
const pacsUrl = this.configService.get('PACS_URL');
|
||||
try {
|
||||
|
|
|
@ -28,8 +28,7 @@
|
|||
"class-transformer": "0.5.1",
|
||||
"uuid": "9.0.0",
|
||||
"dayjs": "1.11.9",
|
||||
"axios": "1.5.0",
|
||||
"@tavi/message-pattern": "workspace:*"
|
||||
"axios": "1.5.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@nestjs/cli": "^10.0.0",
|
||||
|
|
|
@ -26,9 +26,7 @@ export class AdminController {
|
|||
|
||||
@Get('find/dicom/all')
|
||||
async findDicom() {
|
||||
const { data } = await firstValueFrom(
|
||||
this.client.send({ cmd: 'dicom.find.dicom' }, {}),
|
||||
);
|
||||
const { data } = await firstValueFrom(this.client.send('dicom.find', {}));
|
||||
return { code: 0, data };
|
||||
}
|
||||
}
|
||||
|
|
882
pnpm-lock.yaml
882
pnpm-lock.yaml
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user