Set the WSI reader object based on the input reader Args: reader: the module to be used for loading whole slide imaging. If `reader` is - a string, it defines the backend of `monai.data.WSIReader`. Defaults to cuCIM. - a class (inherited
(self, reader: str | BaseWSIReader | type[BaseWSIReader] | None, reader_kwargs: dict)
| 354 | ) |
| 355 | |
| 356 | def _set_reader(self, reader: str | BaseWSIReader | type[BaseWSIReader] | None, reader_kwargs: dict) -> None: |
| 357 | """ |
| 358 | Set the WSI reader object based on the input reader |
| 359 | |
| 360 | Args: |
| 361 | reader: the module to be used for loading whole slide imaging. If `reader` is |
| 362 | |
| 363 | - a string, it defines the backend of `monai.data.WSIReader`. Defaults to cuCIM. |
| 364 | - a class (inherited from `BaseWSIReader`), it is initialized and set as wsi_reader. |
| 365 | - an instance of a class inherited from `BaseWSIReader`, it is set as the wsi_reader. |
| 366 | """ |
| 367 | self.reader: WSIReader | BaseWSIReader |
| 368 | self.reader_kwargs = reader_kwargs |
| 369 | if isinstance(reader, str): |
| 370 | self.reader = WSIReader(backend=reader, **self.reader_kwargs) |
| 371 | elif isclass(reader) and issubclass(reader, BaseWSIReader): |
| 372 | self.reader = reader(**self.reader_kwargs) |
| 373 | elif isinstance(reader, BaseWSIReader): |
| 374 | self.reader = reader |
| 375 | else: |
| 376 | raise ValueError(f"Unsupported reader type: {reader}.") |
| 377 | |
| 378 | def _get_patch(self, inputs: Any, location: tuple[int, ...], patch_size: tuple[int, ...]) -> Any: |
| 379 | patch, _ = self.reader.get_data(wsi=inputs, location=location, size=patch_size) # type: ignore |