DICOM Network Roles –Successful communication - products must play opposite roles Receive images =...

25
DICOM Network Roles Successful communication - products must play “opposite roles” Receive images = Service Class Provider (SCP) Send images = Service Class User (SCU) Network roles are defined for all DICOM Network roles are defined for all DICOM Functions Functions Image Send Image Send CT Image Storage CT Image Storage SOP Class (SCU) SOP Class (SCU) CT Image Storage CT Image Storage SOP Class (SCP) SOP Class (SCP)

Transcript of DICOM Network Roles –Successful communication - products must play opposite roles Receive images =...

Page 1: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

DICOM Network RolesDICOM Network Roles– Successful communication - products must play “opposite roles”

Receive images = Service Class Provider (SCP)

Send images = Service Class User (SCU)

Network roles are defined for all Network roles are defined for all DICOM FunctionsDICOM Functions

Network roles are defined for all Network roles are defined for all DICOM FunctionsDICOM Functions

Image SendImage SendImage SendImage Send

CT Image StorageCT Image StorageSOP Class (SCU)SOP Class (SCU)CT Image StorageCT Image StorageSOP Class (SCU)SOP Class (SCU)

CT Image StorageCT Image StorageSOP Class (SCP)SOP Class (SCP)CT Image StorageCT Image StorageSOP Class (SCP)SOP Class (SCP)

Page 2: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

DICOM Conformance DICOM Conformance StatementStatementDICOM Conformance DICOM Conformance StatementStatement

– It is Required!

– It is a Public Document

– It Conveys a Product’s DICOM Functionality

– It is Based on DICOM Vocabulary

Abstract Syntaxes (SOP Classes), Transfer Syntaxes, SCU/SCP…..

– It is Used to Compare Connectivity

– It is most Often on the Web @ Vendor Site

– It Does Not Address All of an Application’s Capabilities, but should Address All of the Application’s DICOM ones

A Major Step Towards InteroperabilityA Major Step Towards Interoperability

Page 3: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

Language and … dictionaryLanguage and … dictionary

128 bit inutili (non sempre)

DICM

Page 4: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

“std” DICOM“std” DICOM

Page 5: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

DICOMDICOM

(0008,0000) UL 424 # 4 IdentifyingGroupLength(0008,0020) DA [20070509] # 8 StudyDate(0008,0022) DA [20070509] # 8 AcquisitionDate(0008,0023) DA [20070509] # 8 ImageDate(0008,0030) TM [163853] # 6 StudyTime(0008,0032) TM [163933] # 6 AcquisitionTime (0008,0060) CS [CT] # 2 Modality(0008,0070) LO [Philips ] # 8 Manufacturer(0008,0080) LO [OSP S.CROCE CUNEO ] # 18 InstitutionName (0008,1040) LO [RADIOLOGIA] # 10 InstitutionalDepartmentName (0008,1090) LO [Brilliance 64 ] # 14 ManufacturerModelName (0010,0010) PN [TEST CTDI 16 CM HEAD^.] # 22 PatientName(0010,0020) LO [11111 ] # 6 PatientID(0010,0030) DA [20070509] # 8 PatientBirthDate(0010,0040) CS [O ] # 2 PatientSex(0018,0050) DS [0.5 ] # 6 SliceThickness(0018,0060) DS [120 ] # 4 KVP(0018,0090) DS [500 ] # 4 DataCollectionDiameter (0018,1030) LO [Encefalo Ax Testa ] # 22 ProtocolName(0018,1100) DS [500 ] # 4 ReconstructionDiameter(0018,1120) DS [0 ] # 2 GantryDetectorTilt (0018,1140) CS [CW] # 2 RotationDirection (0018,1150) IS [3000] # 4 ExposureTime(0018,1151) IS [30] # 2 XrayTubeCurrent(0018,5100) CS [HFS ] # 4 PatientPosition (0028,0030) DS [0.9765625\0.9765625 ] # 20 PixelSpacing

Page 6: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

Images dimension:Images dimension:

Ammettendo che ogni voxel occupi 32 byte qual è lo spazio RAM necessario a simulare 40 cm di TAC di cui il seguente è parte dell’header DICOM di un’immagine?

circa 170 MBytecirca 2 Mbytecirca 670 Mbyte

Page 7: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

Geant4-DICOM interface

Geant4-DICOM interface

Developed by L. Archambault, L. Beaulieu, V.-H. Tremblay (Univ. Laval and l'Hôtel-Dieu, Québec)

Donated to Geant4 for the common profit of the scientific community– under the condition that further improvements and developments are made publicly

available to the community

Released with Geant4 5.2, June 2003 in an extended example– by S. Guatelli mainly

Deeply revised in by Pedro Arce in 2007– Small improvements by S. Chauvie

Geant4 examples/extended/medical/DICOMGeant4 examples/extended/medical/DICOM

T. Aso & A.Kimura Ashikaga Institute of TechnologyT. Aso & A.Kimura Ashikaga Institute of Technology

Page 8: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

From phantom to MCFrom phantom to MC

Rows,columns(#): 512 512PixelSpacing_X,Y(mm): 0.875 0.875 SliceTickness(mm): 5.0 SliceLocation(mm): 20.0

Header + DATA SETS

Page 9: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

…cont……cont… #######################################

        #     Density Range                   Materials              #---------------------------------------------------           #       g/cm3                            -                    #---------------------------------------------------           #  [ 0.100 , 0.351 ]                 Lungs (inhale)            #  [ 0.351 , 0.800 ]                 Lungs (exhale)            #  [ 0.919 , 0.979 ]                 Adipose                   #  ] 0.979 , 1.004 ]                 Breast                    #  ] 1.004 , 1.043 ]                 Phantom                   #  ] 1.043 , 1.109 ]                 Liver                     #  ] 1.109 , 1.113 ]                 Muscle                    #  ] 1.113 , 1.400 ]                 Trabecular Bone           #  [ 1.496 , 1.654 ]                 Dense Bone                #######################################

ICRU 46

y = 995,06x - 1000,1

R2 = 0,9981

-1500

-1000

-500

0

500

1000

1500

0,0 0,5 1,0 1,5 2,0

relative electronic density

CT number

3-D view

Page 10: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

… and ends.… and ends.

Page 11: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

The structureThe structure

Page 12: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

From DICOM image to Geant4 geometry

From DICOM image to Geant4 geometry

Reading image information

Transformation of pixel data into densities

Association of densities to a list of corresponding materials

Defining the voxels– Geant4 parameterised

volumes– parameterisation function:

materialreverse engineering by S. Guatelli

Page 13: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

Start reading DICOM filesStart reading DICOM files

Page 14: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

Tranlsate TAGS with DICTTranlsate TAGS with DICT

Page 15: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

Read the header and create the tagRead the header and create the tag

Page 16: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

Implicit Endian Explicit VR, special casesImplicit Endian Explicit VR, special cases

Page 17: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

Implicit Endian Explicit VR, other casesImplicit Endian Explicit VR, other cases

Page 18: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

Implicit Endian Implicit VRImplicit Endian Implicit VR

Page 19: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

Create .g4dcmCreate .g4dcm

Page 20: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

Data.datData.dat

Page 21: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

CT2Density.datCT2Density.dat

Page 22: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

Write densityWrite density

Splitting materials in density intervals: In the class DicomDetectorConstruction, it is defined a density interval G4double densityDiff = 0.1;

Page 23: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

Navigation….Navigation….

:

The 1D optimisation . It will be very slow because each time a track exits a voxel it has to loop to all other voxels to know which one it may enter

The 3D optimisation with G4SmartVoxel: a 3D grid is built, so that the location of voxels is fast, but it requires a lot of memory

Using G4NestedParameterisation. The search is done hierarchically in X, Y and Z. It is fast and does not require big memory

Using G4PhantomParameterisation/G4RegularNavigation: an special algorithm to navigate in regular voxelised geometries (see GEANT4 doc). This is the fastest way without any extra memory requirement (and it is the default in this example). It includes an option (default) to skip frontiers between voxels when they have the same material. When using this option at each step the energy is all deposited in the last voxel; for properly distribution of the dose (=energy/volume) the G4PSDoseDeposit_RegNav scorer can be used

Page 24: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

MC Dose calculation in RadiotherapyHow accurate is the dose

calculation ?

Description of patients

Energy deposition

PhysicsGeometry

Validation studies

DICOM

Page 25: DICOM Network Roles –Successful communication - products must play opposite roles Receive images = Service Class Provider (SCP) Send images = Service Class.

Grazie per l’attenzione!