cardio 2026.1.3__py3-none-any.whl → 2026.1.4__py3-none-any.whl

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.
cardio/__init__.py CHANGED
@@ -26,4 +26,4 @@ __all__ = [
26
26
  "window_level",
27
27
  ]
28
28
 
29
- __version__ = "2026.1.3"
29
+ __version__ = "2026.1.4"
cardio/ui.py CHANGED
@@ -8,7 +8,12 @@ from trame.widgets import html
8
8
  from trame.widgets import vtk as vtk_widgets
9
9
  from trame.widgets import vuetify3 as vuetify
10
10
 
11
- from .orientation import AngleUnits, EulerAxis, euler_angle_to_rotation_matrix
11
+ from .orientation import (
12
+ AngleUnits,
13
+ EulerAxis,
14
+ IndexOrder,
15
+ euler_angle_to_rotation_matrix,
16
+ )
12
17
  from .scene import Scene
13
18
  from .volume_property_presets import list_volume_property_presets
14
19
  from .window_level import presets
@@ -151,6 +156,10 @@ class UI:
151
156
  if view_name not in base_normals:
152
157
  return np.array([0.0, 0.0, 1.0])
153
158
 
159
+ current_convention = self.scene.mpr_rotation_sequence.metadata.index_order
160
+ if current_convention == IndexOrder.ROMA:
161
+ base_normals = {k: v[::-1] for k, v in base_normals.items()}
162
+
154
163
  # Build cumulative rotation from visible rotations
155
164
  rotation_data = getattr(
156
165
  self.server.state, "mpr_rotation_data", {"angles_list": []}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: cardio
3
- Version: 2026.1.3
3
+ Version: 2026.1.4
4
4
  Summary: A simple web-based viewer for 3D and 4D ('cine') medical imaging data.
5
5
  Keywords: Medical,Imaging,3D,4D,Visualization
6
6
  Author: Davis Marc Vigneault
@@ -75,7 +75,7 @@ $ uv init
75
75
  $ uv add cardio
76
76
  $ . ./.venv/bin/activate
77
77
  (project) cardio --version
78
- cardio 2026.1.3
78
+ cardio 2026.1.4
79
79
  ```
80
80
 
81
81
  ### Developing
@@ -1,4 +1,4 @@
1
- cardio/__init__.py,sha256=07x-I5z0KKgiJwm-tqtY1qZTh5YKg32IScpzzFVEeno,601
1
+ cardio/__init__.py,sha256=PHGd0hpn8eI6fS1YrpoJgR7RtlRqYZjdcUgvmbq7r0k,601
2
2
  cardio/app.py,sha256=h-Xh57Txw3Hom-fDv08YxjXzovuIxY8_5qPy6MJThZs,1354
3
3
  cardio/assets/bone.toml,sha256=vv8uVYSHIoKuHkNCoBOkGe2_qoEbXMvQO6ypm3mMOtA,675
4
4
  cardio/assets/vascular_closed.toml,sha256=XtaZS_Zd6NSAtY3ZlUfiog3T86u9Ii0oSutU2wBQy78,1267
@@ -18,13 +18,13 @@ cardio/screenshot.py,sha256=l8bLgxnU5O0FlnmsyVAzKwM9Y0401IzcdnDP0WqFSTY,640
18
18
  cardio/segmentation.py,sha256=KT1ClgultXyGpZDdpYxor38GflY7uCgRzfA8JEGQVaU,6642
19
19
  cardio/transfer_function_pair.py,sha256=_J0qXA0InUPpvfWPcW492KGSYAqeb12htCzKBSpWHwo,780
20
20
  cardio/types.py,sha256=jxSZjvxEJ03OThfupT2CG9UHsFklwbWeFrUozNXro2I,333
21
- cardio/ui.py,sha256=esmJzoJE-lKoWHYWg1Zbq_Z1ydIt4ggHXf1i14J0PrM,53181
21
+ cardio/ui.py,sha256=Q1iG_Pl55VjmhI9sBgm87c8Z80ub72f7niiZcxT63cs,53421
22
22
  cardio/utils.py,sha256=ao4a7_vMjGBxTOMhZ7r0D0W4ujiwKPS0i8Xfmn3Gv9k,1497
23
23
  cardio/volume.py,sha256=sdQ7gtX4jQDD9U8U95xD9LIV_1hpykj8NTCo1_aIKVM,15035
24
24
  cardio/volume_property.py,sha256=-EUMV9sWCaetgGjnqIWxPp39qrxEZKTNDJ5GHUgLMlk,1619
25
25
  cardio/volume_property_presets.py,sha256=4-hjo-dukm5sMMmWidbWnVXq0IN4sWpBnDITY9MqUFg,1625
26
26
  cardio/window_level.py,sha256=XMkwLAHcmsEYcI0SoHySQZvptq4VwX2gj--ps3hV8AQ,784
27
- cardio-2026.1.3.dist-info/WHEEL,sha256=4n27za1eEkOnA7dNjN6C5-O2rUiw6iapszm14Uj-Qmk,79
28
- cardio-2026.1.3.dist-info/entry_points.txt,sha256=xRd1otqKtW9xmidJ4CFRX1V9KWmsBbtxrgMtDColq3w,40
29
- cardio-2026.1.3.dist-info/METADATA,sha256=BE_DMgEZ959_kbfIfIMTbDs-hIhjep_SGFSmoeMm3Ag,3518
30
- cardio-2026.1.3.dist-info/RECORD,,
27
+ cardio-2026.1.4.dist-info/WHEEL,sha256=4n27za1eEkOnA7dNjN6C5-O2rUiw6iapszm14Uj-Qmk,79
28
+ cardio-2026.1.4.dist-info/entry_points.txt,sha256=xRd1otqKtW9xmidJ4CFRX1V9KWmsBbtxrgMtDColq3w,40
29
+ cardio-2026.1.4.dist-info/METADATA,sha256=PBY2FOwI09ipRTUuB97Nxs9ZNM2SgE0kRC6mcAiI4-0,3518
30
+ cardio-2026.1.4.dist-info/RECORD,,