Spaces:
Running
Running
# Copyright 2024 Google LLC | |
# | |
# Licensed under the Apache License, Version 2.0 (the "License"); | |
# you may not use this file except in compliance with the License. | |
# You may obtain a copy of the License at | |
# | |
# http://www.apache.org/licenses/LICENSE-2.0 | |
# | |
# Unless required by applicable law or agreed to in writing, software | |
# distributed under the License is distributed on an "AS IS" BASIS, | |
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
# See the License for the specific language governing permissions and | |
# limitations under the License. | |
"""Request dataclasses for Pete.""" | |
import dataclasses | |
import enum | |
from typing import Any, List, Mapping, Union | |
from data_models import patch_coordinate | |
class ModelSize(enum.Enum): | |
UNDEFINED = 0 | |
SMALL = 1 # ~1M parameters | |
MEDIUM = 2 # ~20M parameters. | |
LARGE = 3 # ~100M parameters. | |
class ModelKind(enum.Enum): | |
UNDEFINED = 0 | |
# Best suited for high magnification images. | |
# Pixel spacings of .002mm, .001mm, .0005mm or 5x, 10x, 20x. | |
LOW_PIXEL_SPACING = 1 | |
# Best suited for low magnification images. | |
# Pixel spacings of .004mm, .008mm, .016mm, 5x_div_2, 5x_div4, 5x_div8. | |
HIGH_PIXEL_SPACING = 2 | |
class EmbeddingInstanceV1: | |
"""An instance in a DICOM Embedding Request as described in the schema file.""" | |
dicom_web_store_url: str | |
dicom_study_uid: str | |
dicom_series_uid: str | |
bearer_token: str | |
ez_wsi_state: Union[str, Mapping[str, Any]] | |
instance_uids: List[str] | |
patch_coordinates: List[patch_coordinate.PatchCoordinate] | |
class DicomImageV2: | |
"""An instance in a DICOM Embedding Request as described in the schema file.""" | |
series_path: str | |
bearer_token: str | |
extensions: Mapping[str, Any] | |
instance_uids: List[str] | |
patch_coordinates: List[patch_coordinate.PatchCoordinate] | |
class GcsImageV2: | |
"""An instance in a DICOM Embedding Request as described in the schema file.""" | |
image_file_uri: str | |
bearer_token: str | |
extensions: Mapping[str, Any] | |
patch_coordinates: List[patch_coordinate.PatchCoordinate] | |
class EmbeddedImageV2: | |
"""An instance in a DICOM Embedding Request as described in the schema file.""" | |
image_bytes: str | |
extensions: Mapping[str, Any] | |
patch_coordinates: List[patch_coordinate.PatchCoordinate] | |
EmbeddingInstanceV2 = Union[DicomImageV2, GcsImageV2, EmbeddedImageV2] | |
class EmbeddingParameters: | |
"""A prediction in a DICOM Embedding Request as described in the schema file.""" | |
model_size: str | |
model_kind: str | |
class EmbeddingRequestV1: | |
"""A DICOM Embedding Request is a single parameter and list of instances.""" | |
parameters: EmbeddingParameters | |
instances: List[EmbeddingInstanceV1] | |
class EmbeddingRequestV2: | |
"""A DICOM Embedding Request is a list of instances.""" | |
instances: List[EmbeddingInstanceV2] | |