2026-05-24-16-28-58 修正可见构件导出与高精度映射

This commit is contained in:
2026-05-24 16:42:37 +08:00
parent 3bedf204c8
commit d9572e6966
9 changed files with 246 additions and 22 deletions

View File

@@ -203,7 +203,13 @@ export async function downloadMask(projectId: string, format: 'nii' | 'nii.gz' =
triggerFileDownload(`/api/projects/${projectId}/export-mask?${params.toString()}`);
}
export async function downloadProjectExport(projectId: string, target: ProjectExportTarget, format: 'nii' | 'nii.gz' = 'nii.gz', options: { pose?: ModelPose; segmentationScope?: SegmentationExportScope; segmentationExportMode?: SegmentationExportMode } = {}) {
function appendModuleStyles(params: URLSearchParams, moduleStyles?: Record<string, ModuleStyle>) {
if (moduleStyles) {
params.set('moduleStyles', JSON.stringify(moduleStyles));
}
}
export async function downloadProjectExport(projectId: string, target: ProjectExportTarget, format: 'nii' | 'nii.gz' = 'nii.gz', options: { pose?: ModelPose; segmentationScope?: SegmentationExportScope; segmentationExportMode?: SegmentationExportMode; moduleStyles?: Record<string, ModuleStyle> } = {}) {
const params = new URLSearchParams({ target, format });
if (target === 'segmentation' || target === 'pose') {
appendPose(params, options.pose);
@@ -211,11 +217,12 @@ export async function downloadProjectExport(projectId: string, target: ProjectEx
if (target === 'segmentation') {
params.set('segmentationScope', options.segmentationScope ?? 'visible');
params.set('segmentationExportMode', options.segmentationExportMode ?? 'combined');
appendModuleStyles(params, options.moduleStyles);
}
triggerFileDownload(`/api/projects/${projectId}/export-nifti?${params.toString()}`);
}
export async function downloadProjectExportBundle(projectId: string, targets: ProjectExportTarget[], format: 'nii' | 'nii.gz' = 'nii.gz', options: { pose?: ModelPose; segmentationScope?: SegmentationExportScope; segmentationExportMode?: SegmentationExportMode } = {}) {
export async function downloadProjectExportBundle(projectId: string, targets: ProjectExportTarget[], format: 'nii' | 'nii.gz' = 'nii.gz', options: { pose?: ModelPose; segmentationScope?: SegmentationExportScope; segmentationExportMode?: SegmentationExportMode; moduleStyles?: Record<string, ModuleStyle> } = {}) {
const params = new URLSearchParams({
targets: targets.join(','),
format,
@@ -223,6 +230,7 @@ export async function downloadProjectExportBundle(projectId: string, targets: Pr
segmentationExportMode: options.segmentationExportMode ?? 'combined',
});
appendPose(params, options.pose);
appendModuleStyles(params, options.moduleStyles);
triggerFileDownload(`/api/projects/${projectId}/export-bundle?${params.toString()}`);
}