MCPcopy Create free account
hub / github.com/MITK/MITK / BuildDataMetadata

Method BuildDataMetadata

Modules/RESTAPI/src/mitkDataStorageController.cpp:430–493  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

428}
429
430nlohmann::json DataStorageController::BuildDataMetadata(const mitk::BaseData* data) const
431{
432 nlohmann::json metadata;
433
434 if (data == nullptr)
435 {
436 return metadata;
437 }
438
439 // Handle Image data
440 if (auto* image = dynamic_cast<const mitk::Image*>(data))
441 {
442 // Dimensions
443 nlohmann::json dimensions = nlohmann::json::array();
444 for (unsigned int i = 0; i < image->GetDimension(); ++i)
445 {
446 dimensions.push_back(static_cast<int>(image->GetDimension(i)));
447 }
448 metadata["dimensions"] = dimensions;
449
450 // Spacing
451 auto geometry = image->GetGeometry();
452 if (geometry != nullptr)
453 {
454 auto spacing = geometry->GetSpacing();
455 metadata["spacing"] = {spacing[0], spacing[1], spacing[2]};
456
457 auto origin = geometry->GetOrigin();
458 metadata["origin"] = {origin[0], origin[1], origin[2]};
459 }
460
461 // Pixel type
462 auto pixelType = image->GetPixelType();
463 metadata["pixel_type"] = pixelType.GetComponentTypeAsString();
464 }
465 // Handle Surface data
466 else if (auto* surface = dynamic_cast<const mitk::Surface*>(data))
467 {
468 auto* vtkPoly = surface->GetVtkPolyData();
469 if (vtkPoly != nullptr)
470 {
471 metadata["points_count"] = static_cast<int>(vtkPoly->GetNumberOfPoints());
472 metadata["cells_count"] = static_cast<int>(vtkPoly->GetNumberOfCells());
473
474 double bounds[6];
475 vtkPoly->GetBounds(bounds);
476 metadata["bounds"] = {bounds[0], bounds[1], bounds[2], bounds[3], bounds[4], bounds[5]};
477 }
478 }
479 // Handle PointSet data
480 else if (auto* pointSet = dynamic_cast<const mitk::PointSet*>(data))
481 {
482 metadata["points_count"] = static_cast<int>(pointSet->GetSize());
483
484 auto geometry = pointSet->GetGeometry();
485 if (geometry != nullptr)
486 {
487 auto bounds = geometry->GetBounds();

Callers 1

Calls 10

GetGeometryMethod · 0.80
GetNumberOfPointsMethod · 0.80
GetDimensionMethod · 0.45
GetSpacingMethod · 0.45
GetOriginMethod · 0.45
GetPixelTypeMethod · 0.45
GetVtkPolyDataMethod · 0.45
GetBoundsMethod · 0.45
GetSizeMethod · 0.45

Tested by

no test coverage detected