diff --git a/apps/dmp/src/constant.ts b/apps/dmp/src/constant.ts index fcb553d..4ee199e 100644 --- a/apps/dmp/src/constant.ts +++ b/apps/dmp/src/constant.ts @@ -10,7 +10,7 @@ export const AuthFailedReplacePath = "/login"; export const theme: ThemeConfig = { token: { colorPrimary: "#fa541c", - borderRadius: 2, + borderRadius: 5, }, }; diff --git a/apps/dmp/src/modules/Admin/Dicom/Upload/DicomUploader/index.tsx b/apps/dmp/src/modules/Admin/Dicom/Upload/DicomUploader/index.tsx index 6eec41c..39cc2a2 100644 --- a/apps/dmp/src/modules/Admin/Dicom/Upload/DicomUploader/index.tsx +++ b/apps/dmp/src/modules/Admin/Dicom/Upload/DicomUploader/index.tsx @@ -1,5 +1,7 @@ import React, { useRef, useState } from "react"; import { Study, parseDcmFiles } from "./util"; +import { Button } from "antd"; +import { CloudUploadOutlined } from "@ant-design/icons"; declare module "react" { interface InputHTMLAttributes extends HTMLAttributes { @@ -44,17 +46,28 @@ export const useDicomUploader = () => { setIsLoading(false); }; - const UploadInput = () => ( - handleFileChange(e)} - /> - ); + const UploadInput = () => { + return ( + <> + handleFileChange(e)} + /> + + + ); + }; return { UploadInput, fileCalculator, studys, isLoading }; }; diff --git a/apps/dmp/src/modules/Admin/Dicom/Upload/index.tsx b/apps/dmp/src/modules/Admin/Dicom/Upload/index.tsx index b0a2310..e3eb26b 100644 --- a/apps/dmp/src/modules/Admin/Dicom/Upload/index.tsx +++ b/apps/dmp/src/modules/Admin/Dicom/Upload/index.tsx @@ -1,4 +1,4 @@ -import { Button, Col, Row, Space, Spin } from "antd"; +import { Button, Col, Divider, Modal, Row, Select, Space, Spin } from "antd"; import { useDicomUploader } from "./DicomUploader"; import { Series, Study } from "./DicomUploader/util"; import { DicomTable } from "./DicomTable"; @@ -12,11 +12,27 @@ interface DicomUploadProps { children?: JSX.Element; } +/** + * 新窗口打开ohif阅片 + */ +const openOHIFViewer = ( + StudyInstanceUID: string, + SeriesInstanceUID: string +) => { + const target = `http://localhost:3000/viewer/${StudyInstanceUID}?SeriesInstanceUID=${SeriesInstanceUID}`; + window.open(target, "_blank"); +}; + export const DicomUpload = (props: DicomUploadProps) => { const { UploadInput, fileCalculator, studys, isLoading } = useDicomUploader(); - const { dicomDomainService } = useDomain(); + const { dicomDomainService, userDomainService } = useDomain(); const { dcmFileNum, totalFileNum, dcmFileSize } = fileCalculator; const [selectRows, setSelectedRows] = useState([]); + const [isModalOpen, setIsModalOpen] = useState(false); + const [annotators, setAnnotators] = useState([]); + const [selectAnnotatorId, setSelectAnnotatorId] = useState( + "" + ); const onUploadFiles = async (study: Study, series: Series) => { const { SeriesInstanceUID, subs } = series; @@ -25,10 +41,9 @@ export const DicomUpload = (props: DicomUploadProps) => { SeriesInstanceUID, StudyInstanceUID, }); - const dcmExistInPacs = instances.length === subs.length; - if (dcmExistInPacs) { - const target = `http://localhost:3000/viewer/${StudyInstanceUID}?SeriesInstanceUID=${SeriesInstanceUID}`; - window.open(target, "_blank"); + // pacs已存在 + if (instances.length === subs.length) { + openOHIFViewer(StudyInstanceUID, SeriesInstanceUID); } else { let fullfilled = 0; Promise.all( @@ -41,49 +56,79 @@ export const DicomUpload = (props: DicomUploadProps) => { ) ).then((res) => { if (res.length === series.subs.length) { - const target = `http://localhost:3000/viewer/${StudyInstanceUID}?SeriesInstanceUID=${SeriesInstanceUID}`; - window.open(target, "_blank"); + openOHIFViewer(StudyInstanceUID, SeriesInstanceUID); } }); } }; const onClickAssign = () => { + userDomainService.getDmpAnnotators().then((res) => { + console.log(res); + const { data } = res; + setIsModalOpen(true); + setAnnotators(data.map((u) => ({ label: u.username, value: u.id }))); + }); console.log(selectRows); }; + const dcmFileInfo = !!totalFileNum && ( + + 扫描总文件数: {totalFileNum} + + 包含: {dcmFileNum} 个dicom文件 + + dcm文件总体积: {dcmFileSize} + + ); + + const onAssignConfirm = () => { + if (!selectAnnotatorId) return; + console.log(selectAnnotatorId); + setSelectAnnotatorId(0); + setIsModalOpen(false); + }; + return ( -
-
- - +
+ + + - - 文件统计, dicom文件: {dcmFileNum}, 总文件: {totalFileNum}, 大小: - {dcmFileSize} - - - - - - - - - - -
+ + + + + {dcmFileInfo} setSelectedRows(rows)} onUploadFiles={onUploadFiles} /> + setIsModalOpen(false)} + > +