]> Creatis software - creaContours.git/commitdiff
Parser Osirix
authorJuan Prieto <Juan.Prieto@creatis.insa-lyon.fr>
Tue, 9 Feb 2010 21:27:50 +0000 (21:27 +0000)
committerJuan Prieto <Juan.Prieto@creatis.insa-lyon.fr>
Tue, 9 Feb 2010 21:27:50 +0000 (21:27 +0000)
19 files changed:
CMakeLists.txt
appli/wxContourGUIExample/CMakeLists.txt
bbtk/CMakeLists.txt
data/Icons/Import.png [new file with mode: 0644]
data/XML/osirixschema.xsd [new file with mode: 0644]
data/XML/testOsirix.xml [new file with mode: 0644]
lib/CMakeLists.txt
lib/Interface_Icons_NDimensions/interfIOMenu.cxx
lib/Interface_Icons_NDimensions/interfIOMenu.h
lib/Interface_Icons_NDimensions/interfMainPanel.cxx
lib/Interface_Icons_NDimensions/interfMainPanel.h
lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.cxx
lib/Interface_ManagerContour_NDimensions/wxContourMainFrame.h
lib/kernel_ManagerContour_NDimensions/CMakeLists.txt
lib/kernel_ManagerContour_NDimensions/KernelManagerContour.cxx
lib/kernel_ManagerContour_NDimensions/KernelManagerContour.h
lib/kernel_ManagerContour_NDimensions/ParserOsirix/OsirixParser.cxx [new file with mode: 0644]
lib/kernel_ManagerContour_NDimensions/ParserOsirix/OsirixParser.h [new file with mode: 0644]
lib/kernel_ManagerContour_NDimensions/ParserOsirix/ParserOsirix.cmake [new file with mode: 0644]

index 7f0be56e8e1f2f69b3fc6f7b3503e3993cf71d18..3cbafed4a59b5cf12a139e232ae8b45364baf398 100644 (file)
@@ -47,6 +47,7 @@ SET(USE_WXWIDGETS ON)
 SET(USE_VTK ON)
 SET(USE_ITK ON)
 SET(USE_BOOST ON)
+SET(USE_XERCES ON)
 
 CREA_FIND_AND_USE_LIBRARIES()
 
@@ -67,7 +68,7 @@ ENDIF(WIN32)
 INCLUDE_DIRECTORIES(lib/Interface_ManagerContour_NDimensions)
 INCLUDE_DIRECTORIES(lib/Interface_Icons_NDimensions)
 INCLUDE_DIRECTORIES(lib/kernel_ManagerContour_NDimensions)
-
+INCLUDE_DIRECTORIES(lib/kernel_ManagerContour_NDimensions/ParserOsirix)
 
 SUBDIRS(lib)
 SUBDIRS(appli)
index 6ba1b9845608959a434e092e3c23b3f006a76666..22137635a831f826960bb971952000094e86651e 100644 (file)
@@ -19,7 +19,7 @@ TARGET_LINK_LIBRARIES( wxContourGUIExample
                       ${creaImageIO2_LIBRARIES}
                        Interface_Icons_NDimensions_lib
                        Interface_ManagerContour_NDimensions_lib
-                       kernel_ManagerContour_NDimensions_lib
+                       kernel_ManagerContour_NDimensions_lib                   
 
                      )
 
index 3c8c76d702f9415acf592bd87d97f52bb764a326..a8408caa8141de8be416c6fa04b35b6312f26a15 100644 (file)
@@ -132,8 +132,10 @@ SET(${BBTK_PACKAGE_NAME}_LIBS
        Interface_ManagerContour_NDimensions_lib
        Interface_Icons_NDimensions_lib
        kernel_ManagerContour_NDimensions_lib
+       kernelParserOsirix
        ${creaEnvironment_LIBRARIES} 
        ${creaMaracasVisu_LIBRARIES}
+       
 
   )
 #===========================================================================
diff --git a/data/Icons/Import.png b/data/Icons/Import.png
new file mode 100644 (file)
index 0000000..788aec7
Binary files /dev/null and b/data/Icons/Import.png differ
diff --git a/data/XML/osirixschema.xsd b/data/XML/osirixschema.xsd
new file mode 100644 (file)
index 0000000..4875077
--- /dev/null
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--W3C Schema generated by XMLSpy v2010 (http://www.altova.com)-->
+<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
+       <xs:complexType name="T_plist">
+               <xs:sequence>
+                       <xs:element ref="dict"/>
+               </xs:sequence>
+               <xs:attribute ref="version" use="required"/>
+       </xs:complexType>
+       <xs:complexType name="T_dict">
+               <xs:sequence>
+                       <xs:element ref="key"/>
+                       <xs:choice>
+                               <xs:sequence>
+                                       <xs:sequence minOccurs="0">
+                                               <xs:element ref="integer"/>
+                                               <xs:element ref="key"/>
+                                               <xs:element ref="integer"/>
+                                               <xs:element ref="key"/>
+                                       </xs:sequence>
+                                       <xs:element ref="array"/>
+                               </xs:sequence>
+                               <xs:sequence>
+                                       <xs:element ref="real"/>
+                                       <xs:element ref="key"/>
+                                       <xs:element ref="string"/>
+                                       <xs:element ref="key"/>
+                                       <xs:element ref="real"/>
+                                       <xs:element ref="key"/>
+                                       <xs:element ref="integer"/>
+                                       <xs:element ref="key"/>
+                                       <xs:element ref="real"/>
+                                       <xs:element ref="key"/>
+                                       <xs:element ref="real"/>
+                                       <xs:element ref="key"/>
+                                       <xs:element ref="real"/>
+                                       <xs:element ref="key"/>
+                                       <xs:element ref="string"/>
+                                       <xs:element ref="key"/>
+                                       <xs:element ref="integer"/>
+                                       <xs:element ref="key"/>
+                                       <xs:element ref="array"/>
+                                       <xs:element ref="key"/>
+                                       <xs:element ref="array"/>
+                                       <xs:element ref="key"/>
+                                       <xs:element ref="real"/>
+                                       <xs:element ref="key"/>
+                                       <xs:element ref="integer"/>
+                               </xs:sequence>
+                       </xs:choice>
+               </xs:sequence>
+       </xs:complexType>
+       <xs:complexType name="T_array">
+               <xs:choice>
+                       <xs:element ref="dict" maxOccurs="unbounded"/>
+                       <xs:element ref="string" maxOccurs="unbounded"/>
+               </xs:choice>
+       </xs:complexType>
+       <xs:attribute name="version" type="xs:decimal"/>
+       <xs:element name="string" type="xs:string"/>
+       <xs:element name="real" type="xs:decimal"/>
+       <xs:element name="plist" type="T_plist"/>
+       <xs:element name="key" type="xs:string"/>
+       <xs:element name="integer" type="xs:byte"/>
+       <xs:element name="dict" type="T_dict"/>
+       <xs:element name="array" type="T_array"/>
+</xs:schema>
diff --git a/data/XML/testOsirix.xml b/data/XML/testOsirix.xml
new file mode 100644 (file)
index 0000000..c5fd9d1
--- /dev/null
@@ -0,0 +1,1975 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+       <key>Images</key>
+       <array>
+               <dict>
+                       <key>ImageIndex</key>
+                       <integer>6</integer>
+                       <key>NumberOfROIs</key>
+                       <integer>1</integer>
+                       <key>ROIs</key>
+                       <array>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>0.2282261848449707</real>
+                                       <key>Center</key>
+                                       <string>(1.829798, 3.995818, -36.073521)</string>
+                                       <key>Dev</key>
+                                       <real>36.505741119384766</real>
+                                       <key>IndexInImage</key>
+                                       <integer>0</integer>
+                                       <key>Max</key>
+                                       <real>301</real>
+                                       <key>Mean</key>
+                                       <real>177.32608032226562</real>
+                                       <key>Min</key>
+                                       <real>98</real>
+                                       <key>Name</key>
+                                       <string>2</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>10</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(2.214880, -0.486380, -36.073521)</string>
+                                               <string>(4.908628, 3.123778, -36.073521)</string>
+                                               <string>(6.178946, 5.453462, -36.073521)</string>
+                                               <string>(2.790661, 5.877680, -36.073521)</string>
+                                               <string>(-1.096838, 6.399554, -36.073521)</string>
+                                               <string>(-0.533562, 5.570656, -36.073521)</string>
+                                               <string>(0.028939, 4.742533, -36.073521)</string>
+                                               <string>(0.673468, 4.329247, -36.073521)</string>
+                                               <string>(1.318009, 3.915960, -36.073521)</string>
+                                               <string>(1.814885, 1.031596, -36.073521)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(139.056580, 138.696594)</string>
+                                               <string>(142.504578, 143.317596)</string>
+                                               <string>(144.130585, 146.299591)</string>
+                                               <string>(139.793579, 146.842590)</string>
+                                               <string>(134.817581, 147.510590)</string>
+                                               <string>(135.538574, 146.449600)</string>
+                                               <string>(136.258575, 145.389603)</string>
+                                               <string>(137.083572, 144.860596)</string>
+                                               <string>(137.908585, 144.331589)</string>
+                                               <string>(138.544586, 140.639603)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>8157</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                       </array>
+               </dict>
+               <dict>
+                       <key>ImageIndex</key>
+                       <integer>7</integer>
+                       <key>NumberOfROIs</key>
+                       <integer>4</integer>
+                       <key>ROIs</key>
+                       <array>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>1.5463262796401978</real>
+                                       <key>Center</key>
+                                       <string>(1.420660, -8.016580, -33.073521)</string>
+                                       <key>Dev</key>
+                                       <real>43.547935485839844</real>
+                                       <key>IndexInImage</key>
+                                       <integer>0</integer>
+                                       <key>Max</key>
+                                       <real>293</real>
+                                       <key>Mean</key>
+                                       <real>157.74192810058594</real>
+                                       <key>Min</key>
+                                       <real>69</real>
+                                       <key>Name</key>
+                                       <string>b2</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>15</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(0.248475, -18.055910, -33.073521)</string>
+                                               <string>(-1.869493, -15.726220, -33.073521)</string>
+                                               <string>(-3.139811, -12.972319, -33.073521)</string>
+                                               <string>(-3.774958, -10.642630, -33.073521)</string>
+                                               <string>(-4.199188, -8.101218, -33.073521)</string>
+                                               <string>(-4.199188, -5.771535, -33.073521)</string>
+                                               <string>(-3.139811, -3.441852, -33.073521)</string>
+                                               <string>(-0.810115, -2.171534, -33.073521)</string>
+                                               <string>(1.942999, -1.112157, -33.073521)</string>
+                                               <string>(4.272695, -1.535600, -33.073521)</string>
+                                               <string>(6.602378, -3.230124, -33.073521)</string>
+                                               <string>(7.661755, -5.559820, -33.073521)</string>
+                                               <string>(7.873471, -8.101218, -33.073521)</string>
+                                               <string>(7.873471, -10.430908, -33.073521)</string>
+                                               <string>(5.967219, -13.395756, -33.073521)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(136.539581, 116.207596)</string>
+                                               <string>(133.828583, 119.189598)</string>
+                                               <string>(132.202576, 122.714592)</string>
+                                               <string>(131.389587, 125.696594)</string>
+                                               <string>(130.846573, 128.949600)</string>
+                                               <string>(130.846573, 131.931595)</string>
+                                               <string>(132.202576, 134.913589)</string>
+                                               <string>(135.184586, 136.539597)</string>
+                                               <string>(138.708572, 137.895599)</string>
+                                               <string>(141.690582, 137.353592)</string>
+                                               <string>(144.672577, 135.184601)</string>
+                                               <string>(146.028580, 132.202591)</string>
+                                               <string>(146.299576, 128.949600)</string>
+                                               <string>(146.299576, 125.967598)</string>
+                                               <string>(143.859573, 122.172592)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>44010</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>2.3100674152374268</real>
+                                       <key>Center</key>
+                                       <string>(-16.497385, -10.622685, -33.073521)</string>
+                                       <key>Dev</key>
+                                       <real>53.491893768310547</real>
+                                       <key>IndexInImage</key>
+                                       <integer>1</integer>
+                                       <key>Max</key>
+                                       <real>386</real>
+                                       <key>Mean</key>
+                                       <real>155.01690673828125</real>
+                                       <key>Min</key>
+                                       <real>38</real>
+                                       <key>Name</key>
+                                       <string>b1</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>17</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(-9.493713, -8.524662, -33.073521)</string>
+                                               <string>(-8.858554, -11.490285, -33.073521)</string>
+                                               <string>(-9.281998, -13.819974, -33.073521)</string>
+                                               <string>(-9.917150, -16.784817, -33.073521)</string>
+                                               <string>(-11.364804, -20.997314, -33.073521)</string>
+                                               <string>(-14.150743, -20.873098, -33.073521)</string>
+                                               <string>(-16.392933, -20.117628, -33.073521)</string>
+                                               <string>(-19.613247, -17.303568, -33.073521)</string>
+                                               <string>(-20.295279, -14.878565, -33.073521)</string>
+                                               <string>(-20.930431, -12.548882, -33.073521)</string>
+                                               <string>(-22.412466, -10.007470, -33.073521)</string>
+                                               <string>(-22.412466, -7.677787, -33.073521)</string>
+                                               <string>(-22.200745, -5.348092, -33.073521)</string>
+                                               <string>(-21.142153, -2.806693, -33.073521)</string>
+                                               <string>(-19.659340, -0.477010, -33.073521)</string>
+                                               <string>(-17.329649, 1.429242, -33.073521)</string>
+                                               <string>(-14.999961, 1.640970, -33.073521)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(124.069580, 128.407593)</string>
+                                               <string>(124.882584, 124.611595)</string>
+                                               <string>(124.340576, 121.629593)</string>
+                                               <string>(123.527580, 117.834595)</string>
+                                               <string>(121.674583, 112.442596)</string>
+                                               <string>(118.108582, 112.601593)</string>
+                                               <string>(115.238579, 113.568596)</string>
+                                               <string>(111.116577, 117.170593)</string>
+                                               <string>(110.243576, 120.274597)</string>
+                                               <string>(109.430580, 123.256592)</string>
+                                               <string>(107.533577, 126.509598)</string>
+                                               <string>(107.533577, 129.491592)</string>
+                                               <string>(107.804581, 132.473602)</string>
+                                               <string>(109.159576, 135.726593)</string>
+                                               <string>(111.057579, 138.708588)</string>
+                                               <string>(114.039581, 141.148590)</string>
+                                               <string>(117.021584, 141.419601)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>64177</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>0.28483271598815918</real>
+                                       <key>Center</key>
+                                       <string>(0.964303, 5.030221, -33.073521)</string>
+                                       <key>Dev</key>
+                                       <real>39.861442565917969</real>
+                                       <key>IndexInImage</key>
+                                       <integer>2</integer>
+                                       <key>Max</key>
+                                       <real>271</real>
+                                       <key>Mean</key>
+                                       <real>178.21875</real>
+                                       <key>Min</key>
+                                       <real>93</real>
+                                       <key>Name</key>
+                                       <string>2</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>8</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(5.756290, 2.488619, -33.073521)</string>
+                                               <string>(3.426595, 1.853460, -33.073521)</string>
+                                               <string>(1.096911, 3.123778, -33.073521)</string>
+                                               <string>(-1.232772, 4.394871, -33.073521)</string>
+                                               <string>(-2.715592, 6.724555, -33.073521)</string>
+                                               <string>(-2.080433, 8.842523, -33.073521)</string>
+                                               <string>(0.249250, 7.147998, -33.073521)</string>
+                                               <string>(3.214104, 5.665964, -33.073521)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(143.589584, 142.504593)</string>
+                                               <string>(140.607574, 141.691589)</string>
+                                               <string>(137.625580, 143.317596)</string>
+                                               <string>(134.643585, 144.944595)</string>
+                                               <string>(132.745575, 147.926590)</string>
+                                               <string>(133.558578, 150.637589)</string>
+                                               <string>(136.540573, 148.468597)</string>
+                                               <string>(140.335587, 146.571594)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>11406</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>0.20062923431396484</real>
+                                       <key>Center</key>
+                                       <string>(-13.940721, 7.536417, -33.073521)</string>
+                                       <key>Dev</key>
+                                       <real>52.268970489501953</real>
+                                       <key>IndexInImage</key>
+                                       <integer>3</integer>
+                                       <key>Max</key>
+                                       <real>381</real>
+                                       <key>Mean</key>
+                                       <real>279.82925415039062</real>
+                                       <key>Min</key>
+                                       <real>200</real>
+                                       <key>Name</key>
+                                       <string>1</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>6</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(-13.940589, 9.477681, -33.073521)</string>
+                                               <string>(-11.610900, 9.477681, -33.073521)</string>
+                                               <string>(-11.399184, 7.147998, -33.073521)</string>
+                                               <string>(-13.728868, 5.665964, -33.073521)</string>
+                                               <string>(-15.846841, 5.453462, -33.073521)</string>
+                                               <string>(-17.117933, 7.995647, -33.073521)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(118.377579, 151.450592)</string>
+                                               <string>(121.359581, 151.450592)</string>
+                                               <string>(121.630577, 148.468597)</string>
+                                               <string>(118.648582, 146.571594)</string>
+                                               <string>(115.937576, 146.299591)</string>
+                                               <string>(114.310577, 149.553589)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>11473</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                       </array>
+               </dict>
+               <dict>
+                       <key>ImageIndex</key>
+                       <integer>8</integer>
+                       <key>NumberOfROIs</key>
+                       <integer>4</integer>
+                       <key>ROIs</key>
+                       <array>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>2.1033346652984619</real>
+                                       <key>Center</key>
+                                       <string>(1.507123, -10.779810, -30.073523)</string>
+                                       <key>Dev</key>
+                                       <real>37.454299926757812</real>
+                                       <key>IndexInImage</key>
+                                       <integer>0</integer>
+                                       <key>Max</key>
+                                       <real>282</real>
+                                       <key>Mean</key>
+                                       <real>151.89305114746094</real>
+                                       <key>Min</key>
+                                       <real>65</real>
+                                       <key>Name</key>
+                                       <string>b2</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>17</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(10.203166, -11.066067, -30.073523)</string>
+                                               <string>(9.567221, -13.395756, -30.073523)</string>
+                                               <string>(7.661755, -15.937942, -30.073523)</string>
+                                               <string>(5.332072, -17.843412, -30.073523)</string>
+                                               <string>(2.790661, -19.537943, -30.073523)</string>
+                                               <string>(0.248475, -20.173096, -30.073523)</string>
+                                               <string>(-2.081208, -18.691069, -30.073523)</string>
+                                               <string>(-3.139811, -16.149658, -30.073523)</string>
+                                               <string>(-3.986685, -13.819974, -30.073523)</string>
+                                               <string>(-3.986685, -11.490285, -30.073523)</string>
+                                               <string>(-3.351526, -8.948880, -30.073523)</string>
+                                               <string>(-2.716367, -6.406694, -30.073523)</string>
+                                               <string>(-1.869493, -4.076999, -30.073523)</string>
+                                               <string>(-0.810115, -1.747316, -30.073523)</string>
+                                               <string>(1.519568, -1.535600, -30.073523)</string>
+                                               <string>(3.849251, -0.900441, -30.073523)</string>
+                                               <string>(6.390662, -1.535600, -30.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(149.281586, 125.154594)</string>
+                                               <string>(148.467575, 122.172592)</string>
+                                               <string>(146.028580, 118.918594)</string>
+                                               <string>(143.046585, 116.479591)</string>
+                                               <string>(139.793579, 114.310593)</string>
+                                               <string>(136.539581, 113.497597)</string>
+                                               <string>(133.557587, 115.394592)</string>
+                                               <string>(132.202576, 118.647598)</string>
+                                               <string>(131.118576, 121.629593)</string>
+                                               <string>(131.118576, 124.611595)</string>
+                                               <string>(131.931580, 127.864594)</string>
+                                               <string>(132.744583, 131.118591)</string>
+                                               <string>(133.828583, 134.100601)</string>
+                                               <string>(135.184586, 137.082596)</string>
+                                               <string>(138.166580, 137.353592)</string>
+                                               <string>(141.148575, 138.166595)</string>
+                                               <string>(144.401581, 137.353592)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>56808</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>2.4026899337768555</real>
+                                       <key>Center</key>
+                                       <string>(-15.647273, -11.466372, -30.073523)</string>
+                                       <key>Dev</key>
+                                       <real>57.220077514648438</real>
+                                       <key>IndexInImage</key>
+                                       <integer>1</integer>
+                                       <key>Max</key>
+                                       <real>452</real>
+                                       <key>Mean</key>
+                                       <real>172.07493591308594</real>
+                                       <key>Min</key>
+                                       <real>44</real>
+                                       <key>Name</key>
+                                       <string>b1</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>18</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(-8.646058, -6.194967, -30.073523)</string>
+                                               <string>(-8.646058, -8.312946, -30.073523)</string>
+                                               <string>(-8.434336, -10.430908, -30.073523)</string>
+                                               <string>(-8.434336, -12.760597, -30.073523)</string>
+                                               <string>(-8.858554, -15.302002, -30.073523)</string>
+                                               <string>(-9.493713, -17.631691, -30.073523)</string>
+                                               <string>(-11.823402, -19.537943, -30.073523)</string>
+                                               <string>(-13.941370, -20.809036, -30.073523)</string>
+                                               <string>(-16.482775, -20.385599, -30.073523)</string>
+                                               <string>(-18.389027, -18.055910, -30.073523)</string>
+                                               <string>(-19.871056, -15.513723, -30.073523)</string>
+                                               <string>(-20.718716, -13.184034, -30.073523)</string>
+                                               <string>(-21.142153, -10.642630, -30.073523)</string>
+                                               <string>(-21.142153, -8.312946, -30.073523)</string>
+                                               <string>(-21.353868, -5.983251, -30.073523)</string>
+                                               <string>(-22.200745, -3.653568, -30.073523)</string>
+                                               <string>(-21.777308, -1.112157, -30.073523)</string>
+                                               <string>(-20.295279, 1.429242, -30.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(125.154579, 131.389603)</string>
+                                               <string>(125.154579, 128.678589)</string>
+                                               <string>(125.425583, 125.967598)</string>
+                                               <string>(125.425583, 122.985596)</string>
+                                               <string>(124.882584, 119.732597)</string>
+                                               <string>(124.069580, 116.750595)</string>
+                                               <string>(121.087578, 114.310593)</string>
+                                               <string>(118.376579, 112.683594)</string>
+                                               <string>(115.123581, 113.225594)</string>
+                                               <string>(112.683578, 116.207596)</string>
+                                               <string>(110.786583, 119.461594)</string>
+                                               <string>(109.701576, 122.443596)</string>
+                                               <string>(109.159576, 125.696594)</string>
+                                               <string>(109.159576, 128.678589)</string>
+                                               <string>(108.888580, 131.660599)</string>
+                                               <string>(107.804581, 134.642593)</string>
+                                               <string>(108.346581, 137.895599)</string>
+                                               <string>(110.243576, 141.148590)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>73476</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>0.2447277307510376</real>
+                                       <key>Center</key>
+                                       <string>(-25.044493, -8.131354, -30.073523)</string>
+                                       <key>Dev</key>
+                                       <real>37.539157867431641</real>
+                                       <key>IndexInImage</key>
+                                       <integer>2</integer>
+                                       <key>Max</key>
+                                       <real>182</real>
+                                       <key>Mean</key>
+                                       <real>109.98148345947266</real>
+                                       <key>Min</key>
+                                       <real>29</real>
+                                       <key>Name</key>
+                                       <string>3</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>7</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(-23.682777, -6.194967, -30.073523)</string>
+                                               <string>(-23.682777, -8.524662, -30.073523)</string>
+                                               <string>(-23.682777, -10.854345, -30.073523)</string>
+                                               <string>(-24.742149, -12.760597, -30.073523)</string>
+                                               <string>(-27.071838, -8.524662, -30.073523)</string>
+                                               <string>(-27.071838, -6.194967, -30.073523)</string>
+                                               <string>(-25.377308, -3.865283, -30.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(105.907578, 131.389603)</string>
+                                               <string>(105.907578, 128.407593)</string>
+                                               <string>(105.907578, 125.425598)</string>
+                                               <string>(104.551582, 122.985596)</string>
+                                               <string>(101.569580, 128.407593)</string>
+                                               <string>(101.569580, 131.389603)</string>
+                                               <string>(103.738579, 134.371597)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>5939</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>0.47897100448608398</real>
+                                       <key>Center</key>
+                                       <string>(-14.814220, 7.015771, -30.073523)</string>
+                                       <key>Dev</key>
+                                       <real>38.340850830078125</real>
+                                       <key>IndexInImage</key>
+                                       <integer>3</integer>
+                                       <key>Max</key>
+                                       <real>289</real>
+                                       <key>Mean</key>
+                                       <real>216</real>
+                                       <key>Min</key>
+                                       <real>104</real>
+                                       <key>Name</key>
+                                       <string>1</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>8</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(-14.364027, 11.172217, -30.073523)</string>
+                                               <string>(-12.246059, 8.842523, -30.073523)</string>
+                                               <string>(-10.764026, 6.724555, -30.073523)</string>
+                                               <string>(-11.610900, 4.394871, -30.073523)</string>
+                                               <string>(-13.940589, 4.606587, -30.073523)</string>
+                                               <string>(-16.270279, 5.241746, -30.073523)</string>
+                                               <string>(-18.388247, 6.512839, -30.073523)</string>
+                                               <string>(-20.929651, 8.630807, -30.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(117.835579, 153.619598)</string>
+                                               <string>(120.546577, 150.637589)</string>
+                                               <string>(122.443581, 147.926590)</string>
+                                               <string>(121.359581, 144.944595)</string>
+                                               <string>(118.377579, 145.215591)</string>
+                                               <string>(115.395576, 146.028595)</string>
+                                               <string>(112.684578, 147.655594)</string>
+                                               <string>(109.431580, 150.366592)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>20952</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                       </array>
+               </dict>
+               <dict>
+                       <key>ImageIndex</key>
+                       <integer>9</integer>
+                       <key>NumberOfROIs</key>
+                       <integer>4</integer>
+                       <key>ROIs</key>
+                       <array>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>3.3587932586669922</real>
+                                       <key>Center</key>
+                                       <string>(4.131658, -6.840616, -27.073523)</string>
+                                       <key>Dev</key>
+                                       <real>38.031448364257812</real>
+                                       <key>IndexInImage</key>
+                                       <integer>0</integer>
+                                       <key>Max</key>
+                                       <real>284</real>
+                                       <key>Mean</key>
+                                       <real>154.08934020996094</real>
+                                       <key>Min</key>
+                                       <real>65</real>
+                                       <key>Name</key>
+                                       <string>b2</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>21</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(0.672693, -19.537943, -27.073523)</string>
+                                               <string>(-1.656990, -18.267632, -27.073523)</string>
+                                               <string>(-3.351526, -15.937942, -27.073523)</string>
+                                               <string>(-4.410903, -13.608253, -27.073523)</string>
+                                               <string>(-4.622619, -11.066067, -27.073523)</string>
+                                               <string>(-5.046062, -8.524662, -27.073523)</string>
+                                               <string>(-4.834335, -5.983251, -27.073523)</string>
+                                               <string>(-3.351526, -3.441852, -27.073523)</string>
+                                               <string>(-2.292936, -1.112157, -27.073523)</string>
+                                               <string>(-0.386684, 1.217526, -27.073523)</string>
+                                               <string>(3.002377, 2.276117, -27.073523)</string>
+                                               <string>(5.332072, 2.700335, -27.073523)</string>
+                                               <string>(7.661755, 2.912063, -27.073523)</string>
+                                               <string>(10.203166, 1.429242, -27.073523)</string>
+                                               <string>(12.109406, -0.900441, -27.073523)</string>
+                                               <string>(12.744565, -3.230124, -27.073523)</string>
+                                               <string>(13.168009, -5.771535, -27.073523)</string>
+                                               <string>(13.379725, -8.312946, -27.073523)</string>
+                                               <string>(13.379725, -10.430908, -27.073523)</string>
+                                               <string>(13.379725, -12.760597, -27.073523)</string>
+                                               <string>(11.685188, -15.302002, -27.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(137.082581, 114.310593)</string>
+                                               <string>(134.100586, 115.936592)</string>
+                                               <string>(131.931580, 118.918594)</string>
+                                               <string>(130.575577, 121.900597)</string>
+                                               <string>(130.304581, 125.154594)</string>
+                                               <string>(129.762573, 128.407593)</string>
+                                               <string>(130.033585, 131.660599)</string>
+                                               <string>(131.931580, 134.913589)</string>
+                                               <string>(133.286575, 137.895599)</string>
+                                               <string>(135.726578, 140.877594)</string>
+                                               <string>(140.064575, 142.232590)</string>
+                                               <string>(143.046585, 142.775589)</string>
+                                               <string>(146.028580, 143.046600)</string>
+                                               <string>(149.281586, 141.148590)</string>
+                                               <string>(151.721573, 138.166595)</string>
+                                               <string>(152.534576, 135.184601)</string>
+                                               <string>(153.076584, 131.931595)</string>
+                                               <string>(153.347580, 128.678589)</string>
+                                               <string>(153.347580, 125.967598)</string>
+                                               <string>(153.347580, 122.985596)</string>
+                                               <string>(151.178574, 119.732597)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>89680</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>3.0753970146179199</real>
+                                       <key>Center</key>
+                                       <string>(-16.869526, -10.679656, -27.073523)</string>
+                                       <key>Dev</key>
+                                       <real>51.686145782470703</real>
+                                       <key>IndexInImage</key>
+                                       <integer>1</integer>
+                                       <key>Max</key>
+                                       <real>342</real>
+                                       <key>Mean</key>
+                                       <real>154.62295532226562</real>
+                                       <key>Min</key>
+                                       <real>40</real>
+                                       <key>Name</key>
+                                       <string>b1</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>23</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(-8.858554, -13.395756, -27.073523)</string>
+                                               <string>(-8.646058, -15.726220, -27.073523)</string>
+                                               <string>(-8.434336, -18.267632, -27.073523)</string>
+                                               <string>(-9.070276, -20.809036, -27.073523)</string>
+                                               <string>(-11.611681, -22.079348, -27.073523)</string>
+                                               <string>(-13.941370, -22.291063, -27.073523)</string>
+                                               <string>(-16.482775, -22.291063, -27.073523)</string>
+                                               <string>(-19.235901, -21.655910, -27.073523)</string>
+                                               <string>(-21.777308, -20.173096, -27.073523)</string>
+                                               <string>(-22.412466, -17.631691, -27.073523)</string>
+                                               <string>(-22.624962, -14.878565, -27.073523)</string>
+                                               <string>(-22.836683, -12.337160, -27.073523)</string>
+                                               <string>(-22.836683, -10.007470, -27.073523)</string>
+                                               <string>(-22.836683, -7.677787, -27.073523)</string>
+                                               <string>(-22.836683, -5.348092, -27.073523)</string>
+                                               <string>(-22.624962, -2.806693, -27.073523)</string>
+                                               <string>(-22.200745, -0.477010, -27.073523)</string>
+                                               <string>(-20.718716, 1.852685, -27.073523)</string>
+                                               <string>(-18.177305, 2.700335, -27.073523)</string>
+                                               <string>(-15.847622, 1.429242, -27.073523)</string>
+                                               <string>(-13.306211, -0.053566, -27.073523)</string>
+                                               <string>(-10.975747, -0.688725, -27.073523)</string>
+                                               <string>(-9.705435, -3.018409, -27.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(124.882584, 122.172592)</string>
+                                               <string>(125.154579, 119.189598)</string>
+                                               <string>(125.425583, 115.936592)</string>
+                                               <string>(124.611580, 112.683594)</string>
+                                               <string>(121.358582, 111.057594)</string>
+                                               <string>(118.376579, 110.786598)</string>
+                                               <string>(115.123581, 110.786598)</string>
+                                               <string>(111.599579, 111.599594)</string>
+                                               <string>(108.346581, 113.497597)</string>
+                                               <string>(107.533577, 116.750595)</string>
+                                               <string>(107.261581, 120.274597)</string>
+                                               <string>(106.990578, 123.527596)</string>
+                                               <string>(106.990578, 126.509598)</string>
+                                               <string>(106.990578, 129.491592)</string>
+                                               <string>(106.990578, 132.473602)</string>
+                                               <string>(107.261581, 135.726593)</string>
+                                               <string>(107.804581, 138.708588)</string>
+                                               <string>(109.701576, 141.690598)</string>
+                                               <string>(112.954582, 142.775589)</string>
+                                               <string>(115.936577, 141.148590)</string>
+                                               <string>(119.189583, 139.250595)</string>
+                                               <string>(122.172577, 138.437592)</string>
+                                               <string>(123.798576, 135.455597)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>84888</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>0.23835599422454834</real>
+                                       <key>Center</key>
+                                       <string>(-24.900740, -8.736378, -27.073523)</string>
+                                       <key>Dev</key>
+                                       <real>34.793563842773438</real>
+                                       <key>IndexInImage</key>
+                                       <integer>2</integer>
+                                       <key>Max</key>
+                                       <real>234</real>
+                                       <key>Mean</key>
+                                       <real>140.84906005859375</real>
+                                       <key>Min</key>
+                                       <real>78</real>
+                                       <key>Name</key>
+                                       <string>3</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>8</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(-23.047619, -6.618410, -27.073523)</string>
+                                               <string>(-23.894493, -8.736378, -27.073523)</string>
+                                               <string>(-23.894493, -11.066067, -27.073523)</string>
+                                               <string>(-24.106997, -13.395756, -27.073523)</string>
+                                               <string>(-26.012461, -11.066067, -27.073523)</string>
+                                               <string>(-26.224182, -8.736378, -27.073523)</string>
+                                               <string>(-27.071838, -6.406694, -27.073523)</string>
+                                               <string>(-24.953871, -3.865283, -27.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(106.720581, 130.847595)</string>
+                                               <string>(105.636581, 128.136597)</string>
+                                               <string>(105.636581, 125.154594)</string>
+                                               <string>(105.364578, 122.172592)</string>
+                                               <string>(102.925583, 125.154594)</string>
+                                               <string>(102.654579, 128.136597)</string>
+                                               <string>(101.569580, 131.118591)</string>
+                                               <string>(104.280579, 134.371597)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>7465</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>0.48890411853790283</real>
+                                       <key>Center</key>
+                                       <string>(-15.232550, 7.508308, -27.073523)</string>
+                                       <key>Dev</key>
+                                       <real>30.310798645019531</real>
+                                       <key>IndexInImage</key>
+                                       <integer>3</integer>
+                                       <key>Max</key>
+                                       <real>228</real>
+                                       <key>Mean</key>
+                                       <real>169.27835083007812</real>
+                                       <key>Min</key>
+                                       <real>94</real>
+                                       <key>Name</key>
+                                       <string>1</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>10</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(-13.093715, 10.537059, -27.073523)</string>
+                                               <string>(-11.822621, 8.207376, -27.073523)</string>
+                                               <string>(-9.704648, 5.877680, -27.073523)</string>
+                                               <string>(-12.034337, 4.818303, -27.073523)</string>
+                                               <string>(-14.152305, 5.030030, -27.073523)</string>
+                                               <string>(-16.481995, 5.453462, -27.073523)</string>
+                                               <string>(-19.023399, 5.877680, -27.073523)</string>
+                                               <string>(-21.142153, 7.995647, -27.073523)</string>
+                                               <string>(-19.023399, 10.325343, -27.073523)</string>
+                                               <string>(-15.846841, 10.960502, -27.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(119.461578, 152.806595)</string>
+                                               <string>(121.088577, 149.824600)</string>
+                                               <string>(123.799583, 146.842590)</string>
+                                               <string>(120.817581, 145.486588)</string>
+                                               <string>(118.106583, 145.757599)</string>
+                                               <string>(115.124580, 146.299591)</string>
+                                               <string>(111.871582, 146.842590)</string>
+                                               <string>(109.159576, 149.553589)</string>
+                                               <string>(111.871582, 152.535599)</string>
+                                               <string>(115.937576, 153.348602)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>16420</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                       </array>
+               </dict>
+               <dict>
+                       <key>ImageIndex</key>
+                       <integer>10</integer>
+                       <key>NumberOfROIs</key>
+                       <integer>4</integer>
+                       <key>ROIs</key>
+                       <array>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>4.2655825614929199</real>
+                                       <key>Center</key>
+                                       <string>(3.025539, -8.085626, -24.073523)</string>
+                                       <key>Dev</key>
+                                       <real>36.650798797607422</real>
+                                       <key>IndexInImage</key>
+                                       <integer>0</integer>
+                                       <key>Max</key>
+                                       <real>294</real>
+                                       <key>Mean</key>
+                                       <real>149.45074462890625</real>
+                                       <key>Min</key>
+                                       <real>51</real>
+                                       <key>Name</key>
+                                       <string>b2</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>27</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(8.932074, -16.996532, -24.073523)</string>
+                                               <string>(7.873471, -19.326221, -24.073523)</string>
+                                               <string>(6.390662, -21.655910, -24.073523)</string>
+                                               <string>(4.060979, -22.291063, -24.073523)</string>
+                                               <string>(1.731284, -23.350441, -24.073523)</string>
+                                               <string>(-0.810115, -23.138725, -24.073523)</string>
+                                               <string>(-3.139811, -20.809036, -24.073523)</string>
+                                               <string>(-4.410903, -18.479347, -24.073523)</string>
+                                               <string>(-4.410903, -16.149658, -24.073523)</string>
+                                               <string>(-4.622619, -13.608253, -24.073523)</string>
+                                               <string>(-4.622619, -11.066067, -24.073523)</string>
+                                               <string>(-4.834335, -8.736378, -24.073523)</string>
+                                               <string>(-4.622619, -6.406694, -24.073523)</string>
+                                               <string>(-4.199188, -4.289502, -24.073523)</string>
+                                               <string>(-3.774958, -1.535600, -24.073523)</string>
+                                               <string>(-2.928083, 0.794095, -24.073523)</string>
+                                               <string>(-2.081208, 3.335494, -24.073523)</string>
+                                               <string>(0.460978, 4.817528, -24.073523)</string>
+                                               <string>(3.425820, 5.665189, -24.073523)</string>
+                                               <string>(5.755503, 5.453462, -24.073523)</string>
+                                               <string>(8.085198, 4.817528, -24.073523)</string>
+                                               <string>(10.414882, 3.547210, -24.073523)</string>
+                                               <string>(12.109406, 1.217526, -24.073523)</string>
+                                               <string>(13.591440, -1.323884, -24.073523)</string>
+                                               <string>(14.226599, -3.865283, -24.073523)</string>
+                                               <string>(14.862533, -6.406694, -24.073523)</string>
+                                               <string>(14.226599, -8.524662, -24.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(147.654587, 117.563599)</string>
+                                               <string>(146.299576, 114.581596)</string>
+                                               <string>(144.401581, 111.599594)</string>
+                                               <string>(141.419586, 110.786598)</string>
+                                               <string>(138.437576, 109.430595)</string>
+                                               <string>(135.184586, 109.701591)</string>
+                                               <string>(132.202576, 112.683594)</string>
+                                               <string>(130.575577, 115.665596)</string>
+                                               <string>(130.575577, 118.647598)</string>
+                                               <string>(130.304581, 121.900597)</string>
+                                               <string>(130.304581, 125.154594)</string>
+                                               <string>(130.033585, 128.136597)</string>
+                                               <string>(130.304581, 131.118591)</string>
+                                               <string>(130.846573, 133.828598)</string>
+                                               <string>(131.389587, 137.353592)</string>
+                                               <string>(132.473587, 140.335602)</string>
+                                               <string>(133.557587, 143.588593)</string>
+                                               <string>(136.811584, 145.485596)</string>
+                                               <string>(140.606583, 146.570602)</string>
+                                               <string>(143.588577, 146.299591)</string>
+                                               <string>(146.570587, 145.485596)</string>
+                                               <string>(149.552582, 143.859589)</string>
+                                               <string>(151.721573, 140.877594)</string>
+                                               <string>(153.618576, 137.624588)</string>
+                                               <string>(154.431580, 134.371597)</string>
+                                               <string>(155.245575, 131.118591)</string>
+                                               <string>(154.431580, 128.407593)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>110743</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>3.4117012023925781</real>
+                                       <key>Center</key>
+                                       <string>(-15.211987, -11.683327, -24.073523)</string>
+                                       <key>Dev</key>
+                                       <real>43.411251068115234</real>
+                                       <key>IndexInImage</key>
+                                       <integer>1</integer>
+                                       <key>Max</key>
+                                       <real>323</real>
+                                       <key>Mean</key>
+                                       <real>160.54635620117188</real>
+                                       <key>Min</key>
+                                       <real>26</real>
+                                       <key>Name</key>
+                                       <string>b1</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>23</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(-10.340588, -0.477010, -24.073523)</string>
+                                               <string>(-8.858554, -3.018409, -24.073523)</string>
+                                               <string>(-7.587461, -5.559820, -24.073523)</string>
+                                               <string>(-6.952308, -8.101218, -24.073523)</string>
+                                               <string>(-6.316369, -10.430908, -24.073523)</string>
+                                               <string>(-6.104653, -12.972319, -24.073523)</string>
+                                               <string>(-6.316369, -15.513723, -24.073523)</string>
+                                               <string>(-7.164024, -17.843412, -24.073523)</string>
+                                               <string>(-8.858554, -20.173096, -24.073523)</string>
+                                               <string>(-11.188244, -21.232473, -24.073523)</string>
+                                               <string>(-13.517933, -21.655910, -24.073523)</string>
+                                               <string>(-15.847622, -22.079348, -24.073523)</string>
+                                               <string>(-18.177305, -21.655910, -24.073523)</string>
+                                               <string>(-20.506994, -19.326221, -24.073523)</string>
+                                               <string>(-21.989029, -16.996532, -24.073523)</string>
+                                               <string>(-23.471836, -14.666849, -24.073523)</string>
+                                               <string>(-23.895275, -12.337160, -24.073523)</string>
+                                               <string>(-23.683559, -9.795754, -24.073523)</string>
+                                               <string>(-22.836683, -7.677787, -24.073523)</string>
+                                               <string>(-22.200745, -5.348092, -24.073523)</string>
+                                               <string>(-21.777308, -3.018409, -24.073523)</string>
+                                               <string>(-21.353868, -0.477010, -24.073523)</string>
+                                               <string>(-20.930431, 1.640970, -24.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(122.985580, 138.708588)</string>
+                                               <string>(124.882584, 135.455597)</string>
+                                               <string>(126.509583, 132.202591)</string>
+                                               <string>(127.322578, 128.949600)</string>
+                                               <string>(128.136581, 125.967598)</string>
+                                               <string>(128.407578, 122.714592)</string>
+                                               <string>(128.136581, 119.461594)</string>
+                                               <string>(127.051582, 116.479591)</string>
+                                               <string>(124.882584, 113.497597)</string>
+                                               <string>(121.900581, 112.141594)</string>
+                                               <string>(118.918579, 111.599594)</string>
+                                               <string>(115.936577, 111.057594)</string>
+                                               <string>(112.954582, 111.599594)</string>
+                                               <string>(109.972580, 114.581596)</string>
+                                               <string>(108.075577, 117.563599)</string>
+                                               <string>(106.177582, 120.545593)</string>
+                                               <string>(105.635582, 123.527596)</string>
+                                               <string>(105.906578, 126.780594)</string>
+                                               <string>(106.990578, 129.491592)</string>
+                                               <string>(107.804581, 132.473602)</string>
+                                               <string>(108.346581, 135.455597)</string>
+                                               <string>(108.888580, 138.708588)</string>
+                                               <string>(109.430580, 141.419601)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>96970</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>0.2687603235244751</real>
+                                       <key>Center</key>
+                                       <string>(-25.854061, -8.418410, -24.073523)</string>
+                                       <key>Dev</key>
+                                       <real>60.533447265625</real>
+                                       <key>IndexInImage</key>
+                                       <integer>2</integer>
+                                       <key>Max</key>
+                                       <real>360</real>
+                                       <key>Mean</key>
+                                       <real>134.64515686035156</real>
+                                       <key>Min</key>
+                                       <real>33</real>
+                                       <key>Name</key>
+                                       <string>3</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>8</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(-24.318712, -7.253569, -24.073523)</string>
+                                               <string>(-24.318712, -9.371536, -24.073523)</string>
+                                               <string>(-24.318712, -11.701220, -24.073523)</string>
+                                               <string>(-26.648401, -12.336379, -24.073523)</string>
+                                               <string>(-27.706997, -10.006690, -24.073523)</string>
+                                               <string>(-27.918713, -7.677001, -24.073523)</string>
+                                               <string>(-27.071838, -5.135602, -24.073523)</string>
+                                               <string>(-24.530434, -3.865283, -24.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(105.093582, 130.034592)</string>
+                                               <string>(105.093582, 127.323593)</string>
+                                               <string>(105.093582, 124.341599)</string>
+                                               <string>(102.111580, 123.528595)</string>
+                                               <string>(100.756577, 126.510597)</string>
+                                               <string>(100.485580, 129.492599)</string>
+                                               <string>(101.569580, 132.745590)</string>
+                                               <string>(104.822578, 134.371597)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>8348</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>0.59381723403930664</real>
+                                       <key>Center</key>
+                                       <string>(-15.423404, 8.154113, -24.073523)</string>
+                                       <key>Dev</key>
+                                       <real>29.573389053344727</real>
+                                       <key>IndexInImage</key>
+                                       <integer>3</integer>
+                                       <key>Max</key>
+                                       <real>227</real>
+                                       <key>Mean</key>
+                                       <real>158.49565124511719</real>
+                                       <key>Min</key>
+                                       <real>89</real>
+                                       <key>Name</key>
+                                       <string>1</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>12</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(-13.728868, 10.325343, -24.073523)</string>
+                                               <string>(-11.399184, 9.689397, -24.073523)</string>
+                                               <string>(-10.340588, 7.571429, -24.073523)</string>
+                                               <string>(-10.552310, 5.030030, -24.073523)</string>
+                                               <string>(-12.881993, 4.606587, -24.073523)</string>
+                                               <string>(-14.999961, 5.030030, -24.073523)</string>
+                                               <string>(-17.329649, 5.877680, -24.073523)</string>
+                                               <string>(-19.871056, 6.301123, -24.073523)</string>
+                                               <string>(-21.564810, 8.630807, -24.073523)</string>
+                                               <string>(-19.871056, 10.747999, -24.073523)</string>
+                                               <string>(-17.541372, 11.383933, -24.073523)</string>
+                                               <string>(-14.999961, 12.655026, -24.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(118.648582, 152.535599)</string>
+                                               <string>(121.630577, 151.721588)</string>
+                                               <string>(122.985580, 149.010590)</string>
+                                               <string>(122.714577, 145.757599)</string>
+                                               <string>(119.732582, 145.215591)</string>
+                                               <string>(117.021584, 145.757599)</string>
+                                               <string>(114.039581, 146.842590)</string>
+                                               <string>(110.786583, 147.384598)</string>
+                                               <string>(108.618576, 150.366592)</string>
+                                               <string>(110.786583, 153.076599)</string>
+                                               <string>(113.768578, 153.890594)</string>
+                                               <string>(117.021584, 155.517593)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>18227</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                       </array>
+               </dict>
+               <dict>
+                       <key>ImageIndex</key>
+                       <integer>11</integer>
+                       <key>NumberOfROIs</key>
+                       <integer>4</integer>
+                       <key>ROIs</key>
+                       <array>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>4.15179443359375</real>
+                                       <key>Center</key>
+                                       <string>(3.022285, -6.467587, -21.073523)</string>
+                                       <key>Dev</key>
+                                       <real>40.884113311767578</real>
+                                       <key>IndexInImage</key>
+                                       <integer>0</integer>
+                                       <key>Max</key>
+                                       <real>307</real>
+                                       <key>Mean</key>
+                                       <real>137.96818542480469</real>
+                                       <key>Min</key>
+                                       <real>43</real>
+                                       <key>Name</key>
+                                       <string>b2</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>21</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(4.272695, -23.350441, -21.073523)</string>
+                                               <string>(1.942999, -22.715288, -21.073523)</string>
+                                               <string>(-0.598400, -21.444189, -21.073523)</string>
+                                               <string>(-2.292936, -19.114506, -21.073523)</string>
+                                               <string>(-2.928083, -16.573095, -21.073523)</string>
+                                               <string>(-3.139811, -14.243412, -21.073523)</string>
+                                               <string>(-3.563242, -11.702006, -21.073523)</string>
+                                               <string>(-3.563242, -9.372317, -21.073523)</string>
+                                               <string>(-3.563242, -6.406694, -21.073523)</string>
+                                               <string>(-3.351526, -3.865283, -21.073523)</string>
+                                               <string>(-2.716367, -1.323884, -21.073523)</string>
+                                               <string>(-1.445274, 1.005811, -21.073523)</string>
+                                               <string>(0.884409, 2.912063, -21.073523)</string>
+                                               <string>(3.425820, 4.394084, -21.073523)</string>
+                                               <string>(5.755503, 4.605812, -21.073523)</string>
+                                               <string>(8.508630, 4.394084, -21.073523)</string>
+                                               <string>(10.838313, 3.970653, -21.073523)</string>
+                                               <string>(12.744565, 1.640970, -21.073523)</string>
+                                               <string>(13.591440, -0.688725, -21.073523)</string>
+                                               <string>(14.226599, -3.230124, -21.073523)</string>
+                                               <string>(14.439101, -4.712945, -21.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(141.690582, 109.430595)</string>
+                                               <string>(138.708572, 110.243591)</string>
+                                               <string>(135.455582, 111.870598)</string>
+                                               <string>(133.286575, 114.852592)</string>
+                                               <string>(132.473587, 118.105598)</string>
+                                               <string>(132.202576, 121.087593)</string>
+                                               <string>(131.660583, 124.340591)</string>
+                                               <string>(131.660583, 127.322594)</string>
+                                               <string>(131.660583, 131.118591)</string>
+                                               <string>(131.931580, 134.371597)</string>
+                                               <string>(132.744583, 137.624588)</string>
+                                               <string>(134.371582, 140.606598)</string>
+                                               <string>(137.353577, 143.046600)</string>
+                                               <string>(140.606583, 144.943588)</string>
+                                               <string>(143.588577, 145.214600)</string>
+                                               <string>(147.112579, 144.943588)</string>
+                                               <string>(150.094574, 144.401596)</string>
+                                               <string>(152.534576, 141.419601)</string>
+                                               <string>(153.618576, 138.437592)</string>
+                                               <string>(154.431580, 135.184601)</string>
+                                               <string>(154.703583, 133.286591)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>99751</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>3.6647229194641113</real>
+                                       <key>Center</key>
+                                       <string>(-17.733328, -12.246459, -21.073523)</string>
+                                       <key>Dev</key>
+                                       <real>45.059955596923828</real>
+                                       <key>IndexInImage</key>
+                                       <integer>1</integer>
+                                       <key>Max</key>
+                                       <real>347</real>
+                                       <key>Mean</key>
+                                       <real>146.99844360351562</real>
+                                       <key>Min</key>
+                                       <real>24</real>
+                                       <key>Name</key>
+                                       <string>b1</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>21</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(-7.799183, -8.312946, -21.073523)</string>
+                                               <string>(-7.799183, -11.490285, -21.073523)</string>
+                                               <string>(-8.434336, -13.819974, -21.073523)</string>
+                                               <string>(-9.070276, -16.784817, -21.073523)</string>
+                                               <string>(-9.705435, -19.114506, -21.073523)</string>
+                                               <string>(-11.188244, -21.655910, -21.073523)</string>
+                                               <string>(-13.729649, -22.927004, -21.073523)</string>
+                                               <string>(-16.271059, -22.715288, -21.073523)</string>
+                                               <string>(-18.812464, -22.291063, -21.073523)</string>
+                                               <string>(-20.930431, -21.232473, -21.073523)</string>
+                                               <string>(-22.836683, -18.902784, -21.073523)</string>
+                                               <string>(-24.318712, -16.361380, -21.073523)</string>
+                                               <string>(-25.378088, -14.243412, -21.073523)</string>
+                                               <string>(-25.589804, -11.702006, -21.073523)</string>
+                                               <string>(-25.378088, -9.372317, -21.073523)</string>
+                                               <string>(-25.166367, -6.830913, -21.073523)</string>
+                                               <string>(-23.895275, -4.501217, -21.073523)</string>
+                                               <string>(-22.200745, -1.959032, -21.073523)</string>
+                                               <string>(-20.506994, 0.370652, -21.073523)</string>
+                                               <string>(-17.965590, 2.700335, -21.073523)</string>
+                                               <string>(-15.423404, 3.970653, -21.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(126.238579, 128.678589)</string>
+                                               <string>(126.238579, 124.611595)</string>
+                                               <string>(125.425583, 121.629593)</string>
+                                               <string>(124.611580, 117.834595)</string>
+                                               <string>(123.798576, 114.852592)</string>
+                                               <string>(121.900581, 111.599594)</string>
+                                               <string>(118.647583, 109.972595)</string>
+                                               <string>(115.394577, 110.243591)</string>
+                                               <string>(112.141579, 110.786598)</string>
+                                               <string>(109.430580, 112.141594)</string>
+                                               <string>(106.990578, 115.123596)</string>
+                                               <string>(105.093582, 118.376595)</string>
+                                               <string>(103.737579, 121.087593)</string>
+                                               <string>(103.466583, 124.340591)</string>
+                                               <string>(103.737579, 127.322594)</string>
+                                               <string>(104.008583, 130.575592)</string>
+                                               <string>(105.635582, 133.557602)</string>
+                                               <string>(107.804581, 136.811600)</string>
+                                               <string>(109.972580, 139.793594)</string>
+                                               <string>(113.225578, 142.775589)</string>
+                                               <string>(116.479576, 144.401596)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>94520</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>0.14295578002929688</real>
+                                       <key>Center</key>
+                                       <string>(-26.365713, -8.947962, -21.073523)</string>
+                                       <key>Dev</key>
+                                       <real>41.537315368652344</real>
+                                       <key>IndexInImage</key>
+                                       <integer>2</integer>
+                                       <key>Max</key>
+                                       <real>227</real>
+                                       <key>Mean</key>
+                                       <real>136.5</real>
+                                       <key>Min</key>
+                                       <real>80</real>
+                                       <key>Name</key>
+                                       <string>3</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>6</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(-24.953871, -7.889503, -21.073523)</string>
+                                               <string>(-24.953871, -10.430908, -21.073523)</string>
+                                               <string>(-27.283560, -12.336379, -21.073523)</string>
+                                               <string>(-27.706997, -10.006690, -21.073523)</string>
+                                               <string>(-27.071838, -7.677001, -21.073523)</string>
+                                               <string>(-26.224182, -5.347317, -21.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(104.280579, 129.220596)</string>
+                                               <string>(104.280579, 125.967598)</string>
+                                               <string>(101.298576, 123.528595)</string>
+                                               <string>(100.756577, 126.510597)</string>
+                                               <string>(101.569580, 129.492599)</string>
+                                               <string>(102.654579, 132.474594)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>4641</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>0.75974166393280029</real>
+                                       <key>Center</key>
+                                       <string>(-16.976469, 8.348305, -21.073523)</string>
+                                       <key>Dev</key>
+                                       <real>40.947456359863281</real>
+                                       <key>IndexInImage</key>
+                                       <integer>3</integer>
+                                       <key>Max</key>
+                                       <real>268</real>
+                                       <key>Mean</key>
+                                       <real>158.906982421875</real>
+                                       <key>Min</key>
+                                       <real>71</real>
+                                       <key>Name</key>
+                                       <string>1</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>15</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(-15.211682, 11.172217, -21.073523)</string>
+                                               <string>(-9.916369, 8.630807, -21.073523)</string>
+                                               <string>(-9.704648, 6.301123, -21.073523)</string>
+                                               <string>(-12.034337, 5.665964, -21.073523)</string>
+                                               <string>(-14.153086, 5.665964, -21.073523)</string>
+                                               <string>(-16.693716, 5.665964, -21.073523)</string>
+                                               <string>(-19.447617, 5.241746, -21.073523)</string>
+                                               <string>(-21.777308, 5.241746, -21.073523)</string>
+                                               <string>(-24.530434, 4.394871, -21.073523)</string>
+                                               <string>(-23.682777, 6.512839, -21.073523)</string>
+                                               <string>(-21.989029, 8.842523, -21.073523)</string>
+                                               <string>(-19.871056, 10.960502, -21.073523)</string>
+                                               <string>(-17.541372, 12.230808, -21.073523)</string>
+                                               <string>(-15.423404, 13.925344, -21.073523)</string>
+                                               <string>(-12.670278, 14.772219, -21.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(116.750580, 153.619598)</string>
+                                               <string>(123.528580, 150.366592)</string>
+                                               <string>(123.799583, 147.384598)</string>
+                                               <string>(120.817581, 146.571594)</string>
+                                               <string>(118.105583, 146.571594)</string>
+                                               <string>(114.853577, 146.571594)</string>
+                                               <string>(111.328583, 146.028595)</string>
+                                               <string>(108.346581, 146.028595)</string>
+                                               <string>(104.822578, 144.944595)</string>
+                                               <string>(105.907578, 147.655594)</string>
+                                               <string>(108.075577, 150.637589)</string>
+                                               <string>(110.786583, 153.348602)</string>
+                                               <string>(113.768578, 154.974594)</string>
+                                               <string>(116.479576, 157.143600)</string>
+                                               <string>(120.003578, 158.227600)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>20499</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                       </array>
+               </dict>
+               <dict>
+                       <key>ImageIndex</key>
+                       <integer>12</integer>
+                       <key>NumberOfROIs</key>
+                       <integer>3</integer>
+                       <key>ROIs</key>
+                       <array>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>4.8559694290161133</real>
+                                       <key>Center</key>
+                                       <string>(4.145784, -10.913920, -18.073523)</string>
+                                       <key>Dev</key>
+                                       <real>53.589687347412109</real>
+                                       <key>IndexInImage</key>
+                                       <integer>0</integer>
+                                       <key>Max</key>
+                                       <real>414</real>
+                                       <key>Mean</key>
+                                       <real>137.91050720214844</real>
+                                       <key>Min</key>
+                                       <real>40</real>
+                                       <key>Name</key>
+                                       <string>b2</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>25</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(13.379725, -16.573095, -18.073523)</string>
+                                               <string>(13.168009, -18.902784, -18.073523)</string>
+                                               <string>(12.109406, -21.232473, -18.073523)</string>
+                                               <string>(10.838313, -23.350441, -18.073523)</string>
+                                               <string>(8.508630, -25.468409, -18.073523)</string>
+                                               <string>(5.967219, -26.103567, -18.073523)</string>
+                                               <string>(3.425820, -24.832476, -18.073523)</string>
+                                               <string>(0.884409, -23.773878, -18.073523)</string>
+                                               <string>(-1.656990, -22.291063, -18.073523)</string>
+                                               <string>(-3.139811, -19.961380, -18.073523)</string>
+                                               <string>(-4.199188, -17.419970, -18.073523)</string>
+                                               <string>(-4.410903, -14.878565, -18.073523)</string>
+                                               <string>(-4.622619, -12.337160, -18.073523)</string>
+                                               <string>(-4.622619, -9.160596, -18.073523)</string>
+                                               <string>(-4.199188, -6.619197, -18.073523)</string>
+                                               <string>(-3.351526, -4.076999, -18.073523)</string>
+                                               <string>(-2.716367, -1.535600, -18.073523)</string>
+                                               <string>(-0.386684, 0.158149, -18.073523)</string>
+                                               <string>(2.790661, 1.640970, -18.073523)</string>
+                                               <string>(5.332072, 3.123778, -18.073523)</string>
+                                               <string>(7.661755, 3.970653, -18.073523)</string>
+                                               <string>(9.991439, 3.970653, -18.073523)</string>
+                                               <string>(12.109406, 3.547210, -18.073523)</string>
+                                               <string>(14.439101, 1.217526, -18.073523)</string>
+                                               <string>(16.344566, -1.959032, -18.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(153.347580, 118.105598)</string>
+                                               <string>(153.076584, 115.123596)</string>
+                                               <string>(151.721573, 112.141594)</string>
+                                               <string>(150.094574, 109.430595)</string>
+                                               <string>(147.112579, 106.719597)</string>
+                                               <string>(143.859573, 105.906593)</string>
+                                               <string>(140.606583, 107.533592)</string>
+                                               <string>(137.353577, 108.888596)</string>
+                                               <string>(134.100586, 110.786598)</string>
+                                               <string>(132.202576, 113.768593)</string>
+                                               <string>(130.846573, 117.021599)</string>
+                                               <string>(130.575577, 120.274597)</string>
+                                               <string>(130.304581, 123.527596)</string>
+                                               <string>(130.304581, 127.593597)</string>
+                                               <string>(130.846573, 130.846588)</string>
+                                               <string>(131.931580, 134.100601)</string>
+                                               <string>(132.744583, 137.353592)</string>
+                                               <string>(135.726578, 139.521591)</string>
+                                               <string>(139.793579, 141.419601)</string>
+                                               <string>(143.046585, 143.317596)</string>
+                                               <string>(146.028580, 144.401596)</string>
+                                               <string>(149.010574, 144.401596)</string>
+                                               <string>(151.721573, 143.859589)</string>
+                                               <string>(154.703583, 140.877594)</string>
+                                               <string>(157.142578, 136.811600)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>115569</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>3.0556380748748779</real>
+                                       <key>Center</key>
+                                       <string>(-15.709268, -10.578530, -18.073523)</string>
+                                       <key>Dev</key>
+                                       <real>57.583786010742188</real>
+                                       <key>IndexInImage</key>
+                                       <integer>1</integer>
+                                       <key>Max</key>
+                                       <real>433</real>
+                                       <key>Mean</key>
+                                       <real>160.58757019042969</real>
+                                       <key>Min</key>
+                                       <real>43</real>
+                                       <key>Name</key>
+                                       <string>b1</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>23</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(-9.917150, 1.640970, -18.073523)</string>
+                                               <string>(-9.917150, -0.688725, -18.073523)</string>
+                                               <string>(-9.070276, -3.018409, -18.073523)</string>
+                                               <string>(-7.587461, -5.348092, -18.073523)</string>
+                                               <string>(-7.375746, -7.889503, -18.073523)</string>
+                                               <string>(-7.375746, -10.430908, -18.073523)</string>
+                                               <string>(-8.010899, -13.184034, -18.073523)</string>
+                                               <string>(-9.493713, -15.726220, -18.073523)</string>
+                                               <string>(-11.188244, -18.055910, -18.073523)</string>
+                                               <string>(-13.517933, -20.385599, -18.073523)</string>
+                                               <string>(-15.635900, -22.927004, -18.073523)</string>
+                                               <string>(-17.965590, -23.562162, -18.073523)</string>
+                                               <string>(-19.235901, -21.232473, -18.073523)</string>
+                                               <string>(-20.506994, -18.902784, -18.073523)</string>
+                                               <string>(-21.353868, -16.361380, -18.073523)</string>
+                                               <string>(-21.989029, -14.243412, -18.073523)</string>
+                                               <string>(-22.624962, -11.913722, -18.073523)</string>
+                                               <string>(-23.048399, -9.372317, -18.073523)</string>
+                                               <string>(-23.471836, -7.042628, -18.073523)</string>
+                                               <string>(-23.260120, -4.712945, -18.073523)</string>
+                                               <string>(-21.989029, -2.383250, -18.073523)</string>
+                                               <string>(-19.871056, 0.158149, -18.073523)</string>
+                                               <string>(-16.906212, 2.276117, -18.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(123.527580, 141.419601)</string>
+                                               <string>(123.527580, 138.437592)</string>
+                                               <string>(124.611580, 135.455597)</string>
+                                               <string>(126.509583, 132.473602)</string>
+                                               <string>(126.780579, 129.220596)</string>
+                                               <string>(126.780579, 125.967598)</string>
+                                               <string>(125.967583, 122.443596)</string>
+                                               <string>(124.069580, 119.189598)</string>
+                                               <string>(121.900581, 116.207596)</string>
+                                               <string>(118.918579, 113.225594)</string>
+                                               <string>(116.207581, 109.972595)</string>
+                                               <string>(113.225578, 109.159592)</string>
+                                               <string>(111.599579, 112.141594)</string>
+                                               <string>(109.972580, 115.123596)</string>
+                                               <string>(108.888580, 118.376595)</string>
+                                               <string>(108.075577, 121.087593)</string>
+                                               <string>(107.261581, 124.069595)</string>
+                                               <string>(106.719582, 127.322594)</string>
+                                               <string>(106.177582, 130.304596)</string>
+                                               <string>(106.448578, 133.286591)</string>
+                                               <string>(108.075577, 136.268600)</string>
+                                               <string>(110.786583, 139.521591)</string>
+                                               <string>(114.581581, 142.232590)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>85272</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>0.80541670322418213</real>
+                                       <key>Center</key>
+                                       <string>(-19.602465, 7.910508, -18.073523)</string>
+                                       <key>Dev</key>
+                                       <real>36.190048217773438</real>
+                                       <key>IndexInImage</key>
+                                       <integer>2</integer>
+                                       <key>Max</key>
+                                       <real>249</real>
+                                       <key>Mean</key>
+                                       <real>165.41549682617188</real>
+                                       <key>Min</key>
+                                       <real>55</real>
+                                       <key>Name</key>
+                                       <string>1</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>15</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(-16.693716, 6.301123, -18.073523)</string>
+                                               <string>(-19.235121, 6.088621, -18.073523)</string>
+                                               <string>(-21.564810, 4.394871, -18.073523)</string>
+                                               <string>(-24.106997, 2.065188, -18.073523)</string>
+                                               <string>(-26.436680, 1.006586, -18.073523)</string>
+                                               <string>(-26.648401, 3.123778, -18.073523)</string>
+                                               <string>(-25.377308, 5.453462, -18.073523)</string>
+                                               <string>(-23.047619, 7.359714, -18.073523)</string>
+                                               <string>(-21.353088, 9.689397, -18.073523)</string>
+                                               <string>(-19.023399, 12.019093, -18.073523)</string>
+                                               <string>(-16.905432, 14.137060, -18.073523)</string>
+                                               <string>(-14.575743, 15.196437, -18.073523)</string>
+                                               <string>(-13.728868, 12.866742, -18.073523)</string>
+                                               <string>(-13.305430, 10.537059, -18.073523)</string>
+                                               <string>(-12.034337, 8.418304, -18.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(114.853577, 147.384598)</string>
+                                               <string>(111.600578, 147.112595)</string>
+                                               <string>(108.618576, 144.944595)</string>
+                                               <string>(105.364578, 141.962601)</string>
+                                               <string>(102.382584, 140.607590)</string>
+                                               <string>(102.111580, 143.317596)</string>
+                                               <string>(103.738579, 146.299591)</string>
+                                               <string>(106.720581, 148.739594)</string>
+                                               <string>(108.889580, 151.721588)</string>
+                                               <string>(111.871582, 154.703598)</string>
+                                               <string>(114.582581, 157.414597)</string>
+                                               <string>(117.564583, 158.770599)</string>
+                                               <string>(118.648582, 155.788589)</string>
+                                               <string>(119.190582, 152.806595)</string>
+                                               <string>(120.817581, 150.094589)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>23489</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                       </array>
+               </dict>
+               <dict>
+                       <key>ImageIndex</key>
+                       <integer>13</integer>
+                       <key>NumberOfROIs</key>
+                       <integer>2</integer>
+                       <key>ROIs</key>
+                       <array>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>4.1700363159179688</real>
+                                       <key>Center</key>
+                                       <string>(5.654020, -7.254141, -15.073523)</string>
+                                       <key>Dev</key>
+                                       <real>36.465950012207031</real>
+                                       <key>IndexInImage</key>
+                                       <integer>0</integer>
+                                       <key>Max</key>
+                                       <real>255</real>
+                                       <key>Mean</key>
+                                       <real>124.12603759765625</real>
+                                       <key>Min</key>
+                                       <real>8</real>
+                                       <key>Name</key>
+                                       <string>b2</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>23</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(2.790661, -24.620752, -15.073523)</string>
+                                               <string>(0.460978, -23.350441, -15.073523)</string>
+                                               <string>(-1.445274, -21.232473, -15.073523)</string>
+                                               <string>(-2.081208, -18.902784, -15.073523)</string>
+                                               <string>(-2.292936, -15.726220, -15.073523)</string>
+                                               <string>(-2.292936, -12.972319, -15.073523)</string>
+                                               <string>(-1.869493, -10.219193, -15.073523)</string>
+                                               <string>(-1.445274, -7.254344, -15.073523)</string>
+                                               <string>(-1.021843, -4.924661, -15.073523)</string>
+                                               <string>(-0.386684, -2.383250, -15.073523)</string>
+                                               <string>(0.248475, 0.370652, -15.073523)</string>
+                                               <string>(1.307852, 2.912063, -15.073523)</string>
+                                               <string>(3.637536, 4.182369, -15.073523)</string>
+                                               <string>(5.967219, 4.182369, -15.073523)</string>
+                                               <string>(8.508630, 3.758937, -15.073523)</string>
+                                               <string>(11.050041, 2.487844, -15.073523)</string>
+                                               <string>(13.379725, 1.005811, -15.073523)</string>
+                                               <string>(15.709408, -1.535600, -15.073523)</string>
+                                               <string>(15.921135, -3.865283, -15.073523)</string>
+                                               <string>(16.132851, -6.194967, -15.073523)</string>
+                                               <string>(16.132851, -8.524662, -15.073523)</string>
+                                               <string>(16.344566, -10.854345, -15.073523)</string>
+                                               <string>(15.285976, -13.184034, -15.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(139.793579, 107.804596)</string>
+                                               <string>(136.811584, 109.430595)</string>
+                                               <string>(134.371582, 112.141594)</string>
+                                               <string>(133.557587, 115.123596)</string>
+                                               <string>(133.286575, 119.189598)</string>
+                                               <string>(133.286575, 122.714592)</string>
+                                               <string>(133.828583, 126.238594)</string>
+                                               <string>(134.371582, 130.033600)</string>
+                                               <string>(134.913574, 133.015594)</string>
+                                               <string>(135.726578, 136.268600)</string>
+                                               <string>(136.539581, 139.793594)</string>
+                                               <string>(137.895584, 143.046600)</string>
+                                               <string>(140.877579, 144.672592)</string>
+                                               <string>(143.859573, 144.672592)</string>
+                                               <string>(147.112579, 144.130600)</string>
+                                               <string>(150.365585, 142.503601)</string>
+                                               <string>(153.347580, 140.606598)</string>
+                                               <string>(156.329575, 137.353592)</string>
+                                               <string>(156.600586, 134.371597)</string>
+                                               <string>(156.871582, 131.389603)</string>
+                                               <string>(156.871582, 128.407593)</string>
+                                               <string>(157.142578, 125.425598)</string>
+                                               <string>(155.787582, 122.443596)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>89619</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>2.1888346672058105</real>
+                                       <key>Center</key>
+                                       <string>(-17.279493, -9.190619, -15.073523)</string>
+                                       <key>Dev</key>
+                                       <real>70.450813293457031</real>
+                                       <key>IndexInImage</key>
+                                       <integer>1</integer>
+                                       <key>Max</key>
+                                       <real>530</real>
+                                       <key>Mean</key>
+                                       <real>158.4759521484375</real>
+                                       <key>Min</key>
+                                       <real>36</real>
+                                       <key>Name</key>
+                                       <string>b1</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>21</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(-10.340588, 0.158149, -15.073523)</string>
+                                               <string>(-11.188244, -2.171534, -15.073523)</string>
+                                               <string>(-12.246840, -4.501217, -15.073523)</string>
+                                               <string>(-12.670278, -6.830913, -15.073523)</string>
+                                               <string>(-11.399965, -9.372317, -15.073523)</string>
+                                               <string>(-11.611681, -11.913722, -15.073523)</string>
+                                               <string>(-11.823402, -14.455128, -15.073523)</string>
+                                               <string>(-13.093715, -16.996532, -15.073523)</string>
+                                               <string>(-15.847622, -19.114506, -15.073523)</string>
+                                               <string>(-18.177305, -19.961380, -15.073523)</string>
+                                               <string>(-20.506994, -19.326221, -15.073523)</string>
+                                               <string>(-22.836683, -17.631691, -15.073523)</string>
+                                               <string>(-24.106997, -15.090286, -15.073523)</string>
+                                               <string>(-24.530434, -12.760597, -15.073523)</string>
+                                               <string>(-23.895275, -10.219193, -15.073523)</string>
+                                               <string>(-21.565592, -7.889503, -15.073523)</string>
+                                               <string>(-20.718716, -5.559820, -15.073523)</string>
+                                               <string>(-20.718716, -3.018409, -15.073523)</string>
+                                               <string>(-20.295279, -0.688725, -15.073523)</string>
+                                               <string>(-19.024179, 1.852685, -15.073523)</string>
+                                               <string>(-16.271059, 2.487844, -15.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(122.985580, 139.521591)</string>
+                                               <string>(121.900581, 136.539597)</string>
+                                               <string>(120.545578, 133.557602)</string>
+                                               <string>(120.003578, 130.575592)</string>
+                                               <string>(121.629578, 127.322594)</string>
+                                               <string>(121.358582, 124.069595)</string>
+                                               <string>(121.087578, 120.816597)</string>
+                                               <string>(119.461578, 117.563599)</string>
+                                               <string>(115.936577, 114.852592)</string>
+                                               <string>(112.954582, 113.768593)</string>
+                                               <string>(109.972580, 114.581596)</string>
+                                               <string>(106.990578, 116.750595)</string>
+                                               <string>(105.364578, 120.003593)</string>
+                                               <string>(104.822578, 122.985596)</string>
+                                               <string>(105.635582, 126.238594)</string>
+                                               <string>(108.617577, 129.220596)</string>
+                                               <string>(109.701576, 132.202591)</string>
+                                               <string>(109.701576, 135.455597)</string>
+                                               <string>(110.243576, 138.437592)</string>
+                                               <string>(111.870583, 141.690598)</string>
+                                               <string>(115.394577, 142.503601)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>62598</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                       </array>
+               </dict>
+               <dict>
+                       <key>ImageIndex</key>
+                       <integer>14</integer>
+                       <key>NumberOfROIs</key>
+                       <integer>2</integer>
+                       <key>ROIs</key>
+                       <array>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>3.365635871887207</real>
+                                       <key>Center</key>
+                                       <string>(4.396219, -7.545453, -12.073523)</string>
+                                       <key>Dev</key>
+                                       <real>38.480926513671875</real>
+                                       <key>IndexInImage</key>
+                                       <integer>0</integer>
+                                       <key>Max</key>
+                                       <real>274</real>
+                                       <key>Mean</key>
+                                       <real>141.38888549804688</real>
+                                       <key>Min</key>
+                                       <real>34</real>
+                                       <key>Name</key>
+                                       <string>b2</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>24</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(4.272695, -22.927004, -12.073523)</string>
+                                               <string>(1.942999, -21.655910, -12.073523)</string>
+                                               <string>(-0.386684, -19.749659, -12.073523)</string>
+                                               <string>(-2.081208, -17.208254, -12.073523)</string>
+                                               <string>(-3.139811, -14.666849, -12.073523)</string>
+                                               <string>(-3.351526, -11.913722, -12.073523)</string>
+                                               <string>(-3.351526, -9.584033, -12.073523)</string>
+                                               <string>(-2.928083, -6.830913, -12.073523)</string>
+                                               <string>(-2.716367, -4.501217, -12.073523)</string>
+                                               <string>(-2.081208, -1.959032, -12.073523)</string>
+                                               <string>(-1.656990, 0.370652, -12.073523)</string>
+                                               <string>(0.036759, 2.700335, -12.073523)</string>
+                                               <string>(2.366443, 3.758937, -12.073523)</string>
+                                               <string>(4.696126, 3.547210, -12.073523)</string>
+                                               <string>(7.237537, 2.700335, -12.073523)</string>
+                                               <string>(9.567221, 2.064401, -12.073523)</string>
+                                               <string>(11.896915, -0.053566, -12.073523)</string>
+                                               <string>(12.532849, -2.383250, -12.073523)</string>
+                                               <string>(13.591440, -4.712945, -12.073523)</string>
+                                               <string>(14.226599, -7.042628, -12.073523)</string>
+                                               <string>(13.591440, -9.160596, -12.073523)</string>
+                                               <string>(11.685188, -11.490285, -12.073523)</string>
+                                               <string>(10.203166, -13.819974, -12.073523)</string>
+                                               <string>(9.355505, -16.573095, -12.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(141.690582, 109.972595)</string>
+                                               <string>(138.708572, 111.599594)</string>
+                                               <string>(135.726578, 114.039597)</string>
+                                               <string>(133.557587, 117.292595)</string>
+                                               <string>(132.202576, 120.545593)</string>
+                                               <string>(131.931580, 124.069595)</string>
+                                               <string>(131.931580, 127.051598)</string>
+                                               <string>(132.473587, 130.575592)</string>
+                                               <string>(132.744583, 133.557602)</string>
+                                               <string>(133.557587, 136.811600)</string>
+                                               <string>(134.100586, 139.793594)</string>
+                                               <string>(136.268585, 142.775589)</string>
+                                               <string>(139.250580, 144.130600)</string>
+                                               <string>(142.232574, 143.859589)</string>
+                                               <string>(145.485580, 142.775589)</string>
+                                               <string>(148.467575, 141.961594)</string>
+                                               <string>(151.449585, 139.250595)</string>
+                                               <string>(152.263580, 136.268600)</string>
+                                               <string>(153.618576, 133.286591)</string>
+                                               <string>(154.431580, 130.304596)</string>
+                                               <string>(153.618576, 127.593597)</string>
+                                               <string>(151.178574, 124.611595)</string>
+                                               <string>(149.281586, 121.629593)</string>
+                                               <string>(148.196579, 118.105598)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>83985</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>1.9584149122238159</real>
+                                       <key>Center</key>
+                                       <string>(-18.351572, -9.533941, -12.073523)</string>
+                                       <key>Dev</key>
+                                       <real>55.752830505371094</real>
+                                       <key>IndexInImage</key>
+                                       <integer>1</integer>
+                                       <key>Max</key>
+                                       <real>385</real>
+                                       <key>Mean</key>
+                                       <real>140.61045837402344</real>
+                                       <key>Min</key>
+                                       <real>37</real>
+                                       <key>Name</key>
+                                       <string>b1</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>17</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(-11.399965, -6.406694, -12.073523)</string>
+                                               <string>(-11.188244, -8.736378, -12.073523)</string>
+                                               <string>(-11.399965, -11.066067, -12.073523)</string>
+                                               <string>(-12.035118, -13.395756, -12.073523)</string>
+                                               <string>(-13.729649, -15.726220, -12.073523)</string>
+                                               <string>(-16.059338, -16.361380, -12.073523)</string>
+                                               <string>(-18.600742, -17.631691, -12.073523)</string>
+                                               <string>(-20.930431, -18.055910, -12.073523)</string>
+                                               <string>(-22.624962, -15.513723, -12.073523)</string>
+                                               <string>(-23.048399, -13.184034, -12.073523)</string>
+                                               <string>(-23.260120, -10.854345, -12.073523)</string>
+                                               <string>(-23.471836, -8.312946, -12.073523)</string>
+                                               <string>(-23.683559, -5.771535, -12.073523)</string>
+                                               <string>(-22.836683, -3.441852, -12.073523)</string>
+                                               <string>(-21.565592, -0.900441, -12.073523)</string>
+                                               <string>(-19.235901, 1.005811, -12.073523)</string>
+                                               <string>(-16.906212, 2.276117, -12.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(121.629578, 131.118591)</string>
+                                               <string>(121.900581, 128.136597)</string>
+                                               <string>(121.629578, 125.154594)</string>
+                                               <string>(120.816582, 122.172592)</string>
+                                               <string>(118.647583, 119.189598)</string>
+                                               <string>(115.665581, 118.376595)</string>
+                                               <string>(112.412582, 116.750595)</string>
+                                               <string>(109.430580, 116.207596)</string>
+                                               <string>(107.261581, 119.461594)</string>
+                                               <string>(106.719582, 122.443596)</string>
+                                               <string>(106.448578, 125.425598)</string>
+                                               <string>(106.177582, 128.678589)</string>
+                                               <string>(105.906578, 131.931595)</string>
+                                               <string>(106.990578, 134.913589)</string>
+                                               <string>(108.617577, 138.166595)</string>
+                                               <string>(111.599579, 140.606598)</string>
+                                               <string>(114.581581, 142.232590)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>48370</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                       </array>
+               </dict>
+               <dict>
+                       <key>ImageIndex</key>
+                       <integer>15</integer>
+                       <key>NumberOfROIs</key>
+                       <integer>2</integer>
+                       <key>ROIs</key>
+                       <array>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>3.8994133472442627</real>
+                                       <key>Center</key>
+                                       <string>(2.824183, -8.507984, -9.073523)</string>
+                                       <key>Dev</key>
+                                       <real>40.707279205322266</real>
+                                       <key>IndexInImage</key>
+                                       <integer>0</integer>
+                                       <key>Max</key>
+                                       <real>309</real>
+                                       <key>Mean</key>
+                                       <real>128.47067260742188</real>
+                                       <key>Min</key>
+                                       <real>37</real>
+                                       <key>Name</key>
+                                       <string>b2</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>25</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(10.626597, -16.573095, -9.073523)</string>
+                                               <string>(10.203166, -19.326221, -9.073523)</string>
+                                               <string>(9.143789, -21.867626, -9.073523)</string>
+                                               <string>(6.814094, -23.773878, -9.073523)</string>
+                                               <string>(4.272695, -23.985600, -9.073523)</string>
+                                               <string>(1.731284, -22.502785, -9.073523)</string>
+                                               <string>(-0.598400, -20.597315, -9.073523)</string>
+                                               <string>(-2.504652, -18.055910, -9.073523)</string>
+                                               <string>(-3.351526, -15.726220, -9.073523)</string>
+                                               <string>(-3.986685, -13.395756, -9.073523)</string>
+                                               <string>(-4.622619, -10.642630, -9.073523)</string>
+                                               <string>(-5.046062, -7.889503, -9.073523)</string>
+                                               <string>(-5.046062, -5.136376, -9.073523)</string>
+                                               <string>(-4.834335, -2.806693, -9.073523)</string>
+                                               <string>(-4.410903, -0.477010, -9.073523)</string>
+                                               <string>(-3.351526, 2.064401, -9.073523)</string>
+                                               <string>(-1.021843, 2.912063, -9.073523)</string>
+                                               <string>(1.307852, 3.547210, -9.073523)</string>
+                                               <string>(3.637536, 4.182369, -9.073523)</string>
+                                               <string>(5.967219, 3.758937, -9.073523)</string>
+                                               <string>(8.296914, 2.912063, -9.073523)</string>
+                                               <string>(10.626597, 1.217526, -9.073523)</string>
+                                               <string>(12.321134, -1.112157, -9.073523)</string>
+                                               <string>(12.321134, -3.653568, -9.073523)</string>
+                                               <string>(12.109406, -5.771535, -9.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(149.823578, 118.105598)</string>
+                                               <string>(149.281586, 114.581596)</string>
+                                               <string>(147.925583, 111.328598)</string>
+                                               <string>(144.943573, 108.888596)</string>
+                                               <string>(141.690582, 108.617592)</string>
+                                               <string>(138.437576, 110.515594)</string>
+                                               <string>(135.455582, 112.954597)</string>
+                                               <string>(133.015579, 116.207596)</string>
+                                               <string>(131.931580, 119.189598)</string>
+                                               <string>(131.118576, 122.172592)</string>
+                                               <string>(130.304581, 125.696594)</string>
+                                               <string>(129.762573, 129.220596)</string>
+                                               <string>(129.762573, 132.744598)</string>
+                                               <string>(130.033585, 135.726593)</string>
+                                               <string>(130.575577, 138.708588)</string>
+                                               <string>(131.931580, 141.961594)</string>
+                                               <string>(134.913574, 143.046600)</string>
+                                               <string>(137.895584, 143.859589)</string>
+                                               <string>(140.877579, 144.672592)</string>
+                                               <string>(143.859573, 144.130600)</string>
+                                               <string>(146.841583, 143.046600)</string>
+                                               <string>(149.823578, 140.877594)</string>
+                                               <string>(151.992584, 137.895599)</string>
+                                               <string>(151.992584, 134.642593)</string>
+                                               <string>(151.721573, 131.931595)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>87617</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                               <dict>
+                                       <key>Area</key>
+                                       <real>1.4512419700622559</real>
+                                       <key>Center</key>
+                                       <string>(-17.102921, -7.859307, -9.073523)</string>
+                                       <key>Dev</key>
+                                       <real>37.706146240234375</real>
+                                       <key>IndexInImage</key>
+                                       <integer>1</integer>
+                                       <key>Max</key>
+                                       <real>251</real>
+                                       <key>Mean</key>
+                                       <real>117.3563232421875</real>
+                                       <key>Min</key>
+                                       <real>36</real>
+                                       <key>Name</key>
+                                       <string>b1</string>
+                                       <key>NumberOfPoints</key>
+                                       <integer>14</integer>
+                                       <key>Point_mm</key>
+                                       <array>
+                                               <string>(-10.128872, -10.642630, -9.073523)</string>
+                                               <string>(-10.764026, -12.972319, -9.073523)</string>
+                                               <string>(-13.729649, -14.243412, -9.073523)</string>
+                                               <string>(-16.482775, -14.455128, -9.073523)</string>
+                                               <string>(-19.024179, -13.819974, -9.073523)</string>
+                                               <string>(-21.353868, -12.337160, -9.073523)</string>
+                                               <string>(-22.200745, -10.007470, -9.073523)</string>
+                                               <string>(-22.412466, -7.677787, -9.073523)</string>
+                                               <string>(-22.412466, -5.136376, -9.073523)</string>
+                                               <string>(-20.930431, -2.806693, -9.073523)</string>
+                                               <string>(-18.600742, -1.747316, -9.073523)</string>
+                                               <string>(-16.271059, -1.112157, -9.073523)</string>
+                                               <string>(-13.941370, -0.053566, -9.073523)</string>
+                                               <string>(-11.188244, -3.018409, -9.073523)</string>
+                                       </array>
+                                       <key>Point_px</key>
+                                       <array>
+                                               <string>(123.256577, 125.696594)</string>
+                                               <string>(122.443581, 122.714592)</string>
+                                               <string>(118.647583, 121.087593)</string>
+                                               <string>(115.123581, 120.816597)</string>
+                                               <string>(111.870583, 121.629593)</string>
+                                               <string>(108.888580, 123.527596)</string>
+                                               <string>(107.804581, 126.509598)</string>
+                                               <string>(107.533577, 129.491592)</string>
+                                               <string>(107.533577, 132.744598)</string>
+                                               <string>(109.430580, 135.726593)</string>
+                                               <string>(112.412582, 137.082596)</string>
+                                               <string>(115.394577, 137.895599)</string>
+                                               <string>(118.376579, 139.250595)</string>
+                                               <string>(121.900581, 135.455597)</string>
+                                       </array>
+                                       <key>Total</key>
+                                       <real>30630</real>
+                                       <key>Type</key>
+                                       <integer>15</integer>
+                               </dict>
+                       </array>
+               </dict>
+       </array>
+</dict>
+</plist>
index 2faab7b425598f21d365b89f5c0ceeb07125e3f3..a3fceae672c7f8c2cfa5d2bf19b4708ba4480bd9 100644 (file)
@@ -51,7 +51,6 @@ SET(${LIBRARY_NAME}_BUILD_TREE_RELATIVE_INCLUDE_PATHS
   # Invoke the advanced macro
   CREA_ADVANCED_INSTALL_LIBRARY_FOR_CMAKE(${LIBRARY_NAME})
 
 SUBDIRS(Interface_ManagerContour_NDimensions)
 SUBDIRS(Interface_Icons_NDimensions)
 SUBDIRS(kernel_ManagerContour_NDimensions)
index 00a74c9eb39d2a7d50431b31777f963ec7b815af..5fc1d49ae3f10068373422d8e961fba4532d3edb 100644 (file)
@@ -22,6 +22,10 @@ void interfIOMenu::initButtons(wxEvtHandler* evtHandler) {
        nom.push_back("Save all contours created ctrl + s");
        funct.push_back((wxObjectEventFunction) &interfIOMenu:: onSave);
 
+       path.push_back(datadir + "/Import.png");
+       nom.push_back("Import an OSIRIX XML file with contours");
+       funct.push_back((wxObjectEventFunction) &interfIOMenu:: onImport);
+
        this->addButtons(path, nom);
        this->setVectorFunction(funct);
 
@@ -37,6 +41,11 @@ void interfIOMenu::onLoad(wxCommandEvent& event){
 void interfIOMenu::onSave(wxCommandEvent& event){
        interfMainPanel::getInstance()->onSave();
 }
+
+void interfIOMenu::onImport(wxCommandEvent& event){
+       interfMainPanel::getInstance()->onImport();
+}
+
 interfIOMenu::~interfIOMenu()
 {
 }
index 421632e23c0b9c071a162b6b666b645d24e687df..3edd182db62ca5b98e837e0b914358a3b323bf83 100644 (file)
@@ -19,6 +19,8 @@ public:
        void onLoad(wxCommandEvent& event);
        void onSave(wxCommandEvent& event);
 
+       void onImport(wxCommandEvent& event);
+
 private:
        //wxEvtHandler* eventHandler;
        
index 6f5dd532d8a533e8ca1e2ef955174e21fa73c44c..d4f34a045f94cecdfc774bfe9d1977e98c2c7c68 100644 (file)
@@ -434,6 +434,10 @@ void interfMainPanel::onSave()
        wxContourMainFrame::getInstance()->onSave();
 }
 
+void interfMainPanel::onImport(){
+       wxContourMainFrame::getInstance()->onImport();
+}
+
 void interfMainPanel::RefreshInterface()
 {
        wxContourMainFrame::getInstance()->RefreshInterface();
index 90d2a30bfbef6543bb6d968c16d45dba99d868e0..5181f2920dbf79294078a9bdc7def97ba9dc936f 100644 (file)
@@ -117,6 +117,7 @@ public:
        //////////////////////////
        void onLoad();
        void onSave();
+       void onImport();
 /////////////////////////////7
        void RefreshInterface();
        vtkImageData* getImageData();
index e86dc1b19c70df15bb30634ebcb340ab44402ede..8941bde86d9e44287e06a66071e3e4e6164291c1 100644 (file)
@@ -912,11 +912,8 @@ void wxContourMainFrame ::loadContours( FILE *pFile, bool staticContour )
 }
 
 void wxContourMainFrame::onLoad()
-{
-       char tmp[255];
-       char tmpD[255];
+{      
        std::string fileNameContourROI = GetFileLocation();
-
 //CMRU 03-09-09-----------------------------------------------------------------------------------------------
        if(GetFileLocation().empty())
        {
@@ -928,6 +925,13 @@ void wxContourMainFrame::onLoad()
                }
        }
 
+       onLoadContours(fileNameContourROI);
+}
+
+void wxContourMainFrame::onLoadContours(std::string fileNameContourROI){
+       char tmp[255];
+       char tmpD[255];
+
        FILE *pFile =fopen(fileNameContourROI.c_str(),"r+");
 
 
@@ -985,6 +989,23 @@ void wxContourMainFrame::onLoad()
        }
        _theViewPanel->getSceneManager()->removeSceneContours();
        changeInstant();
+
+}
+
+void wxContourMainFrame::onImport(){
+       std::string filename, filenamecontours;
+       wxFileDialog dialog(NULL, _T("Choose a XML Osirix File"), _T(""), _T(""), _T("*.xml"), wxOPEN );
+
+       if (dialog.ShowModal() == wxID_OK)
+       {
+               filename = dialog.GetPath().mb_str();           
+               filenamecontours = kernelManager->parseOsirixFile(filename);
+
+               if(filenamecontours.compare("") != 0){
+                       onLoadContours(filenamecontours);
+               }
+
+       }
 }
 
 //AD: 29-05-09
index d73d2e75290b05727067598dd2540ab4f8b64b85..9c50da0afd030bf51d8881996113a0619818707e 100644 (file)
@@ -243,7 +243,7 @@ class wxContourMainFrame : public wxPanel {
 ///////////////////////7
        void onLoad();
        void onSave();
-       
+       void onImport();
        void openContours( FILE *pFile, FILE *pFileData, int version, bool staticContour );
 
        void RefreshInterface();
@@ -451,6 +451,7 @@ private:
        void loadContours( FILE *pFile, bool staticContour );
 
        void saveFileWithContours( std::string filename );
+       void onLoadContours(std::string fileNameContourROI);
 
        int inredo;
        int inundo;
index 0fcd339896cb826bf7f541e4edd6a847dc7a915b..0ed086642a184ab549a963e8e74be0be015123dd 100644 (file)
@@ -29,7 +29,7 @@ IF ( BUILD_${LIBRARY_NAME} )
   #----------------------------------------------------------------------------
   # LIBRARY SOURCES (TO BE COMPILED)
   # EITHER LIST ALL .cxx, *.cpp, *.cc IN CURRENT DIR USING NEXT LINE:
-  FILE(GLOB ${LIBRARY_NAME}_SOURCES *.cxx *.cpp *.cc *.h *.txx)
+  FILE(GLOB ${LIBRARY_NAME}_SOURCES *.cxx *.cpp *.cc *.txx)
   # OR MANUALLY LIST YOUR FILES WITH NEXT COMMAND (WITHOUT EXTENSION)
   #  SET ( ${LIBRARY_NAME}_SOURCES 
   #   
@@ -38,6 +38,12 @@ IF ( BUILD_${LIBRARY_NAME} )
 
   #----------------------------------------------------------------------------
   # LIBRARY DEPENDENCIES (LIBRARIES TO LINK WITH)
+  #JCP parserOsirix
+       OPTION ( BUILD_ParserOsirix  "Build ParserOsirix ?" OFF)
+       IF(BUILD_ParserOsirix)
+               INCLUDE(${CMAKE_CURRENT_SOURCE_DIR}/ParserOsirix/ParserOsirix.cmake)
+       ENDIF(BUILD_ParserOsirix)
+  #JCP parserOsirix
 
 #  MESSAGE(ERROR         ${creaMaracasVisu_LIBRARIES})
   SET ( ${LIBRARY_NAME}_LINK_LIBRARIES
@@ -46,19 +52,23 @@ IF ( BUILD_${LIBRARY_NAME} )
     ${WXWIDGETS_LIBRARIES}
     ${VTK_LIBRARIES}
     ${creaMaracasVisu_LIBRARIES}
+       ${ParserOsirix_LIBRARIES}
     #    ${ITK_LIBRARIES}
     #    ${GDCM_LIBRARIES}
     #    ${BOOST_LIBRARIES}
     )
   #----------------------------------------------------------------------------
 
+  SOURCE_GROUP("Source Files" FILES ${${LIBRARY_NAME}_SOURCES})
+  SOURCE_GROUP("Header Files" FILES ${${LIBRARY_NAME}_HEADERS})
   
+    
   #----------------------------------------------------------------------------
   # MACRO WHICH DOES ALL THE JOB : BUILD AND INSTALL
   #CREA_ADD_LIBRARY( ${LIBRARY_NAME} )
   #----------------------------------------------------------------------------
 
-  ADD_LIBRARY(${LIBRARY_NAME} STATIC  ${${LIBRARY_NAME}_SOURCES})
+  ADD_LIBRARY(${LIBRARY_NAME} STATIC  ${${LIBRARY_NAME}_SOURCES} ${ParserOsirix_SOURCES} ${${LIBRARY_NAME}_HEADERS} ${ParserOsirix_HEADERS})
   # LINK
   TARGET_LINK_LIBRARIES(${LIBRARY_NAME} ${${LIBRARY_NAME}_LINK_LIBRARIES} )
   
index ec6251f994dd2b3e51319a3f7f3a4fab92902ed3..57f9228ee6499549b0e365b5c5903e11b158e520 100644 (file)
@@ -93,6 +93,7 @@ void KernelManagerContour::setVectImages(std::vector<vtkImageData*> vectimg){
 }
 
 void KernelManagerContour::initializeEnvironment(std::string datadir){
+       _datadir = datadir;
        std::string conceptsFN                  =  datadir+"holaConceptsFile.cf";
        std::string imageSourcesFN              =  datadir+"holaImagesInstantsFile.of";
        std::string imageSectionsFN             = "";
@@ -465,4 +466,30 @@ void KernelManagerContour::setCurrentFileName(std::string filenam){
        this->filename = filenam;
 }
 
+std::string KernelManagerContour::parseOsirixFile(std::string filename){
+       
+
+#ifdef ParserOsirix_BUILD
+       vtkImageData* sourceimage;
+       std::string xsdfile;
+
+       xsdfile = _datadir;
+
+       xsdfile.append("\\XML\\osirixschema.xsd");
+
+       sourceimage = getSourceImage();
+       OsirixParser p(xsdfile.c_str(), sourceimage->GetSpacing(), sourceimage->GetExtent());
+
+       if(p.ParseFile(filename.c_str())!= 0){
+
+       }
+
+       return p.getContoursFileName();
+#else
+       return "";
+#endif 
+
+
+}
+
 
index f7c28535c02407f115c8d124c8d94371468a55b0..4df96d10df98a00503d1933a129488dd74c063ca 100644 (file)
@@ -13,7 +13,9 @@
 #include "OutlineModelManager.h"
 #include "OutlineModelBuilder.h"
 #include "time.h"
-
+#ifdef ParserOsirix_BUILD
+#include "OsirixParser.h"
+#endif
 #include "ContourPropagation.h"
 
 #include "manualContourModel.h"
@@ -144,6 +146,8 @@ public:
 
        void setCurrentFileName(std::string filenam);
        std::string getCurrentFileName();
+
+       std::string parseOsirixFile(std::string filename);
 private:       
 //------------------------------------------------------------------------------------------------------------
 // Attributes
@@ -162,6 +166,7 @@ private:
        int inundo;
        int _currentIndex;
        std::string     stundoredo;
+       std::string _datadir;
 
        ContourPropagation* _contourPropagation;
 
diff --git a/lib/kernel_ManagerContour_NDimensions/ParserOsirix/OsirixParser.cxx b/lib/kernel_ManagerContour_NDimensions/ParserOsirix/OsirixParser.cxx
new file mode 100644 (file)
index 0000000..4c36214
--- /dev/null
@@ -0,0 +1,507 @@
+
+//----------------------------------------------------------------------------------------------------------------
+// Class definition include
+//----------------------------------------------------------------------------------------------------------------
+#include "OsirixParser.h"
+
+#include <stdio.h>
+
+
+OsirixParser::OsirixParser(std::string xsdfile, double* spacing, int* extent)
+{
+       schema=xsdfile;
+
+       OSIRIX_DICT = "dict";
+       OSIRIX_KEY = "key";
+       OSIRIX_IMAGES = "Images";
+       OSIRIX_ARRAY = "array";
+       OSIRIX_IMAGEINDEX = "ImageIndex";
+       OSIRIX_INTEGER = "integer";
+       OSIRIX_NUMBEROFROIS = "NumberOfROIs";
+       OSIRIX_ROIS = "ROIs";
+       OSIRIX_POINT_MM = "Point_mm";
+       OSIRIX_POINT_PX = "Point_px";
+       OSIRIX_STRING = "string";
+
+       if(spacing != NULL){
+               _spacing[0] = spacing[0];
+               _spacing[1] = spacing[1];
+               _spacing[2] = spacing[2];
+       }else{
+               _spacing[0] = 1;
+               _spacing[1] = 1;
+               _spacing[2] = 1;
+       }
+
+       if(extent != NULL){
+               _extent[0] = extent[0];
+               _extent[1] = extent[1];
+               _extent[2] = extent[2];
+               _extent[3] = extent[3];
+               _extent[4] = extent[4];
+               _extent[5] = extent[5];
+               
+       }else{
+               _extent[0] = 1;
+               _extent[1] = 1;
+               _extent[2] = 1;         
+               _extent[3] = 1;
+               _extent[4] = 1;
+               _extent[5] = 1;
+       }
+
+
+       /*HEADER*/
+       CREACONTOUR = "--CreaContour--";
+       CREACONTOUR_VERSION = "Version 1.0.2";
+       CREACONTOUR_IMAGEDIMENSIONS = "ImageDimensions";
+       CREACONTOUR_IMAGESPACING = "ImageSpacing";
+       CREACONTOUR_NUMBEROFCONTOURS = "NumberOfContours";
+       /*FOR EACH CONTOUR*/
+       CREACONTOUR_INSTANT = "Instant";
+       CREACONTOUR_TYPEMODEL = "TypeModel";
+       CREACONTOUR_NUMBEROFCONTROLPOINTS = "NumberOfControlPoints";
+       CREACONTOUR_TYPEVIEW = "TypeView";      
+       /*STATICCONTOURS*/
+       CREACONTOUR_NUMBEROFCONTOURSSTATIC = "NumberOfContoursStatic";
+
+
+#ifdef WIN32
+
+       char currentPath[_MAX_PATH];    
+       GetModuleFileName(NULL, currentPath, _MAX_PATH);
+       TEMPIMPORTOSIRIXFILE = currentPath;
+
+       TEMPIMPORTOSIRIXFILE = TEMPIMPORTOSIRIXFILE.substr(0,TEMPIMPORTOSIRIXFILE.find_last_of("\\"));
+
+       TEMPIMPORTOSIRIXFILE.append("\\data\\TEMPIMPORTOSIRIXFILE.roi");
+       
+#else
+       TEMPIMPORTOSIRIXFILE = "./data/TEMPIMPORTOSIRIXFILE";
+#endif
+       
+}
+OsirixParser::~OsirixParser(){
+
+}
+
+int OsirixParser::ParseFile(const char* xmlfile){
+
+       xercesc::DOMDocument *doc;
+
+
+       try {
+            XMLPlatformUtils::Initialize();
+        }
+        catch (const XMLException& toCatch) {
+            char* message = XMLString::transcode(toCatch.getMessage());
+            cout << "Error during initialization! :\n"
+                 << message << "\n";
+            XMLString::release(&message);
+            return 1;
+        }
+
+        XercesDOMParser* OsirixParser = new XercesDOMParser();
+
+
+               OsirixParser->setDoNamespaces(true);
+               OsirixParser->setDoSchema(true);
+               OsirixParser->setValidationScheme(XercesDOMParser::Val_Always );
+               OsirixParser->setExternalNoNamespaceSchemaLocation(XMLString::transcode(schema.c_str()));
+               OsirixParser->setValidationSchemaFullChecking(true);
+               OsirixParser->setValidationConstraintFatal(true);
+               OsirixParser->setExitOnFirstFatalError(true);
+
+
+        ErrorHandler* errHandler = (ErrorHandler*) new OsirixParserErrorHandler();
+
+        OsirixParser->setErrorHandler(errHandler);
+
+
+        try {
+            OsirixParser->parse(xmlfile);
+
+
+                       if(OsirixParser->getErrorCount() > 0){
+
+                               errorline = ((OsirixParserErrorHandler*)OsirixParser->getErrorHandler())->getErrorMsg();
+
+
+                               delete OsirixParser;
+                               delete errHandler;
+                               return -2;
+                       }
+
+
+
+        }
+        catch (const XMLException& toCatch) {
+            char* message = XMLString::transcode(toCatch.getMessage());
+            cout << "Exception message is: \n"
+                 << message << "\n";
+            XMLString::release(&message);
+                       delete OsirixParser;
+                   delete errHandler;
+            return -1;
+        }
+        catch (const DOMException& toCatch) {
+            char* message = XMLString::transcode(toCatch.msg);
+            cout << "Exception message is: \n"
+                 << message << "\n";
+            XMLString::release(&message);
+                       delete OsirixParser;
+                       delete errHandler;
+            return -1;
+        }
+        catch (...) {
+            cout << "Unexpected Exception \n" ;
+                       delete OsirixParser;
+                       delete errHandler;
+            return -1;
+        }
+
+               std::cout<<"parsing document..."<<std::endl;
+
+
+        doc = OsirixParser->getDocument();
+//             DOMNodeList* list = doc->getChildNodes();               
+               getUserData(doc->getDocumentElement());
+
+
+               saveCreaContoursFormat();
+
+        delete OsirixParser;
+        delete errHandler;
+
+
+
+               return 0;
+
+}
+
+void OsirixParser::setErrorLine(DOMNodeList* list){
+
+       DOMNode* node = list->item(0);
+       this->errorline =       XMLString::transcode(node->getTextContent());
+
+}
+DOMNode* OsirixParser::getLastNode(DOMNodeList* list){
+
+
+       DOMNode* node;
+       /*for(int i = list->getLength()-1; i >= 0 ;i--){
+
+               node = list->item(i);
+
+               if(node->getNodeType() == DOMNode::ELEMENT_NODE){
+                       i = -1;
+               }
+
+       }*/
+       node = list->item(list->getLength()-1);
+
+
+
+       if(node->getChildNodes()->getLength()>0){
+               return getLastNode(node->getChildNodes());
+       }
+       return node;
+
+}
+
+void OsirixParser::getUserData(DOMElement* element){
+       parseOSIRIX_DICT(element->getElementsByTagName(XMLString::transcode(OSIRIX_DICT)));
+}
+
+void OsirixParser::parseOSIRIX_DICT(DOMNodeList* list){
+       int i, j;
+       DOMNode* node, *childnode, *childnode1, *childarray;
+       std::string point_mm, point_px, osirixinteger, imageindex, temp;
+       DOMNodeList* childlist;
+       point_mm = OSIRIX_POINT_MM;
+       point_px = OSIRIX_POINT_PX;
+       imageindex = OSIRIX_IMAGEINDEX;
+       osirixinteger = OSIRIX_INTEGER;
+       
+       
+
+       for(i = 0; i < (int)(list->getLength()); i++){
+               node = list->item(i);           
+               childlist = node->getChildNodes();
+               for(j = 0; j < (int)(childlist->getLength());j++){
+                       childnode = childlist->item(j);                 
+                       temp = XMLString::transcode(childnode->getTextContent());       
+
+
+                       if(point_mm.compare(temp)==0){                          
+                               childarray = childlist->item(j+2);
+                               //temp = XMLString::transcode(childarray->getNodeName());                                       
+                               if(childarray != 0){                                    
+                                       parseOSIRIX_POINT_MM(childarray->getChildNodes());                                      
+                               }                               
+                       }else if(point_px.compare(temp)==0){                            
+                               childarray = childlist->item(j+2);
+                               //temp = XMLString::transcode(childarray->getNodeName());                                       
+                               if(childarray != 0){                                    
+                                       parseOSIRIX_POINT_PX(childarray->getChildNodes());                                      
+                               }                               
+                       }else if(imageindex.compare(temp) == 0){
+                               childnode1 = childlist->item(j+2);
+                               if(childnode1 != NULL && osirixinteger.compare(XMLString::transcode(childnode1->getNodeName())) == 0){
+                                       _imageindex = atoi(XMLString::transcode(childnode1->getTextContent()));                                         
+                               }                               
+                       }
+               }               
+       }
+}
+
+void OsirixParser::parseOSIRIX_POINT_MM(DOMNodeList* list){
+       int i, stringfound0, stringfound1;
+       DOMNode* node;
+       string temp, osirix_string, numx, numy, numz;
+       vector<double>* vectorx;
+       vector<double>* vectory;
+       vector<double>* vectorz;
+       vectorXYZ vectorxyz;
+       double x, y, z; 
+
+       vectorx = new vector<double>;
+       vectory = new vector<double>;
+       vectorz = new vector<double>;
+
+       osirix_string = OSIRIX_STRING;
+
+       for(i = 0; i < (int)(list->getLength()); i++){
+               node = list->item(i);
+               if(osirix_string.compare(XMLString::transcode(node->getNodeName()))==0){
+                       temp = XMLString::transcode(node->getTextContent());                    
+
+                       stringfound0 = temp.find(",",0);
+                       numx = temp.substr(1, stringfound0-1);
+
+                       stringfound1 = temp.find(",",stringfound0+1);
+                       numy = temp.substr(stringfound0+1, stringfound1-stringfound0-1);
+
+                       stringfound0 = temp.find(")",stringfound1+1);
+                       numz = temp.substr(stringfound1+1, stringfound0-stringfound1-1);
+
+                       x = atof(numx.c_str());         
+                       y = atof(numy.c_str());         
+                       z = atof(numz.c_str());         
+
+                       vectorx->push_back(x);
+                       vectory->push_back(y);
+                       vectorz->push_back(z);
+               }               
+       }
+       if(vectorx->size() > 0){
+               vectorxyz.push_back(*vectorx);
+               vectorxyz.push_back(*vectory);
+               vectorxyz.push_back(*vectorz);
+               contoursmapMM.insert(pair<int, vectorXYZ>(contoursmapMM.size(), vectorxyz));
+       }
+}
+
+void OsirixParser::parseOSIRIX_POINT_PX(DOMNodeList* list){
+       int i, stringfound0, stringfound1;
+       DOMNode* node;
+       string temp, osirix_string, numx, numy;
+       vector<double>* vectorx;
+       vector<double>* vectory;        
+       vector<double>* vectorz;        
+       vectorXYZ vectorxyz;
+       double x, y, z; 
+
+       vectorx = new vector<double>;
+       vectory = new vector<double>;   
+       vectorz = new vector<double>;   
+
+       osirix_string = OSIRIX_STRING;
+
+       for(i = 0; i < (int)(list->getLength()); i++){
+               node = list->item(i);
+               if(osirix_string.compare(XMLString::transcode(node->getNodeName()))==0){
+                       temp = XMLString::transcode(node->getTextContent());                    
+
+                       stringfound0 = temp.find(",",0);
+                       numx = temp.substr(1, stringfound0-1);                                  
+
+                       stringfound1 = temp.find(")",stringfound0+1);
+                       numy = temp.substr(stringfound0+1, stringfound1-stringfound0-1);
+
+                       x = atof(numx.c_str());         
+                       y = atof(numy.c_str());                                 
+
+                       vectorx->push_back(x);
+                       vectory->push_back(y);  
+                       vectorz->push_back(_imageindex);
+               }               
+       }
+       if(vectorx->size() > 0){
+               vectorxyz.push_back(*vectorx);
+               vectorxyz.push_back(*vectory);  
+               vectorxyz.push_back(*vectorz);  
+               contoursmapPX.insert(pair<int, vectorXYZ>(contoursmapPX.size(), vectorxyz));
+       }       
+}
+               
+
+
+void OsirixParser::getData(DOMNodeList* list, std::vector<std::string>& vect, std::string tagname){
+
+       for(int i = 0; i < (int)(list->getLength()); i++){
+               DOMNode* node = list->item(i);
+               if(tagname.compare(XMLString::transcode(node->getNodeName()))==0){
+                       std::cout<<"NODENAME "<<XMLString::transcode(node->getTextContent())<<std::endl;
+                       vect.push_back(XMLString::transcode(node->getTextContent()));
+               }
+
+       }
+}
+
+void OsirixParser::saveCreaContoursFormat(){
+       FILE *pFile=fopen(TEMPIMPORTOSIRIXFILE.c_str(),"w+");
+
+       if(pFile){
+               writeHeader(pFile);
+               writeContours(pFile);
+               writeContoursStatic(pFile);
+               fclose(pFile);
+       }
+}
+
+void OsirixParser::writeContoursStatic(FILE* pFile){
+       fprintf(pFile, CREACONTOUR_IMAGEDIMENSIONS);
+       fprintf(pFile, " %d %d %d\n", _extent[1] - _extent[0],_extent[3] - _extent[2], _extent[5] - _extent[4]);
+       fprintf(pFile, CREACONTOUR_IMAGESPACING);
+       fprintf(pFile, " %f %f %f\n", _spacing[0], _spacing[1], _spacing[2]);
+       fprintf(pFile, CREACONTOUR_NUMBEROFCONTOURSSTATIC);
+       fprintf(pFile, " 0\n");
+}
+
+void OsirixParser::writeContours(FILE* pFile){
+       
+       map<int, vectorXYZ>::iterator itPX;
+       vector<double> vectx, vecty, vectz;
+       int i, valuez;
+       int dimz = 0, dimy = 0;
+
+       if(_extent != 0){
+               dimz = _extent[5] - _extent[4] + 1;
+               dimy = _extent[3] - _extent[2] + 1;
+       }
+
+       /*for (itMM = contoursmapMM.begin(),  itPX = contoursmapPX.begin(); 
+                       itMM != contoursmapMM.end(), itPX != contoursmapPX.end(); 
+                       itMM++, itPX++ ){*/
+       for (itPX = contoursmapPX.begin(); itPX != contoursmapPX.end(); itPX++ ){
+
+               vectx = ((*itPX).second)[0];
+               vecty = ((*itPX).second)[1];
+               vectz = ((*itPX).second)[2];
+
+               if(!vectz.empty()){
+
+                       valuez = (int) vectz[0] / _spacing[2];
+
+                       fprintf(pFile, CREACONTOUR_INSTANT);
+                       fprintf(pFile, " 1 %d 1 1 1 1\n",dimz - valuez);
+                       fprintf(pFile, CREACONTOUR_TYPEMODEL);
+                       fprintf(pFile, " 1\n");
+                       fprintf(pFile, CREACONTOUR_NUMBEROFCONTROLPOINTS);
+                       fprintf(pFile, " %d\n", vectz.size());
+                       for(i = 0; i < vectx.size(); i++){
+                               fprintf(pFile, "%f %f 900.00\n", vectx[i]/ _spacing[0],dimy - vecty[i]/ _spacing[1]);
+                       }               
+                       fprintf(pFile, CREACONTOUR_TYPEVIEW);
+                       fprintf(pFile, " 1\n");
+                       
+               }
+       }
+}
+
+void OsirixParser::writeHeader(FILE* pFile){ 
+        
+
+       fprintf(pFile, CREACONTOUR);
+       fprintf(pFile, "\n");
+       fprintf(pFile, CREACONTOUR_VERSION);
+       fprintf(pFile, "\n");
+       fprintf(pFile, CREACONTOUR_IMAGEDIMENSIONS);
+       fprintf(pFile, " %d %d %d\n", _extent[1] - _extent[0],_extent[3] - _extent[2], _extent[5] - _extent[4]);
+       fprintf(pFile, CREACONTOUR_IMAGESPACING);
+       fprintf(pFile, " %f %f %f\n", _spacing[0], _spacing[1], _spacing[2]);
+       fprintf(pFile, CREACONTOUR_NUMBEROFCONTOURS);
+       fprintf(pFile, " %d\n", contoursmapPX.size());
+
+
+
+}
+
+
+std::string OsirixParser::getContoursFileName(){
+       return TEMPIMPORTOSIRIXFILE;
+}
+
+/**
+**     The Error Handler's interface implementation
+**/
+
+/**
+       ** Default Constructor
+       **/
+OsirixParserErrorHandler::OsirixParserErrorHandler()
+: ErrorHandler(){
+
+
+
+
+}
+       /**
+       ** Desctructor by defect
+       **/
+OsirixParserErrorHandler::~OsirixParserErrorHandler(){
+}
+
+void   OsirixParserErrorHandler::warning (const SAXParseException &exc){
+}
+
+void   OsirixParserErrorHandler::error (const SAXParseException &exc){
+       char c[1000];
+       errormsg = "Column ";
+//     errormsg +=     itoa(exc.getColumnNumber(),c,10);
+       sprintf_s(c,"%d",(int)(exc.getColumnNumber()));
+       errormsg +=     std::string(c);
+
+       errormsg += " Line ";
+//     errormsg +=     itoa(exc.getLineNumber(),c,10);
+       sprintf_s(c,"%d",(int)(exc.getLineNumber()));
+       errormsg +=     std::string(c);
+
+       errormsg += " ";
+       errormsg += XMLString::transcode(exc.getMessage());
+
+}
+
+void   OsirixParserErrorHandler::fatalError (const SAXParseException &exc){
+       char c[1000];
+       errormsg = "Column ";
+//     errormsg +=     itoa(exc.getColumnNumber(),c,10);
+       sprintf_s(c,"%d",(int)(exc.getColumnNumber()));
+       errormsg +=     std::string(c);
+
+       errormsg += " Line ";
+//     errormsg +=     itoa(exc.getLineNumber(),c,10);
+       sprintf_s(c,"%d",(int)(exc.getLineNumber()));
+       errormsg +=     std::string(c);
+
+       errormsg += " ";
+       errormsg += XMLString::transcode(exc.getMessage());
+}
+
+void   OsirixParserErrorHandler::resetErrors (){
+}
+
+std::string OsirixParserErrorHandler::getErrorMsg(){
+       return this->errormsg;
+}
diff --git a/lib/kernel_ManagerContour_NDimensions/ParserOsirix/OsirixParser.h b/lib/kernel_ManagerContour_NDimensions/ParserOsirix/OsirixParser.h
new file mode 100644 (file)
index 0000000..61aecea
--- /dev/null
@@ -0,0 +1,163 @@
+#ifndef __OsirixParser__
+#define __OsirixParser__
+
+
+#if defined(_WIN32)
+#include "Windows.h"
+  #ifdef kernelParserOsirix_BUILD_SHARED
+    #define kernelParserOsirix_EXPORT __declspec( dllexport )
+  #else
+    #define kernelParserOsirix_EXPORT __declspec( dllimport )
+  #endif
+  #define kernelParserOsirix_CDECL __cdecl
+#else
+  #define kernelParserOsirix_EXPORT
+  #define kernelParserOsirix_CDECL
+#endif // defined(_WIN32)
+
+//------------------------------------------------------------------------------------------------------------
+// Includes
+//------------------------------------------------------------------------------------------------------------
+
+#include <iostream>
+#include <vector>
+#include <map>
+#include <xercesc/parsers/XercesDOMParser.hpp>
+#include <xercesc/dom/DOM.hpp>
+#include <xercesc/dom/DOMErrorHandler.hpp>
+#include <xercesc/dom/DOMLocator.hpp>
+#include <xercesc/sax/HandlerBase.hpp>
+#include <xercesc/util/XMLString.hpp>
+#include <xercesc/util/PlatformUtils.hpp>
+
+
+using namespace std;
+using namespace xercesc;
+
+
+
+class OsirixParser{
+
+//------------------------------------------------------------------------------------------------------------
+// Constructors & Destructors
+//------------------------------------------------------------------------------------------------------------
+public:
+
+       /**
+       ** Constructor for the parser, with the information of the pixel spacing and image dimensions
+       **/
+       OsirixParser(std::string xsdfile = "", double* spacing = NULL, int* extent = NULL);
+       /**
+       ** Desctructor by defect
+       **/
+       ~OsirixParser();        
+
+       int ParseFile(const char* xmlfile);
+       
+       
+       std::string getErrorLine();
+
+       std::string getContoursFileName();
+
+private:
+
+       std::string schema;
+
+       std::string errorline;  
+
+       int _imageindex;
+
+       const char* OSIRIX_DICT;
+       const char* OSIRIX_KEY;
+       const char* OSIRIX_IMAGES;
+       const char* OSIRIX_ARRAY;
+       const char* OSIRIX_IMAGEINDEX;
+       const char* OSIRIX_INTEGER;
+       const char* OSIRIX_NUMBEROFROIS;
+       const char* OSIRIX_ROIS;
+       const char* OSIRIX_POINT_MM;
+       const char* OSIRIX_POINT_PX;
+       const char* OSIRIX_STRING;              
+       
+       const char* CREACONTOUR;
+       const char* CREACONTOUR_VERSION;
+       const char* CREACONTOUR_IMAGEDIMENSIONS;
+       const char* CREACONTOUR_IMAGESPACING;
+       const char* CREACONTOUR_NUMBEROFCONTOURS;
+
+       const char* CREACONTOUR_INSTANT;
+       const char* CREACONTOUR_TYPEMODEL;
+       const char* CREACONTOUR_NUMBEROFCONTROLPOINTS;
+       const char* CREACONTOUR_TYPEVIEW;       
+       
+       const char* CREACONTOUR_NUMBEROFCONTOURSSTATIC;
+
+       std::string TEMPIMPORTOSIRIXFILE;
+
+       double _spacing[3];
+       int _extent[6];
+
+       typedef vector<vector<double>> vectorXYZ;
+       std::map<int, vectorXYZ> contoursmapMM; 
+       std::map<int, vectorXYZ> contoursmapPX;
+
+       void saveCreaContoursFormat();
+
+       void writeHeader(FILE* pFile);
+       void writeContours(FILE* pFile);
+       void writeContoursStatic(FILE* pFile);
+
+       void setErrorLine(DOMNodeList* list);   
+
+       void getUserData(DOMElement* element);  
+
+       void getData(DOMNodeList* list, std::vector<std::string>& vect, std::string tagname);
+
+       DOMNode* getLastNode(DOMNodeList* list);
+
+       void parseOSIRIX_DICT(DOMNodeList* list);
+       void parseOSIRIX_POINT_MM(DOMNodeList* list);
+       void parseOSIRIX_POINT_PX(DOMNodeList* list);
+
+       
+
+       
+};
+
+class OsirixParserErrorHandler : public ErrorHandler{
+
+//------------------------------------------------------------------------------------------------------------
+// Constructors & Destructors
+//------------------------------------------------------------------------------------------------------------
+public:
+
+       /**
+       ** Default Constructor
+       **/
+       OsirixParserErrorHandler();
+       /**
+       ** Desctructor by defect
+       **/
+       ~OsirixParserErrorHandler();    
+
+       virtual void    warning (const SAXParseException &exc);         
+
+       virtual void    error (const SAXParseException &exc);           
+
+       virtual void    fatalError (const SAXParseException &exc);              
+
+       virtual void    resetErrors ();
+
+       std::string getErrorMsg();
+
+private:
+
+       
+       std::string errormsg;
+
+       
+
+       
+       
+};
+#endif
diff --git a/lib/kernel_ManagerContour_NDimensions/ParserOsirix/ParserOsirix.cmake b/lib/kernel_ManagerContour_NDimensions/ParserOsirix/ParserOsirix.cmake
new file mode 100644 (file)
index 0000000..39cf778
--- /dev/null
@@ -0,0 +1,23 @@
+#----------------------------------------------------------------------------
+# SET THE NAME OF YOUR LIBRARY
+SET ( SOURCEGROUP_NAME   ParserOsirix  )
+#----------------------------------------------------------------------------
+
+CREA_DEFINE(${SOURCEGROUP_NAME}_BUILD)
+FILE(GLOB ${SOURCEGROUP_NAME}_HEADERS ${CMAKE_CURRENT_SOURCE_DIR}/ParserOsirix/*.h)
+  # OR MANUALLY LIST YOUR HEADERS WITH NEXT COMMAND
+  #  SET ( ${LIBRARY_NAME}_HEADERS
+  #
+  #    )
+  #----------------------------------------------------------------------------
+
+  #----------------------------------------------------------------------------
+  # LIBRARY SOURCES (TO BE COMPILED)
+  # EITHER LIST ALL .cxx, *.cpp, *.cc IN CURRENT DIR USING NEXT LINE:
+FILE(GLOB ${SOURCEGROUP_NAME}_SOURCES ${CMAKE_CURRENT_SOURCE_DIR}/ParserOsirix/*.cxx)
+
+SOURCE_GROUP("Source Files\\Osirix" FILES ${${SOURCEGROUP_NAME}_SOURCES})
+SOURCE_GROUP("Header Files\\Osirix" FILES ${${SOURCEGROUP_NAME}_HEADERS})
+
+SET(${SOURCEGROUP_NAME}_LIBRARIES ${XERCES_LIBRARIES})
\ No newline at end of file