package edu.stanford.rsl.conrad.phantom.xcat; import java.util.ArrayList; import java.util.HashMap; import edu.stanford.rsl.conrad.geometry.AbstractShape; import edu.stanford.rsl.conrad.geometry.motion.timewarp.TimeWarper; import edu.stanford.rsl.conrad.geometry.splines.SurfaceBSpline; import edu.stanford.rsl.conrad.geometry.splines.TimeVariantSurfaceBSpline; import edu.stanford.rsl.conrad.phantom.AnalyticPhantom4D; import edu.stanford.rsl.conrad.physics.PhysicalObject; import edu.stanford.rsl.conrad.physics.materials.Material; import edu.stanford.rsl.conrad.rendering.PrioritizableScene; import edu.stanford.rsl.conrad.utils.Configuration; import edu.stanford.rsl.conrad.utils.RegKeys; /** * Class to model scenes involving Paul Seagar's XCAT.<BR><BR> * <img src="http://dmip1.rad.jhmi.edu/xcat/ncat_ct.jpg" alt = "XCat example"> * * @author akmaier * */ public abstract class XCatScene extends AnalyticPhantom4D { /** * */ private static final long serialVersionUID = 7268743275585203174L; /** * Select the gender of the phantom. */ protected static boolean maleGender = true; /** * If supine is selected, the patient is laying on this back. If it is set to false, the patient is defined as laying on this front side. */ protected static boolean supine = true; /** * This reads in the position of the XCat files from the registry. */ protected String XCatDirectory = Configuration.getGlobalConfiguration().getRegistryEntry(RegKeys.XCAT_PATH); /** * defines whether the bone marrow is rendered. */ protected static boolean renderMarrow = true; /** * Rendering of the arm marrow. Use this option with care. The arm bone marrow of XCat may belong to arms pointing upwards. */ protected static boolean renderArmMarrow = false; /** * Time warping is used for animation. A time warper is a function that get an input time and return an output time. */ protected TimeWarper warper; protected ArrayList<SurfaceBSpline> splines = new ArrayList<SurfaceBSpline>(); protected ArrayList<TimeVariantSurfaceBSpline> variants = new ArrayList<TimeVariantSurfaceBSpline>(); /** * returns the geometric definition of XCat. Only returns the splines that are rendered in the respective scene. * @return the splines */ public ArrayList<SurfaceBSpline> getSplines() { return splines; } public ArrayList<TimeVariantSurfaceBSpline> getVariants() { return variants; } public void createPhysicalObjects(){ clear(); for (TimeVariantSurfaceBSpline spline: variants){ add(this, spline, spline.getTitle()); } for (SurfaceBSpline spline: splines){ add(this, spline, spline.getTitle()); } } /** * This definition of XCat does tessellate the scene, i.e. render the complete scene in triangles. * Function is based on several parameters to determine the number of points required to get a * sufficient tessellation of the respective object. * * @param voxelSizeX the resolution of the object in X direction * @param voxelSizeY the resolution of the object in Y direction * @param voxelSizeZ the resolution of the object in Z direction * @param samplingU sampling factor in the spline internal u direction * @param samplingV sampling factor in the spline internal v direction * @param time the time between 0 and 1 to draw the scene. Note that the time is being warped according to the time warper. * @return a scene at a given time consisting only of triangles. */ public abstract PrioritizableScene tessellateScene(double time); public PrioritizableScene getScene(double time){ return tessellateScene(time); } /** * Adds a new shape to the scene. The shape is compared against the look-up table of known shapes to determine its material. * @param phantom the phantom to add the shape * @param shape the shape * @param name the name of the shape used for the look up. */ protected void add(PrioritizableScene phantom, AbstractShape shape, String name){ if (shape != null){ if (getSplineNameMaterialNameLUT().keySet().contains(name)){ PhysicalObject obj = new PhysicalObject(); obj.setNameString(name); obj.setMaterial(generateFromSplineName(name)); obj.setShape(shape); try{ //System.out.println(obj.getNameString() + " " + getSplinePriorityLUT().get(name)); phantom.add(obj, getSplinePriorityLUT().get(name)); } catch (Exception e){ System.out.println("ignored '" + name+"'"); } } else { System.out.println("ignored '" + name +"'"); } } } /** * Returns the scene as an collection of Bsplines: * <pre> * type * total size in floats * # number of splines * Bsplines * priorities * materials * </pre> * @return the binary representation */ public abstract float [] getBinaryRepresentation(); /** * Look up table for the priorites of the different shapes. * Shapes with a higher priority are drawn over shapes with lower priority. * @return the prioirity lut */ public static HashMap <String, Integer> getSplinePriorityLUT(){ HashMap<String, Integer> map = new HashMap<String, Integer>(); map.put("*****BODY******", 0); map.put("**RightArm", 0); map.put("**LeftArm", 0); map.put("**RightLeg", 0); map.put("**LeftLeg", 0); map.put("*****RLUNG******", 8); map.put("*****LLUNG******", 8); map.put("*****LIVER******", 20); map.put("****Gall-Bladder****", 10); map.put("****Left-diaphragm****", 60); map.put("*****KIDNEY1******", 10); map.put("*****KIDNEY2******", 10); map.put("*****STOMACH******", 10); map.put("*****SPLEEN******", 10); map.put("*****STERNUM******", 10); map.put("*****thor_cartilage1****", 20); map.put("*****thor_cartilage2****", 20); map.put("*****thor_cartilage3****", 20); map.put("*****thor_cartilage4****", 20); map.put("*****thor_cartilage5****", 20); map.put("*****thor_cartilage6****", 20); map.put("*****thor_cartilage7****", 20); map.put("*****thor_cartilage8****", 20); map.put("*****thor_cartilage9****", 20); map.put("*****thor_cartilage10****", 20); map.put("*****thor_cartilage11****", 20); map.put("*****thor_cartilage12****", 20); map.put("*****lumbar_cartilage1****", 20); map.put("*****lumbar_cartilage2****", 20); map.put("*****lumbar_cartilage3****", 20); map.put("*****lumbar_cartilage4****", 20); map.put("*****lumbar_cartilage5****", 20); map.put("*****lumbar_cartilage6****", 20); map.put("****cerv_vert1a****", 10); map.put("****cerv_vert1b****", 10); map.put("****cerv_vert1c****", 10); map.put("****cerv_vert1d****", 10); map.put("****cerv_vert1e****", 10); map.put("****cerv_vert1f****", 10); map.put("*****cerv_vert2a****", 10); map.put("*****cerv_vert2b****", 10); map.put("*****cerv_vert2c****", 10); map.put("*****cerv_vert3a****", 10); map.put("*****cerv_vert3b****", 10); map.put("*****cerv_vert3c****", 10); map.put("*****cerv_vert4a****", 10); map.put("*****cerv_vert4b****", 10); map.put("*****cerv_vert4c****", 10); map.put("*****cerv_vert5a****", 10); map.put("*****cerv_vert5b****", 10); map.put("*****cerv_vert5c****", 10); map.put("*****cerv_vert6a****", 10); map.put("*****cerv_vert6b****", 10); map.put("*****cerv_vert6c****", 10); map.put("*****cerv_vert7a****", 10); map.put("*****cerv_vert7b****", 10); map.put("*****cerv_vert7c****", 10); map.put("*****thor_vert1a****", 10); map.put("*****thor_vert1b****", 10); map.put("*****thor_vert2a****", 10); map.put("*****thor_vert2b****", 10); map.put("*****thor_vert3a****", 10); map.put("*****thor_vert3b****", 10); map.put("*****thor_vert4a****", 10); map.put("*****thor_vert4b****", 10); map.put("*****thor_vert5a****", 10); map.put("*****thor_vert5b****", 10); map.put("*****thor_vert6a****", 10); map.put("*****thor_vert6b****", 10); map.put("*****thor_vert7a****", 10); map.put("*****thor_vert7b****", 10); map.put("*****thor_vert8a****", 10); map.put("*****thor_vert8b****", 10); map.put("*****thor_vert9a****", 10); map.put("*****thor_vert9b****", 10); map.put("*****thor_vert10a****", 10); map.put("*****thor_vert10b****", 10); map.put("*****thor_vert11a****", 10); map.put("*****thor_vert11b****", 10); map.put("*****thor_vert12a****", 10); map.put("*****thor_vert12b****", 10); map.put("*****lum_vert1a****", 10); map.put("*****lum_vert1b****", 10); map.put("*****lum_vert2a****", 10); map.put("*****lum_vert2b****", 10); map.put("*****lum_vert3a****", 10); map.put("*****lum_vert3b****", 10); map.put("*****lum_vert4a****", 10); map.put("*****lum_vert4b****", 10); map.put("*****lum_vert5a****", 10); map.put("*****lum_vert5b****", 10); map.put("*****sacrum****", 20); map.put("*****sacrum_cart****", 30); map.put("***RRIB1-Cartilage", 30); map.put("***RRIB2-Cartilage", 30); map.put("***RRIB3-Cartilage", 30); map.put("***RRIB4-Cartilage", 30); map.put("***RRIB5-Cartilage", 30); map.put("***RRIB6-Cartilage", 30); map.put("***RRIB7-Cartilage", 30); map.put("***RRIB8-Cartilage", 30); map.put("***RRIB9-Cartilage", 30); map.put("***Right-Sternum-Cartilage", 30); map.put("***RRIB1", 10); map.put("***RRIB2", 10); map.put("***RRIB3", 10); map.put("***RRIB4", 10); map.put("***RRIB5", 10); map.put("***RRIB6", 10); map.put("***RRIB7", 10); map.put("***RRIB8", 10); map.put("***RRIB9", 10); map.put("***RRIB10", 10); map.put("***RRIB11", 10); map.put("***RRIB12", 10); map.put("***LRIB1-Cartilage", 30); map.put("***LRIB2-Cartilage", 30); map.put("***LRIB3-Cartilage", 30); map.put("***LRIB4-Cartilage", 30); map.put("***LRIB5-Cartilage", 30); map.put("***LRIB6-Cartilage", 30); map.put("***LRIB7-Cartilage", 30); map.put("***LRIB8-Cartilage", 30); map.put("***LRIB9-Cartilage", 30); map.put("***Left-Sternum-Cartilage", 30); map.put("***LRIB1", 10); map.put("***LRIB2", 10); map.put("***LRIB3", 10); map.put("***LRIB4", 10); map.put("***LRIB5", 10); map.put("***LRIB6", 10); map.put("***LRIB7", 10); map.put("***LRIB8", 10); map.put("***LRIB9", 10); map.put("***LRIB10", 10); map.put("***LRIB11", 10); map.put("***LRIB12", 10); map.put("**RightHumerus", 10); map.put("**RightRadius", 10); map.put("**RightUlna", 10); map.put("**RightCapitate", 10); map.put("**RightHamate", 10); map.put("**RightLunate", 10); map.put("**RightMetacarpal", 10); map.put("**RightMetacarpal", 10); map.put("**RightMetacarpal", 10); map.put("**RightMetacarpal", 10); map.put("**RightMetacarpal", 10); map.put("**RightPisiform", 10); map.put("**RightScaphoid", 10); map.put("**RightTrapezium", 10); map.put("**RightTriquetrum", 10); map.put("**RightTrapezoid", 10); map.put("**RightFinger1", 10); map.put("**RightFinger2", 10); map.put("**RightFinger3", 10); map.put("**RightFinger4", 10); map.put("**RightFinger5", 10); map.put("**RightFinger6", 10); map.put("**RightFinger7", 10); map.put("**RightFinger8", 10); map.put("**RightFinger9", 10); map.put("**RightFinger10", 10); map.put("**RightFinger11", 10); map.put("**RightFinger12", 10); map.put("**RightFinger13", 10); map.put("**RightFinger14", 10); map.put("**LeftHumerus", 10); map.put("**LeftRadius", 10); map.put("**LeftUlna", 10); map.put("**LeftCapitate", 10); map.put("**LeftHamate", 10); map.put("**LeftLunate", 10); map.put("**LeftMetacarpal", 10); map.put("**LeftMetacarpal", 10); map.put("**LeftMetacarpal", 10); map.put("**LeftMetacarpal", 10); map.put("**LeftMetacarpal", 10); map.put("**LeftPisiform", 10); map.put("**LeftScaphoid", 10); map.put("**LeftTrapezium", 10); map.put("**LeftTriquetrum", 10); map.put("**LeftTrapezoid", 10); map.put("**LeftFinger1", 10); map.put("**LeftFinger2", 10); map.put("**LeftFinger3", 10); map.put("**LeftFinger4", 10); map.put("**LeftFinger5", 10); map.put("**LeftFinger6", 10); map.put("**LeftFinger7", 10); map.put("**LeftFinger8", 10); map.put("**LeftFinger9", 10); map.put("**LeftFinger10", 10); map.put("**LeftFinger11", 10); map.put("**LeftFinger12", 10); map.put("**LeftFinger13", 10); map.put("**LeftFinger14", 10); map.put("**RightFemur", 10); map.put("**RightTibia", 10); map.put("**RightFibula", 10); map.put("**RightPatella", 10); map.put("**RightTalus", 10); map.put("**RightCalcaneus", 10); map.put("**RightCuboid", 10); map.put("**Right_inter_cuneiform", 10); map.put("**Right_lat_cuneiform", 10); map.put("**Right_med_cuneiform", 10); map.put("**RightTarsal", 10); map.put("**RightTarsal", 10); map.put("**RightTarsal", 10); map.put("**RightTarsal", 10); map.put("**RightTarsal", 10); map.put("**RightNavicular", 10); map.put("RightToe1", 10); map.put("RightToe2", 10); map.put("RightToe3", 10); map.put("RightToe4", 10); map.put("RightToe5", 10); map.put("RightToe6", 10); map.put("RightToe7", 10); map.put("RightToe8", 10); map.put("RightToe9", 10); map.put("RightToe10", 10); map.put("RightToe11", 10); map.put("RightToe12", 10); map.put("RightToe13", 10); map.put("RightToe14", 10); map.put("*LeftFemur", 10); map.put("**LeftTibia", 10); map.put("**LeftFibula", 10); map.put("**LeftPatella", 10); map.put("**LeftTalus", 10); map.put("**LeftCalcaneus", 10); map.put("**LeftCuboid", 10); map.put("**Left_inter_cuneiform", 10); map.put("**Left_lat_cuneiform", 10); map.put("**Left_med_cuneiform", 10); map.put("**LeftTarsal", 10); map.put("**LeftTarsal", 10); map.put("**LeftTarsal", 10); map.put("**LeftTarsal", 10); map.put("**LeftTarsal", 10); map.put("**LeftNavicular", 10); map.put("LeftToe1", 10); map.put("LeftToe2", 10); map.put("LeftToe3", 10); map.put("LeftToe4", 10); map.put("LeftToe5", 10); map.put("LeftToe6", 10); map.put("LeftToe7", 10); map.put("LeftToe8", 10); map.put("LeftToe9", 10); map.put("LeftToe10", 10); map.put("LeftToe11", 10); map.put("LeftToe12", 10); map.put("LeftToe13", 10); map.put("LeftToe14", 10); map.put("***RIGHT_COLLARBONE***", 10); map.put("***RIGHT_SCAPULA***", 10); map.put("****LEFT_COLLARBONE****", 10); map.put("****LEFT_SCAPULA****", 10); map.put("****skull_face1****", 10); map.put("****skull_face2****", 10); map.put("****skull1****", 10); map.put("****skull2****", 10); map.put("****skull3****", 10); map.put("****skull4****", 10); map.put("****skull5****", 10); map.put("****jaw****", 10); map.put("****nasal_passage1****", 20); map.put("****nasal_passage2****", 20); map.put("****brain****", 50); map.put("****cerebellum****", 50); map.put("****brain_stem****", 50); if (!maleGender){ if (!supine) { map.put("****RBREAST-Prone*****", 0); map.put("****LBREAST-Prone*****", 0); } else { map.put("****RBREAST-Supine*****", 0); map.put("****LBREAST-Supine*****", 0); } } map.put("*****RHIP*****", 10); map.put("*****RPELVIS1*****", 10); map.put("*****RPELVIS2*****", 10); map.put("*****RHIPC*****", 10); map.put("*****RPELVIS1C*****", 10); map.put("*****RPELVIS2C*****", 10); map.put("*****LHIP*****", 10); map.put("*****LPELVIS1*****", 10); map.put("*****LPELVIS2*****", 10); map.put("*****LHIPC*****", 10); map.put("*****LPELVIS1C*****", 10); map.put("*****LPELVIS2C*****", 10); map.put("*****R_URETER*****", 10); map.put("*****L_URETER*****", 10); map.put("*****BLADDER*****", 10); map.put("*****R_VAS_DEF*****", 10); map.put("*****L_VAS_DEF*****", 10); if (maleGender) { map.put("*****SEMINAL_VES*****", 20); map.put("*****PROSTATE*****", 20); map.put("*****URETHRA*****", 20); map.put("*****R_TEST*****", 20); map.put("*****L_TEST*****", 20); map.put("*****PENIS*****", 0); } else { map.put("****UTERUS*****", 20); map.put("****RIGHT_OVARY*****", 20); map.put("****RIGHT_OVARY2*****", 20); map.put("****R_FL_TUBE*****", 20); map.put("****LEFT_OVARY*****", 20); map.put("****LEFT_OVARY2*****", 20); map.put("****L_FL_TUBE*****", 20); map.put("****VAGINA1*****", 20); map.put("****VAGINA2*****", 20); } map.put("*****ASC_LARGE_INTEST*****", 20); map.put("*****TRANS_LARGE_INTEST*****", 20); map.put("*****DESC_LARGE_INTEST*****", 20); map.put("*****RECTUM*****", 20); map.put("*****ASC_LARGE_INTEST_AIR*****", 50); map.put("*****TRANS_LARGE_INTEST_AIR*****", 50); map.put("*****DESC_LARGE_INTEST_AIR*****", 50); map.put("*****RECTUM_AIR*****", 50); map.put("****small_intest_0****", 20); map.put("****small_intest_1****", 20); map.put("****small_intest_2****", 20); map.put("****small_intest_3****", 20); map.put("****small_intest_4****", 20); map.put("****small_intest_5****", 20); map.put("****small_intest_6****", 20); map.put("****small_intest_7****", 20); map.put("****small_intest_8****", 20); map.put("****small_intest_9****", 20); map.put("****small_intest_10****", 20); map.put("****small_intest_11****", 20); map.put("****small_intest_12****", 20); map.put("****small_intest_13****", 20); map.put("****small_intest_14****", 20); map.put("****small_intest_15****", 20); map.put("****small_intest_16****", 20); map.put("****small_intest_17****", 20); map.put("****small_intest_18****", 20); map.put("****small_intest_19****", 20); map.put("****small_intest_20****", 20); map.put("****small_intest_21****", 20); map.put("****small_intest_22****", 20); map.put("****small_intest_23****", 20); map.put("****small_intest_24****", 20); map.put("****small_intest_25****", 20); map.put("****small_intest_26****", 20); map.put("****small_intest_27****", 20); map.put("****small_intest_28****", 20); map.put("****small_intest_29****", 20); map.put("****small_intest_30****", 20); map.put("****small_intest_31****", 20); map.put("****small_intest_32****", 20); map.put("****small_intest_33****", 20); map.put("****small_intest_34****", 20); map.put("****small_intest_35****", 20); map.put("****small_intest_36****", 20); map.put("****small_intest_37****", 20); map.put("****small_intest_38****", 20); map.put("****small_intest_39****", 20); map.put("****small_intest_40****", 20); map.put("****small_intest_41****", 20); map.put("****small_intest_42****", 20); map.put("****small_intest_air_0****", 50); map.put("****small_intest_air_1****", 50); map.put("****small_intest_air_2****", 50); map.put("****small_intest_air_3****", 50); map.put("****small_intest_air_4****", 50); map.put("****small_intest_air_5****", 50); map.put("****small_intest_air_6****", 50); map.put("****small_intest_air_7****", 50); map.put("****small_intest_air_8****", 50); map.put("****small_intest_air_9****", 50); map.put("****small_intest_air_10****", 50); map.put("****small_intest_air_11****", 50); map.put("****small_intest_air_12****", 50); map.put("****small_intest_air_13****", 50); map.put("****small_intest_air_14****", 50); map.put("****small_intest_air_15****", 50); map.put("****small_intest_air_16****", 50); map.put("****small_intest_air_17****", 50); map.put("****small_intest_air_18****", 50); map.put("****small_intest_air_19****", 50); map.put("****small_intest_air_20****", 50); map.put("****small_intest_air_21****", 50); map.put("****small_intest_air_22****", 50); map.put("****small_intest_air_23****", 50); map.put("****small_intest_air_24****", 50); map.put("****small_intest_air_25****", 50); map.put("****small_intest_air_26****", 50); map.put("****small_intest_air_27****", 50); map.put("****small_intest_air_28****", 50); map.put("****small_intest_air_29****", 50); map.put("****small_intest_air_30****", 50); map.put("****small_intest_air_31****", 50); map.put("****small_intest_air_32****", 50); map.put("****small_intest_air_33****", 50); map.put("****small_intest_air_34****", 50); map.put("****small_intest_air_35****", 50); map.put("****small_intest_air_36****", 50); map.put("****small_intest_air_37****", 50); map.put("****small_intest_air_38****", 50); map.put("****small_intest_air_39****", 50); map.put("****small_intest_air_40****", 50); map.put("****small_intest_air_41****", 50); map.put("****small_intest_air_42****", 50); map.put("*****AORTA*****", 1050); map.put("*****Artery1*****", 1150); map.put("*****Artery2*****", 1150); map.put("*****Artery3*****", 1150); map.put("*****Artery4*****", 1150); map.put("*****Artery5*****", 1150); map.put("*****Artery6*****", 1150); map.put("*****Artery7*****", 1150); map.put("*****Artery8*****", 1150); map.put("*****Artery9*****", 1150); map.put("*****Artery10*****", 1150); map.put("*****Artery11*****", 1150); map.put("*****Artery12*****", 1150); map.put("*****Artery13*****", 1150); map.put("*****L_KIDNEY_ART1*****", 150); map.put("*****L_KIDNEY_ART2*****", 150); map.put("*****R_KIDNEY_ART1*****", 150); map.put("*****R_KIDNEY_ART2*****", 150); map.put("*****INFERIOR_VENA_CAVA*****", 1040); map.put("*****VEIN*****", 1150); map.put("*****VEIN*****", 1150); map.put("*****VEIN*****", 1100); map.put("*****VEIN*****", 1100); map.put("*****VEIN*****", 1100); map.put("*****VEIN*****", 1100); map.put("*****VEIN*****", 1100); map.put("*****VEIN*****", 1100); map.put("*****VEIN*****", 1100); map.put("*****VEIN*****", 1100); map.put("*****VEIN*****", 1100); map.put("*****VEIN*****", 1100); map.put("*****VEIN*****", 1100); map.put("*****LIVER_VEINS*****", 100); map.put("*****LIVER_VEINS*****", 100); map.put("*****LIVER_VEINS*****", 100); map.put("*****LIVER_VEINS*****", 100); map.put("*****L_KIDNEY_VEIN*****",100); map.put("*****R_KIDNEY_VEIN*****", 100); map.put("*****PREAORTIC_NODE*****", 1100); map.put("*****COMMON_ILLIAC_NODE1*****", 100); map.put("*****COMMON_ILLIAC_NODE2*****", 100); map.put("*****COMMON_ILLIAC_NODE3*****", 100); map.put("*****COMMON_ILLIAC_NODE4*****", 100); map.put("*****RIGHT_EXT_ILLIAC_NODE1*****", 100); map.put("*****RIGHT_EXT_ILLIAC_NODE2*****", 100); map.put("*****RIGHT_EXT_ILLIAC_NODE3*****", 100); map.put("*****RIGHT_EXT_ILLIAC_NODE4*****", 100); map.put("*****RIGHT_EXT_ILLIAC_NODE5*****", 100); map.put("*****RIGHT_HYPOGASTRIC_NODE*****", 100); map.put("*****RIGHT_SUPERF_SUBINGUINAL_NODE1*****", 100); map.put("*****RIGHT_SUPERF_SUBINGUINAL_NODE2*****", 100); map.put("*****RIGHT_SUPERF_SUBINGUINAL_NODE3*****", 100); map.put("*****RIGHT_SUPERF_SUBINGUINAL_NODE4*****", 100); map.put("*****RIGHT_SUPERF_SUBINGUINAL_NODE5*****", 100); map.put("*****RIGHT_SUPERF_SUBINGUINAL_NODE6*****", 100); map.put("*****RIGHT_SUPERF_SUBINGUINAL_NODE7*****", 100); map.put("*****LEFT_EXT_ILLIAC_NODE1*****", 100); map.put("*****LEFT_EXT_ILLIAC_NODE2*****", 100); map.put("*****LEFT_EXT_ILLIAC_NODE3*****", 100); map.put("*****LEFT_EXT_ILLIAC_NODE4*****", 100); map.put("*****LEFT_EXT_ILLIAC_NODE5*****", 100); map.put("*****LEFT_HYPOGASTRIC_NODE*****", 100); map.put("*****LEFT_SUPERF_SUBINGUINAL_NODE1*****", 100); map.put("*****LEFT_SUPERF_SUBINGUINAL_NODE1*****", 100); map.put("*****LEFT_SUPERF_SUBINGUINAL_NODE1*****", 100); map.put("*****LEFT_SUPERF_SUBINGUINAL_NODE1*****", 100); map.put("*****LEFT_SUPERF_SUBINGUINAL_NODE1*****", 100); map.put("*****LEFT_SUPERF_SUBINGUINAL_NODE1*****", 100); map.put("*****LEFT_SUPERF_SUBINGUINAL_NODE1*****", 100); map.put("****Airway-1*********", 70); map.put("*****PULMONARY_ART1*****", 1040); map.put("*****PULMONARY_VEIN1*****", 1040); if (renderMarrow) { map.put("**RRIB1_MARROW**", 80); map.put("**RRIB2_MARROW**", 80); map.put("**RRIB3_MARROW**", 80); map.put("**RRIB4_MARROW**", 80); map.put("**RRIB5_MARROW**", 80); map.put("**RRIB6_MARROW**", 80); map.put("**RRIB7_MARROW**", 80); map.put("**RRIB8_MARROW**", 80); map.put("**RRIB9_MARROW**", 80); map.put("**RRIB10_MARROW**", 80); map.put("**RRIB11_MARROW**", 80); map.put("**RRIB12_MARROW**", 80); map.put("**LRIB1_MARROW**", 80); map.put("**LRIB2_MARROW**", 80); map.put("**LRIB3_MARROW**", 80); map.put("**LRIB4_MARROW**", 80); map.put("**LRIB5_MARROW**", 80); map.put("**LRIB6_MARROW**", 80); map.put("**LRIB7_MARROW**", 80); map.put("**LRIB8_MARROW**", 80); map.put("**LRIB9_MARROW**", 80); map.put("**LRIB10_MARROW**", 80); map.put("**LRIB11_MARROW**", 80); map.put("**LRIB12_MARROW**", 80); map.put("**BACKBONE1_MARROW**", 80); map.put("**BACKBONE2_MARROW**", 80); map.put("**BACKBONE3_MARROW**", 80); map.put("**BACKBONE4_MARROW**", 80); map.put("**BACKBONE5_MARROW**", 80); map.put("**BACKBONE6_MARROW**", 80); map.put("**BACKBONE7_MARROW**", 80); map.put("**BACKBONE8_MARROW**", 80); map.put("**BACKBONE9_MARROW**", 80); map.put("**BACKBONE10_MARROW**", 80); map.put("**BACKBONE11_MARROW**", 80); map.put("**BACKBONE12_MARROW**", 80); map.put("**BACKBONE13_MARROW**", 80); map.put("**BACKBONE14_MARROW**", 80); map.put("**BACKBONE15_MARROW**", 80); map.put("**BACKBONE16_MARROW**", 80); map.put("**BACKBONE17_MARROW**", 80); map.put("**BACKBONE18_MARROW**", 80); map.put("**BACKBONE19_MARROW**", 80); map.put("**BACKBONE20_MARROW**", 80); map.put("**BACKBONE21_MARROW**", 80); map.put("**BACKBONE22_MARROW**", 80); map.put("**BACKBONE23_MARROW**", 80); map.put("**BACKBONE24_MARROW**", 80); map.put("**BACKBONE25_MARROW**", 80); map.put("**BACKBONE26_MARROW**", 80); map.put("**BACKBONE27_MARROW**", 80); map.put("**BACKBONE28_MARROW**", 80); map.put("**BACKBONE29_MARROW**", 80); map.put("**BACKBONE30_MARROW**", 80); map.put("**BACKBONE31_MARROW**", 80); map.put("**BACKBONE32_MARROW**", 80); map.put("**BACKBONE33_MARROW**", 80); map.put("**BACKBONE34_MARROW**", 80); map.put("**BACKBONE35_MARROW**", 80); map.put("**BACKBONE36_MARROW**", 80); map.put("**BACKBONE37_MARROW**", 80); map.put("**BACKBONE38_MARROW**", 80); map.put("**BACKBONE39_MARROW**", 80); map.put("**BACKBONE40_MARROW**", 80); map.put("**BACKBONE41_MARROW**", 80); map.put("**BACKBONE42_MARROW**", 80); map.put("**BACKBONE43_MARROW**", 80); map.put("**BACKBONE44_MARROW**", 80); map.put("**BACKBONE45_MARROW**", 80); map.put("**BACKBONE46_MARROW**", 80); map.put("**BACKBONE47_MARROW**", 80); map.put("**BACKBONE48_MARROW**", 80); map.put("**BACKBONE49_MARROW**", 80); map.put("**BACKBONE50_MARROW**", 80); map.put("**BACKBONE51_MARROW**", 80); map.put("**BACKBONE52_MARROW**", 80); map.put("**BACKBONE53_MARROW**", 80); map.put("**BACKBONE54_MARROW**", 80); map.put("**BACKBONE55_MARROW**", 80); map.put("**BACKBONE56_MARROW**", 80); map.put("**BACKBONE57_MARROW**", 80); map.put("**BACKBONE58_MARROW**", 80); map.put("**STERN_MARROW**", 80); map.put("**RSCAP_MARROW**", 80); map.put("**RCOLLAR_MARROW**", 80); map.put("**LSCAP_MARROW**", 80); map.put("**LCOLLAR_MARROW**", 80); if (renderArmMarrow){ map.put("**RHUMERUS_MARROW**", 80); map.put("**R_RADIUS_MARROW**", 80); map.put("**R_ULNA_MARROW**", 80); map.put("**LHUMERUS_MARROW**", 80); map.put("**L_RADIUS_MARROW**", 80); map.put("**L_ULNA_MARROW**", 80); map.put("**R_HAND_MARROW0", 80); map.put("**R_HAND_MARROW1", 80); map.put("**R_HAND_MARROW2", 80); map.put("**R_HAND_MARROW3", 80); map.put("**R_HAND_MARROW4", 80); map.put("**R_HAND_MARROW5", 80); map.put("**R_HAND_MARROW6", 80); map.put("**R_HAND_MARROW7", 80); map.put("**R_HAND_MARROW8", 80); map.put("**R_HAND_MARROW9", 80); map.put("**R_HAND_MARROW10", 80); map.put("**R_HAND_MARROW11", 80); map.put("**R_HAND_MARROW12", 80); map.put("**R_HAND_MARROW13", 80); map.put("**R_HAND_MARROW14", 80); map.put("**R_HAND_MARROW15", 80); map.put("**R_HAND_MARROW16", 80); map.put("**R_HAND_MARROW17", 80); map.put("**R_HAND_MARROW18", 80); map.put("**R_HAND_MARROW19", 80); map.put("**R_HAND_MARROW20", 80); map.put("**R_HAND_MARROW21", 80); map.put("**R_HAND_MARROW22", 80); map.put("**R_HAND_MARROW23", 80); map.put("**R_HAND_MARROW24", 80); map.put("**R_HAND_MARROW25", 80); map.put("**R_HAND_MARROW26", 80); map.put("**L_HAND_MARROW0", 80); map.put("**L_HAND_MARROW1", 80); map.put("**L_HAND_MARROW2", 80); map.put("**L_HAND_MARROW3", 80); map.put("**L_HAND_MARROW4", 80); map.put("**L_HAND_MARROW5", 80); map.put("**L_HAND_MARROW6", 80); map.put("**L_HAND_MARROW7", 80); map.put("**L_HAND_MARROW8", 80); map.put("**L_HAND_MARROW9", 80); map.put("**L_HAND_MARROW10", 80); map.put("**L_HAND_MARROW11", 80); map.put("**L_HAND_MARROW12", 80); map.put("**L_HAND_MARROW13", 80); map.put("**L_HAND_MARROW14", 80); map.put("**L_HAND_MARROW15", 80); map.put("**L_HAND_MARROW16", 80); map.put("**L_HAND_MARROW17", 80); map.put("**L_HAND_MARROW18", 80); map.put("**L_HAND_MARROW19", 80); map.put("**L_HAND_MARROW20", 80); map.put("**L_HAND_MARROW21", 80); map.put("**L_HAND_MARROW22", 80); map.put("**L_HAND_MARROW23", 80); map.put("**L_HAND_MARROW24", 80); map.put("**L_HAND_MARROW25", 80); map.put("**L_HAND_MARROW26", 80); } map.put("**R_FOOT_MARROW0", 80); map.put("**R_FOOT_MARROW1", 80); map.put("**R_FOOT_MARROW2", 80); map.put("**R_FOOT_MARROW3", 80); map.put("**R_FOOT_MARROW4", 80); map.put("**R_FOOT_MARROW5", 80); map.put("**R_FOOT_MARROW6", 80); map.put("**R_FOOT_MARROW7", 80); map.put("**R_FOOT_MARROW8", 80); map.put("**R_FOOT_MARROW9", 80); map.put("**R_FOOT_MARROW10", 80); map.put("**R_FOOT_MARROW11", 80); map.put("**R_FOOT_MARROW12", 80); map.put("**R_FOOT_MARROW13", 80); map.put("**R_FOOT_MARROW14", 80); map.put("**R_FOOT_MARROW15", 80); map.put("**R_FOOT_MARROW16", 80); map.put("**R_FOOT_MARROW17", 80); map.put("**R_FOOT_MARROW18", 80); map.put("**R_FOOT_MARROW19", 80); map.put("**R_FOOT_MARROW20", 80); map.put("**R_FOOT_MARROW21", 80); map.put("**R_FOOT_MARROW22", 80); map.put("**R_FOOT_MARROW23", 80); map.put("**R_FOOT_MARROW24", 80); map.put("**R_FOOT_MARROW25", 80); map.put("**L_FOOT_MARROW0", 80); map.put("**L_FOOT_MARROW1", 80); map.put("**L_FOOT_MARROW2", 80); map.put("**L_FOOT_MARROW3", 80); map.put("**L_FOOT_MARROW4", 80); map.put("**L_FOOT_MARROW5", 80); map.put("**L_FOOT_MARROW6", 80); map.put("**L_FOOT_MARROW7", 80); map.put("**L_FOOT_MARROW8", 80); map.put("**L_FOOT_MARROW9", 80); map.put("**L_FOOT_MARROW10", 80); map.put("**L_FOOT_MARROW11", 80); map.put("**L_FOOT_MARROW12", 80); map.put("**L_FOOT_MARROW13", 80); map.put("**L_FOOT_MARROW14", 80); map.put("**L_FOOT_MARROW15", 80); map.put("**L_FOOT_MARROW16", 80); map.put("**L_FOOT_MARROW17", 80); map.put("**L_FOOT_MARROW18", 80); map.put("**L_FOOT_MARROW19", 80); map.put("**L_FOOT_MARROW20", 80); map.put("**L_FOOT_MARROW21", 80); map.put("**L_FOOT_MARROW22", 80); map.put("**L_FOOT_MARROW23", 80); map.put("**L_FOOT_MARROW24", 80); map.put("**L_FOOT_MARROW25", 80); map.put("**R_FEMUR_MARROW**", 80); map.put("**R_TIBIA_MARROW**", 80); map.put("**R_FIBULA_MARROW**", 80); map.put("**R_PATELLA_MARROW**", 80); map.put("**L_FEMUR_MARROW**", 80); map.put("**L_TIBIA_MARROW**", 80); map.put("**L_FIBULA_MARROW**", 80); map.put("**L_PATELLA_MARROW**", 80); } // heart map.put("****Right-atria-myo*********", 1002); map.put("****Right-ventricle-myo*********", 1002); map.put("****Right-atria-chamber****", 1049); map.put("****Right-ventricle-chamber****", 1055); map.put("****Left-atria-myo**********", 1002); map.put("****Left-ventricle-myo**********", 1001); map.put("****Left-atria-chamber*****", 1006); map.put("****Left-ventricle-chamber1*****", 1100); map.put("****Left-ventricle-chamber2*****", 1101); map.put("****Left-ventricle-chamber3*****", 1102); map.put("****Left-ventricle-chamber4*****", 1104); map.put("****Heartwall*********", 1000); //the coronaries have a much higher priority than the chambers map.put("/***RCA1***/", 1112); map.put("/***RCA2***/", 1112); map.put("/***LCA1***/", 1112); map.put("/***LCA2***/", 1112); map.put("/***LCA3***/", 1112); map.put("/***LCA4***/", 1112); map.put("/***LCA5***/", 1112); map.put("/***LCA6***/", 1112); map.put("/***LCA7***/", 1112); map.put("/***LCA8***/", 1112); map.put("/***LCA9***/", 1112); map.put("/***LCA10***/", 1112); map.put("Heart Lesion", 1113); map.put("Heart Catheter", 1200); return map; } /** * The lookup table for materials according to the spline names. * @return the lut */ public static HashMap <String, String> getSplineNameMaterialNameLUT(){ HashMap<String, String> map = new HashMap<String, String>(); map.put("*****BODY******", "Body (water)"); map.put("**RightArm", "Body (water)"); map.put("**LeftArm", "Body (water)"); map.put("**RightLeg", "Body (water)"); map.put("**LeftLeg", "Body (water)"); map.put("*****RLUNG******", "Lung"); map.put("*****LLUNG******", "Lung"); map.put("*****LIVER******", "Liver"); map.put("****Gall-Bladder****", "Intestine"); map.put("****Left-diaphragm****", "Muscle"); map.put("*****KIDNEY1******", "Kidney"); map.put("*****KIDNEY2******", "Kidney"); map.put("*****STOMACH******", "Intestine"); map.put("*****SPLEEN******", "Spleen"); map.put("*****STERNUM******", "Rib Bone"); map.put("*****thor_cartilage1****", "Cartilage"); map.put("*****thor_cartilage2****", "Cartilage"); map.put("*****thor_cartilage3****", "Cartilage"); map.put("*****thor_cartilage4****", "Cartilage"); map.put("*****thor_cartilage5****", "Cartilage"); map.put("*****thor_cartilage6****", "Cartilage"); map.put("*****thor_cartilage7****", "Cartilage"); map.put("*****thor_cartilage8****", "Cartilage"); map.put("*****thor_cartilage9****", "Cartilage"); map.put("*****thor_cartilage10****", "Cartilage"); map.put("*****thor_cartilage11****", "Cartilage"); map.put("*****thor_cartilage12****", "Cartilage"); map.put("*****lumbar_cartilage1****", "Cartilage"); map.put("*****lumbar_cartilage2****", "Cartilage"); map.put("*****lumbar_cartilage3****", "Cartilage"); map.put("*****lumbar_cartilage4****", "Cartilage"); map.put("*****lumbar_cartilage5****", "Cartilage"); map.put("*****lumbar_cartilage6****", "Cartilage"); map.put("****cerv_vert1a****", "Spine Bone"); map.put("****cerv_vert1b****", "Spine Bone"); map.put("****cerv_vert1c****", "Spine Bone"); map.put("****cerv_vert1d****", "Spine Bone"); map.put("****cerv_vert1e****", "Spine Bone"); map.put("****cerv_vert1f****", "Spine Bone"); map.put("*****cerv_vert2a****", "Spine Bone"); map.put("*****cerv_vert2b****", "Spine Bone"); map.put("*****cerv_vert2c****", "Spine Bone"); map.put("*****cerv_vert3a****", "Spine Bone"); map.put("*****cerv_vert3b****", "Spine Bone"); map.put("*****cerv_vert3c****", "Spine Bone"); map.put("*****cerv_vert4a****", "Spine Bone"); map.put("*****cerv_vert4b****", "Spine Bone"); map.put("*****cerv_vert4c****", "Spine Bone"); map.put("*****cerv_vert5a****", "Spine Bone"); map.put("*****cerv_vert5b****", "Spine Bone"); map.put("*****cerv_vert5c****", "Spine Bone"); map.put("*****cerv_vert6a****", "Spine Bone"); map.put("*****cerv_vert6b****", "Spine Bone"); map.put("*****cerv_vert6c****", "Spine Bone"); map.put("*****cerv_vert7a****", "Spine Bone"); map.put("*****cerv_vert7b****", "Spine Bone"); map.put("*****cerv_vert7c****", "Spine Bone"); map.put("*****thor_vert1a****", "Spine Bone"); map.put("*****thor_vert1b****", "Spine Bone"); map.put("*****thor_vert2a****", "Spine Bone"); map.put("*****thor_vert2b****", "Spine Bone"); map.put("*****thor_vert3a****", "Spine Bone"); map.put("*****thor_vert3b****", "Spine Bone"); map.put("*****thor_vert4a****", "Spine Bone"); map.put("*****thor_vert4b****", "Spine Bone"); map.put("*****thor_vert5a****", "Spine Bone"); map.put("*****thor_vert5b****", "Spine Bone"); map.put("*****thor_vert6a****", "Spine Bone"); map.put("*****thor_vert6b****", "Spine Bone"); map.put("*****thor_vert7a****", "Spine Bone"); map.put("*****thor_vert7b****", "Spine Bone"); map.put("*****thor_vert8a****", "Spine Bone"); map.put("*****thor_vert8b****", "Spine Bone"); map.put("*****thor_vert9a****", "Spine Bone"); map.put("*****thor_vert9b****", "Spine Bone"); map.put("*****thor_vert10a****", "Spine Bone"); map.put("*****thor_vert10b****", "Spine Bone"); map.put("*****thor_vert11a****", "Spine Bone"); map.put("*****thor_vert11b****", "Spine Bone"); map.put("*****thor_vert12a****", "Spine Bone"); map.put("*****thor_vert12b****", "Spine Bone"); map.put("*****lum_vert1a****", "Spine Bone"); map.put("*****lum_vert1b****", "Spine Bone"); map.put("*****lum_vert2a****", "Spine Bone"); map.put("*****lum_vert2b****", "Spine Bone"); map.put("*****lum_vert3a****", "Spine Bone"); map.put("*****lum_vert3b****", "Spine Bone"); map.put("*****lum_vert4a****", "Spine Bone"); map.put("*****lum_vert4b****", "Spine Bone"); map.put("*****lum_vert5a****", "Spine Bone"); map.put("*****lum_vert5b****", "Spine Bone"); map.put("*****sacrum****", "Spine Bone"); map.put("*****sacrum_cart****", "Cartilage"); map.put("***RRIB1-Cartilage", "Cartilage"); map.put("***RRIB2-Cartilage", "Cartilage"); map.put("***RRIB3-Cartilage", "Cartilage"); map.put("***RRIB4-Cartilage", "Cartilage"); map.put("***RRIB5-Cartilage", "Cartilage"); map.put("***RRIB6-Cartilage", "Cartilage"); map.put("***RRIB7-Cartilage", "Cartilage"); map.put("***RRIB8-Cartilage", "Cartilage"); map.put("***RRIB9-Cartilage", "Cartilage"); map.put("***Right-Sternum-Cartilage", "Cartilage"); map.put("***RRIB1", "Rib Bone"); map.put("***RRIB2", "Rib Bone"); map.put("***RRIB3", "Rib Bone"); map.put("***RRIB4", "Rib Bone"); map.put("***RRIB5", "Rib Bone"); map.put("***RRIB6", "Rib Bone"); map.put("***RRIB7", "Rib Bone"); map.put("***RRIB8", "Rib Bone"); map.put("***RRIB9", "Rib Bone"); map.put("***RRIB10", "Rib Bone"); map.put("***RRIB11", "Rib Bone"); map.put("***RRIB12", "Rib Bone"); map.put("***LRIB1-Cartilage", "Cartilage"); map.put("***LRIB2-Cartilage", "Cartilage"); map.put("***LRIB3-Cartilage", "Cartilage"); map.put("***LRIB4-Cartilage", "Cartilage"); map.put("***LRIB5-Cartilage", "Cartilage"); map.put("***LRIB6-Cartilage", "Cartilage"); map.put("***LRIB7-Cartilage", "Cartilage"); map.put("***LRIB8-Cartilage", "Cartilage"); map.put("***LRIB9-Cartilage", "Cartilage"); map.put("***Left-Sternum-Cartilage", "Cartilage"); map.put("***LRIB1", "Rib Bone"); map.put("***LRIB2", "Rib Bone"); map.put("***LRIB3", "Rib Bone"); map.put("***LRIB4", "Rib Bone"); map.put("***LRIB5", "Rib Bone"); map.put("***LRIB6", "Rib Bone"); map.put("***LRIB7", "Rib Bone"); map.put("***LRIB8", "Rib Bone"); map.put("***LRIB9", "Rib Bone"); map.put("***LRIB10", "Rib Bone"); map.put("***LRIB11", "Rib Bone"); map.put("***LRIB12", "Rib Bone"); // bones right arm map.put("**RightHumerus", "Bone"); map.put("**RightRadius", "Bone"); map.put("**RightUlna", "Bone"); map.put("**RightCapitate", "Bone"); map.put("**RightHamate", "Bone"); map.put("**RightLunate", "Bone"); map.put("**RightMetacarpal", "Bone"); map.put("**RightMetacarpal", "Bone"); map.put("**RightMetacarpal", "Bone"); map.put("**RightMetacarpal", "Bone"); map.put("**RightMetacarpal", "Bone"); map.put("**RightPisiform", "Bone"); map.put("**RightScaphoid", "Bone"); map.put("**RightTrapezium", "Bone"); map.put("**RightTriquetrum", "Bone"); map.put("**RightTrapezoid", "Bone"); map.put("**RightFinger1", "Bone"); map.put("**RightFinger2", "Bone"); map.put("**RightFinger3", "Bone"); map.put("**RightFinger4", "Bone"); map.put("**RightFinger5", "Bone"); map.put("**RightFinger6", "Bone"); map.put("**RightFinger7", "Bone"); map.put("**RightFinger8", "Bone"); map.put("**RightFinger9", "Bone"); map.put("**RightFinger10", "Bone"); map.put("**RightFinger11", "Bone"); map.put("**RightFinger12", "Bone"); map.put("**RightFinger13", "Bone"); map.put("**RightFinger14", "Bone"); // bones left arm map.put("**LeftHumerus", "Bone"); map.put("**LeftRadius", "Bone"); map.put("**LeftUlna", "Bone"); map.put("**LeftCapitate", "Bone"); map.put("**LeftHamate", "Bone"); map.put("**LeftLunate", "Bone"); map.put("**LeftMetacarpal", "Bone"); map.put("**LeftMetacarpal", "Bone"); map.put("**LeftMetacarpal", "Bone"); map.put("**LeftMetacarpal", "Bone"); map.put("**LeftMetacarpal", "Bone"); map.put("**LeftPisiform", "Bone"); map.put("**LeftScaphoid", "Bone"); map.put("**LeftTrapezium", "Bone"); map.put("**LeftTriquetrum", "Bone"); map.put("**LeftTrapezoid", "Bone"); map.put("**LeftFinger1", "Bone"); map.put("**LeftFinger2", "Bone"); map.put("**LeftFinger3", "Bone"); map.put("**LeftFinger4", "Bone"); map.put("**LeftFinger5", "Bone"); map.put("**LeftFinger6", "Bone"); map.put("**LeftFinger7", "Bone"); map.put("**LeftFinger8", "Bone"); map.put("**LeftFinger9", "Bone"); map.put("**LeftFinger10", "Bone"); map.put("**LeftFinger11", "Bone"); map.put("**LeftFinger12", "Bone"); map.put("**LeftFinger13", "Bone"); map.put("**LeftFinger14", "Bone"); map.put("**RightFemur", "Bone"); map.put("**RightTibia", "Bone"); map.put("**RightFibula", "Bone"); map.put("**RightPatella", "Bone"); map.put("**RightTalus", "Bone"); map.put("**RightCalcaneus", "Bone"); map.put("**RightCuboid", "Bone"); map.put("**Right_inter_cuneiform", "Bone"); map.put("**Right_lat_cuneiform", "Bone"); map.put("**Right_med_cuneiform", "Bone"); map.put("**RightTarsal", "Bone"); map.put("**RightTarsal", "Bone"); map.put("**RightTarsal", "Bone"); map.put("**RightTarsal", "Bone"); map.put("**RightTarsal", "Bone"); map.put("**RightNavicular", "Bone"); map.put("RightToe1", "Bone"); map.put("RightToe2", "Bone"); map.put("RightToe3", "Bone"); map.put("RightToe4", "Bone"); map.put("RightToe5", "Bone"); map.put("RightToe6", "Bone"); map.put("RightToe7", "Bone"); map.put("RightToe8", "Bone"); map.put("RightToe9", "Bone"); map.put("RightToe10", "Bone"); map.put("RightToe11", "Bone"); map.put("RightToe12", "Bone"); map.put("RightToe13", "Bone"); map.put("RightToe14", "Bone"); map.put("*LeftFemur", "Bone"); map.put("**LeftTibia", "Bone"); map.put("**LeftFibula", "Bone"); map.put("**LeftPatella", "Bone"); map.put("**LeftTalus", "Bone"); map.put("**LeftCalcaneus", "Bone"); map.put("**LeftCuboid", "Bone"); map.put("**Left_inter_cuneiform", "Bone"); map.put("**Left_lat_cuneiform", "Bone"); map.put("**Left_med_cuneiform", "Bone"); map.put("**LeftTarsal", "Bone"); map.put("**LeftTarsal", "Bone"); map.put("**LeftTarsal", "Bone"); map.put("**LeftTarsal", "Bone"); map.put("**LeftTarsal", "Bone"); map.put("**LeftNavicular", "Bone"); map.put("LeftToe1", "Bone"); map.put("LeftToe2", "Bone"); map.put("LeftToe3", "Bone"); map.put("LeftToe4", "Bone"); map.put("LeftToe5", "Bone"); map.put("LeftToe6", "Bone"); map.put("LeftToe7", "Bone"); map.put("LeftToe8", "Bone"); map.put("LeftToe9", "Bone"); map.put("LeftToe10", "Bone"); map.put("LeftToe11", "Bone"); map.put("LeftToe12", "Bone"); map.put("LeftToe13", "Bone"); map.put("LeftToe14", "Bone"); map.put("***RIGHT_COLLARBONE***", "Bone"); map.put("***RIGHT_SCAPULA***", "Bone"); map.put("****LEFT_COLLARBONE****", "Bone"); map.put("****LEFT_SCAPULA****", "Bone"); map.put("****skull_face1****", "Skull Bone"); map.put("****skull_face2****", "Skull Bone"); map.put("****skull1****", "Skull Bone"); map.put("****skull2****", "Skull Bone"); map.put("****skull3****", "Skull Bone"); map.put("****skull4****", "Skull Bone"); map.put("****skull5****", "Skull Bone"); map.put("****jaw****", "Skull Bone"); map.put("****nasal_passage1****", "Skull Bone"); map.put("****nasal_passage2****", "Skull Bone"); map.put("****brain****", "Brain"); map.put("****cerebellum****", "Brain"); map.put("****brain_stem****", "Brain"); if (!maleGender){ if (!supine) { map.put("****RBREAST-Prone*****", "Body (water)"); map.put("****LBREAST-Prone*****", "Body (water)"); } else { map.put("****RBREAST-Supine*****", "Body (water)"); map.put("****LBREAST-Supine*****", "Body (water)"); } } map.put("*****RHIP*****", "Bone"); map.put("*****RPELVIS1*****", "Bone"); map.put("*****RPELVIS2*****", "Bone"); map.put("*****RHIPC*****", "Bone"); map.put("*****RPELVIS1C*****", "Bone"); map.put("*****RPELVIS2C*****", "Bone"); map.put("*****LHIP*****", "Bone"); map.put("*****LPELVIS1*****", "Bone"); map.put("*****LPELVIS2*****", "Bone"); map.put("*****LHIPC*****", "Bone"); map.put("*****LPELVIS1C*****", "Bone"); map.put("*****LPELVIS2C*****", "Bone"); map.put("*****R_URETER*****", "Intestine"); map.put("*****L_URETER*****", "Intestine"); map.put("*****BLADDER*****", "Intestine"); map.put("*****R_VAS_DEF*****", "Intestine"); map.put("*****L_VAS_DEF*****", "Intestine"); if (maleGender) { map.put("*****SEMINAL_VES*****", "Intestine"); map.put("*****PROSTATE*****", "Intestine"); map.put("*****URETHRA*****", "Intestine"); map.put("*****R_TEST*****", "Intestine"); map.put("*****L_TEST*****", "Body (water)"); map.put("*****PENIS*****", "Body (water)"); } else { map.put("****UTERUS*****", "Lymph"); map.put("****RIGHT_OVARY*****", "Lymph"); map.put("****RIGHT_OVARY2*****", "Lymph"); map.put("****R_FL_TUBE*****", "Lymph"); map.put("****LEFT_OVARY*****", "Lymph"); map.put("****LEFT_OVARY2*****", "Lymph"); map.put("****L_FL_TUBE*****", "Lymph"); map.put("****VAGINA1*****", "Body (water)"); map.put("****VAGINA2*****", "Body (water)"); } map.put("*****ASC_LARGE_INTEST*****", "Intestine"); map.put("*****TRANS_LARGE_INTEST*****", "Intestine"); map.put("*****DESC_LARGE_INTEST*****", "Intestine"); map.put("*****RECTUM*****", "Body (water)"); map.put("*****ASC_LARGE_INTEST_AIR*****", "Air"); map.put("*****TRANS_LARGE_INTEST_AIR*****", "Air"); map.put("*****DESC_LARGE_INTEST_AIR*****", "Air"); map.put("*****RECTUM_AIR*****", "Air"); map.put("****small_intest_0****", "Intestine"); map.put("****small_intest_1****", "Intestine"); map.put("****small_intest_2****", "Intestine"); map.put("****small_intest_3****", "Intestine"); map.put("****small_intest_4****", "Intestine"); map.put("****small_intest_5****", "Intestine"); map.put("****small_intest_6****", "Intestine"); map.put("****small_intest_7****", "Intestine"); map.put("****small_intest_8****", "Intestine"); map.put("****small_intest_9****", "Intestine"); map.put("****small_intest_10****", "Intestine"); map.put("****small_intest_11****", "Intestine"); map.put("****small_intest_12****", "Intestine"); map.put("****small_intest_13****", "Intestine"); map.put("****small_intest_14****", "Intestine"); map.put("****small_intest_15****", "Intestine"); map.put("****small_intest_16****", "Intestine"); map.put("****small_intest_17****", "Intestine"); map.put("****small_intest_18****", "Intestine"); map.put("****small_intest_19****", "Intestine"); map.put("****small_intest_20****", "Intestine"); map.put("****small_intest_21****", "Intestine"); map.put("****small_intest_22****", "Intestine"); map.put("****small_intest_23****", "Intestine"); map.put("****small_intest_24****", "Intestine"); map.put("****small_intest_25****", "Intestine"); map.put("****small_intest_26****", "Intestine"); map.put("****small_intest_27****", "Intestine"); map.put("****small_intest_28****", "Intestine"); map.put("****small_intest_29****", "Intestine"); map.put("****small_intest_30****", "Intestine"); map.put("****small_intest_31****", "Intestine"); map.put("****small_intest_32****", "Intestine"); map.put("****small_intest_33****", "Intestine"); map.put("****small_intest_34****", "Intestine"); map.put("****small_intest_35****", "Intestine"); map.put("****small_intest_36****", "Intestine"); map.put("****small_intest_37****", "Intestine"); map.put("****small_intest_38****", "Intestine"); map.put("****small_intest_39****", "Intestine"); map.put("****small_intest_40****", "Intestine"); map.put("****small_intest_41****", "Intestine"); map.put("****small_intest_42****", "Intestine"); map.put("****small_intest_air_0****", "Air"); map.put("****small_intest_air_1****", "Air"); map.put("****small_intest_air_2****", "Air"); map.put("****small_intest_air_3****", "Air"); map.put("****small_intest_air_4****", "Air"); map.put("****small_intest_air_5****", "Air"); map.put("****small_intest_air_6****", "Air"); map.put("****small_intest_air_7****", "Air"); map.put("****small_intest_air_8****", "Air"); map.put("****small_intest_air_9****", "Air"); map.put("****small_intest_air_10****", "Air"); map.put("****small_intest_air_11****", "Air"); map.put("****small_intest_air_12****", "Air"); map.put("****small_intest_air_13****", "Air"); map.put("****small_intest_air_14****", "Air"); map.put("****small_intest_air_15****", "Air"); map.put("****small_intest_air_16****", "Air"); map.put("****small_intest_air_17****", "Air"); map.put("****small_intest_air_18****", "Air"); map.put("****small_intest_air_19****", "Air"); map.put("****small_intest_air_20****", "Air"); map.put("****small_intest_air_21****", "Air"); map.put("****small_intest_air_22****", "Air"); map.put("****small_intest_air_23****", "Air"); map.put("****small_intest_air_24****", "Air"); map.put("****small_intest_air_25****", "Air"); map.put("****small_intest_air_26****", "Air"); map.put("****small_intest_air_27****", "Air"); map.put("****small_intest_air_28****", "Air"); map.put("****small_intest_air_29****", "Air"); map.put("****small_intest_air_30****", "Air"); map.put("****small_intest_air_31****", "Air"); map.put("****small_intest_air_32****", "Air"); map.put("****small_intest_air_33****", "Air"); map.put("****small_intest_air_34****", "Air"); map.put("****small_intest_air_35****", "Air"); map.put("****small_intest_air_36****", "Air"); map.put("****small_intest_air_37****", "Air"); map.put("****small_intest_air_38****", "Air"); map.put("****small_intest_air_39****", "Air"); map.put("****small_intest_air_40****", "Air"); map.put("****small_intest_air_41****", "Air"); map.put("****small_intest_air_42****", "Air"); map.put("*****AORTA*****", "Blood (Aorta)"); map.put("*****Artery1*****", "Blood Artery"); map.put("*****Artery2*****", "Blood Artery"); map.put("*****Artery3*****", "Blood Artery"); map.put("*****Artery4*****", "Blood Artery"); map.put("*****Artery5*****", "Blood Artery"); map.put("*****Artery6*****", "Blood Artery"); map.put("*****Artery7*****", "Blood Artery"); map.put("*****Artery8*****", "Blood Artery"); map.put("*****Artery9*****", "Blood Artery"); map.put("*****Artery10*****", "Blood Artery"); map.put("*****Artery11*****", "Blood Artery"); map.put("*****Artery12*****", "Blood Artery"); map.put("*****Artery13*****", "Blood Artery"); map.put("*****L_KIDNEY_ART1*****", "Blood Kid Artery"); map.put("*****L_KIDNEY_ART2*****", "Blood Kid Artery"); map.put("*****R_KIDNEY_ART1*****", "Blood Kid Artery"); map.put("*****R_KIDNEY_ART2*****", "Blood Kid Artery"); map.put("*****INFERIOR_VENA_CAVA*****", "Blood Vena Cava"); map.put("*****VEIN*****", "Blood Vein"); map.put("*****VEIN*****", "Blood Vein"); map.put("*****VEIN*****", "Blood Vein"); map.put("*****VEIN*****", "Blood Vein"); map.put("*****VEIN*****", "Blood Vein"); map.put("*****VEIN*****", "Blood Vein"); map.put("*****VEIN*****", "Blood Vein"); map.put("*****VEIN*****", "Blood Vein"); map.put("*****VEIN*****", "Blood Vein"); map.put("*****VEIN*****", "Blood Vein"); map.put("*****VEIN*****", "Blood Vein"); map.put("*****VEIN*****", "Blood Vein"); map.put("*****VEIN*****", "Blood Vein"); map.put("*****LIVER_VEINS*****", "Blood Liver Vein"); map.put("*****LIVER_VEINS*****", "Blood Liver Vein"); map.put("*****LIVER_VEINS*****", "Blood Liver Vein"); map.put("*****LIVER_VEINS*****", "Blood Liver Vein"); map.put("*****L_KIDNEY_VEIN*****","Blood Kidney Vein"); map.put("*****R_KIDNEY_VEIN*****", "Blood Kidney Vein"); map.put("*****PREAORTIC_NODE*****", "Lymph"); map.put("*****COMMON_ILLIAC_NODE1*****", "Lymph"); map.put("*****COMMON_ILLIAC_NODE2*****", "Lymph"); map.put("*****COMMON_ILLIAC_NODE3*****", "Lymph"); map.put("*****COMMON_ILLIAC_NODE4*****", "Lymph"); map.put("*****RIGHT_EXT_ILLIAC_NODE1*****", "Lymph"); map.put("*****RIGHT_EXT_ILLIAC_NODE2*****", "Lymph"); map.put("*****RIGHT_EXT_ILLIAC_NODE3*****", "Lymph"); map.put("*****RIGHT_EXT_ILLIAC_NODE4*****", "Lymph"); map.put("*****RIGHT_EXT_ILLIAC_NODE5*****", "Lymph"); map.put("*****RIGHT_HYPOGASTRIC_NODE*****", "Lymph"); map.put("*****RIGHT_SUPERF_SUBINGUINAL_NODE1*****", "Lymph"); map.put("*****RIGHT_SUPERF_SUBINGUINAL_NODE2*****", "Lymph"); map.put("*****RIGHT_SUPERF_SUBINGUINAL_NODE3*****", "Lymph"); map.put("*****RIGHT_SUPERF_SUBINGUINAL_NODE4*****", "Lymph"); map.put("*****RIGHT_SUPERF_SUBINGUINAL_NODE5*****", "Lymph"); map.put("*****RIGHT_SUPERF_SUBINGUINAL_NODE6*****", "Lymph"); map.put("*****RIGHT_SUPERF_SUBINGUINAL_NODE7*****", "Lymph"); map.put("*****LEFT_EXT_ILLIAC_NODE1*****", "Lymph"); map.put("*****LEFT_EXT_ILLIAC_NODE2*****", "Lymph"); map.put("*****LEFT_EXT_ILLIAC_NODE3*****", "Lymph"); map.put("*****LEFT_EXT_ILLIAC_NODE4*****", "Lymph"); map.put("*****LEFT_EXT_ILLIAC_NODE5*****", "Lymph"); map.put("*****LEFT_HYPOGASTRIC_NODE*****", "Lymph"); map.put("*****LEFT_SUPERF_SUBINGUINAL_NODE1*****", "Lymph"); map.put("*****LEFT_SUPERF_SUBINGUINAL_NODE1*****", "Lymph"); map.put("*****LEFT_SUPERF_SUBINGUINAL_NODE1*****", "Lymph"); map.put("*****LEFT_SUPERF_SUBINGUINAL_NODE1*****", "Lymph"); map.put("*****LEFT_SUPERF_SUBINGUINAL_NODE1*****", "Lymph"); map.put("*****LEFT_SUPERF_SUBINGUINAL_NODE1*****", "Lymph"); map.put("*****LEFT_SUPERF_SUBINGUINAL_NODE1*****", "Lymph"); map.put("****Airway-1*********", "Air"); map.put("*****PULMONARY_ART1*****", "Blood Pul Artery"); map.put("*****PULMONARY_VEIN1*****", "Blood Pul Vein"); if (renderMarrow) { map.put("**RRIB1_MARROW**", "Bone Marrow"); map.put("**RRIB2_MARROW**", "Bone Marrow"); map.put("**RRIB3_MARROW**", "Bone Marrow"); map.put("**RRIB4_MARROW**", "Bone Marrow"); map.put("**RRIB5_MARROW**", "Bone Marrow"); map.put("**RRIB6_MARROW**", "Bone Marrow"); map.put("**RRIB7_MARROW**", "Bone Marrow"); map.put("**RRIB8_MARROW**", "Bone Marrow"); map.put("**RRIB9_MARROW**", "Bone Marrow"); map.put("**RRIB10_MARROW**", "Bone Marrow"); map.put("**RRIB11_MARROW**", "Bone Marrow"); map.put("**RRIB12_MARROW**", "Bone Marrow"); map.put("**LRIB1_MARROW**", "Bone Marrow"); map.put("**LRIB2_MARROW**", "Bone Marrow"); map.put("**LRIB3_MARROW**", "Bone Marrow"); map.put("**LRIB4_MARROW**", "Bone Marrow"); map.put("**LRIB5_MARROW**", "Bone Marrow"); map.put("**LRIB6_MARROW**", "Bone Marrow"); map.put("**LRIB7_MARROW**", "Bone Marrow"); map.put("**LRIB8_MARROW**", "Bone Marrow"); map.put("**LRIB9_MARROW**", "Bone Marrow"); map.put("**LRIB10_MARROW**", "Bone Marrow"); map.put("**LRIB11_MARROW**", "Bone Marrow"); map.put("**LRIB12_MARROW**", "Bone Marrow"); map.put("**BACKBONE1_MARROW**", "Bone Marrow"); map.put("**BACKBONE2_MARROW**", "Bone Marrow"); map.put("**BACKBONE3_MARROW**", "Bone Marrow"); map.put("**BACKBONE4_MARROW**", "Bone Marrow"); map.put("**BACKBONE5_MARROW**", "Bone Marrow"); map.put("**BACKBONE6_MARROW**", "Bone Marrow"); map.put("**BACKBONE7_MARROW**", "Bone Marrow"); map.put("**BACKBONE8_MARROW**", "Bone Marrow"); map.put("**BACKBONE9_MARROW**", "Bone Marrow"); map.put("**BACKBONE10_MARROW**", "Bone Marrow"); map.put("**BACKBONE11_MARROW**", "Bone Marrow"); map.put("**BACKBONE12_MARROW**", "Bone Marrow"); map.put("**BACKBONE13_MARROW**", "Bone Marrow"); map.put("**BACKBONE14_MARROW**", "Bone Marrow"); map.put("**BACKBONE15_MARROW**", "Bone Marrow"); map.put("**BACKBONE16_MARROW**", "Bone Marrow"); map.put("**BACKBONE17_MARROW**", "Bone Marrow"); map.put("**BACKBONE18_MARROW**", "Bone Marrow"); map.put("**BACKBONE19_MARROW**", "Bone Marrow"); map.put("**BACKBONE20_MARROW**", "Bone Marrow"); map.put("**BACKBONE21_MARROW**", "Bone Marrow"); map.put("**BACKBONE22_MARROW**", "Bone Marrow"); map.put("**BACKBONE23_MARROW**", "Bone Marrow"); map.put("**BACKBONE24_MARROW**", "Bone Marrow"); map.put("**BACKBONE25_MARROW**", "Bone Marrow"); map.put("**BACKBONE26_MARROW**", "Bone Marrow"); map.put("**BACKBONE27_MARROW**", "Bone Marrow"); map.put("**BACKBONE28_MARROW**", "Bone Marrow"); map.put("**BACKBONE29_MARROW**", "Bone Marrow"); map.put("**BACKBONE30_MARROW**", "Bone Marrow"); map.put("**BACKBONE31_MARROW**", "Bone Marrow"); map.put("**BACKBONE32_MARROW**", "Bone Marrow"); map.put("**BACKBONE33_MARROW**", "Bone Marrow"); map.put("**BACKBONE34_MARROW**", "Bone Marrow"); map.put("**BACKBONE35_MARROW**", "Bone Marrow"); map.put("**BACKBONE36_MARROW**", "Bone Marrow"); map.put("**BACKBONE37_MARROW**", "Bone Marrow"); map.put("**BACKBONE38_MARROW**", "Bone Marrow"); map.put("**BACKBONE39_MARROW**", "Bone Marrow"); map.put("**BACKBONE40_MARROW**", "Bone Marrow"); map.put("**BACKBONE41_MARROW**", "Bone Marrow"); map.put("**BACKBONE42_MARROW**", "Bone Marrow"); map.put("**BACKBONE43_MARROW**", "Bone Marrow"); map.put("**BACKBONE44_MARROW**", "Bone Marrow"); map.put("**BACKBONE45_MARROW**", "Bone Marrow"); map.put("**BACKBONE46_MARROW**", "Bone Marrow"); map.put("**BACKBONE47_MARROW**", "Bone Marrow"); map.put("**BACKBONE48_MARROW**", "Bone Marrow"); map.put("**BACKBONE49_MARROW**", "Bone Marrow"); map.put("**BACKBONE50_MARROW**", "Bone Marrow"); map.put("**BACKBONE51_MARROW**", "Bone Marrow"); map.put("**BACKBONE52_MARROW**", "Bone Marrow"); map.put("**BACKBONE53_MARROW**", "Bone Marrow"); map.put("**BACKBONE54_MARROW**", "Bone Marrow"); map.put("**BACKBONE55_MARROW**", "Bone Marrow"); map.put("**BACKBONE56_MARROW**", "Bone Marrow"); map.put("**BACKBONE57_MARROW**", "Bone Marrow"); map.put("**BACKBONE58_MARROW**", "Bone Marrow"); map.put("**STERN_MARROW**", "Bone Marrow"); map.put("**RSCAP_MARROW**", "Bone Marrow"); map.put("**RCOLLAR_MARROW**", "Bone Marrow"); map.put("**LSCAP_MARROW**", "Bone Marrow"); map.put("**LCOLLAR_MARROW**", "Bone Marrow"); if (renderArmMarrow){ map.put("**RHUMERUS_MARROW**", "Bone Marrow"); map.put("**R_RADIUS_MARROW**", "Bone Marrow"); map.put("**R_ULNA_MARROW**", "Bone Marrow"); map.put("**LHUMERUS_MARROW**", "Bone Marrow"); map.put("**L_RADIUS_MARROW**", "Bone Marrow"); map.put("**L_ULNA_MARROW**", "Bone Marrow"); map.put("**R_HAND_MARROW0", "Bone Marrow"); map.put("**R_HAND_MARROW1", "Bone Marrow"); map.put("**R_HAND_MARROW2", "Bone Marrow"); map.put("**R_HAND_MARROW3", "Bone Marrow"); map.put("**R_HAND_MARROW4", "Bone Marrow"); map.put("**R_HAND_MARROW5", "Bone Marrow"); map.put("**R_HAND_MARROW6", "Bone Marrow"); map.put("**R_HAND_MARROW7", "Bone Marrow"); map.put("**R_HAND_MARROW8", "Bone Marrow"); map.put("**R_HAND_MARROW9", "Bone Marrow"); map.put("**R_HAND_MARROW10", "Bone Marrow"); map.put("**R_HAND_MARROW11", "Bone Marrow"); map.put("**R_HAND_MARROW12", "Bone Marrow"); map.put("**R_HAND_MARROW13", "Bone Marrow"); map.put("**R_HAND_MARROW14", "Bone Marrow"); map.put("**R_HAND_MARROW15", "Bone Marrow"); map.put("**R_HAND_MARROW16", "Bone Marrow"); map.put("**R_HAND_MARROW17", "Bone Marrow"); map.put("**R_HAND_MARROW18", "Bone Marrow"); map.put("**R_HAND_MARROW19", "Bone Marrow"); map.put("**R_HAND_MARROW20", "Bone Marrow"); map.put("**R_HAND_MARROW21", "Bone Marrow"); map.put("**R_HAND_MARROW22", "Bone Marrow"); map.put("**R_HAND_MARROW23", "Bone Marrow"); map.put("**R_HAND_MARROW24", "Bone Marrow"); map.put("**R_HAND_MARROW25", "Bone Marrow"); map.put("**R_HAND_MARROW26", "Bone Marrow"); map.put("**L_HAND_MARROW0", "Bone Marrow"); map.put("**L_HAND_MARROW1", "Bone Marrow"); map.put("**L_HAND_MARROW2", "Bone Marrow"); map.put("**L_HAND_MARROW3", "Bone Marrow"); map.put("**L_HAND_MARROW4", "Bone Marrow"); map.put("**L_HAND_MARROW5", "Bone Marrow"); map.put("**L_HAND_MARROW6", "Bone Marrow"); map.put("**L_HAND_MARROW7", "Bone Marrow"); map.put("**L_HAND_MARROW8", "Bone Marrow"); map.put("**L_HAND_MARROW9", "Bone Marrow"); map.put("**L_HAND_MARROW10", "Bone Marrow"); map.put("**L_HAND_MARROW11", "Bone Marrow"); map.put("**L_HAND_MARROW12", "Bone Marrow"); map.put("**L_HAND_MARROW13", "Bone Marrow"); map.put("**L_HAND_MARROW14", "Bone Marrow"); map.put("**L_HAND_MARROW15", "Bone Marrow"); map.put("**L_HAND_MARROW16", "Bone Marrow"); map.put("**L_HAND_MARROW17", "Bone Marrow"); map.put("**L_HAND_MARROW18", "Bone Marrow"); map.put("**L_HAND_MARROW19", "Bone Marrow"); map.put("**L_HAND_MARROW20", "Bone Marrow"); map.put("**L_HAND_MARROW21", "Bone Marrow"); map.put("**L_HAND_MARROW22", "Bone Marrow"); map.put("**L_HAND_MARROW23", "Bone Marrow"); map.put("**L_HAND_MARROW24", "Bone Marrow"); map.put("**L_HAND_MARROW25", "Bone Marrow"); map.put("**L_HAND_MARROW26", "Bone Marrow"); } map.put("**R_FOOT_MARROW0", "Bone Marrow"); map.put("**R_FOOT_MARROW1", "Bone Marrow"); map.put("**R_FOOT_MARROW2", "Bone Marrow"); map.put("**R_FOOT_MARROW3", "Bone Marrow"); map.put("**R_FOOT_MARROW4", "Bone Marrow"); map.put("**R_FOOT_MARROW5", "Bone Marrow"); map.put("**R_FOOT_MARROW6", "Bone Marrow"); map.put("**R_FOOT_MARROW7", "Bone Marrow"); map.put("**R_FOOT_MARROW8", "Bone Marrow"); map.put("**R_FOOT_MARROW9", "Bone Marrow"); map.put("**R_FOOT_MARROW10", "Bone Marrow"); map.put("**R_FOOT_MARROW11", "Bone Marrow"); map.put("**R_FOOT_MARROW12", "Bone Marrow"); map.put("**R_FOOT_MARROW13", "Bone Marrow"); map.put("**R_FOOT_MARROW14", "Bone Marrow"); map.put("**R_FOOT_MARROW15", "Bone Marrow"); map.put("**R_FOOT_MARROW16", "Bone Marrow"); map.put("**R_FOOT_MARROW17", "Bone Marrow"); map.put("**R_FOOT_MARROW18", "Bone Marrow"); map.put("**R_FOOT_MARROW19", "Bone Marrow"); map.put("**R_FOOT_MARROW20", "Bone Marrow"); map.put("**R_FOOT_MARROW21", "Bone Marrow"); map.put("**R_FOOT_MARROW22", "Bone Marrow"); map.put("**R_FOOT_MARROW23", "Bone Marrow"); map.put("**R_FOOT_MARROW24", "Bone Marrow"); map.put("**R_FOOT_MARROW25", "Bone Marrow"); map.put("**L_FOOT_MARROW0", "Bone Marrow"); map.put("**L_FOOT_MARROW1", "Bone Marrow"); map.put("**L_FOOT_MARROW2", "Bone Marrow"); map.put("**L_FOOT_MARROW3", "Bone Marrow"); map.put("**L_FOOT_MARROW4", "Bone Marrow"); map.put("**L_FOOT_MARROW5", "Bone Marrow"); map.put("**L_FOOT_MARROW6", "Bone Marrow"); map.put("**L_FOOT_MARROW7", "Bone Marrow"); map.put("**L_FOOT_MARROW8", "Bone Marrow"); map.put("**L_FOOT_MARROW9", "Bone Marrow"); map.put("**L_FOOT_MARROW10", "Bone Marrow"); map.put("**L_FOOT_MARROW11", "Bone Marrow"); map.put("**L_FOOT_MARROW12", "Bone Marrow"); map.put("**L_FOOT_MARROW13", "Bone Marrow"); map.put("**L_FOOT_MARROW14", "Bone Marrow"); map.put("**L_FOOT_MARROW15", "Bone Marrow"); map.put("**L_FOOT_MARROW16", "Bone Marrow"); map.put("**L_FOOT_MARROW17", "Bone Marrow"); map.put("**L_FOOT_MARROW18", "Bone Marrow"); map.put("**L_FOOT_MARROW19", "Bone Marrow"); map.put("**L_FOOT_MARROW20", "Bone Marrow"); map.put("**L_FOOT_MARROW21", "Bone Marrow"); map.put("**L_FOOT_MARROW22", "Bone Marrow"); map.put("**L_FOOT_MARROW23", "Bone Marrow"); map.put("**L_FOOT_MARROW24", "Bone Marrow"); map.put("**L_FOOT_MARROW25", "Bone Marrow"); map.put("**R_FEMUR_MARROW**", "Bone Marrow"); map.put("**R_TIBIA_MARROW**", "Bone Marrow"); map.put("**R_FIBULA_MARROW**", "Bone Marrow"); map.put("**R_PATELLA_MARROW**", "Bone Marrow"); map.put("**L_FEMUR_MARROW**", "Bone Marrow"); map.put("**L_TIBIA_MARROW**", "Bone Marrow"); map.put("**L_FIBULA_MARROW**", "Bone Marrow"); map.put("**L_PATELLA_MARROW**", "Bone Marrow"); } // heart map.put("****Right-atria-myo*********", "Heart"); map.put("****Right-ventricle-myo*********", "Heart"); map.put("****Right-atria-chamber****", "Blood"); map.put("****Right-ventricle-chamber****", "Blood"); map.put("****Left-atria-myo**********", "Heart"); map.put("****Left-ventricle-myo**********", "Heart"); map.put("****Left-atria-chamber*****", "Blood"); String key = Configuration.getGlobalConfiguration().getRegistry().get(RegKeys.XCAT_VENTRICLE_SELECTION); if (key!= null) { if (key.contains("1")){ map.put("****Left-ventricle-chamber1*****", "Blood (LV)"); } else { map.put("****Left-ventricle-chamber1*****", "Heart"); } if (key.contains("2")){ map.put("****Left-ventricle-chamber2*****", "Blood (LV)"); } else { map.put("****Left-ventricle-chamber2*****", "Heart"); } if (key.contains("3")){ map.put("****Left-ventricle-chamber3*****", "Blood (LV)"); } else { map.put("****Left-ventricle-chamber3*****", "Heart"); } if (key.contains("4")){ map.put("****Left-ventricle-chamber4*****", "Blood (LV)"); } else { map.put("****Left-ventricle-chamber4*****", "Heart"); } } else { map.put("****Left-ventricle-chamber1*****", "Blood (LV)"); map.put("****Left-ventricle-chamber2*****", "Blood (LV)"); map.put("****Left-ventricle-chamber3*****", "Blood (LV)"); map.put("****Left-ventricle-chamber4*****", "Blood (LV)"); } map.put("****Heartwall*********", "Heart"); if (Configuration.getGlobalConfiguration().getRegistry().get(RegKeys.XCAT_ONLY_LEFT_ARTERY_TREE_CONTRASTED)!= null) { if (Configuration.getGlobalConfiguration().getRegistry().get(RegKeys.XCAT_ONLY_LEFT_ARTERY_TREE_CONTRASTED).equals("true")) { map.put("/***RCA1***/", "Blood"); map.put("/***RCA2***/", "Blood"); map.put("/***LCA1***/", "Coronary Artery"); map.put("/***LCA2***/", "Coronary Artery"); map.put("/***LCA3***/", "Coronary Artery"); map.put("/***LCA4***/", "Coronary Artery"); map.put("/***LCA5***/", "Coronary Artery"); map.put("/***LCA6***/", "Coronary Artery"); map.put("/***LCA7***/", "Coronary Artery"); map.put("/***LCA8***/", "Coronary Artery"); map.put("/***LCA9***/", "Coronary Artery"); map.put("/***LCA10***/", "Coronary Artery"); } }else{ map.put("/***RCA1***/", "Coronary Artery"); map.put("/***RCA2***/", "Coronary Artery"); map.put("/***LCA1***/", "Coronary Artery"); map.put("/***LCA2***/", "Coronary Artery"); map.put("/***LCA3***/", "Coronary Artery"); map.put("/***LCA4***/", "Coronary Artery"); map.put("/***LCA5***/", "Coronary Artery"); map.put("/***LCA6***/", "Coronary Artery"); map.put("/***LCA7***/", "Coronary Artery"); map.put("/***LCA8***/", "Coronary Artery"); map.put("/***LCA9***/", "Coronary Artery"); map.put("/***LCA10***/", "Coronary Artery"); } map.put("Heart Lesion", "Heart Lesion"); map.put("Heart Catheter", "Catheter Material"); return map; } /** * Lookup Material via the Spline name * @param name * @return the material */ public static Material generateFromSplineName(String name){ String materialName = getSplineNameMaterialNameLUT().get(name); Material material = XCatMaterialGenerator.generateFromMaterialName(materialName); return material; } public static boolean exclude(String match){ boolean includeVessels = false; if (includeVessels) { String materialName = getSplineNameMaterialNameLUT().get(match); if (materialName != null) { return ! (materialName.contains("Blood")); } else return true; } else return false; } @Override public TimeWarper getTimeWarper() { return warper; } @Override public void setTimeWarper(TimeWarper warp) { warper = warp; } } /* * Copyright (C) 2010-2014 Andreas Maier * CONRAD is developed as an Open Source project under the GNU General Public License (GPL). */