cornerstone3D
cornerstone3D copied to clipboard
[Bug] Images wrongly loaded when size in x and y are different
Describe the Bug
I am loading an image with a wado loader. The size in the X axis is different from the size in the Y axis. This is the complete metadata of each dicom:
{'00080005': {'vr': 'CS', 'Value': ['ISO_IR 100']}, '00080008': {'vr': 'CS', 'Value': ['DERIVED', 'SECONDARY', 'MPR']}, '00080016': {'vr': 'UI', 'Value': ['1.2.840.10008.5.1.4.1.1.2']}, '00080018': {'vr': 'UI', 'Value': ['1.3.6.1.4.1.55648.164020421491223780677773683262514360440.204.1']}, '00080020': {'vr': 'DA', 'Value': ['20190313']}, '00080030': {'vr': 'TM'}, '00080032': {'vr': 'TM', 'Value': ['095248']}, '00080050': {'vr': 'SH', 'Value': ['XXX_573942136']}, '00080060': {'vr': 'CS', 'Value': ['CT']}, '00080070': {'vr': 'LO', 'Value': ['Philips']}, '00080080': {'vr': 'LO', 'Value': ['XXX']}, '0008103E': {'vr': 'LO', 'Value': ['HEAD AX MPR']}, '00081040': {'vr': 'LO', 'Value': ['na']}, '00081090': {'vr': 'LO', 'Value': ['iCT 256']}, '00100010': {'vr': 'PN', 'Value': [{'Alphabetic': 'XXX_Patient_2207674320132130077'}]}, '00100020': {'vr': 'LO', 'Value': ['XXX_Patient_2207674320132130077']}, '00100040': {'vr': 'CS', 'Value': ['M']}, '00101010': {'vr': 'AS', 'Value': ['050Y']}, '00180015': {'vr': 'CS', 'Value': ['BRAIN']}, '00180022': {'vr': 'CS', 'Value': ['HELIX']}, '00180050': {'vr': 'DS', 'Value': [2.5]}, '00180060': {'vr': 'DS', 'Value': [120]}, '00180088': {'vr': 'DS', 'Value': [2.5]}, '00180090': {'vr': 'DS', 'Value': [500]}, '00181020': {'vr': 'LO', 'Value': ['4.1']}, '00181030': {'vr': 'LO', 'Value': ['HEAD WITHOUT /Head']}, '00181100': {'vr': 'DS', 'Value': [291]}, '00181110': {'vr': 'DS', 'Value': [1040]}, '00181111': {'vr': 'DS', 'Value': [570]}, '00181120': {'vr': 'DS', 'Value': [0]}, '00181130': {'vr': 'DS', 'Value': [164.3]}, '00181150': {'vr': 'IS', 'Value': [1883]}, '00181151': {'vr': 'IS', 'Value': [239]}, '00181152': {'vr': 'IS', 'Value': [450]}, '00181160': {'vr': 'SH', 'Value': ['UC']}, '00181210': {'vr': 'SH', 'Value': ['UC']}, '00185100': {'vr': 'CS', 'Value': ['HFS']}, '00189306': {'vr': 'FD', 'Value': [0.625]}, '00189307': {'vr': 'FD', 'Value': [80]}, '00189309': {'vr': 'FD', 'Value': [42.5]}, '00189310': {'vr': 'FD', 'Value': [50.944]}, '00189311': {'vr': 'FD', 'Value': [0.398]}, '00189345': {'vr': 'FD', 'Value': [59.60000000000017]}, '0020000D': {'vr': 'UI', 'Value': ['1.3.6.1.4.1.55648.164020421491223780677773683262514360440']}, '0020000E': {'vr': 'UI', 'Value': ['1.3.6.1.4.1.55648.164020421491223780677773683262514360440.204']}, '00200011': {'vr': 'IS', 'Value': [204]}, '00200012': {'vr': 'IS', 'Value': [2]}, '00200013': {'vr': 'IS', 'Value': [1]}, '00200032': {'vr': 'DS', 'Value': [-127.5675, -5.424177, 1064.29580958579]}, '00200037': {'vr': 'DS', 'Value': [0.994968, -0.06814497, -0.07345025, 0.0310074, 0.9065236, -0.4210149]}, '00201040': {'vr': 'LO'}, '00201041': {'vr': 'DS', 'Value': [1009.18]}, '00280002': {'vr': 'US', 'Value': [1]}, '00280004': {'vr': 'CS', 'Value': ['MONOCHROME2']}, '00280010': {'vr': 'US', 'Value': [390]}, '00280011': {'vr': 'US', 'Value': [404]}, '00280030': {'vr': 'DS', 'Value': [0.57004, 0.57004]}, '00280100': {'vr': 'US', 'Value': [16]}, '00280101': {'vr': 'US', 'Value': [12]}, '00280102': {'vr': 'US', 'Value': [11]}, '00280103': {'vr': 'US', 'Value': [0]}, '00281050': {'vr': 'DS', 'Value': [40, 40]}, '00281051': {'vr': 'DS', 'Value': [80, 80]}, '00281052': {'vr': 'DS', 'Value': [-1024]}, '00281053': {'vr': 'DS', 'Value': [1]}, '7FE00010': {'vr': 'OW', 'BulkDataURI': 'XXXX'}}
When Cornerstone displays the image, the same size is used in both axis leading to voxels moving from their correct positions when going through the stack (only the first slice in the stack is seen correctly):
This happens with all the images that have different x and y sizes.
Steps to Reproduce
- Open an image with size x != size y
The current behavior
Only one slice in the stack is seen correctly
The expected behavior
Adapt the size of each slice to the size stated in the metadata
OS
macOC
Node version
18.17.1
Browser
Chrome