large-image-source-dicom 1.34.2.dev4__tar.gz → 1.34.2.dev8__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. {large_image_source_dicom-1.34.2.dev4/large_image_source_dicom.egg-info → large_image_source_dicom-1.34.2.dev8}/PKG-INFO +3 -3
  2. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/__init__.py +7 -2
  3. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/girder_source.py +1 -1
  4. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8/large_image_source_dicom.egg-info}/PKG-INFO +3 -3
  5. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom.egg-info/requires.txt +2 -2
  6. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/LICENSE +0 -0
  7. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/README.rst +0 -0
  8. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/docs/dicomweb_assetstore.rst +0 -0
  9. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/assetstore/__init__.py +0 -0
  10. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/assetstore/dicomweb_assetstore_adapter.py +0 -0
  11. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/assetstore/rest.py +0 -0
  12. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/dicom_metadata.py +0 -0
  13. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/dicom_tags.py +0 -0
  14. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/dicomweb_utils.py +0 -0
  15. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/girder_plugin.py +0 -0
  16. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/web_client/constants.js +0 -0
  17. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/web_client/main.js +0 -0
  18. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/web_client/package.json +0 -0
  19. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/web_client/templates/assetstoreImport.pug +0 -0
  20. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/web_client/templates/dicomwebAssetstoreCreate.pug +0 -0
  21. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/web_client/templates/dicomwebAssetstoreEditFields.pug +0 -0
  22. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/web_client/templates/dicomwebAssetstoreImportButton.pug +0 -0
  23. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/web_client/templates/dicomwebAssetstoreMixins.pug +0 -0
  24. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/web_client/views/AssetstoresView.js +0 -0
  25. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/web_client/views/AuthOptions.js +0 -0
  26. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/web_client/views/DICOMwebImportView.js +0 -0
  27. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/web_client/views/EditAssetstoreWidget.js +0 -0
  28. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom/web_client/views/NewAssetstoreWidget.js +0 -0
  29. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom.egg-info/SOURCES.txt +0 -0
  30. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom.egg-info/dependency_links.txt +0 -0
  31. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom.egg-info/entry_points.txt +0 -0
  32. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/large_image_source_dicom.egg-info/top_level.txt +0 -0
  33. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/pyproject.toml +0 -0
  34. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/setup.cfg +0 -0
  35. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/setup.py +0 -0
  36. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/test_dicom/__init__.py +0 -0
  37. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/test_dicom/test_web_client.py +0 -0
  38. {large_image_source_dicom-1.34.2.dev4 → large_image_source_dicom-1.34.2.dev8}/test_dicom/web_client_specs/dicomWebSpec.js +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: large-image-source-dicom
3
- Version: 1.34.2.dev4
3
+ Version: 1.34.2.dev8
4
4
  Summary: A DICOM tilesource for large_image.
5
5
  Home-page: https://github.com/girder/large_image
6
6
  Author: Kitware, Inc.
@@ -17,12 +17,12 @@ Classifier: Programming Language :: Python :: 3.14
17
17
  Requires-Python: >=3.10
18
18
  Description-Content-Type: text/x-rst
19
19
  License-File: LICENSE
20
- Requires-Dist: large-image>=1.34.2.dev4
20
+ Requires-Dist: large-image>=1.34.2.dev8
21
21
  Requires-Dist: wsidicom!=0.21.3,>=0.9.0
22
22
  Requires-Dist: pydicom<3; python_version < "3.10"
23
23
  Requires-Dist: pydicom; python_version >= "3.10"
24
24
  Provides-Extra: girder
25
- Requires-Dist: girder-large-image>=1.34.2.dev4; extra == "girder"
25
+ Requires-Dist: girder-large-image>=1.34.2.dev8; extra == "girder"
26
26
  Requires-Dist: girder<5,>=3.2.3; extra == "girder"
27
27
  Dynamic: author
28
28
  Dynamic: author-email
@@ -4,12 +4,14 @@ import importlib.metadata
4
4
  import math
5
5
  import os
6
6
  import re
7
+ import threading
7
8
  import warnings
8
9
 
9
10
  import numpy as np
10
11
  from large_image_source_dicom.dicom_metadata import extract_dicom_metadata
11
12
  from large_image_source_dicom.dicomweb_utils import get_dicomweb_metadata
12
13
 
14
+ import large_image
13
15
  from large_image.cache_util import LruCacheMetaclass, methodcache
14
16
  from large_image.constants import TILE_FORMAT_PIL, SourcePriority
15
17
  from large_image.exceptions import TileSourceError, TileSourceFileNotFoundError
@@ -187,6 +189,7 @@ class DICOMFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
187
189
  self.levels = int(max(1, math.ceil(math.log(
188
190
  max(self.sizeX / self.tileWidth, self.sizeY / self.tileHeight)) / math.log(2)) + 1))
189
191
  self._populatedLevels = len(self._dicom.pyramids[0])
192
+ self._tileLock = threading.RLock()
190
193
  # We need to detect which levels are functionally present if we want to
191
194
  # return a sensible _nonemptyLevelsList
192
195
 
@@ -370,8 +373,10 @@ class DICOMFileTileSource(FileTileSource, metaclass=LruCacheMetaclass):
370
373
  y1f = min(int(math.ceil(y1 / levelfactor)), self._dicom.pyramids[0][level].size.height)
371
374
  bw = int(bw // levelfactor)
372
375
  bh = int(bh // levelfactor)
373
- tile = self._dicom.read_region(
374
- (x0f, y0f), self._dicom.pyramids[0][level].level, (x1f - x0f, y1f - y0f))
376
+ with self._tileLock:
377
+ tile = self._dicom.read_region(
378
+ (x0f, y0f), self._dicom.pyramids[0][level].level, (x1f - x0f, y1f - y0f),
379
+ threads=large_image.config.cpu_count())
375
380
  format = TILE_FORMAT_PIL
376
381
  if tile.width < bw or tile.height < bh:
377
382
  tile = _imageToNumpy(tile)[0]
@@ -66,7 +66,7 @@ class DICOMGirderTileSource(DICOMFileTileSource, GirderTileSource):
66
66
  raise TileSourceError(msg)
67
67
  filepath = filelist[0]
68
68
  for file in Item().collection.aggregate([
69
- {'$match': {'folderId': self.item['folderId']}},
69
+ {'$match': {'folderId': self.item['folderId'], '_id': {'$ne': self.item['_id']}}},
70
70
  {'$lookup': {
71
71
  'from': 'file', 'localField': '_id', 'foreignField': 'itemId', 'as': 'files',
72
72
  }},
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: large-image-source-dicom
3
- Version: 1.34.2.dev4
3
+ Version: 1.34.2.dev8
4
4
  Summary: A DICOM tilesource for large_image.
5
5
  Home-page: https://github.com/girder/large_image
6
6
  Author: Kitware, Inc.
@@ -17,12 +17,12 @@ Classifier: Programming Language :: Python :: 3.14
17
17
  Requires-Python: >=3.10
18
18
  Description-Content-Type: text/x-rst
19
19
  License-File: LICENSE
20
- Requires-Dist: large-image>=1.34.2.dev4
20
+ Requires-Dist: large-image>=1.34.2.dev8
21
21
  Requires-Dist: wsidicom!=0.21.3,>=0.9.0
22
22
  Requires-Dist: pydicom<3; python_version < "3.10"
23
23
  Requires-Dist: pydicom; python_version >= "3.10"
24
24
  Provides-Extra: girder
25
- Requires-Dist: girder-large-image>=1.34.2.dev4; extra == "girder"
25
+ Requires-Dist: girder-large-image>=1.34.2.dev8; extra == "girder"
26
26
  Requires-Dist: girder<5,>=3.2.3; extra == "girder"
27
27
  Dynamic: author
28
28
  Dynamic: author-email
@@ -1,4 +1,4 @@
1
- large-image>=1.34.2.dev4
1
+ large-image>=1.34.2.dev8
2
2
  wsidicom!=0.21.3,>=0.9.0
3
3
 
4
4
  [:python_version < "3.10"]
@@ -8,5 +8,5 @@ pydicom<3
8
8
  pydicom
9
9
 
10
10
  [girder]
11
- girder-large-image>=1.34.2.dev4
11
+ girder-large-image>=1.34.2.dev8
12
12
  girder<5,>=3.2.3