Home

Segment - Technical Manual v1.8 R1172

image

Contents

1. setcolormap Callback type Set colormap for current image stack setcurrenttimeframe frame Function to set current time frame input argu ment is frame to be set to current time frame setthisframeonly value Callback to set this frame only mode slowerframerate_Callback Makes movie play slower startlog log Start Segment log stoplog Stop Segment logging stopmovie_Callback End movie display switchtoimagestack no force This function makes no current image stack and updates graphics switchtopanel panel Make panel the currentpanel switchtoslice slice Called when current slice has changed If slice has changed make sure montage one are in sync Does nothing if slice CurrentSlice 94 systolelistbox_Callback Function called when changing longaxis motion in list box thumbnail_Buttondown Buttondown fen for thumbnails thumbnail_Buttonup forceinfirstempty Buttonup fen for thumbnails thumbnail_Motion Motion fen for thumbnails out thumbnailno in Helper fen to remember what image stack were clicked thumbnailslider Callback whattodo Slider callback for thumbnail slider timebar_Buttondown Button down function for the time bar in the vol ume graph timebar_Motion Update current timeframe when user clicked in vol ume graph unlighttool h Helper function to change color of a tool to repre sent unselected unselectallslices_Callba
2. endsystoleall Callback Change current timeframe of all image stacks to systole extraslice_Callback type Add an extra slice Type is either basal or api cal flip_Callback dim Helper function to image stack flipping tools flipt_Callback Helper function to flip in t direction la b flipvars b a Flip variables flipx Callback Flip x direction of current image stack Need to flip both x and z to maintain a righthand system flipx helper Helper function to flip in x direction 116 flipxy_helper Interchange z and t of current image stack flipxz_Callback Interchange z and x of current image stack flipy_Callback Flip y directon of current image stack Need to flip both y and z to maintain a righthand system flipy_helper Helper function to flip in y direction flipz_Callback Flip z direction of current image stack Need to flip both z and x to maintain a righthand system flipz_helper Helper function to flip in z direction flipzt_Callback Interchange z and t for current image stack imageinfo_Callback Displays image information of current image stack intensitymapping_Callback Plots intensity mapping function invertcolors_Callback Invert colors in current image stack essentially 1 x kspace_Callback Shows KSPACE of image Fourier Transform mergestacks Merge to image stacks vertically i e stack in z mirrorx_Callback Mirros in x
3. ROI EndoX EndoY a struct that contains information of store region of interest ROD It contains the following fields e X X coordinates of regions of interests They are stored in an array as N x T where N is the number of points along the contour to be precise it is actually DATA NumPoints T is the number of time frames For non time resolved ROI s X can also be a vector of length N e Y Y coordinates of regions of interest For details about size see above e Z Z coordinates of the region of interest e Sign sign of the region of interest This is used for flow quantifications and is stored as a vector with elements that are either 1 or 1 e RoiName name of the region of interest e RoiLineSpec line specification for the re gion of interests Stored as a string as Mat lab compatible line specifications Examples are b blue line y yellow dotted line X coordinates of the left ventricle endocardium Applied values are either or an array with size NxTxZ where N is the number of points along the contour 80 but technically DATA NumPoints T is the number of timeframes and Z is the num ber of slices Y coordinates of the endocardium 49 CHAPTER 11 SET VARIABLE EndoPinX EndoPinY EndoXView EndoYView EndoPinXView EndoPinYView EpiX EpiY EpiXView EpiYView EpiPinX 50 X coordinates of endocardial pins Stored as a cell array of vectors of
4. Segment uses three global variables to store the state of image data graphi 19 CHAPTER 8 OVERVIEW OF SEGMENT roi m Algorithms for region of interest functionality Area calculation User interaction flow m ROI tracking Flow quantification Flow graph fusion m Image fusion tools spect m SPECT tools tools m Image fusion tools utility m DICOM utilities export m Export utilities lv m LV segmentation code Vm RV segmentation code viability m Automated scar delineation scar drawing routines strain Strain analysis code 20 tH tH t tH tH mi HI TH th N tH segment m Help fnc s Backbone Error boxes Warning boxes E input dialog boxes User interface 5 A Calculations Visualization openfile m Loading and interpretation of DICOM files disk Patientdatabase segmentserver Network pacs m PACS connection Event triggered by user interface gt Request for calculation gt Request for graphical redraw or user input output _ Only precompiled code available Figure 1 Overview of the main building blocks of Segment and transaction analysis Red arrows indicate communication that is initiated from a user interface Green arrow indicates call of calculation subroutines Blue arrows indicate requests for graphical update or call of low level user input amp output routines Gray bo
5. y existrvendoonlyinedes no True if endocardium exists in selected slices y existrvepionlyinedes no True if endocardium exists in selected slices fasterframerate_Callback Makes movie play faster figure DeleteFcn Shut down Segment in a controlled manner and remove global DATA SET NO Note that filequit callback takes care of asking user yesno filecloseall_Callback silent 75 CHAPTER 16 SUBFUNCTIONS IN SEGMENT M Deletes all image stacks and resets Segment to original state fileclosecurrentimagestack_Callback frompreviewmenu Close current image stack i e the current image stack is deleted It also takes care of eventual cross couplings between image stacks fileimportsegmentation_Callback Imports segmentation from a seg file to current image stack The difference is that less error check ing is preformed It also tries so find the matching slices etc fileloadnext_Callback Load next mat file in the current data folder fileloadsegmentation Callback pathname filename Loads segmentation to current image stack from a seg file fileopen Callback Loads a set of files as a 4D volume and also up dates preferences Calls the fen openfile which dis plays the fileloader GUI filequit_Callback Quit segment also ask user if he she is sure filesaveall_Callback Saves all image stacks to one mat file Calls file saveallas Callback which is the workhorse when saving ima
6. 77 CHAPTER 16 SUBFUNCTIONS IN SEGMENT M Find matching image stacks output normalno normal short axis stack or closest equivalent scarno viability short axis stacks flowno flow image stack s stressbaseline baseline stress im ages stresswork either medium work or maximum work scarno findscarshortaxisno Finds only one scar shortaxis stack ind findslicewithendo no Find slices with endocard in anytimeframe ind findslicewithendoall no Find slices with endocard in all timeframes ind findslicewithepi no Find slices with endocard in anytimeframe ind findslicewithepiall no Find slices with endocard in all timeframes ind findslicewithrvendo no Find slices with RV endocard in anytimeframe ind findslicewithrvepi no Find slices with RV epicard in anytimeframe ind findslicewithscarall no Find and returns slices with scar flow3dmovie Callback arg scaling no up down left right Displays 3D movie of velocity in a vessel flowbar Buttondown type Button down function for flow bar in flow report GUI flowbar_Buttonup type Button up function for flow bar in flow report GUI 78 flowbar Motion Motion function for flowbar flowcreate helper angio Helper function to create flow derived image stacks flowcreateangio_Callback Create angio image flowcreatevelmag_Callback Create velocity magnitude image flowdelete helper angio Helper
7. centiles to include in the detection of the static tissue See documentation on the eddy current compensation for further details e PhaseCorrMethod contains the selected method for the eddy current compensation e PhaseCorrTimeResolved true if the eddy current compensation is time resolved De fault value is false If time resolved then PhaseCorr has the same image dimensions as IM otherwise the third image dimension is one e PhaseCorrStaticTissueRois true if regions where static tissue should be taken from drawn ROls instead of estimated from the image Default value is false e VelMag contains a reference to the image stack that contains a velocity magnitude stack absolute value of the velocity Nor mally this field is set to an empty vector as the velocity magnitude is seldom con structed 47 CHAPTER 11 SET VARIABLE 48 Report Perfusion Strain Stress KeptSlices CenterX CenterY Field used to contain information for the patient report sheet generator functionality This field is only set for the first image stack i e SET 1 The exact content of this struct is subject to change Reserved for future usage Reserved for future usage Reserved for future usage This vector contains the slices that are kept after a slice removal operation Set by slice removing operations but otherwise unused Kept for future use Position of the center mark Position of the center mark
8. consitency See also MYCOPYFILE MOVEFILE 22 17 mymsgbox m MYMSGBOX Helper function works as MSGBOX MYMSGBOX STRI TITLE ALIGNMENT STRI String to display TITLE Title of messagebox FIGHANdle Optional figure handle indicating alignment See also MYWARNING MYMSGBOX MYADJUST MYWAITBARSTART 22 18 myoptimpartial m Script for exhaustive search 22 19 myrequirepc m Z MYREQUIREPC Returns true if PC platform If not PC platform then an error messsage is displayed Used to block certain functions that is not implemented for other platforms than PC 126 22 20 MYSET M 22 20 myset m MYSET Same as SET but removes NaN s in the handles 22 21 mystubfailed m Displays generic error message from stubs 22 22 mywaitbarclose m MYWAITBARCLOSE Closes a mywaitbar structure and removes waitbar See also MYWAITBARSTART MYWAITBARUPDATE 22 23 mywaitbarstart m H MYWAITBARSTART NUMITERATIONS STRING IGNORELIMIT FIGHANDLE Similar to waitbar but first input argument is the total number of iterations that will be performed Second input argument is string that will be displayed and third optional argument is a limit that if fewer iterations that this is performed then there will be no graphical output Another difference to standard waitbar is that no more than 20 graphical steps are displayed to minimize CPU consumption Function returns a handle to a MYWAITBAROBJECT FIGHANDLE is optional an
9. Even if this project started as a one man project it has grown and it would never been possible without the help of many many people Financial support has been received from the Swedish Heart Lung founda tion Swedish Research Council local founds from Osterg tland County and Region of Scania I would like to acknowledge all the people that have put in feed back on usability and desired functionality algorithm etc Among others Andreas Otto Andreas Sigfridsson Erik Bergvall Erik Hedstr m Henrik Haraldsson Henrik Engblom Hakan Arheden Jan Engvall Lars Wigstr m Lisa Hard af Segerstad Karin Markenroth Bloch Marcus Carlsson Martin Ugander Mikael Kanski Finally thank to you all Segment users in the research com munity that has inspired and contributed to the development Special thanks to code providers Erik Bergvall core routines of strain anal ysis Helen Soneson strain analysis module SPECT module Image fusion module Shruti Agarwal refactory of strain analysis module Jonatan Wul can Sectra Plugin module and general improvements Johannes T ger 3D flow and volume tracking M rten Larsson 3D flow and kinetic energy Commercial development has been done by Jane Sj gren improvements to general object segmentation implementation of prototype based segmenta tion CT functionality and graphical seriesselector General debugging and implementation of the new interpolated contours has been done by Johan Ug
10. keystru Finds number of directions and ask if remove un wanted directions usedicomcache dicomcache getdicomcache files2load numselected Get dicomcache z getfilenumber stri Take only the last digits of a filename if numbers exist files2load getfiles2load ind2load Gets files to load as a cell removes chache files dicom dirs seg files etc res getinfo s default varargin Used to extract info from a structure array Can take several input arguments to check for syn onyms getpathinfo Scans directory and builds a structure of relevant information The function populates the file list box and stores DATA Preview FileList variable If there is a directory return the number of files If it is a file simply the filename Later add also if it is selected hasdcm description getseriesdescription folder varargin Assumes that folder is a folder with a DICOM im age series one or more dicom files ind getsortingorder keystruct 102 Gets sorting order of images given keystruct Sort the files after slicekey most significant type key instancekey triggerkey filekey least sig nificant rotated needstoflip angles isrotated keystruct uniquedirections Tests if it is a rotated image stack keypressed fignum evnt Helper function to handle keypressed events im numberofdirections loaddicomfiles files2load numselected directiontoload This function
11. Systolic Volume Full Width Half Maximum Graphical User Interface Heart Rate Left Ventricle Left Ventricle Mass Microvascular obstruction Mega Byte Maximum Intensity Projection Multiplanar Reconstruction Magnetic Resonance Magnetic Resonance Imaging Photon Emission Tomography Peak Ejection Rate Proton Density Weighted Peak Filling Rate Posterior Lateral Wall Thickness Region Of Interest Right Ventricle Right Ventricle Major Axis Right Ventricle Minor Axis Single Photon Emission Computed Tomography Steady State Free Precision Stroke volume Time of Flight Velocity Encoding limit 4 3 TRADEMARKS 4 3 Trademarks Below are some of the trademarks used in this user manual e Segment is a trademark of Medviso AB e Matlab is a trademark of the Mathworks Inc http www mathworks com 5 Document purpose The purpose of this document is two fold A Work as a technical documen tation of Segment for Medviso AB B work as a technical documentation for researcher who wish to use the plug in functionality of Segmentas described in I Therefore all details described in this technical manual may not be applicable to all developers since parts of the source code is only accessable by Medviso AB 11 6 Coding Conventions This chapter describes the coding conventions that has been used when cod ing Segment I have really tried to use a consistent naming rules to ensure that variables are given a logical name H
12. before you send another message 22 4 mycopyfile m MYCOPY Copies a file from source to dest MYCOPY SOURCE DEST SIZ Should be platform independent and faster than making a system call If really large files are used then do a system call instead Essentially a wrapper to COPYFILE kept for naming consistency See also MYDEL MYMKDIR 22 5 mycountunique m MYCOUNTUNIQUE counts the number unique elements in the input vector N MYCOUNTUNIQUE V lt tol gt N is the number of unique elements V is numeric input vector tol is numeric tolerance if omitted then set le 4 See also matlab builtin unique 22 6 mydel m MYDEL Delete file from disk OK MYDEL filename Should be platform independent See also MYCOPY RECYCLE 122 22 7 MYDIR M 22 7 mydir m MYDIR Extracts directory information and are always first on the list thumbs cache folders cache dicomdir excluded folders comes first 22 8 mydisp m Internal display function 22 9 mydispexception m MYDISPEXCEPTION ME Pretty prints a caught exception for debugging ME is matlab error struct caught in a try catch clause See documentation on try and catch syntax 22 10 myexecutableext m MYEXECUTABLEEXT Returns proper file extension for exectutables See also MYREQUIREPC MYMKDIR MYMOVEFILE MYCOPYFILE MYDEL MYDIR 22 11 myfailed m MYFAILED STRI FIGHANDLE Displays an error message STRI FIGHANDLE is an optional alignment indica
13. doubles with the size T x Z where T is the number of time frames and Z is the number of slices For more details about pins see the User Manual Y coordinates of epicardial pins A compact representation used for drawing the en docardial contour in montage view Stored as a double array with the size N 1 Z x T where N is the number of points along the endocardial contour DATA NumPoints T is the number of timeframes and Z is the number of slices It is the same as EndoX but each slice offseted and packed separated with a NaN so that drawing of the en docardial contours can be done with a single com mand The correspondence for the Y coordinates to EndoXView Compact representation for endocardial pins Stored as a cell vector with the T elements con taining vectors See above Epicardial contour of the left ventricle otherwise same as EndoX See above Corresponding to EndoXView Corresponding to EpiXView Corresponding to EndoPinX EpiPinY EpiPinXView EpiPinYView EndoDraged EpiDraged RVEndoX RVEndoY RVEndoXView RVEndoYView RVEpiX RVEpiY RVEpiXView RVEpiYView SectorRotation Mmodex Corresponding to EndoPinY Corresponding to EndoPinXView Corresponding to EndoPinYView A logical array containing a 1 where the left ven tricle endocardial contour have been dragged Same as above but for the epicardial contour Endocardial contour of the right ventricle See als
14. fraction 52 PFR PER PFRT PERT RVV RVEPV RVM RVESV RVEDV RVSV RVEF Longaxis AutoLongaxis StartAnalysis Left ventricle peak filling rate Calculated us ing circular convolution with a central difference three elements and taken as the largest deriva tive of LVV Left ventricular peak ejection rate Taken as the largest negative derivative of LVV Time of peak filling Given in time frames Time of peak ejection Given in time frames Right ventricle volume See LVV Right ventricle epicardial volume see also EPV Right ventricle mass see also LVM Right ventricle end systolic volume see also ESV Right ventricle end diastolic volume see also EDV Right ventricle strove volume see also SV Right ventricle ejection fraction see also EF Long axis motion of the left ventricle see User Manual for details on how the volume is compen sated for long axis motion To convert to mm sub tract with 1 True if the amount of long axis compensation should be automatically calculated See User Man ual for details Time frame for start of analysis used in flow quan tification See User Manual for details Default value is 1 93 CHAPTER 11 SET VARIABLE EndAnalysis EndoCenter NormalZoomState MontageZoomState Measure LevelSet 54 End time of analysis used in flow quantification See User Manual for details Default value is same as TSize True if center of endocardium is
15. function to delete angio images flowdeleteangio Callback Delete angio image flowdeletevelmag_Callback Delete velocity magnitude image flowapqs_Callback Qp Qs flow analysis not yet implemented flowsetvenc_Callback Set VENC for current image stack varargout flowvesselenhancement no Beta function to show vessels with time depending flow x y slice getclickedcoords Find coordinates where the user last clicked x and y are given in internal coordinate system i e the functions determines slice in montage view no getclickedpreview Function which returns the clicked preview image intersections maxintersect getendointersection no 79 CHAPTER 16 SUBFUNCTIONS IN SEGMENT M Returns the intersection of the endocardial seg mentation and the current slice and current time frame of SET no r getfieldifcommon SET fname Helper function to filesavedicom_Callback t getframenumber Calculates what frame to show when playing a movie if storing a movie then show next frame oth erwise user timer info pos xdir ydir zdir getimageposandorientation no slice Return image orientation for current slice or sec ond input argument If two outputvariables then zdir is also outputed value getthisframeonly Function to check thisframe onlye mode or not help Callback Open Segment homepage in browser helpabout_Callback Displays help information about Segment helpbu
16. give some implementation details for the interested reader A good technical overview of the Segment project is also given in 1 For copyright questions see Chapter 2 Before reading this user manual the reader should be well acquainted with Segment and programming in Matlab This manual is not a manual how to use Segment it s intention is only to give technical details on how things are implemented in Segment Some implementational details are also given in the user manual The entire Segment block can be divided into 11 main function blocks All these blocks are coded in a separate m file On overview on how they com municate and relates to each other is shown in Figure The main block is the Backbone Segment It contains the user interface all graphical output routines routines for volume calculations etc Generally this module calls the other functional blocks These function blocks may then call helper functions such as graphical refresh or volume calculations etc in Segment but they do not initiate new processes in the main block Some of the building blocks contains propriety algorithms and will only be made available as p code i e platform independent precompiled Mat lab code The blocks that will be hidden are lv m rv m viability m flow m pacs m patientdatabase These functions will not be described in great detail in this document for documentation of these files please see internal documents at Medviso AB
17. interp points this slice interpdeletepointthisslicephase Delete interp points this slice and phase interpdrawGuessPoints_Callback type panel Guess points in current selection then moves to corrosponding tool interpdraw Buttondown panel type forcedraw Button down function to draw interp points interpx interpy interpdrawhelper interpx interpy contourx contoury x y Helper fen to interpdrawbuttonup Side effects is update of DATA Pin xout yout interphelper pinx piny Interpolates points to create a contour without loops interppointButtonup type Button up function for interp points interppointMotion type Motion function for interp points tool interptoolfromcoords x y slice Get tool from point valid for interpendo inter pepi interprvendo interprvepi keypressed fignum evnt Called when key is pressed loadfieldhelper This fen fixes backward compability when a mat file is loaded loadguipositions Load prestored positions of GUT 82 loadok This function is called when managed to load an image volume It is essential for enabling and set ting up things loadok_helper no Helper function to loadok it enables vital GUI options loadokmultidataset no This function is called when managed to load a multidataset mainresize_Callback This fen is called when user resizes GUI makeviewim panel Rearrange data t
18. of the third time frame and the first slice of the current image stack The upper left most slice in the montage view is slice one Furthermore it is assumed that the slices should be ordered so that going from the first slice to the last would be going from the base to the apex of the heart The releations between the x y z and RL AP FH coordinate systems is given by the fields ImagePosition and Image0rientation Below are two examples given The RL AP FH coordinates center of the voxel s SET 1 1M 1 1 1 are given by SET 1 ImagePosition The RL AP FH coordinates center of the voxel SET 1 IM 2 3 4 are 17 CHAPTER 7 COORDINATE SYSTEMS given by zdir cross SET 1 Image0rientation 1 3 SET 1 Image0rientation 4 6 pos SET 1 ImagePosition 2 1 SET 1 ResolutionX SET 1 ImageOrientation 4 6 3 1 SET 1 ResolutionY SET 1 ImageOrientation 1 3 4 1 SET 1 SliceThickness SET 1 SliceGap zdir Coordinated conversions can be performed using the functions xyz2rlapfh and rlapfh2xyz in Segment m 18 8 Overview of Segment Segment is written in Matlab and is a fairly large software project Currently it contains of around 100 000 lines of m code distributed more than 100 files and 1400 subfunctions and 54 gui s There are 23 files c code with about 10 000 lines This Technical Manual aims to describe how to write own plug ins that interface with the software and
19. range in MRI pulse sequence Read from DICOM tags if presented otherwise set to zero Given in centimeters per second Special tag read from DICOM for GE scanners 37 CHAPTER 11 SET VARIABLE 38 SliceThickness SliceGap Scanner Thickness of slices in millimeters Read from DI COM file by looking at the tag SliceThickness If not present then the tags ImageOrientation and ImagePosition are used Gap between slices in millimeters if present Read from DICOM file by looking at the tag SpacingBetweenSlices if present If not present then the DICOM tags ImageOrientation and ImagePosition plus SliceThickness from above are used Identified scanner identified by parsing the DI COM tag Manufacturer Presented values are e ADAC e Bruker e GE Philips e Siemens e Suinsa Toshiba ImagingTechnique String of capital letters identifying type acquisi tion used when acquiring the image stack Possible values depends are given by the par files Bach such files corresponds to one image type and con tains information of how image should be mapped before segmentation The two first letters should correspond to imaging modality i e MR CT PT US CR Shipped par files are CTheart par Segmentation of LV MRBB par MR black blood sequence MRDE par MR delayed contrast enhance ment MRGE par MR gradient echo images MRPDW par MR proton density weighted im ages MRSSFP par MR stead
20. with preferences For a complete de scription of the preferences see the User Man ual The preferences are read when Segment is started or when the preferences GUI are opened Segment tries to find a suitable place for the preferences file by looking in the environment variables APPDATA USERPROFILE HOMEPATH Place can be found by calling the Segment function getpreferencespath The fields in the Pref struct are e datapath Path to image data This is the path first opened when the fileloader GUI is started e exportpath Path where image data is ex ported to e AnonymMode True if patient details should no be shown on screen Note that this does only affect the screen To permanently anonymize an image stack see User Manual for details e AddPoints True if pins should be added when manually drawing a part of a contour e EndoCenter True if the center of the endo cardium is used for drawing spikes and re gional wall motion analysis If false the the center of the epicardial surface is used e BlackWhite True if the lines contours should be drawn in white color instead of object specific colors e LineWidth Width of the lines Default is 1 e NumPoints Number of points to evaluate the endocontour along e LearnMode True if learning messages should be displayed e UndoHistory The maximum length of the undo history WindowSize Preview Run Record e reportsheetpath Path to where the files fo
21. 5 E Heiberg H Engblom J Engvall E Hedstrom M Ugander and H Arheden Semi automatic quantification of myocardial infarction from delayed contrast enhanced magnetic resonance imaging Scand Cardio vasc J 39 5 267 75 2005 H Engblom M B Carlsson E Hedstrom E Heiberg M Ugander G S Wagner and H Arheden The endocardial extent of reperfused first time myocardial infarction is more predictive of pathologic Q waves than is infarct transmurality a magnetic resonance imaging study Clin Physiol Funct Imaging 27 2 101 8 2007 129
22. H Long axis 2 chamber view e 3CH Long axis 3 chamber view e ACH Long axis 4 chamber view e Sagittal e Coronal e Frontal e Transversal e Short axis e RVOT e Aorta e Pulmonalis e Vena cava inferior Same as DICOM tag ImagePosition If not pre sented then set t00 0 0 Contains position in mm in 3D of the upper left pixel in the top slice in the image stack For further details on coordinate sys tems see Section 7 41 CHAPTER 11 SET VARIABLE 42 ImageOrientation Same as DICOM tag ImageOrientation If not Modality PathName FileName OrigFileName presented then setto1 0 0 0 1 0 The three first numbers contains the normalized vector of Seg ments Y direction given in the patient table co ordinate system The last three numbers contains the direction of the X direction For further details on coordinate systems see Section Same as the corresponding DICOM tag Path to where the image is saved Filename of the file storing this image stack Original filename Note that this information is removed when anonymizing an image stack PatientInfo PatientInfo is a struct containing the following fields e Name is the name of the patient e ID is the PatientID e BirthDate in the date format YYYYMMDD e Sex Applied values are M F e Age Applied values are numeric gt 78Y e HeartRate Same
23. Segment Technical Manual v1 8 R1172 July 16 2010 MEDVISO AB http www medviso com Kollegiev gen 39 SE 224 73 Lund Sweden Tel 46 76 183 6442 Contents Regulatory status 1 1 Commercial usage of Segment 22 2 222 1 1 1 Indications for ise 2 zo BR Aw dado Investigational purposes 2 2 2 222mm nenn 1 2 N w A 4 1 4 3 al License terms Acknowledgements Conventions and Abbreviations Typographic conventions o o o 42 Abbreviations vu lt c so es es oso Oe DRA as Trademarks Document purpose 6 Coding Conventions Naming functions 2 2 222 22 nur sen nen Naming variables 24 4 ak ede 0 doe eur de eu Name graphical handlesl 2 22 2 2 mn nn 6 4 Object oriented programming o p opoe m a eae Indentation and spacing a 222m nn Documenting Godel 2 54 lt a a as aa bere ea 7 Coordinate systems 6 1 6 2 6 3 6 6 6 7 e Introduction ili 11 13 13 13 14 14 15 15 15 17 17 ii CONTENTS 00 Overview of Segment Running Segment from Matlab O DATA variable 1 SET variable 2 How to create own plug ins 3 Segment user community 14 Testing Segment 14 1 Testing functionality 4 0 be eed a gu 14 2 Testing broken callbacks 5 Implementation details 15 1 Version handeling lt lt lt lt lt ee ee 15 2 Nume
24. ander and Erik S dervall A Conventions and Abbreviations This chapter describes the typographic conventions and used abbreviations in this manual and in the program 4 1 Typographic conventions A Ctrl A lar tif C Program File File Save As Close Endocardium X Single frame Key A at the keyboard Control key Hold down Ctrl key and A simultaneously Icon in toolbar Filename extension Folder Menu i e File menu Sub menu i e under the File menu the item Save As is found Push Toggle button in the graphical user interface Radiobutton in the graphical user interface Checkbox in the graphical user interface 4 2 Abbreviations 2CH 3CH ACH 3D 3D T AA ASW ARD BPM BSA CO Two chamber view Three chamber view Four chamber view Three Dimensional Time Resolved Three Dimensional Ascending Aorta Anterior Septal Wall Thickness Aortic Root Diameter Beats per minute Body Surface Area Cardiac Output CHAPTER 4 CONVENTIONS AND ABBREVIATIONS CT DA DE MRI ED EDD EDL EDV EF ES ESD ESL ESV FWHM GUI HR LV LVM MO MB MIP MPR MR MRI PET PER PDW PER PLW ROI RV RVmaj RVmin SPECT SSFP SV TOF VENC Computed Tomography Descending Aorta Delayed Enhancement MRI End diastole End Diastolic Dimension End Diastolic Length End Diastolic Volume Ejection Fraction End systole End Systolic Dimension End Systolic Length End
25. as SET NO HeartRate retained for backwards compability e AcquisitionDate Applied values and YYYYMMDD e BSA Applied values 0 or numeric value Manually entered or automatically calcu lated from Weight and Length See user manual for details and equations used e Weight Measured in kilograms Applied values are 0 or numeric value e Length Measured in centimeters Applied values are 0 or numeric value XMin When loading images it is possible to crop the im ages XMin contains the number of pixels that the contours are translated due to cropping compared to the original image size When no cropping is performed XMin is 1 YMin Same as XMin except relates to the Y direction Cyclic True for image stacks that are cyclic i e covers a complete heart cycle This flag is used by the seg mentation engine when delineating the left ventri cle 43 CHAPTER 11 SET VARIABLE Rotated True for image stacks that are rotated around a common rotation axis This is currently imple mented as an add on and only affects the volume calculation Currently 3D visualization does not take this flag into account This will be addressed in future versions 44 Scar This is a struct containing information for viability analysis For details on how the algorithm works see 4 The most important fields of the struct are e IM contains the image itself a copy This is from historical issues and may be rem
26. at new programmers easily can understand the code Note especially that the part of the code that was trickiest to write also deserves the most comments Functions should be written as function out foo bar 15 CHAPTER 6 CODING CONVENTIONS Explanatory help text of the function 7Help text may span multiple lines Your code begins here It is very important to follow this coding standard since part of this doc umentation is automatically generated from the source code 16 7 Coordinate systems This chapter specifies the coordinate systems used in Segment 7 1 Introduction DICOM specifies coordinates in the RL right left AP Anterior Posterior and FH Feet Head coordinate system Internally Segment uses a coordi nate system x y z that is relative the respectively image stack In other words for each image stack the relations between RL AP FH and x y z is different Thoughout the program the x dimension refers to the first dimension along the arrays i e the rows in Matlab The upper left pixel in the images dis played on the screen have the coordinate 1 1 The unit used is in pixels In the normal image coordinate system this means what is usually meant as the y coordinate if one think of coordinate systems learned in elementary school For instance plotting commands therefore generally takes the form plot SET NO EndoY 3 1 SET NO EndoX 3 1 This will plot the contour of the endocardium
27. ation report3dmodelrotated Display 3D model of rotated image stacks varargout reportbullseye fcn arg2 Main function for reporting bullseye varargout reportflow_Callback arg GUI for flow analysis reportradvel_Callback GUI for radial velocity reportroi_Callback arg GUI for ROI analaysis reportslice_Callback type GUI for graphical display of slice based regional function reportvolumecurve_Callback GUI for reporting the volume curve reportvolumeloop_Callback Reporter for volume loop not yet implemented xnew ynew resampleclosedcurve x y n General helper fen to resample a closed curve 90 xnew ynew resamplemodel x y n Resample the a stack of contours typically seg mentation to different number of points n resetguipositions Resets GUI positions of Segment resetlight_Callback Activated by toolbar icon different from con trast_Callback below resetpreview Reset preview structure in DATA Preview z reshape2layout im no Convert a 3D array to an layout ed image with cols and rows map returnmapping no forcetruecolor If SET no Colormap exists Returns truecolor colormap for this If not Returns grayscale 1 D indexcolor map Unless forcetruecolor is true then 3 D truecolor grayscale is returned regardless of SET no Colormap See REMAPUINTS below pos rlapfh2xyz no rl ap fh Convert from RL AP FH coor
28. available con volver ok enablecalculation Returns ok if slices are selected Sideeffect of this function is that it turns on interaction lock stops movie Calling this function will not allow user to click on a new function before endoffcalculation is called Note that this mechanism needs to be pretty safe with try catch clauses otherwise Seg ment may hang Viewrefresh calls endoffcalcula tion endo Buttondown panel Button down function for manual draw of endo cardium endoffcalculation Turns off interaction lock called after a calcula tion See above epi_Buttondown panel Button down function for manual draw of endo cardium esed_Buttondown type Buttondown function when dragging ES or ED markers 74 esed_Buttonup type Buttonup function when dragging ES or ED mark ers esed_Motion type Motion function when dragging ES or ED markers in volume graph evalcommand_Callback Function to evaluate matlab commands from com piled version y existendo no True if endocardium exist in someslices y existendoinselected no True if endocardium exists in selected slices y existendoonlyinedes no True if endocardium exists in selected slices y existepiinselected no True if epicardium exist in selected slices y existepionlyinedes no True if endocardium exists in selected slices y existrvendoinselected no True if RV exist in selected slices
29. bility of text viewimage Callback type Select type of image to view on screen viewimagestack Callback no Make clicked image stack visible viewimagestackas_Callback mode Select how to view current image stack viewintersections_Callback Toggle visibility of intersections viewmanualinteraction_Callback Displays a GUI indicating in which slices and time frames manual interaction have been made for LV segmentation viewpandir_Callback direction Pans current view panel viewrefresh_Callback Main graphical refresh viewrefreshall_Callback Main refresh of GUI viewspecial_Callback mode 98 Called to switch to predefined layouts of the GUI Mode is current mode to use viewupdateannotext panel Updates the visibility of point measurement text Respects hideX settings viewupdatetextposition panel Updates the location of the corner text to always stay still From drawx it is called panelwise since the linked panels aren t ready when the first panel is drawn From other situations it is called without arguements and handles the linkage by itself JU viewzoomin_Callback Zooms in current view panel viewzoomout_Callback Zooms out in current view panel volume helper Helper to find peak ejection and empty volumes etc volumeaxes_Buttondown Called when user has clicked volume graph sets current timeframe to clicked point po
30. ck No long axis compensation is performed for the rotated image stacks T Vez 15 6 Mass calculations When converting volume to mass the density is assumed to be 1 05 g ml Note that this number differs in the literature between 1 04 to 1 05 Further more note that these numbers are valid for healthy myocardium ex vivo what happens in for instance infarcted regions is not shown in the literature Therefore usually it is better to report volume instead of mass 15 7 Calculation of BSA The formula used is based on Graham and George BSE 091 x 04224 0 02350 4 where w is the body weight in kg and h is heigh in cm 15 8 Peak ejection filling Rate When calculating peak ejection and peak filling rate the volume curve is differentiated using forward difference approximation For cyclic datasets cyclic convolution is used for the calculation 15 9 Wall thickness Currently wall thickness is defined as the thickness along a radial spike from the endocardial or the epicardial center depending on setting in the prefer ences In the future I plan to also include the modified center line method Note that the centers are calculated for each timeframe separately 66 15 10 INFARCT SIZE EXTENT AND TRANSMURALITY Wall thickening is defined as the wall thickness in end systole minus the wall thickness in end diastole Note that it is possible to manually or automati cally select what timeframes that are diastole or sys
31. ck Unselects slices in current image stack update thumbnail no This fen updates thumbnail no updateicons mode Updates icons when new mode is selected result updateintersections_Callback slices no type Calculates the intersection of a endocardial seg mentation and SET no for slices all or slices current 95 CHAPTER 16 SUBFUNCTIONS IN SEGMENT M updatemmode arg Calculate and show mmode image updatemmodeline Updates the mmode line in mmode display updatemmodevisibility Updates mmode visibility updatemodeldisplay no Update data used to correctly display segmenta tion in montage view This fen needs to be called when the segmentation has changed updateoneim no Updates viewim for one view or mmodespatial Called when changed currentslice updateparallelsets Chages CurrentSlice in SETs that are par allel to SET NO to the slice closest to SET NO CurrentSlice updateselectedslices Graphically updates which slices are selected updatetimethings no This fen is called from switchimagestack and dis ables enables features that are not available de pending of the image stack is timeresolved or not updatetitle Updates titleline of main GUI updatetool newtype panel Update display of tools and also callbacks of the graphical objects in the panel If panel given then only update the panel otherwise all image
32. d indicates alignment See also MYWAITBARUPDATE MYWAITBARCLOSE 22 24 mywaitbarupdate m H MYWAITBARDATE H Update a mywaitbarstructure and increment counter one step Graphic is updated depends on 127 CHAPTER 22 GENERAL INPUT OUTPUT FUNCTIONS setting when intializing the structure See also MYWAITBARSTART MYWAITBARCLOSE 22 25 mywarning m MYWARNING STRI HANDLE Displays a warning message User needs to click OK to discard message See also MYWARNINGNOBLOCK 22 26 mywarningnoblock m MYWARNING STRI HANDLE Displays a warning message User needs to click OK to discard message See also MYWARNINGNOBLOCK 22 27 myworkoff m MYWORKOFF Graphically show that calculation is finished by restoring pointer 22 28 myworkon m MYWORKON Graphically indicate that Segment is busy by showing watch pointer 128 Bibliography 1 E Heiberg J Sjogren M Ugander M Carlsson H Engblom and H Arhe den Design and Validation of Segment a Freely Available Software for Cardiovascular Image Analysis BMC Medical Imaging 10 1 2010 E Heiberg Automated Feature Detection in Multidimensional Images PhD thesis 91 85297 10 0 Linkoping universitet Department of Biomed ical Engineering 2004 E Heiberg L Wigstrom M Carlsson A F Bolger and M Karlsson Time Resolved Three dimensional Automated Segmentation of the Left Ventricle In IEEE Computers in Cardiology 2005 volume 32 pages 599 602 Lyon France 200
33. dinates to Segment internal coordinate system rotatedplothelper xc yc linecolor Helper function to display segmentation in rotated image stacks saveguipositiontodisk Save guipositions to disk scale_Buttondown type panel Button down function for scaling of objects con tours 91 CHAPTER 16 SUBFUNCTIONS IN SEGMENT M scale Buttonup type Button up function for scaling scale Motion reset Motion function for scaling segmentclear_helper Helper fcn to clear segmentation segmentclearall_Callback force Clear all segmentation both endo and epi lv and rv segmentclearallbutsystolediastole_Callback Clears all segmentation in all timeframes but sys tole and disastole segmentclearalllv Callback force Clear all lv segmentation both endo and epi segmentclearalllvbutsystolediastole_Callback Clears all LV segmentation except in systole and diastole segmentclearallrv_Callback force Clear all rv segmentation both endo and epi segmentclearallrvbutsystolediastole Callback Clears all RV segmentation except in systole and diastole segmentclearslices ind timeframes endo epi rvendo rvepi Workhorse in clearing slices segmentclearslices_Callback endo epi rvendo rvepi Helper function to clear segmentation in selected slices segmentclearslicesthis Callback endo epi rvendo rvepi Clear segmentation for slices in this timeframe 92 segmentc
34. direction Need to flip both x and z to maintain a righthand system normalize Callback Normalize image data of current image stack Make sure image intensities are in the range 0 1 Also stores in so that true image itensities can be retrieved see calctruedata 117 CHAPTER 21 SUBFUNCTIONS IN TOOLS M precomp_Callback Function to make intensity precompensation of MR gradient echo images removeallbutedes_Callback Remove all timeframes in current image stack ex cept diastole and systole removeallbutthistimeframe_Callback Remove all timeframes except current timeframe removecurrenttimeframe_Callback Remove current timeframe removeduplicatetimeframes_Callback Removes duplicate timeframes askes for the num ber of duplicates Two means keep every second frame removenexttimeframes_Callback Remove next timeframe and upto and including last timeframe removeprevioustimeframes_Callback Removes previous timeframe and all frames to first timeframe removeselected Callback Remove selected image stacks from current image stack removeslices_Callback ind force Remove slices from current image stack This is the workhorse when removing slices removethis_Callback Remove current slice 118 removetimeframes ind Helper function to remove timeframes This is the workhorse when removing timeframes removeunselected_Callback Remove unselected slices from curr
35. e DATA CurrentTool Abbrevations are also given capital letters For instance SET NO TSize where T stands for time Field names with all capital letters corresponds to matrices For in stance SET NO IM or DATA BALLOON The use of plural s is very limited and only used where there are limited numbers of values the field and it may be necessary to point out that there are more values than just a scalar For instance DATA ViewPanels is just instead of DATA ViewPanel to point out there are or may be more than one view panel Name graphical handles The graphical handles are named with all lower case letters and no underscore letters Generally the names are rather long and exploratory The following general naming conventions apply 6 4 Text edit boxes ends with edit Static text ends with text Axes objects ends with axes Pushbuttons ends with pushbutton Radiobuttons ends with radiobutton Checkboxes ends with checkbox Togglebuttons ends with checkbox Object oriented programming For new objected oriented functions the new syntax introduced in Mat lab R2007b should be used The old usage where the class definition is stored in a separate folder is obsoloted and existing code will be rewritten to new standard Note that this new coding methods using classdef requires that an end statement is inserted in the end of the method code 14 6 5 GRAPHICAL USER INTERFACES 6 5 Graphical user interfaces All new graphical u
36. e image stack Note that different image stacks may have different heart rates Unit is beats per minute HeartRate is used to calculate cardiac output Controls how fast one heart beat is played when playing images as a movie Originally set to 60 HeartRate May be adjusted with the slower faster icons ResolutionX TIncr TDelay EchoTime RepetitionTime InversionTime FlipAngle NumberOfAverages VENC GEVENCSCALE Contains pixelspace in mm in X direction For discussion on coordinate systems see Section ResolutionY gives pixelsize in mm in Y direction Time increment in seconds between time frames Must be non zero when image stack is time re solved Trigger delay i e starting of image acquisition af ter trig pulse Read from DICOM tags if pre sented otherwise set to zero Given in seconds Currently unused Echo time in MRI pulse sequence Read from DI COM tags if presented otherwise set to zero Given in milliseconds Repetition time in MRI pulse sequence Read from DICOM tags if presented otherwise set to zero Given in milliseconds Inversion time in MRI pulse sequence Read from DICOM tags if presented otherwise set to zero Given in milliseconds Flip Angle in MRI pulse sequence Read from DI COM tags if presented otherwise set to zero Given in degrees Number of averages acquired in MRI pulse se quence Read from DICOM tags if presented oth erwise set to zero Velocity encoding
37. en implemented The automated testing system produces a compre hensive test report of bugs found in Segment 14 1 Testing functionality The test functionality is implemented in the file maketest m It outputs the details of the testing result to the file testsummarydoc tex and testresultdoc tex that both are used when the testreport is generated For an exact list of the included tests see the latest available version of the test report For each test performed a detailed list of tested functions are produced 14 2 Testing broken callbacks Testing broken callbacks is tested by the function validatecallbacks Called with one input argument it tests the fig file in the input argument and prints result in the standard output If called with no input arguments then the entire Segment project is tested and a report is written to the file callbacksdoc tex which is used to produce the test report The test script assumes that the first argument in a callback string is a sub function in the function name in the callback string if applicable The script tests uimenu uicontextmenu and uicontrol objects that has a callback string defined To parse out sub functions of a function the function document m is used 61 15 Implementation details This chapter contains the implementation details given in the User Manual 15 1 Version handeling A proper version handling is employed when developing Segment A detailed version history of Segment i
38. ent image stack x resamplehelper f x Helper function to resample image stacks factor 2 gives x 2 x 0 5 factor 3 gives x 3 x 1 factor 4 gives x 4 x 1 5 factor 5 gives x 5 x 2 factor 2 5 gives x 2 5 x 1 factor 3 5 gives x 3 5 x 1 5 factor 0 5 gives x x 0 5 a odd factor 0 5 gives x x 0 5 0 5 a even rotate90right_Callback Rotate current image stack 90 degrees right Cur rently not working properly setcurrenttimeframeasfirst_Callback Sets current timeframe as first time frame by cy cling data in time seted_Callback Set diastole to be current timeframe setes_Callback Set systole to be current timeframe setimageinfo_Callback Asks for and sets image details of current image stack setimagetype_Callback Sets image type for current image stack setimagingtechnique_Callback Sets imaging technique for current image stack temporalmeanvalue Callback silent Calculate temporal mean image undosegmentation Callback no Revert segmentation from undo history 119 CHAPTER 21 SUBFUNCTIONS IN TOOLS M upsampleimage_Callback Upsamples current image stack in slice only newvol upsampleslices f vol Upsamples along last dimension Limitation input must be single or double upsampleslices Callback Upsample current image stack in slice direction newvol upsampletemporal f vol Helper function to upsa
39. from one point Non time resolved points are shown as bold text Time resolved points are only implicitly connected by their position and more importantly the label 99 CHAPTER 11 SET VARIABLE 56 IntensityMapping A struct containing information how the voxel val IntensityScaling IntensityO0ffset ues of the image stack is shown on the screen The struct has the following fields e Brightness e Contrast e Compression Field reserved for future use The fields Brightness and Contrast translates into intensity according to the equation I c x 0 5 b 1 where c is contrast b is brightness x is the in put intensity and is the output remapped inten sity The intensity J is clipped to the range 0 1 map contrast xi brightness map The field Compression is reserved for future use and will be used to implement image mappings that are sig moid shaped The fields IntensityScaling and IntensityOffset are used to convert the image data IM to the true data as presented in the DICOM images The true data is calculated as z la P 2 where z is the true image data is the data stored in the field IM a is IntensityScaling and IntensityOffset See above 12 How to create own plug ins The easiest method of how to learn to make own plug ins is to study the example plugin template m Writing own plug ins is a great way of spread ing your algorithms to users all over the world and also t
40. g_Callback User bug report function helphotkeys_Callback Shows help of hot keys in Segment global DATA helpimagepos im sector ofs konst Helper function to display image helpimageposneg im sector konst Helper function to display image helpopenlogfiles_Callback Open list of log files in browser helpopenthislogfile_Callback 80 Open log file for this session in browser helpsupport_Callback Open mail composer to submitt email to support helpsupportreq_Callback call Callback to open support request GUI helptutorials_Callback Opens the webpage for showing tutorials on Seg ment helpusermanual_Callback Open user manual highlighttool h Helper function to change color of a tool to repre sent that the tool is selected iconcallbackhelper handle callback Helper function to updateicons handle iconcdatahelper handle icondata tiptext Helper function to updateicons fig initializesegment programversion Initialization of Segment GUI initmaintoolbar Intialization of main toolbar initmenu Initalize the main meni for instance adds extra utilities and plugins initviewtoolbar Initalize view toolbar interpaddpoint Add interp point interpdeletepoint Delete interp point interpdeletepointall Delete interp points for all slices timeframes 81 CHAPTER 16 SUBFUNCTIONS IN SEGMENT M interpdeletepointthisslice Delete
41. ge panel pan_Buttonup Button up function for panning pan Motion init Motion function of pan pin_Buttonup Button up function for pins pin_Motion type Motion function for pins PinX PinY pinwarn pinresize PinX PinY tf slice mean f Helper function to move pins when resizing con tours playall_Callback Starts movie display of all visible image stacks playmovie_Callback Starts playing current image stack as a movie plotmodelrot Callback daz del Changes view of 3D model of the segmentation point _Buttondown panel Button down function when point tool is active point _Buttonup Button up function for points point Motion Motion function for points 87 CHAPTER 16 SUBFUNCTIONS IN SEGMENT M pointat_Buttondown panel type Buttondown function when clicked at a point pointclearall Clear all points pointclearall_Callback Clear all points pointcleartemplate_Callback Clear points using naming template pointdeletethis Callback Delete point pointexportall Callback Export all point data ind pointfind silent Find neareast point pointfollow Follow a point over time pointforward_Callback Track point forward in time pointmaketimeresolvedthis_Callback Converts a none time resolved point to a time re solved point pointmove_Callback dx dy Helper function to move points pointrenametempla
42. ge stacks fail filesaveallas_Callback pathname filename topatientdatabase Save all image stacks to the file specified It also stores current view and modes etc filesavecurrent_Callback Save current image set to file Note that this is the old Segment file format and this fen may soon be depreciated 76 filesavesegdicom_ Callback Save image stack as DICOM file filesavesegmentation_ Callback pathname filename Saves segmentation as a seg file This way of saving contours is not recommended and may be depreceiated filesavetopacs_Callback Send image stacks to PACS This function should display a list of available PACS con files and when user has selected store files on disk temporar ily and then send the files to the PACS filesavetopatientdatabase_Callback Callback to save image stacks to patientdatabase Uses functions in patientdatabase cineshortaxisno findcineshortaxisno Finds only one cine short axis stack res varargout findmeaninsector type inp pos numsectors no Find indicies of points along the contour that cor responds to which sector Then also calculated mean values of the input inp varargout findmeaninsectorslice type numpoints tf slice numsectors no Find indicies of points along the contour that cor responds to which sector Used when analysing the myocardium of short axis slices Operates on given slice cineno scarno flowno strainno varargout findno
43. hD thesis by Einar Heiberg 2 The segmentation algorithm used by the program is a truly three dimensional and time resolved deformable model specially adopted for segmentation of the left ventricle Blood pool signal intensity is estimated from a user selected center point see manually edit segmentation result From this manually selected point the contour is initialized as a small time resolved tube and the contour of the tube is expanded until it reaches edges or when the local image intensity significantly changes from the estimated blood pool signal intensity 15 5 Volume calculations The volume calculations are done by a summing the area in each slice The main reason for not using a more advanced volume integration method is that no one else is using that and therefore it might be difficult to compare the results Segmentation i e delineation of endocardium and epicardium is stored on a sub pixel accuracy and subsequent calculations are on a sub pixel basis For viability the classification into viable or scar is done on a pixel wise basis and there the volume calculations are done by summing the number of pixels 65 CHAPTER 15 IMPLEMENTATION DETAILS For the rotated image stacks the volume is given by a integration method The volume contribution of each outline is given by f visPssentu s as 3 where the curve is given on a parametric representation x s y s Z is the number of slices in the rotated image sta
44. hown on the screen then the length of ViewPanels is 4 For panels that does not contain any image stack the corresponding pointer is set to zero A cell array where each element contains the view mode for each image panel Allowed view modes are e mode one shows the image stack as one slice e mode montage shows all slices of the image stack arranged in a matrix style e mode mmodetemporal shows the temporal part of a mmode image display e mode mmodespatial shows the spatial part of a mmode image display The best way of changing viewing mode is to call the function viewimage_Callback A cell array with the length same as ViewPanels Each element contains a uint8 array of size N x M x T where T is the number of time frames N and M are arbitrary numbers that depends on ViewPanelsType This is used for graphical out put and contains mapped intensities ViewMatrix CurrentPanel CurrentTool NeedRedraw A two element vector with the size of the image panels nx m Points to the current image panel This number needs to be in the range 1 N where N is the number of valid panels String containing the current tool Valid tools are point measure select dragendo dragepi drawendo drawepi drawrvendo drawrvepi drawroi drawscar drawrubber drawrubberpen endopin epipin contrast crop True if the size of the main GUI have been changed 27 CHAPTER 10 DATA VARIABLE 28 Pref Structure
45. increment between image frames is used in all calculations Slice thickness in mm The slice thickness is taken from the DICOM tag SliceThickness If this tag is not present then the information is taken from same DICOM tags as number of slices and assuming slice gap to be 0 Gap between slices in mm This is taken from the DICOM tag Spacing BetweenSlices Pixelspacing in X direction in mm vertical direction in Segment This is taken from the DICOM tag PixelSpacing Pixelspacing in X direction in mm horisontal direction in Segment This is taken from the DICOM tag PixelSpacing Velocity encoding VENC in cm s For non velocity encoded images 15 4 SEGMENTATION ALGORITHM this should be 0 How this is interpretated involvs proprietry informa tion of different scanner vender information e Rotated image stack This should by default be false If your image stack is rotated then change this to true Currently this parameter is not taken from information in the DICOM tags and the user needs to manually change this when loading rotated image stacks e Cyclic image If the image stack is cyclic i e covers the whole heart cycle this should be true default For prospectively gated image series this should be false This affects mainly the automated segmentatin algorithm Currently this information is not read from the DICOM information 15 4 Segmentation algorithm The method is more completely documented in Paper IV in the P
46. khorse of export functions do header tells whether to include a header inclu denormalized tells whether to include BSA nor malized data no tells whether to export ONLY image stack no exportimage_Callback Export current slice and timeframe to an image file exportlv2ensight_Callback Export left ventricle to Ensight exportmovie Callback Function to export a movie without contours exportmovierecorder _ Callback arg Movie recorder GUI exportmultiple Callback Creaty summary of multiple matfiles in one folder exportmultipleinfo_Callback Exports information of image stacks for a folder of mat files ok exportsavemovie mov left right up down fps Exports a move as an avi file or a set of png files outdata exportslicehelper outdata rowoffset coloffset type x y Helper function to export slice based data 107 CHAPTER 18 SUBFUNCTIONS IN EXPORT M exportslicevolume_Callback Export slicebased volume exportthisstack doheader Export data from current image stack to clipboard exporttoclipboard_Callback doheader no Export data to clipboard Calls another function to do the export exporttoclipboardthisstack Callback doheader Exports data for current image stack to clipboard exportvolumecurve_Callback Export volume curve to clipboard outdata ind header onlyone Helper function to write header when exporting data 108 19 Subfunctions in
47. lback Makes a data set anonymous applylight_Callback Apply current light setting to current image stack autoesed_Callback silent Autodetect and store ED and ES copydownward_Callback type silent dolv Copy segmentation in current slice downwards and refine copyforwardselected_Callback Copy segmentation of selected slices forward in time copyupward_Callback type silent dolv Copies upward and refine type is either endo or epi silent is true if to avoid graphic update if dolv false then copy rv crop_Buttondown panel Buttondown function to crop the image stack crop_Buttonup Buttonup function for cropping of image stacks crop_Motion Motion function to crop the image stack outx outy cropcontour inx iny isroi Used to crop and reinterpolate contours 115 CHAPTER 21 SUBFUNCTIONS IN TOOLS M disableundo no Disable undo function Also copies segmentation data to make sure data is consistent duplicateimagestack_Callback Duplicates current image stack enableundo no Enables undo function in menus and icons Also copies old segmentation data so undo i possible This should allways be called before routines that change the segmentation enddiastole_Callback noupdate Change current time frame to endsytole enddiastoleall_Callback Change current timeframe of all image stacks to diastole endsystole_Callback noupdate Change current time frame to endsytole
48. learthis_Callback endo epi rvendo rvepi Helper function to clear segmentation in this cur rent slice slice segmentimportsegmentation Callback no Import segmentation from another image stack Imports to current image stack NO from no or if called with no input arguments user is asked segmentimportsegmentationhelper tono fromno doendo doepi dorvendo dorvepi Helper function to segmentimportsegmen tion Callback tono is destination of segmenta tion fromno is source segmentremoveallinterp_Callback silent endo epi rvendo rvepi endoind epiind rvendoin Remove all interp points segmentremoveallpins_Callback silent endo epi rvendo rvepi Remove all pins segmentremoveallpinsthisslice_Callback current endo epi rvendo rvepi Remove all pins in this slice segmentremovepin Callback type m Removes pins segmentremovethispins Callback endo epi rvendo rvepi Remove pins in this slice and timeframe segmentresetedgedetection Reset the edge detection segmentrvcopyfromlvendo_Callback Copy RV from LV segmentation endocardium segmentrvcopyfromlvepi_Callback 93 CHAPTER 16 SUBFUNCTIONS IN SEGMENT M Copy RV from LV segmentation epicardium segmentthisframeonly_Callback silent Sets segment in this frame only mode Changes made to segmentation copying etc are performed only for the current timeframe selectallslices Callback Selects all slices in current image stack
49. loads the DICOM files im loadmatfile files2load Load mat file called from continueloading loadmultidataset Load mat file Sets up display and exits GUI and return back to segment loadpreview files2load orientations Loads a preview of the function takes a filename or a pathname im loadpreviewdicom file2load Loads preview information from a DICOM file and updates DATA Preview im loadpreviewmat file2load Extracts preview information from a mat file sets the DATA Preview struct im loadpreviewsegdicom file2load Extracts preview information from a segdicom file and sets the DATA Preview struct im loadpushbutton_Callback This function is called when user press load 103 CHAPTER 17 SUBFUNCTIONS IN OPENFILE M info metadata2info meta This function converts from metadata as specified by Linki ping group to info struct in Segment pathlistbox_Callback updir This function is called when user selects something in the file dir selection listbox If called with on input variable then go up one directory level plotslicelocation_Callback Plots graphical display of slicelocation of DICOM files im keystruct preparevelocityencoded im keystruct Called Loading both magnitude and phase data Creates a 5D image data to signal that is velocity encoded Lot of extra stuff to find in what direc tion the flow is varargout recursedicomcache pathname h Recursive ver
50. mage stack The Flow struct contains the follow ing fields e Angio contains a reference to which image stack that contains the angio imag This an gio image is essentially the absolute value of the velocity times the image magnitude and could be useful for vessel identification Nor mally this field is set to an empty vector as the angio image is seldom constructed e MagnitudeNo contains reference to which im age stack contains the magnitude informa tion For the image stack containing the magnitude information this points to itself e PhaseNo contains reference to the image stack containing the through plane flow in formation Naming is somewhat inconse quent by kept for legacy reasons A better name would be PhaseZ e PhaseX contains reference to the image stack containing the flow in the X direction Seg ment coordinate system e PhaseY contains reference to the image stack containing the flow in the Y direction Seg ment coordinate system Then there are also a few fields that are optional and only available when eddy current compensa tion has been performed These fields are e PhaseCorr contains the phase offset for the current direction i e if the current image stack is velocity phase in the X direction then PhaseCorr contains phase offset in the X direction and so fourth This field is al ways present and if not applicable only an empty matrix is stored e PhaseCorrPercentiles level of which per
51. mplate roitemplatesetlabel_Callback Function to rename roi by template roithresholdnumeric_Callback Numeric thshhold inspector roithresholdvisual_Callback Visual threshhold inspector roitoendo_Callback Copy from endocardium to a ROI roivisualslider Callback arg Gui for visual threshhold roivisualsliderkeypressed Key pressed function for visual slider 112 20 Subfunctions in utility m This chapter describes the subfunctions of utility m clearsegmentationmultiple_Callback Creaty summary of multiple matfiles in one folder findindicomfiles_Callback Recursevily finds mat files in selected directory and exports data on patient info and file location Uses some heuristic to avoid checking all files findinmatfiles_Callback Recursevily finds mat files in selected directory and exports data on patient info and file location init Calls private initialize method Initialize utility menu called upon starting of Segment nfound line numexist outdata rows name id Helper function to findindicomfiles utilityanonymizemultiple_Callback Anonymize multiple datasets utilitycopyandsortfromcd_Callback Utility function to copy and sort files from CD Uses helper function dicomsorter to do the work 113 21 Subfunctions in tools m This chapter describes the subfunctions of tools m addnoise_Callback Adds noise to current image stack anonymous_Cal
52. mple in time f is factor and vol is volume to upsample upsampletemporal_Callback f Usamples current image stack in time fis upsam pling factor newvol upsamplevolume f vol Helper function to upsample a volume vol viewpatientinfo Callback arg GUI to view and adjust patient information viewtrueintensity_Callback View true image intensities in current timeframe and slice 120 22 General input output functions This chapter describes general input and output functions used in Segment 22 1 myadjust m MYADJUST objecthandle and fighandle mygui object Adjust so that a message box gets to the correct screen fighandle is a figure handle 22 2 mybrowser m MYBROWSER URL Opens an URL platform independent 22 3 myclientserver m MYCLIENTSERVER Class to create interface object to communicate with a computational B MYCLIENTSERVER NAME Sets up a computational client with the name NAME METHODS DISPLAY Overloads display SEND B FCN CMD ARG Sends a non blocking message FCN is function handle function that is executed upon return of message The function handle is called with 1 Name of slave 2 Received status 0 sucess 3 Received command 4 Received arguments often empty depends on command 121 CHAPTER 22 GENERAL INPUT OUTPUT FUNCTIONS Note that there is no buffering of commands so you can not stack multiple commands If you do not give the slave time to read the message
53. mply type gt gt global DATA SET NO 23 10 DATA variable This global variable is used to store all the graphical handles preferences etc ProgramVersion fig BlockingFigs imagefig DataLoaded Silent Handles InteractionLock Undo UndoN A string containing the version number This string is initiated at startup Handle to the main GUI figure A list of open figures that contains GUI s that are sensitive to changing the current image stack NO Handle to the figure where the images are plotted Currently this is same as fig but are reserved for future use True if image data is present True if no graphical output should occur This is usefull when writing plugins that perform batch processes Struct with all graphical handles in the main GUI When set to true new calculation initiated from callbacks are prohibited This may be obsoleted in the future and replaced with Matlab s queueing properties Struct containing undo information Scalar that contains a pointer in the undo history list 25 CHAPTER 10 DATA VARIABLE LastSaved Volrend Colormap ViewPanels ViewPanelsType ViewIM 26 Time stamp when the image stack s last were saved This is used for the auto save functional ity Reserved for future use with the future volume ren dering module Current colormap used This is a 256 x 3 array A vector pointing to image stacks If 2 x 2 pan els are s
54. n for pressing timebar in plot flow gui Sets button motion and button up func tion for changing start time and end time for cal culation of flow roibar Buttonup type Button up function called after moving timebar in plot flow gui Changes start time and end time for calculation of flow roibar_Motion Button motion function called when moving time bar in plot flow gui Changes start time and end time for calculation of flow roiclearall Callback Clear all ROls roicopyalltimeframes Callback n Copy ROI to all time frames roicopydownwards_Callback n Copy ROI one slice downward roicopyendo_Callback Copy from endocardium to a ROI roicopyepi_ Callback Copy from epicardium to a ROI roicopyfromotherimagestack_Callback Copy roi from other image stack Let s user select from which image in an input dialog roicopyscar Callback Copy from scar to a ROI roicopyupwards Callback n Copy ROI one slice upward roidelete_Callback n Delete ROI 110 no roifindmag no Find magnitude no roiforce_Callback Function to set force shape over time in menu checked and unchecked roiforceapply Function to force shape over time m roiget stri arg Gets roi either by getting closest ROI to clicked coordinates if two input arguments or by selecting in a pick list roisign roiguessign nom nop currentroi Guesses sign of the roi to make the net flow through the roi be
55. o EndoX See above Same as EndoXView but for the right ventricle en docardium See above Epicardial contour of the right ventricle See also Epix See above Same as EpiXView but for the right ventricle en docardium See above Rotation of the Sector compartmentization of the left ventricle used for regional myocardial analysis Unit is degrees This is can be manually adjusted from the bulls eye GUI X coordinate for the center of the mmode line l CHAPTER 11 SET VARIABLE Mmodey X coordinate for the center of the mmode line Mmodelx Direction coefficient of the mmode line Mmodely Direction coefficient of the mmode line Mmodem1 Distance from the mmode line center to the first measurement point Usually a positive value Mmodem2 Distance from the mmode line center to the second measurement point Usually a negative value LVV Volume inside the left ventricle represented as a 1 x T vector of scalars where T is the number of time frames EPV Volume inside the epicardial volume of the left ven tricle PV Volume of the papillary muscles See User Manual for further details how that is calculated LVM The left ventricle myocardial volume is calculated as EPV LVV PV Unit is ml ESV Left ventricle end systolic volume EDV Left ventricle end diastolic volume EDT Left ventricle end diastolic time EST Left ventricle end systolic time SV Left ventricle stroke volume EF Left ventricle ejection
56. o contribute to the Segment project For more details on how to contribute or learn more about interacting with other users please see Chapter 13 A plugin file must have a name beginning with plugin m Note that the plugin may of course call other functions that can reside anywhere on the Matlab path When Segment is started the current folder is scanned for functions with this pattern Matching functions are called with the argument getname and a string with the name that should appear in Segment menu is expected Currently there are two other plugins that are shipped with the standard Segment edition e Plugin to load non DICOM images into Segment This plugin can load for instance jpg bmp tif png files into Segment This plugin gives some elementary details on the internal data structure e Plugin to calibrate image resolution This plugin gives some hints on using own GUT s and also some details about the internal data structure in Segment For further documentation of these two plug ins please see the Segment User Manual 97 13 Segment user community As a result of the growing interest in Segment and as a response of numerous requests Medviso AB has started to form a user community web place This initiative will be enlarged significantly as the members of the community both requests more and also expands the community It is worth noting that in the user survey spring 2010 out of 169 answers 147 answered that the
57. o show all slices manualdraw Buttondown panel type new Button down function for manual drawings manualdraw_Buttonup type new obj Button up function for manual drawing manualdraw_Motion Motion function for manual drawings mccheckconsistency Check consistency to prevent earlier manual seg mentations that have problems with direction left right measure Buttondown panel Button down function for measurements measure Buttonup Button up function for measurements measure_Motion Motion function for measurements stri measureasklabel Asks for a label of a measurement measureclearall_Callback Clear all measurements 83 CHAPTER 16 SUBFUNCTIONS IN SEGMENT M measureclearthis_Callback Clear current measurement measureexport_Callback Export measurements measuremove Callback dx dy Helper function to move measurements measurepoint_Buttondown panel Buttondown function fore a measurement point marker measurerenamethis Callback Rename current measurement mmode1_Buttondown panel Called when mmodel is pressed down sets motion and buttonup function mmode1_Motion Motion function of the first mmode point mmode1line_Buttondown panel Called when mmodelline is pressed down sets mo tion and buttonup function mmodeiline Motion Motion function of the first mmode line mmode2 Buttondown panel Called when mmodel is
58. oved in future versions e Auto alogical array that contains true in the positions that the algorithm marks as in farcted e Manual an int8 array that contains 1 for the pixels that the user have manually to be in farcted and 1 for the pixels that the user have marked as non infarcted e Result a logical array containing the final viability delineation with the manual correc tions e NoReflow a logical array containing one in the regions that have been identified as no reflow regions or regions with microvascular obstruction e MyocardMask a logical array containing true in the myocardium and false otherwise e beta a scalar controlling the ruffness of the surface See the algorithm description for further details 4 e stdlimit a scalar determine the number of standard deviations from remote to take e radius Radius of the fast level set algorithm see 4 for details e Percentage a scalar representing the per centage of the pixels that are marked as in farcted e OnlyEndo true if only endocardium delin eation exists 45 CHAPTER 11 SET VARIABLE Flow 46 This struct contains information regarding how different image stacks are related to store flow information Generally all information that are common for all the coupled image stacks are only stored in the magnitude image stack to avoid data redundancy One example of this is storage of ROT that are only performed in the magnitude i
59. owever there are occasions where historical reasons have lead to exceptions to the rules given below In general Segment originally used the global variable NO indicating the cur rent image stack quite extensively The use of NO is however not encouraged and it is highly recommendable to in the function call indicate the current image stack Work is ongoing to completly remove the global variable NO but it takes time 6 1 Naming functions Functions are always named in lower case letters only The underscore letter is not used with the exception of e Callbacks are named as functionname_Callback e Functions for mouse motion callbacks are given names ending with Motion e Some functions have helper functions that are only called from other functions with the same name These functions are named _helper e Functions for mouse button up down callbacks are given names ending with _Buttonup or _ButtonDown Note that functions should not be ended with an end Matlabsupports both syntaxes This is with the exception with objected oriented program ming see below 6 2 Naming variables The following rules apply e Global variables have all capital letters i e DATA 13 CHAPTER 6 CODING CONVENTIONS 6 3 Field names of structures and structure arrays are given names start ing with a capital letter When two or more words are concatenated then the first letter of the second word also have a capital letter For in stanc
60. panels are updated updateviewicons Enables Disables icons depending on image data nbr timeframes etc updatevolume Calc volume of segmentation and graphically up date 96 userlongaxis_Callback Callback to set user adjusted long axis motion viewaddtoolbar_Callback Helper function to add a toolbar viewallimagestacks_Callback Displays all image stacks viewhideimagestack_Callback no Remove clicked image stack from view panels viewhideinterp_Callback varargin Toggle visibility of countours from other image stacks viewhideintersections Callback varargin Toggle visibility of plane intersections viewhidelv_Callback varargin Toggle visibility of lv segmentation viewhidemeasures_Callback Toggle visibility of measurements viewhideothercontour Callback varargin Toggle visibility of countours from other image stacks viewhidepanel_Callback Hides current panel viewhidepap_Callback Toggle visibility of papillary overlay viewhidepins_Callback varargin Toggle visibility of pins viewhideplus_Callback varargin Toggle visibility of center 97 CHAPTER 16 SUBFUNCTIONS IN SEGMENT M viewhideroi_Callback varargin Toggle visibility of roi s viewhiderv_Callback varargin Toggle visibility of rv segmentation viewhidescar_Callback varargin Toggle visibility of scar contours viewhidetext_Callback varargin Toggle visi
61. pin and refines drawall n m Draws all panels that should be visible or up to the number specified as n drawallslices This fen updates graphics in all visible image pan els drawimagemontage panel viashow Main workhorse for creating montage view drawimageno no Call drawimagepanel for the panels that contain no including flow panels If no is not specified then the current image stack NO is used This function is typically called when new objects have been created or modified drawimageone panel viashow Main workhorse for creating one view drawimagepanel panel Draws selected panels used upon loading or when when major changes have occured such as change of slice added measurement points etc This fen is the true workhorse in graphics etc drawintersections Draw intersections between image stacks drawroiinpanel panel Draw ROI s in one slice mode 73 CHAPTER 16 SUBFUNCTIONS IN SEGMENT M drawsliceno no Call drawslicepanel for the panels that contain no including flow drawslicepanel panel Update the image of the current slice giving view ing parameters from Workhorse of slice drawers drawthumbnails calculatepreview sliderupdated Draw all thumbnails Calculatepreview is a boolean indicating if thumbnails needs to be re drawn drawvolume Draw volume curve z econvn im f Function to filter image uses fastest
62. positive roihistogram_Callback Make intensity histogram from ROI with either normalized intensities or true intensities Uses roiselector to let user decide what data to be anal ysed in the histogram Also let s user decide how many bins in the histogram and if zero should be excluded roiimportroi_Callback Import roi from image stack Let s user select from which image in an input dialog roilabel Callback x y Function for putting name on a rol roiputroi Buttondown panel Buttondown function for putting circular roi rois timeframes normalized roiselector usealltimes thissliceonly template normaliz Dialogbox in which user decides if all timeframes only this slice and normalized intensity values should be used All values can be changed seper ately 111 CHAPTER 19 SUBFUNCTIONS IN ROI M roisetcolor_Callback n Change color of roi Which roi to use is either decided by closest roi from clicked coordinate if input argument is 1 else by user selecting from a pick list roisetlabel_Callback n Change name of roi Which roi to use is either decided by closest roi from clicked coordinate if input argument is 1 else by user selecting from a pick list roiswitchsign Callback m Switch sign of roi The sign is used when calcualt ing flow through roi roitemplatedelete_Callback Function to delete roi by template roitemplatesetcolor_Callback Function to rename roi by te
63. pressed down sets motion and buttonup function mmode2_Motion Motion function of the second mmode point mmode21ine_Buttondown panel Called when mmodelline is pressed down sets mo tion and buttonup function mmode2line Motion Motion function of the second mmode line 84 mmode_Buttonup This function is called when buttonup occurs after draging one of the mmode objects mmodecenter_Buttondown panel Called when mmode center is pressed down sets motion and buttonup function mmodecenter Motion Motion function of the mmode center point mmodempoint1 Motion Motion function for mmodepoint one mmodempoint2 Motion Motion function for mmodepoint two mmodepoint1 Buttondown panel Called when mmodepointl is pressed down sets motion and buttonup function mmodepoint2_ Buttondown panel Called when mmodepointl is pressed down sets motion and buttonup function mmodetimebar1_Buttondown panel Called when mmodepointl is pressed down sets motion and buttonup function mmodetimebar1_Motion Motion function for mmodepoint timebar mmodetimebar2_Buttondown panel Called when mmodepointl is pressed down sets motion and buttonup function mmodetimebar2 Motion Motion function for mmodepoint timebar montage _Buttondown panel Button down function for selecting slices in mon tage view 85 CHAPTER 16 SUBFUNCTIONS IN SEGMENT M montage_Buttonup panel Button
64. queststri Show menu so that user can indicate what contour to use Used by levelset to import contours and by export function to export contours as ascii file autocontrast_Callback Automatically calculates contrast settings autolongaxis_Callback Callback for automated long axis dectection mode im bullseye m ax n Calculate bullseye from matrix m Ax is optional axis where the output image im should be dis played varargout bullseye2 m ax n flipx Generate bullesye data Optional output argu ment is im varargout bullseyeaha m ax n valuetype Calculate and or plot AHA 17 segment model buttonup_Callback General buttonupfunction 69 CHAPTER 16 SUBFUNCTIONS IN SEGMENT M bsa calcbsa weight height Calculates BSA Formula based on Gehan and George calcdatasetpreview Calculate thumbnails rad calcendoradius no Calculates endocardial radius rad calcepiradius no Calculates epicardial radius varargout calclvvolume docomp Calculate LV volume Docomp if to use longaxis motion see below Uses area thickness slicedist 2 calclvvolumepolar Calculate volume of lv when rotated image stacks res calcmyocardvolume numsectors no Calculate myocardvolume xofs yofs calcoffset z type Calculate offset required to plot coordinates in viewing mode specified by type cellx celly calcoffsetcells Same as calculateoffset but returns cells used in
65. r the report sheets are generated e IncludeAllPixelsInRoi If true then also pixels that are touched by the ROI are in cluded in the subsequent processing Default is false and in this mode only pixels whose centrum are inside the contour are included e AutoSave If true then the segmentation is autosaved every fifth minute under the name autosave seg e ContourAdjustDistance The maximum distance to a contour a user can click before the contour is not acknowledged as a click on that contour Measured in pixels e PacsTempStoragePath The path where the temporary files for the PACS retreival are stored This field might be obsoleted in fu ture versions Size of the GUI in pixels Struct storing preview data This struct is in tensely used by the file open GUI Generally the data is store in this struct and thereafter copied to the SET variable upon completion of the loading process Therefore this struct also contains infor mation on the last loaded viewed image stack True if a movie is playing True if recording is active in the movie recorder GU 29 CHAPTER 10 DATA VARIABLE LastPointer ImagingTechniques Type of the pointer displayed Short names of the parameter files par This variable is created a startup Therefore Seg ment needs to be restarted before new parameter files can be used from the menu However the files themselves are not cached so the content in the files can be changed
66. re N is the number of image stacks Edge image of the endocardium in the first direc tion For further details see 2 3 See above See above See above Edge image of the endocardium in the first direc tion For further details see 2 3 See above See above See above True if the edge images of the endocardium have been calculated True if the edge images of the epicardium have been calculated Temporary variable used to store one frame of a movie when recording a movie using the movie recorder in Segment 31 CHAPTER 10 DATA VARIABLE NumPoints Number of points along the endocardium epi cardium and ROP s This default set to 80 This variable should be possible to change to get more points along a contour but this have not been veri fied or tested Note that changing this variable will most probably cause version incompabilities with seg and mat files DataSetSelected A logical vector with N elements where each ele ment contains true for selected image stacks ImageTypes A cell array contains the different precode image types in Segment They are e General e Perfusion Rest e Perfusion Stress e Strain FFE e Strain TFE e Late enhancement e Cine e Scout e Qflow e T2Stir e TiBB The image types are used among others to find what image stack is what for automated batch processing of files This list is subject to future changes 32 ImageViewPlane A cell array contain
67. rection The following two expressions are equivalent SET NO XSize and size SET NO IM 1 Size of image stack in Y direction The following two expressions are equivalent SET NO YSize and size SET NO IM 2 Size of image stack in temporal direction The following two expressions are equivalent SET NO TSize and size SET NO IM 3 Size of image stack in Z direction number of slices The following two expressions are equiv alent SET NO ZSize and size SET NO IM 4 35 CHAPTER 11 SET VARIABLE StartSlice Endslice CurrentTimeFrame CurrentSlice OrgXSize rows cols HeartRate BeatTime 36 This field contains the first slice in the set of se lected slices For more details see below This field contains the last slice in the set of selected slices The se lected slices is then given by ind SET NO StartSlice SET NO EndSlice The field may be an empty array when no slices are selected This field contains the current time frame This field contains the current slice of the image volume This refers to the original X size of the images in the DICOM files This is used to load seg files to uncropped image data The fields OrgYSize OrgTSize and OrgZSize have the same function in the other coordinate directions This field contains the number of rows in the mon tage view of the current image stack Same as above expect it contains number of columns instead Hear rate of th
68. ric representationsl 15 3 Loading data and interpretation of DICOM tags 15 4 Segmentation algorithm o o 15 5 Volume calculationsl 2 2 oo oo non 15 6 Mass calculations 2 2 2 Ho mn nn 15 7 Calculation of BSA be tere 15 8 Peak ejection filling Rate ooa aaa 15 9 Wall thickness 6 5646 be 44 eh as bee EG DE a 15 10 Infarct size extent and transmurality 6 Subfunctions in segment m 7 Subfunctions in openfile m 8 Subfunctions in export m 9 Subfunctions in roi m 0 Subfunctions in utility m 1 Subfunctions in tools m 19 23 25 35 57 59 61 61 61 101 107 109 113 115 CONTENTS 121 Ae 121 a ee ia 121 We RES Boe eee os ae os 121 es oe ehhh eee fae ee eee Ate 122 ee dr OS oa er oe 122 ee ee ee 122 Nee edici pue Ba re ee 123 ee tada ee ae 123 ee ee ee 123 ada ee paa aa 123 Pod De Mh Bod Reese be Senay cess 123 poe aks hee eee o e poe ne 123 ended Aas he at oe ts ee eae 125 a bs oe pue era am ok hae is 125 i E bose dee 125 IE EEE e a 126 EEE IE EEE RER E F 126 en y ea as 126 a ee 126 Baie gb ae A Eto dido lus des 127 miu a eee Fe ee He ene ae 127 ae ee he Ko eee es 127 un ae pe Woe Peed eae es 127 hao oe he Boo oe Bee ae 127 eh bt shane aes Chane ea oe 128 SDS po Oe eee eee aes 128 ES Mee oe pe a ees 128 cere rte Peres eee ee ee 128 Bibliography 129 1 Regulatory status Segmen
69. roi m This chapter describes the subfunctions of roi m removefromallbutthistimeframe n Remove ROI from all but this time frame removefromthistimeframe n Remove ROI from this timeframe roi _Buttondown panel Button down function for drawing roi roiaddfixsize Callback Function for adding roi with fix size roiaddinsector Callback angle width percentfromendo percentfromepi numsectors name Add sectors in ROI input arguments is angle of where to start the width of the sector given as an angle how many percent from endo the sectors will be placed how many percent from epi the sectors will be placed the number of sectors and finally the name under which the sector roi will be stored name roiasklabel roitoname roinamein Lets user pick name of roi from a picklist Input roitoname is the number of the roi to name if this input argument is empty the choice of naming the roi to ROI n is disabled the function can not handle a cell so if multiple rois are to be named use as first input roinamein is the name of the roi to be renamed this functionality is used when renaming using template Both input arguments are optional but if the first argument is not sup plied the choice of naming the roi to ROI n is disabled name roiasktemplate no Function used for asking for name of roi template 109 CHAPTER 19 SUBFUNCTIONS IN ROI M roibar_Buttondown type Button down functio
70. s fractional thickening and wall motion It also pro vides quantitative data on blood flow and velocity in the arterial vessels and at the heart valves Segment is tested on MR images acquired from both 1 5 T and 3 0 TMR scanners The data produced by Segment is intended to be used to support qualified cardiologist radiologist or other licensed profes sional healthcare practitioners for clinical decision making It is a support tool that provides relevant clinical data as a resource to the clin ician and is not intended to be a source of medical advice or to CHAPTER 1 REGULATORY STATUS determine or recommend a course of action or treatment for a pa tient 1 2 Investigational purposes None of the organizations persons named in conjunction with the software can accept any product or other liability in connection with the use of this software for investigational purposes 2 License terms For general license terms of the usage of the software see the User Manual Though parts of Segment is be released in source code form this does not imply that standard open source rules do apply Segment is a commercial product and is provided free of charge to the research community as a service and without any associated rights Medviso AB does not give you any rights to do commercial derivative works of it Nor give it you the right to compile it to a distributable standalone form See discussion on license terms in 1 3 Acknowledgements
71. s xyz2r1lapfh no x y z Converts from segment coordinate system to RL AP FH coordinate system zoomhelper ax f no panel Helper function to zoom image stacks Zooming is done by changing xlim and ylim 99 17 Subfunctions in openfile m This chapter describes the subfunctions of openfile m newim autocontrastpreview im Automatically calculates contrast settings for pre view image browsebutton_Callback Callback when user wants to browse for new folder cancelpushbutton_Callback Dismiss the figure numberofdirections continueloading files2load numselected directiontoload This function is called from cropbox_buttondown It continues to load the whole images stack and finally call Segment to tell that finished loading one image stack cropbox Called from continue loading and sets up GUI to ask user to select region of interest to load cropbox_buttondown Buttondown function for crop This is equal to select cropbox_motion Motion function for cropbox exitgui Quits and exits the gui extractvenc dinfo Extract VENC factor_Callback Help function to split number of selected frames in to prime numbers temp fastdicomread filename startofpixeldata numframes 101 CHAPTER 17 SUBFUNCTIONS IN OPENFILE M Reads a DICOM image fast Takes filename and start of pixeldata keystruct uniquedirections selecteddirection findnumberofdirections
72. s available on the homepage http segment heiberg se version htm Upto version 1 7 this version control was manually now SVN with Tortoise as a front end is used For more detailed version history please see the revision log of Segment SVN 15 2 Numeric representations All numbers are stored and used internally as double precision floating points with the following exceptions e Images are stored as single floats normalized or as integers uint8 and then as they are stored in the DICOM files Most functions in Segment will automatically convert the data to floats Edge detection results are stored as integers 16 bits normalized e Character strings are stored in 8bit ASCII format e Infarct maps are stored as int8 manual interaction and uint8 result General segmentation tool store objects as levelset function with an uint8 representation where the zero levelset resides at 128 Internally the image stack is normalized upon loading by a global maximum intensity such that all values are 0 1 Offset and scaling is also calculated so that the image stack can be reconverted back to original signal intensities 15 3 Loading data and interpretation of DICOM tags This section describes how Segment interprets DICOM information to cal culate important parameters suchs as geometric properties of the images 63 CHAPTER 15 IMPLEMENTATION DETAILS 64 Number of slices This is calculated from the presence of different
73. s the different precode image view planes in Segment They are e 2CH e SCH e ACH e Sagittal e Coronal e Frontal e Transversal e Short axis e RVOT e Aorta e Pulmonalis e Vena cava inferior e Unspecified The image types are used among others to find what image stack is what for automated batch processing of files This list is subject to future changes BpInt Intensity in the blood pool of the image stack SET NO This is used to avoid unnecessary recal culations of DATA BALLOON MInt Intensity of the myocardium of the current image stack See above TimeStamp Previously used for double click detection Cur rently unused May be removed in future versions 33 11 SET variable This global variable is probably the most important variable structure since it contains all image data and all measurements The variable is a struct array As an example SET 2 refers to the second image stack SET 2 CurrentTimeFrame refers to the field that contains the current time frame of the second image stack Below a list of all fields are given IM XSize YSize TSize ZSize This field contains the image data stored as a 4D single array The order of the dimensions are X x Y x T x Z For more details on coordinate sys tem conventions see Section The image data should lie between 0 1 For more details on im age scaling see the fields IntensityScaling and IntensityOffset Size of image stack in X di
74. ser interfaces should be based on the class mygui When doing so Segment automatically will remember the position of the user inter face and coding is considerably simplified so that one does not need to use persistent variables to get application data Please consult the documenta tion of mygui for further details Graphical user interfaces that do not use mygui should be rewritten to use mygui 6 6 Indentation and spacing Matlab standard indentation system is to be used but with using the tab size to two spaces instead of the default four Spacing and use of parenthesis is to be used to enhance readability For instance e A 12 instead of A 12 e if a gt b d lt e instead of if a gt b d lt e MLINT syntax guidelines should be followed and ideally when syntax hints are overrided they should be motivated For instance when MLINT reports Warning data seems to grow inside a loop and that you should consider to preallocate for speed Then before inserting a pragma to remove the warning you should make a note on why you did not preallocate which usually is that the routine is not time critical but is should generally be documented Another example is when MLINT warns that the variable is unassigned but it is assigned by loading a mat file then this should be commented The use of logical short cutting operands and amp amp is strongly recom mended 6 7 Documenting code The source code should be well documented so th
75. sion of DICOM cache operation high level call should be without second argument num recursedicomcache helper pathname num Recurse down to see how many folders to do recursedicomcachepreviewfolder_Callback Recursive version of DICOM cache operation from the folder which openfile is currently in high level call should be without second argument timenum reformattime timestr Reformat a string with format HHMMSS XXX refresh Callback Refresh GUI roisizelistbox_ Callback insize 104 Callback for ROI size selection selectall_Callback Select all files callback setimagetype_Callback Set image type callback setimageviewplane_Callback Set image type callback setimagingtechnique_Callback Set imaging technique callback stable_Callback Callback to turn on off stable DICOM reader updir Callback Fake a double click on verifydicomdata keystruct im onlymag rotated Verify that correct number of slices and time frames slice thickness etc is correctly read from DICOM files No output is given from this function output is stored in the global variable DATA Preview stri writeimagenormal d Convert numerical normal to string representation 105 18 Subfunctions in export m This chapter describes the subfunctions of export m exportcontour Callback Export contour Ask what contour to take varargout exportdata doheader includenormalized no This is the wor
76. slices based on the DICOM tags ImagePosition and ImageOrientation Number of timeframes This is based on dividing the total number of images with the number of slices Time increment in ms between each timeframe This is based on the difference between the number of timeframes divided by largest and the smallest value of the DICOM tag TriggerTime Ifthe DICOM tag TriggerTime is not present then the DICOM tag TR is used as time increment Note that this might depent on your k space acquisition scheme so for scanners that do not report TriggerTime you really need to double check the estimated value of time increment Heart rate The heart rate is taken from the DICOM tag HeartRate if present Note that many vendors including Siemens does not specify this As a fall back Segment tries to calculate the heart rate assum ing full R R intervall coverage by using of trigger time i e it does not working for prospective imaging series For long image acquisitions where one image is taken approximately for each heart beat then the heart rate is taken as the time between start of image acquisition and end of image acquisition adjusted for the number of frames Note that in many cases this heart rate calculation will fail Heart rate can be adjusted under patient details Note also that heart rate may vary be tween image stacks therefore do not press Apply for all when manually changing heart rate Heart rate is not used in any calculaion instead time
77. t may be used for either investigational off label use or commercial purposes Please see license terms which license form that apply to you Users are also required to investigate the regulatory requirements pertinent to their country or location prior to using Segment It is in the users respon sibility to obey these statues rules and regulations 1 1 Commercial usage of Segment FDA approved versions of Segment are identified with a labelling upon start up displaying licence details and the FDA 510 k number K090833 If your version does not display this information your version is not FDA approved and you need to contact Medviso AB to receive a such license Please note that there are features that are not included in the FDA approval These functions are marked in the user manual with The functions described in this chapter is off label use and for investigational use only 1 1 1 Indications for use Segment is a software that analyzes DICOM compliant cardiovascular im ages acquired from magnetic resonance MR scanners Segment specifically analyzes the function of the heart and its major vessels using multi slice multi frame and velocity encoded MR images It provides clinically relevant and reproducible data for supporting the evaluation of the function of the chambers of the heart such as left and right ventricular volumes ejection fractions stroke volumes peak ejection and filling rates myocardial mass regional wall thicknes
78. te_Callback Rename points according to a renaming template pointrenamethis_Callback Rename point x y pointsfromcontour X Y nbr_points 88 Select points from X Y with probability higher when derivative magnitude in respect to distance to mass centre is large pointshowthisframeonly_Callback Callback to make the current point visible in this time frame only previousallframe_Callback Displays previous time frame in current image panel For all other visible image stacks they are adjusted to show correspondig part of the cardiac cycle previousframe Callback Displays previous time frame of current panel putpin Buttondown panel type Button down function for pins putpin Callback panel type Callback to put pins recursekeypressfcn h fcn Helper function to create callbacks to keypressed function z remap im cmap c b Remap data according to cmap z remapuint8 im no tempmap c b 89 CHAPTER 16 SUBFUNCTIONS IN SEGMENT M If SET no Colormap exists Remap from im age data to true color using color lookup If not Remap according to indexed grayscape Un less An external colormap has been supplied then use that This is used to force truecolor grayscale by passing true to RETURNMAP PING c b are contrast brightness settings used by contrast_Callback when doing realtime update during mouse motion report3dmodel_Callback varargin GUI to show 3D display of segment
79. ting alignment Difference to errordlg is the alignment and possibility to hit return to okey the message Alignment string may be a fig handle or an MYGUI object See also MYWARNING MYMSGBOX MYADJUST MYWAITBARSTART 22 12 mygui m MYGUI Class for handeling GUI s in a efficeint manner 123 CHAPTER 22 GENERAL INPUT OUTPUT FUNCTIONS G MYGUI FIGFILENAME lt BLOCKING gt The purpose of this class is to facilitate to generate GUI s than can also work as a temporary containter data for that so that data transfer between subfunctions becomes simple If blocking is specified then segment internal blocking figure mechanism will be used The function also keeps track of position for the gui to be saved later and to be able to set position of messageboxes called with for example mywarning mymsgbox and yesno when calling with last input argument as the mygui object Example First reserve space for it in DATA Structure DATA GUI MyGUIExample in segment m In your code to initialize gui mygui myguiexample fig In your subfunctions global DATA gui DATA GUI MyGuiExample Now you can use gui as an ordinary variable and everthing is stored in the GUI and will be available to other subfunctions until the GUI is deleted Some examples gui myfieldname somearray gui myfieldname1 myfieldname2 myfieldname3 134 temp gui myfieldname 2 temp get gui handles text2 string Yo
80. tole respectively Fractional wall thickening is defined as 5 Where WT is fractional wall thickness and WT is wall thickness and WTgp is wall thickness in end diastole In the bulls eye plot then fractional wall thickening is showed in end systole 15 10 Infarct size extent and transmurality Calculations of infarct sizes etc are based on counting pixels i e each pixel has a binary classification There are two methods for regional analysis available one are based where the percentage of the pixels that are inside the sector The other method is based on radial spikes from the center endo or epicardial depending on setting in the preferences The line between en docardium and epicardium is resampled in 50 steps and the percentage of infarcted pixels are counted Infarct extent is defined as the projected infarcted area on the endocardial surface 5 TR Ri La 6 i where Tert is the infarct extent T is the transmurality of sector and R is the mean endocardial radius of sector i 67 16 Subfunctions in segment m This chapter describes the subfunctions of segment m addmainicon helper callback tooltip cdata tag separator Helper fen to add an icon addtopanels no mode Finds an open space otherwise increases number of panels addviewicon_helper callback tooltip cdata tag separator Helper fen to add an icon z anyall a Equivalent to z any a x y name askcontour
81. ts mo tion and buttonup fens 71 CHAPTER 16 SUBFUNCTIONS IN SEGMENT M center_Buttonup This function is called when buttonup occurs after draging center point center_Motion Motion function of the center point changewheel_Callback h e Scrollwheel with modifer Tab are not included but you can if you like checkconsistency timeframes slice Check consistency to prevent earlier manual seg mentations that have problems with direction lef right corrupted checkcorrupteddataforautomaticsave setstruct This function checks if the data SET is corrupted due to corrupted loading when loading files which has been saved with older saveversion see ticket 502 in wush for more details on the bug cleardatalevelset onlyprototype Clear the struct DATA LevelSet properly called when switching image stacks clickedpin_Callback type Called when user clicks on a pin contextmenu Context menu button down callback contrast Callback arg panel Activated by contrast tool different from reset light_Callback above mask createmask outsize y x Function to generate a mask from a polygon rep resented with the vectors x and y 72 ctrlc Function to handle ctrl c keypress which is dis abled x y z cyl2cart xin yin slice numslices rotationcenter Convert from cylindrical to cartesian coordinates doputpin_Callback type Put pins Called when clicked puts an
82. u can also use the gui to get good alignment of the msgboxes mywarning myfaield mymsgbox mymenu mywaitbarstart and yesno 124 22 13 MYMAXIMIZE M myfailed An error has occured gui When closing the gui the close function can be called with DATA GUI MyGUIExample close DATA GUI MyGUIExample when closing by using this syntax the position of the gui will be saved in the struct DATA GUIPositions The position of the gui can also by saved by saveguiposition gui this could be used in a resize function See also SUBSREF SUBSASGN 22 13 mymaximize m MYMAXIMIZE HANDLE Maximizes a figure or a mygui object and aligns it to correct monitor 22 14 mymenu m MYMENU header options defaultstring MYMENU header item1 item2 item3 m m Same as menu but with the following additions more elegant uses keyboard to select items modal display can use default string last optional argument is figure handle 22 15 mymkdir m MYMKDIR NEWDIR SUCESS MYMKDIR NEWDIR Make directory difference to MKDIR is that is does not issue an error message if the folder already exists 125 CHAPTER 22 GENERAL INPUT OUTPUT FUNCTIONS See also MYCOPY MKDIR 22 16 mymovefile m STATUS MESSAGE MESSAGEID MOVEFILE SOURCE DESTINATION moves the file in source to dest Same as MOVEFILE except for the last optional force argument in MOVEFILE Essentially a wrapper for MOVEFILE kept for naming
83. up fucntion for selecting slices in montage view montage Motion Motion function when selection slices in montage view move _Buttondown type panel Button down function for moving translating ob jects contours move Buttonup type Button up function for moving functions move Motion reset Motion function for moving translating objects contours movealltowardsapex_Callback Changes CurrentSlice and that of parallel image stacks towards apex movealltowardsbase_Callback Changes CurrentSlice and that of parallel image stacks towards base movetowardsapex_Callback Change current slice towards apex movetowardsbase_Callback Change current slice towards base z nanmean a dim Same as mean in Matlab but handles also NaNs res nansum a dim Same as sum but ignores NaN s nextallframe_Callback Displays next timeframe in currrent image panel and adjust all visiable image stacks to the corre sponding part of the cardiac cycle 86 nextframe_Callback Displays next timeframe of current image panel Sideeffect is that the movie display is stopped if running normal_Buttondown panel Called when button down in normal view sameview orientationcomparison setindex1 setindex2 Compares the SET ImageOrientation between two SETs Help function to updateparallelsets pan Buttondown Button down function for panning of current ima
84. updatemodeldisplay x y calcplaneintersections NO no Calculate intersections between image planes radvel calcradialvelocity no Calculate radial velocity of the endocardium For ward difference is used 70 meanarea area calcroiarea no roino Calculates roi area helper fen varargout calcrowscols no z Calculate a good montage setup so maxiumum number of slices can be displayed on the screen varargout calcrvvolume Calculate RV volume calcrvvolumepolar Calculate RV volume when rotated image stacks xout yout calcsegmentationintersections no type Calculates intersections between segmentation in image stacks ticks calcticks num res Helper fen to calculate length of ticks in volume graph z calctruedata im no Calculate true image intensities as before Seg ment internal normalization calcvolume docomp Calculate volume of segmentation and updates wallthickness calcwallthickness sectors no Calculate wallthickness varargout cell2clipboard outdata writetofile Converts a cell to a string that is output to clip board When to many output arguments it is writ ten to a Excel file instead If more than 8000 cells are written then an xls file is written instead Note that this used active X on Windows and requires Excel to be installed on the computer center_Buttondown panel Called when center is pressed down se
85. used as center of the left ventricle when doing regional wall motion analysis If false then the center of the epicardial volume is used See User Manual for further de tails Four element vector describing the current zoom state for the image stack in normal mode This representation is potentially subject to future changes Four element vector describing the current zoom state for the image stack in montage view mode This representation is potentially subject to future changes Struct that contains measurements places in the image stack If no measures exist then Measure is an empty array If measures exist then it is a structure array where each measurement has the following fields e X A 2x1 vector with X coordinates e YA 2x1 vector with Y coordinates e Z scalar with the slice Length Length of the measure in mm Name String containing the name of the mea sure Struct that contains general object segmentation module Point Struct that contains position of annotation points The struct has the following fields e X1x N vector with X coordinates where N is the number of annotation points e Y1x N vector with Y coordinates e T1x N vector with time frames i e one for each point eZ 1x N vector with slice ie one for each point Label 1 x N cell array with string with the labels Originally all points were non time resolved Thereafter where time resolved points imple mented by making T points
86. without restarting Segment ImagingTechniquesFiulNameses titles of the parameter files See ThisFrameOnly ExcludePapilars UseLight StartFrame BalloonLevel BALLOON 30 above for details True if changes are applied only to the current timeframe Example of functionality is segmen tation clearing segmentation etc See details in the User Manual True if the papillars should be excluded in the au tomatic segmentation See User Manual and 2 3 for details True if to use current brightness and contrast as a cue in the Segmentation process For further details see the User Manual First frame played in a movie Initiated by SET NO CurrentTimeFrame but needed for cal culation what frame to display when playing a movie See also DATA StartTime Used to determine if the field DATA BALLOON needs to be recalculated Stores the parameter that was used last time to calculate DATA BALLOON A matrix of the same size as SET NO IM contain ing the radial balloon force For further details see 2 3 LevelSet DATASETPREVIEW EndoEDGEO ENDOEDGE1 ENDOEDGE2 ENDOEDGES3 EpiEDGEO EpiEDGE1 EpiEDGE2 EpiEDGE3 EndoEdgeDetected EndoEdgeDetected MovieFrame Helper structure to SET NO LevelSet DATA LevelSet stores parameters that are pertinent to the graphical user interface that does not need to be stored in SET NO LevelSet A 64 x 64 N array containing the preview thumb nails whe
87. xes indicate modules only available as object code cal handles These three variable are DATA SET and NO The variable DATA contains global state of the program and all main graphical handles The variable SET contains all image data segmentation ROI s measurements annotation points etc The variable NO is simply a scalar and points to the current image stack It is recommended not to use the global NO but rather include this in the call Rewriting this for larger parts of the code is a future enhancement of Segment The reason for having global variables instead of a completely functional programming approach is that e Simplicity for writing plug ins e Execution speed Using this approach there are way less variables pointers that needs to be passed to the functions The drawback with using global variable is that the variable should at all times only reflect valid global states of the data Therefore it is very impor tant that modifications of the global variables are done with care 21 9 Running Segment from Matlab You need to have Matlab R2008a or later to run Segment Running Seg ment from Matlab prompt is just as easy as running it as a stand alone application Note that necessary mex files have been compiled for Linux both 64 and 32 bit Mac OS X and Windows both 64 and 32 bit When Matlab has started simply type gt gt segment To get acess to the internal variable direct from the Matlab prompt si
88. y would follow the user community and 45 answered that they would follow it often A preliminary start page of the user community can be found on the following Facebook page http www facebook com pages Segment 119840021370285 It is the aim to be able to provide the following activities on the user com munity pages 1 Participate in discussion forums Currently forums for Developers dis cussion and tips and tricks Feature requests Segment and Mac 2 Contribute and share own plug ins This feature is currently not avail able If you have plug ins that you want to share please email them to support medviso com and we will manually upload the plug in Currently writing own plug ins to Segment is documented in the Seg ment Technical Manual and two plug in examples are documented in Chapter 3 FAQ sections Currently we are gathering FAQ in our support program All or almost all support request will be made available in a searchable data base Exceptions on when support requests are not included when the user request so in conjunction with classified projects Staff from Medviso AB will follow the user community page closely and mon itor any incoming questions or uprising discussions If you have any ideas or suggestions on how we should improve the user community please send us an email to support medviso com 99 14 Testing Segment To ensure highest quality of Segment as possible a complete testing system has be
89. y state free precision or fiesta MRSTIR par MR STIR pulse sequence edema sequence MRTOF par MR Time of flight sequence for vessels NMBPSPECT par Blood pool SPECT im ages OT par Myocardial probability obsoleted PT par Generic for PET not for segmenta tion use US par Generic for ultrasound Not for seg mentation use 39 CHAPTER 11 SET VARIABLE ImageType Type of images that the image stack depicts The field is used when identifying what image stacks to use for different analysis If not set at loading then Segment tries to figure these details out by looking at what operations have been performed on what image stacks Currently applied values are e General Generic Image type if not spec ified identified e Perfusion Rest e Perfusion Stress e Strain FFE Strain Fast Field Echo e Strain TFE Strain Turbo Field Echo e Late enhancement Viability e Cine e Scout e Qflow e T2Stir e T1BB 40 ImageViewPlane ImagePosition View plane of images that the image stack de picts The field is used when identifying what im age stacks to use for different analysis If not set at loading then Segment tries to figure these details out by looking at what operations have been per formed on what image stacks Currently applied values are e Unspecified Generic Image view plane if not specified identified e 2C

Download Pdf Manuals

image

Related Search

Related Contents

User`s Manual  次回の分団長会議は、 12月 20日 (水)に 行う予定です。  Philips myLiving  Carponem - Andermatt Biocontrol  exhibitor service manual - Community Health Care Association of  IoT Automation Solutions Fan-less Computer NISE 2400  3.2 Settings - IPCamOnline.de  CAPÍTULO 4 SUELO USADO DURANTE LA INVESTIGACIÓN  

Copyright © All rights reserved.
Failed to retrieve file