<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://bone.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Scanco</id>
	<title>bone.wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://bone.wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Scanco"/>
	<link rel="alternate" type="text/html" href="https://bone.wiki/index.php/Special:Contributions/Scanco"/>
	<updated>2026-10-29T12:56:44Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://bone.wiki/index.php?title=How_To%27s&amp;diff=1407</id>
		<title>How To&#039;s</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=How_To%27s&amp;diff=1407"/>
		<updated>2005-12-19T14:21:47Z</updated>

		<summary type="html">&lt;p&gt;Scanco: /* HowTo: Requeue a process */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=HowTo Library=&lt;br /&gt;
&lt;br /&gt;
:In addition to this HowTo library, much information is also available at the [http://www.scanco.ch/cgi-bin/scanco.pl?menu=support&amp;amp;site=faq Scanco Medical FAQ].&lt;br /&gt;
:*users@scanco.ch&lt;br /&gt;
:*basser5dorf&lt;br /&gt;
&lt;br /&gt;
==OpenVMS==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Helpful VMS commands===&lt;br /&gt;
&lt;br /&gt;
:*UNIX to OpenVMS [http://seqaxp.bio.caltech.edu/www/vms_sheet.html]&lt;br /&gt;
*Delete&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ delete *.aim;*&lt;br /&gt;
$ dl *.aim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Delete a directory&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ SET FILE/PROT=O:RWED [.SUBDIR...]*.*;*&lt;br /&gt;
$ DELETE [.SUBDIR...]*.*;* Issue this command until no error messages appear.&lt;br /&gt;
$ SET FILE/PROT=O:RWED SUBDIR.DIR&lt;br /&gt;
$ DELETE SUBDIR.DIR;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dl subdir.dir&lt;br /&gt;
$ @scom:dl.com subdir.dir&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Shut down the Alpha stations and start up again===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Do not do this unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
For shutdown&lt;br /&gt;
&lt;br /&gt;
At the login screen, type &amp;quot;shutdown&amp;quot;/no password and hit enter. &lt;br /&gt;
Then, you can turn the computer off at the prompt.&lt;br /&gt;
&lt;br /&gt;
Then, you may turn the disk array off (unplug it as there is no power switch).&lt;br /&gt;
&lt;br /&gt;
After you move the computer, power on the disk array and then the computer.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand difference between &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; is the same as &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;, but only with mcr you can hand over &#039;in-line&#039; parameters to an .exe file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
does not work, but you  have to say&lt;br /&gt;
&amp;lt;pre&amp;gt;$ mcr ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But funnily if you define a symbol in &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ ctheader :== $ut:ctheader.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with just neither run nor mcr, but the &#039;funny&#039; $ sign, then you can also hand over the ISQ name in-line.&lt;br /&gt;
&lt;br /&gt;
Small detail with big effect...&lt;br /&gt;
&lt;br /&gt;
===HowTo: Make commands available to all users with symbols or paths===&lt;br /&gt;
&lt;br /&gt;
DCL$PATH is one way to do that, WE don&#039;t use it...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ def dcl$path disk1:[microct.main],disk1:[microct.util]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, if you type&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ uct_t&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
it will first try to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ @uct_t.com&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
and then&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ r uct_t.exe&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
however, we usually define it by giving full path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ progx :== $disk1:[microct.main]progx.exe&lt;br /&gt;
$ com_proc_x :== @disk1:[microct.main]procedure.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type the shortcut (&#039;symbol&#039; in VMS language)&lt;br /&gt;
&lt;br /&gt;
We use the &#039;cd&#039; to set the default path, you may also use this in your command procedure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;proc.com&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd &#039;p1&#039;&lt;br /&gt;
$ dir *.*/size&lt;br /&gt;
&lt;br /&gt;
$ define COM disk1:[microct.commands]&lt;br /&gt;
$ p :== @COM:PROC.COM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
these both go into &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ p disk4:[microct.data.0000007.000009]*.ISQ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Launch an editor such as EVE===&lt;br /&gt;
&lt;br /&gt;
On the command line&lt;br /&gt;
&amp;lt;pre&amp;gt;$ edit/display=decwindows/tpu fname.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit a symbol set by Scanco such as AIX===&lt;br /&gt;
&lt;br /&gt;
[[Image:Bones2.jpg|picture_position,left]] &amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Extreme caution!  Explicit permission for this change or similar changes &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be obtained from Dr. Steven Boyd.&lt;br /&gt;
&lt;br /&gt;
Log in as user calibration&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set proc/priv=bypass&lt;br /&gt;
$ cdc (changes to MICROCT_COMMAND)&lt;br /&gt;
$ sea *.com aix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit that file which is called &amp;lt;code&amp;gt;MICROCT_SETUP_COMMON.COM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Another example&#039;&#039;: To make the backspace/insert keys work properly, edit the &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt; and insert the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set terminal/insert&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anywhere suitable.&lt;br /&gt;
&lt;br /&gt;
===HowTo: File do all -- apply one command to a whole set of files===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda ctheader dk0:[microct.data.0001234...]*.isq &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to see the header of all isq files of sample 1234 (the three dots ... means all subdirectories)&lt;br /&gt;
&lt;br /&gt;
Or: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda aix dk0:[microct.data.0001234.00005678]*.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to see the processing log of all aim files of scan 5678&lt;br /&gt;
&lt;br /&gt;
Wildcard &amp;quot;*&amp;quot; means multiple characters, &amp;quot;%&amp;quot; is for ONE character: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda aix dk0:[microct.data...]C%%%%%%%.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(yes, 7 %&#039;s)&lt;br /&gt;
&lt;br /&gt;
to show the aim header of the gray-scale c0000135.aim (etc) files only, and NOT from the _seg.aims also.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning: CAUTION! &amp;lt;/b&amp;gt; Always test the wildcard expression first with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ dir dk0:[xxx...]*.aim &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;file do all&#039; fda command can even be combined with a pipe, or an /output qualifier: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ pipe fda aix dk0:[microct...]*.aim | search sys$pipe &amp;quot;Slope&amp;quot; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will show you all &amp;quot;Slopes&amp;quot; in a row. (but you may not see which slope belongs to which aim file anymore...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda/output=sys$scratch:all_headers.log aix dk0:[microct...]*.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
will write all the output into the .log file - which you can then either edit, or &lt;br /&gt;
&amp;lt;code&amp;gt;$ search sys$scratch:all_headers.log &amp;quot;String&amp;quot;&lt;br /&gt;
or whatever you want. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;fda&amp;quot; is our self-written script, so you may have to try-n-error a bit...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda command file_wildcard [Optional: further parameters]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the command consists of multiple words with spaces inbetween (e.g. mcr ut:xxx.exe), then enclose the command in double-quotes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda &amp;quot;mcr ut:uct_ext_header_display&amp;quot; dk0:[microct...]*.isq 8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NB: the further parameters may not contain wildcards - so unfortunately, the fda can NOT be used to &#039;adaptively&#039; rename a whole bunch of files.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a customized button in the session manager===&lt;br /&gt;
&lt;br /&gt;
The session manager part to enable the double-click on the AIM file:&lt;br /&gt;
Session Manager, &#039;Options&#039;, &#039;Menu&#039;, enter new item&lt;br /&gt;
SAP&lt;br /&gt;
with command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@decw$user_defaults:sap$vue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then move that menu point into &#039;Applications&#039; menu.&lt;br /&gt;
Also:&lt;br /&gt;
&#039;Options&#039;, &#039;File types&#039;, Create &#039;AIM&#039; file type.&lt;br /&gt;
Move &#039;rename&#039;, &#039;copy&#039;, &#039;purge&#039; etc. into menu, Select &#039;SAP&#039;, click  on&lt;br /&gt;
&#039;Change double click&#039;, and also move SAP into menu.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Export the VMS display to SUN or LINUX terminal===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# - temple&lt;br /&gt;
$ - sceval&lt;br /&gt;
# xhost +temple.ucalgary.ca&lt;br /&gt;
# ssh -X microct@sceval.ucalgary.ca&lt;br /&gt;
$ set display /create /transport=tcpip /node=temple.ucalgary.ca&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE:&amp;lt;/b&amp;gt; Do not use &amp;lt;code&amp;gt;xhost+&amp;lt;/code&amp;gt;.  Always specific exactly which computer is being&lt;br /&gt;
allowed X access.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Mount a CDROM===&lt;br /&gt;
&lt;br /&gt;
Device could be &amp;lt;code&amp;gt;dqa0&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;dqb0&amp;lt;/code&amp;gt;.  I&#039;m not sure which works:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mount/foreign dqa0:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
OR&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mount/override=id dqa0:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dismount dqa0:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Monitor system usage===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ monitor/interval=1 processes/topcpu&lt;br /&gt;
$ monitor/interval=1 system&lt;br /&gt;
$ show error&lt;br /&gt;
$ show system&lt;br /&gt;
$ @SCOM:SHOW_DISKS.COM (or simply DISKS)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;show error&amp;lt;/code&amp;gt; may indicate errors.  One or two errors is OK.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Configure the EVE editor===&lt;br /&gt;
&lt;br /&gt;
The following file, called &amp;lt;code&amp;gt;tpu.dat&amp;lt;/code&amp;gt;, should be installed in &amp;lt;code&amp;gt;disk1:[microct.xdefaults]:&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# DECTPU V3.1 1993-04-22 15:50 defaults&lt;br /&gt;
# CHANGED B.KOLLER 21-JUN-90&lt;br /&gt;
#&lt;br /&gt;
# Copyright (c) 1993 Digital Equipment Corporation.  All rights reserved.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
# The following are all the resource names that DECTPU supports.&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Title:		DECTPU Copyright © Digital Equipment Corporation 1992.  All Rights Reserved.&lt;br /&gt;
Tpu.Tpu$MainWindow.ApplicationTitle:	DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.IconName:		DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.X:			610&lt;br /&gt;
Tpu.Tpu$MainWindow.Y:			0&lt;br /&gt;
#&lt;br /&gt;
# The following resource names are commented out so that users can specify&lt;br /&gt;
# *rows and *columns and have DECTPU obey those directives.  If DECTPU finds&lt;br /&gt;
# finds no resource names governing the number of rows and columns it should&lt;br /&gt;
# have, it uses 24 rows and 80 columns.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Columns:	80&lt;br /&gt;
Tpu.Tpu$MainWindow.Rows:	56&lt;br /&gt;
*EVE_MENU_BAR*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmScrollBar*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmDialogShell*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmMenuShell*background:	#ADADADADADAD&lt;br /&gt;
*background:			white&lt;br /&gt;
Tpu*condensedFont: OFF&lt;br /&gt;
Tpu*fontSetSelection: 0&lt;br /&gt;
&lt;br /&gt;
# 0 = big font&lt;br /&gt;
# 1 = little font&lt;br /&gt;
# 2 = GS font (German Standard)&lt;br /&gt;
# 3 = Fine font (used only for non-latin 1 fonts?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use EVE Editor Commands===&lt;br /&gt;
&lt;br /&gt;
		&amp;lt;table border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;1&amp;quot; cellpadding=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
			&amp;lt;tr&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot;&amp;gt;gold key&amp;lt;/td&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;500&amp;quot;&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;PF1&amp;amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;/tr&amp;gt;&lt;br /&gt;
			&amp;lt;tr&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot;&amp;gt;copy&amp;lt;/td&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;500&amp;quot;&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;PF1&amp;amp;gt;&amp;amp;lt;Remove&amp;amp;gt;&amp;lt;/code&amp;gt; on VMS&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;/tr&amp;gt;&lt;br /&gt;
			&amp;lt;tr&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot;&amp;gt;paste&amp;lt;/td&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;500&amp;quot;&amp;gt;&amp;lt;code&amp;gt;&amp;lt;Insert Here&amp;amp;gt;&amp;lt;/code&amp;gt; on VMS &amp;lt;i&amp;gt;or &lt;br /&gt;
&amp;lt;/i&amp;gt; &amp;lt;code&amp;gt; &amp;lt;ctrl&amp;amp;gt;&amp;amp;lt;insert&amp;amp;gt;&amp;lt;/code&amp;gt; on PC&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;/tr&amp;gt;&lt;br /&gt;
			&amp;lt;tr&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot;&amp;gt;cut&amp;lt;/td&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;500&amp;quot;&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;Remove&amp;amp;gt; &amp;lt;/code&amp;gt; on VMS &amp;lt;i&amp;gt;or &lt;br /&gt;
&amp;lt;/i&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;delete&amp;amp;gt; &amp;lt;/code&amp;gt; on PC&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;/tr&amp;gt;&lt;br /&gt;
			&amp;lt;tr&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot;&amp;gt;learn&amp;lt;/td&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;500&amp;quot;&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;CTRL&amp;amp;gt;&amp;amp;lt;K&amp;amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;/tr&amp;gt;&lt;br /&gt;
			&amp;lt;tr&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot;&amp;gt;stop&amp;lt;/td&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;500&amp;quot;&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;CTRL&amp;amp;gt;&amp;amp;lt;R&amp;amp;gt; &amp;lt;/code&amp;gt; (then give a key &lt;br /&gt;
sequence such as &amp;lt;code&amp;gt;&amp;amp;lt;CTRL&amp;amp;gt;&amp;amp;lt;Q&amp;amp;gt;&amp;lt;/code&amp;gt;)&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;/tr&amp;gt;&lt;br /&gt;
			&amp;lt;tr&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot;&amp;gt;repeat&amp;lt;/td&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;500&amp;quot;&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;PF1&amp;amp;gt;&amp;amp;lt;#&amp;amp;gt;&amp;amp;lt;(CTRL-Q)&amp;amp;gt; &amp;lt;/code&amp;gt; &lt;br /&gt;
(the &amp;lt;code&amp;gt;CTRL-Q &amp;lt;/code&amp;gt; depends on the given key sequence).&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;/tr&amp;gt;&lt;br /&gt;
			&amp;lt;tr&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot;&amp;gt;find next&amp;lt;/td&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;500&amp;quot;&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;PF3&amp;amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;/tr&amp;gt;&lt;br /&gt;
			&amp;lt;tr&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot;&amp;gt;enter search string&amp;lt;/td&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;500&amp;quot;&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;PF1&amp;amp;gt;&amp;amp;lt;PF3&amp;amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;/tr&amp;gt;&lt;br /&gt;
			&amp;lt;tr&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot;&amp;gt;replace string&amp;lt;/td&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;500&amp;quot;&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;PF1&amp;amp;gt;&amp;amp;lt;S&amp;amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;/tr&amp;gt;&lt;br /&gt;
			&amp;lt;tr&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot;&amp;gt;margins&amp;lt;/td&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;500&amp;quot;&amp;gt;Mouse click bottom of window type: &amp;lt;code&amp;gt;set &lt;br /&gt;
right 999&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;/tr&amp;gt;&lt;br /&gt;
			&amp;lt;tr&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot;&amp;gt;kill line&amp;lt;/td&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;500&amp;quot;&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;PF4&amp;amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;/tr&amp;gt;&lt;br /&gt;
			&amp;lt;tr&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot;&amp;gt;kill word&amp;lt;/td&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;500&amp;quot;&amp;gt;- (minus key on number pad)&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;/tr&amp;gt;&lt;br /&gt;
			&amp;lt;tr&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot;&amp;gt;advance next line&amp;lt;/td&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;500&amp;quot;&amp;gt;&amp;lt;code&amp;gt;0&amp;lt;/code&amp;gt; (zero on number pad)&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;/tr&amp;gt;&lt;br /&gt;
			&amp;lt;tr&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;200&amp;quot;&amp;gt;select text&amp;lt;/td&amp;gt;&lt;br /&gt;
				&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;500&amp;quot;&amp;gt;&amp;lt;code&amp;gt;&amp;amp;lt;CTRL&amp;amp;gt;&amp;amp;lt;SPACE&amp;amp;gt;&amp;lt;/code&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
			&amp;lt;/tr&amp;gt;&lt;br /&gt;
		&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scanco System and Setup==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Calculate vivaCT CTDI dose===&lt;br /&gt;
&lt;br /&gt;
Assuming the following settings on the vivaCT for &amp;quot;high mode&amp;quot;, we will calculate the CTDI dose.&lt;br /&gt;
&lt;br /&gt;
 2000 projections (360 degrees)&lt;br /&gt;
 0.109 mA&lt;br /&gt;
 200 ms IT&lt;br /&gt;
&lt;br /&gt;
I calculate the time current value as:&lt;br /&gt;
&lt;br /&gt;
 0.109 mA * (0.200 + 0.012) S * 2000 proj= 46.22 mAs&lt;br /&gt;
&lt;br /&gt;
The 0.012 is the integration time between projections.&lt;br /&gt;
&lt;br /&gt;
Taking the proportion of the 68 mAs at 55 kV resulting in 720 mGy (see the document on example&lt;br /&gt;
dose calculation on this Wiki site), we have:&lt;br /&gt;
&lt;br /&gt;
 46.22 / 68 * 720 = 490 mGy&lt;br /&gt;
&lt;br /&gt;
Since CTDI in air is approximately two times the weighted CTDI, and since our setup is more like in air, we get:&lt;br /&gt;
&lt;br /&gt;
 2 * 490 = 980 mGy per scan.&lt;br /&gt;
&lt;br /&gt;
It&#039;s always a good idea to look at the time-current product in the control file to get an approximate estimate.&lt;br /&gt;
&lt;br /&gt;
===HowTo: vivaCT CTDI dose chart and example===&lt;br /&gt;
&lt;br /&gt;
We have measured the following CT dose indices (CTDI). &lt;br /&gt;
:*CTDIw:   Weighted CTDI (chart below)&lt;br /&gt;
:*CTDIair: CTDI in air (2 times CTDIw - calculate from chart below).&lt;br /&gt;
&lt;br /&gt;
The detector was placed in the center of a 35 mm PMMA cylinder which was placed in the center of rotation.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 70kV  300ms 85uA  Field of view 38.9mm 1000 Proj./180°:   CTDI = 260 mGy&lt;br /&gt;
 55kV  300ms 109uA Field of view 38.9mm 1000 Proj./180°:   CTDI = 220 mGy&lt;br /&gt;
 45kV  300ms 133uA Field of view 38.9mm 1000 Proj./180°:   CTDI = 190 mGy&lt;br /&gt;
&lt;br /&gt;
 70kV  300ms 85uA  Field of view 30.7mm 1000 Proj./180°:   CTDI = 420 mGy&lt;br /&gt;
 55kV  300ms 109uA Field of view 30.7mm 1000 Proj./180°:   CTDI = 350 mGy&lt;br /&gt;
 45kV  300ms 133uA Field of view 30.7mm 1000 Proj./180°:   CTDI = 305 mGy&lt;br /&gt;
&lt;br /&gt;
 70kV  300ms 85uA  Field of view 21.5mm 1000 Proj./180°:   CTDI = 850 mGy&lt;br /&gt;
 55kV  300ms 109uA Field of view 21.5mm 1000 Proj./180°:   CTDI = 720 mGy&lt;br /&gt;
 45kV  300ms 133uA Field of view 21.5mm 1000 Proj./180°:   CTDI = 620 mGy&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 high res = 1000 Proj./180°&lt;br /&gt;
 medium  = 500 Proj./180°&lt;br /&gt;
 standard  = 250 Proj./180°&lt;br /&gt;
&lt;br /&gt;
The CTDI scales linear with the integration time (s), with the current (uA) and number of projections. If you have different settings there, it is easy to calculate the CTDI.&lt;br /&gt;
&lt;br /&gt;
CTDI Definition:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Integral from +50mm to -50mm of D(z)/NxT&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:*where D(z) is the dose profile along a line z which is perpendicular to the tomographic plane&lt;br /&gt;
:*N is the number of tomographic sections produced in a single rotation&lt;br /&gt;
:*T is the nominal tomographic section thickness&lt;br /&gt;
&lt;br /&gt;
Example: How to estimate how much radiation would be incurred by a mouse scanned at 25&lt;br /&gt;
um resolution (medium resolution -- MR) at 55 kVp, 109 uA, 150 ms IT, for about 30 minutes?&lt;br /&gt;
&lt;br /&gt;
If you take your settings you can calculate the CTDI.  First thing you have to be aware is that the CTDI is something like the local dose but it takes the cone beam geometry and the not perfect collimation of the x-ray beam into account (The CTDI value is always higher than a local dose measurement with for example TLDs). It does not matter how many stacks you are scanning. The dose you have at one point which is within the volume you are scanning gets the same local dose if you are performing a 1 stack or a 4 stack measurement.&lt;br /&gt;
&lt;br /&gt;
With the 55kVp/109uA HR with 300ms we have a value at the 30.7 mm position of 350 mGy. Because you have MR we can divide the values by a factor of 2; and because you have 150ms instead of 300ms there is an other factor of 2. You would get 87.5 mGy for the position 30.7 mm. Because of the cone beam the dose has a quadratic dependency to the diameter of the field of view. (30.7 mm/25 mm)2 = 1.5. The CTDI value for your settings is in the order of 87.5 mGy * 1.5 = 132 mGy.&lt;br /&gt;
&lt;br /&gt;
Note that for in vivo measurements, we should multiply the result by a factor of two since we are doing the measurement in AIR, not WATER.  The charts above are assuming the CTDI done in water.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Determine the calibration drift from QC1===&lt;br /&gt;
&lt;br /&gt;
The QC1 analyses provide an estimate of the calibration drift by considering &#039;mean5&#039; values.  Use &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uct_list&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and make sure to use UU:UCT_3D_MEANS.TXT as the template.  Then give the measurement numbers of the QC1 measurements (or all of them and remove what&#039;s not needed later).&lt;br /&gt;
&lt;br /&gt;
===HowTo: Browse the VMS files from a windows PC===&lt;br /&gt;
&lt;br /&gt;
Pathworks gives you the ability to mount the Alpha as an external drive on your PC.  It would be mounted as an F: or G: drive, then you can navigate using windows explorer.&lt;br /&gt;
&lt;br /&gt;
You can look for the vivaCT in your microsoft windows network neighborhood and see if you can find it...then log in.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Stop and restart the printer queue===&lt;br /&gt;
&lt;br /&gt;
How to fix the printer queue when hung, not working or giving an error.&lt;br /&gt;
A full printer queue can seriously affect system performance.  &lt;br /&gt;
Be sure that the queue is cleaned up from time to time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; $ show queue &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to first find out the real name of your printer queue. &lt;br /&gt;
* Replace &amp;quot;hpljet&amp;quot; and &amp;quot;...dcps_hpljet...&amp;quot; by your own queue (i.e., PRINTER1 for XtremeCT) name below. &lt;br /&gt;
* First approach, as normal user &amp;lt;code&amp;gt;microct&amp;lt;/code&amp;gt;: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ stop/que/reset hpljet&lt;br /&gt;
$ start/que hpljet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Completely remove the queue and re-generate, as user &amp;lt;code&amp;gt;system&amp;lt;/code&amp;gt;&lt;br /&gt;
[[Image:Bones2.jpg|picture_position,left]] &amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Extreme caution!  Explicit permission for this change or similar changes &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be obtained from Dr. Steven Boyd.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ stop/que/reset hpljet&lt;br /&gt;
$ dele/que hpljet&lt;br /&gt;
$ @sys$startup:dcps_hpljet_ip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For other types of queues (i.e., &amp;lt;code&amp;gt;SCEVAL_SLOW&amp;lt;/code&amp;gt;) you can also start/stop.  However, if you use&lt;br /&gt;
&amp;lt;pre&amp;gt;$ stop/que/reset xxx&amp;lt;/pre&amp;gt;&lt;br /&gt;
it kills the current process running.  It is nicer to use&lt;br /&gt;
&amp;lt;pre&amp;gt;$ stop/que/next xxx&amp;lt;/pre&amp;gt;&lt;br /&gt;
to wait for the finishing of the currently executing job first, only then stop the queue.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Requeue a process===&lt;br /&gt;
&lt;br /&gt;
:* Find the process identification using &amp;lt;code&amp;gt;see&amp;lt;/code&amp;gt;&lt;br /&gt;
:* The process must be &amp;lt;I&amp;gt;pending&amp;lt;/I&amp;gt;, &#039;&#039;&#039;not&#039;&#039;&#039; &amp;lt;I&amp;gt;processing&amp;lt;/I&amp;gt;!&lt;br /&gt;
:* &amp;lt;code&amp;gt;set entry 1131 /requeue=SCEVAL_SLOW &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract patient name from database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will show you sample-name of sample-number 1234&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info -m 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will give you some (stupid) info about meas 1234&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you use this function all the time, put the following into &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uct_info  :== $um:uct_info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then the usage info will even be correct&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract disk usage information===&lt;br /&gt;
&lt;br /&gt;
To look at the RSQs in the database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dir/siz dk0:[microct.data...]*.rsq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
the three dots means all subdirectories.&lt;br /&gt;
&lt;br /&gt;
Other useful commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.rsq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
shows you header.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ fda command file-wildcard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
does a &#039;file do all&#039; of the command on all the given wildcard filenames.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe xxxx | search sys$pipe &amp;quot;patient&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
is the pipe command in VMS.&lt;br /&gt;
&lt;br /&gt;
So all three combined:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe fda ctheader dk0:[microct.data...]*.rsq | search sys$pipe &amp;quot;patient name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or any other field you want to search for!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other ideas&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gives you a file &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; with info in it (leave defaults to get all samples ever scanned, otherwise &#039;zoom&#039; in on some samples.)&lt;br /&gt;
&lt;br /&gt;
Check out the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ help search&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and &amp;lt;code&amp;gt;/match=and&amp;lt;/code&amp;gt;&lt;br /&gt;
or &amp;lt;code&amp;gt;/match=or&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit Scanco &amp;lt;code&amp;gt;SCANCO_SUBMIT_COMMAND&amp;lt;/code&amp;gt; symbol===&lt;br /&gt;
&lt;br /&gt;
*Check the current setting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show sym *submit*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In directory &amp;lt;code&amp;gt;DISK2:[MICROCT]MICROCT_SETUP_USER.COM&amp;lt;/code&amp;gt; add the following line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ SCANCO_SUBMIT_COMMAND :== SUBMIT/NOPRINT/QUE=SYS$SLOW /NOTIFY/LOG=SYS$SCRATCH:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then end session and log in again.  Definition of the symbol in the &lt;br /&gt;
&amp;lt;code&amp;gt;MICRO_SETUP_USER.COM&amp;lt;/code&amp;gt; supersedes the standard setting.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Weekly backups with &amp;lt;code&amp;gt;UCT_BACKUP&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The WEEKLY BACKUP can be run from the &amp;lt;code&amp;gt;UCT_BACKUP&amp;lt;/code&amp;gt; program at the bottom.&lt;br /&gt;
&lt;br /&gt;
The backup captures DISK1 and DISK0 (the MICROCT and MICROCT_COMMON stuff).  This includes the programs and databases.&lt;br /&gt;
&lt;br /&gt;
A little helper terminal comes up and gives feedback of every file backed up.&lt;br /&gt;
&lt;br /&gt;
The backup is very fast (and important).&lt;br /&gt;
&lt;br /&gt;
===HowTo: Manage files with &amp;lt;code&amp;gt;UCT_BACKUP&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
Two possible ways to use &amp;lt;code&amp;gt;UCT_BACKUP&amp;lt;/code&amp;gt;:&lt;br /&gt;
:* COPY TO -&amp;gt; this does not update the database.&lt;br /&gt;
:* MOVE TO -&amp;gt; this updates the database.&lt;br /&gt;
&lt;br /&gt;
Scenario 1: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. Use UCT_BACKUP to &#039;move&#039; the RSQ to &#039;tape&#039;&lt;br /&gt;
2. Use UCT_BACKUP to &#039;move&#039; the ISQ to &#039;garbage&#039;&lt;br /&gt;
3. Use UCT_BACKUP to &#039;move&#039; the remainder (AIM/GOBJ) to &#039;tape&#039;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
At operation 3, the measurement directory will be deleted from the measurement disk.  The directory will automatically be restored if you restore your data from tape.&lt;br /&gt;
&lt;br /&gt;
Scenario 2:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
1. Use UCT_BACKUP to &#039;move&#039; the RSQ to &#039;tape&#039;&lt;br /&gt;
2. Use UCT_BACKUP to &#039;move&#039; the ISQ to &#039;garbage&#039;&lt;br /&gt;
3. Move all the GOBJ/AIM/etc to a project directory.&lt;br /&gt;
4. Generate a .SAV file and put on the IMA tape.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note: You will have to delete the measurement directories (using UCT_BACKUP if you like). The disadvantage of this scenario is that the image data cannot be restored using UCT_BACKUP.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use the new &amp;lt;code&amp;gt;UCT_BACKUP&amp;lt;/code&amp;gt; software===&lt;br /&gt;
&lt;br /&gt;
New Features (i) You can now select multiple samples with the Shift and/or the Ctrl key; and (2) You can use the sample name filter field on top to display only names containing the filter string.&lt;br /&gt;
&lt;br /&gt;
Start the move/copy by clicking on &amp;lt;code&amp;gt;&#039;Start...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;&#039;Script...&#039;&amp;lt;/code&amp;gt; button is for advanced users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Advanced Users:&amp;lt;/b&amp;gt;&lt;br /&gt;
Use of the &#039;Script...&#039; button: this will generate a script,&lt;br /&gt;
&amp;lt;code&amp;gt;sys$scratch:archive.com&amp;lt;/code&amp;gt;,&lt;br /&gt;
that you may submit in batch mode later (e.g. over night) by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command sys$scratch:archive.com/after=23:59&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(In a multi-computer cluster setup, you may want to specify the exact queue name of the computer that has the tape hooked up by giving e.g. &amp;lt;code&amp;gt;/que=sceval_fast&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
Insert a tape, but do NOT mount the tape in the normal program. (If necessary: if it&#039;s a new tape, initialize it as usual). The batch job will be started one minute before midnight in the example above.&lt;br /&gt;
&amp;lt;code&amp;gt;$ show entry&amp;lt;/code&amp;gt; will show you that it is holding until then.&lt;br /&gt;
See &amp;lt;code&amp;gt;$ help submit /after&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$ help dcl_tips date_time example&amp;lt;/code&amp;gt; for more help on this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Little Reminder:&amp;lt;/b&amp;gt;&lt;br /&gt;
While the tape is running and writing to it, DO NOT LOG OUT, DO NOT INTERRUPT THE PROGRAM! This would make that tape unusable from this point on - you could still read from that tape up to this point, but could not add more scans to this tape.&lt;br /&gt;
What to do when tape is full? It then displays some message about continuing on another tape. Hit &amp;lt;code&amp;gt;ctrl/c&amp;lt;/code&amp;gt; to interrupt the program, take a fresh tape, initialize it, select the remaining scans to archive again, hit &amp;lt;code&amp;gt;&#039;start&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
And last but not least: WE STRONGLY URGE YOU TO DO THE WEEKLY BACKUP (SAFETY BACKUP OF USER DISK1 WITH YOUR DATABASES ON IT). Two users DID experience disk crashes last year, and without the weekly backup, you may still have all scans on the data disk (e.g. disk2), but without the databases you cannot tell which scans belong the which sample!&lt;br /&gt;
&lt;br /&gt;
How to do weekly backup: insert &#039;special&#039; weekly backup tape, e.g. week_a, and&lt;br /&gt;
just hit &#039;Full backup to tape&#039;.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a SAV (save set) file of your project and store on tape===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mount/for tp0&lt;br /&gt;
&lt;br /&gt;
$ backup/log dk0:[microct.projects.bern]*.* tp0:proj_bern.sav -&lt;br /&gt;
        /block=65534/label=give_the_correct_label/media_form=nocompact&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The above command puts all files in [.bern] in the save set.  If you want all the &lt;br /&gt;
subdirectories too, use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ backup/log dk0:[microct.projects.bern...]*.* tp0:proj_bern.sav -&lt;br /&gt;
        /block=65534/label=give_the_correct_label/media_form=nocompact&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Exclude files with /excl=*.rsq&lt;br /&gt;
&lt;br /&gt;
See the COM file below to see the actual command used by the &amp;lt;code&amp;gt;UCT_BACKUP&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ type um:uct_move_files.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
See also for more options:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ help backup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To extract a SAV file on disk:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ backup/log upat_print_list_nomatch.sav/sav []&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Import foreign data into the Scanco database on the VMS system===&lt;br /&gt;
&lt;br /&gt;
Only ISQ files can be imported into the database, however it is possible to convert other types of data into ISQ files (i.e., stacks of BMPs into ISQ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 1:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After transfering your data to the VMS system (use the data disk &amp;lt;code&amp;gt;disk2&amp;lt;/code&amp;gt;, NOT the user disk &amp;lt;code&amp;gt;disk1&amp;lt;/code&amp;gt;), use the IPL commands &amp;lt;code&amp;gt;/import_freeformat&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/read_aim function&amp;lt;/code&amp;gt; to import your data for conversion to an ISQ.&lt;br /&gt;
&lt;br /&gt;
For DICOM files, start IPL and run the &amp;lt;code&amp;gt;/dicom&amp;lt;/code&amp;gt; function to import. For DICOM, if your object is a single 3D file (-multifile false) or many many individual slice files (-multifile true, and give beginning of filenames, and –extension).&lt;br /&gt;
&lt;br /&gt;
There may be requests by IPL to convert your data to &amp;lt;code&amp;gt;signed short&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;signed char&amp;lt;/code&amp;gt; from other data types. Obey these requests and do it by running the &amp;lt;code&amp;gt;/convert_unsigned&amp;lt;/code&amp;gt; function.&lt;br /&gt;
&lt;br /&gt;
Then, write the ISQ file.&lt;br /&gt;
&amp;lt;pre&amp;gt;ipl&amp;gt; toisq in DK0:[MICROCT.DATA]D0000001.ISQ&lt;br /&gt;
    -square           true&lt;br /&gt;
    -original_pos     false&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This writes the ISQ file. &lt;br /&gt;
&amp;lt;b&amp;gt;Remember&amp;lt;/b&amp;gt;, the ISQ name must be 8 characters long (1 character followed by seven digits)!!! The letters and numbers can be chosen freely.&lt;br /&gt;
&lt;br /&gt;
Fill out a log sheet with the original AIM names that were imported, and the resulting ISQ names that were generated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 2: &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a sample in the database and write down the sample and measurement number. Then, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run um:uct_import&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And give the new ISQ file, the new sample-number and check that the feedback is correct (i.e., that the name from the database is matching the name from the ISQ file header).  If the Patient Name in the ISQ header doesn&#039;t match the measurement database Patient Name, then upon importing the ISQ the header will be updated.&lt;br /&gt;
&lt;br /&gt;
Operator and controlfile can be left 0 if you want.&lt;br /&gt;
&lt;br /&gt;
If you are also importing the RSQ, put it in the same directory as the ISQ.&lt;br /&gt;
&lt;br /&gt;
Then it changes the sample and measurement number in the ISQ file, makes the correct directory on &amp;lt;code&amp;gt;DK0&amp;lt;/code&amp;gt;, and gives you the line on the screen of how to rename the file to the correct, new directory. Take this line and use it on the command line.  Done!  &lt;br /&gt;
&lt;br /&gt;
You can now use the normal &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; program with this file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you were importing an AIM file, delete the original file as it will have the wrong measurement indexes in its log header. You will have to produce the AIM file again from the ISQ so our database writes the evaluation results into the correct sample fields.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt; without importing ISQ into the database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; It is strongly suggested to properly import that ISQ into the database before you run a full 3D evaluation!  See the appropriate HowTo.&lt;br /&gt;
&lt;br /&gt;
In a terminal, &amp;lt;code&amp;gt;$ def uct_default_isq xxxxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then start the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool (or &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
Hit cancel when asked for a file to read and the default ISQ that was set will be read.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; Only start a 3D evaluation if and only if the sample (patient) and measurement&lt;br /&gt;
index are &amp;lt;b&amp;gt;correct&amp;lt;/b&amp;gt; in the ISQ header!&lt;br /&gt;
&lt;br /&gt;
==Project Management==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Example filled out log sheet===&lt;br /&gt;
&lt;br /&gt;
A log sheet, which is always kept near the scanner, must be filled out for&lt;br /&gt;
every measurement on the system.  A blank log sheet is available in the&lt;br /&gt;
Documents section of this Wiki page.&lt;br /&gt;
&lt;br /&gt;
Here is an example log sheet:&lt;br /&gt;
&lt;br /&gt;
::[[Image:Herzog_pic.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Evaluation==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand the morphological parameters===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BV/TV  -&amp;gt; VOX-BV/TV&lt;br /&gt;
BS/BV  -&amp;gt; TRI-BS/BV&lt;br /&gt;
Tb.Th  -&amp;gt; DT-Tb.Th&lt;br /&gt;
Tb.Sp  -&amp;gt; DT-Tb.Sp&lt;br /&gt;
Tb.N   -&amp;gt; DT-Tb.N&lt;br /&gt;
ConnD  -&amp;gt; Conn-Dens&lt;br /&gt;
SMI    -&amp;gt; TRI-SMI&lt;br /&gt;
DA     -&amp;gt; TRI-DA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usually I&#039;d use the names on the left for the plots, but these correspond to the names on the right of the arrow in the Scanco output files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you use the TRI-Tb.Th rather than the DT-Tb.Th*, then you are using the derived (plate-model) morphological parameters.  These are less accurate than the direct parameters.  They are calculated by triangulating the surface (marching cubes) to get BS, and then calculate thickness&lt;br /&gt;
Th = 2 * BV / BS, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mean Values&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mean 1: mean of bone AND marrow --&amp;gt; &#039;apparent density&#039;&lt;br /&gt;
mean 2: mean of what was considered bone only (i.e. what was segmented) &lt;br /&gt;
&#039;bone tissue density&#039;. (so this does depend on threshold a little bit)&lt;br /&gt;
mean 3: empty, or can be used to store mean of cortex, e.g.&lt;br /&gt;
 The function /voxgobj has -region number (zero-based) to goveren which &lt;br /&gt;
 mean value is filled, 1 - 5 (thus region 0 - 4).]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;What you should also know&amp;lt;/b&amp;gt;: because of partial voluming effects, for Mean2, we are DISCARDING the 2 surface voxels of EVERY trabeculae - thus, to get meaningful Mean2, you have to do your scan with the chosen resolution high enough, such that the mean trabeculae is depicted by at the very least 5 pixels, better actually more than 6 pixels thickness. (You can do this check at the end in the XLS sheet: divide DT-Tb.Th* by el-size-mm.x, and you need to get numbers bigger than 6 or 7 or 10 or so.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Start a 3D evaulation from the terminal===&lt;br /&gt;
&lt;br /&gt;
Warning: Do not change &amp;lt;code&amp;gt;uct_evaulation_v4.com&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ipl_fixed_batch_v4.com&amp;lt;/code&amp;gt; in .eval, but only work on your own file (i.e., eval_steve).&lt;br /&gt;
First, an explanation of how the normal evaluation runs by hitting the &#039;Start 3d&#039; button.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_v4.com/para=(xxx,yyy,zzz,…)&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are 8 parameters:&lt;br /&gt;
*P1: number of print outs of our results sheet&lt;br /&gt;
*P2: the ISQ filename&lt;br /&gt;
*P3-5: start x (pos x), y, z&lt;br /&gt;
*P6-8: dim x, y, z&lt;br /&gt;
The parameters p3-p8 come from the white bounding box. The problem is that when you start from the terminal you do not have these. This problem can be overcome by using the &amp;lt;code&amp;gt;isq_to_aim_gobjbox.exe&amp;lt;/code&amp;gt; and then give the relevant parameters. You can &lt;br /&gt;
&amp;lt;code&amp;gt;$ run um: isq_to_aim_gobjbox.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
to see what it&#039;s asking for.&lt;br /&gt;
By using gobjbox you do not need p3-p8. Therefore you can start the evaluation by giving:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_special_josh.com –&lt;br /&gt;
/para=(1,dk0:[microct.data.0000275.0000245]c0000332.ISQ)&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that you can make &amp;lt;code&amp;gt;uct_evaluation_special_josh.com&amp;lt;/code&amp;gt; such that there is no need for P1 (change p2 to p1 in the script, etc).&lt;br /&gt;
[Alternatively to using the gobjbox you could use the normal isq_to_aim, but hard code the dim and pos.]&lt;br /&gt;
Then call whatever IPL files you want to call. Look into &amp;lt;code&amp;gt;fixed_batch_v4&amp;lt;/code&amp;gt; to see how we turn on the database always on the first line of every IPL part, and how we calculate parameters.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Associate the evaluation database with an evaluation===&lt;br /&gt;
&lt;br /&gt;
When &amp;lt;code&amp;gt;/db_scanco_activate&amp;lt;/code&amp;gt; is used in the IPL files, the correct association with the evaluation database is through the Index Patient and Index Measurement in the AIM header.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Index Patient                                    3095&lt;br /&gt;
Index Measurement                                5962&lt;br /&gt;
!-------------------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using IPL&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ipl&lt;br /&gt;
$ read in xxx.aim&lt;br /&gt;
$ examine in log&lt;br /&gt;
$ db true           {activates database}&lt;br /&gt;
$ dt_object         {at end &amp;quot;writing results to database for measurement 1234&amp;quot;}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: Submit a job to the queue===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit/noprint /que=sys$slow ipl_voi_josh_m.com &lt;br /&gt;
  - /log=sys$scratch:test.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract your results from the 3D database===&lt;br /&gt;
&lt;br /&gt;
Assuming you&#039;ve used the &amp;lt;code&amp;gt;SCANCO_SUBMIT_COMMAND&amp;lt;/code&amp;gt; to initialize your evaluations (either manually or through the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool) then you can get all of your results stored into a text file that can be easily imported in Excel.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ uct_list&amp;lt;/pre&amp;gt;&lt;br /&gt;
The output text file will be stored in &amp;lt;code&amp;gt;sys$scratch&amp;lt;/code&amp;gt; and you can ftp this to a PC so that it can be imported into excel and further analysis can be performed. &lt;br /&gt;
&lt;br /&gt;
Importing into Excel requires setting a deliminator based on the space.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Customizing&amp;lt;/b&amp;gt; the &amp;lt;code&amp;gt;uct_list&amp;lt;/code&amp;gt; output.&lt;br /&gt;
&lt;br /&gt;
The default list template is set by the logical &amp;lt;code&amp;gt;UCT_3D_LIST_SHEET&amp;lt;/code&amp;gt; which is normally&lt;br /&gt;
set to point to &amp;lt;code&amp;gt;UU:UCT_3D_LIST.TXT&amp;lt;/code&amp;gt;.  See the templates by&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ dir uu:*.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Almost all the available keywords are in &amp;lt;code&amp;gt;UCT_3D_LIST.TXT&amp;lt;/code&amp;gt; enclosed&lt;br /&gt;
by \\ and //.&lt;br /&gt;
&lt;br /&gt;
Only when you use the &#039;show directly on screen mode&#039;: &lt;br /&gt;
&amp;lt;pre&amp;gt;$ uct_list 1234&amp;lt;/pre&amp;gt;&lt;br /&gt;
then you need to do this to override the default output:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ def/user uct_3d_single_sheet  my-template_file.txt&lt;br /&gt;
$ uct_list 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some example format files are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
UCT_3D_LIST.TXT&lt;br /&gt;
UCT_3D_SINGLE.TXT&lt;br /&gt;
UCT_3D_LIST_W_CRH.TXT&lt;br /&gt;
UCT_3D_MEANS.TXT       --&amp;gt; Use this to get the 5 mean values (i.e., calibration)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A summary of all the available keywords is available in &amp;lt;code&amp;gt;UU:UCT_3D_SINGLE_SHEET.TXT&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Name             :\\UCTMEASFILENAME//&lt;br /&gt;
Sample-Name      :\\SAMPLENAME//&lt;br /&gt;
Sample-Nr        :\\SAMPLENUMBER//&lt;br /&gt;
Meas-Nr          :\\UCTMEASNR//&lt;br /&gt;
Date of Birth    :\\SAMPLEDOB//&lt;br /&gt;
Sample-Remarks	 :\\SAMPLEREM//&lt;br /&gt;
Meas-Remarks     :\\UCTMEASREM//&lt;br /&gt;
Meas-NrofSlices  :\\UCTMEASNUMSLI//&lt;br /&gt;
Direct: -------------------------------------------------------------------&lt;br /&gt;
TV        : \\VOX_TV//&lt;br /&gt;
BV        : \\VOX_BV//&lt;br /&gt;
BV/TV     : \\VOX_BV_TV// &lt;br /&gt;
Conn.Dens.: \\UCT_CONN//&lt;br /&gt;
SMI       : \\MC_SMI//&lt;br /&gt;
Tb.N*     : \\DT_N//&lt;br /&gt;
Tb.Th*    : \\DT_TH//&lt;br /&gt;
Tb.Sp*    : \\DT_SP//&lt;br /&gt;
Tb.1/N.SD*: \\DT_N_SD//&lt;br /&gt;
Tb.Th.SD* : \\DT_TH_SD//&lt;br /&gt;
Tb.Sp.SD* : \\DT_SP_SD//&lt;br /&gt;
Lin.Att.1 : \\UCT_MU0// +-\\UCT_MU0_SD//&lt;br /&gt;
Lin.Att.2 : \\UCT_MU1// +-\\UCT_MU1_SD//&lt;br /&gt;
Lin.Att.3 : \\UCT_MU2// +-\\UCT_MU2_SD//&lt;br /&gt;
Lin.Att.4 : \\UCT_MU3// +-\\UCT_MU3_SD//&lt;br /&gt;
Lin.Att.5 : \\UCT_MU4// +-\\UCT_MU4_SD//&lt;br /&gt;
TRI (Plate Model): --------------------------------------------------------&lt;br /&gt;
TV        : \\MC_TV//&lt;br /&gt;
BV        : \\MC_BV//&lt;br /&gt;
BS        : \\MC_BS//&lt;br /&gt;
BV/TV     : \\MC_BV_TV//&lt;br /&gt;
BS/BV     : \\MC_BS_BV//&lt;br /&gt;
Tb.Th     : \\MC_TH//&lt;br /&gt;
Tb.Sp     : \\MC_SP//&lt;br /&gt;
Tb.N      : \\MC_N//&lt;br /&gt;
Anisotropy:  --------------------------------------------------------------&lt;br /&gt;
|H1|      : \\MC_H1//  H1x: \\MC_H1X//  H1y: \\MC_H1Y//  H1z: \\MC_H1Z//&lt;br /&gt;
|H2|      : \\MC_H2//  H2x: \\MC_H2X//  H2y: \\MC_H2Y//  H2z: \\MC_H2Z//&lt;br /&gt;
|H3|      : \\MC_H3//  H3x: \\MC_H3X//  H3y: \\MC_H3Y//  H3z: \\MC_H3Z//&lt;br /&gt;
DA        : \\MC_DA//&lt;br /&gt;
Dim X	  : \\VOX_DX//&lt;br /&gt;
Dim Y	  : \\VOX_DY//&lt;br /&gt;
Dim Z	  : \\VOX_DZ//&lt;br /&gt;
Pos X	  : \\VOX_PX//&lt;br /&gt;
Pos Y	  : \\VOX_PY//&lt;br /&gt;
Pos Z	  : \\VOX_PZ//&lt;br /&gt;
El-Siz X  : \\VOX_ELSX//&lt;br /&gt;
El-Siz Y  : \\VOX_ELSY//&lt;br /&gt;
El-Siz Z  : \\VOX_ELSZ//  &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Print out report sheets===&lt;br /&gt;
&lt;br /&gt;
The postscript report sheets can be generated and printed on the command line.  For the XtremeCT system, use &amp;lt;code&amp;gt;UPAT_PRINT_LIST.EXE&amp;lt;/code&amp;gt; which can be run (using the symbol):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ UPAT_LIST&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Look in the UU: directory to see options for the template files (UPAT*.TXT) and the postscript output files (*.PS).&lt;br /&gt;
:* UU:UPAT_EVAL_FUP05_SCUSA.PS&lt;br /&gt;
:* UU:UPAT_EVAL_BASELINE_SCUSA.PS&lt;br /&gt;
&lt;br /&gt;
For reports from non-patient measurements (i.e., the vivaCT system or non-patient scans on the XtremeCT), the template files are different (UCT*.TXT) and the postscript outputs are different (UCT*.PS). To print a result sheet use:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ RUN UM:UCT_RAY_BATCH.EXE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to create a postscript file, but not send it to the printer, set the number of copies to zero (interactive).  Then, find the postscript file from the &amp;lt;code&amp;gt;SYS$SCRATCH&amp;lt;/code&amp;gt; directory and transfer it to your PC.  You must transfer the postscript file in ASCII mode.  The files are typically called TEMP_3D.PS or UPAT_PAT_62_RR.PS.  A program such as Adobe Photoshop can convert the postscript file to a different format.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Tabulate your LOG file results from 3D evaluations===&lt;br /&gt;
&lt;br /&gt;
Only use this if you have not used the standard &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool to generate your 3D evaluations (in which case see the HowTo related to the 3D database).&lt;br /&gt;
You can tabulate the LOG files:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or whatever you want to search for can be stored in a text file&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search/output=sys$scratch:ov.txt xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To search more than one log file, and get the output into one single file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ fda/output=xxx.txt search *.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fda means &#039;file do all&#039; and is a script made by Scanco to do one command (search) on a wildcard of files (*.log). Then put all the ov.txt, tv.txt, name.txt etc. files into excel.&lt;br /&gt;
Josh has made a .com file that does a similar job as described above.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Compile the evaluation logs into one file===&lt;br /&gt;
&lt;br /&gt;
Call the &amp;lt;code&amp;gt;UE:UCT_EVALUATION_V4_3D_RESULT.COM&amp;lt;/code&amp;gt; with the same construction&lt;br /&gt;
as &amp;lt;code&amp;gt;$ eval_special&amp;lt;/code&amp;gt;.  If you need help with this, see the HowTo on this&lt;br /&gt;
Wiki site (HowTo: Assign special 3D evaluation to the UCT_EVALUATION tool).&lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;UE:UCT_EVALUATION_V4_3D_RESULT.COM&amp;lt;/code&amp;gt; file to call a specific ipl &lt;br /&gt;
script as you wish.&lt;br /&gt;
&lt;br /&gt;
When you run the evaluation, you will have three new files created:&lt;br /&gt;
&lt;br /&gt;
:*Two files in the measurement directory (on DK0!) (one with each eval 3D results in its own file, and one &amp;lt;code&amp;gt;APPENDED_ALL.TXT&amp;lt;/code&amp;gt; file)&lt;br /&gt;
:*Then in sys$scratch, you will have one &amp;lt;code&amp;gt;SYS$SCRATCH:UCT_LIST_ALL_3D_RESULTS.LOG&amp;lt;/code&amp;gt; file with ALL 3D evaluations of all measurements.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note:&amp;lt;/b&amp;gt; You may need to edit the &amp;lt;code&amp;gt;SCANCO_SUBMIT_COMMAND&amp;lt;/code&amp;gt; to specify a single queue (i.e., /que=sceval$fast)&lt;br /&gt;
&lt;br /&gt;
===HowTo: Do cortical midshaft evaluation with moment of inertia calculation===&lt;br /&gt;
&lt;br /&gt;
This explains what happens when you type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; $ midshaft or $ eval_midshaft &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Draw a rough contour in the first of your 20 (or 12 or whatever) slices,&lt;br /&gt;
open the Contouring Sub-window, double-click on the big image, and it&lt;br /&gt;
automatically&lt;br /&gt;
finds the best contour. Then click on &#039;Selection&#039; &#039;Forwards&#039;, then &#039;Iterate&lt;br /&gt;
Forwards&#039;, and it finds the best contour for every of your (about) 20 slices.&lt;br /&gt;
&lt;br /&gt;
Then &#039;cancel&#039; the contouring sub-window, and start the 3D evaluation.&lt;br /&gt;
&lt;br /&gt;
FIRST: set the correct threshold, sigma, support in the file:&lt;br /&gt;
[microct.main]ipl_fixed_batch_midshaft.com (or in [microct.eval])!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Save contours when it asks you). Exit the program.&lt;br /&gt;
&lt;br /&gt;
When you now type $ que in the terminal, you will see some job called&lt;br /&gt;
&#039;uct_evaluation_midshaft&#039;&lt;br /&gt;
(or similar), whereas the trabecular evaluations were called&lt;br /&gt;
&#039;uct_evaluation_v4&#039;.&lt;br /&gt;
Also the .log file in Scratch has the _midshaft name.&lt;br /&gt;
&lt;br /&gt;
I now only calculate the TRI values (Plate Model), and not the direct stuff&lt;br /&gt;
anymore, since for only 20 slices, the truly 3D Tb.Th might be quite off.&lt;br /&gt;
Also, you will see lots of tildes on the result sheets. This is to tell&lt;br /&gt;
you that, if the meas. were trab. bone, those values would only be approximate.&lt;br /&gt;
But now for the cortex, they are actually correct ! (see below for more explan about this)&lt;br /&gt;
&lt;br /&gt;
So I would now use the tildes to check the &#039;excel&#039; table that the operator&lt;br /&gt;
has taken the correct script for the trab. or cort. evaluations for the&lt;br /&gt;
respective measurements !&lt;br /&gt;
&lt;br /&gt;
So what&#039;s the advantage of all this ? Now, also VOX-TV is correct! So VOX-TV&lt;br /&gt;
is the whole area, VOX-BV the doughnut, so TV-BV is the marrow area ! And still,&lt;br /&gt;
TRI-Tb.Th is the cortical thickness. (TRI-TV is NOT correct, because the .gobj&lt;br /&gt;
feature was turned off.)&lt;br /&gt;
&lt;br /&gt;
I say &#039;area&#039; above: depending on how many slices one individual scan has,&lt;br /&gt;
VOX-BV (and VOX-TV) might be different for different scans, so you will HAVE to&lt;br /&gt;
convert the volumes to area again:&lt;br /&gt;
&lt;br /&gt;
volume equals area times height&lt;br /&gt;
--&amp;gt; Bone Area = VOX-BV / height = BV / (dim.z * el_size_mm.z)&lt;br /&gt;
(and same for Total area, of course :-)&lt;br /&gt;
&lt;br /&gt;
All clear ???&lt;br /&gt;
&lt;br /&gt;
If you want porosity of the bone itself:&lt;br /&gt;
&lt;br /&gt;
draw two contours: one around, counter-clockwise, on on the inside, clock-wise&lt;br /&gt;
(thus a &#039;negative&#039;, excluding contour).&lt;br /&gt;
Now, TV will be just that ring area, BV will be the bone within that ring area,&lt;br /&gt;
and BV/TV will be 1 - porosity, thus BV/TV 94% means 6% porosity.&lt;br /&gt;
&lt;br /&gt;
*****************&lt;br /&gt;
&lt;br /&gt;
Application of this script to metaphysis scan (with trab. in middle):&lt;br /&gt;
&lt;br /&gt;
$ midshaft&lt;br /&gt;
draw one contour around the cortex, and in same slices, a NEGATIVE contour on&lt;br /&gt;
the inside (CW contour) to exclude the trab.&lt;br /&gt;
(potentially work with the BP (brake-point) system to be able to morph the&lt;br /&gt;
negative contours, even though there is already a &#039;outer&#039; contour around the&lt;br /&gt;
bone in every slice.)&lt;br /&gt;
&lt;br /&gt;
Start 3D eval, read out the data-base with uct_list.&lt;br /&gt;
&lt;br /&gt;
NB: you CANNOT give that used .gobj a special name such as c0001234_cortex.gobj!&lt;br /&gt;
Only after the eval (or midshaft eval) has finished, you may copy it to a more&lt;br /&gt;
meaningful name - but all of our evaluations are just taking the STANDARD gobj name!&lt;br /&gt;
&lt;br /&gt;
Then afterwards (after renaming or copying the _seg.aim to _cortex.aim, and&lt;br /&gt;
.gobj to _cortex.gobj), you may want to start the very normal eval with normal&lt;br /&gt;
(inner) contours to evaluate the trabecular compartement.&lt;br /&gt;
Remember: the values in our 3D result database then are OVERWRITTEN.&lt;br /&gt;
&lt;br /&gt;
(if you have a whole study, I would recommend to run the $ midshaft for ALL&lt;br /&gt;
samples, $ uct_list to e.g. sys$scratch:mystudy_cortex.txt, rename/copy gobj and&lt;br /&gt;
seg for all, and THEN run the trab. eval for all samples, $ ust_list and you&lt;br /&gt;
have two nice complete xls sheets.)&lt;br /&gt;
&lt;br /&gt;
**********************&lt;br /&gt;
&lt;br /&gt;
More explanations of why the plate model is correct:&lt;br /&gt;
&lt;br /&gt;
Assume a ring (cortex).&lt;br /&gt;
&lt;br /&gt;
Area = thickness * &#039;middle line&#039;.&lt;br /&gt;
&#039;middle line&#039; = average of outer and inner circumference&lt;br /&gt;
--&amp;gt; &#039;middle line&#039; = 0.5 * &#039;bone surface&#039;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; thickness = bone volume * 2 / bone surface.&lt;br /&gt;
&lt;br /&gt;
And this is nothing else but the &#039;plate model&#039; formula for Tb.Th!&lt;br /&gt;
&lt;br /&gt;
nice, no ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And why not just run the &#039;normal trabecular eval&#039;?&lt;br /&gt;
in the &#039;normal&#039; TRI calculation, we are EXCLUDING all surfaces that are created&lt;br /&gt;
artificially by a gobj line that cuts through a trab.&lt;br /&gt;
&lt;br /&gt;
However, for the midshaft, this means: the whole outer (or even inner, if also&lt;br /&gt;
inner contour is there) is SUPPRESSED, because it is touching the gobj line. So&lt;br /&gt;
this is where that midshaft script comes in: it turns off that suppression.&lt;br /&gt;
&lt;br /&gt;
***************&lt;br /&gt;
&lt;br /&gt;
and some explanations, why the direct DT-Tb.Th* is NOT correct for a scan with&lt;br /&gt;
just e.g. 12 slices:&lt;br /&gt;
If we fill the structure with spheres, those spheres should be bounded by the&lt;br /&gt;
width of the cortex, not just by the fact that we only have 12 slices...&lt;br /&gt;
&lt;br /&gt;
(and even more so: We are always doing &#039;aim box&#039; suppression with the spheres: &lt;br /&gt;
if a sphere touches the boundary of the aim box, it is suppressed!&lt;br /&gt;
&lt;br /&gt;
So this is quite crucial for Tb.Sp and Tb.N: to get meaningful Tb.Sp, you would&lt;br /&gt;
need a LOT of slices. Also, then, you cannot have the inner contour - otherwise&lt;br /&gt;
the negative inner contour will delete the Tb.Sp. spheres... &lt;br /&gt;
&lt;br /&gt;
IF you have enough slices, you may opt to turn the /dt_object on again in the&lt;br /&gt;
midshaft script (second half). Then DT-Tb.Th* and TRI-Tb.Th just have a slightly&lt;br /&gt;
different behaviour if there are little pores within the cortex:&lt;br /&gt;
&lt;br /&gt;
TRI: the little pore just adds a little BS, thus the influence is not that big.&lt;br /&gt;
DT: the little pore cuts the thickness sphere in half, thus at that location,&lt;br /&gt;
the thickness is halved.&lt;br /&gt;
&lt;br /&gt;
**************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The script is also calculating Mean1 and Mean2 now:&lt;br /&gt;
Mean1: &#039;apparent&#039; density, average over whole TV&lt;br /&gt;
Mean2: &#039;tissue&#039; density: average over what was segmented as bone only.&lt;br /&gt;
&lt;br /&gt;
These mean values will be in mg HA/ccm if you have the calibration option for&lt;br /&gt;
bone density installed (and activated for those scans).&lt;br /&gt;
Remember: the bone has to have some soft-tissue (or equivalent) on the inside,&lt;br /&gt;
and preferably also on the outside then.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Temporarily change the evaluation for any &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
In a terminal window, we need to redefine the logical that determines which&lt;br /&gt;
3D evaluation is associated with the &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt; tool.&lt;br /&gt;
&lt;br /&gt;
For example, typing &amp;lt;code&amp;gt;VOI&amp;lt;/code&amp;gt; runs the &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt; tool&lt;br /&gt;
by executing &amp;lt;code&amp;gt;UE:UCT_EVALUATION_VOI.COM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&amp;lt;pre&amp;gt;$ show logical UCT_EVALUATION&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then you can redefine this to point to another evaluation script.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ define UCT_EVALUATION UE:UCT_EVALUATION_CUTOUT.COM&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is only redefined in the particular terminal you are using, and it&lt;br /&gt;
will reset to its default in a new terminal.  It will also not work if you&lt;br /&gt;
try to submit the job to a queue.  It only works interactively.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Assign special 3D evaluation to the &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt; tool===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;: This is for advanced users ONLY.  Do not attempt this without contacting Steve!&lt;br /&gt;
&lt;br /&gt;
This will show how to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt;:&lt;br /&gt;
It is easy to set up multiple .COM files for the 3D evalulation tool, one such set-up is already prepared on your computer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ eval_special&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will do something similar to &amp;lt;code&amp;gt;$ voi&amp;lt;/code&amp;gt; where the normal contour program opens, but if you start the 3D eval, the special script &amp;lt;code&amp;gt;um:uct_evaluation_special.com&amp;lt;/code&amp;gt; is called (associated with eval_special), which then in turn calls &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt;, where you can specify your own set of thresholds, etc.&lt;br /&gt;
&lt;br /&gt;
So it is a daisy chain of files which we will need to follow to set up a special &amp;lt;code&amp;gt;xxx_kyle.com&amp;lt;/code&amp;gt; script, and where ever we encounter &amp;lt;code&amp;gt;_special.com&amp;lt;/code&amp;gt;, we copy and change it to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; you will need to do the following:&lt;br /&gt;
&lt;br /&gt;
*1. Edit &amp;lt;code&amp;gt;disk1:[microct]microct_setup_user.com&amp;lt;/code&amp;gt; (double-click on file), please be careful here, it&#039;s very important! (and I hope you have done your &#039;weekly full backup&#039; regularly, so you could always retrieve a good version of login.com...)&lt;br /&gt;
&lt;br /&gt;
*2. Then, towards to bottom and duplicate the line&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_special :== @com:eval_var.com um:uct_evaluation_special.com&amp;lt;/code&amp;gt;&lt;br /&gt;
and change duplicate to&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_kyle    :== @com:eval_var.com um:uct_evaluation_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make this command &amp;lt;code&amp;gt;eval_kyle&amp;lt;/code&amp;gt; available after you login freshly. Save and Exit.&lt;br /&gt;
&lt;br /&gt;
*3. Then go to &amp;lt;code&amp;gt;disk1:[microct.eval]&amp;lt;/code&amp;gt; and copy the file &amp;lt;code&amp;gt;uct_evaluation_special.com&amp;lt;/code&amp;gt; to the name &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt; (&#039;Commands&#039;, &#039;Copy ...&#039;, BUT CLICK ON THE THREE DOTS and give new output name. &lt;br /&gt;
If you do not see the &amp;lt;code&amp;gt;eval_special:&amp;lt;/code&amp;gt; go to terminal, &amp;lt;code&amp;gt;$ dir ue:*special*.com&amp;lt;/code&amp;gt; and take it from the &amp;lt;code&amp;gt;microct_common&amp;lt;/code&amp;gt; directory)&lt;br /&gt;
&lt;br /&gt;
*4. Edit the &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt; file: at the top, change &amp;lt;code&amp;gt;ipl_......_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*5. Copy &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*6. Edit &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; to your liking. If you want &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; to not perform the full evaluation, but only something akin to &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, then, in the steps above, copy &amp;lt;code&amp;gt;uct_eval_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;ipl_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; (thus you take the &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; script as template for the &amp;lt;code&amp;gt;_kyle&amp;lt;/code&amp;gt; script).&lt;br /&gt;
&lt;br /&gt;
*7. Then open a new terminal (&#039;applications&#039;, &#039;decterm&#039;), &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; should work now!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;: When you start the 3D eval, then&lt;br /&gt;
&amp;lt;code&amp;gt;$ que&amp;lt;/code&amp;gt;&lt;br /&gt;
will show you your batch job with your name on it now!&lt;br /&gt;
&lt;br /&gt;
And now a few more explanations how the whole thing works: in all eval programs, hitting &#039;Start 3d&#039; just submits the logical &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$ show log uct_evaluation&amp;lt;/code&amp;gt; shows you that by default, this points to &amp;lt;code&amp;gt;ue:uct_evaluation_v4.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Those little &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;eval_steve&amp;lt;/code&amp;gt; scripts then just temporarily redefine this logical so that a different script is submitted when you &amp;lt;code&amp;gt;&#039;start 3d eval&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
About the &#039;&#039;&#039;corelut eval&#039;&#039;&#039;: Then we start a whole different eval program: the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt;. So, if you set up a &amp;lt;code&amp;gt;eval_steve_c&amp;lt;/code&amp;gt; (or whatever you want to call it): Produce a &amp;lt;code&amp;gt;eval_var_c.com&amp;lt;/code&amp;gt; in the directory commands (maybe copy from microct_common to [microct.commands]), and there, on the last line, instead of starting&lt;br /&gt;
&amp;lt;code&amp;gt;$ uct_evaluation&amp;lt;/code&amp;gt;&lt;br /&gt;
(the normal program), replace by&lt;br /&gt;
&amp;lt;code&amp;gt;$ evalc&amp;lt;/code&amp;gt;&lt;br /&gt;
which starts the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt; - and because the &amp;lt;code&amp;gt;eval_var.com&amp;lt;/code&amp;gt; has over-ridden the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; logical just before, then you are starting different script upon starting 3d eval.&lt;br /&gt;
NB: we have a logical AND a symbol called &amp;lt;code&amp;gt;uct_evalution&amp;lt;/code&amp;gt;. Sorry for confusion. Symbol &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; starts normal &amp;lt;code&amp;gt;eval&amp;lt;/code&amp;gt; program, so this is what you replace by symbol &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt; now).&lt;br /&gt;
&lt;br /&gt;
===HowTo: Convert CT numbers to mg HA/ccm===&lt;br /&gt;
&lt;br /&gt;
The two byte numbers (short) can be converted to mu values by first dividing by mu_scaling which is probably 4096. Then apply the slope and intercept to get mg HA/ccm. A typical slope may be 2.95e+02 and intercept -1.896e+02. &lt;br /&gt;
&lt;br /&gt;
These numbers are available in the AIM header, or the ISQ header (&amp;lt;code&amp;gt;$ run ut:ctheader&amp;lt;/code&amp;gt;).&lt;br /&gt;
The conversion is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mg HA/ccm = (AIM/mu_scaling) * slope + intercept&lt;br /&gt;
mg HA/ccm = (AIM/4096) * 295.494 – 189.695&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!---------------------------------------------------------------------- &lt;br /&gt;
Mu_Scaling                    4096 &lt;br /&gt;
Calibration Data              55 kVp, 200mg HA wedge, 4096 scaling &lt;br /&gt;
Calib. default unit type      2 (Density) &lt;br /&gt;
Density: unit                 mg HA/ccm &lt;br /&gt;
Density: slope                2.95493988e+02 &lt;br /&gt;
Density: intercept            -1.89695007e+02 &lt;br /&gt;
HU: mu water                  0.58200 &lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a list of registered measurements===&lt;br /&gt;
&lt;br /&gt;
:* To generate a list of measurements that are registered in the data base, to determine where backups are stored, or if the data is still on disk:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;$ write_info&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*It asks you for a range of measurement numbers or sample names, and creates &amp;lt;code&amp;gt; sys$scratch:info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: View the scout views===&lt;br /&gt;
&lt;br /&gt;
Use the program ximage&lt;br /&gt;
&amp;lt;pre&amp;gt;$ x asdf.SCV&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix SAP colours when green===&lt;br /&gt;
&lt;br /&gt;
(using the standard gray colourmap), if changing color maps doesn&#039;t help.&lt;br /&gt;
&lt;br /&gt;
:*Menu point &#039;Norm, Default is Bone = 16000.&lt;br /&gt;
&lt;br /&gt;
:*Take max for 32000, or &#039;Adapt slice&#039;.&lt;br /&gt;
&lt;br /&gt;
::Note: Do NOT take &#039;adapt vol&#039; - it will be extremely slow!  Every single mouse-click it re-calculates whole volume...&lt;br /&gt;
&lt;br /&gt;
==Writing Scripts==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Get information about a sample or measurement from database===&lt;br /&gt;
&lt;br /&gt;
The following will create a &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create your own IPL script with some tips===&lt;br /&gt;
&lt;br /&gt;
To make a script that would submit a job to the queue with the command as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you need to create your own IPL file would be translated to the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit /noprint /que=sys$slow ue:IPL_VOI_JOSH_M.COM &lt;br /&gt;
  - /log=sys$scratch:test.log /para=(&#039;aim_file&#039;,&#039;gobj_file&#039;,&#039;seg_file&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The IPL file would look something like this…&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$   if p1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$ 	THEN &lt;br /&gt;
$	write sys$output &amp;quot;Give DK0:[xxx]C0001234_SEG.aim on the line.&amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Or: &amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Type $ scanco_submit_command um:ipl_eval_autostart/para=(dk0:[xxx]c00123_seg.aim) &amp;quot;&lt;br /&gt;
$ 	exit&lt;br /&gt;
$   endif&lt;br /&gt;
$&lt;br /&gt;
$ gobj_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.GOBJ&amp;quot;&lt;br /&gt;
$ aim_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.AIM&amp;quot;&lt;br /&gt;
$&lt;br /&gt;
$!&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some more handy IPL sequences are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then you just need to give meas. number as P1 (and maybe slice range as p2),&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
OR, some nice starts are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P3 .EQS. &amp;quot;&amp;quot;&lt;br /&gt;
$    THEN&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to duplicate&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: New Sample Number from Database&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: New Start Letter of ISQ file&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P4: Optional: Operator Number&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P5: Optional: Controlfile Number&amp;quot;&lt;br /&gt;
$      EXIT&lt;br /&gt;
$    ENDIF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where you say which parameters HAVE to be there (up to p3), and which ones are optional.&lt;br /&gt;
&lt;br /&gt;
All together, the script may look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$    THEN &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to reco&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: Optional: Slice number N or Range M:N. Auto:All&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: Optional: Queue. Auto: sys$slow&amp;quot; &lt;br /&gt;
$      EXIT &lt;br /&gt;
$    ENDIF &lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A &lt;br /&gt;
$ if p3 .eqs. &amp;quot;&amp;quot; then p3 := SYS$SLOW &lt;br /&gt;
$ slices  = p2 &lt;br /&gt;
$ quename = p3 &lt;br /&gt;
$ INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1) &lt;br /&gt;
$ INPUT = INPUT - F$PARSE(INPUT,,,&amp;quot;VERSION&amp;quot;) &lt;br /&gt;
$ logfile = &amp;quot;sys$scratch:RECO_&amp;quot; + f$PARSE(input,,,&amp;quot;NAME&amp;quot;) + &amp;quot;.LOG&amp;quot; &lt;br /&gt;
$ submit/noprint/queue=&#039;quename&#039; uct_reconstruction_file - &lt;br /&gt;
    /para=(&#039;input&#039;,&#039;slices&#039;,&#039;logfile&#039;) &lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;lt;code&amp;gt;uct_reconstruction_file&amp;lt;/code&amp;gt; is a logical that points to &amp;lt;code&amp;gt;um:uct_reconstruction.com&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Logicals are preferred in scripts to make them more universal.&lt;br /&gt;
&lt;br /&gt;
==Errors and Fixes==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix &amp;quot;last slice&amp;quot; error problem when extracting AIM from ISQ===&lt;br /&gt;
&lt;br /&gt;
Sometimes the evaluation script (i.e., voi) converting the ISQ to an AIM fails because it tries to read one slice more than what is available in the ISQ data. The result of this failure is that the 3D analysis appears to fail and no .AIM or _SEG.AIM is created in the data directory. For example, it may have tried to read 261 slices, but there were only 260 slices available.&lt;br /&gt;
The easiest work around is to make sure that the white bounding box in the uct_evaluation program does not include the last slice (largest Z dimension). Scanco is aware of this problem and will fix it in future software releases (V5.2).&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=How_To%27s&amp;diff=1267</id>
		<title>How To&#039;s</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=How_To%27s&amp;diff=1267"/>
		<updated>2005-11-07T12:28:53Z</updated>

		<summary type="html">&lt;p&gt;Scanco: /* HowTo: Stop and restart the printer queue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=HowTo Library=&lt;br /&gt;
&lt;br /&gt;
==OpenVMS==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Helpful VMS commands===&lt;br /&gt;
&lt;br /&gt;
*Delete&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ delete *.aim;*&lt;br /&gt;
$ dl *.aim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Shut down the Alpha stations and start up again===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Do not do this unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
For shutdown&lt;br /&gt;
&lt;br /&gt;
At the login screen, type &amp;quot;shutdown&amp;quot;/no password and hit enter. &lt;br /&gt;
Then, you can turn the computer off at the prompt.&lt;br /&gt;
&lt;br /&gt;
Then, you may turn the disk array off (unplug it as there is no power switch).&lt;br /&gt;
&lt;br /&gt;
After you move the computer, power on the disk array and then the computer.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand difference between &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; is the same as &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;, but only with mcr you can hand over &#039;in-line&#039; parameters to an .exe file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
does not work, but you  have to say&lt;br /&gt;
&amp;lt;pre&amp;gt;$ mcr ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But funnily if you define a symbol in &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ ctheader :== $ut:ctheader.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with just neither run nor mcr, but the &#039;funny&#039; $ sign, then you can also hand over the ISQ name in-line.&lt;br /&gt;
&lt;br /&gt;
Small detail with big effect...&lt;br /&gt;
&lt;br /&gt;
===HowTo: Make commands available to all users with symbols or paths===&lt;br /&gt;
&lt;br /&gt;
DCL$PATH is one way to do that, WE don&#039;t use it...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ def dcl$path disk1:[microct.main],disk1:[microct.util]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, if you type&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ uct_t&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
it will first try to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ @uct_t.com&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
and then&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ r uct_t.exe&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
however, we usually define it by giving full path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ progx :== $disk1:[microct.main]progx.exe&lt;br /&gt;
$ com_proc_x :== @disk1:[microct.main]procedure.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type the shortcut (&#039;symbol&#039; in VMS language)&lt;br /&gt;
&lt;br /&gt;
We use the &#039;cd&#039; to set the default path, you may also use this in your command procedure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;proc.com&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd &#039;p1&#039;&lt;br /&gt;
$ dir *.*/size&lt;br /&gt;
&lt;br /&gt;
$ define COM disk1:[microct.commands]&lt;br /&gt;
$ p :== @COM:PROC.COM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
these both go into &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ p disk4:[microct.data.0000007.000009]*.ISQ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Launch an editor such as EVE===&lt;br /&gt;
&lt;br /&gt;
On the command line&lt;br /&gt;
&amp;lt;pre&amp;gt;$ edit/display=decwindows/tpu fname.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit a symbol set by Scanco such as AIX===&lt;br /&gt;
&lt;br /&gt;
[[Image:Bones2.jpg|picture_position,left]] &amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Extreme caution!  Explicit permission for this change or similar changes &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be obtained from Dr. Steven Boyd.&lt;br /&gt;
&lt;br /&gt;
Log in as user calibration&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set proc/priv=bypass&lt;br /&gt;
$ cdc (changes to microct_common)&lt;br /&gt;
$ sea *.com aix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit that file which is called &amp;lt;code&amp;gt;microct_setup_common.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Another example&#039;&#039;: To make the backspace/insert keys work properly, edit the &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt; and insert the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set terminal/insert&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anywhere suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: File do all -- apply one command to a whole set of files===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda ctheader dk0:[microct.data.0001234...]*.isq &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to see the header of all isq files of sample 1234 (the three dots ... means all subdirectories)&lt;br /&gt;
&lt;br /&gt;
Or: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda aix dk0:[microct.data.0001234.00005678]*.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to see the processing log of all aim files of scan 5678&lt;br /&gt;
&lt;br /&gt;
Wildcard &amp;quot;*&amp;quot; means multiple characters, &amp;quot;%&amp;quot; is for ONE character: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda aix dk0:[microct.data...]C%%%%%%%.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(yes, 7 %&#039;s)&lt;br /&gt;
&lt;br /&gt;
to show the aim header of the gray-scale c0000135.aim (etc) files only, and NOT from the _seg.aims also.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning: CAUTION! &amp;lt;/b&amp;gt; Always test the wildcard expression first with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ dir dk0:[xxx...]*.aim &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;file do all&#039; fda command can even be combined with a pipe, or an /output qualifier: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ pipe fda aix dk0:[microct...]*.aim | search sys$pipe &amp;quot;Slope&amp;quot; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will show you all &amp;quot;Slopes&amp;quot; in a row. (but you may not see which slope belongs to which aim file anymore...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda/output=sys$scratch:all_headers.log aix dk0:[microct...]*.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
will write all the output into the .log file - which you can then either edit, or &lt;br /&gt;
&amp;lt;code&amp;gt;$ search sys$scratch:all_headers.log &amp;quot;String&amp;quot;&lt;br /&gt;
or whatever you want. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;fda&amp;quot; is our self-written script, so you may have to try-n-error a bit...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda command file_wildcard [Optional: further parameters]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the command consists of multiple words with spaces inbetween (e.g. mcr ut:xxx.exe), then enclose the command in double-quotes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda &amp;quot;mcr ut:uct_ext_header_display&amp;quot; dk0:[microct...]*.isq 8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NB: the further parameters may not contain wildcards - so unfortunately, the fda can NOT be used to &#039;adaptively&#039; rename a whole bunch of files.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a customized button in the session manager===&lt;br /&gt;
&lt;br /&gt;
The session manager part to enable the double-click on the AIM file:&lt;br /&gt;
Session Manager, &#039;Options&#039;, &#039;Menu&#039;, enter new item&lt;br /&gt;
SAP&lt;br /&gt;
with command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@decw$user_defaults:sap$vue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then move that menu point into &#039;Applications&#039; menu.&lt;br /&gt;
Also:&lt;br /&gt;
&#039;Options&#039;, &#039;File types&#039;, Create &#039;AIM&#039; file type.&lt;br /&gt;
Move &#039;rename&#039;, &#039;copy&#039;, &#039;purge&#039; etc. into menu, Select &#039;SAP&#039;, click  on&lt;br /&gt;
&#039;Change double click&#039;, and also move SAP into menu.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Export the VMS display to SUN or LINUX terminal===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# - temple&lt;br /&gt;
$ - sceval&lt;br /&gt;
# xhost +temple.ucalgary.ca&lt;br /&gt;
# ssh -X microct@sceval.ucalgary.ca&lt;br /&gt;
$ set display /create /transport=tcpip /node=temple.ucalgary.ca&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE:&amp;lt;/b&amp;gt; Do not use &amp;lt;code&amp;gt;xhost+&amp;lt;/code&amp;gt;.  Always specific exactly which computer is being&lt;br /&gt;
allowed X access.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Monitor system usage===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ monitor/interval=1 processes/topcpu&lt;br /&gt;
$ monitor/interval=1 system&lt;br /&gt;
$ show error&lt;br /&gt;
$ show system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;show error&amp;lt;/code&amp;gt; may indicate errors.  One or two errors is OK.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Configure the EVE editor===&lt;br /&gt;
&lt;br /&gt;
The following file, called &amp;lt;code&amp;gt;tpu.dat&amp;lt;/code&amp;gt;, should be installed in &amp;lt;code&amp;gt;disk1:[microct.xdefaults]:&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# DECTPU V3.1 1993-04-22 15:50 defaults&lt;br /&gt;
# CHANGED B.KOLLER 21-JUN-90&lt;br /&gt;
#&lt;br /&gt;
# Copyright (c) 1993 Digital Equipment Corporation.  All rights reserved.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
# The following are all the resource names that DECTPU supports.&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Title:		DECTPU Copyright © Digital Equipment Corporation 1992.  All Rights Reserved.&lt;br /&gt;
Tpu.Tpu$MainWindow.ApplicationTitle:	DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.IconName:		DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.X:			610&lt;br /&gt;
Tpu.Tpu$MainWindow.Y:			0&lt;br /&gt;
#&lt;br /&gt;
# The following resource names are commented out so that users can specify&lt;br /&gt;
# *rows and *columns and have DECTPU obey those directives.  If DECTPU finds&lt;br /&gt;
# finds no resource names governing the number of rows and columns it should&lt;br /&gt;
# have, it uses 24 rows and 80 columns.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Columns:	80&lt;br /&gt;
Tpu.Tpu$MainWindow.Rows:	56&lt;br /&gt;
*EVE_MENU_BAR*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmScrollBar*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmDialogShell*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmMenuShell*background:	#ADADADADADAD&lt;br /&gt;
*background:			white&lt;br /&gt;
Tpu*condensedFont: OFF&lt;br /&gt;
Tpu*fontSetSelection: 0&lt;br /&gt;
&lt;br /&gt;
# 0 = big font&lt;br /&gt;
# 1 = little font&lt;br /&gt;
# 2 = GS font (German Standard)&lt;br /&gt;
# 3 = Fine font (used only for non-latin 1 fonts?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scanco System and Setup==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Calculate vivaCT CTDI dose===&lt;br /&gt;
&lt;br /&gt;
Assuming the following settings on the vivaCT, we will calculate the CTDI dose.&lt;br /&gt;
&lt;br /&gt;
HIGH MODE:&lt;br /&gt;
 1000 projections&lt;br /&gt;
 0.109 mA&lt;br /&gt;
 200 ms IT&lt;br /&gt;
&lt;br /&gt;
I calculate the time current value as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;0.109 mA * (0.200 + 0.012) S * 1000 proj= 23.11 mAs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 0.012 is the integration time between projections.&lt;br /&gt;
&lt;br /&gt;
Taking the proportion of the 68 mAs at 55 kV resulting in 720 mGy (see the document on example&lt;br /&gt;
dose calculation on this Wiki site), we have:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;23.11 / 68 * 720 = 245 mGy&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then multiplying by your factor 2 (because for our setup our CTDI is more like in air), we get:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;2 * 245 = 490 mGy per scan.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Browse the VMS files from a windows PC===&lt;br /&gt;
&lt;br /&gt;
Pathworks gives you the ability to mount the Alpha as an external drive on your PC.  It would be mounted as an F: or G: drive, then you can navigate using windows explorer.&lt;br /&gt;
&lt;br /&gt;
You can look for the vivaCT in your microsoft windows network neighborhood and see if you can find it...then log in.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Stop and restart the printer queue===&lt;br /&gt;
&lt;br /&gt;
How to fix the printer queue when hung, not working or giving an error.&lt;br /&gt;
A full printer queue can seriously affect system performance.  &lt;br /&gt;
Be sure that the queue is cleaned up from time to time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; $ show queue &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to first find out the real name of your printer queue. &lt;br /&gt;
* &#039;&#039;&#039;&#039;&#039;Replace &amp;quot;hpljet&amp;quot; and &amp;quot;...dcps_hpljet...&amp;quot; by your own queue name below.&#039;&#039;&#039;&#039;&#039; &lt;br /&gt;
* First approach, as normal user microct: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ stop/que/reset hpljet&lt;br /&gt;
$ start/que hpljet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Completely remove the queue and re-generate, as user system&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ stop/que/reset hpljet&lt;br /&gt;
$ dele/que hpljet&lt;br /&gt;
$ @sys$startup:dcps_hpljet_ip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Requeue a process===&lt;br /&gt;
&lt;br /&gt;
:* Find the process identification using &amp;lt;code&amp;gt;see&amp;lt;/code&amp;gt;&lt;br /&gt;
:* The process must be &amp;lt;I&amp;gt;pending&amp;lt;/I&amp;gt;, not &amp;lt;I&amp;gt;processing&amp;lt;/I&amp;gt;!&lt;br /&gt;
:* &amp;lt;code&amp;gt;set entry 1131 /requeue=SCEVAL_SLOW &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract patient name from database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will show you sample-name of sample-number 1234&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info -m 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will give you some (stupid) info about meas 1234&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you use this function all the time, put the following into &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uct_info  :== $um:uct_info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then the usage info will even be correct&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract disk usage information===&lt;br /&gt;
&lt;br /&gt;
To look at the RSQs in the database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dir/siz dk0:[microct.data...]*.rsq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
the three dots means all subdirectories.&lt;br /&gt;
&lt;br /&gt;
Other useful commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.rsq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
shows you header.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ fda command file-wildcard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
does a &#039;file do all&#039; of the command on all the given wildcard filenames.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe xxxx | search sys$pipe &amp;quot;patient&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
is the pipe command in VMS.&lt;br /&gt;
&lt;br /&gt;
So all three combined:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe fda ctheader dk0:[microct.data...]*.rsq | search sys$pipe &amp;quot;patient name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or any other field you want to search for!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other ideas&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gives you a file &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; with info in it (leave defaults to get all samples ever scanned, otherwise &#039;zoom&#039; in on some samples.)&lt;br /&gt;
&lt;br /&gt;
Check out the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ help search&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and &amp;lt;code&amp;gt;/match=and&amp;lt;/code&amp;gt;&lt;br /&gt;
or &amp;lt;code&amp;gt;/match=or&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit Scanco &amp;lt;code&amp;gt;SCANCO_SUBMIT_COMMAND&amp;lt;/code&amp;gt; symbol===&lt;br /&gt;
&lt;br /&gt;
*Check the current setting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show sym *submit*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In directory &amp;lt;code&amp;gt;DISK2:[MICROCT]MICROCT_SETUP_USER.COM&amp;lt;/code&amp;gt; add the following line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ SCANCO_SUBMIT_COMMAND :== SUBMIT/NOPRINT/QUE=SYS$SLOW /NOTIFY/LOG=SYS$SCRATCH:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then end session and log in again.  Definition of the symbol in the &lt;br /&gt;
&amp;lt;code&amp;gt;MICRO_SETUP_USER.COM&amp;lt;/code&amp;gt; supersedes the standard setting.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use the new &amp;lt;code&amp;gt;UCT_BACKUP&amp;lt;/code&amp;gt; software===&lt;br /&gt;
&lt;br /&gt;
New Features (i) You can now select multiple samples with the Shift and/or the Ctrl key; and (2) You can use the sample name filter field on top to display only names containing the filter string.&lt;br /&gt;
&lt;br /&gt;
Start the move/copy by clicking on &amp;lt;code&amp;gt;&#039;Start...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;&#039;Script...&#039;&amp;lt;/code&amp;gt; button is for advanced users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Advanced Users:&amp;lt;/b&amp;gt;&lt;br /&gt;
Use of the &#039;Script...&#039; button: this will generate a script,&lt;br /&gt;
&amp;lt;code&amp;gt;sys$scratch:archive.com&amp;lt;/code&amp;gt;,&lt;br /&gt;
that you may submit in batch mode later (e.g. over night) by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command sys$scratch:archive.com/after=23:59&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(In a multi-computer cluster setup, you may want to specify the exact queue name of the computer that has the tape hooked up by giving e.g. &amp;lt;code&amp;gt;/que=sceval_fast&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
Insert a tape, but do NOT mount the tape in the normal program. (If necessary: if it&#039;s a new tape, initialize it as usual). The batch job will be started one minute before midnight in the example above.&lt;br /&gt;
&amp;lt;code&amp;gt;$ show entry&amp;lt;/code&amp;gt; will show you that it is holding until then.&lt;br /&gt;
See &amp;lt;code&amp;gt;$ help submit /after&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$ help dcl_tips date_time example&amp;lt;/code&amp;gt; for more help on this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Little Reminder:&amp;lt;/b&amp;gt;&lt;br /&gt;
While the tape is running and writing to it, DO NOT LOG OUT, DO NOT INTERRUPT THE PROGRAM! This would make that tape unusable from this point on - you could still read from that tape up to this point, but could not add more scans to this tape.&lt;br /&gt;
What to do when tape is full? It then displays some message about continuing on another tape. Hit &amp;lt;code&amp;gt;ctrl/c&amp;lt;/code&amp;gt; to interrupt the program, take a fresh tape, initialize it, select the remaining scans to archive again, hit &amp;lt;code&amp;gt;&#039;start&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
And last but not least: WE STRONGLY URGE YOU TO DO THE WEEKLY BACKUP (SAFETY BACKUP OF USER DISK1 WITH YOUR DATABASES ON IT). Two users DID experience disk crashes last year, and without the weekly backup, you may still have all scans on the data disk (e.g. disk2), but without the databases you cannot tell which scans belong the which sample!&lt;br /&gt;
&lt;br /&gt;
How to do weekly backup: insert &#039;special&#039; weekly backup tape, e.g. week_a, and&lt;br /&gt;
just hit &#039;Full backup to tape&#039;.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Import foreign data into the Scanco database on the VMS system===&lt;br /&gt;
&lt;br /&gt;
Only ISQ files can be imported into the database, however it is possible to convert other types of data into ISQ files (i.e., stacks of BMPs into ISQ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 1:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After transfering your data to the VMS system (use the data disk &amp;lt;code&amp;gt;disk2&amp;lt;/code&amp;gt;, NOT the user disk &amp;lt;code&amp;gt;disk1&amp;lt;/code&amp;gt;), use the IPL commands &amp;lt;code&amp;gt;/import_freeformat&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/read_aim function&amp;lt;/code&amp;gt; to import your data for conversion to an ISQ.&lt;br /&gt;
&lt;br /&gt;
For DICOM files, start IPL and run the &amp;lt;code&amp;gt;/dicom&amp;lt;/code&amp;gt; function to import. For DICOM, if your object is a single 3D file (-multifile false) or many many individual slice files (-multifile true, and give beginning of filenames, and –extension).&lt;br /&gt;
&lt;br /&gt;
There may be requests by IPL to convert your data to &amp;lt;code&amp;gt;signed short&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;signed char&amp;lt;/code&amp;gt; from other data types. Obey these requests and do it by running the &amp;lt;code&amp;gt;/convert_unsigned&amp;lt;/code&amp;gt; function.&lt;br /&gt;
&lt;br /&gt;
Then, write the ISQ file.&lt;br /&gt;
&amp;lt;pre&amp;gt;ipl&amp;gt; toisq in DK0:[MICROCT.DATA]D0000001.ISQ&lt;br /&gt;
    -square           true&lt;br /&gt;
    -original_pos     false&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This writes the ISQ file. &lt;br /&gt;
&amp;lt;b&amp;gt;Remember&amp;lt;/b&amp;gt;, the ISQ name must be 8 characters long (1 character followed by seven digits)!!! The letters and numbers can be chosen freely.&lt;br /&gt;
&lt;br /&gt;
Fill out a log sheet with the original AIM names that were imported, and the resulting ISQ names that were generated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 2: &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a sample in the database and write down the sample and measurement number. Then, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run um:uct_import&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And give the new ISQ file, the new sample-number and check that the feedback is correct (i.e., that the name from the database is matching the name from the ISQ file header).&lt;br /&gt;
&lt;br /&gt;
Operator and controlfile can be left 0 if you want.&lt;br /&gt;
&lt;br /&gt;
Then it changes the sample and measurement number in the ISQ file, makes the correct directory on &amp;lt;code&amp;gt;DK0&amp;lt;/code&amp;gt;, and gives you the line on the screen of how to rename the file to the correct, new directory. Take this line and use it on the command line.  Done!  &lt;br /&gt;
&lt;br /&gt;
You can now use the normal &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; program with this file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you were importing an AIM file, delete the original file as it will have the wrong measurement indexes in its log header. You will have to produce the AIM file again from the ISQ so our database writes the evaluation results into the correct sample fields.&lt;br /&gt;
&lt;br /&gt;
==Project Management==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Example filled out log sheet===&lt;br /&gt;
&lt;br /&gt;
A log sheet, which is always kept near the scanner, must be filled out for&lt;br /&gt;
every measurement on the system.  A blank log sheet is available in the&lt;br /&gt;
Documents section of this Wiki page.&lt;br /&gt;
&lt;br /&gt;
Here is an example log sheet:&lt;br /&gt;
&lt;br /&gt;
::[[Image:Herzog_pic.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Evaluation==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand the morphological parameters===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BV/TV  -&amp;gt; VOX-BV/TV&lt;br /&gt;
BS/BV  -&amp;gt; TRI-BS/BV&lt;br /&gt;
Tb.Th  -&amp;gt; DT-Tb.Th&lt;br /&gt;
Tb.Sp  -&amp;gt; DT-Tb.Sp&lt;br /&gt;
Tb.N   -&amp;gt; DT-Tb.N&lt;br /&gt;
ConnD  -&amp;gt; Conn-Dens&lt;br /&gt;
SMI    -&amp;gt; TRI-SMI&lt;br /&gt;
DA     -&amp;gt; TRI-DA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usually I&#039;d use the names on the left for the plots, but these correspond to the names on the right of the arrow in the Scanco output files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you use the TRI-Tb.Th rather than the DT-Tb.Th*, then you are using the derived (plate-model) morphological parameters.  These are less accurate than the direct parameters.  They are calculated by triangulating the surface (marching cubes) to get BS, and then calculate thickness&lt;br /&gt;
Th = 2 * BV / BS, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mean Values&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mean 1: mean of bone AND marrow --&amp;gt; &#039;apparent density&#039;&lt;br /&gt;
mean 2: mean of what was considered bone only (i.e. what was segmented) &lt;br /&gt;
&#039;bone tissue density&#039;. (so this does depend on threshold a little bit)&lt;br /&gt;
mean 3: empty, or can be used to store mean of cortex, e.g.&lt;br /&gt;
 The function /voxgobj has -region number (zero-based) to goveren which &lt;br /&gt;
 mean value is filled, 1 - 5 (thus region 0 - 4).]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;What you should also know&amp;lt;/b&amp;gt;: because of partial voluming effects, for Mean2, we are DISCARDING the 2 surface voxels of EVERY trabeculae - thus, to get meaningful Mean2, you have to do your scan with the chosen resolution high enough, such that the mean trabeculae is depicted by at the very least 5 pixels, better actually more than 6 pixels thickness. (You can do this check at the end in the XLS sheet: divide DT-Tb.Th* by el-size-mm.x, and you need to get numbers bigger than 6 or 7 or 10 or so.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Start a 3D evaulation from the terminal===&lt;br /&gt;
&lt;br /&gt;
Warning: Do not change &amp;lt;code&amp;gt;uct_evaulation_v4.com&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ipl_fixed_batch_v4.com&amp;lt;/code&amp;gt; in .eval, but only work on your own file (i.e., eval_steve).&lt;br /&gt;
First, an explanation of how the normal evaluation runs by hitting the &#039;Start 3d&#039; button.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_v4.com/para=(xxx,yyy,zzz,…)&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are 8 parameters:&lt;br /&gt;
*P1: number of print outs of our results sheet&lt;br /&gt;
*P2: the ISQ filename&lt;br /&gt;
*P3-5: start x (pos x), y, z&lt;br /&gt;
*P6-8: dim x, y, z&lt;br /&gt;
The parameters p3-p8 come from the white bounding box. The problem is that when you start from the terminal you do not have these. This problem can be overcome by using the &amp;lt;code&amp;gt;isq_to_aim_gobjbox.exe&amp;lt;/code&amp;gt; and then give the relevant parameters. You can &lt;br /&gt;
&amp;lt;code&amp;gt;$ run um: isq_to_aim_gobjbox.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
to see what it&#039;s asking for.&lt;br /&gt;
By using gobjbox you do not need p3-p8. Therefore you can start the evaluation by giving:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_special_josh.com –&lt;br /&gt;
/para=(1,dk0:[microct.data.0000275.0000245]c0000332.ISQ)&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that you can make &amp;lt;code&amp;gt;uct_evaluation_special_josh.com&amp;lt;/code&amp;gt; such that there is no need for P1 (change p2 to p1 in the script, etc).&lt;br /&gt;
[Alternatively to using the gobjbox you could use the normal isq_to_aim, but hard code the dim and pos.]&lt;br /&gt;
Then call whatever IPL files you want to call. Look into &amp;lt;code&amp;gt;fixed_batch_v4&amp;lt;/code&amp;gt; to see how we turn on the database always on the first line of every IPL part, and how we calculate parameters.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use &amp;lt;code&amp;gt;EVAL PROGRAM (Slice Viewer)&amp;lt;/code&amp;gt; without importing ISQ into the database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; It is strongly suggested to properly import that ISQ into the database before you run a full 3D evaluation!  See the appropriate HowTo.&lt;br /&gt;
&lt;br /&gt;
In a terminal, &amp;lt;code&amp;gt;$ def uct_default_isq xxxxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then start the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool (or &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
Hit cancel when asked for a file to read and the default ISQ that was set will be read.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; Only start a 3D evaluation if and only if the sample (patient) and measurement&lt;br /&gt;
index are &amp;lt;b&amp;gt;correct&amp;lt;/b&amp;gt; in the ISQ header!&lt;br /&gt;
&lt;br /&gt;
===HowTo: Submit a job to the queue===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit/noprint /que=sys$slow ipl_voi_josh_m.com &lt;br /&gt;
  - /log=sys$scratch:test.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract your results from the 3D database===&lt;br /&gt;
&lt;br /&gt;
Assuming you&#039;ve used the scanco_submit_command to initialize your evaluations (either manually or through the uct_evaluation tool) then you can get all of your results stored into a text file that can be easily imported in Excel.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ uct_list&amp;lt;/pre&amp;gt;&lt;br /&gt;
The output text file will be stored in &amp;lt;code&amp;gt;sys$scratch&amp;lt;/code&amp;gt; and you can ftp this to a PC so that it can be imported into excel and further analysis can be performed. &lt;br /&gt;
&lt;br /&gt;
Importing into Excel requires setting a deliminator based on the space.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Tabulate your LOG file results from 3D evaluations===&lt;br /&gt;
&lt;br /&gt;
Only use this if you have not used the standard &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool to generate your 3D evaluations (in which case see the HowTo related to the 3D database).&lt;br /&gt;
You can tabulate the LOG files:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or whatever you want to search for can be stored in a text file&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search/output=sys$scratch:ov.txt xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To search more than one log file, and get the output into one single file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ fda/output=xxx.txt search *.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fda means &#039;file do all&#039; and is a script made by Scanco to do one command (search) on a wildcard of files (*.log). Then put all the ov.txt, tv.txt, name.txt etc. files into excel.&lt;br /&gt;
Josh has made a .com file that does a similar job as described above.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Do cortical midshaft evaluation with moment of inertia calculation===&lt;br /&gt;
&lt;br /&gt;
This explains what happens when you type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; $ midshaft or $ eval_midshaft &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Draw a rough contour in the first of your 20 (or 12 or whatever) slices,&lt;br /&gt;
open the Contouring Sub-window, double-click on the big image, and it&lt;br /&gt;
automatically&lt;br /&gt;
finds the best contour. Then click on &#039;Selection&#039; &#039;Forwards&#039;, then &#039;Iterate&lt;br /&gt;
Forwards&#039;, and it finds the best contour for every of your (about) 20 slices.&lt;br /&gt;
&lt;br /&gt;
Then &#039;cancel&#039; the contouring sub-window, and start the 3D evaluation.&lt;br /&gt;
&lt;br /&gt;
FIRST: set the correct threshold, sigma, support in the file:&lt;br /&gt;
[microct.main]ipl_fixed_batch_midshaft.com (or in [microct.eval])!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Save contours when it asks you). Exit the program.&lt;br /&gt;
&lt;br /&gt;
When you now type $ que in the terminal, you will see some job called&lt;br /&gt;
&#039;uct_evaluation_midshaft&#039;&lt;br /&gt;
(or similar), whereas the trabecular evaluations were called&lt;br /&gt;
&#039;uct_evaluation_v4&#039;.&lt;br /&gt;
Also the .log file in Scratch has the _midshaft name.&lt;br /&gt;
&lt;br /&gt;
I now only calculate the TRI values (Plate Model), and not the direct stuff&lt;br /&gt;
anymore, since for only 20 slices, the truly 3D Tb.Th might be quite off.&lt;br /&gt;
Also, you will see lots of tildes on the result sheets. This is to tell&lt;br /&gt;
you that, if the meas. were trab. bone, those values would only be approximate.&lt;br /&gt;
But now for the cortex, they are actually correct ! (see below for more explan about this)&lt;br /&gt;
&lt;br /&gt;
So I would now use the tildes to check the &#039;excel&#039; table that the operator&lt;br /&gt;
has taken the correct script for the trab. or cort. evaluations for the&lt;br /&gt;
respective measurements !&lt;br /&gt;
&lt;br /&gt;
So what&#039;s the advantage of all this ? Now, also VOX-TV is correct! So VOX-TV&lt;br /&gt;
is the whole area, VOX-BV the doughnut, so TV-BV is the marrow area ! And still,&lt;br /&gt;
TRI-Tb.Th is the cortical thickness. (TRI-TV is NOT correct, because the .gobj&lt;br /&gt;
feature was turned off.)&lt;br /&gt;
&lt;br /&gt;
I say &#039;area&#039; above: depending on how many slices one individual scan has,&lt;br /&gt;
VOX-BV (and VOX-TV) might be different for different scans, so you will HAVE to&lt;br /&gt;
convert the volumes to area again:&lt;br /&gt;
&lt;br /&gt;
volume equals area times height&lt;br /&gt;
--&amp;gt; Bone Area = VOX-BV / height = BV / (dim.z * el_size_mm.z)&lt;br /&gt;
(and same for Total area, of course :-)&lt;br /&gt;
&lt;br /&gt;
All clear ???&lt;br /&gt;
&lt;br /&gt;
If you want porosity of the bone itself:&lt;br /&gt;
&lt;br /&gt;
draw two contours: one around, counter-clockwise, on on the inside, clock-wise&lt;br /&gt;
(thus a &#039;negative&#039;, excluding contour).&lt;br /&gt;
Now, TV will be just that ring area, BV will be the bone within that ring area,&lt;br /&gt;
and BV/TV will be 1 - porosity, thus BV/TV 94% means 6% porosity.&lt;br /&gt;
&lt;br /&gt;
*****************&lt;br /&gt;
&lt;br /&gt;
Application of this script to metaphysis scan (with trab. in middle):&lt;br /&gt;
&lt;br /&gt;
$ midshaft&lt;br /&gt;
draw one contour around the cortex, and in same slices, a NEGATIVE contour on&lt;br /&gt;
the inside (CW contour) to exclude the trab.&lt;br /&gt;
(potentially work with the BP (brake-point) system to be able to morph the&lt;br /&gt;
negative contours, even though there is already a &#039;outer&#039; contour around the&lt;br /&gt;
bone in every slice.)&lt;br /&gt;
&lt;br /&gt;
Start 3D eval, read out the data-base with uct_list.&lt;br /&gt;
&lt;br /&gt;
NB: you CANNOT give that used .gobj a special name such as c0001234_cortex.gobj!&lt;br /&gt;
Only after the eval (or midshaft eval) has finished, you may copy it to a more&lt;br /&gt;
meaningful name - but all of our evaluations are just taking the STANDARD gobj name!&lt;br /&gt;
&lt;br /&gt;
Then afterwards (after renaming or copying the _seg.aim to _cortex.aim, and&lt;br /&gt;
.gobj to _cortex.gobj), you may want to start the very normal eval with normal&lt;br /&gt;
(inner) contours to evaluate the trabecular compartement.&lt;br /&gt;
Remember: the values in our 3D result database then are OVERWRITTEN.&lt;br /&gt;
&lt;br /&gt;
(if you have a whole study, I would recommend to run the $ midshaft for ALL&lt;br /&gt;
samples, $ uct_list to e.g. sys$scratch:mystudy_cortex.txt, rename/copy gobj and&lt;br /&gt;
seg for all, and THEN run the trab. eval for all samples, $ ust_list and you&lt;br /&gt;
have two nice complete xls sheets.)&lt;br /&gt;
&lt;br /&gt;
**********************&lt;br /&gt;
&lt;br /&gt;
More explanations of why the plate model is correct:&lt;br /&gt;
&lt;br /&gt;
Assume a ring (cortex).&lt;br /&gt;
&lt;br /&gt;
Area = thickness * &#039;middle line&#039;.&lt;br /&gt;
&#039;middle line&#039; = average of outer and inner circumference&lt;br /&gt;
--&amp;gt; &#039;middle line&#039; = 0.5 * &#039;bone surface&#039;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; thickness = bone volume * 2 / bone surface.&lt;br /&gt;
&lt;br /&gt;
And this is nothing else but the &#039;plate model&#039; formula for Tb.Th!&lt;br /&gt;
&lt;br /&gt;
nice, no ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And why not just run the &#039;normal trabecular eval&#039;?&lt;br /&gt;
in the &#039;normal&#039; TRI calculation, we are EXCLUDING all surfaces that are created&lt;br /&gt;
artificially by a gobj line that cuts through a trab.&lt;br /&gt;
&lt;br /&gt;
However, for the midshaft, this means: the whole outer (or even inner, if also&lt;br /&gt;
inner contour is there) is SUPPRESSED, because it is touching the gobj line. So&lt;br /&gt;
this is where that midshaft script comes in: it turns off that suppression.&lt;br /&gt;
&lt;br /&gt;
***************&lt;br /&gt;
&lt;br /&gt;
and some explanations, why the direct DT-Tb.Th* is NOT correct for a scan with&lt;br /&gt;
just e.g. 12 slices:&lt;br /&gt;
If we fill the structure with spheres, those spheres should be bounded by the&lt;br /&gt;
width of the cortex, not just by the fact that we only have 12 slices...&lt;br /&gt;
&lt;br /&gt;
(and even more so: We are always doing &#039;aim box&#039; suppression with the spheres: &lt;br /&gt;
if a sphere touches the boundary of the aim box, it is suppressed!&lt;br /&gt;
&lt;br /&gt;
So this is quite crucial for Tb.Sp and Tb.N: to get meaningful Tb.Sp, you would&lt;br /&gt;
need a LOT of slices. Also, then, you cannot have the inner contour - otherwise&lt;br /&gt;
the negative inner contour will delete the Tb.Sp. spheres... &lt;br /&gt;
&lt;br /&gt;
IF you have enough slices, you may opt to turn the /dt_object on again in the&lt;br /&gt;
midshaft script (second half). Then DT-Tb.Th* and TRI-Tb.Th just have a slightly&lt;br /&gt;
different behaviour if there are little pores within the cortex:&lt;br /&gt;
&lt;br /&gt;
TRI: the little pore just adds a little BS, thus the influence is not that big.&lt;br /&gt;
DT: the little pore cuts the thickness sphere in half, thus at that location,&lt;br /&gt;
the thickness is halved.&lt;br /&gt;
&lt;br /&gt;
**************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The script is also calculating Mean1 and Mean2 now:&lt;br /&gt;
Mean1: &#039;apparent&#039; density, average over whole TV&lt;br /&gt;
Mean2: &#039;tissue&#039; density: average over what was segmented as bone only.&lt;br /&gt;
&lt;br /&gt;
These mean values will be in mg HA/ccm if you have the calibration option for&lt;br /&gt;
bone density installed (and activated for those scans).&lt;br /&gt;
Remember: the bone has to have some soft-tissue (or equivalent) on the inside,&lt;br /&gt;
and preferably also on the outside then.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Temporarily change the evaluation for any &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
In a terminal window, we need to redefine the logical that determines which&lt;br /&gt;
3D evaluation is associated with the &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt; tool.&lt;br /&gt;
&lt;br /&gt;
For example, typing &amp;lt;code&amp;gt;VOI&amp;lt;/code&amp;gt; runs the &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt; tool&lt;br /&gt;
by executing &amp;lt;code&amp;gt;UE:UCT_EVALUATION_VOI.COM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&amp;lt;pre&amp;gt;$ show logical UCT_EVALUATION&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then you can redefine this to point to another evaluation script.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ define UCT_EVALUATION UE:UCT_EVALUATION_CUTOUT.COM&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is only redefined in the particular terminal you are using, and it&lt;br /&gt;
will reset to its default in a new terminal.  It will also not work if you&lt;br /&gt;
try to submit the job to a queue.  It only works interactively.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Assign special 3D evaluation to the &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt; tool===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;: This is for advanced users ONLY.  Do not attempt this without contacting Steve!&lt;br /&gt;
&lt;br /&gt;
This will show how to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt;:&lt;br /&gt;
It is easy to set up multiple .COM files for the 3D evalulation tool, one such set-up is already prepared on your computer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ eval_special&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will do something similar to &amp;lt;code&amp;gt;$ voi&amp;lt;/code&amp;gt; where the normal contour program opens, but if you start the 3D eval, the special script &amp;lt;code&amp;gt;um:uct_evaluation_special.com&amp;lt;/code&amp;gt; is called (associated with eval_special), which then in turn calls &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt;, where you can specify your own set of thresholds, etc.&lt;br /&gt;
&lt;br /&gt;
So it is a daisy chain of files which we will need to follow to set up a special &amp;lt;code&amp;gt;xxx_kyle.com&amp;lt;/code&amp;gt; script, and where ever we encounter &amp;lt;code&amp;gt;_special.com&amp;lt;/code&amp;gt;, we copy and change it to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; you will need to do the following:&lt;br /&gt;
&lt;br /&gt;
*1. Edit &amp;lt;code&amp;gt;disk1:[microct]microct_setup_user.com&amp;lt;/code&amp;gt; (double-click on file), please be careful here, it&#039;s very important! (and I hope you have done your &#039;weekly full backup&#039; regularly, so you could always retrieve a good version of login.com...)&lt;br /&gt;
&lt;br /&gt;
*2. Then, towards to bottom and duplicate the line&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_special :== @com:eval_var.com um:uct_evaluation_special.com&amp;lt;/code&amp;gt;&lt;br /&gt;
and change duplicate to&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_kyle    :== @com:eval_var.com um:uct_evaluation_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make this command &amp;lt;code&amp;gt;eval_kyle&amp;lt;/code&amp;gt; available after you login freshly. Save and Exit.&lt;br /&gt;
&lt;br /&gt;
*3. Then go to &amp;lt;code&amp;gt;disk1:[microct.eval]&amp;lt;/code&amp;gt; and copy the file &amp;lt;code&amp;gt;uct_evaluation_special.com&amp;lt;/code&amp;gt; to the name &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt; (&#039;Commands&#039;, &#039;Copy ...&#039;, BUT CLICK ON THE THREE DOTS and give new output name. &lt;br /&gt;
If you do not see the &amp;lt;code&amp;gt;eval_special:&amp;lt;/code&amp;gt; go to terminal, &amp;lt;code&amp;gt;$ dir ue:*special*.com&amp;lt;/code&amp;gt; and take it from the &amp;lt;code&amp;gt;microct_common&amp;lt;/code&amp;gt; directory)&lt;br /&gt;
&lt;br /&gt;
*4. Edit the &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt; file: at the top, change &amp;lt;code&amp;gt;ipl_......_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*5. Copy &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*6. Edit &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; to your liking. If you want &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; to not perform the full evaluation, but only something akin to &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, then, in the steps above, copy &amp;lt;code&amp;gt;uct_eval_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;ipl_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; (thus you take the &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; script as template for the &amp;lt;code&amp;gt;_kyle&amp;lt;/code&amp;gt; script).&lt;br /&gt;
&lt;br /&gt;
*7. Then open a new terminal (&#039;applications&#039;, &#039;decterm&#039;), &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; should work now!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;: When you start the 3D eval, then&lt;br /&gt;
&amp;lt;code&amp;gt;$ que&amp;lt;/code&amp;gt;&lt;br /&gt;
will show you your batch job with your name on it now!&lt;br /&gt;
&lt;br /&gt;
And now a few more explanations how the whole thing works: in all eval programs, hitting &#039;Start 3d&#039; just submits the logical &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$ show log uct_evaluation&amp;lt;/code&amp;gt; shows you that by default, this points to &amp;lt;code&amp;gt;ue:uct_evaluation_v4.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Those little &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;eval_steve&amp;lt;/code&amp;gt; scripts then just temporarily redefine this logical so that a different script is submitted when you &amp;lt;code&amp;gt;&#039;start 3d eval&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
About the &#039;&#039;&#039;corelut eval&#039;&#039;&#039;: Then we start a whole different eval program: the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt;. So, if you set up a &amp;lt;code&amp;gt;eval_steve_c&amp;lt;/code&amp;gt; (or whatever you want to call it): Produce a &amp;lt;code&amp;gt;eval_var_c.com&amp;lt;/code&amp;gt; in the directory commands (maybe copy from microct_common to [microct.commands]), and there, on the last line, instead of starting&lt;br /&gt;
&amp;lt;code&amp;gt;$ uct_evaluation&amp;lt;/code&amp;gt;&lt;br /&gt;
(the normal program), replace by&lt;br /&gt;
&amp;lt;code&amp;gt;$ evalc&amp;lt;/code&amp;gt;&lt;br /&gt;
which starts the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt; - and because the &amp;lt;code&amp;gt;eval_var.com&amp;lt;/code&amp;gt; has over-ridden the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; logical just before, then you are starting different script upon starting 3d eval.&lt;br /&gt;
NB: we have a logical AND a symbol called &amp;lt;code&amp;gt;uct_evalution&amp;lt;/code&amp;gt;. Sorry for confusion. Symbol &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; starts normal &amp;lt;code&amp;gt;eval&amp;lt;/code&amp;gt; program, so this is what you replace by symbol &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt; now).&lt;br /&gt;
&lt;br /&gt;
===HowTo: Convert CT numbers to mg HA/ccm===&lt;br /&gt;
&lt;br /&gt;
The two byte numbers (short) can be converted to mu values by first dividing by mu_scaling which is probably 4096. Then apply the slope and intercept to get mg HA/ccm. A typical slope may be 2.95e+02 and intercept -1.896e+02. &lt;br /&gt;
&lt;br /&gt;
These numbers are available in the AIM header, or the ISQ header (&amp;lt;code&amp;gt;$ run ut:ctheader&amp;lt;/code&amp;gt;).&lt;br /&gt;
The conversion is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mg HA/ccm = (AIM/mu_scaling) * slope + intercept&lt;br /&gt;
mg HA/ccm = (AIM/4096) * 295.494 – 189.695&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!---------------------------------------------------------------------- &lt;br /&gt;
Mu_Scaling                    4096 &lt;br /&gt;
Calibration Data              55 kVp, 200mg HA wedge, 4096 scaling &lt;br /&gt;
Calib. default unit type      2 (Density) &lt;br /&gt;
Density: unit                 mg HA/ccm &lt;br /&gt;
Density: slope                2.95493988e+02 &lt;br /&gt;
Density: intercept            -1.89695007e+02 &lt;br /&gt;
HU: mu water                  0.58200 &lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a list of registered measurements===&lt;br /&gt;
&lt;br /&gt;
:* To generate a list of measurements that are registered in the data base, to determine where backups are stored, or if the data is still on disk:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;$ write_info&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*It asks you for a range of measurement numbers or sample names, and creates &amp;lt;code&amp;gt; sys$scratch:info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: View the scout views===&lt;br /&gt;
&lt;br /&gt;
Use the program ximage&lt;br /&gt;
&amp;lt;pre&amp;gt;$ x asdf.SCV&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix SAP colours when green===&lt;br /&gt;
&lt;br /&gt;
(using the standard gray colourmap), if changing color maps doesn&#039;t help.&lt;br /&gt;
&lt;br /&gt;
:*Menu point &#039;Norm, Default is Bone = 16000.&lt;br /&gt;
&lt;br /&gt;
:*Take max for 32000, or &#039;Adapt slice&#039;.&lt;br /&gt;
&lt;br /&gt;
::Note: Do NOT take &#039;adapt vol&#039; - it will be extremely slow!  Every single mouse-click it re-calculates whole volume...&lt;br /&gt;
&lt;br /&gt;
==Writing Scripts==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Get information about a sample or measurement from database===&lt;br /&gt;
&lt;br /&gt;
The following will create a &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create your own IPL script with some tips===&lt;br /&gt;
&lt;br /&gt;
To make a script that would submit a job to the queue with the command as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you need to create your own IPL file would be translated to the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit /noprint /que=sys$slow ue:IPL_VOI_JOSH_M.COM &lt;br /&gt;
  - /log=sys$scratch:test.log /para=(&#039;aim_file&#039;,&#039;gobj_file&#039;,&#039;seg_file&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The IPL file would look something like this…&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$   if p1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$ 	THEN &lt;br /&gt;
$	write sys$output &amp;quot;Give DK0:[xxx]C0001234_SEG.aim on the line.&amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Or: &amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Type $ scanco_submit_command um:ipl_eval_autostart/para=(dk0:[xxx]c00123_seg.aim) &amp;quot;&lt;br /&gt;
$ 	exit&lt;br /&gt;
$   endif&lt;br /&gt;
$&lt;br /&gt;
$ gobj_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.GOBJ&amp;quot;&lt;br /&gt;
$ aim_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.AIM&amp;quot;&lt;br /&gt;
$&lt;br /&gt;
$!&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some more handy IPL sequences are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then you just need to give meas. number as P1 (and maybe slice range as p2),&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
OR, some nice starts are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P3 .EQS. &amp;quot;&amp;quot;&lt;br /&gt;
$    THEN&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to duplicate&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: New Sample Number from Database&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: New Start Letter of ISQ file&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P4: Optional: Operator Number&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P5: Optional: Controlfile Number&amp;quot;&lt;br /&gt;
$      EXIT&lt;br /&gt;
$    ENDIF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where you say which parameters HAVE to be there (up to p3), and which ones are optional.&lt;br /&gt;
&lt;br /&gt;
All together, the script may look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$    THEN &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to reco&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: Optional: Slice number N or Range M:N. Auto:All&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: Optional: Queue. Auto: sys$slow&amp;quot; &lt;br /&gt;
$      EXIT &lt;br /&gt;
$    ENDIF &lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A &lt;br /&gt;
$ if p3 .eqs. &amp;quot;&amp;quot; then p3 := SYS$SLOW &lt;br /&gt;
$ slices  = p2 &lt;br /&gt;
$ quename = p3 &lt;br /&gt;
$ INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1) &lt;br /&gt;
$ INPUT = INPUT - F$PARSE(INPUT,,,&amp;quot;VERSION&amp;quot;) &lt;br /&gt;
$ logfile = &amp;quot;sys$scratch:RECO_&amp;quot; + f$PARSE(input,,,&amp;quot;NAME&amp;quot;) + &amp;quot;.LOG&amp;quot; &lt;br /&gt;
$ submit/noprint/queue=&#039;quename&#039; uct_reconstruction_file - &lt;br /&gt;
    /para=(&#039;input&#039;,&#039;slices&#039;,&#039;logfile&#039;) &lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;lt;code&amp;gt;uct_reconstruction_file&amp;lt;/code&amp;gt; is a logical that points to &amp;lt;code&amp;gt;um:uct_reconstruction.com&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Logicals are preferred in scripts to make them more universal.&lt;br /&gt;
&lt;br /&gt;
==Errors and Fixes==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix &amp;quot;last slice&amp;quot; error problem when extracting AIM from ISQ===&lt;br /&gt;
&lt;br /&gt;
Sometimes the evaluation script (i.e., voi) converting the ISQ to an AIM fails because it tries to read one slice more than what is available in the ISQ data. The result of this failure is that the 3D analysis appears to fail and no .AIM or _SEG.AIM is created in the data directory. For example, it may have tried to read 261 slices, but there were only 260 slices available.&lt;br /&gt;
The easiest work around is to make sure that the white bounding box in the uct_evaluation program does not include the last slice (largest Z dimension). Scanco is aware of this problem and will fix it in future software releases (V5.2).&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=How_To%27s&amp;diff=1266</id>
		<title>How To&#039;s</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=How_To%27s&amp;diff=1266"/>
		<updated>2005-11-07T12:26:06Z</updated>

		<summary type="html">&lt;p&gt;Scanco: /* HowTo: Stop and restart the printer queue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=HowTo Library=&lt;br /&gt;
&lt;br /&gt;
==OpenVMS==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Helpful VMS commands===&lt;br /&gt;
&lt;br /&gt;
*Delete&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ delete *.aim;*&lt;br /&gt;
$ dl *.aim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Shut down the Alpha stations and start up again===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Do not do this unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
For shutdown&lt;br /&gt;
&lt;br /&gt;
At the login screen, type &amp;quot;shutdown&amp;quot;/no password and hit enter. &lt;br /&gt;
Then, you can turn the computer off at the prompt.&lt;br /&gt;
&lt;br /&gt;
Then, you may turn the disk array off (unplug it as there is no power switch).&lt;br /&gt;
&lt;br /&gt;
After you move the computer, power on the disk array and then the computer.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand difference between &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; is the same as &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;, but only with mcr you can hand over &#039;in-line&#039; parameters to an .exe file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
does not work, but you  have to say&lt;br /&gt;
&amp;lt;pre&amp;gt;$ mcr ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But funnily if you define a symbol in &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ ctheader :== $ut:ctheader.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with just neither run nor mcr, but the &#039;funny&#039; $ sign, then you can also hand over the ISQ name in-line.&lt;br /&gt;
&lt;br /&gt;
Small detail with big effect...&lt;br /&gt;
&lt;br /&gt;
===HowTo: Make commands available to all users with symbols or paths===&lt;br /&gt;
&lt;br /&gt;
DCL$PATH is one way to do that, WE don&#039;t use it...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ def dcl$path disk1:[microct.main],disk1:[microct.util]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, if you type&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ uct_t&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
it will first try to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ @uct_t.com&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
and then&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ r uct_t.exe&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
however, we usually define it by giving full path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ progx :== $disk1:[microct.main]progx.exe&lt;br /&gt;
$ com_proc_x :== @disk1:[microct.main]procedure.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type the shortcut (&#039;symbol&#039; in VMS language)&lt;br /&gt;
&lt;br /&gt;
We use the &#039;cd&#039; to set the default path, you may also use this in your command procedure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;proc.com&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd &#039;p1&#039;&lt;br /&gt;
$ dir *.*/size&lt;br /&gt;
&lt;br /&gt;
$ define COM disk1:[microct.commands]&lt;br /&gt;
$ p :== @COM:PROC.COM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
these both go into &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ p disk4:[microct.data.0000007.000009]*.ISQ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Launch an editor such as EVE===&lt;br /&gt;
&lt;br /&gt;
On the command line&lt;br /&gt;
&amp;lt;pre&amp;gt;$ edit/display=decwindows/tpu fname.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit a symbol set by Scanco such as AIX===&lt;br /&gt;
&lt;br /&gt;
[[Image:Bones2.jpg|picture_position,left]] &amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Extreme caution!  Explicit permission for this change or similar changes &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be obtained from Dr. Steven Boyd.&lt;br /&gt;
&lt;br /&gt;
Log in as user calibration&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set proc/priv=bypass&lt;br /&gt;
$ cdc (changes to microct_common)&lt;br /&gt;
$ sea *.com aix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit that file which is called &amp;lt;code&amp;gt;microct_setup_common.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Another example&#039;&#039;: To make the backspace/insert keys work properly, edit the &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt; and insert the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set terminal/insert&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anywhere suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: File do all -- apply one command to a whole set of files===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda ctheader dk0:[microct.data.0001234...]*.isq &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to see the header of all isq files of sample 1234 (the three dots ... means all subdirectories)&lt;br /&gt;
&lt;br /&gt;
Or: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda aix dk0:[microct.data.0001234.00005678]*.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to see the processing log of all aim files of scan 5678&lt;br /&gt;
&lt;br /&gt;
Wildcard &amp;quot;*&amp;quot; means multiple characters, &amp;quot;%&amp;quot; is for ONE character: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda aix dk0:[microct.data...]C%%%%%%%.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(yes, 7 %&#039;s)&lt;br /&gt;
&lt;br /&gt;
to show the aim header of the gray-scale c0000135.aim (etc) files only, and NOT from the _seg.aims also.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning: CAUTION! &amp;lt;/b&amp;gt; Always test the wildcard expression first with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ dir dk0:[xxx...]*.aim &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;file do all&#039; fda command can even be combined with a pipe, or an /output qualifier: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ pipe fda aix dk0:[microct...]*.aim | search sys$pipe &amp;quot;Slope&amp;quot; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will show you all &amp;quot;Slopes&amp;quot; in a row. (but you may not see which slope belongs to which aim file anymore...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda/output=sys$scratch:all_headers.log aix dk0:[microct...]*.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
will write all the output into the .log file - which you can then either edit, or &lt;br /&gt;
&amp;lt;code&amp;gt;$ search sys$scratch:all_headers.log &amp;quot;String&amp;quot;&lt;br /&gt;
or whatever you want. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;fda&amp;quot; is our self-written script, so you may have to try-n-error a bit...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda command file_wildcard [Optional: further parameters]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the command consists of multiple words with spaces inbetween (e.g. mcr ut:xxx.exe), then enclose the command in double-quotes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda &amp;quot;mcr ut:uct_ext_header_display&amp;quot; dk0:[microct...]*.isq 8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NB: the further parameters may not contain wildcards - so unfortunately, the fda can NOT be used to &#039;adaptively&#039; rename a whole bunch of files.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a customized button in the session manager===&lt;br /&gt;
&lt;br /&gt;
The session manager part to enable the double-click on the AIM file:&lt;br /&gt;
Session Manager, &#039;Options&#039;, &#039;Menu&#039;, enter new item&lt;br /&gt;
SAP&lt;br /&gt;
with command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@decw$user_defaults:sap$vue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then move that menu point into &#039;Applications&#039; menu.&lt;br /&gt;
Also:&lt;br /&gt;
&#039;Options&#039;, &#039;File types&#039;, Create &#039;AIM&#039; file type.&lt;br /&gt;
Move &#039;rename&#039;, &#039;copy&#039;, &#039;purge&#039; etc. into menu, Select &#039;SAP&#039;, click  on&lt;br /&gt;
&#039;Change double click&#039;, and also move SAP into menu.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Export the VMS display to SUN or LINUX terminal===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# - temple&lt;br /&gt;
$ - sceval&lt;br /&gt;
# xhost +temple.ucalgary.ca&lt;br /&gt;
# ssh -X microct@sceval.ucalgary.ca&lt;br /&gt;
$ set display /create /transport=tcpip /node=temple.ucalgary.ca&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE:&amp;lt;/b&amp;gt; Do not use &amp;lt;code&amp;gt;xhost+&amp;lt;/code&amp;gt;.  Always specific exactly which computer is being&lt;br /&gt;
allowed X access.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Monitor system usage===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ monitor/interval=1 processes/topcpu&lt;br /&gt;
$ monitor/interval=1 system&lt;br /&gt;
$ show error&lt;br /&gt;
$ show system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;show error&amp;lt;/code&amp;gt; may indicate errors.  One or two errors is OK.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Configure the EVE editor===&lt;br /&gt;
&lt;br /&gt;
The following file, called &amp;lt;code&amp;gt;tpu.dat&amp;lt;/code&amp;gt;, should be installed in &amp;lt;code&amp;gt;disk1:[microct.xdefaults]:&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# DECTPU V3.1 1993-04-22 15:50 defaults&lt;br /&gt;
# CHANGED B.KOLLER 21-JUN-90&lt;br /&gt;
#&lt;br /&gt;
# Copyright (c) 1993 Digital Equipment Corporation.  All rights reserved.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
# The following are all the resource names that DECTPU supports.&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Title:		DECTPU Copyright © Digital Equipment Corporation 1992.  All Rights Reserved.&lt;br /&gt;
Tpu.Tpu$MainWindow.ApplicationTitle:	DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.IconName:		DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.X:			610&lt;br /&gt;
Tpu.Tpu$MainWindow.Y:			0&lt;br /&gt;
#&lt;br /&gt;
# The following resource names are commented out so that users can specify&lt;br /&gt;
# *rows and *columns and have DECTPU obey those directives.  If DECTPU finds&lt;br /&gt;
# finds no resource names governing the number of rows and columns it should&lt;br /&gt;
# have, it uses 24 rows and 80 columns.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Columns:	80&lt;br /&gt;
Tpu.Tpu$MainWindow.Rows:	56&lt;br /&gt;
*EVE_MENU_BAR*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmScrollBar*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmDialogShell*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmMenuShell*background:	#ADADADADADAD&lt;br /&gt;
*background:			white&lt;br /&gt;
Tpu*condensedFont: OFF&lt;br /&gt;
Tpu*fontSetSelection: 0&lt;br /&gt;
&lt;br /&gt;
# 0 = big font&lt;br /&gt;
# 1 = little font&lt;br /&gt;
# 2 = GS font (German Standard)&lt;br /&gt;
# 3 = Fine font (used only for non-latin 1 fonts?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scanco System and Setup==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Calculate vivaCT CTDI dose===&lt;br /&gt;
&lt;br /&gt;
Assuming the following settings on the vivaCT, we will calculate the CTDI dose.&lt;br /&gt;
&lt;br /&gt;
HIGH MODE:&lt;br /&gt;
 1000 projections&lt;br /&gt;
 0.109 mA&lt;br /&gt;
 200 ms IT&lt;br /&gt;
&lt;br /&gt;
I calculate the time current value as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;0.109 mA * (0.200 + 0.012) S * 1000 proj= 23.11 mAs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 0.012 is the integration time between projections.&lt;br /&gt;
&lt;br /&gt;
Taking the proportion of the 68 mAs at 55 kV resulting in 720 mGy (see the document on example&lt;br /&gt;
dose calculation on this Wiki site), we have:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;23.11 / 68 * 720 = 245 mGy&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then multiplying by your factor 2 (because for our setup our CTDI is more like in air), we get:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;2 * 245 = 490 mGy per scan.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Browse the VMS files from a windows PC===&lt;br /&gt;
&lt;br /&gt;
Pathworks gives you the ability to mount the Alpha as an external drive on your PC.  It would be mounted as an F: or G: drive, then you can navigate using windows explorer.&lt;br /&gt;
&lt;br /&gt;
You can look for the vivaCT in your microsoft windows network neighborhood and see if you can find it...then log in.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Stop and restart the printer queue===&lt;br /&gt;
&lt;br /&gt;
How to fix the printer queue when hung, not working or giving an error.&lt;br /&gt;
A full printer queue can seriously affect system performance.  &lt;br /&gt;
Be sure that the queue is cleaned up from time to time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; $ show queue &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to first find out the real name of your printer queue. &lt;br /&gt;
[[Replace hpljet by your own queue name below. ]]&lt;br /&gt;
* First approach, as normal user microct: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ stop/que/reset hpljet&lt;br /&gt;
$ start/que hpljet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Completely remove the queue and re-generate, as user system&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ stop/que/reset hpljet&lt;br /&gt;
$ dele/que hpljet&lt;br /&gt;
$ @sys$startup:dcps_hpljet_ip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Requeue a process===&lt;br /&gt;
&lt;br /&gt;
:* Find the process identification using &amp;lt;code&amp;gt;see&amp;lt;/code&amp;gt;&lt;br /&gt;
:* The process must be &amp;lt;I&amp;gt;pending&amp;lt;/I&amp;gt;, not &amp;lt;I&amp;gt;processing&amp;lt;/I&amp;gt;!&lt;br /&gt;
:* &amp;lt;code&amp;gt;set entry 1131 /requeue=SCEVAL_SLOW &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract patient name from database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will show you sample-name of sample-number 1234&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info -m 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will give you some (stupid) info about meas 1234&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you use this function all the time, put the following into &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uct_info  :== $um:uct_info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then the usage info will even be correct&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract disk usage information===&lt;br /&gt;
&lt;br /&gt;
To look at the RSQs in the database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dir/siz dk0:[microct.data...]*.rsq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
the three dots means all subdirectories.&lt;br /&gt;
&lt;br /&gt;
Other useful commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.rsq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
shows you header.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ fda command file-wildcard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
does a &#039;file do all&#039; of the command on all the given wildcard filenames.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe xxxx | search sys$pipe &amp;quot;patient&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
is the pipe command in VMS.&lt;br /&gt;
&lt;br /&gt;
So all three combined:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe fda ctheader dk0:[microct.data...]*.rsq | search sys$pipe &amp;quot;patient name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or any other field you want to search for!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other ideas&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gives you a file &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; with info in it (leave defaults to get all samples ever scanned, otherwise &#039;zoom&#039; in on some samples.)&lt;br /&gt;
&lt;br /&gt;
Check out the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ help search&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and &amp;lt;code&amp;gt;/match=and&amp;lt;/code&amp;gt;&lt;br /&gt;
or &amp;lt;code&amp;gt;/match=or&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit Scanco &amp;lt;code&amp;gt;SCANCO_SUBMIT_COMMAND&amp;lt;/code&amp;gt; symbol===&lt;br /&gt;
&lt;br /&gt;
*Check the current setting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show sym *submit*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In directory &amp;lt;code&amp;gt;DISK2:[MICROCT]MICROCT_SETUP_USER.COM&amp;lt;/code&amp;gt; add the following line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ SCANCO_SUBMIT_COMMAND :== SUBMIT/NOPRINT/QUE=SYS$SLOW /NOTIFY/LOG=SYS$SCRATCH:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then end session and log in again.  Definition of the symbol in the &lt;br /&gt;
&amp;lt;code&amp;gt;MICRO_SETUP_USER.COM&amp;lt;/code&amp;gt; supersedes the standard setting.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use the new &amp;lt;code&amp;gt;UCT_BACKUP&amp;lt;/code&amp;gt; software===&lt;br /&gt;
&lt;br /&gt;
New Features (i) You can now select multiple samples with the Shift and/or the Ctrl key; and (2) You can use the sample name filter field on top to display only names containing the filter string.&lt;br /&gt;
&lt;br /&gt;
Start the move/copy by clicking on &amp;lt;code&amp;gt;&#039;Start...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;&#039;Script...&#039;&amp;lt;/code&amp;gt; button is for advanced users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Advanced Users:&amp;lt;/b&amp;gt;&lt;br /&gt;
Use of the &#039;Script...&#039; button: this will generate a script,&lt;br /&gt;
&amp;lt;code&amp;gt;sys$scratch:archive.com&amp;lt;/code&amp;gt;,&lt;br /&gt;
that you may submit in batch mode later (e.g. over night) by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command sys$scratch:archive.com/after=23:59&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(In a multi-computer cluster setup, you may want to specify the exact queue name of the computer that has the tape hooked up by giving e.g. &amp;lt;code&amp;gt;/que=sceval_fast&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
Insert a tape, but do NOT mount the tape in the normal program. (If necessary: if it&#039;s a new tape, initialize it as usual). The batch job will be started one minute before midnight in the example above.&lt;br /&gt;
&amp;lt;code&amp;gt;$ show entry&amp;lt;/code&amp;gt; will show you that it is holding until then.&lt;br /&gt;
See &amp;lt;code&amp;gt;$ help submit /after&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$ help dcl_tips date_time example&amp;lt;/code&amp;gt; for more help on this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Little Reminder:&amp;lt;/b&amp;gt;&lt;br /&gt;
While the tape is running and writing to it, DO NOT LOG OUT, DO NOT INTERRUPT THE PROGRAM! This would make that tape unusable from this point on - you could still read from that tape up to this point, but could not add more scans to this tape.&lt;br /&gt;
What to do when tape is full? It then displays some message about continuing on another tape. Hit &amp;lt;code&amp;gt;ctrl/c&amp;lt;/code&amp;gt; to interrupt the program, take a fresh tape, initialize it, select the remaining scans to archive again, hit &amp;lt;code&amp;gt;&#039;start&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
And last but not least: WE STRONGLY URGE YOU TO DO THE WEEKLY BACKUP (SAFETY BACKUP OF USER DISK1 WITH YOUR DATABASES ON IT). Two users DID experience disk crashes last year, and without the weekly backup, you may still have all scans on the data disk (e.g. disk2), but without the databases you cannot tell which scans belong the which sample!&lt;br /&gt;
&lt;br /&gt;
How to do weekly backup: insert &#039;special&#039; weekly backup tape, e.g. week_a, and&lt;br /&gt;
just hit &#039;Full backup to tape&#039;.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Import foreign data into the Scanco database on the VMS system===&lt;br /&gt;
&lt;br /&gt;
Only ISQ files can be imported into the database, however it is possible to convert other types of data into ISQ files (i.e., stacks of BMPs into ISQ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 1:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After transfering your data to the VMS system (use the data disk &amp;lt;code&amp;gt;disk2&amp;lt;/code&amp;gt;, NOT the user disk &amp;lt;code&amp;gt;disk1&amp;lt;/code&amp;gt;), use the IPL commands &amp;lt;code&amp;gt;/import_freeformat&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/read_aim function&amp;lt;/code&amp;gt; to import your data for conversion to an ISQ.&lt;br /&gt;
&lt;br /&gt;
For DICOM files, start IPL and run the &amp;lt;code&amp;gt;/dicom&amp;lt;/code&amp;gt; function to import. For DICOM, if your object is a single 3D file (-multifile false) or many many individual slice files (-multifile true, and give beginning of filenames, and –extension).&lt;br /&gt;
&lt;br /&gt;
There may be requests by IPL to convert your data to &amp;lt;code&amp;gt;signed short&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;signed char&amp;lt;/code&amp;gt; from other data types. Obey these requests and do it by running the &amp;lt;code&amp;gt;/convert_unsigned&amp;lt;/code&amp;gt; function.&lt;br /&gt;
&lt;br /&gt;
Then, write the ISQ file.&lt;br /&gt;
&amp;lt;pre&amp;gt;ipl&amp;gt; toisq in DK0:[MICROCT.DATA]D0000001.ISQ&lt;br /&gt;
    -square           true&lt;br /&gt;
    -original_pos     false&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This writes the ISQ file. &lt;br /&gt;
&amp;lt;b&amp;gt;Remember&amp;lt;/b&amp;gt;, the ISQ name must be 8 characters long (1 character followed by seven digits)!!! The letters and numbers can be chosen freely.&lt;br /&gt;
&lt;br /&gt;
Fill out a log sheet with the original AIM names that were imported, and the resulting ISQ names that were generated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 2: &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a sample in the database and write down the sample and measurement number. Then, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run um:uct_import&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And give the new ISQ file, the new sample-number and check that the feedback is correct (i.e., that the name from the database is matching the name from the ISQ file header).&lt;br /&gt;
&lt;br /&gt;
Operator and controlfile can be left 0 if you want.&lt;br /&gt;
&lt;br /&gt;
Then it changes the sample and measurement number in the ISQ file, makes the correct directory on &amp;lt;code&amp;gt;DK0&amp;lt;/code&amp;gt;, and gives you the line on the screen of how to rename the file to the correct, new directory. Take this line and use it on the command line.  Done!  &lt;br /&gt;
&lt;br /&gt;
You can now use the normal &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; program with this file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you were importing an AIM file, delete the original file as it will have the wrong measurement indexes in its log header. You will have to produce the AIM file again from the ISQ so our database writes the evaluation results into the correct sample fields.&lt;br /&gt;
&lt;br /&gt;
==Project Management==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Example filled out log sheet===&lt;br /&gt;
&lt;br /&gt;
A log sheet, which is always kept near the scanner, must be filled out for&lt;br /&gt;
every measurement on the system.  A blank log sheet is available in the&lt;br /&gt;
Documents section of this Wiki page.&lt;br /&gt;
&lt;br /&gt;
Here is an example log sheet:&lt;br /&gt;
&lt;br /&gt;
::[[Image:Herzog_pic.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Evaluation==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand the morphological parameters===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BV/TV  -&amp;gt; VOX-BV/TV&lt;br /&gt;
BS/BV  -&amp;gt; TRI-BS/BV&lt;br /&gt;
Tb.Th  -&amp;gt; DT-Tb.Th&lt;br /&gt;
Tb.Sp  -&amp;gt; DT-Tb.Sp&lt;br /&gt;
Tb.N   -&amp;gt; DT-Tb.N&lt;br /&gt;
ConnD  -&amp;gt; Conn-Dens&lt;br /&gt;
SMI    -&amp;gt; TRI-SMI&lt;br /&gt;
DA     -&amp;gt; TRI-DA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usually I&#039;d use the names on the left for the plots, but these correspond to the names on the right of the arrow in the Scanco output files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you use the TRI-Tb.Th rather than the DT-Tb.Th*, then you are using the derived (plate-model) morphological parameters.  These are less accurate than the direct parameters.  They are calculated by triangulating the surface (marching cubes) to get BS, and then calculate thickness&lt;br /&gt;
Th = 2 * BV / BS, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mean Values&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mean 1: mean of bone AND marrow --&amp;gt; &#039;apparent density&#039;&lt;br /&gt;
mean 2: mean of what was considered bone only (i.e. what was segmented) &lt;br /&gt;
&#039;bone tissue density&#039;. (so this does depend on threshold a little bit)&lt;br /&gt;
mean 3: empty, or can be used to store mean of cortex, e.g.&lt;br /&gt;
 The function /voxgobj has -region number (zero-based) to goveren which &lt;br /&gt;
 mean value is filled, 1 - 5 (thus region 0 - 4).]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;What you should also know&amp;lt;/b&amp;gt;: because of partial voluming effects, for Mean2, we are DISCARDING the 2 surface voxels of EVERY trabeculae - thus, to get meaningful Mean2, you have to do your scan with the chosen resolution high enough, such that the mean trabeculae is depicted by at the very least 5 pixels, better actually more than 6 pixels thickness. (You can do this check at the end in the XLS sheet: divide DT-Tb.Th* by el-size-mm.x, and you need to get numbers bigger than 6 or 7 or 10 or so.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Start a 3D evaulation from the terminal===&lt;br /&gt;
&lt;br /&gt;
Warning: Do not change &amp;lt;code&amp;gt;uct_evaulation_v4.com&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ipl_fixed_batch_v4.com&amp;lt;/code&amp;gt; in .eval, but only work on your own file (i.e., eval_steve).&lt;br /&gt;
First, an explanation of how the normal evaluation runs by hitting the &#039;Start 3d&#039; button.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_v4.com/para=(xxx,yyy,zzz,…)&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are 8 parameters:&lt;br /&gt;
*P1: number of print outs of our results sheet&lt;br /&gt;
*P2: the ISQ filename&lt;br /&gt;
*P3-5: start x (pos x), y, z&lt;br /&gt;
*P6-8: dim x, y, z&lt;br /&gt;
The parameters p3-p8 come from the white bounding box. The problem is that when you start from the terminal you do not have these. This problem can be overcome by using the &amp;lt;code&amp;gt;isq_to_aim_gobjbox.exe&amp;lt;/code&amp;gt; and then give the relevant parameters. You can &lt;br /&gt;
&amp;lt;code&amp;gt;$ run um: isq_to_aim_gobjbox.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
to see what it&#039;s asking for.&lt;br /&gt;
By using gobjbox you do not need p3-p8. Therefore you can start the evaluation by giving:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_special_josh.com –&lt;br /&gt;
/para=(1,dk0:[microct.data.0000275.0000245]c0000332.ISQ)&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that you can make &amp;lt;code&amp;gt;uct_evaluation_special_josh.com&amp;lt;/code&amp;gt; such that there is no need for P1 (change p2 to p1 in the script, etc).&lt;br /&gt;
[Alternatively to using the gobjbox you could use the normal isq_to_aim, but hard code the dim and pos.]&lt;br /&gt;
Then call whatever IPL files you want to call. Look into &amp;lt;code&amp;gt;fixed_batch_v4&amp;lt;/code&amp;gt; to see how we turn on the database always on the first line of every IPL part, and how we calculate parameters.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use &amp;lt;code&amp;gt;EVAL PROGRAM (Slice Viewer)&amp;lt;/code&amp;gt; without importing ISQ into the database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; It is strongly suggested to properly import that ISQ into the database before you run a full 3D evaluation!  See the appropriate HowTo.&lt;br /&gt;
&lt;br /&gt;
In a terminal, &amp;lt;code&amp;gt;$ def uct_default_isq xxxxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then start the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool (or &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
Hit cancel when asked for a file to read and the default ISQ that was set will be read.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; Only start a 3D evaluation if and only if the sample (patient) and measurement&lt;br /&gt;
index are &amp;lt;b&amp;gt;correct&amp;lt;/b&amp;gt; in the ISQ header!&lt;br /&gt;
&lt;br /&gt;
===HowTo: Submit a job to the queue===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit/noprint /que=sys$slow ipl_voi_josh_m.com &lt;br /&gt;
  - /log=sys$scratch:test.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract your results from the 3D database===&lt;br /&gt;
&lt;br /&gt;
Assuming you&#039;ve used the scanco_submit_command to initialize your evaluations (either manually or through the uct_evaluation tool) then you can get all of your results stored into a text file that can be easily imported in Excel.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ uct_list&amp;lt;/pre&amp;gt;&lt;br /&gt;
The output text file will be stored in &amp;lt;code&amp;gt;sys$scratch&amp;lt;/code&amp;gt; and you can ftp this to a PC so that it can be imported into excel and further analysis can be performed. &lt;br /&gt;
&lt;br /&gt;
Importing into Excel requires setting a deliminator based on the space.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Tabulate your LOG file results from 3D evaluations===&lt;br /&gt;
&lt;br /&gt;
Only use this if you have not used the standard &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool to generate your 3D evaluations (in which case see the HowTo related to the 3D database).&lt;br /&gt;
You can tabulate the LOG files:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or whatever you want to search for can be stored in a text file&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search/output=sys$scratch:ov.txt xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To search more than one log file, and get the output into one single file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ fda/output=xxx.txt search *.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fda means &#039;file do all&#039; and is a script made by Scanco to do one command (search) on a wildcard of files (*.log). Then put all the ov.txt, tv.txt, name.txt etc. files into excel.&lt;br /&gt;
Josh has made a .com file that does a similar job as described above.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Do cortical midshaft evaluation with moment of inertia calculation===&lt;br /&gt;
&lt;br /&gt;
This explains what happens when you type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; $ midshaft or $ eval_midshaft &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Draw a rough contour in the first of your 20 (or 12 or whatever) slices,&lt;br /&gt;
open the Contouring Sub-window, double-click on the big image, and it&lt;br /&gt;
automatically&lt;br /&gt;
finds the best contour. Then click on &#039;Selection&#039; &#039;Forwards&#039;, then &#039;Iterate&lt;br /&gt;
Forwards&#039;, and it finds the best contour for every of your (about) 20 slices.&lt;br /&gt;
&lt;br /&gt;
Then &#039;cancel&#039; the contouring sub-window, and start the 3D evaluation.&lt;br /&gt;
&lt;br /&gt;
FIRST: set the correct threshold, sigma, support in the file:&lt;br /&gt;
[microct.main]ipl_fixed_batch_midshaft.com (or in [microct.eval])!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Save contours when it asks you). Exit the program.&lt;br /&gt;
&lt;br /&gt;
When you now type $ que in the terminal, you will see some job called&lt;br /&gt;
&#039;uct_evaluation_midshaft&#039;&lt;br /&gt;
(or similar), whereas the trabecular evaluations were called&lt;br /&gt;
&#039;uct_evaluation_v4&#039;.&lt;br /&gt;
Also the .log file in Scratch has the _midshaft name.&lt;br /&gt;
&lt;br /&gt;
I now only calculate the TRI values (Plate Model), and not the direct stuff&lt;br /&gt;
anymore, since for only 20 slices, the truly 3D Tb.Th might be quite off.&lt;br /&gt;
Also, you will see lots of tildes on the result sheets. This is to tell&lt;br /&gt;
you that, if the meas. were trab. bone, those values would only be approximate.&lt;br /&gt;
But now for the cortex, they are actually correct ! (see below for more explan about this)&lt;br /&gt;
&lt;br /&gt;
So I would now use the tildes to check the &#039;excel&#039; table that the operator&lt;br /&gt;
has taken the correct script for the trab. or cort. evaluations for the&lt;br /&gt;
respective measurements !&lt;br /&gt;
&lt;br /&gt;
So what&#039;s the advantage of all this ? Now, also VOX-TV is correct! So VOX-TV&lt;br /&gt;
is the whole area, VOX-BV the doughnut, so TV-BV is the marrow area ! And still,&lt;br /&gt;
TRI-Tb.Th is the cortical thickness. (TRI-TV is NOT correct, because the .gobj&lt;br /&gt;
feature was turned off.)&lt;br /&gt;
&lt;br /&gt;
I say &#039;area&#039; above: depending on how many slices one individual scan has,&lt;br /&gt;
VOX-BV (and VOX-TV) might be different for different scans, so you will HAVE to&lt;br /&gt;
convert the volumes to area again:&lt;br /&gt;
&lt;br /&gt;
volume equals area times height&lt;br /&gt;
--&amp;gt; Bone Area = VOX-BV / height = BV / (dim.z * el_size_mm.z)&lt;br /&gt;
(and same for Total area, of course :-)&lt;br /&gt;
&lt;br /&gt;
All clear ???&lt;br /&gt;
&lt;br /&gt;
If you want porosity of the bone itself:&lt;br /&gt;
&lt;br /&gt;
draw two contours: one around, counter-clockwise, on on the inside, clock-wise&lt;br /&gt;
(thus a &#039;negative&#039;, excluding contour).&lt;br /&gt;
Now, TV will be just that ring area, BV will be the bone within that ring area,&lt;br /&gt;
and BV/TV will be 1 - porosity, thus BV/TV 94% means 6% porosity.&lt;br /&gt;
&lt;br /&gt;
*****************&lt;br /&gt;
&lt;br /&gt;
Application of this script to metaphysis scan (with trab. in middle):&lt;br /&gt;
&lt;br /&gt;
$ midshaft&lt;br /&gt;
draw one contour around the cortex, and in same slices, a NEGATIVE contour on&lt;br /&gt;
the inside (CW contour) to exclude the trab.&lt;br /&gt;
(potentially work with the BP (brake-point) system to be able to morph the&lt;br /&gt;
negative contours, even though there is already a &#039;outer&#039; contour around the&lt;br /&gt;
bone in every slice.)&lt;br /&gt;
&lt;br /&gt;
Start 3D eval, read out the data-base with uct_list.&lt;br /&gt;
&lt;br /&gt;
NB: you CANNOT give that used .gobj a special name such as c0001234_cortex.gobj!&lt;br /&gt;
Only after the eval (or midshaft eval) has finished, you may copy it to a more&lt;br /&gt;
meaningful name - but all of our evaluations are just taking the STANDARD gobj name!&lt;br /&gt;
&lt;br /&gt;
Then afterwards (after renaming or copying the _seg.aim to _cortex.aim, and&lt;br /&gt;
.gobj to _cortex.gobj), you may want to start the very normal eval with normal&lt;br /&gt;
(inner) contours to evaluate the trabecular compartement.&lt;br /&gt;
Remember: the values in our 3D result database then are OVERWRITTEN.&lt;br /&gt;
&lt;br /&gt;
(if you have a whole study, I would recommend to run the $ midshaft for ALL&lt;br /&gt;
samples, $ uct_list to e.g. sys$scratch:mystudy_cortex.txt, rename/copy gobj and&lt;br /&gt;
seg for all, and THEN run the trab. eval for all samples, $ ust_list and you&lt;br /&gt;
have two nice complete xls sheets.)&lt;br /&gt;
&lt;br /&gt;
**********************&lt;br /&gt;
&lt;br /&gt;
More explanations of why the plate model is correct:&lt;br /&gt;
&lt;br /&gt;
Assume a ring (cortex).&lt;br /&gt;
&lt;br /&gt;
Area = thickness * &#039;middle line&#039;.&lt;br /&gt;
&#039;middle line&#039; = average of outer and inner circumference&lt;br /&gt;
--&amp;gt; &#039;middle line&#039; = 0.5 * &#039;bone surface&#039;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; thickness = bone volume * 2 / bone surface.&lt;br /&gt;
&lt;br /&gt;
And this is nothing else but the &#039;plate model&#039; formula for Tb.Th!&lt;br /&gt;
&lt;br /&gt;
nice, no ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And why not just run the &#039;normal trabecular eval&#039;?&lt;br /&gt;
in the &#039;normal&#039; TRI calculation, we are EXCLUDING all surfaces that are created&lt;br /&gt;
artificially by a gobj line that cuts through a trab.&lt;br /&gt;
&lt;br /&gt;
However, for the midshaft, this means: the whole outer (or even inner, if also&lt;br /&gt;
inner contour is there) is SUPPRESSED, because it is touching the gobj line. So&lt;br /&gt;
this is where that midshaft script comes in: it turns off that suppression.&lt;br /&gt;
&lt;br /&gt;
***************&lt;br /&gt;
&lt;br /&gt;
and some explanations, why the direct DT-Tb.Th* is NOT correct for a scan with&lt;br /&gt;
just e.g. 12 slices:&lt;br /&gt;
If we fill the structure with spheres, those spheres should be bounded by the&lt;br /&gt;
width of the cortex, not just by the fact that we only have 12 slices...&lt;br /&gt;
&lt;br /&gt;
(and even more so: We are always doing &#039;aim box&#039; suppression with the spheres: &lt;br /&gt;
if a sphere touches the boundary of the aim box, it is suppressed!&lt;br /&gt;
&lt;br /&gt;
So this is quite crucial for Tb.Sp and Tb.N: to get meaningful Tb.Sp, you would&lt;br /&gt;
need a LOT of slices. Also, then, you cannot have the inner contour - otherwise&lt;br /&gt;
the negative inner contour will delete the Tb.Sp. spheres... &lt;br /&gt;
&lt;br /&gt;
IF you have enough slices, you may opt to turn the /dt_object on again in the&lt;br /&gt;
midshaft script (second half). Then DT-Tb.Th* and TRI-Tb.Th just have a slightly&lt;br /&gt;
different behaviour if there are little pores within the cortex:&lt;br /&gt;
&lt;br /&gt;
TRI: the little pore just adds a little BS, thus the influence is not that big.&lt;br /&gt;
DT: the little pore cuts the thickness sphere in half, thus at that location,&lt;br /&gt;
the thickness is halved.&lt;br /&gt;
&lt;br /&gt;
**************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The script is also calculating Mean1 and Mean2 now:&lt;br /&gt;
Mean1: &#039;apparent&#039; density, average over whole TV&lt;br /&gt;
Mean2: &#039;tissue&#039; density: average over what was segmented as bone only.&lt;br /&gt;
&lt;br /&gt;
These mean values will be in mg HA/ccm if you have the calibration option for&lt;br /&gt;
bone density installed (and activated for those scans).&lt;br /&gt;
Remember: the bone has to have some soft-tissue (or equivalent) on the inside,&lt;br /&gt;
and preferably also on the outside then.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Temporarily change the evaluation for any &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
In a terminal window, we need to redefine the logical that determines which&lt;br /&gt;
3D evaluation is associated with the &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt; tool.&lt;br /&gt;
&lt;br /&gt;
For example, typing &amp;lt;code&amp;gt;VOI&amp;lt;/code&amp;gt; runs the &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt; tool&lt;br /&gt;
by executing &amp;lt;code&amp;gt;UE:UCT_EVALUATION_VOI.COM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&amp;lt;pre&amp;gt;$ show logical UCT_EVALUATION&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then you can redefine this to point to another evaluation script.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ define UCT_EVALUATION UE:UCT_EVALUATION_CUTOUT.COM&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is only redefined in the particular terminal you are using, and it&lt;br /&gt;
will reset to its default in a new terminal.  It will also not work if you&lt;br /&gt;
try to submit the job to a queue.  It only works interactively.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Assign special 3D evaluation to the &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt; tool===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;: This is for advanced users ONLY.  Do not attempt this without contacting Steve!&lt;br /&gt;
&lt;br /&gt;
This will show how to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt;:&lt;br /&gt;
It is easy to set up multiple .COM files for the 3D evalulation tool, one such set-up is already prepared on your computer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ eval_special&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will do something similar to &amp;lt;code&amp;gt;$ voi&amp;lt;/code&amp;gt; where the normal contour program opens, but if you start the 3D eval, the special script &amp;lt;code&amp;gt;um:uct_evaluation_special.com&amp;lt;/code&amp;gt; is called (associated with eval_special), which then in turn calls &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt;, where you can specify your own set of thresholds, etc.&lt;br /&gt;
&lt;br /&gt;
So it is a daisy chain of files which we will need to follow to set up a special &amp;lt;code&amp;gt;xxx_kyle.com&amp;lt;/code&amp;gt; script, and where ever we encounter &amp;lt;code&amp;gt;_special.com&amp;lt;/code&amp;gt;, we copy and change it to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; you will need to do the following:&lt;br /&gt;
&lt;br /&gt;
*1. Edit &amp;lt;code&amp;gt;disk1:[microct]microct_setup_user.com&amp;lt;/code&amp;gt; (double-click on file), please be careful here, it&#039;s very important! (and I hope you have done your &#039;weekly full backup&#039; regularly, so you could always retrieve a good version of login.com...)&lt;br /&gt;
&lt;br /&gt;
*2. Then, towards to bottom and duplicate the line&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_special :== @com:eval_var.com um:uct_evaluation_special.com&amp;lt;/code&amp;gt;&lt;br /&gt;
and change duplicate to&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_kyle    :== @com:eval_var.com um:uct_evaluation_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make this command &amp;lt;code&amp;gt;eval_kyle&amp;lt;/code&amp;gt; available after you login freshly. Save and Exit.&lt;br /&gt;
&lt;br /&gt;
*3. Then go to &amp;lt;code&amp;gt;disk1:[microct.eval]&amp;lt;/code&amp;gt; and copy the file &amp;lt;code&amp;gt;uct_evaluation_special.com&amp;lt;/code&amp;gt; to the name &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt; (&#039;Commands&#039;, &#039;Copy ...&#039;, BUT CLICK ON THE THREE DOTS and give new output name. &lt;br /&gt;
If you do not see the &amp;lt;code&amp;gt;eval_special:&amp;lt;/code&amp;gt; go to terminal, &amp;lt;code&amp;gt;$ dir ue:*special*.com&amp;lt;/code&amp;gt; and take it from the &amp;lt;code&amp;gt;microct_common&amp;lt;/code&amp;gt; directory)&lt;br /&gt;
&lt;br /&gt;
*4. Edit the &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt; file: at the top, change &amp;lt;code&amp;gt;ipl_......_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*5. Copy &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*6. Edit &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; to your liking. If you want &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; to not perform the full evaluation, but only something akin to &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, then, in the steps above, copy &amp;lt;code&amp;gt;uct_eval_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;ipl_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; (thus you take the &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; script as template for the &amp;lt;code&amp;gt;_kyle&amp;lt;/code&amp;gt; script).&lt;br /&gt;
&lt;br /&gt;
*7. Then open a new terminal (&#039;applications&#039;, &#039;decterm&#039;), &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; should work now!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;: When you start the 3D eval, then&lt;br /&gt;
&amp;lt;code&amp;gt;$ que&amp;lt;/code&amp;gt;&lt;br /&gt;
will show you your batch job with your name on it now!&lt;br /&gt;
&lt;br /&gt;
And now a few more explanations how the whole thing works: in all eval programs, hitting &#039;Start 3d&#039; just submits the logical &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$ show log uct_evaluation&amp;lt;/code&amp;gt; shows you that by default, this points to &amp;lt;code&amp;gt;ue:uct_evaluation_v4.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Those little &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;eval_steve&amp;lt;/code&amp;gt; scripts then just temporarily redefine this logical so that a different script is submitted when you &amp;lt;code&amp;gt;&#039;start 3d eval&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
About the &#039;&#039;&#039;corelut eval&#039;&#039;&#039;: Then we start a whole different eval program: the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt;. So, if you set up a &amp;lt;code&amp;gt;eval_steve_c&amp;lt;/code&amp;gt; (or whatever you want to call it): Produce a &amp;lt;code&amp;gt;eval_var_c.com&amp;lt;/code&amp;gt; in the directory commands (maybe copy from microct_common to [microct.commands]), and there, on the last line, instead of starting&lt;br /&gt;
&amp;lt;code&amp;gt;$ uct_evaluation&amp;lt;/code&amp;gt;&lt;br /&gt;
(the normal program), replace by&lt;br /&gt;
&amp;lt;code&amp;gt;$ evalc&amp;lt;/code&amp;gt;&lt;br /&gt;
which starts the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt; - and because the &amp;lt;code&amp;gt;eval_var.com&amp;lt;/code&amp;gt; has over-ridden the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; logical just before, then you are starting different script upon starting 3d eval.&lt;br /&gt;
NB: we have a logical AND a symbol called &amp;lt;code&amp;gt;uct_evalution&amp;lt;/code&amp;gt;. Sorry for confusion. Symbol &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; starts normal &amp;lt;code&amp;gt;eval&amp;lt;/code&amp;gt; program, so this is what you replace by symbol &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt; now).&lt;br /&gt;
&lt;br /&gt;
===HowTo: Convert CT numbers to mg HA/ccm===&lt;br /&gt;
&lt;br /&gt;
The two byte numbers (short) can be converted to mu values by first dividing by mu_scaling which is probably 4096. Then apply the slope and intercept to get mg HA/ccm. A typical slope may be 2.95e+02 and intercept -1.896e+02. &lt;br /&gt;
&lt;br /&gt;
These numbers are available in the AIM header, or the ISQ header (&amp;lt;code&amp;gt;$ run ut:ctheader&amp;lt;/code&amp;gt;).&lt;br /&gt;
The conversion is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mg HA/ccm = (AIM/mu_scaling) * slope + intercept&lt;br /&gt;
mg HA/ccm = (AIM/4096) * 295.494 – 189.695&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!---------------------------------------------------------------------- &lt;br /&gt;
Mu_Scaling                    4096 &lt;br /&gt;
Calibration Data              55 kVp, 200mg HA wedge, 4096 scaling &lt;br /&gt;
Calib. default unit type      2 (Density) &lt;br /&gt;
Density: unit                 mg HA/ccm &lt;br /&gt;
Density: slope                2.95493988e+02 &lt;br /&gt;
Density: intercept            -1.89695007e+02 &lt;br /&gt;
HU: mu water                  0.58200 &lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a list of registered measurements===&lt;br /&gt;
&lt;br /&gt;
:* To generate a list of measurements that are registered in the data base, to determine where backups are stored, or if the data is still on disk:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;$ write_info&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*It asks you for a range of measurement numbers or sample names, and creates &amp;lt;code&amp;gt; sys$scratch:info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: View the scout views===&lt;br /&gt;
&lt;br /&gt;
Use the program ximage&lt;br /&gt;
&amp;lt;pre&amp;gt;$ x asdf.SCV&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix SAP colours when green===&lt;br /&gt;
&lt;br /&gt;
(using the standard gray colourmap), if changing color maps doesn&#039;t help.&lt;br /&gt;
&lt;br /&gt;
:*Menu point &#039;Norm, Default is Bone = 16000.&lt;br /&gt;
&lt;br /&gt;
:*Take max for 32000, or &#039;Adapt slice&#039;.&lt;br /&gt;
&lt;br /&gt;
::Note: Do NOT take &#039;adapt vol&#039; - it will be extremely slow!  Every single mouse-click it re-calculates whole volume...&lt;br /&gt;
&lt;br /&gt;
==Writing Scripts==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Get information about a sample or measurement from database===&lt;br /&gt;
&lt;br /&gt;
The following will create a &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create your own IPL script with some tips===&lt;br /&gt;
&lt;br /&gt;
To make a script that would submit a job to the queue with the command as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you need to create your own IPL file would be translated to the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit /noprint /que=sys$slow ue:IPL_VOI_JOSH_M.COM &lt;br /&gt;
  - /log=sys$scratch:test.log /para=(&#039;aim_file&#039;,&#039;gobj_file&#039;,&#039;seg_file&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The IPL file would look something like this…&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$   if p1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$ 	THEN &lt;br /&gt;
$	write sys$output &amp;quot;Give DK0:[xxx]C0001234_SEG.aim on the line.&amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Or: &amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Type $ scanco_submit_command um:ipl_eval_autostart/para=(dk0:[xxx]c00123_seg.aim) &amp;quot;&lt;br /&gt;
$ 	exit&lt;br /&gt;
$   endif&lt;br /&gt;
$&lt;br /&gt;
$ gobj_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.GOBJ&amp;quot;&lt;br /&gt;
$ aim_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.AIM&amp;quot;&lt;br /&gt;
$&lt;br /&gt;
$!&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some more handy IPL sequences are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then you just need to give meas. number as P1 (and maybe slice range as p2),&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
OR, some nice starts are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P3 .EQS. &amp;quot;&amp;quot;&lt;br /&gt;
$    THEN&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to duplicate&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: New Sample Number from Database&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: New Start Letter of ISQ file&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P4: Optional: Operator Number&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P5: Optional: Controlfile Number&amp;quot;&lt;br /&gt;
$      EXIT&lt;br /&gt;
$    ENDIF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where you say which parameters HAVE to be there (up to p3), and which ones are optional.&lt;br /&gt;
&lt;br /&gt;
All together, the script may look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$    THEN &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to reco&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: Optional: Slice number N or Range M:N. Auto:All&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: Optional: Queue. Auto: sys$slow&amp;quot; &lt;br /&gt;
$      EXIT &lt;br /&gt;
$    ENDIF &lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A &lt;br /&gt;
$ if p3 .eqs. &amp;quot;&amp;quot; then p3 := SYS$SLOW &lt;br /&gt;
$ slices  = p2 &lt;br /&gt;
$ quename = p3 &lt;br /&gt;
$ INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1) &lt;br /&gt;
$ INPUT = INPUT - F$PARSE(INPUT,,,&amp;quot;VERSION&amp;quot;) &lt;br /&gt;
$ logfile = &amp;quot;sys$scratch:RECO_&amp;quot; + f$PARSE(input,,,&amp;quot;NAME&amp;quot;) + &amp;quot;.LOG&amp;quot; &lt;br /&gt;
$ submit/noprint/queue=&#039;quename&#039; uct_reconstruction_file - &lt;br /&gt;
    /para=(&#039;input&#039;,&#039;slices&#039;,&#039;logfile&#039;) &lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;lt;code&amp;gt;uct_reconstruction_file&amp;lt;/code&amp;gt; is a logical that points to &amp;lt;code&amp;gt;um:uct_reconstruction.com&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Logicals are preferred in scripts to make them more universal.&lt;br /&gt;
&lt;br /&gt;
==Errors and Fixes==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix &amp;quot;last slice&amp;quot; error problem when extracting AIM from ISQ===&lt;br /&gt;
&lt;br /&gt;
Sometimes the evaluation script (i.e., voi) converting the ISQ to an AIM fails because it tries to read one slice more than what is available in the ISQ data. The result of this failure is that the 3D analysis appears to fail and no .AIM or _SEG.AIM is created in the data directory. For example, it may have tried to read 261 slices, but there were only 260 slices available.&lt;br /&gt;
The easiest work around is to make sure that the white bounding box in the uct_evaluation program does not include the last slice (largest Z dimension). Scanco is aware of this problem and will fix it in future software releases (V5.2).&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=How_To%27s&amp;diff=1265</id>
		<title>How To&#039;s</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=How_To%27s&amp;diff=1265"/>
		<updated>2005-11-07T12:24:36Z</updated>

		<summary type="html">&lt;p&gt;Scanco: /* HowTo: Stop and restart the printer queue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=HowTo Library=&lt;br /&gt;
&lt;br /&gt;
==OpenVMS==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Helpful VMS commands===&lt;br /&gt;
&lt;br /&gt;
*Delete&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ delete *.aim;*&lt;br /&gt;
$ dl *.aim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Shut down the Alpha stations and start up again===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Do not do this unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
For shutdown&lt;br /&gt;
&lt;br /&gt;
At the login screen, type &amp;quot;shutdown&amp;quot;/no password and hit enter. &lt;br /&gt;
Then, you can turn the computer off at the prompt.&lt;br /&gt;
&lt;br /&gt;
Then, you may turn the disk array off (unplug it as there is no power switch).&lt;br /&gt;
&lt;br /&gt;
After you move the computer, power on the disk array and then the computer.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand difference between &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; is the same as &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;, but only with mcr you can hand over &#039;in-line&#039; parameters to an .exe file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
does not work, but you  have to say&lt;br /&gt;
&amp;lt;pre&amp;gt;$ mcr ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But funnily if you define a symbol in &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ ctheader :== $ut:ctheader.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with just neither run nor mcr, but the &#039;funny&#039; $ sign, then you can also hand over the ISQ name in-line.&lt;br /&gt;
&lt;br /&gt;
Small detail with big effect...&lt;br /&gt;
&lt;br /&gt;
===HowTo: Make commands available to all users with symbols or paths===&lt;br /&gt;
&lt;br /&gt;
DCL$PATH is one way to do that, WE don&#039;t use it...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ def dcl$path disk1:[microct.main],disk1:[microct.util]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, if you type&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ uct_t&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
it will first try to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ @uct_t.com&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
and then&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ r uct_t.exe&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
however, we usually define it by giving full path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ progx :== $disk1:[microct.main]progx.exe&lt;br /&gt;
$ com_proc_x :== @disk1:[microct.main]procedure.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type the shortcut (&#039;symbol&#039; in VMS language)&lt;br /&gt;
&lt;br /&gt;
We use the &#039;cd&#039; to set the default path, you may also use this in your command procedure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;proc.com&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd &#039;p1&#039;&lt;br /&gt;
$ dir *.*/size&lt;br /&gt;
&lt;br /&gt;
$ define COM disk1:[microct.commands]&lt;br /&gt;
$ p :== @COM:PROC.COM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
these both go into &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ p disk4:[microct.data.0000007.000009]*.ISQ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Launch an editor such as EVE===&lt;br /&gt;
&lt;br /&gt;
On the command line&lt;br /&gt;
&amp;lt;pre&amp;gt;$ edit/display=decwindows/tpu fname.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit a symbol set by Scanco such as AIX===&lt;br /&gt;
&lt;br /&gt;
[[Image:Bones2.jpg|picture_position,left]] &amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Extreme caution!  Explicit permission for this change or similar changes &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be obtained from Dr. Steven Boyd.&lt;br /&gt;
&lt;br /&gt;
Log in as user calibration&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set proc/priv=bypass&lt;br /&gt;
$ cdc (changes to microct_common)&lt;br /&gt;
$ sea *.com aix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit that file which is called &amp;lt;code&amp;gt;microct_setup_common.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Another example&#039;&#039;: To make the backspace/insert keys work properly, edit the &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt; and insert the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set terminal/insert&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anywhere suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: File do all -- apply one command to a whole set of files===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda ctheader dk0:[microct.data.0001234...]*.isq &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to see the header of all isq files of sample 1234 (the three dots ... means all subdirectories)&lt;br /&gt;
&lt;br /&gt;
Or: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda aix dk0:[microct.data.0001234.00005678]*.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to see the processing log of all aim files of scan 5678&lt;br /&gt;
&lt;br /&gt;
Wildcard &amp;quot;*&amp;quot; means multiple characters, &amp;quot;%&amp;quot; is for ONE character: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda aix dk0:[microct.data...]C%%%%%%%.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(yes, 7 %&#039;s)&lt;br /&gt;
&lt;br /&gt;
to show the aim header of the gray-scale c0000135.aim (etc) files only, and NOT from the _seg.aims also.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning: CAUTION! &amp;lt;/b&amp;gt; Always test the wildcard expression first with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ dir dk0:[xxx...]*.aim &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;file do all&#039; fda command can even be combined with a pipe, or an /output qualifier: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ pipe fda aix dk0:[microct...]*.aim | search sys$pipe &amp;quot;Slope&amp;quot; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will show you all &amp;quot;Slopes&amp;quot; in a row. (but you may not see which slope belongs to which aim file anymore...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda/output=sys$scratch:all_headers.log aix dk0:[microct...]*.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
will write all the output into the .log file - which you can then either edit, or &lt;br /&gt;
&amp;lt;code&amp;gt;$ search sys$scratch:all_headers.log &amp;quot;String&amp;quot;&lt;br /&gt;
or whatever you want. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;fda&amp;quot; is our self-written script, so you may have to try-n-error a bit...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda command file_wildcard [Optional: further parameters]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the command consists of multiple words with spaces inbetween (e.g. mcr ut:xxx.exe), then enclose the command in double-quotes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda &amp;quot;mcr ut:uct_ext_header_display&amp;quot; dk0:[microct...]*.isq 8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NB: the further parameters may not contain wildcards - so unfortunately, the fda can NOT be used to &#039;adaptively&#039; rename a whole bunch of files.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a customized button in the session manager===&lt;br /&gt;
&lt;br /&gt;
The session manager part to enable the double-click on the AIM file:&lt;br /&gt;
Session Manager, &#039;Options&#039;, &#039;Menu&#039;, enter new item&lt;br /&gt;
SAP&lt;br /&gt;
with command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@decw$user_defaults:sap$vue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then move that menu point into &#039;Applications&#039; menu.&lt;br /&gt;
Also:&lt;br /&gt;
&#039;Options&#039;, &#039;File types&#039;, Create &#039;AIM&#039; file type.&lt;br /&gt;
Move &#039;rename&#039;, &#039;copy&#039;, &#039;purge&#039; etc. into menu, Select &#039;SAP&#039;, click  on&lt;br /&gt;
&#039;Change double click&#039;, and also move SAP into menu.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Export the VMS display to SUN or LINUX terminal===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# - temple&lt;br /&gt;
$ - sceval&lt;br /&gt;
# xhost +temple.ucalgary.ca&lt;br /&gt;
# ssh -X microct@sceval.ucalgary.ca&lt;br /&gt;
$ set display /create /transport=tcpip /node=temple.ucalgary.ca&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE:&amp;lt;/b&amp;gt; Do not use &amp;lt;code&amp;gt;xhost+&amp;lt;/code&amp;gt;.  Always specific exactly which computer is being&lt;br /&gt;
allowed X access.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Monitor system usage===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ monitor/interval=1 processes/topcpu&lt;br /&gt;
$ monitor/interval=1 system&lt;br /&gt;
$ show error&lt;br /&gt;
$ show system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;show error&amp;lt;/code&amp;gt; may indicate errors.  One or two errors is OK.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Configure the EVE editor===&lt;br /&gt;
&lt;br /&gt;
The following file, called &amp;lt;code&amp;gt;tpu.dat&amp;lt;/code&amp;gt;, should be installed in &amp;lt;code&amp;gt;disk1:[microct.xdefaults]:&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# DECTPU V3.1 1993-04-22 15:50 defaults&lt;br /&gt;
# CHANGED B.KOLLER 21-JUN-90&lt;br /&gt;
#&lt;br /&gt;
# Copyright (c) 1993 Digital Equipment Corporation.  All rights reserved.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
# The following are all the resource names that DECTPU supports.&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Title:		DECTPU Copyright © Digital Equipment Corporation 1992.  All Rights Reserved.&lt;br /&gt;
Tpu.Tpu$MainWindow.ApplicationTitle:	DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.IconName:		DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.X:			610&lt;br /&gt;
Tpu.Tpu$MainWindow.Y:			0&lt;br /&gt;
#&lt;br /&gt;
# The following resource names are commented out so that users can specify&lt;br /&gt;
# *rows and *columns and have DECTPU obey those directives.  If DECTPU finds&lt;br /&gt;
# finds no resource names governing the number of rows and columns it should&lt;br /&gt;
# have, it uses 24 rows and 80 columns.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Columns:	80&lt;br /&gt;
Tpu.Tpu$MainWindow.Rows:	56&lt;br /&gt;
*EVE_MENU_BAR*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmScrollBar*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmDialogShell*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmMenuShell*background:	#ADADADADADAD&lt;br /&gt;
*background:			white&lt;br /&gt;
Tpu*condensedFont: OFF&lt;br /&gt;
Tpu*fontSetSelection: 0&lt;br /&gt;
&lt;br /&gt;
# 0 = big font&lt;br /&gt;
# 1 = little font&lt;br /&gt;
# 2 = GS font (German Standard)&lt;br /&gt;
# 3 = Fine font (used only for non-latin 1 fonts?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scanco System and Setup==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Calculate vivaCT CTDI dose===&lt;br /&gt;
&lt;br /&gt;
Assuming the following settings on the vivaCT, we will calculate the CTDI dose.&lt;br /&gt;
&lt;br /&gt;
HIGH MODE:&lt;br /&gt;
 1000 projections&lt;br /&gt;
 0.109 mA&lt;br /&gt;
 200 ms IT&lt;br /&gt;
&lt;br /&gt;
I calculate the time current value as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;0.109 mA * (0.200 + 0.012) S * 1000 proj= 23.11 mAs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 0.012 is the integration time between projections.&lt;br /&gt;
&lt;br /&gt;
Taking the proportion of the 68 mAs at 55 kV resulting in 720 mGy (see the document on example&lt;br /&gt;
dose calculation on this Wiki site), we have:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;23.11 / 68 * 720 = 245 mGy&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then multiplying by your factor 2 (because for our setup our CTDI is more like in air), we get:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;2 * 245 = 490 mGy per scan.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Browse the VMS files from a windows PC===&lt;br /&gt;
&lt;br /&gt;
Pathworks gives you the ability to mount the Alpha as an external drive on your PC.  It would be mounted as an F: or G: drive, then you can navigate using windows explorer.&lt;br /&gt;
&lt;br /&gt;
You can look for the vivaCT in your microsoft windows network neighborhood and see if you can find it...then log in.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Stop and restart the printer queue===&lt;br /&gt;
&lt;br /&gt;
How to fix the printer queue when hung, not working or giving an error.&lt;br /&gt;
A full printer queue can seriously affect system performance.  &lt;br /&gt;
Be sure that the queue is cleaned up from time to time.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt; $ show queue &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to first find out the real name of your printer queue. Replace hpljet by your own queue name below. &lt;br /&gt;
&lt;br /&gt;
First approach, as normal user microct: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ stop/que/reset hpljet&lt;br /&gt;
$ start/que hpljet&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Completely remove the queue and re-generate, as user system&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ stop/que/reset hpljet&lt;br /&gt;
$ dele/que hpljet&lt;br /&gt;
$ @sys$startup:dcps_hpljet_ip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Requeue a process===&lt;br /&gt;
&lt;br /&gt;
:* Find the process identification using &amp;lt;code&amp;gt;see&amp;lt;/code&amp;gt;&lt;br /&gt;
:* The process must be &amp;lt;I&amp;gt;pending&amp;lt;/I&amp;gt;, not &amp;lt;I&amp;gt;processing&amp;lt;/I&amp;gt;!&lt;br /&gt;
:* &amp;lt;code&amp;gt;set entry 1131 /requeue=SCEVAL_SLOW &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract patient name from database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will show you sample-name of sample-number 1234&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info -m 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will give you some (stupid) info about meas 1234&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you use this function all the time, put the following into &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uct_info  :== $um:uct_info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then the usage info will even be correct&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract disk usage information===&lt;br /&gt;
&lt;br /&gt;
To look at the RSQs in the database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dir/siz dk0:[microct.data...]*.rsq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
the three dots means all subdirectories.&lt;br /&gt;
&lt;br /&gt;
Other useful commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.rsq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
shows you header.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ fda command file-wildcard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
does a &#039;file do all&#039; of the command on all the given wildcard filenames.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe xxxx | search sys$pipe &amp;quot;patient&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
is the pipe command in VMS.&lt;br /&gt;
&lt;br /&gt;
So all three combined:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe fda ctheader dk0:[microct.data...]*.rsq | search sys$pipe &amp;quot;patient name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or any other field you want to search for!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other ideas&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gives you a file &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; with info in it (leave defaults to get all samples ever scanned, otherwise &#039;zoom&#039; in on some samples.)&lt;br /&gt;
&lt;br /&gt;
Check out the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ help search&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and &amp;lt;code&amp;gt;/match=and&amp;lt;/code&amp;gt;&lt;br /&gt;
or &amp;lt;code&amp;gt;/match=or&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit Scanco &amp;lt;code&amp;gt;SCANCO_SUBMIT_COMMAND&amp;lt;/code&amp;gt; symbol===&lt;br /&gt;
&lt;br /&gt;
*Check the current setting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show sym *submit*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In directory &amp;lt;code&amp;gt;DISK2:[MICROCT]MICROCT_SETUP_USER.COM&amp;lt;/code&amp;gt; add the following line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ SCANCO_SUBMIT_COMMAND :== SUBMIT/NOPRINT/QUE=SYS$SLOW /NOTIFY/LOG=SYS$SCRATCH:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then end session and log in again.  Definition of the symbol in the &lt;br /&gt;
&amp;lt;code&amp;gt;MICRO_SETUP_USER.COM&amp;lt;/code&amp;gt; supersedes the standard setting.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use the new &amp;lt;code&amp;gt;UCT_BACKUP&amp;lt;/code&amp;gt; software===&lt;br /&gt;
&lt;br /&gt;
New Features (i) You can now select multiple samples with the Shift and/or the Ctrl key; and (2) You can use the sample name filter field on top to display only names containing the filter string.&lt;br /&gt;
&lt;br /&gt;
Start the move/copy by clicking on &amp;lt;code&amp;gt;&#039;Start...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;&#039;Script...&#039;&amp;lt;/code&amp;gt; button is for advanced users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Advanced Users:&amp;lt;/b&amp;gt;&lt;br /&gt;
Use of the &#039;Script...&#039; button: this will generate a script,&lt;br /&gt;
&amp;lt;code&amp;gt;sys$scratch:archive.com&amp;lt;/code&amp;gt;,&lt;br /&gt;
that you may submit in batch mode later (e.g. over night) by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command sys$scratch:archive.com/after=23:59&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(In a multi-computer cluster setup, you may want to specify the exact queue name of the computer that has the tape hooked up by giving e.g. &amp;lt;code&amp;gt;/que=sceval_fast&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
Insert a tape, but do NOT mount the tape in the normal program. (If necessary: if it&#039;s a new tape, initialize it as usual). The batch job will be started one minute before midnight in the example above.&lt;br /&gt;
&amp;lt;code&amp;gt;$ show entry&amp;lt;/code&amp;gt; will show you that it is holding until then.&lt;br /&gt;
See &amp;lt;code&amp;gt;$ help submit /after&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$ help dcl_tips date_time example&amp;lt;/code&amp;gt; for more help on this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Little Reminder:&amp;lt;/b&amp;gt;&lt;br /&gt;
While the tape is running and writing to it, DO NOT LOG OUT, DO NOT INTERRUPT THE PROGRAM! This would make that tape unusable from this point on - you could still read from that tape up to this point, but could not add more scans to this tape.&lt;br /&gt;
What to do when tape is full? It then displays some message about continuing on another tape. Hit &amp;lt;code&amp;gt;ctrl/c&amp;lt;/code&amp;gt; to interrupt the program, take a fresh tape, initialize it, select the remaining scans to archive again, hit &amp;lt;code&amp;gt;&#039;start&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
And last but not least: WE STRONGLY URGE YOU TO DO THE WEEKLY BACKUP (SAFETY BACKUP OF USER DISK1 WITH YOUR DATABASES ON IT). Two users DID experience disk crashes last year, and without the weekly backup, you may still have all scans on the data disk (e.g. disk2), but without the databases you cannot tell which scans belong the which sample!&lt;br /&gt;
&lt;br /&gt;
How to do weekly backup: insert &#039;special&#039; weekly backup tape, e.g. week_a, and&lt;br /&gt;
just hit &#039;Full backup to tape&#039;.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Import foreign data into the Scanco database on the VMS system===&lt;br /&gt;
&lt;br /&gt;
Only ISQ files can be imported into the database, however it is possible to convert other types of data into ISQ files (i.e., stacks of BMPs into ISQ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 1:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After transfering your data to the VMS system (use the data disk &amp;lt;code&amp;gt;disk2&amp;lt;/code&amp;gt;, NOT the user disk &amp;lt;code&amp;gt;disk1&amp;lt;/code&amp;gt;), use the IPL commands &amp;lt;code&amp;gt;/import_freeformat&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/read_aim function&amp;lt;/code&amp;gt; to import your data for conversion to an ISQ.&lt;br /&gt;
&lt;br /&gt;
For DICOM files, start IPL and run the &amp;lt;code&amp;gt;/dicom&amp;lt;/code&amp;gt; function to import. For DICOM, if your object is a single 3D file (-multifile false) or many many individual slice files (-multifile true, and give beginning of filenames, and –extension).&lt;br /&gt;
&lt;br /&gt;
There may be requests by IPL to convert your data to &amp;lt;code&amp;gt;signed short&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;signed char&amp;lt;/code&amp;gt; from other data types. Obey these requests and do it by running the &amp;lt;code&amp;gt;/convert_unsigned&amp;lt;/code&amp;gt; function.&lt;br /&gt;
&lt;br /&gt;
Then, write the ISQ file.&lt;br /&gt;
&amp;lt;pre&amp;gt;ipl&amp;gt; toisq in DK0:[MICROCT.DATA]D0000001.ISQ&lt;br /&gt;
    -square           true&lt;br /&gt;
    -original_pos     false&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This writes the ISQ file. &lt;br /&gt;
&amp;lt;b&amp;gt;Remember&amp;lt;/b&amp;gt;, the ISQ name must be 8 characters long (1 character followed by seven digits)!!! The letters and numbers can be chosen freely.&lt;br /&gt;
&lt;br /&gt;
Fill out a log sheet with the original AIM names that were imported, and the resulting ISQ names that were generated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 2: &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a sample in the database and write down the sample and measurement number. Then, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run um:uct_import&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And give the new ISQ file, the new sample-number and check that the feedback is correct (i.e., that the name from the database is matching the name from the ISQ file header).&lt;br /&gt;
&lt;br /&gt;
Operator and controlfile can be left 0 if you want.&lt;br /&gt;
&lt;br /&gt;
Then it changes the sample and measurement number in the ISQ file, makes the correct directory on &amp;lt;code&amp;gt;DK0&amp;lt;/code&amp;gt;, and gives you the line on the screen of how to rename the file to the correct, new directory. Take this line and use it on the command line.  Done!  &lt;br /&gt;
&lt;br /&gt;
You can now use the normal &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; program with this file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you were importing an AIM file, delete the original file as it will have the wrong measurement indexes in its log header. You will have to produce the AIM file again from the ISQ so our database writes the evaluation results into the correct sample fields.&lt;br /&gt;
&lt;br /&gt;
==Project Management==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Example filled out log sheet===&lt;br /&gt;
&lt;br /&gt;
A log sheet, which is always kept near the scanner, must be filled out for&lt;br /&gt;
every measurement on the system.  A blank log sheet is available in the&lt;br /&gt;
Documents section of this Wiki page.&lt;br /&gt;
&lt;br /&gt;
Here is an example log sheet:&lt;br /&gt;
&lt;br /&gt;
::[[Image:Herzog_pic.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Evaluation==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand the morphological parameters===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BV/TV  -&amp;gt; VOX-BV/TV&lt;br /&gt;
BS/BV  -&amp;gt; TRI-BS/BV&lt;br /&gt;
Tb.Th  -&amp;gt; DT-Tb.Th&lt;br /&gt;
Tb.Sp  -&amp;gt; DT-Tb.Sp&lt;br /&gt;
Tb.N   -&amp;gt; DT-Tb.N&lt;br /&gt;
ConnD  -&amp;gt; Conn-Dens&lt;br /&gt;
SMI    -&amp;gt; TRI-SMI&lt;br /&gt;
DA     -&amp;gt; TRI-DA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usually I&#039;d use the names on the left for the plots, but these correspond to the names on the right of the arrow in the Scanco output files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you use the TRI-Tb.Th rather than the DT-Tb.Th*, then you are using the derived (plate-model) morphological parameters.  These are less accurate than the direct parameters.  They are calculated by triangulating the surface (marching cubes) to get BS, and then calculate thickness&lt;br /&gt;
Th = 2 * BV / BS, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mean Values&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mean 1: mean of bone AND marrow --&amp;gt; &#039;apparent density&#039;&lt;br /&gt;
mean 2: mean of what was considered bone only (i.e. what was segmented) &lt;br /&gt;
&#039;bone tissue density&#039;. (so this does depend on threshold a little bit)&lt;br /&gt;
mean 3: empty, or can be used to store mean of cortex, e.g.&lt;br /&gt;
 The function /voxgobj has -region number (zero-based) to goveren which &lt;br /&gt;
 mean value is filled, 1 - 5 (thus region 0 - 4).]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;What you should also know&amp;lt;/b&amp;gt;: because of partial voluming effects, for Mean2, we are DISCARDING the 2 surface voxels of EVERY trabeculae - thus, to get meaningful Mean2, you have to do your scan with the chosen resolution high enough, such that the mean trabeculae is depicted by at the very least 5 pixels, better actually more than 6 pixels thickness. (You can do this check at the end in the XLS sheet: divide DT-Tb.Th* by el-size-mm.x, and you need to get numbers bigger than 6 or 7 or 10 or so.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Start a 3D evaulation from the terminal===&lt;br /&gt;
&lt;br /&gt;
Warning: Do not change &amp;lt;code&amp;gt;uct_evaulation_v4.com&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ipl_fixed_batch_v4.com&amp;lt;/code&amp;gt; in .eval, but only work on your own file (i.e., eval_steve).&lt;br /&gt;
First, an explanation of how the normal evaluation runs by hitting the &#039;Start 3d&#039; button.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_v4.com/para=(xxx,yyy,zzz,…)&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are 8 parameters:&lt;br /&gt;
*P1: number of print outs of our results sheet&lt;br /&gt;
*P2: the ISQ filename&lt;br /&gt;
*P3-5: start x (pos x), y, z&lt;br /&gt;
*P6-8: dim x, y, z&lt;br /&gt;
The parameters p3-p8 come from the white bounding box. The problem is that when you start from the terminal you do not have these. This problem can be overcome by using the &amp;lt;code&amp;gt;isq_to_aim_gobjbox.exe&amp;lt;/code&amp;gt; and then give the relevant parameters. You can &lt;br /&gt;
&amp;lt;code&amp;gt;$ run um: isq_to_aim_gobjbox.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
to see what it&#039;s asking for.&lt;br /&gt;
By using gobjbox you do not need p3-p8. Therefore you can start the evaluation by giving:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_special_josh.com –&lt;br /&gt;
/para=(1,dk0:[microct.data.0000275.0000245]c0000332.ISQ)&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that you can make &amp;lt;code&amp;gt;uct_evaluation_special_josh.com&amp;lt;/code&amp;gt; such that there is no need for P1 (change p2 to p1 in the script, etc).&lt;br /&gt;
[Alternatively to using the gobjbox you could use the normal isq_to_aim, but hard code the dim and pos.]&lt;br /&gt;
Then call whatever IPL files you want to call. Look into &amp;lt;code&amp;gt;fixed_batch_v4&amp;lt;/code&amp;gt; to see how we turn on the database always on the first line of every IPL part, and how we calculate parameters.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use &amp;lt;code&amp;gt;EVAL PROGRAM (Slice Viewer)&amp;lt;/code&amp;gt; without importing ISQ into the database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; It is strongly suggested to properly import that ISQ into the database before you run a full 3D evaluation!  See the appropriate HowTo.&lt;br /&gt;
&lt;br /&gt;
In a terminal, &amp;lt;code&amp;gt;$ def uct_default_isq xxxxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then start the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool (or &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
Hit cancel when asked for a file to read and the default ISQ that was set will be read.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; Only start a 3D evaluation if and only if the sample (patient) and measurement&lt;br /&gt;
index are &amp;lt;b&amp;gt;correct&amp;lt;/b&amp;gt; in the ISQ header!&lt;br /&gt;
&lt;br /&gt;
===HowTo: Submit a job to the queue===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit/noprint /que=sys$slow ipl_voi_josh_m.com &lt;br /&gt;
  - /log=sys$scratch:test.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract your results from the 3D database===&lt;br /&gt;
&lt;br /&gt;
Assuming you&#039;ve used the scanco_submit_command to initialize your evaluations (either manually or through the uct_evaluation tool) then you can get all of your results stored into a text file that can be easily imported in Excel.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ uct_list&amp;lt;/pre&amp;gt;&lt;br /&gt;
The output text file will be stored in &amp;lt;code&amp;gt;sys$scratch&amp;lt;/code&amp;gt; and you can ftp this to a PC so that it can be imported into excel and further analysis can be performed. &lt;br /&gt;
&lt;br /&gt;
Importing into Excel requires setting a deliminator based on the space.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Tabulate your LOG file results from 3D evaluations===&lt;br /&gt;
&lt;br /&gt;
Only use this if you have not used the standard &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool to generate your 3D evaluations (in which case see the HowTo related to the 3D database).&lt;br /&gt;
You can tabulate the LOG files:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or whatever you want to search for can be stored in a text file&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search/output=sys$scratch:ov.txt xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To search more than one log file, and get the output into one single file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ fda/output=xxx.txt search *.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fda means &#039;file do all&#039; and is a script made by Scanco to do one command (search) on a wildcard of files (*.log). Then put all the ov.txt, tv.txt, name.txt etc. files into excel.&lt;br /&gt;
Josh has made a .com file that does a similar job as described above.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Do cortical midshaft evaluation with moment of inertia calculation===&lt;br /&gt;
&lt;br /&gt;
This explains what happens when you type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; $ midshaft or $ eval_midshaft &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Draw a rough contour in the first of your 20 (or 12 or whatever) slices,&lt;br /&gt;
open the Contouring Sub-window, double-click on the big image, and it&lt;br /&gt;
automatically&lt;br /&gt;
finds the best contour. Then click on &#039;Selection&#039; &#039;Forwards&#039;, then &#039;Iterate&lt;br /&gt;
Forwards&#039;, and it finds the best contour for every of your (about) 20 slices.&lt;br /&gt;
&lt;br /&gt;
Then &#039;cancel&#039; the contouring sub-window, and start the 3D evaluation.&lt;br /&gt;
&lt;br /&gt;
FIRST: set the correct threshold, sigma, support in the file:&lt;br /&gt;
[microct.main]ipl_fixed_batch_midshaft.com (or in [microct.eval])!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Save contours when it asks you). Exit the program.&lt;br /&gt;
&lt;br /&gt;
When you now type $ que in the terminal, you will see some job called&lt;br /&gt;
&#039;uct_evaluation_midshaft&#039;&lt;br /&gt;
(or similar), whereas the trabecular evaluations were called&lt;br /&gt;
&#039;uct_evaluation_v4&#039;.&lt;br /&gt;
Also the .log file in Scratch has the _midshaft name.&lt;br /&gt;
&lt;br /&gt;
I now only calculate the TRI values (Plate Model), and not the direct stuff&lt;br /&gt;
anymore, since for only 20 slices, the truly 3D Tb.Th might be quite off.&lt;br /&gt;
Also, you will see lots of tildes on the result sheets. This is to tell&lt;br /&gt;
you that, if the meas. were trab. bone, those values would only be approximate.&lt;br /&gt;
But now for the cortex, they are actually correct ! (see below for more explan about this)&lt;br /&gt;
&lt;br /&gt;
So I would now use the tildes to check the &#039;excel&#039; table that the operator&lt;br /&gt;
has taken the correct script for the trab. or cort. evaluations for the&lt;br /&gt;
respective measurements !&lt;br /&gt;
&lt;br /&gt;
So what&#039;s the advantage of all this ? Now, also VOX-TV is correct! So VOX-TV&lt;br /&gt;
is the whole area, VOX-BV the doughnut, so TV-BV is the marrow area ! And still,&lt;br /&gt;
TRI-Tb.Th is the cortical thickness. (TRI-TV is NOT correct, because the .gobj&lt;br /&gt;
feature was turned off.)&lt;br /&gt;
&lt;br /&gt;
I say &#039;area&#039; above: depending on how many slices one individual scan has,&lt;br /&gt;
VOX-BV (and VOX-TV) might be different for different scans, so you will HAVE to&lt;br /&gt;
convert the volumes to area again:&lt;br /&gt;
&lt;br /&gt;
volume equals area times height&lt;br /&gt;
--&amp;gt; Bone Area = VOX-BV / height = BV / (dim.z * el_size_mm.z)&lt;br /&gt;
(and same for Total area, of course :-)&lt;br /&gt;
&lt;br /&gt;
All clear ???&lt;br /&gt;
&lt;br /&gt;
If you want porosity of the bone itself:&lt;br /&gt;
&lt;br /&gt;
draw two contours: one around, counter-clockwise, on on the inside, clock-wise&lt;br /&gt;
(thus a &#039;negative&#039;, excluding contour).&lt;br /&gt;
Now, TV will be just that ring area, BV will be the bone within that ring area,&lt;br /&gt;
and BV/TV will be 1 - porosity, thus BV/TV 94% means 6% porosity.&lt;br /&gt;
&lt;br /&gt;
*****************&lt;br /&gt;
&lt;br /&gt;
Application of this script to metaphysis scan (with trab. in middle):&lt;br /&gt;
&lt;br /&gt;
$ midshaft&lt;br /&gt;
draw one contour around the cortex, and in same slices, a NEGATIVE contour on&lt;br /&gt;
the inside (CW contour) to exclude the trab.&lt;br /&gt;
(potentially work with the BP (brake-point) system to be able to morph the&lt;br /&gt;
negative contours, even though there is already a &#039;outer&#039; contour around the&lt;br /&gt;
bone in every slice.)&lt;br /&gt;
&lt;br /&gt;
Start 3D eval, read out the data-base with uct_list.&lt;br /&gt;
&lt;br /&gt;
NB: you CANNOT give that used .gobj a special name such as c0001234_cortex.gobj!&lt;br /&gt;
Only after the eval (or midshaft eval) has finished, you may copy it to a more&lt;br /&gt;
meaningful name - but all of our evaluations are just taking the STANDARD gobj name!&lt;br /&gt;
&lt;br /&gt;
Then afterwards (after renaming or copying the _seg.aim to _cortex.aim, and&lt;br /&gt;
.gobj to _cortex.gobj), you may want to start the very normal eval with normal&lt;br /&gt;
(inner) contours to evaluate the trabecular compartement.&lt;br /&gt;
Remember: the values in our 3D result database then are OVERWRITTEN.&lt;br /&gt;
&lt;br /&gt;
(if you have a whole study, I would recommend to run the $ midshaft for ALL&lt;br /&gt;
samples, $ uct_list to e.g. sys$scratch:mystudy_cortex.txt, rename/copy gobj and&lt;br /&gt;
seg for all, and THEN run the trab. eval for all samples, $ ust_list and you&lt;br /&gt;
have two nice complete xls sheets.)&lt;br /&gt;
&lt;br /&gt;
**********************&lt;br /&gt;
&lt;br /&gt;
More explanations of why the plate model is correct:&lt;br /&gt;
&lt;br /&gt;
Assume a ring (cortex).&lt;br /&gt;
&lt;br /&gt;
Area = thickness * &#039;middle line&#039;.&lt;br /&gt;
&#039;middle line&#039; = average of outer and inner circumference&lt;br /&gt;
--&amp;gt; &#039;middle line&#039; = 0.5 * &#039;bone surface&#039;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; thickness = bone volume * 2 / bone surface.&lt;br /&gt;
&lt;br /&gt;
And this is nothing else but the &#039;plate model&#039; formula for Tb.Th!&lt;br /&gt;
&lt;br /&gt;
nice, no ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And why not just run the &#039;normal trabecular eval&#039;?&lt;br /&gt;
in the &#039;normal&#039; TRI calculation, we are EXCLUDING all surfaces that are created&lt;br /&gt;
artificially by a gobj line that cuts through a trab.&lt;br /&gt;
&lt;br /&gt;
However, for the midshaft, this means: the whole outer (or even inner, if also&lt;br /&gt;
inner contour is there) is SUPPRESSED, because it is touching the gobj line. So&lt;br /&gt;
this is where that midshaft script comes in: it turns off that suppression.&lt;br /&gt;
&lt;br /&gt;
***************&lt;br /&gt;
&lt;br /&gt;
and some explanations, why the direct DT-Tb.Th* is NOT correct for a scan with&lt;br /&gt;
just e.g. 12 slices:&lt;br /&gt;
If we fill the structure with spheres, those spheres should be bounded by the&lt;br /&gt;
width of the cortex, not just by the fact that we only have 12 slices...&lt;br /&gt;
&lt;br /&gt;
(and even more so: We are always doing &#039;aim box&#039; suppression with the spheres: &lt;br /&gt;
if a sphere touches the boundary of the aim box, it is suppressed!&lt;br /&gt;
&lt;br /&gt;
So this is quite crucial for Tb.Sp and Tb.N: to get meaningful Tb.Sp, you would&lt;br /&gt;
need a LOT of slices. Also, then, you cannot have the inner contour - otherwise&lt;br /&gt;
the negative inner contour will delete the Tb.Sp. spheres... &lt;br /&gt;
&lt;br /&gt;
IF you have enough slices, you may opt to turn the /dt_object on again in the&lt;br /&gt;
midshaft script (second half). Then DT-Tb.Th* and TRI-Tb.Th just have a slightly&lt;br /&gt;
different behaviour if there are little pores within the cortex:&lt;br /&gt;
&lt;br /&gt;
TRI: the little pore just adds a little BS, thus the influence is not that big.&lt;br /&gt;
DT: the little pore cuts the thickness sphere in half, thus at that location,&lt;br /&gt;
the thickness is halved.&lt;br /&gt;
&lt;br /&gt;
**************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The script is also calculating Mean1 and Mean2 now:&lt;br /&gt;
Mean1: &#039;apparent&#039; density, average over whole TV&lt;br /&gt;
Mean2: &#039;tissue&#039; density: average over what was segmented as bone only.&lt;br /&gt;
&lt;br /&gt;
These mean values will be in mg HA/ccm if you have the calibration option for&lt;br /&gt;
bone density installed (and activated for those scans).&lt;br /&gt;
Remember: the bone has to have some soft-tissue (or equivalent) on the inside,&lt;br /&gt;
and preferably also on the outside then.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Temporarily change the evaluation for any &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
In a terminal window, we need to redefine the logical that determines which&lt;br /&gt;
3D evaluation is associated with the &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt; tool.&lt;br /&gt;
&lt;br /&gt;
For example, typing &amp;lt;code&amp;gt;VOI&amp;lt;/code&amp;gt; runs the &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt; tool&lt;br /&gt;
by executing &amp;lt;code&amp;gt;UE:UCT_EVALUATION_VOI.COM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&amp;lt;pre&amp;gt;$ show logical UCT_EVALUATION&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then you can redefine this to point to another evaluation script.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ define UCT_EVALUATION UE:UCT_EVALUATION_CUTOUT.COM&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is only redefined in the particular terminal you are using, and it&lt;br /&gt;
will reset to its default in a new terminal.  It will also not work if you&lt;br /&gt;
try to submit the job to a queue.  It only works interactively.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Assign special 3D evaluation to the &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt; tool===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;: This is for advanced users ONLY.  Do not attempt this without contacting Steve!&lt;br /&gt;
&lt;br /&gt;
This will show how to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt;:&lt;br /&gt;
It is easy to set up multiple .COM files for the 3D evalulation tool, one such set-up is already prepared on your computer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ eval_special&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will do something similar to &amp;lt;code&amp;gt;$ voi&amp;lt;/code&amp;gt; where the normal contour program opens, but if you start the 3D eval, the special script &amp;lt;code&amp;gt;um:uct_evaluation_special.com&amp;lt;/code&amp;gt; is called (associated with eval_special), which then in turn calls &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt;, where you can specify your own set of thresholds, etc.&lt;br /&gt;
&lt;br /&gt;
So it is a daisy chain of files which we will need to follow to set up a special &amp;lt;code&amp;gt;xxx_kyle.com&amp;lt;/code&amp;gt; script, and where ever we encounter &amp;lt;code&amp;gt;_special.com&amp;lt;/code&amp;gt;, we copy and change it to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; you will need to do the following:&lt;br /&gt;
&lt;br /&gt;
*1. Edit &amp;lt;code&amp;gt;disk1:[microct]microct_setup_user.com&amp;lt;/code&amp;gt; (double-click on file), please be careful here, it&#039;s very important! (and I hope you have done your &#039;weekly full backup&#039; regularly, so you could always retrieve a good version of login.com...)&lt;br /&gt;
&lt;br /&gt;
*2. Then, towards to bottom and duplicate the line&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_special :== @com:eval_var.com um:uct_evaluation_special.com&amp;lt;/code&amp;gt;&lt;br /&gt;
and change duplicate to&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_kyle    :== @com:eval_var.com um:uct_evaluation_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make this command &amp;lt;code&amp;gt;eval_kyle&amp;lt;/code&amp;gt; available after you login freshly. Save and Exit.&lt;br /&gt;
&lt;br /&gt;
*3. Then go to &amp;lt;code&amp;gt;disk1:[microct.eval]&amp;lt;/code&amp;gt; and copy the file &amp;lt;code&amp;gt;uct_evaluation_special.com&amp;lt;/code&amp;gt; to the name &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt; (&#039;Commands&#039;, &#039;Copy ...&#039;, BUT CLICK ON THE THREE DOTS and give new output name. &lt;br /&gt;
If you do not see the &amp;lt;code&amp;gt;eval_special:&amp;lt;/code&amp;gt; go to terminal, &amp;lt;code&amp;gt;$ dir ue:*special*.com&amp;lt;/code&amp;gt; and take it from the &amp;lt;code&amp;gt;microct_common&amp;lt;/code&amp;gt; directory)&lt;br /&gt;
&lt;br /&gt;
*4. Edit the &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt; file: at the top, change &amp;lt;code&amp;gt;ipl_......_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*5. Copy &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*6. Edit &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; to your liking. If you want &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; to not perform the full evaluation, but only something akin to &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, then, in the steps above, copy &amp;lt;code&amp;gt;uct_eval_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;ipl_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; (thus you take the &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; script as template for the &amp;lt;code&amp;gt;_kyle&amp;lt;/code&amp;gt; script).&lt;br /&gt;
&lt;br /&gt;
*7. Then open a new terminal (&#039;applications&#039;, &#039;decterm&#039;), &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; should work now!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;: When you start the 3D eval, then&lt;br /&gt;
&amp;lt;code&amp;gt;$ que&amp;lt;/code&amp;gt;&lt;br /&gt;
will show you your batch job with your name on it now!&lt;br /&gt;
&lt;br /&gt;
And now a few more explanations how the whole thing works: in all eval programs, hitting &#039;Start 3d&#039; just submits the logical &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$ show log uct_evaluation&amp;lt;/code&amp;gt; shows you that by default, this points to &amp;lt;code&amp;gt;ue:uct_evaluation_v4.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Those little &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;eval_steve&amp;lt;/code&amp;gt; scripts then just temporarily redefine this logical so that a different script is submitted when you &amp;lt;code&amp;gt;&#039;start 3d eval&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
About the &#039;&#039;&#039;corelut eval&#039;&#039;&#039;: Then we start a whole different eval program: the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt;. So, if you set up a &amp;lt;code&amp;gt;eval_steve_c&amp;lt;/code&amp;gt; (or whatever you want to call it): Produce a &amp;lt;code&amp;gt;eval_var_c.com&amp;lt;/code&amp;gt; in the directory commands (maybe copy from microct_common to [microct.commands]), and there, on the last line, instead of starting&lt;br /&gt;
&amp;lt;code&amp;gt;$ uct_evaluation&amp;lt;/code&amp;gt;&lt;br /&gt;
(the normal program), replace by&lt;br /&gt;
&amp;lt;code&amp;gt;$ evalc&amp;lt;/code&amp;gt;&lt;br /&gt;
which starts the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt; - and because the &amp;lt;code&amp;gt;eval_var.com&amp;lt;/code&amp;gt; has over-ridden the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; logical just before, then you are starting different script upon starting 3d eval.&lt;br /&gt;
NB: we have a logical AND a symbol called &amp;lt;code&amp;gt;uct_evalution&amp;lt;/code&amp;gt;. Sorry for confusion. Symbol &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; starts normal &amp;lt;code&amp;gt;eval&amp;lt;/code&amp;gt; program, so this is what you replace by symbol &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt; now).&lt;br /&gt;
&lt;br /&gt;
===HowTo: Convert CT numbers to mg HA/ccm===&lt;br /&gt;
&lt;br /&gt;
The two byte numbers (short) can be converted to mu values by first dividing by mu_scaling which is probably 4096. Then apply the slope and intercept to get mg HA/ccm. A typical slope may be 2.95e+02 and intercept -1.896e+02. &lt;br /&gt;
&lt;br /&gt;
These numbers are available in the AIM header, or the ISQ header (&amp;lt;code&amp;gt;$ run ut:ctheader&amp;lt;/code&amp;gt;).&lt;br /&gt;
The conversion is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mg HA/ccm = (AIM/mu_scaling) * slope + intercept&lt;br /&gt;
mg HA/ccm = (AIM/4096) * 295.494 – 189.695&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!---------------------------------------------------------------------- &lt;br /&gt;
Mu_Scaling                    4096 &lt;br /&gt;
Calibration Data              55 kVp, 200mg HA wedge, 4096 scaling &lt;br /&gt;
Calib. default unit type      2 (Density) &lt;br /&gt;
Density: unit                 mg HA/ccm &lt;br /&gt;
Density: slope                2.95493988e+02 &lt;br /&gt;
Density: intercept            -1.89695007e+02 &lt;br /&gt;
HU: mu water                  0.58200 &lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a list of registered measurements===&lt;br /&gt;
&lt;br /&gt;
:* To generate a list of measurements that are registered in the data base, to determine where backups are stored, or if the data is still on disk:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;$ write_info&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*It asks you for a range of measurement numbers or sample names, and creates &amp;lt;code&amp;gt; sys$scratch:info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: View the scout views===&lt;br /&gt;
&lt;br /&gt;
Use the program ximage&lt;br /&gt;
&amp;lt;pre&amp;gt;$ x asdf.SCV&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix SAP colours when green===&lt;br /&gt;
&lt;br /&gt;
(using the standard gray colourmap), if changing color maps doesn&#039;t help.&lt;br /&gt;
&lt;br /&gt;
:*Menu point &#039;Norm, Default is Bone = 16000.&lt;br /&gt;
&lt;br /&gt;
:*Take max for 32000, or &#039;Adapt slice&#039;.&lt;br /&gt;
&lt;br /&gt;
::Note: Do NOT take &#039;adapt vol&#039; - it will be extremely slow!  Every single mouse-click it re-calculates whole volume...&lt;br /&gt;
&lt;br /&gt;
==Writing Scripts==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Get information about a sample or measurement from database===&lt;br /&gt;
&lt;br /&gt;
The following will create a &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create your own IPL script with some tips===&lt;br /&gt;
&lt;br /&gt;
To make a script that would submit a job to the queue with the command as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you need to create your own IPL file would be translated to the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit /noprint /que=sys$slow ue:IPL_VOI_JOSH_M.COM &lt;br /&gt;
  - /log=sys$scratch:test.log /para=(&#039;aim_file&#039;,&#039;gobj_file&#039;,&#039;seg_file&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The IPL file would look something like this…&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$   if p1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$ 	THEN &lt;br /&gt;
$	write sys$output &amp;quot;Give DK0:[xxx]C0001234_SEG.aim on the line.&amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Or: &amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Type $ scanco_submit_command um:ipl_eval_autostart/para=(dk0:[xxx]c00123_seg.aim) &amp;quot;&lt;br /&gt;
$ 	exit&lt;br /&gt;
$   endif&lt;br /&gt;
$&lt;br /&gt;
$ gobj_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.GOBJ&amp;quot;&lt;br /&gt;
$ aim_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.AIM&amp;quot;&lt;br /&gt;
$&lt;br /&gt;
$!&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some more handy IPL sequences are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then you just need to give meas. number as P1 (and maybe slice range as p2),&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
OR, some nice starts are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P3 .EQS. &amp;quot;&amp;quot;&lt;br /&gt;
$    THEN&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to duplicate&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: New Sample Number from Database&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: New Start Letter of ISQ file&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P4: Optional: Operator Number&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P5: Optional: Controlfile Number&amp;quot;&lt;br /&gt;
$      EXIT&lt;br /&gt;
$    ENDIF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where you say which parameters HAVE to be there (up to p3), and which ones are optional.&lt;br /&gt;
&lt;br /&gt;
All together, the script may look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$    THEN &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to reco&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: Optional: Slice number N or Range M:N. Auto:All&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: Optional: Queue. Auto: sys$slow&amp;quot; &lt;br /&gt;
$      EXIT &lt;br /&gt;
$    ENDIF &lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A &lt;br /&gt;
$ if p3 .eqs. &amp;quot;&amp;quot; then p3 := SYS$SLOW &lt;br /&gt;
$ slices  = p2 &lt;br /&gt;
$ quename = p3 &lt;br /&gt;
$ INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1) &lt;br /&gt;
$ INPUT = INPUT - F$PARSE(INPUT,,,&amp;quot;VERSION&amp;quot;) &lt;br /&gt;
$ logfile = &amp;quot;sys$scratch:RECO_&amp;quot; + f$PARSE(input,,,&amp;quot;NAME&amp;quot;) + &amp;quot;.LOG&amp;quot; &lt;br /&gt;
$ submit/noprint/queue=&#039;quename&#039; uct_reconstruction_file - &lt;br /&gt;
    /para=(&#039;input&#039;,&#039;slices&#039;,&#039;logfile&#039;) &lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;lt;code&amp;gt;uct_reconstruction_file&amp;lt;/code&amp;gt; is a logical that points to &amp;lt;code&amp;gt;um:uct_reconstruction.com&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Logicals are preferred in scripts to make them more universal.&lt;br /&gt;
&lt;br /&gt;
==Errors and Fixes==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix &amp;quot;last slice&amp;quot; error problem when extracting AIM from ISQ===&lt;br /&gt;
&lt;br /&gt;
Sometimes the evaluation script (i.e., voi) converting the ISQ to an AIM fails because it tries to read one slice more than what is available in the ISQ data. The result of this failure is that the 3D analysis appears to fail and no .AIM or _SEG.AIM is created in the data directory. For example, it may have tried to read 261 slices, but there were only 260 slices available.&lt;br /&gt;
The easiest work around is to make sure that the white bounding box in the uct_evaluation program does not include the last slice (largest Z dimension). Scanco is aware of this problem and will fix it in future software releases (V5.2).&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=How_To%27s&amp;diff=1264</id>
		<title>How To&#039;s</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=How_To%27s&amp;diff=1264"/>
		<updated>2005-11-07T12:23:55Z</updated>

		<summary type="html">&lt;p&gt;Scanco: /* HowTo: Stop and restart the printer queue */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=HowTo Library=&lt;br /&gt;
&lt;br /&gt;
==OpenVMS==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Helpful VMS commands===&lt;br /&gt;
&lt;br /&gt;
*Delete&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ delete *.aim;*&lt;br /&gt;
$ dl *.aim&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Shut down the Alpha stations and start up again===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Do not do this unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
For shutdown&lt;br /&gt;
&lt;br /&gt;
At the login screen, type &amp;quot;shutdown&amp;quot;/no password and hit enter. &lt;br /&gt;
Then, you can turn the computer off at the prompt.&lt;br /&gt;
&lt;br /&gt;
Then, you may turn the disk array off (unplug it as there is no power switch).&lt;br /&gt;
&lt;br /&gt;
After you move the computer, power on the disk array and then the computer.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand difference between &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; is the same as &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;, but only with mcr you can hand over &#039;in-line&#039; parameters to an .exe file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
does not work, but you  have to say&lt;br /&gt;
&amp;lt;pre&amp;gt;$ mcr ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But funnily if you define a symbol in &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ ctheader :== $ut:ctheader.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with just neither run nor mcr, but the &#039;funny&#039; $ sign, then you can also hand over the ISQ name in-line.&lt;br /&gt;
&lt;br /&gt;
Small detail with big effect...&lt;br /&gt;
&lt;br /&gt;
===HowTo: Make commands available to all users with symbols or paths===&lt;br /&gt;
&lt;br /&gt;
DCL$PATH is one way to do that, WE don&#039;t use it...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ def dcl$path disk1:[microct.main],disk1:[microct.util]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, if you type&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ uct_t&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
it will first try to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ @uct_t.com&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
and then&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ r uct_t.exe&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
however, we usually define it by giving full path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ progx :== $disk1:[microct.main]progx.exe&lt;br /&gt;
$ com_proc_x :== @disk1:[microct.main]procedure.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type the shortcut (&#039;symbol&#039; in VMS language)&lt;br /&gt;
&lt;br /&gt;
We use the &#039;cd&#039; to set the default path, you may also use this in your command procedure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;proc.com&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd &#039;p1&#039;&lt;br /&gt;
$ dir *.*/size&lt;br /&gt;
&lt;br /&gt;
$ define COM disk1:[microct.commands]&lt;br /&gt;
$ p :== @COM:PROC.COM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
these both go into &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ p disk4:[microct.data.0000007.000009]*.ISQ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Launch an editor such as EVE===&lt;br /&gt;
&lt;br /&gt;
On the command line&lt;br /&gt;
&amp;lt;pre&amp;gt;$ edit/display=decwindows/tpu fname.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit a symbol set by Scanco such as AIX===&lt;br /&gt;
&lt;br /&gt;
[[Image:Bones2.jpg|picture_position,left]] &amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Extreme caution!  Explicit permission for this change or similar changes &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be obtained from Dr. Steven Boyd.&lt;br /&gt;
&lt;br /&gt;
Log in as user calibration&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set proc/priv=bypass&lt;br /&gt;
$ cdc (changes to microct_common)&lt;br /&gt;
$ sea *.com aix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit that file which is called &amp;lt;code&amp;gt;microct_setup_common.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Another example&#039;&#039;: To make the backspace/insert keys work properly, edit the &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt; and insert the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set terminal/insert&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anywhere suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: File do all -- apply one command to a whole set of files===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda ctheader dk0:[microct.data.0001234...]*.isq &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to see the header of all isq files of sample 1234 (the three dots ... means all subdirectories)&lt;br /&gt;
&lt;br /&gt;
Or: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda aix dk0:[microct.data.0001234.00005678]*.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to see the processing log of all aim files of scan 5678&lt;br /&gt;
&lt;br /&gt;
Wildcard &amp;quot;*&amp;quot; means multiple characters, &amp;quot;%&amp;quot; is for ONE character: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda aix dk0:[microct.data...]C%%%%%%%.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(yes, 7 %&#039;s)&lt;br /&gt;
&lt;br /&gt;
to show the aim header of the gray-scale c0000135.aim (etc) files only, and NOT from the _seg.aims also.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning: CAUTION! &amp;lt;/b&amp;gt; Always test the wildcard expression first with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ dir dk0:[xxx...]*.aim &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;file do all&#039; fda command can even be combined with a pipe, or an /output qualifier: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ pipe fda aix dk0:[microct...]*.aim | search sys$pipe &amp;quot;Slope&amp;quot; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will show you all &amp;quot;Slopes&amp;quot; in a row. (but you may not see which slope belongs to which aim file anymore...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda/output=sys$scratch:all_headers.log aix dk0:[microct...]*.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
will write all the output into the .log file - which you can then either edit, or &lt;br /&gt;
&amp;lt;code&amp;gt;$ search sys$scratch:all_headers.log &amp;quot;String&amp;quot;&lt;br /&gt;
or whatever you want. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;fda&amp;quot; is our self-written script, so you may have to try-n-error a bit...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda command file_wildcard [Optional: further parameters]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the command consists of multiple words with spaces inbetween (e.g. mcr ut:xxx.exe), then enclose the command in double-quotes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda &amp;quot;mcr ut:uct_ext_header_display&amp;quot; dk0:[microct...]*.isq 8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NB: the further parameters may not contain wildcards - so unfortunately, the fda can NOT be used to &#039;adaptively&#039; rename a whole bunch of files.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a customized button in the session manager===&lt;br /&gt;
&lt;br /&gt;
The session manager part to enable the double-click on the AIM file:&lt;br /&gt;
Session Manager, &#039;Options&#039;, &#039;Menu&#039;, enter new item&lt;br /&gt;
SAP&lt;br /&gt;
with command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@decw$user_defaults:sap$vue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then move that menu point into &#039;Applications&#039; menu.&lt;br /&gt;
Also:&lt;br /&gt;
&#039;Options&#039;, &#039;File types&#039;, Create &#039;AIM&#039; file type.&lt;br /&gt;
Move &#039;rename&#039;, &#039;copy&#039;, &#039;purge&#039; etc. into menu, Select &#039;SAP&#039;, click  on&lt;br /&gt;
&#039;Change double click&#039;, and also move SAP into menu.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Export the VMS display to SUN or LINUX terminal===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# - temple&lt;br /&gt;
$ - sceval&lt;br /&gt;
# xhost +temple.ucalgary.ca&lt;br /&gt;
# ssh -X microct@sceval.ucalgary.ca&lt;br /&gt;
$ set display /create /transport=tcpip /node=temple.ucalgary.ca&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE:&amp;lt;/b&amp;gt; Do not use &amp;lt;code&amp;gt;xhost+&amp;lt;/code&amp;gt;.  Always specific exactly which computer is being&lt;br /&gt;
allowed X access.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Monitor system usage===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ monitor/interval=1 processes/topcpu&lt;br /&gt;
$ monitor/interval=1 system&lt;br /&gt;
$ show error&lt;br /&gt;
$ show system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;show error&amp;lt;/code&amp;gt; may indicate errors.  One or two errors is OK.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Configure the EVE editor===&lt;br /&gt;
&lt;br /&gt;
The following file, called &amp;lt;code&amp;gt;tpu.dat&amp;lt;/code&amp;gt;, should be installed in &amp;lt;code&amp;gt;disk1:[microct.xdefaults]:&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# DECTPU V3.1 1993-04-22 15:50 defaults&lt;br /&gt;
# CHANGED B.KOLLER 21-JUN-90&lt;br /&gt;
#&lt;br /&gt;
# Copyright (c) 1993 Digital Equipment Corporation.  All rights reserved.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
# The following are all the resource names that DECTPU supports.&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Title:		DECTPU Copyright © Digital Equipment Corporation 1992.  All Rights Reserved.&lt;br /&gt;
Tpu.Tpu$MainWindow.ApplicationTitle:	DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.IconName:		DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.X:			610&lt;br /&gt;
Tpu.Tpu$MainWindow.Y:			0&lt;br /&gt;
#&lt;br /&gt;
# The following resource names are commented out so that users can specify&lt;br /&gt;
# *rows and *columns and have DECTPU obey those directives.  If DECTPU finds&lt;br /&gt;
# finds no resource names governing the number of rows and columns it should&lt;br /&gt;
# have, it uses 24 rows and 80 columns.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Columns:	80&lt;br /&gt;
Tpu.Tpu$MainWindow.Rows:	56&lt;br /&gt;
*EVE_MENU_BAR*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmScrollBar*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmDialogShell*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmMenuShell*background:	#ADADADADADAD&lt;br /&gt;
*background:			white&lt;br /&gt;
Tpu*condensedFont: OFF&lt;br /&gt;
Tpu*fontSetSelection: 0&lt;br /&gt;
&lt;br /&gt;
# 0 = big font&lt;br /&gt;
# 1 = little font&lt;br /&gt;
# 2 = GS font (German Standard)&lt;br /&gt;
# 3 = Fine font (used only for non-latin 1 fonts?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scanco System and Setup==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Calculate vivaCT CTDI dose===&lt;br /&gt;
&lt;br /&gt;
Assuming the following settings on the vivaCT, we will calculate the CTDI dose.&lt;br /&gt;
&lt;br /&gt;
HIGH MODE:&lt;br /&gt;
 1000 projections&lt;br /&gt;
 0.109 mA&lt;br /&gt;
 200 ms IT&lt;br /&gt;
&lt;br /&gt;
I calculate the time current value as:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;0.109 mA * (0.200 + 0.012) S * 1000 proj= 23.11 mAs&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The 0.012 is the integration time between projections.&lt;br /&gt;
&lt;br /&gt;
Taking the proportion of the 68 mAs at 55 kV resulting in 720 mGy (see the document on example&lt;br /&gt;
dose calculation on this Wiki site), we have:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;23.11 / 68 * 720 = 245 mGy&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then multiplying by your factor 2 (because for our setup our CTDI is more like in air), we get:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;2 * 245 = 490 mGy per scan.&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Browse the VMS files from a windows PC===&lt;br /&gt;
&lt;br /&gt;
Pathworks gives you the ability to mount the Alpha as an external drive on your PC.  It would be mounted as an F: or G: drive, then you can navigate using windows explorer.&lt;br /&gt;
&lt;br /&gt;
You can look for the vivaCT in your microsoft windows network neighborhood and see if you can find it...then log in.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Stop and restart the printer queue===&lt;br /&gt;
&lt;br /&gt;
How to fix the printer queue when hung, not working or giving an error.&lt;br /&gt;
A full printer queue can seriously affect system performance.  &lt;br /&gt;
Be sure that the queue is cleaned up from time to time.&lt;br /&gt;
&lt;br /&gt;
$ show queue&lt;br /&gt;
&lt;br /&gt;
to first find out the real name of your printer queue. Replace hpljet by your own queue name below. &lt;br /&gt;
&lt;br /&gt;
First approach, as normal user microct: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ stop/que/reset hpljet&lt;br /&gt;
$ start/que hpljet&lt;br /&gt;
&amp;gt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* Completely remove the queue and re-generate, as user system&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ stop/que/reset hpljet&lt;br /&gt;
$ dele/que hpljet&lt;br /&gt;
$ @sys$startup:dcps_hpljet_ip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Requeue a process===&lt;br /&gt;
&lt;br /&gt;
:* Find the process identification using &amp;lt;code&amp;gt;see&amp;lt;/code&amp;gt;&lt;br /&gt;
:* The process must be &amp;lt;I&amp;gt;pending&amp;lt;/I&amp;gt;, not &amp;lt;I&amp;gt;processing&amp;lt;/I&amp;gt;!&lt;br /&gt;
:* &amp;lt;code&amp;gt;set entry 1131 /requeue=SCEVAL_SLOW &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract patient name from database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will show you sample-name of sample-number 1234&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info -m 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will give you some (stupid) info about meas 1234&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you use this function all the time, put the following into &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uct_info  :== $um:uct_info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then the usage info will even be correct&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract disk usage information===&lt;br /&gt;
&lt;br /&gt;
To look at the RSQs in the database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dir/siz dk0:[microct.data...]*.rsq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
the three dots means all subdirectories.&lt;br /&gt;
&lt;br /&gt;
Other useful commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.rsq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
shows you header.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ fda command file-wildcard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
does a &#039;file do all&#039; of the command on all the given wildcard filenames.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe xxxx | search sys$pipe &amp;quot;patient&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
is the pipe command in VMS.&lt;br /&gt;
&lt;br /&gt;
So all three combined:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe fda ctheader dk0:[microct.data...]*.rsq | search sys$pipe &amp;quot;patient name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or any other field you want to search for!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other ideas&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gives you a file &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; with info in it (leave defaults to get all samples ever scanned, otherwise &#039;zoom&#039; in on some samples.)&lt;br /&gt;
&lt;br /&gt;
Check out the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ help search&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and &amp;lt;code&amp;gt;/match=and&amp;lt;/code&amp;gt;&lt;br /&gt;
or &amp;lt;code&amp;gt;/match=or&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit Scanco &amp;lt;code&amp;gt;SCANCO_SUBMIT_COMMAND&amp;lt;/code&amp;gt; symbol===&lt;br /&gt;
&lt;br /&gt;
*Check the current setting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show sym *submit*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In directory &amp;lt;code&amp;gt;DISK2:[MICROCT]MICROCT_SETUP_USER.COM&amp;lt;/code&amp;gt; add the following line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ SCANCO_SUBMIT_COMMAND :== SUBMIT/NOPRINT/QUE=SYS$SLOW /NOTIFY/LOG=SYS$SCRATCH:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then end session and log in again.  Definition of the symbol in the &lt;br /&gt;
&amp;lt;code&amp;gt;MICRO_SETUP_USER.COM&amp;lt;/code&amp;gt; supersedes the standard setting.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use the new &amp;lt;code&amp;gt;UCT_BACKUP&amp;lt;/code&amp;gt; software===&lt;br /&gt;
&lt;br /&gt;
New Features (i) You can now select multiple samples with the Shift and/or the Ctrl key; and (2) You can use the sample name filter field on top to display only names containing the filter string.&lt;br /&gt;
&lt;br /&gt;
Start the move/copy by clicking on &amp;lt;code&amp;gt;&#039;Start...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;&#039;Script...&#039;&amp;lt;/code&amp;gt; button is for advanced users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Advanced Users:&amp;lt;/b&amp;gt;&lt;br /&gt;
Use of the &#039;Script...&#039; button: this will generate a script,&lt;br /&gt;
&amp;lt;code&amp;gt;sys$scratch:archive.com&amp;lt;/code&amp;gt;,&lt;br /&gt;
that you may submit in batch mode later (e.g. over night) by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command sys$scratch:archive.com/after=23:59&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(In a multi-computer cluster setup, you may want to specify the exact queue name of the computer that has the tape hooked up by giving e.g. &amp;lt;code&amp;gt;/que=sceval_fast&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
Insert a tape, but do NOT mount the tape in the normal program. (If necessary: if it&#039;s a new tape, initialize it as usual). The batch job will be started one minute before midnight in the example above.&lt;br /&gt;
&amp;lt;code&amp;gt;$ show entry&amp;lt;/code&amp;gt; will show you that it is holding until then.&lt;br /&gt;
See &amp;lt;code&amp;gt;$ help submit /after&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$ help dcl_tips date_time example&amp;lt;/code&amp;gt; for more help on this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Little Reminder:&amp;lt;/b&amp;gt;&lt;br /&gt;
While the tape is running and writing to it, DO NOT LOG OUT, DO NOT INTERRUPT THE PROGRAM! This would make that tape unusable from this point on - you could still read from that tape up to this point, but could not add more scans to this tape.&lt;br /&gt;
What to do when tape is full? It then displays some message about continuing on another tape. Hit &amp;lt;code&amp;gt;ctrl/c&amp;lt;/code&amp;gt; to interrupt the program, take a fresh tape, initialize it, select the remaining scans to archive again, hit &amp;lt;code&amp;gt;&#039;start&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
And last but not least: WE STRONGLY URGE YOU TO DO THE WEEKLY BACKUP (SAFETY BACKUP OF USER DISK1 WITH YOUR DATABASES ON IT). Two users DID experience disk crashes last year, and without the weekly backup, you may still have all scans on the data disk (e.g. disk2), but without the databases you cannot tell which scans belong the which sample!&lt;br /&gt;
&lt;br /&gt;
How to do weekly backup: insert &#039;special&#039; weekly backup tape, e.g. week_a, and&lt;br /&gt;
just hit &#039;Full backup to tape&#039;.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Import foreign data into the Scanco database on the VMS system===&lt;br /&gt;
&lt;br /&gt;
Only ISQ files can be imported into the database, however it is possible to convert other types of data into ISQ files (i.e., stacks of BMPs into ISQ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 1:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After transfering your data to the VMS system (use the data disk &amp;lt;code&amp;gt;disk2&amp;lt;/code&amp;gt;, NOT the user disk &amp;lt;code&amp;gt;disk1&amp;lt;/code&amp;gt;), use the IPL commands &amp;lt;code&amp;gt;/import_freeformat&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/read_aim function&amp;lt;/code&amp;gt; to import your data for conversion to an ISQ.&lt;br /&gt;
&lt;br /&gt;
For DICOM files, start IPL and run the &amp;lt;code&amp;gt;/dicom&amp;lt;/code&amp;gt; function to import. For DICOM, if your object is a single 3D file (-multifile false) or many many individual slice files (-multifile true, and give beginning of filenames, and –extension).&lt;br /&gt;
&lt;br /&gt;
There may be requests by IPL to convert your data to &amp;lt;code&amp;gt;signed short&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;signed char&amp;lt;/code&amp;gt; from other data types. Obey these requests and do it by running the &amp;lt;code&amp;gt;/convert_unsigned&amp;lt;/code&amp;gt; function.&lt;br /&gt;
&lt;br /&gt;
Then, write the ISQ file.&lt;br /&gt;
&amp;lt;pre&amp;gt;ipl&amp;gt; toisq in DK0:[MICROCT.DATA]D0000001.ISQ&lt;br /&gt;
    -square           true&lt;br /&gt;
    -original_pos     false&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This writes the ISQ file. &lt;br /&gt;
&amp;lt;b&amp;gt;Remember&amp;lt;/b&amp;gt;, the ISQ name must be 8 characters long (1 character followed by seven digits)!!! The letters and numbers can be chosen freely.&lt;br /&gt;
&lt;br /&gt;
Fill out a log sheet with the original AIM names that were imported, and the resulting ISQ names that were generated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 2: &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a sample in the database and write down the sample and measurement number. Then, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run um:uct_import&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And give the new ISQ file, the new sample-number and check that the feedback is correct (i.e., that the name from the database is matching the name from the ISQ file header).&lt;br /&gt;
&lt;br /&gt;
Operator and controlfile can be left 0 if you want.&lt;br /&gt;
&lt;br /&gt;
Then it changes the sample and measurement number in the ISQ file, makes the correct directory on &amp;lt;code&amp;gt;DK0&amp;lt;/code&amp;gt;, and gives you the line on the screen of how to rename the file to the correct, new directory. Take this line and use it on the command line.  Done!  &lt;br /&gt;
&lt;br /&gt;
You can now use the normal &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; program with this file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you were importing an AIM file, delete the original file as it will have the wrong measurement indexes in its log header. You will have to produce the AIM file again from the ISQ so our database writes the evaluation results into the correct sample fields.&lt;br /&gt;
&lt;br /&gt;
==Project Management==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Example filled out log sheet===&lt;br /&gt;
&lt;br /&gt;
A log sheet, which is always kept near the scanner, must be filled out for&lt;br /&gt;
every measurement on the system.  A blank log sheet is available in the&lt;br /&gt;
Documents section of this Wiki page.&lt;br /&gt;
&lt;br /&gt;
Here is an example log sheet:&lt;br /&gt;
&lt;br /&gt;
::[[Image:Herzog_pic.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Evaluation==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand the morphological parameters===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BV/TV  -&amp;gt; VOX-BV/TV&lt;br /&gt;
BS/BV  -&amp;gt; TRI-BS/BV&lt;br /&gt;
Tb.Th  -&amp;gt; DT-Tb.Th&lt;br /&gt;
Tb.Sp  -&amp;gt; DT-Tb.Sp&lt;br /&gt;
Tb.N   -&amp;gt; DT-Tb.N&lt;br /&gt;
ConnD  -&amp;gt; Conn-Dens&lt;br /&gt;
SMI    -&amp;gt; TRI-SMI&lt;br /&gt;
DA     -&amp;gt; TRI-DA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usually I&#039;d use the names on the left for the plots, but these correspond to the names on the right of the arrow in the Scanco output files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you use the TRI-Tb.Th rather than the DT-Tb.Th*, then you are using the derived (plate-model) morphological parameters.  These are less accurate than the direct parameters.  They are calculated by triangulating the surface (marching cubes) to get BS, and then calculate thickness&lt;br /&gt;
Th = 2 * BV / BS, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mean Values&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mean 1: mean of bone AND marrow --&amp;gt; &#039;apparent density&#039;&lt;br /&gt;
mean 2: mean of what was considered bone only (i.e. what was segmented) &lt;br /&gt;
&#039;bone tissue density&#039;. (so this does depend on threshold a little bit)&lt;br /&gt;
mean 3: empty, or can be used to store mean of cortex, e.g.&lt;br /&gt;
 The function /voxgobj has -region number (zero-based) to goveren which &lt;br /&gt;
 mean value is filled, 1 - 5 (thus region 0 - 4).]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;What you should also know&amp;lt;/b&amp;gt;: because of partial voluming effects, for Mean2, we are DISCARDING the 2 surface voxels of EVERY trabeculae - thus, to get meaningful Mean2, you have to do your scan with the chosen resolution high enough, such that the mean trabeculae is depicted by at the very least 5 pixels, better actually more than 6 pixels thickness. (You can do this check at the end in the XLS sheet: divide DT-Tb.Th* by el-size-mm.x, and you need to get numbers bigger than 6 or 7 or 10 or so.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Start a 3D evaulation from the terminal===&lt;br /&gt;
&lt;br /&gt;
Warning: Do not change &amp;lt;code&amp;gt;uct_evaulation_v4.com&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ipl_fixed_batch_v4.com&amp;lt;/code&amp;gt; in .eval, but only work on your own file (i.e., eval_steve).&lt;br /&gt;
First, an explanation of how the normal evaluation runs by hitting the &#039;Start 3d&#039; button.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_v4.com/para=(xxx,yyy,zzz,…)&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are 8 parameters:&lt;br /&gt;
*P1: number of print outs of our results sheet&lt;br /&gt;
*P2: the ISQ filename&lt;br /&gt;
*P3-5: start x (pos x), y, z&lt;br /&gt;
*P6-8: dim x, y, z&lt;br /&gt;
The parameters p3-p8 come from the white bounding box. The problem is that when you start from the terminal you do not have these. This problem can be overcome by using the &amp;lt;code&amp;gt;isq_to_aim_gobjbox.exe&amp;lt;/code&amp;gt; and then give the relevant parameters. You can &lt;br /&gt;
&amp;lt;code&amp;gt;$ run um: isq_to_aim_gobjbox.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
to see what it&#039;s asking for.&lt;br /&gt;
By using gobjbox you do not need p3-p8. Therefore you can start the evaluation by giving:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_special_josh.com –&lt;br /&gt;
/para=(1,dk0:[microct.data.0000275.0000245]c0000332.ISQ)&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that you can make &amp;lt;code&amp;gt;uct_evaluation_special_josh.com&amp;lt;/code&amp;gt; such that there is no need for P1 (change p2 to p1 in the script, etc).&lt;br /&gt;
[Alternatively to using the gobjbox you could use the normal isq_to_aim, but hard code the dim and pos.]&lt;br /&gt;
Then call whatever IPL files you want to call. Look into &amp;lt;code&amp;gt;fixed_batch_v4&amp;lt;/code&amp;gt; to see how we turn on the database always on the first line of every IPL part, and how we calculate parameters.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use &amp;lt;code&amp;gt;EVAL PROGRAM (Slice Viewer)&amp;lt;/code&amp;gt; without importing ISQ into the database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; It is strongly suggested to properly import that ISQ into the database before you run a full 3D evaluation!  See the appropriate HowTo.&lt;br /&gt;
&lt;br /&gt;
In a terminal, &amp;lt;code&amp;gt;$ def uct_default_isq xxxxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then start the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool (or &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
Hit cancel when asked for a file to read and the default ISQ that was set will be read.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; Only start a 3D evaluation if and only if the sample (patient) and measurement&lt;br /&gt;
index are &amp;lt;b&amp;gt;correct&amp;lt;/b&amp;gt; in the ISQ header!&lt;br /&gt;
&lt;br /&gt;
===HowTo: Submit a job to the queue===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit/noprint /que=sys$slow ipl_voi_josh_m.com &lt;br /&gt;
  - /log=sys$scratch:test.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract your results from the 3D database===&lt;br /&gt;
&lt;br /&gt;
Assuming you&#039;ve used the scanco_submit_command to initialize your evaluations (either manually or through the uct_evaluation tool) then you can get all of your results stored into a text file that can be easily imported in Excel.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ uct_list&amp;lt;/pre&amp;gt;&lt;br /&gt;
The output text file will be stored in &amp;lt;code&amp;gt;sys$scratch&amp;lt;/code&amp;gt; and you can ftp this to a PC so that it can be imported into excel and further analysis can be performed. &lt;br /&gt;
&lt;br /&gt;
Importing into Excel requires setting a deliminator based on the space.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Tabulate your LOG file results from 3D evaluations===&lt;br /&gt;
&lt;br /&gt;
Only use this if you have not used the standard &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool to generate your 3D evaluations (in which case see the HowTo related to the 3D database).&lt;br /&gt;
You can tabulate the LOG files:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or whatever you want to search for can be stored in a text file&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search/output=sys$scratch:ov.txt xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To search more than one log file, and get the output into one single file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ fda/output=xxx.txt search *.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fda means &#039;file do all&#039; and is a script made by Scanco to do one command (search) on a wildcard of files (*.log). Then put all the ov.txt, tv.txt, name.txt etc. files into excel.&lt;br /&gt;
Josh has made a .com file that does a similar job as described above.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Do cortical midshaft evaluation with moment of inertia calculation===&lt;br /&gt;
&lt;br /&gt;
This explains what happens when you type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; $ midshaft or $ eval_midshaft &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Draw a rough contour in the first of your 20 (or 12 or whatever) slices,&lt;br /&gt;
open the Contouring Sub-window, double-click on the big image, and it&lt;br /&gt;
automatically&lt;br /&gt;
finds the best contour. Then click on &#039;Selection&#039; &#039;Forwards&#039;, then &#039;Iterate&lt;br /&gt;
Forwards&#039;, and it finds the best contour for every of your (about) 20 slices.&lt;br /&gt;
&lt;br /&gt;
Then &#039;cancel&#039; the contouring sub-window, and start the 3D evaluation.&lt;br /&gt;
&lt;br /&gt;
FIRST: set the correct threshold, sigma, support in the file:&lt;br /&gt;
[microct.main]ipl_fixed_batch_midshaft.com (or in [microct.eval])!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Save contours when it asks you). Exit the program.&lt;br /&gt;
&lt;br /&gt;
When you now type $ que in the terminal, you will see some job called&lt;br /&gt;
&#039;uct_evaluation_midshaft&#039;&lt;br /&gt;
(or similar), whereas the trabecular evaluations were called&lt;br /&gt;
&#039;uct_evaluation_v4&#039;.&lt;br /&gt;
Also the .log file in Scratch has the _midshaft name.&lt;br /&gt;
&lt;br /&gt;
I now only calculate the TRI values (Plate Model), and not the direct stuff&lt;br /&gt;
anymore, since for only 20 slices, the truly 3D Tb.Th might be quite off.&lt;br /&gt;
Also, you will see lots of tildes on the result sheets. This is to tell&lt;br /&gt;
you that, if the meas. were trab. bone, those values would only be approximate.&lt;br /&gt;
But now for the cortex, they are actually correct ! (see below for more explan about this)&lt;br /&gt;
&lt;br /&gt;
So I would now use the tildes to check the &#039;excel&#039; table that the operator&lt;br /&gt;
has taken the correct script for the trab. or cort. evaluations for the&lt;br /&gt;
respective measurements !&lt;br /&gt;
&lt;br /&gt;
So what&#039;s the advantage of all this ? Now, also VOX-TV is correct! So VOX-TV&lt;br /&gt;
is the whole area, VOX-BV the doughnut, so TV-BV is the marrow area ! And still,&lt;br /&gt;
TRI-Tb.Th is the cortical thickness. (TRI-TV is NOT correct, because the .gobj&lt;br /&gt;
feature was turned off.)&lt;br /&gt;
&lt;br /&gt;
I say &#039;area&#039; above: depending on how many slices one individual scan has,&lt;br /&gt;
VOX-BV (and VOX-TV) might be different for different scans, so you will HAVE to&lt;br /&gt;
convert the volumes to area again:&lt;br /&gt;
&lt;br /&gt;
volume equals area times height&lt;br /&gt;
--&amp;gt; Bone Area = VOX-BV / height = BV / (dim.z * el_size_mm.z)&lt;br /&gt;
(and same for Total area, of course :-)&lt;br /&gt;
&lt;br /&gt;
All clear ???&lt;br /&gt;
&lt;br /&gt;
If you want porosity of the bone itself:&lt;br /&gt;
&lt;br /&gt;
draw two contours: one around, counter-clockwise, on on the inside, clock-wise&lt;br /&gt;
(thus a &#039;negative&#039;, excluding contour).&lt;br /&gt;
Now, TV will be just that ring area, BV will be the bone within that ring area,&lt;br /&gt;
and BV/TV will be 1 - porosity, thus BV/TV 94% means 6% porosity.&lt;br /&gt;
&lt;br /&gt;
*****************&lt;br /&gt;
&lt;br /&gt;
Application of this script to metaphysis scan (with trab. in middle):&lt;br /&gt;
&lt;br /&gt;
$ midshaft&lt;br /&gt;
draw one contour around the cortex, and in same slices, a NEGATIVE contour on&lt;br /&gt;
the inside (CW contour) to exclude the trab.&lt;br /&gt;
(potentially work with the BP (brake-point) system to be able to morph the&lt;br /&gt;
negative contours, even though there is already a &#039;outer&#039; contour around the&lt;br /&gt;
bone in every slice.)&lt;br /&gt;
&lt;br /&gt;
Start 3D eval, read out the data-base with uct_list.&lt;br /&gt;
&lt;br /&gt;
NB: you CANNOT give that used .gobj a special name such as c0001234_cortex.gobj!&lt;br /&gt;
Only after the eval (or midshaft eval) has finished, you may copy it to a more&lt;br /&gt;
meaningful name - but all of our evaluations are just taking the STANDARD gobj name!&lt;br /&gt;
&lt;br /&gt;
Then afterwards (after renaming or copying the _seg.aim to _cortex.aim, and&lt;br /&gt;
.gobj to _cortex.gobj), you may want to start the very normal eval with normal&lt;br /&gt;
(inner) contours to evaluate the trabecular compartement.&lt;br /&gt;
Remember: the values in our 3D result database then are OVERWRITTEN.&lt;br /&gt;
&lt;br /&gt;
(if you have a whole study, I would recommend to run the $ midshaft for ALL&lt;br /&gt;
samples, $ uct_list to e.g. sys$scratch:mystudy_cortex.txt, rename/copy gobj and&lt;br /&gt;
seg for all, and THEN run the trab. eval for all samples, $ ust_list and you&lt;br /&gt;
have two nice complete xls sheets.)&lt;br /&gt;
&lt;br /&gt;
**********************&lt;br /&gt;
&lt;br /&gt;
More explanations of why the plate model is correct:&lt;br /&gt;
&lt;br /&gt;
Assume a ring (cortex).&lt;br /&gt;
&lt;br /&gt;
Area = thickness * &#039;middle line&#039;.&lt;br /&gt;
&#039;middle line&#039; = average of outer and inner circumference&lt;br /&gt;
--&amp;gt; &#039;middle line&#039; = 0.5 * &#039;bone surface&#039;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; thickness = bone volume * 2 / bone surface.&lt;br /&gt;
&lt;br /&gt;
And this is nothing else but the &#039;plate model&#039; formula for Tb.Th!&lt;br /&gt;
&lt;br /&gt;
nice, no ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And why not just run the &#039;normal trabecular eval&#039;?&lt;br /&gt;
in the &#039;normal&#039; TRI calculation, we are EXCLUDING all surfaces that are created&lt;br /&gt;
artificially by a gobj line that cuts through a trab.&lt;br /&gt;
&lt;br /&gt;
However, for the midshaft, this means: the whole outer (or even inner, if also&lt;br /&gt;
inner contour is there) is SUPPRESSED, because it is touching the gobj line. So&lt;br /&gt;
this is where that midshaft script comes in: it turns off that suppression.&lt;br /&gt;
&lt;br /&gt;
***************&lt;br /&gt;
&lt;br /&gt;
and some explanations, why the direct DT-Tb.Th* is NOT correct for a scan with&lt;br /&gt;
just e.g. 12 slices:&lt;br /&gt;
If we fill the structure with spheres, those spheres should be bounded by the&lt;br /&gt;
width of the cortex, not just by the fact that we only have 12 slices...&lt;br /&gt;
&lt;br /&gt;
(and even more so: We are always doing &#039;aim box&#039; suppression with the spheres: &lt;br /&gt;
if a sphere touches the boundary of the aim box, it is suppressed!&lt;br /&gt;
&lt;br /&gt;
So this is quite crucial for Tb.Sp and Tb.N: to get meaningful Tb.Sp, you would&lt;br /&gt;
need a LOT of slices. Also, then, you cannot have the inner contour - otherwise&lt;br /&gt;
the negative inner contour will delete the Tb.Sp. spheres... &lt;br /&gt;
&lt;br /&gt;
IF you have enough slices, you may opt to turn the /dt_object on again in the&lt;br /&gt;
midshaft script (second half). Then DT-Tb.Th* and TRI-Tb.Th just have a slightly&lt;br /&gt;
different behaviour if there are little pores within the cortex:&lt;br /&gt;
&lt;br /&gt;
TRI: the little pore just adds a little BS, thus the influence is not that big.&lt;br /&gt;
DT: the little pore cuts the thickness sphere in half, thus at that location,&lt;br /&gt;
the thickness is halved.&lt;br /&gt;
&lt;br /&gt;
**************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The script is also calculating Mean1 and Mean2 now:&lt;br /&gt;
Mean1: &#039;apparent&#039; density, average over whole TV&lt;br /&gt;
Mean2: &#039;tissue&#039; density: average over what was segmented as bone only.&lt;br /&gt;
&lt;br /&gt;
These mean values will be in mg HA/ccm if you have the calibration option for&lt;br /&gt;
bone density installed (and activated for those scans).&lt;br /&gt;
Remember: the bone has to have some soft-tissue (or equivalent) on the inside,&lt;br /&gt;
and preferably also on the outside then.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Temporarily change the evaluation for any &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
In a terminal window, we need to redefine the logical that determines which&lt;br /&gt;
3D evaluation is associated with the &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt; tool.&lt;br /&gt;
&lt;br /&gt;
For example, typing &amp;lt;code&amp;gt;VOI&amp;lt;/code&amp;gt; runs the &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt; tool&lt;br /&gt;
by executing &amp;lt;code&amp;gt;UE:UCT_EVALUATION_VOI.COM&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Type&lt;br /&gt;
&amp;lt;pre&amp;gt;$ show logical UCT_EVALUATION&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then you can redefine this to point to another evaluation script.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ define UCT_EVALUATION UE:UCT_EVALUATION_CUTOUT.COM&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This is only redefined in the particular terminal you are using, and it&lt;br /&gt;
will reset to its default in a new terminal.  It will also not work if you&lt;br /&gt;
try to submit the job to a queue.  It only works interactively.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Assign special 3D evaluation to the &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt; tool===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;: This is for advanced users ONLY.  Do not attempt this without contacting Steve!&lt;br /&gt;
&lt;br /&gt;
This will show how to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt;:&lt;br /&gt;
It is easy to set up multiple .COM files for the 3D evalulation tool, one such set-up is already prepared on your computer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ eval_special&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will do something similar to &amp;lt;code&amp;gt;$ voi&amp;lt;/code&amp;gt; where the normal contour program opens, but if you start the 3D eval, the special script &amp;lt;code&amp;gt;um:uct_evaluation_special.com&amp;lt;/code&amp;gt; is called (associated with eval_special), which then in turn calls &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt;, where you can specify your own set of thresholds, etc.&lt;br /&gt;
&lt;br /&gt;
So it is a daisy chain of files which we will need to follow to set up a special &amp;lt;code&amp;gt;xxx_kyle.com&amp;lt;/code&amp;gt; script, and where ever we encounter &amp;lt;code&amp;gt;_special.com&amp;lt;/code&amp;gt;, we copy and change it to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; you will need to do the following:&lt;br /&gt;
&lt;br /&gt;
*1. Edit &amp;lt;code&amp;gt;disk1:[microct]microct_setup_user.com&amp;lt;/code&amp;gt; (double-click on file), please be careful here, it&#039;s very important! (and I hope you have done your &#039;weekly full backup&#039; regularly, so you could always retrieve a good version of login.com...)&lt;br /&gt;
&lt;br /&gt;
*2. Then, towards to bottom and duplicate the line&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_special :== @com:eval_var.com um:uct_evaluation_special.com&amp;lt;/code&amp;gt;&lt;br /&gt;
and change duplicate to&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_kyle    :== @com:eval_var.com um:uct_evaluation_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make this command &amp;lt;code&amp;gt;eval_kyle&amp;lt;/code&amp;gt; available after you login freshly. Save and Exit.&lt;br /&gt;
&lt;br /&gt;
*3. Then go to &amp;lt;code&amp;gt;disk1:[microct.eval]&amp;lt;/code&amp;gt; and copy the file &amp;lt;code&amp;gt;uct_evaluation_special.com&amp;lt;/code&amp;gt; to the name &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt; (&#039;Commands&#039;, &#039;Copy ...&#039;, BUT CLICK ON THE THREE DOTS and give new output name. &lt;br /&gt;
If you do not see the &amp;lt;code&amp;gt;eval_special:&amp;lt;/code&amp;gt; go to terminal, &amp;lt;code&amp;gt;$ dir ue:*special*.com&amp;lt;/code&amp;gt; and take it from the &amp;lt;code&amp;gt;microct_common&amp;lt;/code&amp;gt; directory)&lt;br /&gt;
&lt;br /&gt;
*4. Edit the &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt; file: at the top, change &amp;lt;code&amp;gt;ipl_......_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*5. Copy &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*6. Edit &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; to your liking. If you want &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; to not perform the full evaluation, but only something akin to &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, then, in the steps above, copy &amp;lt;code&amp;gt;uct_eval_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;ipl_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; (thus you take the &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; script as template for the &amp;lt;code&amp;gt;_kyle&amp;lt;/code&amp;gt; script).&lt;br /&gt;
&lt;br /&gt;
*7. Then open a new terminal (&#039;applications&#039;, &#039;decterm&#039;), &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; should work now!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;: When you start the 3D eval, then&lt;br /&gt;
&amp;lt;code&amp;gt;$ que&amp;lt;/code&amp;gt;&lt;br /&gt;
will show you your batch job with your name on it now!&lt;br /&gt;
&lt;br /&gt;
And now a few more explanations how the whole thing works: in all eval programs, hitting &#039;Start 3d&#039; just submits the logical &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$ show log uct_evaluation&amp;lt;/code&amp;gt; shows you that by default, this points to &amp;lt;code&amp;gt;ue:uct_evaluation_v4.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Those little &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;eval_steve&amp;lt;/code&amp;gt; scripts then just temporarily redefine this logical so that a different script is submitted when you &amp;lt;code&amp;gt;&#039;start 3d eval&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
About the &#039;&#039;&#039;corelut eval&#039;&#039;&#039;: Then we start a whole different eval program: the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt;. So, if you set up a &amp;lt;code&amp;gt;eval_steve_c&amp;lt;/code&amp;gt; (or whatever you want to call it): Produce a &amp;lt;code&amp;gt;eval_var_c.com&amp;lt;/code&amp;gt; in the directory commands (maybe copy from microct_common to [microct.commands]), and there, on the last line, instead of starting&lt;br /&gt;
&amp;lt;code&amp;gt;$ uct_evaluation&amp;lt;/code&amp;gt;&lt;br /&gt;
(the normal program), replace by&lt;br /&gt;
&amp;lt;code&amp;gt;$ evalc&amp;lt;/code&amp;gt;&lt;br /&gt;
which starts the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt; - and because the &amp;lt;code&amp;gt;eval_var.com&amp;lt;/code&amp;gt; has over-ridden the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; logical just before, then you are starting different script upon starting 3d eval.&lt;br /&gt;
NB: we have a logical AND a symbol called &amp;lt;code&amp;gt;uct_evalution&amp;lt;/code&amp;gt;. Sorry for confusion. Symbol &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; starts normal &amp;lt;code&amp;gt;eval&amp;lt;/code&amp;gt; program, so this is what you replace by symbol &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt; now).&lt;br /&gt;
&lt;br /&gt;
===HowTo: Convert CT numbers to mg HA/ccm===&lt;br /&gt;
&lt;br /&gt;
The two byte numbers (short) can be converted to mu values by first dividing by mu_scaling which is probably 4096. Then apply the slope and intercept to get mg HA/ccm. A typical slope may be 2.95e+02 and intercept -1.896e+02. &lt;br /&gt;
&lt;br /&gt;
These numbers are available in the AIM header, or the ISQ header (&amp;lt;code&amp;gt;$ run ut:ctheader&amp;lt;/code&amp;gt;).&lt;br /&gt;
The conversion is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mg HA/ccm = (AIM/mu_scaling) * slope + intercept&lt;br /&gt;
mg HA/ccm = (AIM/4096) * 295.494 – 189.695&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!---------------------------------------------------------------------- &lt;br /&gt;
Mu_Scaling                    4096 &lt;br /&gt;
Calibration Data              55 kVp, 200mg HA wedge, 4096 scaling &lt;br /&gt;
Calib. default unit type      2 (Density) &lt;br /&gt;
Density: unit                 mg HA/ccm &lt;br /&gt;
Density: slope                2.95493988e+02 &lt;br /&gt;
Density: intercept            -1.89695007e+02 &lt;br /&gt;
HU: mu water                  0.58200 &lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a list of registered measurements===&lt;br /&gt;
&lt;br /&gt;
:* To generate a list of measurements that are registered in the data base, to determine where backups are stored, or if the data is still on disk:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;$ write_info&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*It asks you for a range of measurement numbers or sample names, and creates &amp;lt;code&amp;gt; sys$scratch:info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: View the scout views===&lt;br /&gt;
&lt;br /&gt;
Use the program ximage&lt;br /&gt;
&amp;lt;pre&amp;gt;$ x asdf.SCV&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix SAP colours when green===&lt;br /&gt;
&lt;br /&gt;
(using the standard gray colourmap), if changing color maps doesn&#039;t help.&lt;br /&gt;
&lt;br /&gt;
:*Menu point &#039;Norm, Default is Bone = 16000.&lt;br /&gt;
&lt;br /&gt;
:*Take max for 32000, or &#039;Adapt slice&#039;.&lt;br /&gt;
&lt;br /&gt;
::Note: Do NOT take &#039;adapt vol&#039; - it will be extremely slow!  Every single mouse-click it re-calculates whole volume...&lt;br /&gt;
&lt;br /&gt;
==Writing Scripts==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Get information about a sample or measurement from database===&lt;br /&gt;
&lt;br /&gt;
The following will create a &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create your own IPL script with some tips===&lt;br /&gt;
&lt;br /&gt;
To make a script that would submit a job to the queue with the command as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you need to create your own IPL file would be translated to the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit /noprint /que=sys$slow ue:IPL_VOI_JOSH_M.COM &lt;br /&gt;
  - /log=sys$scratch:test.log /para=(&#039;aim_file&#039;,&#039;gobj_file&#039;,&#039;seg_file&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The IPL file would look something like this…&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$   if p1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$ 	THEN &lt;br /&gt;
$	write sys$output &amp;quot;Give DK0:[xxx]C0001234_SEG.aim on the line.&amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Or: &amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Type $ scanco_submit_command um:ipl_eval_autostart/para=(dk0:[xxx]c00123_seg.aim) &amp;quot;&lt;br /&gt;
$ 	exit&lt;br /&gt;
$   endif&lt;br /&gt;
$&lt;br /&gt;
$ gobj_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.GOBJ&amp;quot;&lt;br /&gt;
$ aim_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.AIM&amp;quot;&lt;br /&gt;
$&lt;br /&gt;
$!&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some more handy IPL sequences are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then you just need to give meas. number as P1 (and maybe slice range as p2),&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
OR, some nice starts are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P3 .EQS. &amp;quot;&amp;quot;&lt;br /&gt;
$    THEN&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to duplicate&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: New Sample Number from Database&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: New Start Letter of ISQ file&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P4: Optional: Operator Number&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P5: Optional: Controlfile Number&amp;quot;&lt;br /&gt;
$      EXIT&lt;br /&gt;
$    ENDIF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where you say which parameters HAVE to be there (up to p3), and which ones are optional.&lt;br /&gt;
&lt;br /&gt;
All together, the script may look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$    THEN &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to reco&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: Optional: Slice number N or Range M:N. Auto:All&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: Optional: Queue. Auto: sys$slow&amp;quot; &lt;br /&gt;
$      EXIT &lt;br /&gt;
$    ENDIF &lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A &lt;br /&gt;
$ if p3 .eqs. &amp;quot;&amp;quot; then p3 := SYS$SLOW &lt;br /&gt;
$ slices  = p2 &lt;br /&gt;
$ quename = p3 &lt;br /&gt;
$ INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1) &lt;br /&gt;
$ INPUT = INPUT - F$PARSE(INPUT,,,&amp;quot;VERSION&amp;quot;) &lt;br /&gt;
$ logfile = &amp;quot;sys$scratch:RECO_&amp;quot; + f$PARSE(input,,,&amp;quot;NAME&amp;quot;) + &amp;quot;.LOG&amp;quot; &lt;br /&gt;
$ submit/noprint/queue=&#039;quename&#039; uct_reconstruction_file - &lt;br /&gt;
    /para=(&#039;input&#039;,&#039;slices&#039;,&#039;logfile&#039;) &lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;lt;code&amp;gt;uct_reconstruction_file&amp;lt;/code&amp;gt; is a logical that points to &amp;lt;code&amp;gt;um:uct_reconstruction.com&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Logicals are preferred in scripts to make them more universal.&lt;br /&gt;
&lt;br /&gt;
==Errors and Fixes==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix &amp;quot;last slice&amp;quot; error problem when extracting AIM from ISQ===&lt;br /&gt;
&lt;br /&gt;
Sometimes the evaluation script (i.e., voi) converting the ISQ to an AIM fails because it tries to read one slice more than what is available in the ISQ data. The result of this failure is that the 3D analysis appears to fail and no .AIM or _SEG.AIM is created in the data directory. For example, it may have tried to read 261 slices, but there were only 260 slices available.&lt;br /&gt;
The easiest work around is to make sure that the white bounding box in the uct_evaluation program does not include the last slice (largest Z dimension). Scanco is aware of this problem and will fix it in future software releases (V5.2).&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=How_To%27s&amp;diff=287</id>
		<title>How To&#039;s</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=How_To%27s&amp;diff=287"/>
		<updated>2005-09-08T13:22:46Z</updated>

		<summary type="html">&lt;p&gt;Scanco: /* OpenVMS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=HowTo Library=&lt;br /&gt;
&lt;br /&gt;
==OpenVMS==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Shut down the Alpha stations and start up again===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Do not do this unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
For shutdown&lt;br /&gt;
&lt;br /&gt;
At the login screen, type &amp;quot;shutdown&amp;quot;/no password and hit enter. &lt;br /&gt;
Then, you can turn the computer off at the prompt.&lt;br /&gt;
&lt;br /&gt;
Then, you may turn the disk array off (unplug it as there is no power switch).&lt;br /&gt;
&lt;br /&gt;
After you move the computer, power on the disk array and then the computer.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand difference between &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; is the same as &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;, but only with mcr you can hand over &#039;in-line&#039; parameters to an .exe file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
does not work, but you  have to say&lt;br /&gt;
&amp;lt;pre&amp;gt;$ mcr ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But funnily if you define a symbol in &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ ctheader :== $ut:ctheader.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with just neither run nor mcr, but the &#039;funny&#039; $ sign, then you can also hand over the ISQ name in-line.&lt;br /&gt;
&lt;br /&gt;
Small detail with big effect...&lt;br /&gt;
&lt;br /&gt;
===HowTo: Make commands available to all users with symbols or paths===&lt;br /&gt;
&lt;br /&gt;
DCL$PATH is one way to do that, WE don&#039;t use it...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ def dcl$path disk1:[microct.main],disk1:[microct.util]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, if you type&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ uct_t&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
it will first try to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ @uct_t.com&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
and then&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ r uct_t.exe&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
however, we usually define it by giving full path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ progx :== $disk1:[microct.main]progx.exe&lt;br /&gt;
$ com_proc_x :== @disk1:[microct.main]procedure.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type the shortcut (&#039;symbol&#039; in VMS language)&lt;br /&gt;
&lt;br /&gt;
We use the &#039;cd&#039; to set the default path, you may also use this in your command procedure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;proc.com&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd &#039;p1&#039;&lt;br /&gt;
$ dir *.*/size&lt;br /&gt;
&lt;br /&gt;
$ define COM disk1:[microct.commands]&lt;br /&gt;
$ p :== @COM:PROC.COM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
these both go into &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ p disk4:[microct.data.0000007.000009]*.ISQ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Launch an editor such as EVE===&lt;br /&gt;
&lt;br /&gt;
On the command line&lt;br /&gt;
&amp;lt;pre&amp;gt;$ edit/display=decwindows/tpu fname.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit a symbol set by Scanco such as AIX===&lt;br /&gt;
&lt;br /&gt;
[[Image:Bones2.jpg|picture_position,left]] &amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Extreme caution!  Explicit permission for this change or similar changes &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be obtained from Dr. Steven Boyd.&lt;br /&gt;
&lt;br /&gt;
Log in as user calibration&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set proc/priv=bypass&lt;br /&gt;
$ cdc (changes to microct_common)&lt;br /&gt;
$ sea *.com aix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit that file which is called &amp;lt;code&amp;gt;microct_setup_common.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Another example&#039;&#039;: To make the backspace/insert keys work properly, edit the &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt; and insert the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set terminal/insert&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anywhere suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: fda: File do all: apply one command to a whole set of files===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda ctheader dk0:[microct.data.0001234...]*.isq &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to see the header of all isq files of sample 1234 (the three dots ... means all subdirectories)&lt;br /&gt;
&lt;br /&gt;
Or: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda aix dk0:[microct.data.0001234.00005678]*.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to see the processing log of all aim files of scan 5678&lt;br /&gt;
&lt;br /&gt;
Wildcard &amp;quot;*&amp;quot; means multiple characters, &amp;quot;%&amp;quot; is for ONE character: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda aix dk0:[microct.data...]C%%%%%%%.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(yes, 7 %&#039;s)&lt;br /&gt;
&lt;br /&gt;
to show the aim header of the gray-scale c0000135.aim (etc) files only, and NOT from the _seg.aims also.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning: CAUTION! &amp;lt;/b&amp;gt; Always test the wildcard expression first with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ dir dk0:[xxx...]*.aim &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;file do all&#039; fda command can even be combined with a pipe, or an /output qualifier: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ pipe fda aix dk0:[microct...]*.aim | search sys$pipe &amp;quot;Slope&amp;quot; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will show you all &amp;quot;Slopes&amp;quot; in a row. (but you may not see which slope belongs to which aim file anymore...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda/output=sys$scratch:all_headers.log aix dk0:[microct...]*.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
will write all the output into the .log file - which you can then either edit, or &lt;br /&gt;
&amp;lt;code&amp;gt;$ search sys$scratch:all_headers.log &amp;quot;String&amp;quot;&lt;br /&gt;
or whatever you want. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;fda&amp;quot; is our self-written script, so you may have to try-n-error a bit...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda command file_wildcard [Optional: further parameters]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the command consists of multiple words with spaces inbetween (e.g. mcr ut:xxx.exe), then enclose the command in double-quotes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda &amp;quot;mcr ut:uct_ext_header_display&amp;quot; dk0:[microct...]*.isq 8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NB: the further parameters may not contain wildcards - so unfortunately, the fda can NOT be used to &#039;adaptively&#039; rename a whole bunch of files.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a customized button in the session manager===&lt;br /&gt;
&lt;br /&gt;
The session manager part to enable the double-click on the AIM file:&lt;br /&gt;
Session Manager, &#039;Options&#039;, &#039;Menu&#039;, enter new item&lt;br /&gt;
SAP&lt;br /&gt;
with command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@decw$user_defaults:sap$vue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then move that menu point into &#039;Applications&#039; menu.&lt;br /&gt;
Also:&lt;br /&gt;
&#039;Options&#039;, &#039;File types&#039;, Create &#039;AIM&#039; file type.&lt;br /&gt;
Move &#039;rename&#039;, &#039;copy&#039;, &#039;purge&#039; etc. into menu, Select &#039;SAP&#039;, click  on&lt;br /&gt;
&#039;Change double click&#039;, and also move SAP into menu.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Export the VMS display to SUN or LINUX terminal===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# - temple&lt;br /&gt;
$ - sceval&lt;br /&gt;
# xhost +temple.ucalgary.ca&lt;br /&gt;
# ssh -X microct@sceval.ucalgary.ca&lt;br /&gt;
$ set display /create /transport=tcpip /node=temple.ucalgary.ca&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE:&amp;lt;/b&amp;gt; Do not use &amp;lt;code&amp;gt;xhost+&amp;lt;/code&amp;gt;.  Always specific exactly which computer is being&lt;br /&gt;
allowed X access.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Monitor system usage===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ monitor/interval=1 processes/topcpu&lt;br /&gt;
$ monitor/interval=1 system&lt;br /&gt;
$ show error&lt;br /&gt;
$ show system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;show error&amp;lt;/code&amp;gt; may indicate errors.  One or two errors is OK.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Configure the EVE editor===&lt;br /&gt;
&lt;br /&gt;
The following file, called &amp;lt;code&amp;gt;tpu.dat&amp;lt;/code&amp;gt;, should be installed in &amp;lt;code&amp;gt;disk1:[microct.xdefaults]:&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# DECTPU V3.1 1993-04-22 15:50 defaults&lt;br /&gt;
# CHANGED B.KOLLER 21-JUN-90&lt;br /&gt;
#&lt;br /&gt;
# Copyright (c) 1993 Digital Equipment Corporation.  All rights reserved.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
# The following are all the resource names that DECTPU supports.&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Title:		DECTPU Copyright © Digital Equipment Corporation 1992.  All Rights Reserved.&lt;br /&gt;
Tpu.Tpu$MainWindow.ApplicationTitle:	DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.IconName:		DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.X:			610&lt;br /&gt;
Tpu.Tpu$MainWindow.Y:			0&lt;br /&gt;
#&lt;br /&gt;
# The following resource names are commented out so that users can specify&lt;br /&gt;
# *rows and *columns and have DECTPU obey those directives.  If DECTPU finds&lt;br /&gt;
# finds no resource names governing the number of rows and columns it should&lt;br /&gt;
# have, it uses 24 rows and 80 columns.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Columns:	80&lt;br /&gt;
Tpu.Tpu$MainWindow.Rows:	56&lt;br /&gt;
*EVE_MENU_BAR*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmScrollBar*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmDialogShell*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmMenuShell*background:	#ADADADADADAD&lt;br /&gt;
*background:			white&lt;br /&gt;
Tpu*condensedFont: OFF&lt;br /&gt;
Tpu*fontSetSelection: 0&lt;br /&gt;
&lt;br /&gt;
# 0 = big font&lt;br /&gt;
# 1 = little font&lt;br /&gt;
# 2 = GS font (German Standard)&lt;br /&gt;
# 3 = Fine font (used only for non-latin 1 fonts?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scanco System and Setup==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Stop and restart the printer queue===&lt;br /&gt;
&lt;br /&gt;
How to fix the printer queue when hung, not working or giving an error.&lt;br /&gt;
A full printer queue can seriously affect system performance.  &lt;br /&gt;
Be sure that the queue is cleaned up from time to time.&lt;br /&gt;
&lt;br /&gt;
:* Completely remove the queue and re-generate.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ stop/que/reset hpljet&lt;br /&gt;
$ dele/que hpljet&lt;br /&gt;
$ @sys$startup:dcps_hpljet_ip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract patient name from database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will show you sample-name of sample-number 1234&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info -m 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will give you some (stupid) info about meas 1234&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you use this function all the time, put the following into &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uct_info  :== $um:uct_info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then the usage info will even be correct&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract disk usage information===&lt;br /&gt;
&lt;br /&gt;
To look at the RSQs in the database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dir/siz dk0:[microct.data...]*.rsq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
the three dots means all subdirectories.&lt;br /&gt;
&lt;br /&gt;
Other useful commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.rsq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
shows you header.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ fda command file-wildcard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
does a &#039;file do all&#039; of the command on all the given wildcard filenames.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe xxxx | search sys$pipe &amp;quot;patient&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
is the pipe command in VMS.&lt;br /&gt;
&lt;br /&gt;
So all three combined:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe fda ctheader dk0:[microct.data...]*.rsq | search sys$pipe &amp;quot;patient name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or any other field you want to search for!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other ideas&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gives you a file &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; with info in it (leave defaults to get all samples ever scanned, otherwise &#039;zoom&#039; in on some samples.)&lt;br /&gt;
&lt;br /&gt;
Check out the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ help search&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and &amp;lt;code&amp;gt;/match=and&amp;lt;/code&amp;gt;&lt;br /&gt;
or &amp;lt;code&amp;gt;/match=or&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit Scanco &amp;lt;code&amp;gt;SCANCO_SUBMIT_COMMAND&amp;lt;/code&amp;gt; symbol===&lt;br /&gt;
&lt;br /&gt;
*Check the current setting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show sym *submit*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In directory &amp;lt;code&amp;gt;DISK2:[MICROCT]MICROCT_SETUP_USER.COM&amp;lt;/code&amp;gt; add the following line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ SCANCO_SUBMIT_COMMAND :== SUBMIT/NOPRINT/QUE=SYS$SLOW /NOTIFY/LOG=SYS$SCRATCH:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then end session and log in again.  Definition of the symbol in the &lt;br /&gt;
&amp;lt;code&amp;gt;MICRO_SETUP_USER.COM&amp;lt;/code&amp;gt; supersedes the standard setting.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use the new &amp;lt;code&amp;gt;UCT_BACKUP&amp;lt;/code&amp;gt; software===&lt;br /&gt;
&lt;br /&gt;
New Features (i) You can now select multiple samples with the Shift and/or the Ctrl key; and (2) You can use the sample name filter field on top to display only names containing the filter string.&lt;br /&gt;
&lt;br /&gt;
Start the move/copy by clicking on &amp;lt;code&amp;gt;&#039;Start...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;&#039;Script...&#039;&amp;lt;/code&amp;gt; button is for advanced users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Advanced Users:&amp;lt;/b&amp;gt;&lt;br /&gt;
Use of the &#039;Script...&#039; button: this will generate a script,&lt;br /&gt;
&amp;lt;code&amp;gt;sys$scratch:archive.com&amp;lt;/code&amp;gt;,&lt;br /&gt;
that you may submit in batch mode later (e.g. over night) by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command sys$scratch:archive.com/after=23:59&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(In a multi-computer cluster setup, you may want to specify the exact queue name of the computer that has the tape hooked up by giving e.g. &amp;lt;code&amp;gt;/que=sceval_fast&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
Insert a tape, but do NOT mount the tape in the normal program. (If necessary: if it&#039;s a new tape, initialize it as usual). The batch job will be started one minute before midnight in the example above.&lt;br /&gt;
&amp;lt;code&amp;gt;$ show entry&amp;lt;/code&amp;gt; will show you that it is holding until then.&lt;br /&gt;
See &amp;lt;code&amp;gt;$ help submit /after&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$ help dcl_tips date_time example&amp;lt;/code&amp;gt; for more help on this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Little Reminder:&amp;lt;/b&amp;gt;&lt;br /&gt;
While the tape is running and writing to it, DO NOT LOG OUT, DO NOT INTERRUPT THE PROGRAM! This would make that tape unusable from this point on - you could still read from that tape up to this point, but could not add more scans to this tape.&lt;br /&gt;
What to do when tape is full? It then displays some message about continuing on another tape. Hit &amp;lt;code&amp;gt;ctrl/c&amp;lt;/code&amp;gt; to interrupt the program, take a fresh tape, initialize it, select the remaining scans to archive again, hit &amp;lt;code&amp;gt;&#039;start&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
And last but not least: WE STRONGLY URGE YOU TO DO THE WEEKLY BACKUP (SAFETY BACKUP OF USER DISK1 WITH YOUR DATABASES ON IT). Two users DID experience disk crashes last year, and without the weekly backup, you may still have all scans on the data disk (e.g. disk2), but without the databases you cannot tell which scans belong the which sample!&lt;br /&gt;
&lt;br /&gt;
How to do weekly backup: insert &#039;special&#039; weekly backup tape, e.g. week_a, and&lt;br /&gt;
just hit &#039;Full backup to tape&#039;.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Import foreign data into the Scanco database on the VMS system===&lt;br /&gt;
&lt;br /&gt;
Only ISQ files can be imported into the database, however it is possible to convert other types of data into ISQ files (i.e., stacks of BMPs into ISQ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 1:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After transfering your data to the VMS system (use the data disk &amp;lt;code&amp;gt;disk2&amp;lt;/code&amp;gt;, NOT the user disk &amp;lt;code&amp;gt;disk1&amp;lt;/code&amp;gt;), use the IPL commands &amp;lt;code&amp;gt;/import_freeformat&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/read_aim function&amp;lt;/code&amp;gt; to import your data for conversion to an ISQ.&lt;br /&gt;
&lt;br /&gt;
For DICOM files, start IPL and run the &amp;lt;code&amp;gt;/dicom&amp;lt;/code&amp;gt; function to import. For DICOM, if your object is a single 3D file (-multifile false) or many many individual slice files (-multifile true, and give beginning of filenames, and –extension).&lt;br /&gt;
&lt;br /&gt;
There may be requests by IPL to convert your data to &amp;lt;code&amp;gt;signed short&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;signed char&amp;lt;/code&amp;gt; from other data types. Obey these requests and do it by running the &amp;lt;code&amp;gt;/convert_unsigned&amp;lt;/code&amp;gt; function.&lt;br /&gt;
&lt;br /&gt;
Then, write the ISQ file.&lt;br /&gt;
&amp;lt;pre&amp;gt;ipl&amp;gt; toisq in DK0:[MICROCT.DATA]D0000001.ISQ&lt;br /&gt;
    -square           true&lt;br /&gt;
    -original_pos     false&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This writes the ISQ file. &lt;br /&gt;
&amp;lt;b&amp;gt;Remember&amp;lt;/b&amp;gt;, the ISQ name must be 8 characters long (1 character followed by seven digits)!!! The letters and numbers can be chosen freely.&lt;br /&gt;
&lt;br /&gt;
Fill out a log sheet with the original AIM names that were imported, and the resulting ISQ names that were generated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 2: &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a sample in the database and write down the sample and measurement number. Then, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run um:uct_import&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And give the new ISQ file, the new sample-number and check that the feedback is correct (i.e., that the name from the database is matching the name from the ISQ file header).&lt;br /&gt;
&lt;br /&gt;
Operator and controlfile can be left 0 if you want.&lt;br /&gt;
&lt;br /&gt;
Then it changes the sample and measurement number in the ISQ file, makes the correct directory on &amp;lt;code&amp;gt;DK0&amp;lt;/code&amp;gt;, and gives you the line on the screen of how to rename the file to the correct, new directory. Take this line and use it on the command line.  Done!  &lt;br /&gt;
&lt;br /&gt;
You can now use the normal &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; program with this file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you were importing an AIM file, delete the original file as it will have the wrong measurement indexes in its log header. You will have to produce the AIM file again from the ISQ so our database writes the evaluation results into the correct sample fields.&lt;br /&gt;
&lt;br /&gt;
==Project Management==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Example filled out log sheet===&lt;br /&gt;
&lt;br /&gt;
A log sheet, which is always kept near the scanner, must be filled out for&lt;br /&gt;
every measurement on the system.  A blank log sheet is available in the&lt;br /&gt;
Documents section of this Wiki page.&lt;br /&gt;
&lt;br /&gt;
Here is an example log sheet:&lt;br /&gt;
&lt;br /&gt;
::[[Image:Herzog_pic.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Evaluation==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand the morphological parameters===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BV/TV  -&amp;gt; VOX-BV/TV&lt;br /&gt;
BS/BV  -&amp;gt; TRI-BS/BV&lt;br /&gt;
Tb.Th  -&amp;gt; DT-Tb.Th&lt;br /&gt;
Tb.Sp  -&amp;gt; DT-Tb.Sp&lt;br /&gt;
Tb.N   -&amp;gt; DT-Tb.N&lt;br /&gt;
ConnD  -&amp;gt; Conn-Dens&lt;br /&gt;
SMI    -&amp;gt; TRI-SMI&lt;br /&gt;
DA     -&amp;gt; TRI-DA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usually I&#039;d use the names on the left for the plots, but these correspond to the names on the right of the arrow in the Scanco output files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you use the TRI-Tb.Th rather than the DT-Tb.Th*, then you are using the derived (plate-model) morphological parameters.  These are less accurate than the direct parameters.  They are calculated by triangulating the surface (marching cubes) to get BS, and then calculate thickness&lt;br /&gt;
Th = 2 * BV / BS, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mean Values&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mean 1: mean of bone AND marrow --&amp;gt; &#039;apparent density&#039;&lt;br /&gt;
mean 2: mean of what was considered bone only (i.e. what was segmented) &lt;br /&gt;
&#039;bone tissue density&#039;. (so this does depend on threshold a little bit)&lt;br /&gt;
mean 3: empty, or can be used to store mean of cortex, e.g.&lt;br /&gt;
 The function /voxgobj has -region number (zero-based) to goveren which &lt;br /&gt;
 mean value is filled, 1 - 5 (thus region 0 - 4).]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;What you should also know&amp;lt;/b&amp;gt;: because of partial voluming effects, for Mean2, we are DISCARDING the 2 surface voxels of EVERY trabeculae - thus, to get meaningful Mean2, you have to do your scan with the chosen resolution high enough, such that the mean trabeculae is depicted by at the very least 5 pixels, better actually more than 6 pixels thickness. (You can do this check at the end in the XLS sheet: divide DT-Tb.Th* by el-size-mm.x, and you need to get numbers bigger than 6 or 7 or 10 or so.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Start a 3D evaulation from the terminal===&lt;br /&gt;
&lt;br /&gt;
Warning: Do not change &amp;lt;code&amp;gt;uct_evaulation_v4.com&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ipl_fixed_batch_v4.com&amp;lt;/code&amp;gt; in .eval, but only work on your own file (i.e., eval_steve).&lt;br /&gt;
First, an explanation of how the normal evaluation runs by hitting the &#039;Start 3d&#039; button.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_v4.com/para=(xxx,yyy,zzz,…)&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are 8 parameters:&lt;br /&gt;
*P1: number of print outs of our results sheet&lt;br /&gt;
*P2: the ISQ filename&lt;br /&gt;
*P3-5: start x (pos x), y, z&lt;br /&gt;
*P6-8: dim x, y, z&lt;br /&gt;
The parameters p3-p8 come from the white bounding box. The problem is that when you start from the terminal you do not have these. This problem can be overcome by using the &amp;lt;code&amp;gt;isq_to_aim_gobjbox.exe&amp;lt;/code&amp;gt; and then give the relevant parameters. You can &lt;br /&gt;
&amp;lt;code&amp;gt;$ run um: isq_to_aim_gobjbox.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
to see what it&#039;s asking for.&lt;br /&gt;
By using gobjbox you do not need p3-p8. Therefore you can start the evaluation by giving:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_special_josh.com –&lt;br /&gt;
/para=(1,dk0:[microct.data.0000275.0000245]c0000332.ISQ)&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that you can make &amp;lt;code&amp;gt;uct_evaluation_special_josh.com&amp;lt;/code&amp;gt; such that there is no need for P1 (change p2 to p1 in the script, etc).&lt;br /&gt;
[Alternatively to using the gobjbox you could use the normal isq_to_aim, but hard code the dim and pos.]&lt;br /&gt;
Then call whatever IPL files you want to call. Look into &amp;lt;code&amp;gt;fixed_batch_v4&amp;lt;/code&amp;gt; to see how we turn on the database always on the first line of every IPL part, and how we calculate parameters.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use &amp;lt;code&amp;gt;EVAL PROGRAM (Slice Viewer)&amp;lt;/code&amp;gt; without importing ISQ into the database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; It is strongly suggested to properly import that ISQ into the database before you run a full 3D evaluation!  See the appropriate HowTo.&lt;br /&gt;
&lt;br /&gt;
In a terminal, &amp;lt;code&amp;gt;$ def uct_default_isq xxxxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then start the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool (or &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
Hit cancel when asked for a file to read and the default ISQ that was set will be read.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; Only start a 3D evaluation if and only if the sample (patient) and measurement&lt;br /&gt;
index are &amp;lt;b&amp;gt;correct&amp;lt;/b&amp;gt; in the ISQ header!  &lt;br /&gt;
ONLY START A 3D EVALUATION IF AND ONLY IF THE SAMPLE (PATIENT) AND MEASURMENT INDEX ARE *CORRECT* IN THE ISQ HEADER!&lt;br /&gt;
&lt;br /&gt;
===HowTo: Submit a job to the queue===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit/noprint /que=sys$slow ipl_voi_josh_m.com &lt;br /&gt;
  - /log=sys$scratch:test.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract your results from the 3D database===&lt;br /&gt;
&lt;br /&gt;
Assuming you&#039;ve used the scanco_submit_command to initialize your evaluations (either manually or through the uct_evaluation tool) then you can get all of your results stored into a text file that can be easily imported in Excel.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ uct_list&amp;lt;/pre&amp;gt;&lt;br /&gt;
The output text file will be stored in &amp;lt;code&amp;gt;sys$scratch&amp;lt;/code&amp;gt; and you can ftp this to a PC so that it can be imported into excel and further analysis can be performed. &lt;br /&gt;
&lt;br /&gt;
Importing into Excel requires setting a deliminator based on the space.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Tabulate your LOG file results from 3D evaluations===&lt;br /&gt;
&lt;br /&gt;
Only use this if you have not used the standard &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool to generate your 3D evaluations (in which case see the HowTo related to the 3D database).&lt;br /&gt;
You can tabulate the LOG files:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or whatever you want to search for can be stored in a text file&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search/output=sys$scratch:ov.txt xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To search more than one log file, and get the output into one single file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ fda/output=xxx.txt search *.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fda means &#039;file do all&#039; and is a script made by Scanco to do one command (search) on a wildcard of files (*.log). Then put all the ov.txt, tv.txt, name.txt etc. files into excel.&lt;br /&gt;
Josh has made a .com file that does a similar job as described above.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Do cortical midshaft evaluation with moment of inertia calculation===&lt;br /&gt;
&lt;br /&gt;
This explains what happens when you type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; $ midshaft or $ eval_midshaft &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Draw a rough contour in the first of your 20 (or 12 or whatever) slices,&lt;br /&gt;
open the Contouring Sub-window, double-click on the big image, and it&lt;br /&gt;
automatically&lt;br /&gt;
finds the best contour. Then click on &#039;Selection&#039; &#039;Forwards&#039;, then &#039;Iterate&lt;br /&gt;
Forwards&#039;, and it finds the best contour for every of your (about) 20 slices.&lt;br /&gt;
&lt;br /&gt;
Then &#039;cancel&#039; the contouring sub-window, and start the 3D evaluation.&lt;br /&gt;
&lt;br /&gt;
FIRST: set the correct threshold, sigma, support in the file:&lt;br /&gt;
[microct.main]ipl_fixed_batch_midshaft.com (or in [microct.eval])!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Save contours when it asks you). Exit the program.&lt;br /&gt;
&lt;br /&gt;
When you now type $ que in the terminal, you will see some job called&lt;br /&gt;
&#039;uct_evaluation_midshaft&#039;&lt;br /&gt;
(or similar), whereas the trabecular evaluations were called&lt;br /&gt;
&#039;uct_evaluation_v4&#039;.&lt;br /&gt;
Also the .log file in Scratch has the _midshaft name.&lt;br /&gt;
&lt;br /&gt;
I now only calculate the TRI values (Plate Model), and not the direct stuff&lt;br /&gt;
anymore, since for only 20 slices, the truly 3D Tb.Th might be quite off.&lt;br /&gt;
Also, you will see lots of tildes on the result sheets. This is to tell&lt;br /&gt;
you that, if the meas. were trab. bone, those values would only be approximate.&lt;br /&gt;
But now for the cortex, they are actually correct ! (see below for more explan about this)&lt;br /&gt;
&lt;br /&gt;
So I would now use the tildes to check the &#039;excel&#039; table that the operator&lt;br /&gt;
has taken the correct script for the trab. or cort. evaluations for the&lt;br /&gt;
respective measurements !&lt;br /&gt;
&lt;br /&gt;
So what&#039;s the advantage of all this ? Now, also VOX-TV is correct! So VOX-TV&lt;br /&gt;
is the whole area, VOX-BV the doughnut, so TV-BV is the marrow area ! And still,&lt;br /&gt;
TRI-Tb.Th is the cortical thickness. (TRI-TV is NOT correct, because the .gobj&lt;br /&gt;
feature was turned off.)&lt;br /&gt;
&lt;br /&gt;
I say &#039;area&#039; above: depending on how many slices one individual scan has,&lt;br /&gt;
VOX-BV (and VOX-TV) might be different for different scans, so you will HAVE to&lt;br /&gt;
convert the volumes to area again:&lt;br /&gt;
&lt;br /&gt;
volume equals area times height&lt;br /&gt;
--&amp;gt; Bone Area = VOX-BV / height = BV / (dim.z * el_size_mm.z)&lt;br /&gt;
(and same for Total area, of course :-)&lt;br /&gt;
&lt;br /&gt;
All clear ???&lt;br /&gt;
&lt;br /&gt;
If you want porosity of the bone itself:&lt;br /&gt;
&lt;br /&gt;
draw two contours: one around, counter-clockwise, on on the inside, clock-wise&lt;br /&gt;
(thus a &#039;negative&#039;, excluding contour).&lt;br /&gt;
Now, TV will be just that ring area, BV will be the bone within that ring area,&lt;br /&gt;
and BV/TV will be 1 - porosity, thus BV/TV 94% means 6% porosity.&lt;br /&gt;
&lt;br /&gt;
*****************&lt;br /&gt;
&lt;br /&gt;
Application of this script to metaphysis scan (with trab. in middle):&lt;br /&gt;
&lt;br /&gt;
$ midshaft&lt;br /&gt;
draw one contour around the cortex, and in same slices, a NEGATIVE contour on&lt;br /&gt;
the inside (CW contour) to exclude the trab.&lt;br /&gt;
(potentially work with the BP (brake-point) system to be able to morph the&lt;br /&gt;
negative contours, even though there is already a &#039;outer&#039; contour around the&lt;br /&gt;
bone in every slice.)&lt;br /&gt;
&lt;br /&gt;
Start 3D eval, read out the data-base with uct_list.&lt;br /&gt;
&lt;br /&gt;
NB: you CANNOT give that used .gobj a special name such as c0001234_cortex.gobj!&lt;br /&gt;
Only after the eval (or midshaft eval) has finished, you may copy it to a more&lt;br /&gt;
meaningful name - but all of our evaluations are just taking the STANDARD gobj name!&lt;br /&gt;
&lt;br /&gt;
Then afterwards (after renaming or copying the _seg.aim to _cortex.aim, and&lt;br /&gt;
.gobj to _cortex.gobj), you may want to start the very normal eval with normal&lt;br /&gt;
(inner) contours to evaluate the trabecular compartement.&lt;br /&gt;
Remember: the values in our 3D result database then are OVERWRITTEN.&lt;br /&gt;
&lt;br /&gt;
(if you have a whole study, I would recommend to run the $ midshaft for ALL&lt;br /&gt;
samples, $ uct_list to e.g. sys$scratch:mystudy_cortex.txt, rename/copy gobj and&lt;br /&gt;
seg for all, and THEN run the trab. eval for all samples, $ ust_list and you&lt;br /&gt;
have two nice complete xls sheets.)&lt;br /&gt;
&lt;br /&gt;
**********************&lt;br /&gt;
&lt;br /&gt;
More explanations of why the plate model is correct:&lt;br /&gt;
&lt;br /&gt;
Assume a ring (cortex).&lt;br /&gt;
&lt;br /&gt;
Area = thickness * &#039;middle line&#039;.&lt;br /&gt;
&#039;middle line&#039; = average of outer and inner circumference&lt;br /&gt;
--&amp;gt; &#039;middle line&#039; = 0.5 * &#039;bone surface&#039;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; thickness = bone volume * 2 / bone surface.&lt;br /&gt;
&lt;br /&gt;
And this is nothing else but the &#039;plate model&#039; formula for Tb.Th!&lt;br /&gt;
&lt;br /&gt;
nice, no ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And why not just run the &#039;normal trabecular eval&#039;?&lt;br /&gt;
in the &#039;normal&#039; TRI calculation, we are EXCLUDING all surfaces that are created&lt;br /&gt;
artificially by a gobj line that cuts through a trab.&lt;br /&gt;
&lt;br /&gt;
However, for the midshaft, this means: the whole outer (or even inner, if also&lt;br /&gt;
inner contour is there) is SUPPRESSED, because it is touching the gobj line. So&lt;br /&gt;
this is where that midshaft script comes in: it turns off that suppression.&lt;br /&gt;
&lt;br /&gt;
***************&lt;br /&gt;
&lt;br /&gt;
and some explanations, why the direct DT-Tb.Th* is NOT correct for a scan with&lt;br /&gt;
just e.g. 12 slices:&lt;br /&gt;
If we fill the structure with spheres, those spheres should be bounded by the&lt;br /&gt;
width of the cortex, not just by the fact that we only have 12 slices...&lt;br /&gt;
&lt;br /&gt;
(and even more so: We are always doing &#039;aim box&#039; suppression with the spheres: &lt;br /&gt;
if a sphere touches the boundary of the aim box, it is suppressed!&lt;br /&gt;
&lt;br /&gt;
So this is quite crucial for Tb.Sp and Tb.N: to get meaningful Tb.Sp, you would&lt;br /&gt;
need a LOT of slices. Also, then, you cannot have the inner contour - otherwise&lt;br /&gt;
the negative inner contour will delete the Tb.Sp. spheres... &lt;br /&gt;
&lt;br /&gt;
IF you have enough slices, you may opt to turn the /dt_object on again in the&lt;br /&gt;
midshaft script (second half). Then DT-Tb.Th* and TRI-Tb.Th just have a slightly&lt;br /&gt;
different behaviour if there are little pores within the cortex:&lt;br /&gt;
&lt;br /&gt;
TRI: the little pore just adds a little BS, thus the influence is not that big.&lt;br /&gt;
DT: the little pore cuts the thickness sphere in half, thus at that location,&lt;br /&gt;
the thickness is halved.&lt;br /&gt;
&lt;br /&gt;
**************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The script is also calculating Mean1 and Mean2 now:&lt;br /&gt;
Mean1: &#039;apparent&#039; density, average over whole TV&lt;br /&gt;
Mean2: &#039;tissue&#039; density: average over what was segmented as bone only.&lt;br /&gt;
&lt;br /&gt;
These mean values will be in mg HA/ccm if you have the calibration option for&lt;br /&gt;
bone density installed (and activated for those scans).&lt;br /&gt;
Remember: the bone has to have some soft-tissue (or equivalent) on the inside,&lt;br /&gt;
and preferably also on the outside then.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Assign special 3D evaluation to the uct_evaluation tool===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;: This is for advanced users ONLY.  Do not attempt this without contacting Steve!&lt;br /&gt;
&lt;br /&gt;
This will show how to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt;:&lt;br /&gt;
It is easy to set up multiple .COM files for the 3D evalulation tool, one such set-up is already prepared on your computer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ eval_special&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will do something similar to &amp;lt;code&amp;gt;$ voi&amp;lt;/code&amp;gt; where the normal contour program opens, but if you start the 3D eval, the special script &amp;lt;code&amp;gt;um:uct_evaluation_special.com&amp;lt;/code&amp;gt; is called (associated with eval_special), which then in turn calls &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt;, where you can specify your own set of thresholds, etc.&lt;br /&gt;
&lt;br /&gt;
So it is a daisy chain of files which we will need to follow to set up a special &amp;lt;code&amp;gt;xxx_kyle.com&amp;lt;/code&amp;gt; script, and where ever we encounter &amp;lt;code&amp;gt;_special.com&amp;lt;/code&amp;gt;, we copy and change it to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; you will need to do the following:&lt;br /&gt;
&lt;br /&gt;
*1. Edit &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (double-click on file), please be careful here, it&#039;s very important! (and I hope you have done your &#039;weekly full backup&#039; regularly, so you could always retrieve a good version of login.com...)&lt;br /&gt;
&lt;br /&gt;
*2. Then, towards to bottom and duplicate the line&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_special :== @com:eval_var.com um:uct_evaluation_special.com&amp;lt;/code&amp;gt;&lt;br /&gt;
and change duplicate to&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_kyle    :== @com:eval_var.com um:uct_evaluation_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make this command &amp;lt;code&amp;gt;eval_kyle&amp;lt;/code&amp;gt; available after you login freshly. Save and Exit.&lt;br /&gt;
&lt;br /&gt;
*3. Then go to &amp;lt;code&amp;gt;disk1:[microct.eval]&amp;lt;/code&amp;gt; and copy the file &amp;lt;code&amp;gt;uct_evaluation_special.com&amp;lt;/code&amp;gt; to the name &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt; (&#039;Commands&#039;, &#039;Copy ...&#039;, BUT CLICK ON THE THREE DOTS and give new output name. &lt;br /&gt;
If you do not see the &amp;lt;code&amp;gt;eval_special:&amp;lt;/code&amp;gt; go to terminal, &amp;lt;code&amp;gt;$ dir ue:*special*.com&amp;lt;/code&amp;gt; and take it from the &amp;lt;code&amp;gt;microct_common&amp;lt;/code&amp;gt; directory)&lt;br /&gt;
&lt;br /&gt;
*4. Edit the &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt; file: at the top, change &amp;lt;code&amp;gt;ipl_......_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*5. Copy &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*6. Edit &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; to your liking. If you want &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; to not perform the full evaluation, but only something akin to &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, then, in the steps above, copy &amp;lt;code&amp;gt;uct_eval_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;ipl_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; (thus you take the &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; script as template for the &amp;lt;code&amp;gt;_kyle&amp;lt;/code&amp;gt; script).&lt;br /&gt;
&lt;br /&gt;
*7. Then open a new terminal (&#039;applications&#039;, &#039;decterm&#039;), &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; should work now!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;: When you start the 3D eval, then&lt;br /&gt;
&amp;lt;code&amp;gt;$ que&amp;lt;/code&amp;gt;&lt;br /&gt;
will show you your batch job with your name on it now!&lt;br /&gt;
&lt;br /&gt;
And now a few more explanations how the whole thing works: in all eval programs, hitting &#039;Start 3d&#039; just submits the logical &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$ show log uct_evaluation&amp;lt;/code&amp;gt; shows you that by default, this points to &amp;lt;code&amp;gt;ue:uct_evaluation_v4.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Those little &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;eval_steve&amp;lt;/code&amp;gt; scripts then just temporarily redefine this logical so that a different script is submitted when you &amp;lt;code&amp;gt;&#039;start 3d eval&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
About the &#039;&#039;&#039;corelut eval&#039;&#039;&#039;: Then we start a whole different eval program: the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt;. So, if you set up a &amp;lt;code&amp;gt;eval_steve_c&amp;lt;/code&amp;gt; (or whatever you want to call it): Produce a &amp;lt;code&amp;gt;eval_var_c.com&amp;lt;/code&amp;gt; in the directory commands (maybe copy from microct_common to [microct.commands]), and there, on the last line, instead of starting&lt;br /&gt;
&amp;lt;code&amp;gt;$ uct_evaluation&amp;lt;/code&amp;gt;&lt;br /&gt;
(the normal program), replace by&lt;br /&gt;
&amp;lt;code&amp;gt;$ evalc&amp;lt;/code&amp;gt;&lt;br /&gt;
which starts the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt; - and because the &amp;lt;code&amp;gt;eval_var.com&amp;lt;/code&amp;gt; has over-ridden the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; logical just before, then you are starting different script upon starting 3d eval.&lt;br /&gt;
NB: we have a logical AND a symbol called &amp;lt;code&amp;gt;uct_evalution&amp;lt;/code&amp;gt;. Sorry for confusion. Symbol &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; starts normal &amp;lt;code&amp;gt;eval&amp;lt;/code&amp;gt; program, so this is what you replace by symbol &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt; now).&lt;br /&gt;
&lt;br /&gt;
===HowTo: Convert CT numbers to mg HA/ccm===&lt;br /&gt;
&lt;br /&gt;
The two byte numbers (short) can be converted to mu values by first dividing by mu_scaling which is probably 4096. Then apply the slope and intercept to get mg HA/ccm. A typical slope may be 2.95e+02 and intercept -1.896e+02. &lt;br /&gt;
&lt;br /&gt;
These numbers are available in the AIM header, or the ISQ header (&amp;lt;code&amp;gt;$ run ut:ctheader&amp;lt;/code&amp;gt;).&lt;br /&gt;
The conversion is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mg HA/ccm = (AIM/mu_scaling) * slope + intercept&lt;br /&gt;
mg HA/ccm = (AIM/4096) * 295.494 – 189.695&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!---------------------------------------------------------------------- &lt;br /&gt;
Mu_Scaling                    4096 &lt;br /&gt;
Calibration Data              55 kVp, 200mg HA wedge, 4096 scaling &lt;br /&gt;
Calib. default unit type      2 (Density) &lt;br /&gt;
Density: unit                 mg HA/ccm &lt;br /&gt;
Density: slope                2.95493988e+02 &lt;br /&gt;
Density: intercept            -1.89695007e+02 &lt;br /&gt;
HU: mu water                  0.58200 &lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a list of registered measurements===&lt;br /&gt;
&lt;br /&gt;
:* To generate a list of measurements that are registered in the data base, to determine where backups are stored, or if the data is still on disk:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;$ write_info&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*It asks you for a range of measurement numbers or sample names, and creates &amp;lt;code&amp;gt; sys$scratch:info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix SAP colours when green===&lt;br /&gt;
&lt;br /&gt;
(using the standard gray colourmap), if changing color maps doesn&#039;t help.&lt;br /&gt;
&lt;br /&gt;
:*Menu point &#039;Norm, Default is Bone = 16000.&lt;br /&gt;
&lt;br /&gt;
:*Take max for 32000, or &#039;Adapt slice&#039;.&lt;br /&gt;
&lt;br /&gt;
::Note: Do NOT take &#039;adapt vol&#039; - it will be extremely slow!  Every single mouse-click it re-calculates whole volume...&lt;br /&gt;
&lt;br /&gt;
==Writing Scripts==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Get information about a sample or measurement from database===&lt;br /&gt;
&lt;br /&gt;
The following will create a &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create your own IPL script with some tips===&lt;br /&gt;
&lt;br /&gt;
To make a script that would submit a job to the queue with the command as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you need to create your own IPL file would be translated to the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit /noprint /que=sys$slow ue:IPL_VOI_JOSH_M.COM &lt;br /&gt;
  - /log=sys$scratch:test.log /para=(&#039;aim_file&#039;,&#039;gobj_file&#039;,&#039;seg_file&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The IPL file would look something like this…&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$   if p1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$ 	THEN &lt;br /&gt;
$	write sys$output &amp;quot;Give DK0:[xxx]C0001234_SEG.aim on the line.&amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Or: &amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Type $ scanco_submit_command um:ipl_eval_autostart/para=(dk0:[xxx]c00123_seg.aim) &amp;quot;&lt;br /&gt;
$ 	exit&lt;br /&gt;
$   endif&lt;br /&gt;
$&lt;br /&gt;
$ gobj_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.GOBJ&amp;quot;&lt;br /&gt;
$ aim_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.AIM&amp;quot;&lt;br /&gt;
$&lt;br /&gt;
$!&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some more handy IPL sequences are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then you just need to give meas. number as P1 (and maybe slice range as p2),&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
OR, some nice starts are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P3 .EQS. &amp;quot;&amp;quot;&lt;br /&gt;
$    THEN&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to duplicate&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: New Sample Number from Database&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: New Start Letter of ISQ file&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P4: Optional: Operator Number&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P5: Optional: Controlfile Number&amp;quot;&lt;br /&gt;
$      EXIT&lt;br /&gt;
$    ENDIF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where you say which parameters HAVE to be there (up to p3), and which ones are optional.&lt;br /&gt;
&lt;br /&gt;
All together, the script may look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$    THEN &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to reco&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: Optional: Slice number N or Range M:N. Auto:All&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: Optional: Queue. Auto: sys$slow&amp;quot; &lt;br /&gt;
$      EXIT &lt;br /&gt;
$    ENDIF &lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A &lt;br /&gt;
$ if p3 .eqs. &amp;quot;&amp;quot; then p3 := SYS$SLOW &lt;br /&gt;
$ slices  = p2 &lt;br /&gt;
$ quename = p3 &lt;br /&gt;
$ INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1) &lt;br /&gt;
$ INPUT = INPUT - F$PARSE(INPUT,,,&amp;quot;VERSION&amp;quot;) &lt;br /&gt;
$ logfile = &amp;quot;sys$scratch:RECO_&amp;quot; + f$PARSE(input,,,&amp;quot;NAME&amp;quot;) + &amp;quot;.LOG&amp;quot; &lt;br /&gt;
$ submit/noprint/queue=&#039;quename&#039; uct_reconstruction_file - &lt;br /&gt;
    /para=(&#039;input&#039;,&#039;slices&#039;,&#039;logfile&#039;) &lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;lt;code&amp;gt;uct_reconstruction_file&amp;lt;/code&amp;gt; is a logical that points to &amp;lt;code&amp;gt;um:uct_reconstruction.com&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Logicals are preferred in scripts to make them more universal.&lt;br /&gt;
&lt;br /&gt;
==Errors and Fixes==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix &amp;quot;last slice&amp;quot; error problem when extracting AIM from ISQ===&lt;br /&gt;
&lt;br /&gt;
Sometimes the evaluation script (i.e., voi) converting the ISQ to an AIM fails because it tries to read one slice more than what is available in the ISQ data. The result of this failure is that the 3D analysis appears to fail and no .AIM or _SEG.AIM is created in the data directory. For example, it may have tried to read 261 slices, but there were only 260 slices available.&lt;br /&gt;
The easiest work around is to make sure that the white bounding box in the uct_evaluation program does not include the last slice (largest Z dimension). Scanco is aware of this problem and will fix it in future software releases (V5.2).&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=How_To%27s&amp;diff=286</id>
		<title>How To&#039;s</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=How_To%27s&amp;diff=286"/>
		<updated>2005-09-08T13:21:37Z</updated>

		<summary type="html">&lt;p&gt;Scanco: /* HowTo: $ fda: File do all: apply one command to a whole set of files */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=HowTo Library=&lt;br /&gt;
&lt;br /&gt;
==OpenVMS==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Shut down the Alpha stations and start up again===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Do not do this unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
For shutdown&lt;br /&gt;
&lt;br /&gt;
At the login screen, type &amp;quot;shutdown&amp;quot;/no password and hit enter. &lt;br /&gt;
Then, you can turn the computer off at the prompt.&lt;br /&gt;
&lt;br /&gt;
Then, you may turn the disk array off (unplug it as there is no power switch).&lt;br /&gt;
&lt;br /&gt;
After you move the computer, power on the disk array and then the computer.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand difference between &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; is the same as &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;, but only with mcr you can hand over &#039;in-line&#039; parameters to an .exe file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
does not work, but you  have to say&lt;br /&gt;
&amp;lt;pre&amp;gt;$ mcr ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But funnily if you define a symbol in &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ ctheader :== $ut:ctheader.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with just neither run nor mcr, but the &#039;funny&#039; $ sign, then you can also hand over the ISQ name in-line.&lt;br /&gt;
&lt;br /&gt;
Small detail with big effect...&lt;br /&gt;
&lt;br /&gt;
===HowTo: Make commands available to all users with symbols or paths===&lt;br /&gt;
&lt;br /&gt;
DCL$PATH is one way to do that, WE don&#039;t use it...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ def dcl$path disk1:[microct.main],disk1:[microct.util]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, if you type&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ uct_t&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
it will first try to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ @uct_t.com&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
and then&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ r uct_t.exe&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
however, we usually define it by giving full path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ progx :== $disk1:[microct.main]progx.exe&lt;br /&gt;
$ com_proc_x :== @disk1:[microct.main]procedure.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type the shortcut (&#039;symbol&#039; in VMS language)&lt;br /&gt;
&lt;br /&gt;
We use the &#039;cd&#039; to set the default path, you may also use this in your command procedure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;proc.com&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd &#039;p1&#039;&lt;br /&gt;
$ dir *.*/size&lt;br /&gt;
&lt;br /&gt;
$ define COM disk1:[microct.commands]&lt;br /&gt;
$ p :== @COM:PROC.COM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
these both go into &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ p disk4:[microct.data.0000007.000009]*.ISQ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Launch an editor such as EVE===&lt;br /&gt;
&lt;br /&gt;
On the command line&lt;br /&gt;
&amp;lt;pre&amp;gt;$ edit/display=decwindows/tpu fname.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit a symbol set by Scanco such as AIX===&lt;br /&gt;
&lt;br /&gt;
[[Image:Bones2.jpg|picture_position,left]] &amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Extreme caution!  Explicit permission for this change or similar changes &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be obtained from Dr. Steven Boyd.&lt;br /&gt;
&lt;br /&gt;
Log in as user calibration&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set proc/priv=bypass&lt;br /&gt;
$ cdc (changes to microct_common)&lt;br /&gt;
$ sea *.com aix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit that file which is called &amp;lt;code&amp;gt;microct_setup_common.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Another example&#039;&#039;: To make the backspace/insert keys work properly, edit the &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt; and insert the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set terminal/insert&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anywhere suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: fda: File do all: apply one command to a whole set of files===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda ctheader dk0:[microct.data.0001234...]*.isq &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to see the header of all isq files of sample 1234 (the three dots ... means all subdirectories)&lt;br /&gt;
&lt;br /&gt;
Or: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda aix dk0:[microct.data.0001234.00005678]*.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to see the processing log of all aim files of scan 5678&lt;br /&gt;
&lt;br /&gt;
Wildcard &amp;quot;*&amp;quot; means multiple characters, &amp;quot;%&amp;quot; is for ONE character: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda aix dk0:[microct.data...]C%%%%%%%.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(yes, 7 %&#039;s)&lt;br /&gt;
&lt;br /&gt;
to show the aim header of the gray-scale c0000135.aim (etc) files only, and NOT from the _seg.aims also.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Always test the wildcard expression first with &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ dir dk0:[xxx...]*.aim &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;file do all&#039; fda command can even be combined with a pipe, or an /output qualifier: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ pipe fda aix dk0:[microct...]*.aim | search sys$pipe &amp;quot;Slope&amp;quot; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will show you all &amp;quot;Slopes&amp;quot; in a row. (but you may not see which slope belongs to which aim file anymore...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda/output=sys$scratch:all_headers.log aix dk0:[microct...]*.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
will write all the output into the .log file - which you can then either edit, or &lt;br /&gt;
&amp;lt;code&amp;gt;$ search sys$scratch:all_headers.log &amp;quot;String&amp;quot;&lt;br /&gt;
or whatever you want. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;fda&amp;quot; is our self-written script, so you may have to try-n-error a bit...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda command file_wildcard [Optional: further parameters]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the command consists of multiple words with spaces inbetween (e.g. mcr ut:xxx.exe), then enclose the command in double-quotes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda &amp;quot;mcr ut:uct_ext_header_display&amp;quot; dk0:[microct...]*.isq 8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NB: the further parameters may not contain wildcards - so unfortunately, the fda can NOT be used to &#039;adaptively&#039; rename a whole bunch of files.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a customized button in the session manager===&lt;br /&gt;
&lt;br /&gt;
The session manager part to enable the double-click on the AIM file:&lt;br /&gt;
Session Manager, &#039;Options&#039;, &#039;Menu&#039;, enter new item&lt;br /&gt;
SAP&lt;br /&gt;
with command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@decw$user_defaults:sap$vue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then move that menu point into &#039;Applications&#039; menu.&lt;br /&gt;
Also:&lt;br /&gt;
&#039;Options&#039;, &#039;File types&#039;, Create &#039;AIM&#039; file type.&lt;br /&gt;
Move &#039;rename&#039;, &#039;copy&#039;, &#039;purge&#039; etc. into menu, Select &#039;SAP&#039;, click  on&lt;br /&gt;
&#039;Change double click&#039;, and also move SAP into menu.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Export the VMS display to SUN or LINUX terminal===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# - temple&lt;br /&gt;
$ - sceval&lt;br /&gt;
# xhost +temple.ucalgary.ca&lt;br /&gt;
# ssh -X microct@sceval.ucalgary.ca&lt;br /&gt;
$ set display /create /transport=tcpip /node=temple.ucalgary.ca&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE:&amp;lt;/b&amp;gt; Do not use &amp;lt;code&amp;gt;xhost+&amp;lt;/code&amp;gt;.  Always specific exactly which computer is being&lt;br /&gt;
allowed X access.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Monitor system usage===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ monitor/interval=1 processes/topcpu&lt;br /&gt;
$ monitor/interval=1 system&lt;br /&gt;
$ show error&lt;br /&gt;
$ show system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;show error&amp;lt;/code&amp;gt; may indicate errors.  One or two errors is OK.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Configure the EVE editor===&lt;br /&gt;
&lt;br /&gt;
The following file, called &amp;lt;code&amp;gt;tpu.dat&amp;lt;/code&amp;gt;, should be installed in &amp;lt;code&amp;gt;disk1:[microct.xdefaults]:&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# DECTPU V3.1 1993-04-22 15:50 defaults&lt;br /&gt;
# CHANGED B.KOLLER 21-JUN-90&lt;br /&gt;
#&lt;br /&gt;
# Copyright (c) 1993 Digital Equipment Corporation.  All rights reserved.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
# The following are all the resource names that DECTPU supports.&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Title:		DECTPU Copyright © Digital Equipment Corporation 1992.  All Rights Reserved.&lt;br /&gt;
Tpu.Tpu$MainWindow.ApplicationTitle:	DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.IconName:		DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.X:			610&lt;br /&gt;
Tpu.Tpu$MainWindow.Y:			0&lt;br /&gt;
#&lt;br /&gt;
# The following resource names are commented out so that users can specify&lt;br /&gt;
# *rows and *columns and have DECTPU obey those directives.  If DECTPU finds&lt;br /&gt;
# finds no resource names governing the number of rows and columns it should&lt;br /&gt;
# have, it uses 24 rows and 80 columns.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Columns:	80&lt;br /&gt;
Tpu.Tpu$MainWindow.Rows:	56&lt;br /&gt;
*EVE_MENU_BAR*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmScrollBar*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmDialogShell*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmMenuShell*background:	#ADADADADADAD&lt;br /&gt;
*background:			white&lt;br /&gt;
Tpu*condensedFont: OFF&lt;br /&gt;
Tpu*fontSetSelection: 0&lt;br /&gt;
&lt;br /&gt;
# 0 = big font&lt;br /&gt;
# 1 = little font&lt;br /&gt;
# 2 = GS font (German Standard)&lt;br /&gt;
# 3 = Fine font (used only for non-latin 1 fonts?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scanco System and Setup==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Stop and restart the printer queue===&lt;br /&gt;
&lt;br /&gt;
How to fix the printer queue when hung, not working or giving an error.&lt;br /&gt;
A full printer queue can seriously affect system performance.  &lt;br /&gt;
Be sure that the queue is cleaned up from time to time.&lt;br /&gt;
&lt;br /&gt;
:* Completely remove the queue and re-generate.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ stop/que/reset hpljet&lt;br /&gt;
$ dele/que hpljet&lt;br /&gt;
$ @sys$startup:dcps_hpljet_ip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract patient name from database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will show you sample-name of sample-number 1234&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info -m 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will give you some (stupid) info about meas 1234&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you use this function all the time, put the following into &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uct_info  :== $um:uct_info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then the usage info will even be correct&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract disk usage information===&lt;br /&gt;
&lt;br /&gt;
To look at the RSQs in the database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dir/siz dk0:[microct.data...]*.rsq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
the three dots means all subdirectories.&lt;br /&gt;
&lt;br /&gt;
Other useful commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.rsq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
shows you header.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ fda command file-wildcard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
does a &#039;file do all&#039; of the command on all the given wildcard filenames.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe xxxx | search sys$pipe &amp;quot;patient&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
is the pipe command in VMS.&lt;br /&gt;
&lt;br /&gt;
So all three combined:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe fda ctheader dk0:[microct.data...]*.rsq | search sys$pipe &amp;quot;patient name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or any other field you want to search for!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other ideas&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gives you a file &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; with info in it (leave defaults to get all samples ever scanned, otherwise &#039;zoom&#039; in on some samples.)&lt;br /&gt;
&lt;br /&gt;
Check out the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ help search&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and &amp;lt;code&amp;gt;/match=and&amp;lt;/code&amp;gt;&lt;br /&gt;
or &amp;lt;code&amp;gt;/match=or&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit Scanco &amp;lt;code&amp;gt;SCANCO_SUBMIT_COMMAND&amp;lt;/code&amp;gt; symbol===&lt;br /&gt;
&lt;br /&gt;
*Check the current setting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show sym *submit*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In directory &amp;lt;code&amp;gt;DISK2:[MICROCT]MICROCT_SETUP_USER.COM&amp;lt;/code&amp;gt; add the following line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ SCANCO_SUBMIT_COMMAND :== SUBMIT/NOPRINT/QUE=SYS$SLOW /NOTIFY/LOG=SYS$SCRATCH:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then end session and log in again.  Definition of the symbol in the &lt;br /&gt;
&amp;lt;code&amp;gt;MICRO_SETUP_USER.COM&amp;lt;/code&amp;gt; supersedes the standard setting.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use the new &amp;lt;code&amp;gt;UCT_BACKUP&amp;lt;/code&amp;gt; software===&lt;br /&gt;
&lt;br /&gt;
New Features (i) You can now select multiple samples with the Shift and/or the Ctrl key; and (2) You can use the sample name filter field on top to display only names containing the filter string.&lt;br /&gt;
&lt;br /&gt;
Start the move/copy by clicking on &amp;lt;code&amp;gt;&#039;Start...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;&#039;Script...&#039;&amp;lt;/code&amp;gt; button is for advanced users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Advanced Users:&amp;lt;/b&amp;gt;&lt;br /&gt;
Use of the &#039;Script...&#039; button: this will generate a script,&lt;br /&gt;
&amp;lt;code&amp;gt;sys$scratch:archive.com&amp;lt;/code&amp;gt;,&lt;br /&gt;
that you may submit in batch mode later (e.g. over night) by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command sys$scratch:archive.com/after=23:59&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(In a multi-computer cluster setup, you may want to specify the exact queue name of the computer that has the tape hooked up by giving e.g. &amp;lt;code&amp;gt;/que=sceval_fast&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
Insert a tape, but do NOT mount the tape in the normal program. (If necessary: if it&#039;s a new tape, initialize it as usual). The batch job will be started one minute before midnight in the example above.&lt;br /&gt;
&amp;lt;code&amp;gt;$ show entry&amp;lt;/code&amp;gt; will show you that it is holding until then.&lt;br /&gt;
See &amp;lt;code&amp;gt;$ help submit /after&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$ help dcl_tips date_time example&amp;lt;/code&amp;gt; for more help on this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Little Reminder:&amp;lt;/b&amp;gt;&lt;br /&gt;
While the tape is running and writing to it, DO NOT LOG OUT, DO NOT INTERRUPT THE PROGRAM! This would make that tape unusable from this point on - you could still read from that tape up to this point, but could not add more scans to this tape.&lt;br /&gt;
What to do when tape is full? It then displays some message about continuing on another tape. Hit &amp;lt;code&amp;gt;ctrl/c&amp;lt;/code&amp;gt; to interrupt the program, take a fresh tape, initialize it, select the remaining scans to archive again, hit &amp;lt;code&amp;gt;&#039;start&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
And last but not least: WE STRONGLY URGE YOU TO DO THE WEEKLY BACKUP (SAFETY BACKUP OF USER DISK1 WITH YOUR DATABASES ON IT). Two users DID experience disk crashes last year, and without the weekly backup, you may still have all scans on the data disk (e.g. disk2), but without the databases you cannot tell which scans belong the which sample!&lt;br /&gt;
&lt;br /&gt;
How to do weekly backup: insert &#039;special&#039; weekly backup tape, e.g. week_a, and&lt;br /&gt;
just hit &#039;Full backup to tape&#039;.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Import foreign data into the Scanco database on the VMS system===&lt;br /&gt;
&lt;br /&gt;
Only ISQ files can be imported into the database, however it is possible to convert other types of data into ISQ files (i.e., stacks of BMPs into ISQ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 1:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After transfering your data to the VMS system (use the data disk &amp;lt;code&amp;gt;disk2&amp;lt;/code&amp;gt;, NOT the user disk &amp;lt;code&amp;gt;disk1&amp;lt;/code&amp;gt;), use the IPL commands &amp;lt;code&amp;gt;/import_freeformat&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/read_aim function&amp;lt;/code&amp;gt; to import your data for conversion to an ISQ.&lt;br /&gt;
&lt;br /&gt;
For DICOM files, start IPL and run the &amp;lt;code&amp;gt;/dicom&amp;lt;/code&amp;gt; function to import. For DICOM, if your object is a single 3D file (-multifile false) or many many individual slice files (-multifile true, and give beginning of filenames, and –extension).&lt;br /&gt;
&lt;br /&gt;
There may be requests by IPL to convert your data to &amp;lt;code&amp;gt;signed short&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;signed char&amp;lt;/code&amp;gt; from other data types. Obey these requests and do it by running the &amp;lt;code&amp;gt;/convert_unsigned&amp;lt;/code&amp;gt; function.&lt;br /&gt;
&lt;br /&gt;
Then, write the ISQ file.&lt;br /&gt;
&amp;lt;pre&amp;gt;ipl&amp;gt; toisq in DK0:[MICROCT.DATA]D0000001.ISQ&lt;br /&gt;
    -square           true&lt;br /&gt;
    -original_pos     false&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This writes the ISQ file. &lt;br /&gt;
&amp;lt;b&amp;gt;Remember&amp;lt;/b&amp;gt;, the ISQ name must be 8 characters long (1 character followed by seven digits)!!! The letters and numbers can be chosen freely.&lt;br /&gt;
&lt;br /&gt;
Fill out a log sheet with the original AIM names that were imported, and the resulting ISQ names that were generated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 2: &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a sample in the database and write down the sample and measurement number. Then, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run um:uct_import&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And give the new ISQ file, the new sample-number and check that the feedback is correct (i.e., that the name from the database is matching the name from the ISQ file header).&lt;br /&gt;
&lt;br /&gt;
Operator and controlfile can be left 0 if you want.&lt;br /&gt;
&lt;br /&gt;
Then it changes the sample and measurement number in the ISQ file, makes the correct directory on &amp;lt;code&amp;gt;DK0&amp;lt;/code&amp;gt;, and gives you the line on the screen of how to rename the file to the correct, new directory. Take this line and use it on the command line.  Done!  &lt;br /&gt;
&lt;br /&gt;
You can now use the normal &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; program with this file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you were importing an AIM file, delete the original file as it will have the wrong measurement indexes in its log header. You will have to produce the AIM file again from the ISQ so our database writes the evaluation results into the correct sample fields.&lt;br /&gt;
&lt;br /&gt;
==Project Management==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Example filled out log sheet===&lt;br /&gt;
&lt;br /&gt;
A log sheet, which is always kept near the scanner, must be filled out for&lt;br /&gt;
every measurement on the system.  A blank log sheet is available in the&lt;br /&gt;
Documents section of this Wiki page.&lt;br /&gt;
&lt;br /&gt;
Here is an example log sheet:&lt;br /&gt;
&lt;br /&gt;
::[[Image:Herzog_pic.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Evaluation==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand the morphological parameters===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BV/TV  -&amp;gt; VOX-BV/TV&lt;br /&gt;
BS/BV  -&amp;gt; TRI-BS/BV&lt;br /&gt;
Tb.Th  -&amp;gt; DT-Tb.Th&lt;br /&gt;
Tb.Sp  -&amp;gt; DT-Tb.Sp&lt;br /&gt;
Tb.N   -&amp;gt; DT-Tb.N&lt;br /&gt;
ConnD  -&amp;gt; Conn-Dens&lt;br /&gt;
SMI    -&amp;gt; TRI-SMI&lt;br /&gt;
DA     -&amp;gt; TRI-DA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usually I&#039;d use the names on the left for the plots, but these correspond to the names on the right of the arrow in the Scanco output files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you use the TRI-Tb.Th rather than the DT-Tb.Th*, then you are using the derived (plate-model) morphological parameters.  These are less accurate than the direct parameters.  They are calculated by triangulating the surface (marching cubes) to get BS, and then calculate thickness&lt;br /&gt;
Th = 2 * BV / BS, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mean Values&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mean 1: mean of bone AND marrow --&amp;gt; &#039;apparent density&#039;&lt;br /&gt;
mean 2: mean of what was considered bone only (i.e. what was segmented) &lt;br /&gt;
&#039;bone tissue density&#039;. (so this does depend on threshold a little bit)&lt;br /&gt;
mean 3: empty, or can be used to store mean of cortex, e.g.&lt;br /&gt;
 The function /voxgobj has -region number (zero-based) to goveren which &lt;br /&gt;
 mean value is filled, 1 - 5 (thus region 0 - 4).]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;What you should also know&amp;lt;/b&amp;gt;: because of partial voluming effects, for Mean2, we are DISCARDING the 2 surface voxels of EVERY trabeculae - thus, to get meaningful Mean2, you have to do your scan with the chosen resolution high enough, such that the mean trabeculae is depicted by at the very least 5 pixels, better actually more than 6 pixels thickness. (You can do this check at the end in the XLS sheet: divide DT-Tb.Th* by el-size-mm.x, and you need to get numbers bigger than 6 or 7 or 10 or so.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Start a 3D evaulation from the terminal===&lt;br /&gt;
&lt;br /&gt;
Warning: Do not change &amp;lt;code&amp;gt;uct_evaulation_v4.com&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ipl_fixed_batch_v4.com&amp;lt;/code&amp;gt; in .eval, but only work on your own file (i.e., eval_steve).&lt;br /&gt;
First, an explanation of how the normal evaluation runs by hitting the &#039;Start 3d&#039; button.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_v4.com/para=(xxx,yyy,zzz,…)&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are 8 parameters:&lt;br /&gt;
*P1: number of print outs of our results sheet&lt;br /&gt;
*P2: the ISQ filename&lt;br /&gt;
*P3-5: start x (pos x), y, z&lt;br /&gt;
*P6-8: dim x, y, z&lt;br /&gt;
The parameters p3-p8 come from the white bounding box. The problem is that when you start from the terminal you do not have these. This problem can be overcome by using the &amp;lt;code&amp;gt;isq_to_aim_gobjbox.exe&amp;lt;/code&amp;gt; and then give the relevant parameters. You can &lt;br /&gt;
&amp;lt;code&amp;gt;$ run um: isq_to_aim_gobjbox.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
to see what it&#039;s asking for.&lt;br /&gt;
By using gobjbox you do not need p3-p8. Therefore you can start the evaluation by giving:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_special_josh.com –&lt;br /&gt;
/para=(1,dk0:[microct.data.0000275.0000245]c0000332.ISQ)&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that you can make &amp;lt;code&amp;gt;uct_evaluation_special_josh.com&amp;lt;/code&amp;gt; such that there is no need for P1 (change p2 to p1 in the script, etc).&lt;br /&gt;
[Alternatively to using the gobjbox you could use the normal isq_to_aim, but hard code the dim and pos.]&lt;br /&gt;
Then call whatever IPL files you want to call. Look into &amp;lt;code&amp;gt;fixed_batch_v4&amp;lt;/code&amp;gt; to see how we turn on the database always on the first line of every IPL part, and how we calculate parameters.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use &amp;lt;code&amp;gt;EVAL PROGRAM (Slice Viewer)&amp;lt;/code&amp;gt; without importing ISQ into the database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; It is strongly suggested to properly import that ISQ into the database before you run a full 3D evaluation!  See the appropriate HowTo.&lt;br /&gt;
&lt;br /&gt;
In a terminal, &amp;lt;code&amp;gt;$ def uct_default_isq xxxxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then start the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool (or &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
Hit cancel when asked for a file to read and the default ISQ that was set will be read.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; Only start a 3D evaluation if and only if the sample (patient) and measurement&lt;br /&gt;
index are &amp;lt;b&amp;gt;correct&amp;lt;/b&amp;gt; in the ISQ header!  &lt;br /&gt;
ONLY START A 3D EVALUATION IF AND ONLY IF THE SAMPLE (PATIENT) AND MEASURMENT INDEX ARE *CORRECT* IN THE ISQ HEADER!&lt;br /&gt;
&lt;br /&gt;
===HowTo: Submit a job to the queue===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit/noprint /que=sys$slow ipl_voi_josh_m.com &lt;br /&gt;
  - /log=sys$scratch:test.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract your results from the 3D database===&lt;br /&gt;
&lt;br /&gt;
Assuming you&#039;ve used the scanco_submit_command to initialize your evaluations (either manually or through the uct_evaluation tool) then you can get all of your results stored into a text file that can be easily imported in Excel.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ uct_list&amp;lt;/pre&amp;gt;&lt;br /&gt;
The output text file will be stored in &amp;lt;code&amp;gt;sys$scratch&amp;lt;/code&amp;gt; and you can ftp this to a PC so that it can be imported into excel and further analysis can be performed. &lt;br /&gt;
&lt;br /&gt;
Importing into Excel requires setting a deliminator based on the space.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Tabulate your LOG file results from 3D evaluations===&lt;br /&gt;
&lt;br /&gt;
Only use this if you have not used the standard &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool to generate your 3D evaluations (in which case see the HowTo related to the 3D database).&lt;br /&gt;
You can tabulate the LOG files:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or whatever you want to search for can be stored in a text file&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search/output=sys$scratch:ov.txt xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To search more than one log file, and get the output into one single file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ fda/output=xxx.txt search *.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fda means &#039;file do all&#039; and is a script made by Scanco to do one command (search) on a wildcard of files (*.log). Then put all the ov.txt, tv.txt, name.txt etc. files into excel.&lt;br /&gt;
Josh has made a .com file that does a similar job as described above.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Do cortical midshaft evaluation with moment of inertia calculation===&lt;br /&gt;
&lt;br /&gt;
This explains what happens when you type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; $ midshaft or $ eval_midshaft &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Draw a rough contour in the first of your 20 (or 12 or whatever) slices,&lt;br /&gt;
open the Contouring Sub-window, double-click on the big image, and it&lt;br /&gt;
automatically&lt;br /&gt;
finds the best contour. Then click on &#039;Selection&#039; &#039;Forwards&#039;, then &#039;Iterate&lt;br /&gt;
Forwards&#039;, and it finds the best contour for every of your (about) 20 slices.&lt;br /&gt;
&lt;br /&gt;
Then &#039;cancel&#039; the contouring sub-window, and start the 3D evaluation.&lt;br /&gt;
&lt;br /&gt;
FIRST: set the correct threshold, sigma, support in the file:&lt;br /&gt;
[microct.main]ipl_fixed_batch_midshaft.com (or in [microct.eval])!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Save contours when it asks you). Exit the program.&lt;br /&gt;
&lt;br /&gt;
When you now type $ que in the terminal, you will see some job called&lt;br /&gt;
&#039;uct_evaluation_midshaft&#039;&lt;br /&gt;
(or similar), whereas the trabecular evaluations were called&lt;br /&gt;
&#039;uct_evaluation_v4&#039;.&lt;br /&gt;
Also the .log file in Scratch has the _midshaft name.&lt;br /&gt;
&lt;br /&gt;
I now only calculate the TRI values (Plate Model), and not the direct stuff&lt;br /&gt;
anymore, since for only 20 slices, the truly 3D Tb.Th might be quite off.&lt;br /&gt;
Also, you will see lots of tildes on the result sheets. This is to tell&lt;br /&gt;
you that, if the meas. were trab. bone, those values would only be approximate.&lt;br /&gt;
But now for the cortex, they are actually correct ! (see below for more explan about this)&lt;br /&gt;
&lt;br /&gt;
So I would now use the tildes to check the &#039;excel&#039; table that the operator&lt;br /&gt;
has taken the correct script for the trab. or cort. evaluations for the&lt;br /&gt;
respective measurements !&lt;br /&gt;
&lt;br /&gt;
So what&#039;s the advantage of all this ? Now, also VOX-TV is correct! So VOX-TV&lt;br /&gt;
is the whole area, VOX-BV the doughnut, so TV-BV is the marrow area ! And still,&lt;br /&gt;
TRI-Tb.Th is the cortical thickness. (TRI-TV is NOT correct, because the .gobj&lt;br /&gt;
feature was turned off.)&lt;br /&gt;
&lt;br /&gt;
I say &#039;area&#039; above: depending on how many slices one individual scan has,&lt;br /&gt;
VOX-BV (and VOX-TV) might be different for different scans, so you will HAVE to&lt;br /&gt;
convert the volumes to area again:&lt;br /&gt;
&lt;br /&gt;
volume equals area times height&lt;br /&gt;
--&amp;gt; Bone Area = VOX-BV / height = BV / (dim.z * el_size_mm.z)&lt;br /&gt;
(and same for Total area, of course :-)&lt;br /&gt;
&lt;br /&gt;
All clear ???&lt;br /&gt;
&lt;br /&gt;
If you want porosity of the bone itself:&lt;br /&gt;
&lt;br /&gt;
draw two contours: one around, counter-clockwise, on on the inside, clock-wise&lt;br /&gt;
(thus a &#039;negative&#039;, excluding contour).&lt;br /&gt;
Now, TV will be just that ring area, BV will be the bone within that ring area,&lt;br /&gt;
and BV/TV will be 1 - porosity, thus BV/TV 94% means 6% porosity.&lt;br /&gt;
&lt;br /&gt;
*****************&lt;br /&gt;
&lt;br /&gt;
Application of this script to metaphysis scan (with trab. in middle):&lt;br /&gt;
&lt;br /&gt;
$ midshaft&lt;br /&gt;
draw one contour around the cortex, and in same slices, a NEGATIVE contour on&lt;br /&gt;
the inside (CW contour) to exclude the trab.&lt;br /&gt;
(potentially work with the BP (brake-point) system to be able to morph the&lt;br /&gt;
negative contours, even though there is already a &#039;outer&#039; contour around the&lt;br /&gt;
bone in every slice.)&lt;br /&gt;
&lt;br /&gt;
Start 3D eval, read out the data-base with uct_list.&lt;br /&gt;
&lt;br /&gt;
NB: you CANNOT give that used .gobj a special name such as c0001234_cortex.gobj!&lt;br /&gt;
Only after the eval (or midshaft eval) has finished, you may copy it to a more&lt;br /&gt;
meaningful name - but all of our evaluations are just taking the STANDARD gobj name!&lt;br /&gt;
&lt;br /&gt;
Then afterwards (after renaming or copying the _seg.aim to _cortex.aim, and&lt;br /&gt;
.gobj to _cortex.gobj), you may want to start the very normal eval with normal&lt;br /&gt;
(inner) contours to evaluate the trabecular compartement.&lt;br /&gt;
Remember: the values in our 3D result database then are OVERWRITTEN.&lt;br /&gt;
&lt;br /&gt;
(if you have a whole study, I would recommend to run the $ midshaft for ALL&lt;br /&gt;
samples, $ uct_list to e.g. sys$scratch:mystudy_cortex.txt, rename/copy gobj and&lt;br /&gt;
seg for all, and THEN run the trab. eval for all samples, $ ust_list and you&lt;br /&gt;
have two nice complete xls sheets.)&lt;br /&gt;
&lt;br /&gt;
**********************&lt;br /&gt;
&lt;br /&gt;
More explanations of why the plate model is correct:&lt;br /&gt;
&lt;br /&gt;
Assume a ring (cortex).&lt;br /&gt;
&lt;br /&gt;
Area = thickness * &#039;middle line&#039;.&lt;br /&gt;
&#039;middle line&#039; = average of outer and inner circumference&lt;br /&gt;
--&amp;gt; &#039;middle line&#039; = 0.5 * &#039;bone surface&#039;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; thickness = bone volume * 2 / bone surface.&lt;br /&gt;
&lt;br /&gt;
And this is nothing else but the &#039;plate model&#039; formula for Tb.Th!&lt;br /&gt;
&lt;br /&gt;
nice, no ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And why not just run the &#039;normal trabecular eval&#039;?&lt;br /&gt;
in the &#039;normal&#039; TRI calculation, we are EXCLUDING all surfaces that are created&lt;br /&gt;
artificially by a gobj line that cuts through a trab.&lt;br /&gt;
&lt;br /&gt;
However, for the midshaft, this means: the whole outer (or even inner, if also&lt;br /&gt;
inner contour is there) is SUPPRESSED, because it is touching the gobj line. So&lt;br /&gt;
this is where that midshaft script comes in: it turns off that suppression.&lt;br /&gt;
&lt;br /&gt;
***************&lt;br /&gt;
&lt;br /&gt;
and some explanations, why the direct DT-Tb.Th* is NOT correct for a scan with&lt;br /&gt;
just e.g. 12 slices:&lt;br /&gt;
If we fill the structure with spheres, those spheres should be bounded by the&lt;br /&gt;
width of the cortex, not just by the fact that we only have 12 slices...&lt;br /&gt;
&lt;br /&gt;
(and even more so: We are always doing &#039;aim box&#039; suppression with the spheres: &lt;br /&gt;
if a sphere touches the boundary of the aim box, it is suppressed!&lt;br /&gt;
&lt;br /&gt;
So this is quite crucial for Tb.Sp and Tb.N: to get meaningful Tb.Sp, you would&lt;br /&gt;
need a LOT of slices. Also, then, you cannot have the inner contour - otherwise&lt;br /&gt;
the negative inner contour will delete the Tb.Sp. spheres... &lt;br /&gt;
&lt;br /&gt;
IF you have enough slices, you may opt to turn the /dt_object on again in the&lt;br /&gt;
midshaft script (second half). Then DT-Tb.Th* and TRI-Tb.Th just have a slightly&lt;br /&gt;
different behaviour if there are little pores within the cortex:&lt;br /&gt;
&lt;br /&gt;
TRI: the little pore just adds a little BS, thus the influence is not that big.&lt;br /&gt;
DT: the little pore cuts the thickness sphere in half, thus at that location,&lt;br /&gt;
the thickness is halved.&lt;br /&gt;
&lt;br /&gt;
**************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The script is also calculating Mean1 and Mean2 now:&lt;br /&gt;
Mean1: &#039;apparent&#039; density, average over whole TV&lt;br /&gt;
Mean2: &#039;tissue&#039; density: average over what was segmented as bone only.&lt;br /&gt;
&lt;br /&gt;
These mean values will be in mg HA/ccm if you have the calibration option for&lt;br /&gt;
bone density installed (and activated for those scans).&lt;br /&gt;
Remember: the bone has to have some soft-tissue (or equivalent) on the inside,&lt;br /&gt;
and preferably also on the outside then.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Assign special 3D evaluation to the uct_evaluation tool===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;: This is for advanced users ONLY.  Do not attempt this without contacting Steve!&lt;br /&gt;
&lt;br /&gt;
This will show how to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt;:&lt;br /&gt;
It is easy to set up multiple .COM files for the 3D evalulation tool, one such set-up is already prepared on your computer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ eval_special&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will do something similar to &amp;lt;code&amp;gt;$ voi&amp;lt;/code&amp;gt; where the normal contour program opens, but if you start the 3D eval, the special script &amp;lt;code&amp;gt;um:uct_evaluation_special.com&amp;lt;/code&amp;gt; is called (associated with eval_special), which then in turn calls &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt;, where you can specify your own set of thresholds, etc.&lt;br /&gt;
&lt;br /&gt;
So it is a daisy chain of files which we will need to follow to set up a special &amp;lt;code&amp;gt;xxx_kyle.com&amp;lt;/code&amp;gt; script, and where ever we encounter &amp;lt;code&amp;gt;_special.com&amp;lt;/code&amp;gt;, we copy and change it to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; you will need to do the following:&lt;br /&gt;
&lt;br /&gt;
*1. Edit &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (double-click on file), please be careful here, it&#039;s very important! (and I hope you have done your &#039;weekly full backup&#039; regularly, so you could always retrieve a good version of login.com...)&lt;br /&gt;
&lt;br /&gt;
*2. Then, towards to bottom and duplicate the line&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_special :== @com:eval_var.com um:uct_evaluation_special.com&amp;lt;/code&amp;gt;&lt;br /&gt;
and change duplicate to&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_kyle    :== @com:eval_var.com um:uct_evaluation_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make this command &amp;lt;code&amp;gt;eval_kyle&amp;lt;/code&amp;gt; available after you login freshly. Save and Exit.&lt;br /&gt;
&lt;br /&gt;
*3. Then go to &amp;lt;code&amp;gt;disk1:[microct.eval]&amp;lt;/code&amp;gt; and copy the file &amp;lt;code&amp;gt;uct_evaluation_special.com&amp;lt;/code&amp;gt; to the name &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt; (&#039;Commands&#039;, &#039;Copy ...&#039;, BUT CLICK ON THE THREE DOTS and give new output name. &lt;br /&gt;
If you do not see the &amp;lt;code&amp;gt;eval_special:&amp;lt;/code&amp;gt; go to terminal, &amp;lt;code&amp;gt;$ dir ue:*special*.com&amp;lt;/code&amp;gt; and take it from the &amp;lt;code&amp;gt;microct_common&amp;lt;/code&amp;gt; directory)&lt;br /&gt;
&lt;br /&gt;
*4. Edit the &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt; file: at the top, change &amp;lt;code&amp;gt;ipl_......_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*5. Copy &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*6. Edit &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; to your liking. If you want &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; to not perform the full evaluation, but only something akin to &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, then, in the steps above, copy &amp;lt;code&amp;gt;uct_eval_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;ipl_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; (thus you take the &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; script as template for the &amp;lt;code&amp;gt;_kyle&amp;lt;/code&amp;gt; script).&lt;br /&gt;
&lt;br /&gt;
*7. Then open a new terminal (&#039;applications&#039;, &#039;decterm&#039;), &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; should work now!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;: When you start the 3D eval, then&lt;br /&gt;
&amp;lt;code&amp;gt;$ que&amp;lt;/code&amp;gt;&lt;br /&gt;
will show you your batch job with your name on it now!&lt;br /&gt;
&lt;br /&gt;
And now a few more explanations how the whole thing works: in all eval programs, hitting &#039;Start 3d&#039; just submits the logical &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$ show log uct_evaluation&amp;lt;/code&amp;gt; shows you that by default, this points to &amp;lt;code&amp;gt;ue:uct_evaluation_v4.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Those little &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;eval_steve&amp;lt;/code&amp;gt; scripts then just temporarily redefine this logical so that a different script is submitted when you &amp;lt;code&amp;gt;&#039;start 3d eval&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
About the &#039;&#039;&#039;corelut eval&#039;&#039;&#039;: Then we start a whole different eval program: the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt;. So, if you set up a &amp;lt;code&amp;gt;eval_steve_c&amp;lt;/code&amp;gt; (or whatever you want to call it): Produce a &amp;lt;code&amp;gt;eval_var_c.com&amp;lt;/code&amp;gt; in the directory commands (maybe copy from microct_common to [microct.commands]), and there, on the last line, instead of starting&lt;br /&gt;
&amp;lt;code&amp;gt;$ uct_evaluation&amp;lt;/code&amp;gt;&lt;br /&gt;
(the normal program), replace by&lt;br /&gt;
&amp;lt;code&amp;gt;$ evalc&amp;lt;/code&amp;gt;&lt;br /&gt;
which starts the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt; - and because the &amp;lt;code&amp;gt;eval_var.com&amp;lt;/code&amp;gt; has over-ridden the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; logical just before, then you are starting different script upon starting 3d eval.&lt;br /&gt;
NB: we have a logical AND a symbol called &amp;lt;code&amp;gt;uct_evalution&amp;lt;/code&amp;gt;. Sorry for confusion. Symbol &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; starts normal &amp;lt;code&amp;gt;eval&amp;lt;/code&amp;gt; program, so this is what you replace by symbol &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt; now).&lt;br /&gt;
&lt;br /&gt;
===HowTo: Convert CT numbers to mg HA/ccm===&lt;br /&gt;
&lt;br /&gt;
The two byte numbers (short) can be converted to mu values by first dividing by mu_scaling which is probably 4096. Then apply the slope and intercept to get mg HA/ccm. A typical slope may be 2.95e+02 and intercept -1.896e+02. &lt;br /&gt;
&lt;br /&gt;
These numbers are available in the AIM header, or the ISQ header (&amp;lt;code&amp;gt;$ run ut:ctheader&amp;lt;/code&amp;gt;).&lt;br /&gt;
The conversion is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mg HA/ccm = (AIM/mu_scaling) * slope + intercept&lt;br /&gt;
mg HA/ccm = (AIM/4096) * 295.494 – 189.695&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!---------------------------------------------------------------------- &lt;br /&gt;
Mu_Scaling                    4096 &lt;br /&gt;
Calibration Data              55 kVp, 200mg HA wedge, 4096 scaling &lt;br /&gt;
Calib. default unit type      2 (Density) &lt;br /&gt;
Density: unit                 mg HA/ccm &lt;br /&gt;
Density: slope                2.95493988e+02 &lt;br /&gt;
Density: intercept            -1.89695007e+02 &lt;br /&gt;
HU: mu water                  0.58200 &lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a list of registered measurements===&lt;br /&gt;
&lt;br /&gt;
:* To generate a list of measurements that are registered in the data base, to determine where backups are stored, or if the data is still on disk:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;$ write_info&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*It asks you for a range of measurement numbers or sample names, and creates &amp;lt;code&amp;gt; sys$scratch:info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix SAP colours when green===&lt;br /&gt;
&lt;br /&gt;
(using the standard gray colourmap), if changing color maps doesn&#039;t help.&lt;br /&gt;
&lt;br /&gt;
:*Menu point &#039;Norm, Default is Bone = 16000.&lt;br /&gt;
&lt;br /&gt;
:*Take max for 32000, or &#039;Adapt slice&#039;.&lt;br /&gt;
&lt;br /&gt;
::Note: Do NOT take &#039;adapt vol&#039; - it will be extremely slow!  Every single mouse-click it re-calculates whole volume...&lt;br /&gt;
&lt;br /&gt;
==Writing Scripts==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Get information about a sample or measurement from database===&lt;br /&gt;
&lt;br /&gt;
The following will create a &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create your own IPL script with some tips===&lt;br /&gt;
&lt;br /&gt;
To make a script that would submit a job to the queue with the command as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you need to create your own IPL file would be translated to the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit /noprint /que=sys$slow ue:IPL_VOI_JOSH_M.COM &lt;br /&gt;
  - /log=sys$scratch:test.log /para=(&#039;aim_file&#039;,&#039;gobj_file&#039;,&#039;seg_file&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The IPL file would look something like this…&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$   if p1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$ 	THEN &lt;br /&gt;
$	write sys$output &amp;quot;Give DK0:[xxx]C0001234_SEG.aim on the line.&amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Or: &amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Type $ scanco_submit_command um:ipl_eval_autostart/para=(dk0:[xxx]c00123_seg.aim) &amp;quot;&lt;br /&gt;
$ 	exit&lt;br /&gt;
$   endif&lt;br /&gt;
$&lt;br /&gt;
$ gobj_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.GOBJ&amp;quot;&lt;br /&gt;
$ aim_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.AIM&amp;quot;&lt;br /&gt;
$&lt;br /&gt;
$!&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some more handy IPL sequences are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then you just need to give meas. number as P1 (and maybe slice range as p2),&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
OR, some nice starts are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P3 .EQS. &amp;quot;&amp;quot;&lt;br /&gt;
$    THEN&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to duplicate&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: New Sample Number from Database&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: New Start Letter of ISQ file&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P4: Optional: Operator Number&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P5: Optional: Controlfile Number&amp;quot;&lt;br /&gt;
$      EXIT&lt;br /&gt;
$    ENDIF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where you say which parameters HAVE to be there (up to p3), and which ones are optional.&lt;br /&gt;
&lt;br /&gt;
All together, the script may look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$    THEN &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to reco&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: Optional: Slice number N or Range M:N. Auto:All&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: Optional: Queue. Auto: sys$slow&amp;quot; &lt;br /&gt;
$      EXIT &lt;br /&gt;
$    ENDIF &lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A &lt;br /&gt;
$ if p3 .eqs. &amp;quot;&amp;quot; then p3 := SYS$SLOW &lt;br /&gt;
$ slices  = p2 &lt;br /&gt;
$ quename = p3 &lt;br /&gt;
$ INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1) &lt;br /&gt;
$ INPUT = INPUT - F$PARSE(INPUT,,,&amp;quot;VERSION&amp;quot;) &lt;br /&gt;
$ logfile = &amp;quot;sys$scratch:RECO_&amp;quot; + f$PARSE(input,,,&amp;quot;NAME&amp;quot;) + &amp;quot;.LOG&amp;quot; &lt;br /&gt;
$ submit/noprint/queue=&#039;quename&#039; uct_reconstruction_file - &lt;br /&gt;
    /para=(&#039;input&#039;,&#039;slices&#039;,&#039;logfile&#039;) &lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;lt;code&amp;gt;uct_reconstruction_file&amp;lt;/code&amp;gt; is a logical that points to &amp;lt;code&amp;gt;um:uct_reconstruction.com&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Logicals are preferred in scripts to make them more universal.&lt;br /&gt;
&lt;br /&gt;
==Errors and Fixes==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix &amp;quot;last slice&amp;quot; error problem when extracting AIM from ISQ===&lt;br /&gt;
&lt;br /&gt;
Sometimes the evaluation script (i.e., voi) converting the ISQ to an AIM fails because it tries to read one slice more than what is available in the ISQ data. The result of this failure is that the 3D analysis appears to fail and no .AIM or _SEG.AIM is created in the data directory. For example, it may have tried to read 261 slices, but there were only 260 slices available.&lt;br /&gt;
The easiest work around is to make sure that the white bounding box in the uct_evaluation program does not include the last slice (largest Z dimension). Scanco is aware of this problem and will fix it in future software releases (V5.2).&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=How_To%27s&amp;diff=285</id>
		<title>How To&#039;s</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=How_To%27s&amp;diff=285"/>
		<updated>2005-09-08T13:20:00Z</updated>

		<summary type="html">&lt;p&gt;Scanco: /* OpenVMS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=HowTo Library=&lt;br /&gt;
&lt;br /&gt;
==OpenVMS==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Shut down the Alpha stations and start up again===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Do not do this unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
For shutdown&lt;br /&gt;
&lt;br /&gt;
At the login screen, type &amp;quot;shutdown&amp;quot;/no password and hit enter. &lt;br /&gt;
Then, you can turn the computer off at the prompt.&lt;br /&gt;
&lt;br /&gt;
Then, you may turn the disk array off (unplug it as there is no power switch).&lt;br /&gt;
&lt;br /&gt;
After you move the computer, power on the disk array and then the computer.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand difference between &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; is the same as &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;, but only with mcr you can hand over &#039;in-line&#039; parameters to an .exe file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
does not work, but you  have to say&lt;br /&gt;
&amp;lt;pre&amp;gt;$ mcr ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But funnily if you define a symbol in &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ ctheader :== $ut:ctheader.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with just neither run nor mcr, but the &#039;funny&#039; $ sign, then you can also hand over the ISQ name in-line.&lt;br /&gt;
&lt;br /&gt;
Small detail with big effect...&lt;br /&gt;
&lt;br /&gt;
===HowTo: Make commands available to all users with symbols or paths===&lt;br /&gt;
&lt;br /&gt;
DCL$PATH is one way to do that, WE don&#039;t use it...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ def dcl$path disk1:[microct.main],disk1:[microct.util]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, if you type&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ uct_t&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
it will first try to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ @uct_t.com&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
and then&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ r uct_t.exe&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
however, we usually define it by giving full path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ progx :== $disk1:[microct.main]progx.exe&lt;br /&gt;
$ com_proc_x :== @disk1:[microct.main]procedure.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type the shortcut (&#039;symbol&#039; in VMS language)&lt;br /&gt;
&lt;br /&gt;
We use the &#039;cd&#039; to set the default path, you may also use this in your command procedure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;proc.com&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd &#039;p1&#039;&lt;br /&gt;
$ dir *.*/size&lt;br /&gt;
&lt;br /&gt;
$ define COM disk1:[microct.commands]&lt;br /&gt;
$ p :== @COM:PROC.COM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
these both go into &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ p disk4:[microct.data.0000007.000009]*.ISQ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Launch an editor such as EVE===&lt;br /&gt;
&lt;br /&gt;
On the command line&lt;br /&gt;
&amp;lt;pre&amp;gt;$ edit/display=decwindows/tpu fname.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit a symbol set by Scanco such as AIX===&lt;br /&gt;
&lt;br /&gt;
[[Image:Bones2.jpg|picture_position,left]] &amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Extreme caution!  Explicit permission for this change or similar changes &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be obtained from Dr. Steven Boyd.&lt;br /&gt;
&lt;br /&gt;
Log in as user calibration&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set proc/priv=bypass&lt;br /&gt;
$ cdc (changes to microct_common)&lt;br /&gt;
$ sea *.com aix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit that file which is called &amp;lt;code&amp;gt;microct_setup_common.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Another example&#039;&#039;: To make the backspace/insert keys work properly, edit the &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt; and insert the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set terminal/insert&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anywhere suitable.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: $ fda: File do all: apply one command to a whole set of files===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda ctheader dk0:[microct.data.0001234...]*.isq &amp;lt;/code&amp;gt;&lt;br /&gt;
to see the header of all isq files of sample 1234 (the ... means all subdirectories)&lt;br /&gt;
&lt;br /&gt;
Or: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda aix dk0:[microct.data.0001234.00005678]*.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to see the processing log of all aim files of scan 5678&lt;br /&gt;
&lt;br /&gt;
Wildcard &amp;quot;*&amp;quot; means multiple characters, &amp;quot;%&amp;quot; is for ONE character: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda aix dk0:[microct.data...]C%%%%%%%.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
(yes, 7 %&#039;s)&lt;br /&gt;
&lt;br /&gt;
to show the aim header of the gray-scale c0000135.aim (etc) files only, and NOT from the _seg.aims also.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Always test the wildcard expression first with &lt;br /&gt;
&amp;lt;code&amp;gt;$ dir dk0:[xxx...]*.aim &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The &#039;file do all&#039; fda command can even be combined with a pipe, or an /output qualifier: &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ pipe fda aix dk0:[microct...]*.aim | search sys$pipe &amp;quot;Slope&amp;quot; &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will show you all &amp;quot;Slopes&amp;quot; in a row. (but you may not see which slope belongs to which aim file anymore...)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
or:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda/output=sys$scratch:all_headers.log aix dk0:[microct...]*.aim&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
will write all the output into the .log file - which you can then either edit, or &lt;br /&gt;
&amp;lt;code&amp;gt;$ search sys$scratch:all_headers.log &amp;quot;String&amp;quot;&lt;br /&gt;
or whatever you want. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;quot;fda&amp;quot; is our self-written script, so you may have to try-n-error a bit...&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda command file_wildcard [Optional: further parameters]&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If the command consists of multiple words with spaces inbetween (e.g. mcr ut:xxx.exe), then enclose the command in double-quotes&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ fda &amp;quot;mcr ut:uct_ext_header_display&amp;quot; dk0:[microct...]*.isq 8&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
NB: the further parameters may not contain wildcards - so unfortunately, the fda can NOT be used to &#039;adaptively&#039; rename a whole bunch of files.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a customized button in the session manager===&lt;br /&gt;
&lt;br /&gt;
The session manager part to enable the double-click on the AIM file:&lt;br /&gt;
Session Manager, &#039;Options&#039;, &#039;Menu&#039;, enter new item&lt;br /&gt;
SAP&lt;br /&gt;
with command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@decw$user_defaults:sap$vue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then move that menu point into &#039;Applications&#039; menu.&lt;br /&gt;
Also:&lt;br /&gt;
&#039;Options&#039;, &#039;File types&#039;, Create &#039;AIM&#039; file type.&lt;br /&gt;
Move &#039;rename&#039;, &#039;copy&#039;, &#039;purge&#039; etc. into menu, Select &#039;SAP&#039;, click  on&lt;br /&gt;
&#039;Change double click&#039;, and also move SAP into menu.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Export the VMS display to SUN or LINUX terminal===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# - temple&lt;br /&gt;
$ - sceval&lt;br /&gt;
# xhost +temple.ucalgary.ca&lt;br /&gt;
# ssh -X microct@sceval.ucalgary.ca&lt;br /&gt;
$ set display /create /transport=tcpip /node=temple.ucalgary.ca&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE:&amp;lt;/b&amp;gt; Do not use &amp;lt;code&amp;gt;xhost+&amp;lt;/code&amp;gt;.  Always specific exactly which computer is being&lt;br /&gt;
allowed X access.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Monitor system usage===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ monitor/interval=1 processes/topcpu&lt;br /&gt;
$ monitor/interval=1 system&lt;br /&gt;
$ show error&lt;br /&gt;
$ show system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;show error&amp;lt;/code&amp;gt; may indicate errors.  One or two errors is OK.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Configure the EVE editor===&lt;br /&gt;
&lt;br /&gt;
The following file, called &amp;lt;code&amp;gt;tpu.dat&amp;lt;/code&amp;gt;, should be installed in &amp;lt;code&amp;gt;disk1:[microct.xdefaults]:&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# DECTPU V3.1 1993-04-22 15:50 defaults&lt;br /&gt;
# CHANGED B.KOLLER 21-JUN-90&lt;br /&gt;
#&lt;br /&gt;
# Copyright (c) 1993 Digital Equipment Corporation.  All rights reserved.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
# The following are all the resource names that DECTPU supports.&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Title:		DECTPU Copyright © Digital Equipment Corporation 1992.  All Rights Reserved.&lt;br /&gt;
Tpu.Tpu$MainWindow.ApplicationTitle:	DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.IconName:		DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.X:			610&lt;br /&gt;
Tpu.Tpu$MainWindow.Y:			0&lt;br /&gt;
#&lt;br /&gt;
# The following resource names are commented out so that users can specify&lt;br /&gt;
# *rows and *columns and have DECTPU obey those directives.  If DECTPU finds&lt;br /&gt;
# finds no resource names governing the number of rows and columns it should&lt;br /&gt;
# have, it uses 24 rows and 80 columns.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Columns:	80&lt;br /&gt;
Tpu.Tpu$MainWindow.Rows:	56&lt;br /&gt;
*EVE_MENU_BAR*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmScrollBar*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmDialogShell*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmMenuShell*background:	#ADADADADADAD&lt;br /&gt;
*background:			white&lt;br /&gt;
Tpu*condensedFont: OFF&lt;br /&gt;
Tpu*fontSetSelection: 0&lt;br /&gt;
&lt;br /&gt;
# 0 = big font&lt;br /&gt;
# 1 = little font&lt;br /&gt;
# 2 = GS font (German Standard)&lt;br /&gt;
# 3 = Fine font (used only for non-latin 1 fonts?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scanco System and Setup==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Stop and restart the printer queue===&lt;br /&gt;
&lt;br /&gt;
How to fix the printer queue when hung, not working or giving an error.&lt;br /&gt;
A full printer queue can seriously affect system performance.  &lt;br /&gt;
Be sure that the queue is cleaned up from time to time.&lt;br /&gt;
&lt;br /&gt;
:* Completely remove the queue and re-generate.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ stop/que/reset hpljet&lt;br /&gt;
$ dele/que hpljet&lt;br /&gt;
$ @sys$startup:dcps_hpljet_ip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract patient name from database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will show you sample-name of sample-number 1234&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info -m 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will give you some (stupid) info about meas 1234&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you use this function all the time, put the following into &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uct_info  :== $um:uct_info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then the usage info will even be correct&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract disk usage information===&lt;br /&gt;
&lt;br /&gt;
To look at the RSQs in the database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dir/siz dk0:[microct.data...]*.rsq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
the three dots means all subdirectories.&lt;br /&gt;
&lt;br /&gt;
Other useful commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.rsq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
shows you header.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ fda command file-wildcard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
does a &#039;file do all&#039; of the command on all the given wildcard filenames.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe xxxx | search sys$pipe &amp;quot;patient&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
is the pipe command in VMS.&lt;br /&gt;
&lt;br /&gt;
So all three combined:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe fda ctheader dk0:[microct.data...]*.rsq | search sys$pipe &amp;quot;patient name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or any other field you want to search for!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other ideas&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gives you a file &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; with info in it (leave defaults to get all samples ever scanned, otherwise &#039;zoom&#039; in on some samples.)&lt;br /&gt;
&lt;br /&gt;
Check out the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ help search&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and &amp;lt;code&amp;gt;/match=and&amp;lt;/code&amp;gt;&lt;br /&gt;
or &amp;lt;code&amp;gt;/match=or&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit Scanco &amp;lt;code&amp;gt;SCANCO_SUBMIT_COMMAND&amp;lt;/code&amp;gt; symbol===&lt;br /&gt;
&lt;br /&gt;
*Check the current setting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show sym *submit*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In directory &amp;lt;code&amp;gt;DISK2:[MICROCT]MICROCT_SETUP_USER.COM&amp;lt;/code&amp;gt; add the following line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ SCANCO_SUBMIT_COMMAND :== SUBMIT/NOPRINT/QUE=SYS$SLOW /NOTIFY/LOG=SYS$SCRATCH:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then end session and log in again.  Definition of the symbol in the &lt;br /&gt;
&amp;lt;code&amp;gt;MICRO_SETUP_USER.COM&amp;lt;/code&amp;gt; supersedes the standard setting.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use the new &amp;lt;code&amp;gt;UCT_BACKUP&amp;lt;/code&amp;gt; software===&lt;br /&gt;
&lt;br /&gt;
New Features (i) You can now select multiple samples with the Shift and/or the Ctrl key; and (2) You can use the sample name filter field on top to display only names containing the filter string.&lt;br /&gt;
&lt;br /&gt;
Start the move/copy by clicking on &amp;lt;code&amp;gt;&#039;Start...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;&#039;Script...&#039;&amp;lt;/code&amp;gt; button is for advanced users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Advanced Users:&amp;lt;/b&amp;gt;&lt;br /&gt;
Use of the &#039;Script...&#039; button: this will generate a script,&lt;br /&gt;
&amp;lt;code&amp;gt;sys$scratch:archive.com&amp;lt;/code&amp;gt;,&lt;br /&gt;
that you may submit in batch mode later (e.g. over night) by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command sys$scratch:archive.com/after=23:59&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(In a multi-computer cluster setup, you may want to specify the exact queue name of the computer that has the tape hooked up by giving e.g. &amp;lt;code&amp;gt;/que=sceval_fast&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
Insert a tape, but do NOT mount the tape in the normal program. (If necessary: if it&#039;s a new tape, initialize it as usual). The batch job will be started one minute before midnight in the example above.&lt;br /&gt;
&amp;lt;code&amp;gt;$ show entry&amp;lt;/code&amp;gt; will show you that it is holding until then.&lt;br /&gt;
See &amp;lt;code&amp;gt;$ help submit /after&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$ help dcl_tips date_time example&amp;lt;/code&amp;gt; for more help on this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Little Reminder:&amp;lt;/b&amp;gt;&lt;br /&gt;
While the tape is running and writing to it, DO NOT LOG OUT, DO NOT INTERRUPT THE PROGRAM! This would make that tape unusable from this point on - you could still read from that tape up to this point, but could not add more scans to this tape.&lt;br /&gt;
What to do when tape is full? It then displays some message about continuing on another tape. Hit &amp;lt;code&amp;gt;ctrl/c&amp;lt;/code&amp;gt; to interrupt the program, take a fresh tape, initialize it, select the remaining scans to archive again, hit &amp;lt;code&amp;gt;&#039;start&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
And last but not least: WE STRONGLY URGE YOU TO DO THE WEEKLY BACKUP (SAFETY BACKUP OF USER DISK1 WITH YOUR DATABASES ON IT). Two users DID experience disk crashes last year, and without the weekly backup, you may still have all scans on the data disk (e.g. disk2), but without the databases you cannot tell which scans belong the which sample!&lt;br /&gt;
&lt;br /&gt;
How to do weekly backup: insert &#039;special&#039; weekly backup tape, e.g. week_a, and&lt;br /&gt;
just hit &#039;Full backup to tape&#039;.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Import foreign data into the Scanco database on the VMS system===&lt;br /&gt;
&lt;br /&gt;
Only ISQ files can be imported into the database, however it is possible to convert other types of data into ISQ files (i.e., stacks of BMPs into ISQ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 1:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After transfering your data to the VMS system (use the data disk &amp;lt;code&amp;gt;disk2&amp;lt;/code&amp;gt;, NOT the user disk &amp;lt;code&amp;gt;disk1&amp;lt;/code&amp;gt;), use the IPL commands &amp;lt;code&amp;gt;/import_freeformat&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/read_aim function&amp;lt;/code&amp;gt; to import your data for conversion to an ISQ.&lt;br /&gt;
&lt;br /&gt;
For DICOM files, start IPL and run the &amp;lt;code&amp;gt;/dicom&amp;lt;/code&amp;gt; function to import. For DICOM, if your object is a single 3D file (-multifile false) or many many individual slice files (-multifile true, and give beginning of filenames, and –extension).&lt;br /&gt;
&lt;br /&gt;
There may be requests by IPL to convert your data to &amp;lt;code&amp;gt;signed short&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;signed char&amp;lt;/code&amp;gt; from other data types. Obey these requests and do it by running the &amp;lt;code&amp;gt;/convert_unsigned&amp;lt;/code&amp;gt; function.&lt;br /&gt;
&lt;br /&gt;
Then, write the ISQ file.&lt;br /&gt;
&amp;lt;pre&amp;gt;ipl&amp;gt; toisq in DK0:[MICROCT.DATA]D0000001.ISQ&lt;br /&gt;
    -square           true&lt;br /&gt;
    -original_pos     false&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This writes the ISQ file. &lt;br /&gt;
&amp;lt;b&amp;gt;Remember&amp;lt;/b&amp;gt;, the ISQ name must be 8 characters long (1 character followed by seven digits)!!! The letters and numbers can be chosen freely.&lt;br /&gt;
&lt;br /&gt;
Fill out a log sheet with the original AIM names that were imported, and the resulting ISQ names that were generated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 2: &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a sample in the database and write down the sample and measurement number. Then, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run um:uct_import&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And give the new ISQ file, the new sample-number and check that the feedback is correct (i.e., that the name from the database is matching the name from the ISQ file header).&lt;br /&gt;
&lt;br /&gt;
Operator and controlfile can be left 0 if you want.&lt;br /&gt;
&lt;br /&gt;
Then it changes the sample and measurement number in the ISQ file, makes the correct directory on &amp;lt;code&amp;gt;DK0&amp;lt;/code&amp;gt;, and gives you the line on the screen of how to rename the file to the correct, new directory. Take this line and use it on the command line.  Done!  &lt;br /&gt;
&lt;br /&gt;
You can now use the normal &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; program with this file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you were importing an AIM file, delete the original file as it will have the wrong measurement indexes in its log header. You will have to produce the AIM file again from the ISQ so our database writes the evaluation results into the correct sample fields.&lt;br /&gt;
&lt;br /&gt;
==Project Management==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Example filled out log sheet===&lt;br /&gt;
&lt;br /&gt;
A log sheet, which is always kept near the scanner, must be filled out for&lt;br /&gt;
every measurement on the system.  A blank log sheet is available in the&lt;br /&gt;
Documents section of this Wiki page.&lt;br /&gt;
&lt;br /&gt;
Here is an example log sheet:&lt;br /&gt;
&lt;br /&gt;
::[[Image:Herzog_pic.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Evaluation==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand the morphological parameters===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BV/TV  -&amp;gt; VOX-BV/TV&lt;br /&gt;
BS/BV  -&amp;gt; TRI-BS/BV&lt;br /&gt;
Tb.Th  -&amp;gt; DT-Tb.Th&lt;br /&gt;
Tb.Sp  -&amp;gt; DT-Tb.Sp&lt;br /&gt;
Tb.N   -&amp;gt; DT-Tb.N&lt;br /&gt;
ConnD  -&amp;gt; Conn-Dens&lt;br /&gt;
SMI    -&amp;gt; TRI-SMI&lt;br /&gt;
DA     -&amp;gt; TRI-DA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usually I&#039;d use the names on the left for the plots, but these correspond to the names on the right of the arrow in the Scanco output files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you use the TRI-Tb.Th rather than the DT-Tb.Th*, then you are using the derived (plate-model) morphological parameters.  These are less accurate than the direct parameters.  They are calculated by triangulating the surface (marching cubes) to get BS, and then calculate thickness&lt;br /&gt;
Th = 2 * BV / BS, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mean Values&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mean 1: mean of bone AND marrow --&amp;gt; &#039;apparent density&#039;&lt;br /&gt;
mean 2: mean of what was considered bone only (i.e. what was segmented) &lt;br /&gt;
&#039;bone tissue density&#039;. (so this does depend on threshold a little bit)&lt;br /&gt;
mean 3: empty, or can be used to store mean of cortex, e.g.&lt;br /&gt;
 The function /voxgobj has -region number (zero-based) to goveren which &lt;br /&gt;
 mean value is filled, 1 - 5 (thus region 0 - 4).]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;What you should also know&amp;lt;/b&amp;gt;: because of partial voluming effects, for Mean2, we are DISCARDING the 2 surface voxels of EVERY trabeculae - thus, to get meaningful Mean2, you have to do your scan with the chosen resolution high enough, such that the mean trabeculae is depicted by at the very least 5 pixels, better actually more than 6 pixels thickness. (You can do this check at the end in the XLS sheet: divide DT-Tb.Th* by el-size-mm.x, and you need to get numbers bigger than 6 or 7 or 10 or so.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Start a 3D evaulation from the terminal===&lt;br /&gt;
&lt;br /&gt;
Warning: Do not change &amp;lt;code&amp;gt;uct_evaulation_v4.com&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ipl_fixed_batch_v4.com&amp;lt;/code&amp;gt; in .eval, but only work on your own file (i.e., eval_steve).&lt;br /&gt;
First, an explanation of how the normal evaluation runs by hitting the &#039;Start 3d&#039; button.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_v4.com/para=(xxx,yyy,zzz,…)&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are 8 parameters:&lt;br /&gt;
*P1: number of print outs of our results sheet&lt;br /&gt;
*P2: the ISQ filename&lt;br /&gt;
*P3-5: start x (pos x), y, z&lt;br /&gt;
*P6-8: dim x, y, z&lt;br /&gt;
The parameters p3-p8 come from the white bounding box. The problem is that when you start from the terminal you do not have these. This problem can be overcome by using the &amp;lt;code&amp;gt;isq_to_aim_gobjbox.exe&amp;lt;/code&amp;gt; and then give the relevant parameters. You can &lt;br /&gt;
&amp;lt;code&amp;gt;$ run um: isq_to_aim_gobjbox.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
to see what it&#039;s asking for.&lt;br /&gt;
By using gobjbox you do not need p3-p8. Therefore you can start the evaluation by giving:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_special_josh.com –&lt;br /&gt;
/para=(1,dk0:[microct.data.0000275.0000245]c0000332.ISQ)&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that you can make &amp;lt;code&amp;gt;uct_evaluation_special_josh.com&amp;lt;/code&amp;gt; such that there is no need for P1 (change p2 to p1 in the script, etc).&lt;br /&gt;
[Alternatively to using the gobjbox you could use the normal isq_to_aim, but hard code the dim and pos.]&lt;br /&gt;
Then call whatever IPL files you want to call. Look into &amp;lt;code&amp;gt;fixed_batch_v4&amp;lt;/code&amp;gt; to see how we turn on the database always on the first line of every IPL part, and how we calculate parameters.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use &amp;lt;code&amp;gt;EVAL PROGRAM (Slice Viewer)&amp;lt;/code&amp;gt; without importing ISQ into the database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; It is strongly suggested to properly import that ISQ into the database before you run a full 3D evaluation!  See the appropriate HowTo.&lt;br /&gt;
&lt;br /&gt;
In a terminal, &amp;lt;code&amp;gt;$ def uct_default_isq xxxxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then start the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool (or &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
Hit cancel when asked for a file to read and the default ISQ that was set will be read.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; Only start a 3D evaluation if and only if the sample (patient) and measurement&lt;br /&gt;
index are &amp;lt;b&amp;gt;correct&amp;lt;/b&amp;gt; in the ISQ header!  &lt;br /&gt;
ONLY START A 3D EVALUATION IF AND ONLY IF THE SAMPLE (PATIENT) AND MEASURMENT INDEX ARE *CORRECT* IN THE ISQ HEADER!&lt;br /&gt;
&lt;br /&gt;
===HowTo: Submit a job to the queue===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit/noprint /que=sys$slow ipl_voi_josh_m.com &lt;br /&gt;
  - /log=sys$scratch:test.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract your results from the 3D database===&lt;br /&gt;
&lt;br /&gt;
Assuming you&#039;ve used the scanco_submit_command to initialize your evaluations (either manually or through the uct_evaluation tool) then you can get all of your results stored into a text file that can be easily imported in Excel.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ uct_list&amp;lt;/pre&amp;gt;&lt;br /&gt;
The output text file will be stored in &amp;lt;code&amp;gt;sys$scratch&amp;lt;/code&amp;gt; and you can ftp this to a PC so that it can be imported into excel and further analysis can be performed. &lt;br /&gt;
&lt;br /&gt;
Importing into Excel requires setting a deliminator based on the space.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Tabulate your LOG file results from 3D evaluations===&lt;br /&gt;
&lt;br /&gt;
Only use this if you have not used the standard &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool to generate your 3D evaluations (in which case see the HowTo related to the 3D database).&lt;br /&gt;
You can tabulate the LOG files:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or whatever you want to search for can be stored in a text file&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search/output=sys$scratch:ov.txt xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To search more than one log file, and get the output into one single file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ fda/output=xxx.txt search *.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fda means &#039;file do all&#039; and is a script made by Scanco to do one command (search) on a wildcard of files (*.log). Then put all the ov.txt, tv.txt, name.txt etc. files into excel.&lt;br /&gt;
Josh has made a .com file that does a similar job as described above.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Do cortical midshaft evaluation with moment of inertia calculation===&lt;br /&gt;
&lt;br /&gt;
This explains what happens when you type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; $ midshaft or $ eval_midshaft &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Draw a rough contour in the first of your 20 (or 12 or whatever) slices,&lt;br /&gt;
open the Contouring Sub-window, double-click on the big image, and it&lt;br /&gt;
automatically&lt;br /&gt;
finds the best contour. Then click on &#039;Selection&#039; &#039;Forwards&#039;, then &#039;Iterate&lt;br /&gt;
Forwards&#039;, and it finds the best contour for every of your (about) 20 slices.&lt;br /&gt;
&lt;br /&gt;
Then &#039;cancel&#039; the contouring sub-window, and start the 3D evaluation.&lt;br /&gt;
&lt;br /&gt;
FIRST: set the correct threshold, sigma, support in the file:&lt;br /&gt;
[microct.main]ipl_fixed_batch_midshaft.com (or in [microct.eval])!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Save contours when it asks you). Exit the program.&lt;br /&gt;
&lt;br /&gt;
When you now type $ que in the terminal, you will see some job called&lt;br /&gt;
&#039;uct_evaluation_midshaft&#039;&lt;br /&gt;
(or similar), whereas the trabecular evaluations were called&lt;br /&gt;
&#039;uct_evaluation_v4&#039;.&lt;br /&gt;
Also the .log file in Scratch has the _midshaft name.&lt;br /&gt;
&lt;br /&gt;
I now only calculate the TRI values (Plate Model), and not the direct stuff&lt;br /&gt;
anymore, since for only 20 slices, the truly 3D Tb.Th might be quite off.&lt;br /&gt;
Also, you will see lots of tildes on the result sheets. This is to tell&lt;br /&gt;
you that, if the meas. were trab. bone, those values would only be approximate.&lt;br /&gt;
But now for the cortex, they are actually correct ! (see below for more explan about this)&lt;br /&gt;
&lt;br /&gt;
So I would now use the tildes to check the &#039;excel&#039; table that the operator&lt;br /&gt;
has taken the correct script for the trab. or cort. evaluations for the&lt;br /&gt;
respective measurements !&lt;br /&gt;
&lt;br /&gt;
So what&#039;s the advantage of all this ? Now, also VOX-TV is correct! So VOX-TV&lt;br /&gt;
is the whole area, VOX-BV the doughnut, so TV-BV is the marrow area ! And still,&lt;br /&gt;
TRI-Tb.Th is the cortical thickness. (TRI-TV is NOT correct, because the .gobj&lt;br /&gt;
feature was turned off.)&lt;br /&gt;
&lt;br /&gt;
I say &#039;area&#039; above: depending on how many slices one individual scan has,&lt;br /&gt;
VOX-BV (and VOX-TV) might be different for different scans, so you will HAVE to&lt;br /&gt;
convert the volumes to area again:&lt;br /&gt;
&lt;br /&gt;
volume equals area times height&lt;br /&gt;
--&amp;gt; Bone Area = VOX-BV / height = BV / (dim.z * el_size_mm.z)&lt;br /&gt;
(and same for Total area, of course :-)&lt;br /&gt;
&lt;br /&gt;
All clear ???&lt;br /&gt;
&lt;br /&gt;
If you want porosity of the bone itself:&lt;br /&gt;
&lt;br /&gt;
draw two contours: one around, counter-clockwise, on on the inside, clock-wise&lt;br /&gt;
(thus a &#039;negative&#039;, excluding contour).&lt;br /&gt;
Now, TV will be just that ring area, BV will be the bone within that ring area,&lt;br /&gt;
and BV/TV will be 1 - porosity, thus BV/TV 94% means 6% porosity.&lt;br /&gt;
&lt;br /&gt;
*****************&lt;br /&gt;
&lt;br /&gt;
Application of this script to metaphysis scan (with trab. in middle):&lt;br /&gt;
&lt;br /&gt;
$ midshaft&lt;br /&gt;
draw one contour around the cortex, and in same slices, a NEGATIVE contour on&lt;br /&gt;
the inside (CW contour) to exclude the trab.&lt;br /&gt;
(potentially work with the BP (brake-point) system to be able to morph the&lt;br /&gt;
negative contours, even though there is already a &#039;outer&#039; contour around the&lt;br /&gt;
bone in every slice.)&lt;br /&gt;
&lt;br /&gt;
Start 3D eval, read out the data-base with uct_list.&lt;br /&gt;
&lt;br /&gt;
NB: you CANNOT give that used .gobj a special name such as c0001234_cortex.gobj!&lt;br /&gt;
Only after the eval (or midshaft eval) has finished, you may copy it to a more&lt;br /&gt;
meaningful name - but all of our evaluations are just taking the STANDARD gobj name!&lt;br /&gt;
&lt;br /&gt;
Then afterwards (after renaming or copying the _seg.aim to _cortex.aim, and&lt;br /&gt;
.gobj to _cortex.gobj), you may want to start the very normal eval with normal&lt;br /&gt;
(inner) contours to evaluate the trabecular compartement.&lt;br /&gt;
Remember: the values in our 3D result database then are OVERWRITTEN.&lt;br /&gt;
&lt;br /&gt;
(if you have a whole study, I would recommend to run the $ midshaft for ALL&lt;br /&gt;
samples, $ uct_list to e.g. sys$scratch:mystudy_cortex.txt, rename/copy gobj and&lt;br /&gt;
seg for all, and THEN run the trab. eval for all samples, $ ust_list and you&lt;br /&gt;
have two nice complete xls sheets.)&lt;br /&gt;
&lt;br /&gt;
**********************&lt;br /&gt;
&lt;br /&gt;
More explanations of why the plate model is correct:&lt;br /&gt;
&lt;br /&gt;
Assume a ring (cortex).&lt;br /&gt;
&lt;br /&gt;
Area = thickness * &#039;middle line&#039;.&lt;br /&gt;
&#039;middle line&#039; = average of outer and inner circumference&lt;br /&gt;
--&amp;gt; &#039;middle line&#039; = 0.5 * &#039;bone surface&#039;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; thickness = bone volume * 2 / bone surface.&lt;br /&gt;
&lt;br /&gt;
And this is nothing else but the &#039;plate model&#039; formula for Tb.Th!&lt;br /&gt;
&lt;br /&gt;
nice, no ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And why not just run the &#039;normal trabecular eval&#039;?&lt;br /&gt;
in the &#039;normal&#039; TRI calculation, we are EXCLUDING all surfaces that are created&lt;br /&gt;
artificially by a gobj line that cuts through a trab.&lt;br /&gt;
&lt;br /&gt;
However, for the midshaft, this means: the whole outer (or even inner, if also&lt;br /&gt;
inner contour is there) is SUPPRESSED, because it is touching the gobj line. So&lt;br /&gt;
this is where that midshaft script comes in: it turns off that suppression.&lt;br /&gt;
&lt;br /&gt;
***************&lt;br /&gt;
&lt;br /&gt;
and some explanations, why the direct DT-Tb.Th* is NOT correct for a scan with&lt;br /&gt;
just e.g. 12 slices:&lt;br /&gt;
If we fill the structure with spheres, those spheres should be bounded by the&lt;br /&gt;
width of the cortex, not just by the fact that we only have 12 slices...&lt;br /&gt;
&lt;br /&gt;
(and even more so: We are always doing &#039;aim box&#039; suppression with the spheres: &lt;br /&gt;
if a sphere touches the boundary of the aim box, it is suppressed!&lt;br /&gt;
&lt;br /&gt;
So this is quite crucial for Tb.Sp and Tb.N: to get meaningful Tb.Sp, you would&lt;br /&gt;
need a LOT of slices. Also, then, you cannot have the inner contour - otherwise&lt;br /&gt;
the negative inner contour will delete the Tb.Sp. spheres... &lt;br /&gt;
&lt;br /&gt;
IF you have enough slices, you may opt to turn the /dt_object on again in the&lt;br /&gt;
midshaft script (second half). Then DT-Tb.Th* and TRI-Tb.Th just have a slightly&lt;br /&gt;
different behaviour if there are little pores within the cortex:&lt;br /&gt;
&lt;br /&gt;
TRI: the little pore just adds a little BS, thus the influence is not that big.&lt;br /&gt;
DT: the little pore cuts the thickness sphere in half, thus at that location,&lt;br /&gt;
the thickness is halved.&lt;br /&gt;
&lt;br /&gt;
**************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The script is also calculating Mean1 and Mean2 now:&lt;br /&gt;
Mean1: &#039;apparent&#039; density, average over whole TV&lt;br /&gt;
Mean2: &#039;tissue&#039; density: average over what was segmented as bone only.&lt;br /&gt;
&lt;br /&gt;
These mean values will be in mg HA/ccm if you have the calibration option for&lt;br /&gt;
bone density installed (and activated for those scans).&lt;br /&gt;
Remember: the bone has to have some soft-tissue (or equivalent) on the inside,&lt;br /&gt;
and preferably also on the outside then.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Assign special 3D evaluation to the uct_evaluation tool===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;: This is for advanced users ONLY.  Do not attempt this without contacting Steve!&lt;br /&gt;
&lt;br /&gt;
This will show how to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt;:&lt;br /&gt;
It is easy to set up multiple .COM files for the 3D evalulation tool, one such set-up is already prepared on your computer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ eval_special&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will do something similar to &amp;lt;code&amp;gt;$ voi&amp;lt;/code&amp;gt; where the normal contour program opens, but if you start the 3D eval, the special script &amp;lt;code&amp;gt;um:uct_evaluation_special.com&amp;lt;/code&amp;gt; is called (associated with eval_special), which then in turn calls &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt;, where you can specify your own set of thresholds, etc.&lt;br /&gt;
&lt;br /&gt;
So it is a daisy chain of files which we will need to follow to set up a special &amp;lt;code&amp;gt;xxx_kyle.com&amp;lt;/code&amp;gt; script, and where ever we encounter &amp;lt;code&amp;gt;_special.com&amp;lt;/code&amp;gt;, we copy and change it to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; you will need to do the following:&lt;br /&gt;
&lt;br /&gt;
*1. Edit &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (double-click on file), please be careful here, it&#039;s very important! (and I hope you have done your &#039;weekly full backup&#039; regularly, so you could always retrieve a good version of login.com...)&lt;br /&gt;
&lt;br /&gt;
*2. Then, towards to bottom and duplicate the line&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_special :== @com:eval_var.com um:uct_evaluation_special.com&amp;lt;/code&amp;gt;&lt;br /&gt;
and change duplicate to&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_kyle    :== @com:eval_var.com um:uct_evaluation_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make this command &amp;lt;code&amp;gt;eval_kyle&amp;lt;/code&amp;gt; available after you login freshly. Save and Exit.&lt;br /&gt;
&lt;br /&gt;
*3. Then go to &amp;lt;code&amp;gt;disk1:[microct.eval]&amp;lt;/code&amp;gt; and copy the file &amp;lt;code&amp;gt;uct_evaluation_special.com&amp;lt;/code&amp;gt; to the name &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt; (&#039;Commands&#039;, &#039;Copy ...&#039;, BUT CLICK ON THE THREE DOTS and give new output name. &lt;br /&gt;
If you do not see the &amp;lt;code&amp;gt;eval_special:&amp;lt;/code&amp;gt; go to terminal, &amp;lt;code&amp;gt;$ dir ue:*special*.com&amp;lt;/code&amp;gt; and take it from the &amp;lt;code&amp;gt;microct_common&amp;lt;/code&amp;gt; directory)&lt;br /&gt;
&lt;br /&gt;
*4. Edit the &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt; file: at the top, change &amp;lt;code&amp;gt;ipl_......_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*5. Copy &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*6. Edit &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; to your liking. If you want &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; to not perform the full evaluation, but only something akin to &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, then, in the steps above, copy &amp;lt;code&amp;gt;uct_eval_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;ipl_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; (thus you take the &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; script as template for the &amp;lt;code&amp;gt;_kyle&amp;lt;/code&amp;gt; script).&lt;br /&gt;
&lt;br /&gt;
*7. Then open a new terminal (&#039;applications&#039;, &#039;decterm&#039;), &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; should work now!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;: When you start the 3D eval, then&lt;br /&gt;
&amp;lt;code&amp;gt;$ que&amp;lt;/code&amp;gt;&lt;br /&gt;
will show you your batch job with your name on it now!&lt;br /&gt;
&lt;br /&gt;
And now a few more explanations how the whole thing works: in all eval programs, hitting &#039;Start 3d&#039; just submits the logical &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$ show log uct_evaluation&amp;lt;/code&amp;gt; shows you that by default, this points to &amp;lt;code&amp;gt;ue:uct_evaluation_v4.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Those little &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;eval_steve&amp;lt;/code&amp;gt; scripts then just temporarily redefine this logical so that a different script is submitted when you &amp;lt;code&amp;gt;&#039;start 3d eval&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
About the &#039;&#039;&#039;corelut eval&#039;&#039;&#039;: Then we start a whole different eval program: the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt;. So, if you set up a &amp;lt;code&amp;gt;eval_steve_c&amp;lt;/code&amp;gt; (or whatever you want to call it): Produce a &amp;lt;code&amp;gt;eval_var_c.com&amp;lt;/code&amp;gt; in the directory commands (maybe copy from microct_common to [microct.commands]), and there, on the last line, instead of starting&lt;br /&gt;
&amp;lt;code&amp;gt;$ uct_evaluation&amp;lt;/code&amp;gt;&lt;br /&gt;
(the normal program), replace by&lt;br /&gt;
&amp;lt;code&amp;gt;$ evalc&amp;lt;/code&amp;gt;&lt;br /&gt;
which starts the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt; - and because the &amp;lt;code&amp;gt;eval_var.com&amp;lt;/code&amp;gt; has over-ridden the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; logical just before, then you are starting different script upon starting 3d eval.&lt;br /&gt;
NB: we have a logical AND a symbol called &amp;lt;code&amp;gt;uct_evalution&amp;lt;/code&amp;gt;. Sorry for confusion. Symbol &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; starts normal &amp;lt;code&amp;gt;eval&amp;lt;/code&amp;gt; program, so this is what you replace by symbol &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt; now).&lt;br /&gt;
&lt;br /&gt;
===HowTo: Convert CT numbers to mg HA/ccm===&lt;br /&gt;
&lt;br /&gt;
The two byte numbers (short) can be converted to mu values by first dividing by mu_scaling which is probably 4096. Then apply the slope and intercept to get mg HA/ccm. A typical slope may be 2.95e+02 and intercept -1.896e+02. &lt;br /&gt;
&lt;br /&gt;
These numbers are available in the AIM header, or the ISQ header (&amp;lt;code&amp;gt;$ run ut:ctheader&amp;lt;/code&amp;gt;).&lt;br /&gt;
The conversion is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mg HA/ccm = (AIM/mu_scaling) * slope + intercept&lt;br /&gt;
mg HA/ccm = (AIM/4096) * 295.494 – 189.695&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!---------------------------------------------------------------------- &lt;br /&gt;
Mu_Scaling                    4096 &lt;br /&gt;
Calibration Data              55 kVp, 200mg HA wedge, 4096 scaling &lt;br /&gt;
Calib. default unit type      2 (Density) &lt;br /&gt;
Density: unit                 mg HA/ccm &lt;br /&gt;
Density: slope                2.95493988e+02 &lt;br /&gt;
Density: intercept            -1.89695007e+02 &lt;br /&gt;
HU: mu water                  0.58200 &lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a list of registered measurements===&lt;br /&gt;
&lt;br /&gt;
:* To generate a list of measurements that are registered in the data base, to determine where backups are stored, or if the data is still on disk:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;$ write_info&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*It asks you for a range of measurement numbers or sample names, and creates &amp;lt;code&amp;gt; sys$scratch:info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix SAP colours when green===&lt;br /&gt;
&lt;br /&gt;
(using the standard gray colourmap), if changing color maps doesn&#039;t help.&lt;br /&gt;
&lt;br /&gt;
:*Menu point &#039;Norm, Default is Bone = 16000.&lt;br /&gt;
&lt;br /&gt;
:*Take max for 32000, or &#039;Adapt slice&#039;.&lt;br /&gt;
&lt;br /&gt;
::Note: Do NOT take &#039;adapt vol&#039; - it will be extremely slow!  Every single mouse-click it re-calculates whole volume...&lt;br /&gt;
&lt;br /&gt;
==Writing Scripts==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Get information about a sample or measurement from database===&lt;br /&gt;
&lt;br /&gt;
The following will create a &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create your own IPL script with some tips===&lt;br /&gt;
&lt;br /&gt;
To make a script that would submit a job to the queue with the command as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you need to create your own IPL file would be translated to the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit /noprint /que=sys$slow ue:IPL_VOI_JOSH_M.COM &lt;br /&gt;
  - /log=sys$scratch:test.log /para=(&#039;aim_file&#039;,&#039;gobj_file&#039;,&#039;seg_file&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The IPL file would look something like this…&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$   if p1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$ 	THEN &lt;br /&gt;
$	write sys$output &amp;quot;Give DK0:[xxx]C0001234_SEG.aim on the line.&amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Or: &amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Type $ scanco_submit_command um:ipl_eval_autostart/para=(dk0:[xxx]c00123_seg.aim) &amp;quot;&lt;br /&gt;
$ 	exit&lt;br /&gt;
$   endif&lt;br /&gt;
$&lt;br /&gt;
$ gobj_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.GOBJ&amp;quot;&lt;br /&gt;
$ aim_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.AIM&amp;quot;&lt;br /&gt;
$&lt;br /&gt;
$!&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some more handy IPL sequences are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then you just need to give meas. number as P1 (and maybe slice range as p2),&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
OR, some nice starts are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P3 .EQS. &amp;quot;&amp;quot;&lt;br /&gt;
$    THEN&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to duplicate&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: New Sample Number from Database&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: New Start Letter of ISQ file&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P4: Optional: Operator Number&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P5: Optional: Controlfile Number&amp;quot;&lt;br /&gt;
$      EXIT&lt;br /&gt;
$    ENDIF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where you say which parameters HAVE to be there (up to p3), and which ones are optional.&lt;br /&gt;
&lt;br /&gt;
All together, the script may look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$    THEN &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to reco&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: Optional: Slice number N or Range M:N. Auto:All&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: Optional: Queue. Auto: sys$slow&amp;quot; &lt;br /&gt;
$      EXIT &lt;br /&gt;
$    ENDIF &lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A &lt;br /&gt;
$ if p3 .eqs. &amp;quot;&amp;quot; then p3 := SYS$SLOW &lt;br /&gt;
$ slices  = p2 &lt;br /&gt;
$ quename = p3 &lt;br /&gt;
$ INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1) &lt;br /&gt;
$ INPUT = INPUT - F$PARSE(INPUT,,,&amp;quot;VERSION&amp;quot;) &lt;br /&gt;
$ logfile = &amp;quot;sys$scratch:RECO_&amp;quot; + f$PARSE(input,,,&amp;quot;NAME&amp;quot;) + &amp;quot;.LOG&amp;quot; &lt;br /&gt;
$ submit/noprint/queue=&#039;quename&#039; uct_reconstruction_file - &lt;br /&gt;
    /para=(&#039;input&#039;,&#039;slices&#039;,&#039;logfile&#039;) &lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;lt;code&amp;gt;uct_reconstruction_file&amp;lt;/code&amp;gt; is a logical that points to &amp;lt;code&amp;gt;um:uct_reconstruction.com&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Logicals are preferred in scripts to make them more universal.&lt;br /&gt;
&lt;br /&gt;
==Errors and Fixes==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix &amp;quot;last slice&amp;quot; error problem when extracting AIM from ISQ===&lt;br /&gt;
&lt;br /&gt;
Sometimes the evaluation script (i.e., voi) converting the ISQ to an AIM fails because it tries to read one slice more than what is available in the ISQ data. The result of this failure is that the 3D analysis appears to fail and no .AIM or _SEG.AIM is created in the data directory. For example, it may have tried to read 261 slices, but there were only 260 slices available.&lt;br /&gt;
The easiest work around is to make sure that the white bounding box in the uct_evaluation program does not include the last slice (largest Z dimension). Scanco is aware of this problem and will fix it in future software releases (V5.2).&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=How_To%27s&amp;diff=284</id>
		<title>How To&#039;s</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=How_To%27s&amp;diff=284"/>
		<updated>2005-09-02T09:15:01Z</updated>

		<summary type="html">&lt;p&gt;Scanco: /* HowTo: Do cortical midshaft evaluation with moment of inertia calculation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=HowTo Library=&lt;br /&gt;
&lt;br /&gt;
==OpenVMS==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Shut down the Alpha stations and start up again===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Do not do this unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
For shutdown&lt;br /&gt;
&lt;br /&gt;
At the login screen, type &amp;quot;shutdown&amp;quot;/no password and hit enter. &lt;br /&gt;
Then, you can turn the computer off at the prompt.&lt;br /&gt;
&lt;br /&gt;
Then, you may turn the disk array off (unplug it as there is no power switch).&lt;br /&gt;
&lt;br /&gt;
After you move the computer, power on the disk array and then the computer.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand difference between &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; is the same as &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;, but only with mcr you can hand over &#039;in-line&#039; parameters to an .exe file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
does not work, but you  have to say&lt;br /&gt;
&amp;lt;pre&amp;gt;$ mcr ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But funnily if you define a symbol in &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ ctheader :== $ut:ctheader.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with just neither run nor mcr, but the &#039;funny&#039; $ sign, then you can also hand over the ISQ name in-line.&lt;br /&gt;
&lt;br /&gt;
Small detail with big effect...&lt;br /&gt;
&lt;br /&gt;
===HowTo: Make commands available to all users with symbols or paths===&lt;br /&gt;
&lt;br /&gt;
DCL$PATH is one way to do that, WE don&#039;t use it...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ def dcl$path disk1:[microct.main],disk1:[microct.util]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, if you type&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ uct_t&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
it will first try to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ @uct_t.com&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
and then&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ r uct_t.exe&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
however, we usually define it by giving full path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ progx :== $disk1:[microct.main]progx.exe&lt;br /&gt;
$ com_proc_x :== @disk1:[microct.main]procedure.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type the shortcut (&#039;symbol&#039; in VMS language)&lt;br /&gt;
&lt;br /&gt;
We use the &#039;cd&#039; to set the default path, you may also use this in your command procedure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;proc.com&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd &#039;p1&#039;&lt;br /&gt;
$ dir *.*/size&lt;br /&gt;
&lt;br /&gt;
$ define COM disk1:[microct.commands]&lt;br /&gt;
$ p :== @COM:PROC.COM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
these both go into &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ p disk4:[microct.data.0000007.000009]*.ISQ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Launch an editor such as EVE===&lt;br /&gt;
&lt;br /&gt;
On the command line&lt;br /&gt;
&amp;lt;pre&amp;gt;$ edit/display=decwindows/tpu fname.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit a symbol set by Scanco such as AIX===&lt;br /&gt;
&lt;br /&gt;
[[Image:Bones2.jpg|picture_position,left]] &amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Extreme caution!  Explicit permission for this change or similar changes &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be obtained from Dr. Steven Boyd.&lt;br /&gt;
&lt;br /&gt;
Log in as user calibration&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set proc/priv=bypass&lt;br /&gt;
$ cdc (changes to microct_common)&lt;br /&gt;
$ sea *.com aix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit that file which is called &amp;lt;code&amp;gt;microct_setup_common.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Another example&#039;&#039;: To make the backspace/insert keys work properly, edit the &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt; and insert the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set terminal/insert&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anywhere suitable.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a customized button in the session manager===&lt;br /&gt;
&lt;br /&gt;
The session manager part to enable the double-click on the AIM file:&lt;br /&gt;
Session Manager, &#039;Options&#039;, &#039;Menu&#039;, enter new item&lt;br /&gt;
SAP&lt;br /&gt;
with command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@decw$user_defaults:sap$vue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then move that menu point into &#039;Applications&#039; menu.&lt;br /&gt;
Also:&lt;br /&gt;
&#039;Options&#039;, &#039;File types&#039;, Create &#039;AIM&#039; file type.&lt;br /&gt;
Move &#039;rename&#039;, &#039;copy&#039;, &#039;purge&#039; etc. into menu, Select &#039;SAP&#039;, click  on&lt;br /&gt;
&#039;Change double click&#039;, and also move SAP into menu.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Export the VMS display to SUN or LINUX terminal===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# - temple&lt;br /&gt;
$ - sceval&lt;br /&gt;
# xhost +temple.ucalgary.ca&lt;br /&gt;
# ssh -X microct@sceval.ucalgary.ca&lt;br /&gt;
$ set display /create /transport=tcpip /node=temple.ucalgary.ca&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE:&amp;lt;/b&amp;gt; Do not use &amp;lt;code&amp;gt;xhost+&amp;lt;/code&amp;gt;.  Always specific exactly which computer is being&lt;br /&gt;
allowed X access.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Monitor system usage===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ monitor/interval=1 processes/topcpu&lt;br /&gt;
$ monitor/interval=1 system&lt;br /&gt;
$ show error&lt;br /&gt;
$ show system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;show error&amp;lt;/code&amp;gt; may indicate errors.  One or two errors is OK.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Configure the EVE editor===&lt;br /&gt;
&lt;br /&gt;
The following file, called &amp;lt;code&amp;gt;tpu.dat&amp;lt;/code&amp;gt;, should be installed in &amp;lt;code&amp;gt;disk1:[microct.xdefaults]:&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# DECTPU V3.1 1993-04-22 15:50 defaults&lt;br /&gt;
# CHANGED B.KOLLER 21-JUN-90&lt;br /&gt;
#&lt;br /&gt;
# Copyright (c) 1993 Digital Equipment Corporation.  All rights reserved.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
# The following are all the resource names that DECTPU supports.&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Title:		DECTPU Copyright © Digital Equipment Corporation 1992.  All Rights Reserved.&lt;br /&gt;
Tpu.Tpu$MainWindow.ApplicationTitle:	DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.IconName:		DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.X:			610&lt;br /&gt;
Tpu.Tpu$MainWindow.Y:			0&lt;br /&gt;
#&lt;br /&gt;
# The following resource names are commented out so that users can specify&lt;br /&gt;
# *rows and *columns and have DECTPU obey those directives.  If DECTPU finds&lt;br /&gt;
# finds no resource names governing the number of rows and columns it should&lt;br /&gt;
# have, it uses 24 rows and 80 columns.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Columns:	80&lt;br /&gt;
Tpu.Tpu$MainWindow.Rows:	56&lt;br /&gt;
*EVE_MENU_BAR*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmScrollBar*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmDialogShell*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmMenuShell*background:	#ADADADADADAD&lt;br /&gt;
*background:			white&lt;br /&gt;
Tpu*condensedFont: OFF&lt;br /&gt;
Tpu*fontSetSelection: 0&lt;br /&gt;
&lt;br /&gt;
# 0 = big font&lt;br /&gt;
# 1 = little font&lt;br /&gt;
# 2 = GS font (German Standard)&lt;br /&gt;
# 3 = Fine font (used only for non-latin 1 fonts?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scanco System and Setup==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Stop and restart the printer queue===&lt;br /&gt;
&lt;br /&gt;
How to fix the printer queue when hung, not working or giving an error.&lt;br /&gt;
A full printer queue can seriously affect system performance.  &lt;br /&gt;
Be sure that the queue is cleaned up from time to time.&lt;br /&gt;
&lt;br /&gt;
:* Completely remove the queue and re-generate.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ stop/que/reset hpljet&lt;br /&gt;
$ dele/que hpljet&lt;br /&gt;
$ @sys$startup:dcps_hpljet_ip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract patient name from database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will show you sample-name of sample-number 1234&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info -m 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will give you some (stupid) info about meas 1234&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you use this function all the time, put the following into &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uct_info  :== $um:uct_info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then the usage info will even be correct&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract disk usage information===&lt;br /&gt;
&lt;br /&gt;
To look at the RSQs in the database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dir/siz dk0:[microct.data...]*.rsq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
the three dots means all subdirectories.&lt;br /&gt;
&lt;br /&gt;
Other useful commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.rsq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
shows you header.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ fda command file-wildcard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
does a &#039;file do all&#039; of the command on all the given wildcard filenames.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe xxxx | search sys$pipe &amp;quot;patient&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
is the pipe command in VMS.&lt;br /&gt;
&lt;br /&gt;
So all three combined:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe fda ctheader dk0:[microct.data...]*.rsq | search sys$pipe &amp;quot;patient name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or any other field you want to search for!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other ideas&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gives you a file &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; with info in it (leave defaults to get all samples ever scanned, otherwise &#039;zoom&#039; in on some samples.)&lt;br /&gt;
&lt;br /&gt;
Check out the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ help search&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and &amp;lt;code&amp;gt;/match=and&amp;lt;/code&amp;gt;&lt;br /&gt;
or &amp;lt;code&amp;gt;/match=or&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit Scanco &amp;lt;code&amp;gt;SCANCO_SUBMIT_COMMAND&amp;lt;/code&amp;gt; symbol===&lt;br /&gt;
&lt;br /&gt;
*Check the current setting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show sym *submit*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In directory &amp;lt;code&amp;gt;DISK2:[MICROCT]MICROCT_SETUP_USER.COM&amp;lt;/code&amp;gt; add the following line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ SCANCO_SUBMIT_COMMAND :== SUBMIT/NOPRINT/QUE=SYS$SLOW /NOTIFY/LOG=SYS$SCRATCH:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then end session and log in again.  Definition of the symbol in the &lt;br /&gt;
&amp;lt;code&amp;gt;MICRO_SETUP_USER.COM&amp;lt;/code&amp;gt; supersedes the standard setting.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use the new &amp;lt;code&amp;gt;UCT_BACKUP&amp;lt;/code&amp;gt; software===&lt;br /&gt;
&lt;br /&gt;
New Features (i) You can now select multiple samples with the Shift and/or the Ctrl key; and (2) You can use the sample name filter field on top to display only names containing the filter string.&lt;br /&gt;
&lt;br /&gt;
Start the move/copy by clicking on &amp;lt;code&amp;gt;&#039;Start...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;&#039;Script...&#039;&amp;lt;/code&amp;gt; button is for advanced users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Advanced Users:&amp;lt;/b&amp;gt;&lt;br /&gt;
Use of the &#039;Script...&#039; button: this will generate a script,&lt;br /&gt;
&amp;lt;code&amp;gt;sys$scratch:archive.com&amp;lt;/code&amp;gt;,&lt;br /&gt;
that you may submit in batch mode later (e.g. over night) by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command sys$scratch:archive.com/after=23:59&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(In a multi-computer cluster setup, you may want to specify the exact queue name of the computer that has the tape hooked up by giving e.g. &amp;lt;code&amp;gt;/que=sceval_fast&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
Insert a tape, but do NOT mount the tape in the normal program. (If necessary: if it&#039;s a new tape, initialize it as usual). The batch job will be started one minute before midnight in the example above.&lt;br /&gt;
&amp;lt;code&amp;gt;$ show entry&amp;lt;/code&amp;gt; will show you that it is holding until then.&lt;br /&gt;
See &amp;lt;code&amp;gt;$ help submit /after&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$ help dcl_tips date_time example&amp;lt;/code&amp;gt; for more help on this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Little Reminder:&amp;lt;/b&amp;gt;&lt;br /&gt;
While the tape is running and writing to it, DO NOT LOG OUT, DO NOT INTERRUPT THE PROGRAM! This would make that tape unusable from this point on - you could still read from that tape up to this point, but could not add more scans to this tape.&lt;br /&gt;
What to do when tape is full? It then displays some message about continuing on another tape. Hit &amp;lt;code&amp;gt;ctrl/c&amp;lt;/code&amp;gt; to interrupt the program, take a fresh tape, initialize it, select the remaining scans to archive again, hit &amp;lt;code&amp;gt;&#039;start&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
And last but not least: WE STRONGLY URGE YOU TO DO THE WEEKLY BACKUP (SAFETY BACKUP OF USER DISK1 WITH YOUR DATABASES ON IT). Two users DID experience disk crashes last year, and without the weekly backup, you may still have all scans on the data disk (e.g. disk2), but without the databases you cannot tell which scans belong the which sample!&lt;br /&gt;
&lt;br /&gt;
How to do weekly backup: insert &#039;special&#039; weekly backup tape, e.g. week_a, and&lt;br /&gt;
just hit &#039;Full backup to tape&#039;.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Import foreign data into the Scanco database on the VMS system===&lt;br /&gt;
&lt;br /&gt;
Only ISQ files can be imported into the database, however it is possible to convert other types of data into ISQ files (i.e., stacks of BMPs into ISQ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 1:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After transfering your data to the VMS system (use the data disk &amp;lt;code&amp;gt;disk2&amp;lt;/code&amp;gt;, NOT the user disk &amp;lt;code&amp;gt;disk1&amp;lt;/code&amp;gt;), use the IPL commands &amp;lt;code&amp;gt;/import_freeformat&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/read_aim function&amp;lt;/code&amp;gt; to import your data for conversion to an ISQ.&lt;br /&gt;
&lt;br /&gt;
For DICOM files, start IPL and run the &amp;lt;code&amp;gt;/dicom&amp;lt;/code&amp;gt; function to import. For DICOM, if your object is a single 3D file (-multifile false) or many many individual slice files (-multifile true, and give beginning of filenames, and –extension).&lt;br /&gt;
&lt;br /&gt;
There may be requests by IPL to convert your data to &amp;lt;code&amp;gt;signed short&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;signed char&amp;lt;/code&amp;gt; from other data types. Obey these requests and do it by running the &amp;lt;code&amp;gt;/convert_unsigned&amp;lt;/code&amp;gt; function.&lt;br /&gt;
&lt;br /&gt;
Then, write the ISQ file.&lt;br /&gt;
&amp;lt;pre&amp;gt;ipl&amp;gt; toisq in DK0:[MICROCT.DATA]D0000001.ISQ&lt;br /&gt;
    -square           true&lt;br /&gt;
    -original_pos     false&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This writes the ISQ file. &lt;br /&gt;
&amp;lt;b&amp;gt;Remember&amp;lt;/b&amp;gt;, the ISQ name must be 8 characters long (1 character followed by seven digits)!!! The letters and numbers can be chosen freely.&lt;br /&gt;
&lt;br /&gt;
Fill out a log sheet with the original AIM names that were imported, and the resulting ISQ names that were generated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 2: &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a sample in the database and write down the sample and measurement number. Then, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run um:uct_import&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And give the new ISQ file, the new sample-number and check that the feedback is correct (i.e., that the name from the database is matching the name from the ISQ file header).&lt;br /&gt;
&lt;br /&gt;
Operator and controlfile can be left 0 if you want.&lt;br /&gt;
&lt;br /&gt;
Then it changes the sample and measurement number in the ISQ file, makes the correct directory on &amp;lt;code&amp;gt;DK0&amp;lt;/code&amp;gt;, and gives you the line on the screen of how to rename the file to the correct, new directory. Take this line and use it on the command line.  Done!  &lt;br /&gt;
&lt;br /&gt;
You can now use the normal &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; program with this file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you were importing an AIM file, delete the original file as it will have the wrong measurement indexes in its log header. You will have to produce the AIM file again from the ISQ so our database writes the evaluation results into the correct sample fields.&lt;br /&gt;
&lt;br /&gt;
==Project Management==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Example filled out log sheet===&lt;br /&gt;
&lt;br /&gt;
A log sheet, which is always kept near the scanner, must be filled out for&lt;br /&gt;
every measurement on the system.  A blank log sheet is available in the&lt;br /&gt;
Documents section of this Wiki page.&lt;br /&gt;
&lt;br /&gt;
Here is an example log sheet:&lt;br /&gt;
&lt;br /&gt;
::[[Image:Herzog_pic.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Evaluation==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand the morphological parameters===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BV/TV  -&amp;gt; VOX-BV/TV&lt;br /&gt;
BS/BV  -&amp;gt; TRI-BS/BV&lt;br /&gt;
Tb.Th  -&amp;gt; DT-Tb.Th&lt;br /&gt;
Tb.Sp  -&amp;gt; DT-Tb.Sp&lt;br /&gt;
Tb.N   -&amp;gt; DT-Tb.N&lt;br /&gt;
ConnD  -&amp;gt; Conn-Dens&lt;br /&gt;
SMI    -&amp;gt; TRI-SMI&lt;br /&gt;
DA     -&amp;gt; TRI-DA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usually I&#039;d use the names on the left for the plots, but these correspond to the names on the right of the arrow in the Scanco output files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you use the TRI-Tb.Th rather than the DT-Tb.Th*, then you are using the derived (plate-model) morphological parameters.  These are less accurate than the direct parameters.  They are calculated by triangulating the surface (marching cubes) to get BS, and then calculate thickness&lt;br /&gt;
Th = 2 * BV / BS, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mean Values&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mean 1: mean of bone AND marrow --&amp;gt; &#039;apparent density&#039;&lt;br /&gt;
mean 2: mean of what was considered bone only (i.e. what was segmented) &lt;br /&gt;
&#039;bone tissue density&#039;. (so this does depend on threshold a little bit)&lt;br /&gt;
mean 3: empty, or can be used to store mean of cortex, e.g.&lt;br /&gt;
 The function /voxgobj has -region number (zero-based) to goveren which &lt;br /&gt;
 mean value is filled, 1 - 5 (thus region 0 - 4).]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;What you should also know&amp;lt;/b&amp;gt;: because of partial voluming effects, for Mean2, we are DISCARDING the 2 surface voxels of EVERY trabeculae - thus, to get meaningful Mean2, you have to do your scan with the chosen resolution high enough, such that the mean trabeculae is depicted by at the very least 5 pixels, better actually more than 6 pixels thickness. (You can do this check at the end in the XLS sheet: divide DT-Tb.Th* by el-size-mm.x, and you need to get numbers bigger than 6 or 7 or 10 or so.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Start a 3D evaulation from the terminal===&lt;br /&gt;
&lt;br /&gt;
Warning: Do not change &amp;lt;code&amp;gt;uct_evaulation_v4.com&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ipl_fixed_batch_v4.com&amp;lt;/code&amp;gt; in .eval, but only work on your own file (i.e., eval_steve).&lt;br /&gt;
First, an explanation of how the normal evaluation runs by hitting the &#039;Start 3d&#039; button.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_v4.com/para=(xxx,yyy,zzz,…)&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are 8 parameters:&lt;br /&gt;
*P1: number of print outs of our results sheet&lt;br /&gt;
*P2: the ISQ filename&lt;br /&gt;
*P3-5: start x (pos x), y, z&lt;br /&gt;
*P6-8: dim x, y, z&lt;br /&gt;
The parameters p3-p8 come from the white bounding box. The problem is that when you start from the terminal you do not have these. This problem can be overcome by using the &amp;lt;code&amp;gt;isq_to_aim_gobjbox.exe&amp;lt;/code&amp;gt; and then give the relevant parameters. You can &lt;br /&gt;
&amp;lt;code&amp;gt;$ run um: isq_to_aim_gobjbox.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
to see what it&#039;s asking for.&lt;br /&gt;
By using gobjbox you do not need p3-p8. Therefore you can start the evaluation by giving:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_special_josh.com –&lt;br /&gt;
/para=(1,dk0:[microct.data.0000275.0000245]c0000332.ISQ)&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that you can make &amp;lt;code&amp;gt;uct_evaluation_special_josh.com&amp;lt;/code&amp;gt; such that there is no need for P1 (change p2 to p1 in the script, etc).&lt;br /&gt;
[Alternatively to using the gobjbox you could use the normal isq_to_aim, but hard code the dim and pos.]&lt;br /&gt;
Then call whatever IPL files you want to call. Look into &amp;lt;code&amp;gt;fixed_batch_v4&amp;lt;/code&amp;gt; to see how we turn on the database always on the first line of every IPL part, and how we calculate parameters.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use &amp;lt;code&amp;gt;EVAL PROGRAM (Slice Viewer)&amp;lt;/code&amp;gt; without importing ISQ into the database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; It is strongly suggested to properly import that ISQ into the database before you run a full 3D evaluation!  See the appropriate HowTo.&lt;br /&gt;
&lt;br /&gt;
In a terminal, &amp;lt;code&amp;gt;$ def uct_default_isq xxxxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then start the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool (or &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
Hit cancel when asked for a file to read and the default ISQ that was set will be read.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; Only start a 3D evaluation if and only if the sample (patient) and measurement&lt;br /&gt;
index are &amp;lt;b&amp;gt;correct&amp;lt;/b&amp;gt; in the ISQ header!  &lt;br /&gt;
ONLY START A 3D EVALUATION IF AND ONLY IF THE SAMPLE (PATIENT) AND MEASURMENT INDEX ARE *CORRECT* IN THE ISQ HEADER!&lt;br /&gt;
&lt;br /&gt;
===HowTo: Submit a job to the queue===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit/noprint /que=sys$slow ipl_voi_josh_m.com &lt;br /&gt;
  - /log=sys$scratch:test.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract your results from the 3D database===&lt;br /&gt;
&lt;br /&gt;
Assuming you&#039;ve used the scanco_submit_command to initialize your evaluations (either manually or through the uct_evaluation tool) then you can get all of your results stored into a text file that can be easily imported in Excel.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ uct_list&amp;lt;/pre&amp;gt;&lt;br /&gt;
The output text file will be stored in &amp;lt;code&amp;gt;sys$scratch&amp;lt;/code&amp;gt; and you can ftp this to a PC so that it can be imported into excel and further analysis can be performed. &lt;br /&gt;
&lt;br /&gt;
Importing into Excel requires setting a deliminator based on the space.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Tabulate your LOG file results from 3D evaluations===&lt;br /&gt;
&lt;br /&gt;
Only use this if you have not used the standard &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool to generate your 3D evaluations (in which case see the HowTo related to the 3D database).&lt;br /&gt;
You can tabulate the LOG files:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or whatever you want to search for can be stored in a text file&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search/output=sys$scratch:ov.txt xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To search more than one log file, and get the output into one single file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ fda/output=xxx.txt search *.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fda means &#039;file do all&#039; and is a script made by Scanco to do one command (search) on a wildcard of files (*.log). Then put all the ov.txt, tv.txt, name.txt etc. files into excel.&lt;br /&gt;
Josh has made a .com file that does a similar job as described above.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Do cortical midshaft evaluation with moment of inertia calculation===&lt;br /&gt;
&lt;br /&gt;
This explains what happens when you type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; $ midshaft or $ eval_midshaft &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Draw a rough contour in the first of your 20 (or 12 or whatever) slices,&lt;br /&gt;
open the Contouring Sub-window, double-click on the big image, and it&lt;br /&gt;
automatically&lt;br /&gt;
finds the best contour. Then click on &#039;Selection&#039; &#039;Forwards&#039;, then &#039;Iterate&lt;br /&gt;
Forwards&#039;, and it finds the best contour for every of your (about) 20 slices.&lt;br /&gt;
&lt;br /&gt;
Then &#039;cancel&#039; the contouring sub-window, and start the 3D evaluation.&lt;br /&gt;
&lt;br /&gt;
FIRST: set the correct threshold, sigma, support in the file:&lt;br /&gt;
[microct.main]ipl_fixed_batch_midshaft.com (or in [microct.eval])!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Save contours when it asks you). Exit the program.&lt;br /&gt;
&lt;br /&gt;
When you now type $ que in the terminal, you will see some job called&lt;br /&gt;
&#039;uct_evaluation_midshaft&#039;&lt;br /&gt;
(or similar), whereas the trabecular evaluations were called&lt;br /&gt;
&#039;uct_evaluation_v4&#039;.&lt;br /&gt;
Also the .log file in Scratch has the _midshaft name.&lt;br /&gt;
&lt;br /&gt;
I now only calculate the TRI values (Plate Model), and not the direct stuff&lt;br /&gt;
anymore, since for only 20 slices, the truly 3D Tb.Th might be quite off.&lt;br /&gt;
Also, you will see lots of tildes on the result sheets. This is to tell&lt;br /&gt;
you that, if the meas. were trab. bone, those values would only be approximate.&lt;br /&gt;
But now for the cortex, they are actually correct ! (see below for more explan about this)&lt;br /&gt;
&lt;br /&gt;
So I would now use the tildes to check the &#039;excel&#039; table that the operator&lt;br /&gt;
has taken the correct script for the trab. or cort. evaluations for the&lt;br /&gt;
respective measurements !&lt;br /&gt;
&lt;br /&gt;
So what&#039;s the advantage of all this ? Now, also VOX-TV is correct! So VOX-TV&lt;br /&gt;
is the whole area, VOX-BV the doughnut, so TV-BV is the marrow area ! And still,&lt;br /&gt;
TRI-Tb.Th is the cortical thickness. (TRI-TV is NOT correct, because the .gobj&lt;br /&gt;
feature was turned off.)&lt;br /&gt;
&lt;br /&gt;
I say &#039;area&#039; above: depending on how many slices one individual scan has,&lt;br /&gt;
VOX-BV (and VOX-TV) might be different for different scans, so you will HAVE to&lt;br /&gt;
convert the volumes to area again:&lt;br /&gt;
&lt;br /&gt;
volume equals area times height&lt;br /&gt;
--&amp;gt; Bone Area = VOX-BV / height = BV / (dim.z * el_size_mm.z)&lt;br /&gt;
(and same for Total area, of course :-)&lt;br /&gt;
&lt;br /&gt;
All clear ???&lt;br /&gt;
&lt;br /&gt;
If you want porosity of the bone itself:&lt;br /&gt;
&lt;br /&gt;
draw two contours: one around, counter-clockwise, on on the inside, clock-wise&lt;br /&gt;
(thus a &#039;negative&#039;, excluding contour).&lt;br /&gt;
Now, TV will be just that ring area, BV will be the bone within that ring area,&lt;br /&gt;
and BV/TV will be 1 - porosity, thus BV/TV 94% means 6% porosity.&lt;br /&gt;
&lt;br /&gt;
*****************&lt;br /&gt;
&lt;br /&gt;
Application of this script to metaphysis scan (with trab. in middle):&lt;br /&gt;
&lt;br /&gt;
$ midshaft&lt;br /&gt;
draw one contour around the cortex, and in same slices, a NEGATIVE contour on&lt;br /&gt;
the inside (CW contour) to exclude the trab.&lt;br /&gt;
(potentially work with the BP (brake-point) system to be able to morph the&lt;br /&gt;
negative contours, even though there is already a &#039;outer&#039; contour around the&lt;br /&gt;
bone in every slice.)&lt;br /&gt;
&lt;br /&gt;
Start 3D eval, read out the data-base with uct_list.&lt;br /&gt;
&lt;br /&gt;
NB: you CANNOT give that used .gobj a special name such as c0001234_cortex.gobj!&lt;br /&gt;
Only after the eval (or midshaft eval) has finished, you may copy it to a more&lt;br /&gt;
meaningful name - but all of our evaluations are just taking the STANDARD gobj name!&lt;br /&gt;
&lt;br /&gt;
Then afterwards (after renaming or copying the _seg.aim to _cortex.aim, and&lt;br /&gt;
.gobj to _cortex.gobj), you may want to start the very normal eval with normal&lt;br /&gt;
(inner) contours to evaluate the trabecular compartement.&lt;br /&gt;
Remember: the values in our 3D result database then are OVERWRITTEN.&lt;br /&gt;
&lt;br /&gt;
(if you have a whole study, I would recommend to run the $ midshaft for ALL&lt;br /&gt;
samples, $ uct_list to e.g. sys$scratch:mystudy_cortex.txt, rename/copy gobj and&lt;br /&gt;
seg for all, and THEN run the trab. eval for all samples, $ ust_list and you&lt;br /&gt;
have two nice complete xls sheets.)&lt;br /&gt;
&lt;br /&gt;
**********************&lt;br /&gt;
&lt;br /&gt;
More explanations of why the plate model is correct:&lt;br /&gt;
&lt;br /&gt;
Assume a ring (cortex).&lt;br /&gt;
&lt;br /&gt;
Area = thickness * &#039;middle line&#039;.&lt;br /&gt;
&#039;middle line&#039; = average of outer and inner circumference&lt;br /&gt;
--&amp;gt; &#039;middle line&#039; = 0.5 * &#039;bone surface&#039;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; thickness = bone volume * 2 / bone surface.&lt;br /&gt;
&lt;br /&gt;
And this is nothing else but the &#039;plate model&#039; formula for Tb.Th!&lt;br /&gt;
&lt;br /&gt;
nice, no ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And why not just run the &#039;normal trabecular eval&#039;?&lt;br /&gt;
in the &#039;normal&#039; TRI calculation, we are EXCLUDING all surfaces that are created&lt;br /&gt;
artificially by a gobj line that cuts through a trab.&lt;br /&gt;
&lt;br /&gt;
However, for the midshaft, this means: the whole outer (or even inner, if also&lt;br /&gt;
inner contour is there) is SUPPRESSED, because it is touching the gobj line. So&lt;br /&gt;
this is where that midshaft script comes in: it turns off that suppression.&lt;br /&gt;
&lt;br /&gt;
***************&lt;br /&gt;
&lt;br /&gt;
and some explanations, why the direct DT-Tb.Th* is NOT correct for a scan with&lt;br /&gt;
just e.g. 12 slices:&lt;br /&gt;
If we fill the structure with spheres, those spheres should be bounded by the&lt;br /&gt;
width of the cortex, not just by the fact that we only have 12 slices...&lt;br /&gt;
&lt;br /&gt;
(and even more so: We are always doing &#039;aim box&#039; suppression with the spheres: &lt;br /&gt;
if a sphere touches the boundary of the aim box, it is suppressed!&lt;br /&gt;
&lt;br /&gt;
So this is quite crucial for Tb.Sp and Tb.N: to get meaningful Tb.Sp, you would&lt;br /&gt;
need a LOT of slices. Also, then, you cannot have the inner contour - otherwise&lt;br /&gt;
the negative inner contour will delete the Tb.Sp. spheres... &lt;br /&gt;
&lt;br /&gt;
IF you have enough slices, you may opt to turn the /dt_object on again in the&lt;br /&gt;
midshaft script (second half). Then DT-Tb.Th* and TRI-Tb.Th just have a slightly&lt;br /&gt;
different behaviour if there are little pores within the cortex:&lt;br /&gt;
&lt;br /&gt;
TRI: the little pore just adds a little BS, thus the influence is not that big.&lt;br /&gt;
DT: the little pore cuts the thickness sphere in half, thus at that location,&lt;br /&gt;
the thickness is halved.&lt;br /&gt;
&lt;br /&gt;
**************&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The script is also calculating Mean1 and Mean2 now:&lt;br /&gt;
Mean1: &#039;apparent&#039; density, average over whole TV&lt;br /&gt;
Mean2: &#039;tissue&#039; density: average over what was segmented as bone only.&lt;br /&gt;
&lt;br /&gt;
These mean values will be in mg HA/ccm if you have the calibration option for&lt;br /&gt;
bone density installed (and activated for those scans).&lt;br /&gt;
Remember: the bone has to have some soft-tissue (or equivalent) on the inside,&lt;br /&gt;
and preferably also on the outside then.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Assign special 3D evaluation to the uct_evaluation tool===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;: This is for advanced users ONLY.  Do not attempt this without contacting Steve!&lt;br /&gt;
&lt;br /&gt;
This will show how to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt;:&lt;br /&gt;
It is easy to set up multiple .COM files for the 3D evalulation tool, one such set-up is already prepared on your computer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ eval_special&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will do something similar to &amp;lt;code&amp;gt;$ voi&amp;lt;/code&amp;gt; where the normal contour program opens, but if you start the 3D eval, the special script &amp;lt;code&amp;gt;um:uct_evaluation_special.com&amp;lt;/code&amp;gt; is called (associated with eval_special), which then in turn calls &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt;, where you can specify your own set of thresholds, etc.&lt;br /&gt;
&lt;br /&gt;
So it is a daisy chain of files which we will need to follow to set up a special &amp;lt;code&amp;gt;xxx_kyle.com&amp;lt;/code&amp;gt; script, and where ever we encounter &amp;lt;code&amp;gt;_special.com&amp;lt;/code&amp;gt;, we copy and change it to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; you will need to do the following:&lt;br /&gt;
&lt;br /&gt;
*1. Edit &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (double-click on file), please be careful here, it&#039;s very important! (and I hope you have done your &#039;weekly full backup&#039; regularly, so you could always retrieve a good version of login.com...)&lt;br /&gt;
&lt;br /&gt;
*2. Then, towards to bottom and duplicate the line&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_special :== @com:eval_var.com um:uct_evaluation_special.com&amp;lt;/code&amp;gt;&lt;br /&gt;
and change duplicate to&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_kyle    :== @com:eval_var.com um:uct_evaluation_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make this command &amp;lt;code&amp;gt;eval_kyle&amp;lt;/code&amp;gt; available after you login freshly. Save and Exit.&lt;br /&gt;
&lt;br /&gt;
*3. Then go to &amp;lt;code&amp;gt;disk1:[microct.eval]&amp;lt;/code&amp;gt; and copy the file &amp;lt;code&amp;gt;uct_evaluation_special.com&amp;lt;/code&amp;gt; to the name &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt; (&#039;Commands&#039;, &#039;Copy ...&#039;, BUT CLICK ON THE THREE DOTS and give new output name. &lt;br /&gt;
If you do not see the &amp;lt;code&amp;gt;eval_special:&amp;lt;/code&amp;gt; go to terminal, &amp;lt;code&amp;gt;$ dir ue:*special*.com&amp;lt;/code&amp;gt; and take it from the &amp;lt;code&amp;gt;microct_common&amp;lt;/code&amp;gt; directory)&lt;br /&gt;
&lt;br /&gt;
*4. Edit the &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt; file: at the top, change &amp;lt;code&amp;gt;ipl_......_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*5. Copy &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*6. Edit &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; to your liking. If you want &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; to not perform the full evaluation, but only something akin to &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, then, in the steps above, copy &amp;lt;code&amp;gt;uct_eval_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;ipl_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; (thus you take the &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; script as template for the &amp;lt;code&amp;gt;_kyle&amp;lt;/code&amp;gt; script).&lt;br /&gt;
&lt;br /&gt;
*7. Then open a new terminal (&#039;applications&#039;, &#039;decterm&#039;), &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; should work now!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;: When you start the 3D eval, then&lt;br /&gt;
&amp;lt;code&amp;gt;$ que&amp;lt;/code&amp;gt;&lt;br /&gt;
will show you your batch job with your name on it now!&lt;br /&gt;
&lt;br /&gt;
And now a few more explanations how the whole thing works: in all eval programs, hitting &#039;Start 3d&#039; just submits the logical &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$ show log uct_evaluation&amp;lt;/code&amp;gt; shows you that by default, this points to &amp;lt;code&amp;gt;ue:uct_evaluation_v4.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Those little &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;eval_steve&amp;lt;/code&amp;gt; scripts then just temporarily redefine this logical so that a different script is submitted when you &amp;lt;code&amp;gt;&#039;start 3d eval&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
About the &#039;&#039;&#039;corelut eval&#039;&#039;&#039;: Then we start a whole different eval program: the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt;. So, if you set up a &amp;lt;code&amp;gt;eval_steve_c&amp;lt;/code&amp;gt; (or whatever you want to call it): Produce a &amp;lt;code&amp;gt;eval_var_c.com&amp;lt;/code&amp;gt; in the directory commands (maybe copy from microct_common to [microct.commands]), and there, on the last line, instead of starting&lt;br /&gt;
&amp;lt;code&amp;gt;$ uct_evaluation&amp;lt;/code&amp;gt;&lt;br /&gt;
(the normal program), replace by&lt;br /&gt;
&amp;lt;code&amp;gt;$ evalc&amp;lt;/code&amp;gt;&lt;br /&gt;
which starts the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt; - and because the &amp;lt;code&amp;gt;eval_var.com&amp;lt;/code&amp;gt; has over-ridden the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; logical just before, then you are starting different script upon starting 3d eval.&lt;br /&gt;
NB: we have a logical AND a symbol called &amp;lt;code&amp;gt;uct_evalution&amp;lt;/code&amp;gt;. Sorry for confusion. Symbol &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; starts normal &amp;lt;code&amp;gt;eval&amp;lt;/code&amp;gt; program, so this is what you replace by symbol &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt; now).&lt;br /&gt;
&lt;br /&gt;
===HowTo: Convert CT numbers to mg HA/ccm===&lt;br /&gt;
&lt;br /&gt;
The two byte numbers (short) can be converted to mu values by first dividing by mu_scaling which is probably 4096. Then apply the slope and intercept to get mg HA/ccm. A typical slope may be 2.95e+02 and intercept -1.896e+02. &lt;br /&gt;
&lt;br /&gt;
These numbers are available in the AIM header, or the ISQ header (&amp;lt;code&amp;gt;$ run ut:ctheader&amp;lt;/code&amp;gt;).&lt;br /&gt;
The conversion is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mg HA/ccm = (AIM/mu_scaling) * slope + intercept&lt;br /&gt;
mg HA/ccm = (AIM/4096) * 295.494 – 189.695&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!---------------------------------------------------------------------- &lt;br /&gt;
Mu_Scaling                    4096 &lt;br /&gt;
Calibration Data              55 kVp, 200mg HA wedge, 4096 scaling &lt;br /&gt;
Calib. default unit type      2 (Density) &lt;br /&gt;
Density: unit                 mg HA/ccm &lt;br /&gt;
Density: slope                2.95493988e+02 &lt;br /&gt;
Density: intercept            -1.89695007e+02 &lt;br /&gt;
HU: mu water                  0.58200 &lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a list of registered measurements===&lt;br /&gt;
&lt;br /&gt;
:* To generate a list of measurements that are registered in the data base, to determine where backups are stored, or if the data is still on disk:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;$ write_info&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*It asks you for a range of measurement numbers or sample names, and creates &amp;lt;code&amp;gt; sys$scratch:info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix SAP colours when green===&lt;br /&gt;
&lt;br /&gt;
(using the standard gray colourmap), if changing color maps doesn&#039;t help.&lt;br /&gt;
&lt;br /&gt;
:*Menu point &#039;Norm, Default is Bone = 16000.&lt;br /&gt;
&lt;br /&gt;
:*Take max for 32000, or &#039;Adapt slice&#039;.&lt;br /&gt;
&lt;br /&gt;
::Note: Do NOT take &#039;adapt vol&#039; - it will be extremely slow!  Every single mouse-click it re-calculates whole volume...&lt;br /&gt;
&lt;br /&gt;
==Writing Scripts==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Get information about a sample or measurement from database===&lt;br /&gt;
&lt;br /&gt;
The following will create a &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create your own IPL script with some tips===&lt;br /&gt;
&lt;br /&gt;
To make a script that would submit a job to the queue with the command as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you need to create your own IPL file would be translated to the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit /noprint /que=sys$slow ue:IPL_VOI_JOSH_M.COM &lt;br /&gt;
  - /log=sys$scratch:test.log /para=(&#039;aim_file&#039;,&#039;gobj_file&#039;,&#039;seg_file&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The IPL file would look something like this…&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$   if p1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$ 	THEN &lt;br /&gt;
$	write sys$output &amp;quot;Give DK0:[xxx]C0001234_SEG.aim on the line.&amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Or: &amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Type $ scanco_submit_command um:ipl_eval_autostart/para=(dk0:[xxx]c00123_seg.aim) &amp;quot;&lt;br /&gt;
$ 	exit&lt;br /&gt;
$   endif&lt;br /&gt;
$&lt;br /&gt;
$ gobj_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.GOBJ&amp;quot;&lt;br /&gt;
$ aim_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.AIM&amp;quot;&lt;br /&gt;
$&lt;br /&gt;
$!&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some more handy IPL sequences are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then you just need to give meas. number as P1 (and maybe slice range as p2),&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
OR, some nice starts are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P3 .EQS. &amp;quot;&amp;quot;&lt;br /&gt;
$    THEN&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to duplicate&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: New Sample Number from Database&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: New Start Letter of ISQ file&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P4: Optional: Operator Number&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P5: Optional: Controlfile Number&amp;quot;&lt;br /&gt;
$      EXIT&lt;br /&gt;
$    ENDIF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where you say which parameters HAVE to be there (up to p3), and which ones are optional.&lt;br /&gt;
&lt;br /&gt;
All together, the script may look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$    THEN &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to reco&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: Optional: Slice number N or Range M:N. Auto:All&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: Optional: Queue. Auto: sys$slow&amp;quot; &lt;br /&gt;
$      EXIT &lt;br /&gt;
$    ENDIF &lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A &lt;br /&gt;
$ if p3 .eqs. &amp;quot;&amp;quot; then p3 := SYS$SLOW &lt;br /&gt;
$ slices  = p2 &lt;br /&gt;
$ quename = p3 &lt;br /&gt;
$ INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1) &lt;br /&gt;
$ INPUT = INPUT - F$PARSE(INPUT,,,&amp;quot;VERSION&amp;quot;) &lt;br /&gt;
$ logfile = &amp;quot;sys$scratch:RECO_&amp;quot; + f$PARSE(input,,,&amp;quot;NAME&amp;quot;) + &amp;quot;.LOG&amp;quot; &lt;br /&gt;
$ submit/noprint/queue=&#039;quename&#039; uct_reconstruction_file - &lt;br /&gt;
    /para=(&#039;input&#039;,&#039;slices&#039;,&#039;logfile&#039;) &lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;lt;code&amp;gt;uct_reconstruction_file&amp;lt;/code&amp;gt; is a logical that points to &amp;lt;code&amp;gt;um:uct_reconstruction.com&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Logicals are preferred in scripts to make them more universal.&lt;br /&gt;
&lt;br /&gt;
==Errors and Fixes==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix &amp;quot;last slice&amp;quot; error problem when extracting AIM from ISQ===&lt;br /&gt;
&lt;br /&gt;
Sometimes the evaluation script (i.e., voi) converting the ISQ to an AIM fails because it tries to read one slice more than what is available in the ISQ data. The result of this failure is that the 3D analysis appears to fail and no .AIM or _SEG.AIM is created in the data directory. For example, it may have tried to read 261 slices, but there were only 260 slices available.&lt;br /&gt;
The easiest work around is to make sure that the white bounding box in the uct_evaluation program does not include the last slice (largest Z dimension). Scanco is aware of this problem and will fix it in future software releases (V5.2).&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=How_To%27s&amp;diff=276</id>
		<title>How To&#039;s</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=How_To%27s&amp;diff=276"/>
		<updated>2005-09-02T09:14:32Z</updated>

		<summary type="html">&lt;p&gt;Scanco: /* HowTo: Do cortical midshaft evaluation with moment of inertia calculation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=HowTo Library=&lt;br /&gt;
&lt;br /&gt;
==OpenVMS==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Shut down the Alpha stations and start up again===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Do not do this unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
For shutdown&lt;br /&gt;
&lt;br /&gt;
At the login screen, type &amp;quot;shutdown&amp;quot;/no password and hit enter. &lt;br /&gt;
Then, you can turn the computer off at the prompt.&lt;br /&gt;
&lt;br /&gt;
Then, you may turn the disk array off (unplug it as there is no power switch).&lt;br /&gt;
&lt;br /&gt;
After you move the computer, power on the disk array and then the computer.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand difference between &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; is the same as &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;, but only with mcr you can hand over &#039;in-line&#039; parameters to an .exe file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
does not work, but you  have to say&lt;br /&gt;
&amp;lt;pre&amp;gt;$ mcr ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But funnily if you define a symbol in &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ ctheader :== $ut:ctheader.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with just neither run nor mcr, but the &#039;funny&#039; $ sign, then you can also hand over the ISQ name in-line.&lt;br /&gt;
&lt;br /&gt;
Small detail with big effect...&lt;br /&gt;
&lt;br /&gt;
===HowTo: Make commands available to all users with symbols or paths===&lt;br /&gt;
&lt;br /&gt;
DCL$PATH is one way to do that, WE don&#039;t use it...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ def dcl$path disk1:[microct.main],disk1:[microct.util]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, if you type&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ uct_t&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
it will first try to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ @uct_t.com&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
and then&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ r uct_t.exe&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
however, we usually define it by giving full path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ progx :== $disk1:[microct.main]progx.exe&lt;br /&gt;
$ com_proc_x :== @disk1:[microct.main]procedure.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type the shortcut (&#039;symbol&#039; in VMS language)&lt;br /&gt;
&lt;br /&gt;
We use the &#039;cd&#039; to set the default path, you may also use this in your command procedure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;proc.com&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd &#039;p1&#039;&lt;br /&gt;
$ dir *.*/size&lt;br /&gt;
&lt;br /&gt;
$ define COM disk1:[microct.commands]&lt;br /&gt;
$ p :== @COM:PROC.COM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
these both go into &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ p disk4:[microct.data.0000007.000009]*.ISQ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Launch an editor such as EVE===&lt;br /&gt;
&lt;br /&gt;
On the command line&lt;br /&gt;
&amp;lt;pre&amp;gt;$ edit/display=decwindows/tpu fname.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit a symbol set by Scanco such as AIX===&lt;br /&gt;
&lt;br /&gt;
[[Image:Bones2.jpg|picture_position,left]] &amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Extreme caution!  Explicit permission for this change or similar changes &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be obtained from Dr. Steven Boyd.&lt;br /&gt;
&lt;br /&gt;
Log in as user calibration&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set proc/priv=bypass&lt;br /&gt;
$ cdc (changes to microct_common)&lt;br /&gt;
$ sea *.com aix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit that file which is called &amp;lt;code&amp;gt;microct_setup_common.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Another example&#039;&#039;: To make the backspace/insert keys work properly, edit the &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt; and insert the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set terminal/insert&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anywhere suitable.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a customized button in the session manager===&lt;br /&gt;
&lt;br /&gt;
The session manager part to enable the double-click on the AIM file:&lt;br /&gt;
Session Manager, &#039;Options&#039;, &#039;Menu&#039;, enter new item&lt;br /&gt;
SAP&lt;br /&gt;
with command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@decw$user_defaults:sap$vue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then move that menu point into &#039;Applications&#039; menu.&lt;br /&gt;
Also:&lt;br /&gt;
&#039;Options&#039;, &#039;File types&#039;, Create &#039;AIM&#039; file type.&lt;br /&gt;
Move &#039;rename&#039;, &#039;copy&#039;, &#039;purge&#039; etc. into menu, Select &#039;SAP&#039;, click  on&lt;br /&gt;
&#039;Change double click&#039;, and also move SAP into menu.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Export the VMS display to SUN or LINUX terminal===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# - temple&lt;br /&gt;
$ - sceval&lt;br /&gt;
# xhost +temple.ucalgary.ca&lt;br /&gt;
# ssh -X microct@sceval.ucalgary.ca&lt;br /&gt;
$ set display /create /transport=tcpip /node=temple.ucalgary.ca&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE:&amp;lt;/b&amp;gt; Do not use &amp;lt;code&amp;gt;xhost+&amp;lt;/code&amp;gt;.  Always specific exactly which computer is being&lt;br /&gt;
allowed X access.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Monitor system usage===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ monitor/interval=1 processes/topcpu&lt;br /&gt;
$ monitor/interval=1 system&lt;br /&gt;
$ show error&lt;br /&gt;
$ show system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;show error&amp;lt;/code&amp;gt; may indicate errors.  One or two errors is OK.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Configure the EVE editor===&lt;br /&gt;
&lt;br /&gt;
The following file, called &amp;lt;code&amp;gt;tpu.dat&amp;lt;/code&amp;gt;, should be installed in &amp;lt;code&amp;gt;disk1:[microct.xdefaults]:&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# DECTPU V3.1 1993-04-22 15:50 defaults&lt;br /&gt;
# CHANGED B.KOLLER 21-JUN-90&lt;br /&gt;
#&lt;br /&gt;
# Copyright (c) 1993 Digital Equipment Corporation.  All rights reserved.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
# The following are all the resource names that DECTPU supports.&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Title:		DECTPU Copyright © Digital Equipment Corporation 1992.  All Rights Reserved.&lt;br /&gt;
Tpu.Tpu$MainWindow.ApplicationTitle:	DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.IconName:		DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.X:			610&lt;br /&gt;
Tpu.Tpu$MainWindow.Y:			0&lt;br /&gt;
#&lt;br /&gt;
# The following resource names are commented out so that users can specify&lt;br /&gt;
# *rows and *columns and have DECTPU obey those directives.  If DECTPU finds&lt;br /&gt;
# finds no resource names governing the number of rows and columns it should&lt;br /&gt;
# have, it uses 24 rows and 80 columns.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Columns:	80&lt;br /&gt;
Tpu.Tpu$MainWindow.Rows:	56&lt;br /&gt;
*EVE_MENU_BAR*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmScrollBar*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmDialogShell*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmMenuShell*background:	#ADADADADADAD&lt;br /&gt;
*background:			white&lt;br /&gt;
Tpu*condensedFont: OFF&lt;br /&gt;
Tpu*fontSetSelection: 0&lt;br /&gt;
&lt;br /&gt;
# 0 = big font&lt;br /&gt;
# 1 = little font&lt;br /&gt;
# 2 = GS font (German Standard)&lt;br /&gt;
# 3 = Fine font (used only for non-latin 1 fonts?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scanco System and Setup==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Stop and restart the printer queue===&lt;br /&gt;
&lt;br /&gt;
How to fix the printer queue when hung, not working or giving an error.&lt;br /&gt;
A full printer queue can seriously affect system performance.  &lt;br /&gt;
Be sure that the queue is cleaned up from time to time.&lt;br /&gt;
&lt;br /&gt;
:* Completely remove the queue and re-generate.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ stop/que/reset hpljet&lt;br /&gt;
$ dele/que hpljet&lt;br /&gt;
$ @sys$startup:dcps_hpljet_ip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract patient name from database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will show you sample-name of sample-number 1234&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info -m 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will give you some (stupid) info about meas 1234&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you use this function all the time, put the following into &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uct_info  :== $um:uct_info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then the usage info will even be correct&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract disk usage information===&lt;br /&gt;
&lt;br /&gt;
To look at the RSQs in the database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dir/siz dk0:[microct.data...]*.rsq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
the three dots means all subdirectories.&lt;br /&gt;
&lt;br /&gt;
Other useful commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.rsq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
shows you header.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ fda command file-wildcard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
does a &#039;file do all&#039; of the command on all the given wildcard filenames.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe xxxx | search sys$pipe &amp;quot;patient&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
is the pipe command in VMS.&lt;br /&gt;
&lt;br /&gt;
So all three combined:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe fda ctheader dk0:[microct.data...]*.rsq | search sys$pipe &amp;quot;patient name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or any other field you want to search for!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other ideas&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gives you a file &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; with info in it (leave defaults to get all samples ever scanned, otherwise &#039;zoom&#039; in on some samples.)&lt;br /&gt;
&lt;br /&gt;
Check out the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ help search&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and &amp;lt;code&amp;gt;/match=and&amp;lt;/code&amp;gt;&lt;br /&gt;
or &amp;lt;code&amp;gt;/match=or&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit Scanco &amp;lt;code&amp;gt;SCANCO_SUBMIT_COMMAND&amp;lt;/code&amp;gt; symbol===&lt;br /&gt;
&lt;br /&gt;
*Check the current setting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show sym *submit*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In directory &amp;lt;code&amp;gt;DISK2:[MICROCT]MICROCT_SETUP_USER.COM&amp;lt;/code&amp;gt; add the following line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ SCANCO_SUBMIT_COMMAND :== SUBMIT/NOPRINT/QUE=SYS$SLOW /NOTIFY/LOG=SYS$SCRATCH:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then end session and log in again.  Definition of the symbol in the &lt;br /&gt;
&amp;lt;code&amp;gt;MICRO_SETUP_USER.COM&amp;lt;/code&amp;gt; supersedes the standard setting.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use the new &amp;lt;code&amp;gt;UCT_BACKUP&amp;lt;/code&amp;gt; software===&lt;br /&gt;
&lt;br /&gt;
New Features (i) You can now select multiple samples with the Shift and/or the Ctrl key; and (2) You can use the sample name filter field on top to display only names containing the filter string.&lt;br /&gt;
&lt;br /&gt;
Start the move/copy by clicking on &amp;lt;code&amp;gt;&#039;Start...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;&#039;Script...&#039;&amp;lt;/code&amp;gt; button is for advanced users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Advanced Users:&amp;lt;/b&amp;gt;&lt;br /&gt;
Use of the &#039;Script...&#039; button: this will generate a script,&lt;br /&gt;
&amp;lt;code&amp;gt;sys$scratch:archive.com&amp;lt;/code&amp;gt;,&lt;br /&gt;
that you may submit in batch mode later (e.g. over night) by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command sys$scratch:archive.com/after=23:59&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(In a multi-computer cluster setup, you may want to specify the exact queue name of the computer that has the tape hooked up by giving e.g. &amp;lt;code&amp;gt;/que=sceval_fast&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
Insert a tape, but do NOT mount the tape in the normal program. (If necessary: if it&#039;s a new tape, initialize it as usual). The batch job will be started one minute before midnight in the example above.&lt;br /&gt;
&amp;lt;code&amp;gt;$ show entry&amp;lt;/code&amp;gt; will show you that it is holding until then.&lt;br /&gt;
See &amp;lt;code&amp;gt;$ help submit /after&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$ help dcl_tips date_time example&amp;lt;/code&amp;gt; for more help on this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Little Reminder:&amp;lt;/b&amp;gt;&lt;br /&gt;
While the tape is running and writing to it, DO NOT LOG OUT, DO NOT INTERRUPT THE PROGRAM! This would make that tape unusable from this point on - you could still read from that tape up to this point, but could not add more scans to this tape.&lt;br /&gt;
What to do when tape is full? It then displays some message about continuing on another tape. Hit &amp;lt;code&amp;gt;ctrl/c&amp;lt;/code&amp;gt; to interrupt the program, take a fresh tape, initialize it, select the remaining scans to archive again, hit &amp;lt;code&amp;gt;&#039;start&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
And last but not least: WE STRONGLY URGE YOU TO DO THE WEEKLY BACKUP (SAFETY BACKUP OF USER DISK1 WITH YOUR DATABASES ON IT). Two users DID experience disk crashes last year, and without the weekly backup, you may still have all scans on the data disk (e.g. disk2), but without the databases you cannot tell which scans belong the which sample!&lt;br /&gt;
&lt;br /&gt;
How to do weekly backup: insert &#039;special&#039; weekly backup tape, e.g. week_a, and&lt;br /&gt;
just hit &#039;Full backup to tape&#039;.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Import foreign data into the Scanco database on the VMS system===&lt;br /&gt;
&lt;br /&gt;
Only ISQ files can be imported into the database, however it is possible to convert other types of data into ISQ files (i.e., stacks of BMPs into ISQ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 1:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After transfering your data to the VMS system (use the data disk &amp;lt;code&amp;gt;disk2&amp;lt;/code&amp;gt;, NOT the user disk &amp;lt;code&amp;gt;disk1&amp;lt;/code&amp;gt;), use the IPL commands &amp;lt;code&amp;gt;/import_freeformat&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/read_aim function&amp;lt;/code&amp;gt; to import your data for conversion to an ISQ.&lt;br /&gt;
&lt;br /&gt;
For DICOM files, start IPL and run the &amp;lt;code&amp;gt;/dicom&amp;lt;/code&amp;gt; function to import. For DICOM, if your object is a single 3D file (-multifile false) or many many individual slice files (-multifile true, and give beginning of filenames, and –extension).&lt;br /&gt;
&lt;br /&gt;
There may be requests by IPL to convert your data to &amp;lt;code&amp;gt;signed short&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;signed char&amp;lt;/code&amp;gt; from other data types. Obey these requests and do it by running the &amp;lt;code&amp;gt;/convert_unsigned&amp;lt;/code&amp;gt; function.&lt;br /&gt;
&lt;br /&gt;
Then, write the ISQ file.&lt;br /&gt;
&amp;lt;pre&amp;gt;ipl&amp;gt; toisq in DK0:[MICROCT.DATA]D0000001.ISQ&lt;br /&gt;
    -square           true&lt;br /&gt;
    -original_pos     false&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This writes the ISQ file. &lt;br /&gt;
&amp;lt;b&amp;gt;Remember&amp;lt;/b&amp;gt;, the ISQ name must be 8 characters long (1 character followed by seven digits)!!! The letters and numbers can be chosen freely.&lt;br /&gt;
&lt;br /&gt;
Fill out a log sheet with the original AIM names that were imported, and the resulting ISQ names that were generated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 2: &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a sample in the database and write down the sample and measurement number. Then, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run um:uct_import&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And give the new ISQ file, the new sample-number and check that the feedback is correct (i.e., that the name from the database is matching the name from the ISQ file header).&lt;br /&gt;
&lt;br /&gt;
Operator and controlfile can be left 0 if you want.&lt;br /&gt;
&lt;br /&gt;
Then it changes the sample and measurement number in the ISQ file, makes the correct directory on &amp;lt;code&amp;gt;DK0&amp;lt;/code&amp;gt;, and gives you the line on the screen of how to rename the file to the correct, new directory. Take this line and use it on the command line.  Done!  &lt;br /&gt;
&lt;br /&gt;
You can now use the normal &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; program with this file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you were importing an AIM file, delete the original file as it will have the wrong measurement indexes in its log header. You will have to produce the AIM file again from the ISQ so our database writes the evaluation results into the correct sample fields.&lt;br /&gt;
&lt;br /&gt;
==Project Management==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Example filled out log sheet===&lt;br /&gt;
&lt;br /&gt;
A log sheet, which is always kept near the scanner, must be filled out for&lt;br /&gt;
every measurement on the system.  A blank log sheet is available in the&lt;br /&gt;
Documents section of this Wiki page.&lt;br /&gt;
&lt;br /&gt;
Here is an example log sheet:&lt;br /&gt;
&lt;br /&gt;
::[[Image:Herzog_pic.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Evaluation==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand the morphological parameters===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BV/TV  -&amp;gt; VOX-BV/TV&lt;br /&gt;
BS/BV  -&amp;gt; TRI-BS/BV&lt;br /&gt;
Tb.Th  -&amp;gt; DT-Tb.Th&lt;br /&gt;
Tb.Sp  -&amp;gt; DT-Tb.Sp&lt;br /&gt;
Tb.N   -&amp;gt; DT-Tb.N&lt;br /&gt;
ConnD  -&amp;gt; Conn-Dens&lt;br /&gt;
SMI    -&amp;gt; TRI-SMI&lt;br /&gt;
DA     -&amp;gt; TRI-DA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usually I&#039;d use the names on the left for the plots, but these correspond to the names on the right of the arrow in the Scanco output files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you use the TRI-Tb.Th rather than the DT-Tb.Th*, then you are using the derived (plate-model) morphological parameters.  These are less accurate than the direct parameters.  They are calculated by triangulating the surface (marching cubes) to get BS, and then calculate thickness&lt;br /&gt;
Th = 2 * BV / BS, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mean Values&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mean 1: mean of bone AND marrow --&amp;gt; &#039;apparent density&#039;&lt;br /&gt;
mean 2: mean of what was considered bone only (i.e. what was segmented) &lt;br /&gt;
&#039;bone tissue density&#039;. (so this does depend on threshold a little bit)&lt;br /&gt;
mean 3: empty, or can be used to store mean of cortex, e.g.&lt;br /&gt;
 The function /voxgobj has -region number (zero-based) to goveren which &lt;br /&gt;
 mean value is filled, 1 - 5 (thus region 0 - 4).]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;What you should also know&amp;lt;/b&amp;gt;: because of partial voluming effects, for Mean2, we are DISCARDING the 2 surface voxels of EVERY trabeculae - thus, to get meaningful Mean2, you have to do your scan with the chosen resolution high enough, such that the mean trabeculae is depicted by at the very least 5 pixels, better actually more than 6 pixels thickness. (You can do this check at the end in the XLS sheet: divide DT-Tb.Th* by el-size-mm.x, and you need to get numbers bigger than 6 or 7 or 10 or so.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Start a 3D evaulation from the terminal===&lt;br /&gt;
&lt;br /&gt;
Warning: Do not change &amp;lt;code&amp;gt;uct_evaulation_v4.com&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ipl_fixed_batch_v4.com&amp;lt;/code&amp;gt; in .eval, but only work on your own file (i.e., eval_steve).&lt;br /&gt;
First, an explanation of how the normal evaluation runs by hitting the &#039;Start 3d&#039; button.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_v4.com/para=(xxx,yyy,zzz,…)&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are 8 parameters:&lt;br /&gt;
*P1: number of print outs of our results sheet&lt;br /&gt;
*P2: the ISQ filename&lt;br /&gt;
*P3-5: start x (pos x), y, z&lt;br /&gt;
*P6-8: dim x, y, z&lt;br /&gt;
The parameters p3-p8 come from the white bounding box. The problem is that when you start from the terminal you do not have these. This problem can be overcome by using the &amp;lt;code&amp;gt;isq_to_aim_gobjbox.exe&amp;lt;/code&amp;gt; and then give the relevant parameters. You can &lt;br /&gt;
&amp;lt;code&amp;gt;$ run um: isq_to_aim_gobjbox.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
to see what it&#039;s asking for.&lt;br /&gt;
By using gobjbox you do not need p3-p8. Therefore you can start the evaluation by giving:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_special_josh.com –&lt;br /&gt;
/para=(1,dk0:[microct.data.0000275.0000245]c0000332.ISQ)&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that you can make &amp;lt;code&amp;gt;uct_evaluation_special_josh.com&amp;lt;/code&amp;gt; such that there is no need for P1 (change p2 to p1 in the script, etc).&lt;br /&gt;
[Alternatively to using the gobjbox you could use the normal isq_to_aim, but hard code the dim and pos.]&lt;br /&gt;
Then call whatever IPL files you want to call. Look into &amp;lt;code&amp;gt;fixed_batch_v4&amp;lt;/code&amp;gt; to see how we turn on the database always on the first line of every IPL part, and how we calculate parameters.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use &amp;lt;code&amp;gt;EVAL PROGRAM (Slice Viewer)&amp;lt;/code&amp;gt; without importing ISQ into the database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; It is strongly suggested to properly import that ISQ into the database before you run a full 3D evaluation!  See the appropriate HowTo.&lt;br /&gt;
&lt;br /&gt;
In a terminal, &amp;lt;code&amp;gt;$ def uct_default_isq xxxxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then start the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool (or &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
Hit cancel when asked for a file to read and the default ISQ that was set will be read.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; Only start a 3D evaluation if and only if the sample (patient) and measurement&lt;br /&gt;
index are &amp;lt;b&amp;gt;correct&amp;lt;/b&amp;gt; in the ISQ header!  &lt;br /&gt;
ONLY START A 3D EVALUATION IF AND ONLY IF THE SAMPLE (PATIENT) AND MEASURMENT INDEX ARE *CORRECT* IN THE ISQ HEADER!&lt;br /&gt;
&lt;br /&gt;
===HowTo: Submit a job to the queue===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit/noprint /que=sys$slow ipl_voi_josh_m.com &lt;br /&gt;
  - /log=sys$scratch:test.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract your results from the 3D database===&lt;br /&gt;
&lt;br /&gt;
Assuming you&#039;ve used the scanco_submit_command to initialize your evaluations (either manually or through the uct_evaluation tool) then you can get all of your results stored into a text file that can be easily imported in Excel.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ uct_list&amp;lt;/pre&amp;gt;&lt;br /&gt;
The output text file will be stored in &amp;lt;code&amp;gt;sys$scratch&amp;lt;/code&amp;gt; and you can ftp this to a PC so that it can be imported into excel and further analysis can be performed. &lt;br /&gt;
&lt;br /&gt;
Importing into Excel requires setting a deliminator based on the space.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Tabulate your LOG file results from 3D evaluations===&lt;br /&gt;
&lt;br /&gt;
Only use this if you have not used the standard &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool to generate your 3D evaluations (in which case see the HowTo related to the 3D database).&lt;br /&gt;
You can tabulate the LOG files:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or whatever you want to search for can be stored in a text file&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search/output=sys$scratch:ov.txt xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To search more than one log file, and get the output into one single file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ fda/output=xxx.txt search *.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fda means &#039;file do all&#039; and is a script made by Scanco to do one command (search) on a wildcard of files (*.log). Then put all the ov.txt, tv.txt, name.txt etc. files into excel.&lt;br /&gt;
Josh has made a .com file that does a similar job as described above.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Do cortical midshaft evaluation with moment of inertia calculation===&lt;br /&gt;
&lt;br /&gt;
This explains what happens when you type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; $ midshaft or $ eval_midshaft &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Draw a rough contour in the first of your 20 (or 12 or whatever) slices,&lt;br /&gt;
open the Contouring Sub-window, double-click on the big image, and it&lt;br /&gt;
automatically&lt;br /&gt;
finds the best contour. Then click on &#039;Selection&#039; &#039;Forwards&#039;, then &#039;Iterate&lt;br /&gt;
Forwards&#039;, and it finds the best contour for every of your (about) 20 slices.&lt;br /&gt;
&lt;br /&gt;
Then &#039;cancel&#039; the contouring sub-window, and start the 3D evaluation.&lt;br /&gt;
&lt;br /&gt;
FIRST: set the correct threshold, sigma, support in the file:&lt;br /&gt;
[microct.main]ipl_fixed_batch_midshaft.com (or in [microct.eval])!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Save contours when it asks you). Exit the program.&lt;br /&gt;
&lt;br /&gt;
When you now type $ que in the terminal, you will see some job called&lt;br /&gt;
&#039;uct_evaluation_midshaft&#039;&lt;br /&gt;
(or similar), whereas the trabecular evaluations were called&lt;br /&gt;
&#039;uct_evaluation_v4&#039;.&lt;br /&gt;
Also the .log file in Scratch has the _midshaft name.&lt;br /&gt;
&lt;br /&gt;
I now only calculate the TRI values (Plate Model), and not the direct stuff&lt;br /&gt;
anymore, since for only 20 slices, the truly 3D Tb.Th might be quite off.&lt;br /&gt;
Also, you will see lots of tildes on the result sheets. This is to tell&lt;br /&gt;
you that, if the meas. were trab. bone, those values would only be approximate.&lt;br /&gt;
But now for the cortex, they are actually correct ! (see below for more explan about this)&lt;br /&gt;
&lt;br /&gt;
So I would now use the tildes to check the &#039;excel&#039; table that the operator&lt;br /&gt;
has taken the correct script for the trab. or cort. evaluations for the&lt;br /&gt;
respective measurements !&lt;br /&gt;
&lt;br /&gt;
So what&#039;s the advantage of all this ? Now, also VOX-TV is correct! So VOX-TV&lt;br /&gt;
is the whole area, VOX-BV the doughnut, so TV-BV is the marrow area ! And still,&lt;br /&gt;
TRI-Tb.Th is the cortical thickness. (TRI-TV is NOT correct, because the .gobj&lt;br /&gt;
feature was turned off.)&lt;br /&gt;
&lt;br /&gt;
I say &#039;area&#039; above: depending on how many slices one individual scan has,&lt;br /&gt;
VOX-BV (and VOX-TV) might be different for different scans, so you will HAVE to&lt;br /&gt;
convert the volumes to area again:&lt;br /&gt;
&lt;br /&gt;
volume equals area times height&lt;br /&gt;
--&amp;gt; Bone Area = VOX-BV / height = BV / (dim.z * el_size_mm.z)&lt;br /&gt;
(and same for Total area, of course :-)&lt;br /&gt;
&lt;br /&gt;
All clear ???&lt;br /&gt;
&lt;br /&gt;
If you want porosity of the bone itself:&lt;br /&gt;
&lt;br /&gt;
draw two contours: one around, counter-clockwise, on on the inside, clock-wise&lt;br /&gt;
(thus a &#039;negative&#039;, excluding contour).&lt;br /&gt;
Now, TV will be just that ring area, BV will be the bone within that ring area,&lt;br /&gt;
and BV/TV will be 1 - porosity, thus BV/TV 94% means 6% porosity.&lt;br /&gt;
&lt;br /&gt;
*****************&lt;br /&gt;
&lt;br /&gt;
Application of this script to metaphysis scan (with trab. in middle):&lt;br /&gt;
&lt;br /&gt;
$ midshaft&lt;br /&gt;
draw one contour around the cortex, and in same slices, a NEGATIVE contour on&lt;br /&gt;
the inside (CW contour) to exclude the trab.&lt;br /&gt;
(potentially work with the BP (brake-point) system to be able to morph the&lt;br /&gt;
negative contours, even though there is already a &#039;outer&#039; contour around the&lt;br /&gt;
bone in every slice.)&lt;br /&gt;
&lt;br /&gt;
Start 3D eval, read out the data-base with uct_list.&lt;br /&gt;
&lt;br /&gt;
NB: you CANNOT give that used .gobj a special name such as c0001234_cortex.gobj!&lt;br /&gt;
Only after the eval (or midshaft eval) has finished, you may copy it to a more&lt;br /&gt;
meaningful name - but all of our evaluations are just taking the STANDARD gobj name!&lt;br /&gt;
&lt;br /&gt;
Then afterwards (after renaming or copying the _seg.aim to _cortex.aim, and&lt;br /&gt;
.gobj to _cortex.gobj), you may want to start the very normal eval with normal&lt;br /&gt;
(inner) contours to evaluate the trabecular compartement.&lt;br /&gt;
Remember: the values in our 3D result database then are OVERWRITTEN.&lt;br /&gt;
&lt;br /&gt;
(if you have a whole study, I would recommend to run the $ midshaft for ALL&lt;br /&gt;
samples, $ uct_list to e.g. sys$scratch:mystudy_cortex.txt, rename/copy gobj and&lt;br /&gt;
seg for all, and THEN run the trab. eval for all samples, $ ust_list and you&lt;br /&gt;
have two nice complete xls sheets.)&lt;br /&gt;
&lt;br /&gt;
**********************&lt;br /&gt;
&lt;br /&gt;
More explanations of why the plate model is correct:&lt;br /&gt;
&lt;br /&gt;
Assume a ring (cortex).&lt;br /&gt;
&lt;br /&gt;
Area = thickness * &#039;middle line&#039;.&lt;br /&gt;
&#039;middle line&#039; = average of outer and inner circumference&lt;br /&gt;
--&amp;gt; &#039;middle line&#039; = 0.5 * &#039;bone surface&#039;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; thickness = bone volume * 2 / bone surface.&lt;br /&gt;
&lt;br /&gt;
And this is nothing else but the &#039;plate model&#039; formula for Tb.Th!&lt;br /&gt;
&lt;br /&gt;
nice, no ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And why not just run the &#039;normal trabecular eval&#039;?&lt;br /&gt;
in the &#039;normal&#039; TRI calculation, we are EXCLUDING all surfaces that are created&lt;br /&gt;
artificially by a gobj line that cuts through a trab.&lt;br /&gt;
&lt;br /&gt;
However, for the midshaft, this means: the whole outer (or even inner, if also&lt;br /&gt;
inner contour is there) is SUPPRESSED, because it is touching the gobj line. So&lt;br /&gt;
this is where that midshaft script comes in: it turns off that suppression.&lt;br /&gt;
&lt;br /&gt;
***************&lt;br /&gt;
&lt;br /&gt;
and some explanations, why the direct DT-Tb.Th* is NOT correct for a scan with&lt;br /&gt;
just e.g. 12 slices:&lt;br /&gt;
If we fill the structure with spheres, those spheres should be bounded by the&lt;br /&gt;
width of the cortex, not just by the fact that we only have 12 slices...&lt;br /&gt;
&lt;br /&gt;
(and even more so: We are always doing &#039;aim box&#039; suppression with the spheres: &lt;br /&gt;
if a sphere touches the boundary of the aim box, it is suppressed!&lt;br /&gt;
&lt;br /&gt;
So this is quite crucial for Tb.Sp and Tb.N: to get meaningful Tb.Sp, you would&lt;br /&gt;
need a LOT of slices. Also, then, you cannot have the inner contour - otherwise&lt;br /&gt;
the negative inner contour will delete the Tb.Sp. spheres... &lt;br /&gt;
&lt;br /&gt;
IF you have enough slices, you may opt to turn the /dt_object on again in the&lt;br /&gt;
midshaft script (second half). Then DT-Tb.Th* and TRI-Tb.Th just have a slightly&lt;br /&gt;
different behaviour if there are little pores within the cortex:&lt;br /&gt;
&lt;br /&gt;
TRI: the little pore just adds a little BS, thus the influence is not that big.&lt;br /&gt;
DT: the little pore cuts the thickness sphere in half, thus at that location,&lt;br /&gt;
the thickness is halved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
**************&lt;br /&gt;
&lt;br /&gt;
The script is also calculating Mean1 and Mean2 now:&lt;br /&gt;
Mean1: &#039;apparent&#039; density, average over whole TV&lt;br /&gt;
Mean2: &#039;tissue&#039; density: average over what was segmented as bone only.&lt;br /&gt;
&lt;br /&gt;
These mean values will be in mg HA/ccm if you have the calibration option for&lt;br /&gt;
bone density installed (and activated for those scans).&lt;br /&gt;
Remember: the bone has to have some soft-tissue (or equivalent) on the inside,&lt;br /&gt;
and preferably also on the outside then.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Assign special 3D evaluation to the uct_evaluation tool===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;: This is for advanced users ONLY.  Do not attempt this without contacting Steve!&lt;br /&gt;
&lt;br /&gt;
This will show how to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt;:&lt;br /&gt;
It is easy to set up multiple .COM files for the 3D evalulation tool, one such set-up is already prepared on your computer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ eval_special&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will do something similar to &amp;lt;code&amp;gt;$ voi&amp;lt;/code&amp;gt; where the normal contour program opens, but if you start the 3D eval, the special script &amp;lt;code&amp;gt;um:uct_evaluation_special.com&amp;lt;/code&amp;gt; is called (associated with eval_special), which then in turn calls &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt;, where you can specify your own set of thresholds, etc.&lt;br /&gt;
&lt;br /&gt;
So it is a daisy chain of files which we will need to follow to set up a special &amp;lt;code&amp;gt;xxx_kyle.com&amp;lt;/code&amp;gt; script, and where ever we encounter &amp;lt;code&amp;gt;_special.com&amp;lt;/code&amp;gt;, we copy and change it to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; you will need to do the following:&lt;br /&gt;
&lt;br /&gt;
*1. Edit &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (double-click on file), please be careful here, it&#039;s very important! (and I hope you have done your &#039;weekly full backup&#039; regularly, so you could always retrieve a good version of login.com...)&lt;br /&gt;
&lt;br /&gt;
*2. Then, towards to bottom and duplicate the line&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_special :== @com:eval_var.com um:uct_evaluation_special.com&amp;lt;/code&amp;gt;&lt;br /&gt;
and change duplicate to&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_kyle    :== @com:eval_var.com um:uct_evaluation_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make this command &amp;lt;code&amp;gt;eval_kyle&amp;lt;/code&amp;gt; available after you login freshly. Save and Exit.&lt;br /&gt;
&lt;br /&gt;
*3. Then go to &amp;lt;code&amp;gt;disk1:[microct.eval]&amp;lt;/code&amp;gt; and copy the file &amp;lt;code&amp;gt;uct_evaluation_special.com&amp;lt;/code&amp;gt; to the name &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt; (&#039;Commands&#039;, &#039;Copy ...&#039;, BUT CLICK ON THE THREE DOTS and give new output name. &lt;br /&gt;
If you do not see the &amp;lt;code&amp;gt;eval_special:&amp;lt;/code&amp;gt; go to terminal, &amp;lt;code&amp;gt;$ dir ue:*special*.com&amp;lt;/code&amp;gt; and take it from the &amp;lt;code&amp;gt;microct_common&amp;lt;/code&amp;gt; directory)&lt;br /&gt;
&lt;br /&gt;
*4. Edit the &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt; file: at the top, change &amp;lt;code&amp;gt;ipl_......_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*5. Copy &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*6. Edit &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; to your liking. If you want &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; to not perform the full evaluation, but only something akin to &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, then, in the steps above, copy &amp;lt;code&amp;gt;uct_eval_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;ipl_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; (thus you take the &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; script as template for the &amp;lt;code&amp;gt;_kyle&amp;lt;/code&amp;gt; script).&lt;br /&gt;
&lt;br /&gt;
*7. Then open a new terminal (&#039;applications&#039;, &#039;decterm&#039;), &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; should work now!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;: When you start the 3D eval, then&lt;br /&gt;
&amp;lt;code&amp;gt;$ que&amp;lt;/code&amp;gt;&lt;br /&gt;
will show you your batch job with your name on it now!&lt;br /&gt;
&lt;br /&gt;
And now a few more explanations how the whole thing works: in all eval programs, hitting &#039;Start 3d&#039; just submits the logical &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$ show log uct_evaluation&amp;lt;/code&amp;gt; shows you that by default, this points to &amp;lt;code&amp;gt;ue:uct_evaluation_v4.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Those little &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;eval_steve&amp;lt;/code&amp;gt; scripts then just temporarily redefine this logical so that a different script is submitted when you &amp;lt;code&amp;gt;&#039;start 3d eval&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
About the &#039;&#039;&#039;corelut eval&#039;&#039;&#039;: Then we start a whole different eval program: the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt;. So, if you set up a &amp;lt;code&amp;gt;eval_steve_c&amp;lt;/code&amp;gt; (or whatever you want to call it): Produce a &amp;lt;code&amp;gt;eval_var_c.com&amp;lt;/code&amp;gt; in the directory commands (maybe copy from microct_common to [microct.commands]), and there, on the last line, instead of starting&lt;br /&gt;
&amp;lt;code&amp;gt;$ uct_evaluation&amp;lt;/code&amp;gt;&lt;br /&gt;
(the normal program), replace by&lt;br /&gt;
&amp;lt;code&amp;gt;$ evalc&amp;lt;/code&amp;gt;&lt;br /&gt;
which starts the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt; - and because the &amp;lt;code&amp;gt;eval_var.com&amp;lt;/code&amp;gt; has over-ridden the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; logical just before, then you are starting different script upon starting 3d eval.&lt;br /&gt;
NB: we have a logical AND a symbol called &amp;lt;code&amp;gt;uct_evalution&amp;lt;/code&amp;gt;. Sorry for confusion. Symbol &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; starts normal &amp;lt;code&amp;gt;eval&amp;lt;/code&amp;gt; program, so this is what you replace by symbol &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt; now).&lt;br /&gt;
&lt;br /&gt;
===HowTo: Convert CT numbers to mg HA/ccm===&lt;br /&gt;
&lt;br /&gt;
The two byte numbers (short) can be converted to mu values by first dividing by mu_scaling which is probably 4096. Then apply the slope and intercept to get mg HA/ccm. A typical slope may be 2.95e+02 and intercept -1.896e+02. &lt;br /&gt;
&lt;br /&gt;
These numbers are available in the AIM header, or the ISQ header (&amp;lt;code&amp;gt;$ run ut:ctheader&amp;lt;/code&amp;gt;).&lt;br /&gt;
The conversion is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mg HA/ccm = (AIM/mu_scaling) * slope + intercept&lt;br /&gt;
mg HA/ccm = (AIM/4096) * 295.494 – 189.695&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!---------------------------------------------------------------------- &lt;br /&gt;
Mu_Scaling                    4096 &lt;br /&gt;
Calibration Data              55 kVp, 200mg HA wedge, 4096 scaling &lt;br /&gt;
Calib. default unit type      2 (Density) &lt;br /&gt;
Density: unit                 mg HA/ccm &lt;br /&gt;
Density: slope                2.95493988e+02 &lt;br /&gt;
Density: intercept            -1.89695007e+02 &lt;br /&gt;
HU: mu water                  0.58200 &lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a list of registered measurements===&lt;br /&gt;
&lt;br /&gt;
:* To generate a list of measurements that are registered in the data base, to determine where backups are stored, or if the data is still on disk:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;$ write_info&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*It asks you for a range of measurement numbers or sample names, and creates &amp;lt;code&amp;gt; sys$scratch:info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix SAP colours when green===&lt;br /&gt;
&lt;br /&gt;
(using the standard gray colourmap), if changing color maps doesn&#039;t help.&lt;br /&gt;
&lt;br /&gt;
:*Menu point &#039;Norm, Default is Bone = 16000.&lt;br /&gt;
&lt;br /&gt;
:*Take max for 32000, or &#039;Adapt slice&#039;.&lt;br /&gt;
&lt;br /&gt;
::Note: Do NOT take &#039;adapt vol&#039; - it will be extremely slow!  Every single mouse-click it re-calculates whole volume...&lt;br /&gt;
&lt;br /&gt;
==Writing Scripts==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Get information about a sample or measurement from database===&lt;br /&gt;
&lt;br /&gt;
The following will create a &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create your own IPL script with some tips===&lt;br /&gt;
&lt;br /&gt;
To make a script that would submit a job to the queue with the command as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you need to create your own IPL file would be translated to the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit /noprint /que=sys$slow ue:IPL_VOI_JOSH_M.COM &lt;br /&gt;
  - /log=sys$scratch:test.log /para=(&#039;aim_file&#039;,&#039;gobj_file&#039;,&#039;seg_file&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The IPL file would look something like this…&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$   if p1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$ 	THEN &lt;br /&gt;
$	write sys$output &amp;quot;Give DK0:[xxx]C0001234_SEG.aim on the line.&amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Or: &amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Type $ scanco_submit_command um:ipl_eval_autostart/para=(dk0:[xxx]c00123_seg.aim) &amp;quot;&lt;br /&gt;
$ 	exit&lt;br /&gt;
$   endif&lt;br /&gt;
$&lt;br /&gt;
$ gobj_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.GOBJ&amp;quot;&lt;br /&gt;
$ aim_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.AIM&amp;quot;&lt;br /&gt;
$&lt;br /&gt;
$!&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some more handy IPL sequences are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then you just need to give meas. number as P1 (and maybe slice range as p2),&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
OR, some nice starts are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P3 .EQS. &amp;quot;&amp;quot;&lt;br /&gt;
$    THEN&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to duplicate&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: New Sample Number from Database&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: New Start Letter of ISQ file&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P4: Optional: Operator Number&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P5: Optional: Controlfile Number&amp;quot;&lt;br /&gt;
$      EXIT&lt;br /&gt;
$    ENDIF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where you say which parameters HAVE to be there (up to p3), and which ones are optional.&lt;br /&gt;
&lt;br /&gt;
All together, the script may look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$    THEN &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to reco&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: Optional: Slice number N or Range M:N. Auto:All&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: Optional: Queue. Auto: sys$slow&amp;quot; &lt;br /&gt;
$      EXIT &lt;br /&gt;
$    ENDIF &lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A &lt;br /&gt;
$ if p3 .eqs. &amp;quot;&amp;quot; then p3 := SYS$SLOW &lt;br /&gt;
$ slices  = p2 &lt;br /&gt;
$ quename = p3 &lt;br /&gt;
$ INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1) &lt;br /&gt;
$ INPUT = INPUT - F$PARSE(INPUT,,,&amp;quot;VERSION&amp;quot;) &lt;br /&gt;
$ logfile = &amp;quot;sys$scratch:RECO_&amp;quot; + f$PARSE(input,,,&amp;quot;NAME&amp;quot;) + &amp;quot;.LOG&amp;quot; &lt;br /&gt;
$ submit/noprint/queue=&#039;quename&#039; uct_reconstruction_file - &lt;br /&gt;
    /para=(&#039;input&#039;,&#039;slices&#039;,&#039;logfile&#039;) &lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;lt;code&amp;gt;uct_reconstruction_file&amp;lt;/code&amp;gt; is a logical that points to &amp;lt;code&amp;gt;um:uct_reconstruction.com&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Logicals are preferred in scripts to make them more universal.&lt;br /&gt;
&lt;br /&gt;
==Errors and Fixes==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix &amp;quot;last slice&amp;quot; error problem when extracting AIM from ISQ===&lt;br /&gt;
&lt;br /&gt;
Sometimes the evaluation script (i.e., voi) converting the ISQ to an AIM fails because it tries to read one slice more than what is available in the ISQ data. The result of this failure is that the 3D analysis appears to fail and no .AIM or _SEG.AIM is created in the data directory. For example, it may have tried to read 261 slices, but there were only 260 slices available.&lt;br /&gt;
The easiest work around is to make sure that the white bounding box in the uct_evaluation program does not include the last slice (largest Z dimension). Scanco is aware of this problem and will fix it in future software releases (V5.2).&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=How_To%27s&amp;diff=275</id>
		<title>How To&#039;s</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=How_To%27s&amp;diff=275"/>
		<updated>2005-09-02T09:13:37Z</updated>

		<summary type="html">&lt;p&gt;Scanco: /* HowTo: Do cortical midshaft evaluation with moment of inertia calculation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=HowTo Library=&lt;br /&gt;
&lt;br /&gt;
==OpenVMS==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Shut down the Alpha stations and start up again===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Do not do this unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
For shutdown&lt;br /&gt;
&lt;br /&gt;
At the login screen, type &amp;quot;shutdown&amp;quot;/no password and hit enter. &lt;br /&gt;
Then, you can turn the computer off at the prompt.&lt;br /&gt;
&lt;br /&gt;
Then, you may turn the disk array off (unplug it as there is no power switch).&lt;br /&gt;
&lt;br /&gt;
After you move the computer, power on the disk array and then the computer.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand difference between &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; is the same as &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;, but only with mcr you can hand over &#039;in-line&#039; parameters to an .exe file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
does not work, but you  have to say&lt;br /&gt;
&amp;lt;pre&amp;gt;$ mcr ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But funnily if you define a symbol in &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ ctheader :== $ut:ctheader.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with just neither run nor mcr, but the &#039;funny&#039; $ sign, then you can also hand over the ISQ name in-line.&lt;br /&gt;
&lt;br /&gt;
Small detail with big effect...&lt;br /&gt;
&lt;br /&gt;
===HowTo: Make commands available to all users with symbols or paths===&lt;br /&gt;
&lt;br /&gt;
DCL$PATH is one way to do that, WE don&#039;t use it...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ def dcl$path disk1:[microct.main],disk1:[microct.util]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, if you type&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ uct_t&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
it will first try to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ @uct_t.com&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
and then&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ r uct_t.exe&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
however, we usually define it by giving full path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ progx :== $disk1:[microct.main]progx.exe&lt;br /&gt;
$ com_proc_x :== @disk1:[microct.main]procedure.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type the shortcut (&#039;symbol&#039; in VMS language)&lt;br /&gt;
&lt;br /&gt;
We use the &#039;cd&#039; to set the default path, you may also use this in your command procedure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;proc.com&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd &#039;p1&#039;&lt;br /&gt;
$ dir *.*/size&lt;br /&gt;
&lt;br /&gt;
$ define COM disk1:[microct.commands]&lt;br /&gt;
$ p :== @COM:PROC.COM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
these both go into &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ p disk4:[microct.data.0000007.000009]*.ISQ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Launch an editor such as EVE===&lt;br /&gt;
&lt;br /&gt;
On the command line&lt;br /&gt;
&amp;lt;pre&amp;gt;$ edit/display=decwindows/tpu fname.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit a symbol set by Scanco such as AIX===&lt;br /&gt;
&lt;br /&gt;
[[Image:Bones2.jpg|picture_position,left]] &amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Extreme caution!  Explicit permission for this change or similar changes &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be obtained from Dr. Steven Boyd.&lt;br /&gt;
&lt;br /&gt;
Log in as user calibration&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set proc/priv=bypass&lt;br /&gt;
$ cdc (changes to microct_common)&lt;br /&gt;
$ sea *.com aix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit that file which is called &amp;lt;code&amp;gt;microct_setup_common.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Another example&#039;&#039;: To make the backspace/insert keys work properly, edit the &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt; and insert the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set terminal/insert&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anywhere suitable.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a customized button in the session manager===&lt;br /&gt;
&lt;br /&gt;
The session manager part to enable the double-click on the AIM file:&lt;br /&gt;
Session Manager, &#039;Options&#039;, &#039;Menu&#039;, enter new item&lt;br /&gt;
SAP&lt;br /&gt;
with command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@decw$user_defaults:sap$vue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then move that menu point into &#039;Applications&#039; menu.&lt;br /&gt;
Also:&lt;br /&gt;
&#039;Options&#039;, &#039;File types&#039;, Create &#039;AIM&#039; file type.&lt;br /&gt;
Move &#039;rename&#039;, &#039;copy&#039;, &#039;purge&#039; etc. into menu, Select &#039;SAP&#039;, click  on&lt;br /&gt;
&#039;Change double click&#039;, and also move SAP into menu.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Export the VMS display to SUN or LINUX terminal===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# - temple&lt;br /&gt;
$ - sceval&lt;br /&gt;
# xhost +temple.ucalgary.ca&lt;br /&gt;
# ssh -X microct@sceval.ucalgary.ca&lt;br /&gt;
$ set display /create /transport=tcpip /node=temple.ucalgary.ca&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE:&amp;lt;/b&amp;gt; Do not use &amp;lt;code&amp;gt;xhost+&amp;lt;/code&amp;gt;.  Always specific exactly which computer is being&lt;br /&gt;
allowed X access.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Monitor system usage===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ monitor/interval=1 processes/topcpu&lt;br /&gt;
$ monitor/interval=1 system&lt;br /&gt;
$ show error&lt;br /&gt;
$ show system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;show error&amp;lt;/code&amp;gt; may indicate errors.  One or two errors is OK.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Configure the EVE editor===&lt;br /&gt;
&lt;br /&gt;
The following file, called &amp;lt;code&amp;gt;tpu.dat&amp;lt;/code&amp;gt;, should be installed in &amp;lt;code&amp;gt;disk1:[microct.xdefaults]:&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# DECTPU V3.1 1993-04-22 15:50 defaults&lt;br /&gt;
# CHANGED B.KOLLER 21-JUN-90&lt;br /&gt;
#&lt;br /&gt;
# Copyright (c) 1993 Digital Equipment Corporation.  All rights reserved.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
# The following are all the resource names that DECTPU supports.&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Title:		DECTPU Copyright © Digital Equipment Corporation 1992.  All Rights Reserved.&lt;br /&gt;
Tpu.Tpu$MainWindow.ApplicationTitle:	DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.IconName:		DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.X:			610&lt;br /&gt;
Tpu.Tpu$MainWindow.Y:			0&lt;br /&gt;
#&lt;br /&gt;
# The following resource names are commented out so that users can specify&lt;br /&gt;
# *rows and *columns and have DECTPU obey those directives.  If DECTPU finds&lt;br /&gt;
# finds no resource names governing the number of rows and columns it should&lt;br /&gt;
# have, it uses 24 rows and 80 columns.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Columns:	80&lt;br /&gt;
Tpu.Tpu$MainWindow.Rows:	56&lt;br /&gt;
*EVE_MENU_BAR*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmScrollBar*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmDialogShell*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmMenuShell*background:	#ADADADADADAD&lt;br /&gt;
*background:			white&lt;br /&gt;
Tpu*condensedFont: OFF&lt;br /&gt;
Tpu*fontSetSelection: 0&lt;br /&gt;
&lt;br /&gt;
# 0 = big font&lt;br /&gt;
# 1 = little font&lt;br /&gt;
# 2 = GS font (German Standard)&lt;br /&gt;
# 3 = Fine font (used only for non-latin 1 fonts?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scanco System and Setup==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Stop and restart the printer queue===&lt;br /&gt;
&lt;br /&gt;
How to fix the printer queue when hung, not working or giving an error.&lt;br /&gt;
A full printer queue can seriously affect system performance.  &lt;br /&gt;
Be sure that the queue is cleaned up from time to time.&lt;br /&gt;
&lt;br /&gt;
:* Completely remove the queue and re-generate.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ stop/que/reset hpljet&lt;br /&gt;
$ dele/que hpljet&lt;br /&gt;
$ @sys$startup:dcps_hpljet_ip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract patient name from database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will show you sample-name of sample-number 1234&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info -m 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will give you some (stupid) info about meas 1234&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you use this function all the time, put the following into &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uct_info  :== $um:uct_info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then the usage info will even be correct&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract disk usage information===&lt;br /&gt;
&lt;br /&gt;
To look at the RSQs in the database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dir/siz dk0:[microct.data...]*.rsq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
the three dots means all subdirectories.&lt;br /&gt;
&lt;br /&gt;
Other useful commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.rsq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
shows you header.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ fda command file-wildcard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
does a &#039;file do all&#039; of the command on all the given wildcard filenames.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe xxxx | search sys$pipe &amp;quot;patient&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
is the pipe command in VMS.&lt;br /&gt;
&lt;br /&gt;
So all three combined:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe fda ctheader dk0:[microct.data...]*.rsq | search sys$pipe &amp;quot;patient name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or any other field you want to search for!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other ideas&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gives you a file &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; with info in it (leave defaults to get all samples ever scanned, otherwise &#039;zoom&#039; in on some samples.)&lt;br /&gt;
&lt;br /&gt;
Check out the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ help search&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and &amp;lt;code&amp;gt;/match=and&amp;lt;/code&amp;gt;&lt;br /&gt;
or &amp;lt;code&amp;gt;/match=or&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit Scanco &amp;lt;code&amp;gt;SCANCO_SUBMIT_COMMAND&amp;lt;/code&amp;gt; symbol===&lt;br /&gt;
&lt;br /&gt;
*Check the current setting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show sym *submit*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In directory &amp;lt;code&amp;gt;DISK2:[MICROCT]MICROCT_SETUP_USER.COM&amp;lt;/code&amp;gt; add the following line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ SCANCO_SUBMIT_COMMAND :== SUBMIT/NOPRINT/QUE=SYS$SLOW /NOTIFY/LOG=SYS$SCRATCH:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then end session and log in again.  Definition of the symbol in the &lt;br /&gt;
&amp;lt;code&amp;gt;MICRO_SETUP_USER.COM&amp;lt;/code&amp;gt; supersedes the standard setting.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use the new &amp;lt;code&amp;gt;UCT_BACKUP&amp;lt;/code&amp;gt; software===&lt;br /&gt;
&lt;br /&gt;
New Features (i) You can now select multiple samples with the Shift and/or the Ctrl key; and (2) You can use the sample name filter field on top to display only names containing the filter string.&lt;br /&gt;
&lt;br /&gt;
Start the move/copy by clicking on &amp;lt;code&amp;gt;&#039;Start...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;&#039;Script...&#039;&amp;lt;/code&amp;gt; button is for advanced users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Advanced Users:&amp;lt;/b&amp;gt;&lt;br /&gt;
Use of the &#039;Script...&#039; button: this will generate a script,&lt;br /&gt;
&amp;lt;code&amp;gt;sys$scratch:archive.com&amp;lt;/code&amp;gt;,&lt;br /&gt;
that you may submit in batch mode later (e.g. over night) by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command sys$scratch:archive.com/after=23:59&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(In a multi-computer cluster setup, you may want to specify the exact queue name of the computer that has the tape hooked up by giving e.g. &amp;lt;code&amp;gt;/que=sceval_fast&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
Insert a tape, but do NOT mount the tape in the normal program. (If necessary: if it&#039;s a new tape, initialize it as usual). The batch job will be started one minute before midnight in the example above.&lt;br /&gt;
&amp;lt;code&amp;gt;$ show entry&amp;lt;/code&amp;gt; will show you that it is holding until then.&lt;br /&gt;
See &amp;lt;code&amp;gt;$ help submit /after&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$ help dcl_tips date_time example&amp;lt;/code&amp;gt; for more help on this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Little Reminder:&amp;lt;/b&amp;gt;&lt;br /&gt;
While the tape is running and writing to it, DO NOT LOG OUT, DO NOT INTERRUPT THE PROGRAM! This would make that tape unusable from this point on - you could still read from that tape up to this point, but could not add more scans to this tape.&lt;br /&gt;
What to do when tape is full? It then displays some message about continuing on another tape. Hit &amp;lt;code&amp;gt;ctrl/c&amp;lt;/code&amp;gt; to interrupt the program, take a fresh tape, initialize it, select the remaining scans to archive again, hit &amp;lt;code&amp;gt;&#039;start&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
And last but not least: WE STRONGLY URGE YOU TO DO THE WEEKLY BACKUP (SAFETY BACKUP OF USER DISK1 WITH YOUR DATABASES ON IT). Two users DID experience disk crashes last year, and without the weekly backup, you may still have all scans on the data disk (e.g. disk2), but without the databases you cannot tell which scans belong the which sample!&lt;br /&gt;
&lt;br /&gt;
How to do weekly backup: insert &#039;special&#039; weekly backup tape, e.g. week_a, and&lt;br /&gt;
just hit &#039;Full backup to tape&#039;.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Import foreign data into the Scanco database on the VMS system===&lt;br /&gt;
&lt;br /&gt;
Only ISQ files can be imported into the database, however it is possible to convert other types of data into ISQ files (i.e., stacks of BMPs into ISQ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 1:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After transfering your data to the VMS system (use the data disk &amp;lt;code&amp;gt;disk2&amp;lt;/code&amp;gt;, NOT the user disk &amp;lt;code&amp;gt;disk1&amp;lt;/code&amp;gt;), use the IPL commands &amp;lt;code&amp;gt;/import_freeformat&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/read_aim function&amp;lt;/code&amp;gt; to import your data for conversion to an ISQ.&lt;br /&gt;
&lt;br /&gt;
For DICOM files, start IPL and run the &amp;lt;code&amp;gt;/dicom&amp;lt;/code&amp;gt; function to import. For DICOM, if your object is a single 3D file (-multifile false) or many many individual slice files (-multifile true, and give beginning of filenames, and –extension).&lt;br /&gt;
&lt;br /&gt;
There may be requests by IPL to convert your data to &amp;lt;code&amp;gt;signed short&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;signed char&amp;lt;/code&amp;gt; from other data types. Obey these requests and do it by running the &amp;lt;code&amp;gt;/convert_unsigned&amp;lt;/code&amp;gt; function.&lt;br /&gt;
&lt;br /&gt;
Then, write the ISQ file.&lt;br /&gt;
&amp;lt;pre&amp;gt;ipl&amp;gt; toisq in DK0:[MICROCT.DATA]D0000001.ISQ&lt;br /&gt;
    -square           true&lt;br /&gt;
    -original_pos     false&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This writes the ISQ file. &lt;br /&gt;
&amp;lt;b&amp;gt;Remember&amp;lt;/b&amp;gt;, the ISQ name must be 8 characters long (1 character followed by seven digits)!!! The letters and numbers can be chosen freely.&lt;br /&gt;
&lt;br /&gt;
Fill out a log sheet with the original AIM names that were imported, and the resulting ISQ names that were generated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 2: &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a sample in the database and write down the sample and measurement number. Then, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run um:uct_import&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And give the new ISQ file, the new sample-number and check that the feedback is correct (i.e., that the name from the database is matching the name from the ISQ file header).&lt;br /&gt;
&lt;br /&gt;
Operator and controlfile can be left 0 if you want.&lt;br /&gt;
&lt;br /&gt;
Then it changes the sample and measurement number in the ISQ file, makes the correct directory on &amp;lt;code&amp;gt;DK0&amp;lt;/code&amp;gt;, and gives you the line on the screen of how to rename the file to the correct, new directory. Take this line and use it on the command line.  Done!  &lt;br /&gt;
&lt;br /&gt;
You can now use the normal &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; program with this file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you were importing an AIM file, delete the original file as it will have the wrong measurement indexes in its log header. You will have to produce the AIM file again from the ISQ so our database writes the evaluation results into the correct sample fields.&lt;br /&gt;
&lt;br /&gt;
==Project Management==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Example filled out log sheet===&lt;br /&gt;
&lt;br /&gt;
A log sheet, which is always kept near the scanner, must be filled out for&lt;br /&gt;
every measurement on the system.  A blank log sheet is available in the&lt;br /&gt;
Documents section of this Wiki page.&lt;br /&gt;
&lt;br /&gt;
Here is an example log sheet:&lt;br /&gt;
&lt;br /&gt;
::[[Image:Herzog_pic.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Evaluation==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand the morphological parameters===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BV/TV  -&amp;gt; VOX-BV/TV&lt;br /&gt;
BS/BV  -&amp;gt; TRI-BS/BV&lt;br /&gt;
Tb.Th  -&amp;gt; DT-Tb.Th&lt;br /&gt;
Tb.Sp  -&amp;gt; DT-Tb.Sp&lt;br /&gt;
Tb.N   -&amp;gt; DT-Tb.N&lt;br /&gt;
ConnD  -&amp;gt; Conn-Dens&lt;br /&gt;
SMI    -&amp;gt; TRI-SMI&lt;br /&gt;
DA     -&amp;gt; TRI-DA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usually I&#039;d use the names on the left for the plots, but these correspond to the names on the right of the arrow in the Scanco output files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you use the TRI-Tb.Th rather than the DT-Tb.Th*, then you are using the derived (plate-model) morphological parameters.  These are less accurate than the direct parameters.  They are calculated by triangulating the surface (marching cubes) to get BS, and then calculate thickness&lt;br /&gt;
Th = 2 * BV / BS, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mean Values&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mean 1: mean of bone AND marrow --&amp;gt; &#039;apparent density&#039;&lt;br /&gt;
mean 2: mean of what was considered bone only (i.e. what was segmented) &lt;br /&gt;
&#039;bone tissue density&#039;. (so this does depend on threshold a little bit)&lt;br /&gt;
mean 3: empty, or can be used to store mean of cortex, e.g.&lt;br /&gt;
 The function /voxgobj has -region number (zero-based) to goveren which &lt;br /&gt;
 mean value is filled, 1 - 5 (thus region 0 - 4).]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;What you should also know&amp;lt;/b&amp;gt;: because of partial voluming effects, for Mean2, we are DISCARDING the 2 surface voxels of EVERY trabeculae - thus, to get meaningful Mean2, you have to do your scan with the chosen resolution high enough, such that the mean trabeculae is depicted by at the very least 5 pixels, better actually more than 6 pixels thickness. (You can do this check at the end in the XLS sheet: divide DT-Tb.Th* by el-size-mm.x, and you need to get numbers bigger than 6 or 7 or 10 or so.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Start a 3D evaulation from the terminal===&lt;br /&gt;
&lt;br /&gt;
Warning: Do not change &amp;lt;code&amp;gt;uct_evaulation_v4.com&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ipl_fixed_batch_v4.com&amp;lt;/code&amp;gt; in .eval, but only work on your own file (i.e., eval_steve).&lt;br /&gt;
First, an explanation of how the normal evaluation runs by hitting the &#039;Start 3d&#039; button.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_v4.com/para=(xxx,yyy,zzz,…)&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are 8 parameters:&lt;br /&gt;
*P1: number of print outs of our results sheet&lt;br /&gt;
*P2: the ISQ filename&lt;br /&gt;
*P3-5: start x (pos x), y, z&lt;br /&gt;
*P6-8: dim x, y, z&lt;br /&gt;
The parameters p3-p8 come from the white bounding box. The problem is that when you start from the terminal you do not have these. This problem can be overcome by using the &amp;lt;code&amp;gt;isq_to_aim_gobjbox.exe&amp;lt;/code&amp;gt; and then give the relevant parameters. You can &lt;br /&gt;
&amp;lt;code&amp;gt;$ run um: isq_to_aim_gobjbox.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
to see what it&#039;s asking for.&lt;br /&gt;
By using gobjbox you do not need p3-p8. Therefore you can start the evaluation by giving:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_special_josh.com –&lt;br /&gt;
/para=(1,dk0:[microct.data.0000275.0000245]c0000332.ISQ)&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that you can make &amp;lt;code&amp;gt;uct_evaluation_special_josh.com&amp;lt;/code&amp;gt; such that there is no need for P1 (change p2 to p1 in the script, etc).&lt;br /&gt;
[Alternatively to using the gobjbox you could use the normal isq_to_aim, but hard code the dim and pos.]&lt;br /&gt;
Then call whatever IPL files you want to call. Look into &amp;lt;code&amp;gt;fixed_batch_v4&amp;lt;/code&amp;gt; to see how we turn on the database always on the first line of every IPL part, and how we calculate parameters.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use &amp;lt;code&amp;gt;EVAL PROGRAM (Slice Viewer)&amp;lt;/code&amp;gt; without importing ISQ into the database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; It is strongly suggested to properly import that ISQ into the database before you run a full 3D evaluation!  See the appropriate HowTo.&lt;br /&gt;
&lt;br /&gt;
In a terminal, &amp;lt;code&amp;gt;$ def uct_default_isq xxxxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then start the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool (or &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
Hit cancel when asked for a file to read and the default ISQ that was set will be read.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; Only start a 3D evaluation if and only if the sample (patient) and measurement&lt;br /&gt;
index are &amp;lt;b&amp;gt;correct&amp;lt;/b&amp;gt; in the ISQ header!  &lt;br /&gt;
ONLY START A 3D EVALUATION IF AND ONLY IF THE SAMPLE (PATIENT) AND MEASURMENT INDEX ARE *CORRECT* IN THE ISQ HEADER!&lt;br /&gt;
&lt;br /&gt;
===HowTo: Submit a job to the queue===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit/noprint /que=sys$slow ipl_voi_josh_m.com &lt;br /&gt;
  - /log=sys$scratch:test.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract your results from the 3D database===&lt;br /&gt;
&lt;br /&gt;
Assuming you&#039;ve used the scanco_submit_command to initialize your evaluations (either manually or through the uct_evaluation tool) then you can get all of your results stored into a text file that can be easily imported in Excel.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ uct_list&amp;lt;/pre&amp;gt;&lt;br /&gt;
The output text file will be stored in &amp;lt;code&amp;gt;sys$scratch&amp;lt;/code&amp;gt; and you can ftp this to a PC so that it can be imported into excel and further analysis can be performed. &lt;br /&gt;
&lt;br /&gt;
Importing into Excel requires setting a deliminator based on the space.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Tabulate your LOG file results from 3D evaluations===&lt;br /&gt;
&lt;br /&gt;
Only use this if you have not used the standard &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool to generate your 3D evaluations (in which case see the HowTo related to the 3D database).&lt;br /&gt;
You can tabulate the LOG files:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or whatever you want to search for can be stored in a text file&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search/output=sys$scratch:ov.txt xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To search more than one log file, and get the output into one single file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ fda/output=xxx.txt search *.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fda means &#039;file do all&#039; and is a script made by Scanco to do one command (search) on a wildcard of files (*.log). Then put all the ov.txt, tv.txt, name.txt etc. files into excel.&lt;br /&gt;
Josh has made a .com file that does a similar job as described above.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Do cortical midshaft evaluation with moment of inertia calculation===&lt;br /&gt;
&lt;br /&gt;
This explains what happens when you type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; $ midshaft or $ eval_midshaft &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Draw a rough contour in the first of your 20 (or 12 or whatever) slices,&lt;br /&gt;
open the Contouring Sub-window, double-click on the big image, and it&lt;br /&gt;
automatically&lt;br /&gt;
finds the best contour. Then click on &#039;Selection&#039; &#039;Forwards&#039;, then &#039;Iterate&lt;br /&gt;
Forwards&#039;, and it finds the best contour for every of your (about) 20 slices.&lt;br /&gt;
&lt;br /&gt;
Then &#039;cancel&#039; the contouring sub-window, and start the 3D evaluation.&lt;br /&gt;
&lt;br /&gt;
FIRST: set the correct threshold, sigma, support in the file:&lt;br /&gt;
[microct.main]ipl_fixed_batch_midshaft.com (or in [microct.eval])!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Save contours when it asks you). Exit the program.&lt;br /&gt;
&lt;br /&gt;
When you now type $ que in the terminal, you will see some job called&lt;br /&gt;
&#039;uct_evaluation_midshaft&#039;&lt;br /&gt;
(or similar), whereas the trabecular evaluations were called&lt;br /&gt;
&#039;uct_evaluation_v4&#039;.&lt;br /&gt;
Also the .log file in Scratch has the _midshaft name.&lt;br /&gt;
&lt;br /&gt;
I now only calculate the TRI values (Plate Model), and not the direct stuff&lt;br /&gt;
anymore, since for only 20 slices, the truly 3D Tb.Th might be quite off.&lt;br /&gt;
Also, you will see lots of tildes on the result sheets. This is to tell&lt;br /&gt;
you that, if the meas. were trab. bone, those values would only be approximate.&lt;br /&gt;
But now for the cortex, they are actually correct ! (see below for more explan about this)&lt;br /&gt;
&lt;br /&gt;
So I would now use the tildes to check the &#039;excel&#039; table that the operator&lt;br /&gt;
has taken the correct script for the trab. or cort. evaluations for the&lt;br /&gt;
respective measurements !&lt;br /&gt;
&lt;br /&gt;
So what&#039;s the advantage of all this ? Now, also VOX-TV is correct! So VOX-TV&lt;br /&gt;
is the whole area, VOX-BV the doughnut, so TV-BV is the marrow area ! And still,&lt;br /&gt;
TRI-Tb.Th is the cortical thickness. (TRI-TV is NOT correct, because the .gobj&lt;br /&gt;
feature was turned off.)&lt;br /&gt;
&lt;br /&gt;
I say &#039;area&#039; above: depending on how many slices one individual scan has,&lt;br /&gt;
VOX-BV (and VOX-TV) might be different for different scans, so you will HAVE to&lt;br /&gt;
convert the volumes to area again:&lt;br /&gt;
&lt;br /&gt;
volume equals area times height&lt;br /&gt;
--&amp;gt; Bone Area = VOX-BV / height = BV / (dim.z * el_size_mm.z)&lt;br /&gt;
(and same for Total area, of course :-)&lt;br /&gt;
&lt;br /&gt;
All clear ???&lt;br /&gt;
&lt;br /&gt;
If you want porosity of the bone itself:&lt;br /&gt;
&lt;br /&gt;
draw two contours: one around, counter-clockwise, on on the inside, clock-wise&lt;br /&gt;
(thus a &#039;negative&#039;, excluding contour).&lt;br /&gt;
Now, TV will be just that ring area, BV will be the bone within that ring area,&lt;br /&gt;
and BV/TV will be 1 - porosity, thus BV/TV 94% means 6% porosity.&lt;br /&gt;
&lt;br /&gt;
*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
Application of this script to metaphysis scan (with trab. in middle):&lt;br /&gt;
&lt;br /&gt;
$ midshaft&lt;br /&gt;
draw one contour around the cortex, and in same slices, a NEGATIVE contour on&lt;br /&gt;
the inside (CW contour) to exclude the trab.&lt;br /&gt;
(potentially work with the BP (brake-point) system to be able to morph the&lt;br /&gt;
negative contours, even though there is already a &#039;outer&#039; contour around the&lt;br /&gt;
bone in every slice.)&lt;br /&gt;
&lt;br /&gt;
Start 3D eval, read out the data-base with uct_list.&lt;br /&gt;
&lt;br /&gt;
NB: you CANNOT give that used .gobj a special name such as c0001234_cortex.gobj!&lt;br /&gt;
Only after the eval (or midshaft eval) has finished, you may copy it to a more&lt;br /&gt;
meaningful name - but all of our evaluations are just taking the STANDARD gobj name!&lt;br /&gt;
&lt;br /&gt;
Then afterwards (after renaming or copying the _seg.aim to _cortex.aim, and&lt;br /&gt;
.gobj to _cortex.gobj), you may want to start the very normal eval with normal&lt;br /&gt;
(inner) contours to evaluate the trabecular compartement.&lt;br /&gt;
Remember: the values in our 3D result database then are OVERWRITTEN.&lt;br /&gt;
&lt;br /&gt;
(if you have a whole study, I would recommend to run the $ midshaft for ALL&lt;br /&gt;
samples, $ uct_list to e.g. sys$scratch:mystudy_cortex.txt, rename/copy gobj and&lt;br /&gt;
seg for all, and THEN run the trab. eval for all samples, $ ust_list and you&lt;br /&gt;
have two nice complete xls sheets.)&lt;br /&gt;
&lt;br /&gt;
******************************************************************************&lt;br /&gt;
&lt;br /&gt;
More explanations of why the plate model is correct:&lt;br /&gt;
&lt;br /&gt;
Assume a ring (cortex).&lt;br /&gt;
&lt;br /&gt;
Area = thickness * &#039;middle line&#039;.&lt;br /&gt;
&#039;middle line&#039; = average of outer and inner circumference&lt;br /&gt;
--&amp;gt; &#039;middle line&#039; = 0.5 * &#039;bone surface&#039;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; thickness = bone volume * 2 / bone surface.&lt;br /&gt;
&lt;br /&gt;
And this is nothing else but the &#039;plate model&#039; formula for Tb.Th!&lt;br /&gt;
&lt;br /&gt;
nice, no ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And why not just run the &#039;normal trabecular eval&#039;?&lt;br /&gt;
in the &#039;normal&#039; TRI calculation, we are EXCLUDING all surfaces that are created&lt;br /&gt;
artificially by a gobj line that cuts through a trab.&lt;br /&gt;
&lt;br /&gt;
However, for the midshaft, this means: the whole outer (or even inner, if also&lt;br /&gt;
inner contour is there) is SUPPRESSED, because it is touching the gobj line. So&lt;br /&gt;
this is where that midshaft script comes in: it turns off that suppression.&lt;br /&gt;
&lt;br /&gt;
*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
and some explanations, why the direct DT-Tb.Th* is NOT correct for a scan with&lt;br /&gt;
just e.g. 12 slices:&lt;br /&gt;
If we fill the structure with spheres, those spheres should be bounded by the&lt;br /&gt;
width of the cortex, not just by the fact that we only have 12 slices...&lt;br /&gt;
&lt;br /&gt;
(and even more so: We are always doing &#039;aim box&#039; suppression with the spheres: &lt;br /&gt;
if a sphere touches the boundary of the aim box, it is suppressed!&lt;br /&gt;
&lt;br /&gt;
So this is quite crucial for Tb.Sp and Tb.N: to get meaningful Tb.Sp, you would&lt;br /&gt;
need a LOT of slices. Also, then, you cannot have the inner contour - otherwise&lt;br /&gt;
the negative inner contour will delete the Tb.Sp. spheres... &lt;br /&gt;
&lt;br /&gt;
IF you have enough slices, you may opt to turn the /dt_object on again in the&lt;br /&gt;
midshaft script (second half). Then DT-Tb.Th* and TRI-Tb.Th just have a slightly&lt;br /&gt;
different behaviour if there are little pores within the cortex:&lt;br /&gt;
&lt;br /&gt;
TRI: the little pore just adds a little BS, thus the influence is not that big.&lt;br /&gt;
DT: the little pore cuts the thickness sphere in half, thus at that location,&lt;br /&gt;
the thickness is halved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*********************************************************************************&lt;br /&gt;
&lt;br /&gt;
The script is also calculating Mean1 and Mean2 now:&lt;br /&gt;
Mean1: &#039;apparent&#039; density, average over whole TV&lt;br /&gt;
Mean2: &#039;tissue&#039; density: average over what was segmented as bone only.&lt;br /&gt;
&lt;br /&gt;
These mean values will be in mg HA/ccm if you have the calibration option for&lt;br /&gt;
bone density installed (and activated for those scans).&lt;br /&gt;
Remember: the bone has to have some soft-tissue (or equivalent) on the inside,&lt;br /&gt;
and preferably also on the outside then.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Assign special 3D evaluation to the uct_evaluation tool===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;: This is for advanced users ONLY.  Do not attempt this without contacting Steve!&lt;br /&gt;
&lt;br /&gt;
This will show how to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt;:&lt;br /&gt;
It is easy to set up multiple .COM files for the 3D evalulation tool, one such set-up is already prepared on your computer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ eval_special&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will do something similar to &amp;lt;code&amp;gt;$ voi&amp;lt;/code&amp;gt; where the normal contour program opens, but if you start the 3D eval, the special script &amp;lt;code&amp;gt;um:uct_evaluation_special.com&amp;lt;/code&amp;gt; is called (associated with eval_special), which then in turn calls &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt;, where you can specify your own set of thresholds, etc.&lt;br /&gt;
&lt;br /&gt;
So it is a daisy chain of files which we will need to follow to set up a special &amp;lt;code&amp;gt;xxx_kyle.com&amp;lt;/code&amp;gt; script, and where ever we encounter &amp;lt;code&amp;gt;_special.com&amp;lt;/code&amp;gt;, we copy and change it to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; you will need to do the following:&lt;br /&gt;
&lt;br /&gt;
*1. Edit &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (double-click on file), please be careful here, it&#039;s very important! (and I hope you have done your &#039;weekly full backup&#039; regularly, so you could always retrieve a good version of login.com...)&lt;br /&gt;
&lt;br /&gt;
*2. Then, towards to bottom and duplicate the line&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_special :== @com:eval_var.com um:uct_evaluation_special.com&amp;lt;/code&amp;gt;&lt;br /&gt;
and change duplicate to&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_kyle    :== @com:eval_var.com um:uct_evaluation_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make this command &amp;lt;code&amp;gt;eval_kyle&amp;lt;/code&amp;gt; available after you login freshly. Save and Exit.&lt;br /&gt;
&lt;br /&gt;
*3. Then go to &amp;lt;code&amp;gt;disk1:[microct.eval]&amp;lt;/code&amp;gt; and copy the file &amp;lt;code&amp;gt;uct_evaluation_special.com&amp;lt;/code&amp;gt; to the name &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt; (&#039;Commands&#039;, &#039;Copy ...&#039;, BUT CLICK ON THE THREE DOTS and give new output name. &lt;br /&gt;
If you do not see the &amp;lt;code&amp;gt;eval_special:&amp;lt;/code&amp;gt; go to terminal, &amp;lt;code&amp;gt;$ dir ue:*special*.com&amp;lt;/code&amp;gt; and take it from the &amp;lt;code&amp;gt;microct_common&amp;lt;/code&amp;gt; directory)&lt;br /&gt;
&lt;br /&gt;
*4. Edit the &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt; file: at the top, change &amp;lt;code&amp;gt;ipl_......_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*5. Copy &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*6. Edit &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; to your liking. If you want &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; to not perform the full evaluation, but only something akin to &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, then, in the steps above, copy &amp;lt;code&amp;gt;uct_eval_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;ipl_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; (thus you take the &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; script as template for the &amp;lt;code&amp;gt;_kyle&amp;lt;/code&amp;gt; script).&lt;br /&gt;
&lt;br /&gt;
*7. Then open a new terminal (&#039;applications&#039;, &#039;decterm&#039;), &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; should work now!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;: When you start the 3D eval, then&lt;br /&gt;
&amp;lt;code&amp;gt;$ que&amp;lt;/code&amp;gt;&lt;br /&gt;
will show you your batch job with your name on it now!&lt;br /&gt;
&lt;br /&gt;
And now a few more explanations how the whole thing works: in all eval programs, hitting &#039;Start 3d&#039; just submits the logical &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$ show log uct_evaluation&amp;lt;/code&amp;gt; shows you that by default, this points to &amp;lt;code&amp;gt;ue:uct_evaluation_v4.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Those little &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;eval_steve&amp;lt;/code&amp;gt; scripts then just temporarily redefine this logical so that a different script is submitted when you &amp;lt;code&amp;gt;&#039;start 3d eval&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
About the &#039;&#039;&#039;corelut eval&#039;&#039;&#039;: Then we start a whole different eval program: the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt;. So, if you set up a &amp;lt;code&amp;gt;eval_steve_c&amp;lt;/code&amp;gt; (or whatever you want to call it): Produce a &amp;lt;code&amp;gt;eval_var_c.com&amp;lt;/code&amp;gt; in the directory commands (maybe copy from microct_common to [microct.commands]), and there, on the last line, instead of starting&lt;br /&gt;
&amp;lt;code&amp;gt;$ uct_evaluation&amp;lt;/code&amp;gt;&lt;br /&gt;
(the normal program), replace by&lt;br /&gt;
&amp;lt;code&amp;gt;$ evalc&amp;lt;/code&amp;gt;&lt;br /&gt;
which starts the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt; - and because the &amp;lt;code&amp;gt;eval_var.com&amp;lt;/code&amp;gt; has over-ridden the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; logical just before, then you are starting different script upon starting 3d eval.&lt;br /&gt;
NB: we have a logical AND a symbol called &amp;lt;code&amp;gt;uct_evalution&amp;lt;/code&amp;gt;. Sorry for confusion. Symbol &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; starts normal &amp;lt;code&amp;gt;eval&amp;lt;/code&amp;gt; program, so this is what you replace by symbol &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt; now).&lt;br /&gt;
&lt;br /&gt;
===HowTo: Convert CT numbers to mg HA/ccm===&lt;br /&gt;
&lt;br /&gt;
The two byte numbers (short) can be converted to mu values by first dividing by mu_scaling which is probably 4096. Then apply the slope and intercept to get mg HA/ccm. A typical slope may be 2.95e+02 and intercept -1.896e+02. &lt;br /&gt;
&lt;br /&gt;
These numbers are available in the AIM header, or the ISQ header (&amp;lt;code&amp;gt;$ run ut:ctheader&amp;lt;/code&amp;gt;).&lt;br /&gt;
The conversion is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mg HA/ccm = (AIM/mu_scaling) * slope + intercept&lt;br /&gt;
mg HA/ccm = (AIM/4096) * 295.494 – 189.695&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!---------------------------------------------------------------------- &lt;br /&gt;
Mu_Scaling                    4096 &lt;br /&gt;
Calibration Data              55 kVp, 200mg HA wedge, 4096 scaling &lt;br /&gt;
Calib. default unit type      2 (Density) &lt;br /&gt;
Density: unit                 mg HA/ccm &lt;br /&gt;
Density: slope                2.95493988e+02 &lt;br /&gt;
Density: intercept            -1.89695007e+02 &lt;br /&gt;
HU: mu water                  0.58200 &lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a list of registered measurements===&lt;br /&gt;
&lt;br /&gt;
:* To generate a list of measurements that are registered in the data base, to determine where backups are stored, or if the data is still on disk:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;$ write_info&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*It asks you for a range of measurement numbers or sample names, and creates &amp;lt;code&amp;gt; sys$scratch:info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix SAP colours when green===&lt;br /&gt;
&lt;br /&gt;
(using the standard gray colourmap), if changing color maps doesn&#039;t help.&lt;br /&gt;
&lt;br /&gt;
:*Menu point &#039;Norm, Default is Bone = 16000.&lt;br /&gt;
&lt;br /&gt;
:*Take max for 32000, or &#039;Adapt slice&#039;.&lt;br /&gt;
&lt;br /&gt;
::Note: Do NOT take &#039;adapt vol&#039; - it will be extremely slow!  Every single mouse-click it re-calculates whole volume...&lt;br /&gt;
&lt;br /&gt;
==Writing Scripts==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Get information about a sample or measurement from database===&lt;br /&gt;
&lt;br /&gt;
The following will create a &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create your own IPL script with some tips===&lt;br /&gt;
&lt;br /&gt;
To make a script that would submit a job to the queue with the command as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you need to create your own IPL file would be translated to the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit /noprint /que=sys$slow ue:IPL_VOI_JOSH_M.COM &lt;br /&gt;
  - /log=sys$scratch:test.log /para=(&#039;aim_file&#039;,&#039;gobj_file&#039;,&#039;seg_file&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The IPL file would look something like this…&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$   if p1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$ 	THEN &lt;br /&gt;
$	write sys$output &amp;quot;Give DK0:[xxx]C0001234_SEG.aim on the line.&amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Or: &amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Type $ scanco_submit_command um:ipl_eval_autostart/para=(dk0:[xxx]c00123_seg.aim) &amp;quot;&lt;br /&gt;
$ 	exit&lt;br /&gt;
$   endif&lt;br /&gt;
$&lt;br /&gt;
$ gobj_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.GOBJ&amp;quot;&lt;br /&gt;
$ aim_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.AIM&amp;quot;&lt;br /&gt;
$&lt;br /&gt;
$!&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some more handy IPL sequences are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then you just need to give meas. number as P1 (and maybe slice range as p2),&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
OR, some nice starts are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P3 .EQS. &amp;quot;&amp;quot;&lt;br /&gt;
$    THEN&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to duplicate&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: New Sample Number from Database&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: New Start Letter of ISQ file&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P4: Optional: Operator Number&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P5: Optional: Controlfile Number&amp;quot;&lt;br /&gt;
$      EXIT&lt;br /&gt;
$    ENDIF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where you say which parameters HAVE to be there (up to p3), and which ones are optional.&lt;br /&gt;
&lt;br /&gt;
All together, the script may look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$    THEN &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to reco&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: Optional: Slice number N or Range M:N. Auto:All&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: Optional: Queue. Auto: sys$slow&amp;quot; &lt;br /&gt;
$      EXIT &lt;br /&gt;
$    ENDIF &lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A &lt;br /&gt;
$ if p3 .eqs. &amp;quot;&amp;quot; then p3 := SYS$SLOW &lt;br /&gt;
$ slices  = p2 &lt;br /&gt;
$ quename = p3 &lt;br /&gt;
$ INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1) &lt;br /&gt;
$ INPUT = INPUT - F$PARSE(INPUT,,,&amp;quot;VERSION&amp;quot;) &lt;br /&gt;
$ logfile = &amp;quot;sys$scratch:RECO_&amp;quot; + f$PARSE(input,,,&amp;quot;NAME&amp;quot;) + &amp;quot;.LOG&amp;quot; &lt;br /&gt;
$ submit/noprint/queue=&#039;quename&#039; uct_reconstruction_file - &lt;br /&gt;
    /para=(&#039;input&#039;,&#039;slices&#039;,&#039;logfile&#039;) &lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;lt;code&amp;gt;uct_reconstruction_file&amp;lt;/code&amp;gt; is a logical that points to &amp;lt;code&amp;gt;um:uct_reconstruction.com&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Logicals are preferred in scripts to make them more universal.&lt;br /&gt;
&lt;br /&gt;
==Errors and Fixes==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix &amp;quot;last slice&amp;quot; error problem when extracting AIM from ISQ===&lt;br /&gt;
&lt;br /&gt;
Sometimes the evaluation script (i.e., voi) converting the ISQ to an AIM fails because it tries to read one slice more than what is available in the ISQ data. The result of this failure is that the 3D analysis appears to fail and no .AIM or _SEG.AIM is created in the data directory. For example, it may have tried to read 261 slices, but there were only 260 slices available.&lt;br /&gt;
The easiest work around is to make sure that the white bounding box in the uct_evaluation program does not include the last slice (largest Z dimension). Scanco is aware of this problem and will fix it in future software releases (V5.2).&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=How_To%27s&amp;diff=274</id>
		<title>How To&#039;s</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=How_To%27s&amp;diff=274"/>
		<updated>2005-09-02T09:12:49Z</updated>

		<summary type="html">&lt;p&gt;Scanco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=HowTo Library=&lt;br /&gt;
&lt;br /&gt;
==OpenVMS==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Shut down the Alpha stations and start up again===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Do not do this unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
For shutdown&lt;br /&gt;
&lt;br /&gt;
At the login screen, type &amp;quot;shutdown&amp;quot;/no password and hit enter. &lt;br /&gt;
Then, you can turn the computer off at the prompt.&lt;br /&gt;
&lt;br /&gt;
Then, you may turn the disk array off (unplug it as there is no power switch).&lt;br /&gt;
&lt;br /&gt;
After you move the computer, power on the disk array and then the computer.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand difference between &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; is the same as &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;, but only with mcr you can hand over &#039;in-line&#039; parameters to an .exe file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
does not work, but you  have to say&lt;br /&gt;
&amp;lt;pre&amp;gt;$ mcr ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But funnily if you define a symbol in &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ ctheader :== $ut:ctheader.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with just neither run nor mcr, but the &#039;funny&#039; $ sign, then you can also hand over the ISQ name in-line.&lt;br /&gt;
&lt;br /&gt;
Small detail with big effect...&lt;br /&gt;
&lt;br /&gt;
===HowTo: Make commands available to all users with symbols or paths===&lt;br /&gt;
&lt;br /&gt;
DCL$PATH is one way to do that, WE don&#039;t use it...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ def dcl$path disk1:[microct.main],disk1:[microct.util]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, if you type&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ uct_t&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
it will first try to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ @uct_t.com&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
and then&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ r uct_t.exe&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
however, we usually define it by giving full path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ progx :== $disk1:[microct.main]progx.exe&lt;br /&gt;
$ com_proc_x :== @disk1:[microct.main]procedure.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type the shortcut (&#039;symbol&#039; in VMS language)&lt;br /&gt;
&lt;br /&gt;
We use the &#039;cd&#039; to set the default path, you may also use this in your command procedure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;proc.com&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd &#039;p1&#039;&lt;br /&gt;
$ dir *.*/size&lt;br /&gt;
&lt;br /&gt;
$ define COM disk1:[microct.commands]&lt;br /&gt;
$ p :== @COM:PROC.COM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
these both go into &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ p disk4:[microct.data.0000007.000009]*.ISQ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Launch an editor such as EVE===&lt;br /&gt;
&lt;br /&gt;
On the command line&lt;br /&gt;
&amp;lt;pre&amp;gt;$ edit/display=decwindows/tpu fname.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit a symbol set by Scanco such as AIX===&lt;br /&gt;
&lt;br /&gt;
[[Image:Bones2.jpg|picture_position,left]] &amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Extreme caution!  Explicit permission for this change or similar changes &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; be obtained from Dr. Steven Boyd.&lt;br /&gt;
&lt;br /&gt;
Log in as user calibration&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set proc/priv=bypass&lt;br /&gt;
$ cdc (changes to microct_common)&lt;br /&gt;
$ sea *.com aix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit that file which is called &amp;lt;code&amp;gt;microct_setup_common.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Another example&#039;&#039;: To make the backspace/insert keys work properly, edit the &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt; and insert the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set terminal/insert&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anywhere suitable.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a customized button in the session manager===&lt;br /&gt;
&lt;br /&gt;
The session manager part to enable the double-click on the AIM file:&lt;br /&gt;
Session Manager, &#039;Options&#039;, &#039;Menu&#039;, enter new item&lt;br /&gt;
SAP&lt;br /&gt;
with command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@decw$user_defaults:sap$vue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then move that menu point into &#039;Applications&#039; menu.&lt;br /&gt;
Also:&lt;br /&gt;
&#039;Options&#039;, &#039;File types&#039;, Create &#039;AIM&#039; file type.&lt;br /&gt;
Move &#039;rename&#039;, &#039;copy&#039;, &#039;purge&#039; etc. into menu, Select &#039;SAP&#039;, click  on&lt;br /&gt;
&#039;Change double click&#039;, and also move SAP into menu.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Export the VMS display to SUN or LINUX terminal===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# - temple&lt;br /&gt;
$ - sceval&lt;br /&gt;
# xhost +temple.ucalgary.ca&lt;br /&gt;
# ssh -X microct@sceval.ucalgary.ca&lt;br /&gt;
$ set display /create /transport=tcpip /node=temple.ucalgary.ca&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE:&amp;lt;/b&amp;gt; Do not use &amp;lt;code&amp;gt;xhost+&amp;lt;/code&amp;gt;.  Always specific exactly which computer is being&lt;br /&gt;
allowed X access.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Monitor system usage===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ monitor/interval=1 processes/topcpu&lt;br /&gt;
$ monitor/interval=1 system&lt;br /&gt;
$ show error&lt;br /&gt;
$ show system&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;show error&amp;lt;/code&amp;gt; may indicate errors.  One or two errors is OK.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Configure the EVE editor===&lt;br /&gt;
&lt;br /&gt;
The following file, called &amp;lt;code&amp;gt;tpu.dat&amp;lt;/code&amp;gt;, should be installed in &amp;lt;code&amp;gt;disk1:[microct.xdefaults]:&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# DECTPU V3.1 1993-04-22 15:50 defaults&lt;br /&gt;
# CHANGED B.KOLLER 21-JUN-90&lt;br /&gt;
#&lt;br /&gt;
# Copyright (c) 1993 Digital Equipment Corporation.  All rights reserved.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
# The following are all the resource names that DECTPU supports.&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Title:		DECTPU Copyright © Digital Equipment Corporation 1992.  All Rights Reserved.&lt;br /&gt;
Tpu.Tpu$MainWindow.ApplicationTitle:	DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.IconName:		DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.X:			610&lt;br /&gt;
Tpu.Tpu$MainWindow.Y:			0&lt;br /&gt;
#&lt;br /&gt;
# The following resource names are commented out so that users can specify&lt;br /&gt;
# *rows and *columns and have DECTPU obey those directives.  If DECTPU finds&lt;br /&gt;
# finds no resource names governing the number of rows and columns it should&lt;br /&gt;
# have, it uses 24 rows and 80 columns.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Columns:	80&lt;br /&gt;
Tpu.Tpu$MainWindow.Rows:	56&lt;br /&gt;
*EVE_MENU_BAR*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmScrollBar*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmDialogShell*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmMenuShell*background:	#ADADADADADAD&lt;br /&gt;
*background:			white&lt;br /&gt;
Tpu*condensedFont: OFF&lt;br /&gt;
Tpu*fontSetSelection: 0&lt;br /&gt;
&lt;br /&gt;
# 0 = big font&lt;br /&gt;
# 1 = little font&lt;br /&gt;
# 2 = GS font (German Standard)&lt;br /&gt;
# 3 = Fine font (used only for non-latin 1 fonts?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scanco System and Setup==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Stop and restart the printer queue===&lt;br /&gt;
&lt;br /&gt;
How to fix the printer queue when hung, not working or giving an error.&lt;br /&gt;
A full printer queue can seriously affect system performance.  &lt;br /&gt;
Be sure that the queue is cleaned up from time to time.&lt;br /&gt;
&lt;br /&gt;
:* Completely remove the queue and re-generate.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ stop/que/reset hpljet&lt;br /&gt;
$ dele/que hpljet&lt;br /&gt;
$ @sys$startup:dcps_hpljet_ip&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract patient name from database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will show you sample-name of sample-number 1234&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info -m 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will give you some (stupid) info about meas 1234&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you use this function all the time, put the following into &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uct_info  :== $um:uct_info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then the usage info will even be correct&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract disk usage information===&lt;br /&gt;
&lt;br /&gt;
To look at the RSQs in the database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dir/siz dk0:[microct.data...]*.rsq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
the three dots means all subdirectories.&lt;br /&gt;
&lt;br /&gt;
Other useful commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.rsq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
shows you header.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ fda command file-wildcard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
does a &#039;file do all&#039; of the command on all the given wildcard filenames.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe xxxx | search sys$pipe &amp;quot;patient&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
is the pipe command in VMS.&lt;br /&gt;
&lt;br /&gt;
So all three combined:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe fda ctheader dk0:[microct.data...]*.rsq | search sys$pipe &amp;quot;patient name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or any other field you want to search for!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other ideas&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gives you a file &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; with info in it (leave defaults to get all samples ever scanned, otherwise &#039;zoom&#039; in on some samples.)&lt;br /&gt;
&lt;br /&gt;
Check out the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ help search&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and &amp;lt;code&amp;gt;/match=and&amp;lt;/code&amp;gt;&lt;br /&gt;
or &amp;lt;code&amp;gt;/match=or&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit Scanco &amp;lt;code&amp;gt;SCANCO_SUBMIT_COMMAND&amp;lt;/code&amp;gt; symbol===&lt;br /&gt;
&lt;br /&gt;
*Check the current setting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show sym *submit*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In directory &amp;lt;code&amp;gt;DISK2:[MICROCT]MICROCT_SETUP_USER.COM&amp;lt;/code&amp;gt; add the following line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ SCANCO_SUBMIT_COMMAND :== SUBMIT/NOPRINT/QUE=SYS$SLOW /NOTIFY/LOG=SYS$SCRATCH:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then end session and log in again.  Definition of the symbol in the &lt;br /&gt;
&amp;lt;code&amp;gt;MICRO_SETUP_USER.COM&amp;lt;/code&amp;gt; supersedes the standard setting.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use the new &amp;lt;code&amp;gt;UCT_BACKUP&amp;lt;/code&amp;gt; software===&lt;br /&gt;
&lt;br /&gt;
New Features (i) You can now select multiple samples with the Shift and/or the Ctrl key; and (2) You can use the sample name filter field on top to display only names containing the filter string.&lt;br /&gt;
&lt;br /&gt;
Start the move/copy by clicking on &amp;lt;code&amp;gt;&#039;Start...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;&#039;Script...&#039;&amp;lt;/code&amp;gt; button is for advanced users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Advanced Users:&amp;lt;/b&amp;gt;&lt;br /&gt;
Use of the &#039;Script...&#039; button: this will generate a script,&lt;br /&gt;
&amp;lt;code&amp;gt;sys$scratch:archive.com&amp;lt;/code&amp;gt;,&lt;br /&gt;
that you may submit in batch mode later (e.g. over night) by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command sys$scratch:archive.com/after=23:59&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(In a multi-computer cluster setup, you may want to specify the exact queue name of the computer that has the tape hooked up by giving e.g. &amp;lt;code&amp;gt;/que=sceval_fast&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
Insert a tape, but do NOT mount the tape in the normal program. (If necessary: if it&#039;s a new tape, initialize it as usual). The batch job will be started one minute before midnight in the example above.&lt;br /&gt;
&amp;lt;code&amp;gt;$ show entry&amp;lt;/code&amp;gt; will show you that it is holding until then.&lt;br /&gt;
See &amp;lt;code&amp;gt;$ help submit /after&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$ help dcl_tips date_time example&amp;lt;/code&amp;gt; for more help on this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Little Reminder:&amp;lt;/b&amp;gt;&lt;br /&gt;
While the tape is running and writing to it, DO NOT LOG OUT, DO NOT INTERRUPT THE PROGRAM! This would make that tape unusable from this point on - you could still read from that tape up to this point, but could not add more scans to this tape.&lt;br /&gt;
What to do when tape is full? It then displays some message about continuing on another tape. Hit &amp;lt;code&amp;gt;ctrl/c&amp;lt;/code&amp;gt; to interrupt the program, take a fresh tape, initialize it, select the remaining scans to archive again, hit &amp;lt;code&amp;gt;&#039;start&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
And last but not least: WE STRONGLY URGE YOU TO DO THE WEEKLY BACKUP (SAFETY BACKUP OF USER DISK1 WITH YOUR DATABASES ON IT). Two users DID experience disk crashes last year, and without the weekly backup, you may still have all scans on the data disk (e.g. disk2), but without the databases you cannot tell which scans belong the which sample!&lt;br /&gt;
&lt;br /&gt;
How to do weekly backup: insert &#039;special&#039; weekly backup tape, e.g. week_a, and&lt;br /&gt;
just hit &#039;Full backup to tape&#039;.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Import foreign data into the Scanco database on the VMS system===&lt;br /&gt;
&lt;br /&gt;
Only ISQ files can be imported into the database, however it is possible to convert other types of data into ISQ files (i.e., stacks of BMPs into ISQ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 1:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After transfering your data to the VMS system (use the data disk &amp;lt;code&amp;gt;disk2&amp;lt;/code&amp;gt;, NOT the user disk &amp;lt;code&amp;gt;disk1&amp;lt;/code&amp;gt;), use the IPL commands &amp;lt;code&amp;gt;/import_freeformat&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/read_aim function&amp;lt;/code&amp;gt; to import your data for conversion to an ISQ.&lt;br /&gt;
&lt;br /&gt;
For DICOM files, start IPL and run the &amp;lt;code&amp;gt;/dicom&amp;lt;/code&amp;gt; function to import. For DICOM, if your object is a single 3D file (-multifile false) or many many individual slice files (-multifile true, and give beginning of filenames, and –extension).&lt;br /&gt;
&lt;br /&gt;
There may be requests by IPL to convert your data to &amp;lt;code&amp;gt;signed short&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;signed char&amp;lt;/code&amp;gt; from other data types. Obey these requests and do it by running the &amp;lt;code&amp;gt;/convert_unsigned&amp;lt;/code&amp;gt; function.&lt;br /&gt;
&lt;br /&gt;
Then, write the ISQ file.&lt;br /&gt;
&amp;lt;pre&amp;gt;ipl&amp;gt; toisq in DK0:[MICROCT.DATA]D0000001.ISQ&lt;br /&gt;
    -square           true&lt;br /&gt;
    -original_pos     false&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This writes the ISQ file. &lt;br /&gt;
&amp;lt;b&amp;gt;Remember&amp;lt;/b&amp;gt;, the ISQ name must be 8 characters long (1 character followed by seven digits)!!! The letters and numbers can be chosen freely.&lt;br /&gt;
&lt;br /&gt;
Fill out a log sheet with the original AIM names that were imported, and the resulting ISQ names that were generated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 2: &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a sample in the database and write down the sample and measurement number. Then, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run um:uct_import&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And give the new ISQ file, the new sample-number and check that the feedback is correct (i.e., that the name from the database is matching the name from the ISQ file header).&lt;br /&gt;
&lt;br /&gt;
Operator and controlfile can be left 0 if you want.&lt;br /&gt;
&lt;br /&gt;
Then it changes the sample and measurement number in the ISQ file, makes the correct directory on &amp;lt;code&amp;gt;DK0&amp;lt;/code&amp;gt;, and gives you the line on the screen of how to rename the file to the correct, new directory. Take this line and use it on the command line.  Done!  &lt;br /&gt;
&lt;br /&gt;
You can now use the normal &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; program with this file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you were importing an AIM file, delete the original file as it will have the wrong measurement indexes in its log header. You will have to produce the AIM file again from the ISQ so our database writes the evaluation results into the correct sample fields.&lt;br /&gt;
&lt;br /&gt;
==Project Management==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Example filled out log sheet===&lt;br /&gt;
&lt;br /&gt;
A log sheet, which is always kept near the scanner, must be filled out for&lt;br /&gt;
every measurement on the system.  A blank log sheet is available in the&lt;br /&gt;
Documents section of this Wiki page.&lt;br /&gt;
&lt;br /&gt;
Here is an example log sheet:&lt;br /&gt;
&lt;br /&gt;
::[[Image:Herzog_pic.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Evaluation==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand the morphological parameters===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
BV/TV  -&amp;gt; VOX-BV/TV&lt;br /&gt;
BS/BV  -&amp;gt; TRI-BS/BV&lt;br /&gt;
Tb.Th  -&amp;gt; DT-Tb.Th&lt;br /&gt;
Tb.Sp  -&amp;gt; DT-Tb.Sp&lt;br /&gt;
Tb.N   -&amp;gt; DT-Tb.N&lt;br /&gt;
ConnD  -&amp;gt; Conn-Dens&lt;br /&gt;
SMI    -&amp;gt; TRI-SMI&lt;br /&gt;
DA     -&amp;gt; TRI-DA&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Usually I&#039;d use the names on the left for the plots, but these correspond to the names on the right of the arrow in the Scanco output files.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you use the TRI-Tb.Th rather than the DT-Tb.Th*, then you are using the derived (plate-model) morphological parameters.  These are less accurate than the direct parameters.  They are calculated by triangulating the surface (marching cubes) to get BS, and then calculate thickness&lt;br /&gt;
Th = 2 * BV / BS, etc...&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Mean Values&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mean 1: mean of bone AND marrow --&amp;gt; &#039;apparent density&#039;&lt;br /&gt;
mean 2: mean of what was considered bone only (i.e. what was segmented) &lt;br /&gt;
&#039;bone tissue density&#039;. (so this does depend on threshold a little bit)&lt;br /&gt;
mean 3: empty, or can be used to store mean of cortex, e.g.&lt;br /&gt;
 The function /voxgobj has -region number (zero-based) to goveren which &lt;br /&gt;
 mean value is filled, 1 - 5 (thus region 0 - 4).]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;What you should also know&amp;lt;/b&amp;gt;: because of partial voluming effects, for Mean2, we are DISCARDING the 2 surface voxels of EVERY trabeculae - thus, to get meaningful Mean2, you have to do your scan with the chosen resolution high enough, such that the mean trabeculae is depicted by at the very least 5 pixels, better actually more than 6 pixels thickness. (You can do this check at the end in the XLS sheet: divide DT-Tb.Th* by el-size-mm.x, and you need to get numbers bigger than 6 or 7 or 10 or so.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Start a 3D evaulation from the terminal===&lt;br /&gt;
&lt;br /&gt;
Warning: Do not change &amp;lt;code&amp;gt;uct_evaulation_v4.com&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ipl_fixed_batch_v4.com&amp;lt;/code&amp;gt; in .eval, but only work on your own file (i.e., eval_steve).&lt;br /&gt;
First, an explanation of how the normal evaluation runs by hitting the &#039;Start 3d&#039; button.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_v4.com/para=(xxx,yyy,zzz,…)&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are 8 parameters:&lt;br /&gt;
*P1: number of print outs of our results sheet&lt;br /&gt;
*P2: the ISQ filename&lt;br /&gt;
*P3-5: start x (pos x), y, z&lt;br /&gt;
*P6-8: dim x, y, z&lt;br /&gt;
The parameters p3-p8 come from the white bounding box. The problem is that when you start from the terminal you do not have these. This problem can be overcome by using the &amp;lt;code&amp;gt;isq_to_aim_gobjbox.exe&amp;lt;/code&amp;gt; and then give the relevant parameters. You can &lt;br /&gt;
&amp;lt;code&amp;gt;$ run um: isq_to_aim_gobjbox.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
to see what it&#039;s asking for.&lt;br /&gt;
By using gobjbox you do not need p3-p8. Therefore you can start the evaluation by giving:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_special_josh.com –&lt;br /&gt;
/para=(1,dk0:[microct.data.0000275.0000245]c0000332.ISQ)&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that you can make &amp;lt;code&amp;gt;uct_evaluation_special_josh.com&amp;lt;/code&amp;gt; such that there is no need for P1 (change p2 to p1 in the script, etc).&lt;br /&gt;
[Alternatively to using the gobjbox you could use the normal isq_to_aim, but hard code the dim and pos.]&lt;br /&gt;
Then call whatever IPL files you want to call. Look into &amp;lt;code&amp;gt;fixed_batch_v4&amp;lt;/code&amp;gt; to see how we turn on the database always on the first line of every IPL part, and how we calculate parameters.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use &amp;lt;code&amp;gt;EVAL PROGRAM (Slice Viewer)&amp;lt;/code&amp;gt; without importing ISQ into the database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; It is strongly suggested to properly import that ISQ into the database before you run a full 3D evaluation!  See the appropriate HowTo.&lt;br /&gt;
&lt;br /&gt;
In a terminal, &amp;lt;code&amp;gt;$ def uct_default_isq xxxxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then start the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool (or &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt;). &lt;br /&gt;
&lt;br /&gt;
Hit cancel when asked for a file to read and the default ISQ that was set will be read.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning!&amp;lt;/b&amp;gt; Only start a 3D evaluation if and only if the sample (patient) and measurement&lt;br /&gt;
index are &amp;lt;b&amp;gt;correct&amp;lt;/b&amp;gt; in the ISQ header!  &lt;br /&gt;
ONLY START A 3D EVALUATION IF AND ONLY IF THE SAMPLE (PATIENT) AND MEASURMENT INDEX ARE *CORRECT* IN THE ISQ HEADER!&lt;br /&gt;
&lt;br /&gt;
===HowTo: Submit a job to the queue===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit/noprint /que=sys$slow ipl_voi_josh_m.com &lt;br /&gt;
  - /log=sys$scratch:test.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract your results from the 3D database===&lt;br /&gt;
&lt;br /&gt;
Assuming you&#039;ve used the scanco_submit_command to initialize your evaluations (either manually or through the uct_evaluation tool) then you can get all of your results stored into a text file that can be easily imported in Excel.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ uct_list&amp;lt;/pre&amp;gt;&lt;br /&gt;
The output text file will be stored in &amp;lt;code&amp;gt;sys$scratch&amp;lt;/code&amp;gt; and you can ftp this to a PC so that it can be imported into excel and further analysis can be performed. &lt;br /&gt;
&lt;br /&gt;
Importing into Excel requires setting a deliminator based on the space.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Tabulate your LOG file results from 3D evaluations===&lt;br /&gt;
&lt;br /&gt;
Only use this if you have not used the standard &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool to generate your 3D evaluations (in which case see the HowTo related to the 3D database).&lt;br /&gt;
You can tabulate the LOG files:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or whatever you want to search for can be stored in a text file&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search/output=sys$scratch:ov.txt xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To search more than one log file, and get the output into one single file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ fda/output=xxx.txt search *.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fda means &#039;file do all&#039; and is a script made by Scanco to do one command (search) on a wildcard of files (*.log). Then put all the ov.txt, tv.txt, name.txt etc. files into excel.&lt;br /&gt;
Josh has made a .com file that does a similar job as described above.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Do cortical midshaft evaluation with moment of inertia calculation===&lt;br /&gt;
&lt;br /&gt;
This explains what happens when you type&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt; $ midshaft or $ eval_midshaft &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Draw a rough contour in the first of your 20 (or 12 or whatever) slices,&lt;br /&gt;
open the Contouring Sub-window, double-click on the big image, and it&lt;br /&gt;
automatically&lt;br /&gt;
finds the best contour. Then click on &#039;Selection&#039; &#039;Forwards&#039;, then &#039;Iterate&lt;br /&gt;
Forwards&#039;, and it finds the best contour for every of your (about) 20 slices.&lt;br /&gt;
&lt;br /&gt;
Then &#039;cancel&#039; the contouring sub-window, and start the 3D evaluation.&lt;br /&gt;
&lt;br /&gt;
FIRST: set the correct threshold, sigma, support in the file:&lt;br /&gt;
[microct.main]ipl_fixed_batch_midshaft.com (or in [microct.eval])!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
(Save contours when it asks you). Exit the program.&lt;br /&gt;
&lt;br /&gt;
When you now type $ que in the terminal, you will see some job called&lt;br /&gt;
&#039;uct_evaluation_midshaft&#039;&lt;br /&gt;
(or similar), whereas the trabecular evaluations were called&lt;br /&gt;
&#039;uct_evaluation_v4&#039;.&lt;br /&gt;
Also the .log file in Scratch has the _midshaft name.&lt;br /&gt;
&lt;br /&gt;
I now only calculate the TRI values (Plate Model), and not the direct stuff&lt;br /&gt;
anymore, since for only 20 slices, the truly 3D Tb.Th might be quite off.&lt;br /&gt;
Also, you will see lots of tildes on the result sheets. This is to tell&lt;br /&gt;
you that, if the meas. were trab. bone, those values would only be approximate.&lt;br /&gt;
But now for the cortex, they are actually correct ! (see below for more explan about this)&lt;br /&gt;
&lt;br /&gt;
So I would now use the tildes to check the &#039;excel&#039; table that the operator&lt;br /&gt;
has taken the correct script for the trab. or cort. evaluations for the&lt;br /&gt;
respective measurements !&lt;br /&gt;
&lt;br /&gt;
So what&#039;s the advantage of all this ? Now, also VOX-TV is correct! So VOX-TV&lt;br /&gt;
is the whole area, VOX-BV the doughnut, so TV-BV is the marrow area ! And still,&lt;br /&gt;
TRI-Tb.Th is the cortical thickness. (TRI-TV is NOT correct, because the .gobj&lt;br /&gt;
feature was turned off.)&lt;br /&gt;
&lt;br /&gt;
I say &#039;area&#039; above: depending on how many slices one individual scan has,&lt;br /&gt;
VOX-BV (and VOX-TV) might be different for different scans, so you will HAVE to&lt;br /&gt;
convert the volumes to area again:&lt;br /&gt;
&lt;br /&gt;
volume equals area times height&lt;br /&gt;
--&amp;gt; Bone Area = VOX-BV / height = BV / (dim.z * el_size_mm.z)&lt;br /&gt;
(and same for Total area, of course :-)&lt;br /&gt;
&lt;br /&gt;
All clear ???&lt;br /&gt;
&lt;br /&gt;
If you want porosity of the bone itself:&lt;br /&gt;
&lt;br /&gt;
draw two contours: one around, counter-clockwise, on on the inside, clock-wise&lt;br /&gt;
(thus a &#039;negative&#039;, excluding contour).&lt;br /&gt;
Now, TV will be just that ring area, BV will be the bone within that ring area,&lt;br /&gt;
and BV/TV will be 1 - porosity, thus BV/TV 94% means 6% porosity.&lt;br /&gt;
&lt;br /&gt;
*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
Application of this script to metaphysis scan (with trab. in middle):&lt;br /&gt;
&lt;br /&gt;
$ midshaft&lt;br /&gt;
draw one contour around the cortex, and in same slices, a NEGATIVE contour on&lt;br /&gt;
the inside (CW contour) to exclude the trab.&lt;br /&gt;
(potentially work with the BP (brake-point) system to be able to morph the&lt;br /&gt;
negative contours, even though there is already a &#039;outer&#039; contour around the&lt;br /&gt;
bone in every slice.)&lt;br /&gt;
&lt;br /&gt;
Start 3D eval, read out the data-base with uct_list.&lt;br /&gt;
&lt;br /&gt;
NB: you CANNOT give that used .gobj a special name such as c0001234_cortex.gobj!&lt;br /&gt;
Only after the eval (or midshaft eval) has finished, you may copy it to a more&lt;br /&gt;
meaningful name - but all of our evaluations are just taking the STANDARD gobj name!&lt;br /&gt;
&lt;br /&gt;
Then afterwards (after renaming or copying the _seg.aim to _cortex.aim, and&lt;br /&gt;
.gobj to _cortex.gobj), you may want to start the very normal eval with normal&lt;br /&gt;
(inner) contours to evaluate the trabecular compartement.&lt;br /&gt;
Remember: the values in our 3D result database then are OVERWRITTEN.&lt;br /&gt;
&lt;br /&gt;
(if you have a whole study, I would recommend to run the $ midshaft for ALL&lt;br /&gt;
samples, $ uct_list to e.g. sys$scratch:mystudy_cortex.txt, rename/copy gobj and&lt;br /&gt;
seg for all, and THEN run the trab. eval for all samples, $ ust_list and you&lt;br /&gt;
have two nice complete xls sheets.)&lt;br /&gt;
&lt;br /&gt;
******************************************************************************&lt;br /&gt;
&lt;br /&gt;
More explanations of why the plate model is correct:&lt;br /&gt;
&lt;br /&gt;
Assume a ring (cortex).&lt;br /&gt;
&lt;br /&gt;
Area = thickness * &#039;middle line&#039;.&lt;br /&gt;
&#039;middle line&#039; = average of outer and inner circumference&lt;br /&gt;
--&amp;gt; &#039;middle line&#039; = 0.5 * &#039;bone surface&#039;&lt;br /&gt;
&lt;br /&gt;
--&amp;gt; thickness = bone volume * 2 / bone surface.&lt;br /&gt;
&lt;br /&gt;
And this is nothing else but the &#039;plate model&#039; formula for Tb.Th!&lt;br /&gt;
&lt;br /&gt;
nice, no ?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
And why not just run the &#039;normal trabecular eval&#039;?&lt;br /&gt;
in the &#039;normal&#039; TRI calculation, we are EXCLUDING all surfaces that are created&lt;br /&gt;
artificially by a gobj line that cuts through a trab.&lt;br /&gt;
&lt;br /&gt;
However, for the midshaft, this means: the whole outer (or even inner, if also&lt;br /&gt;
inner contour is there) is SUPPRESSED, because it is touching the gobj line. So&lt;br /&gt;
this is where that midshaft script comes in: it turns off that suppression.&lt;br /&gt;
&lt;br /&gt;
*******************************************************************************&lt;br /&gt;
&lt;br /&gt;
and some explanations, why the direct DT-Tb.Th* is NOT correct for a scan with&lt;br /&gt;
just e.g. 12 slices:&lt;br /&gt;
If we fill the structure with spheres, those spheres should be bounded by the&lt;br /&gt;
width of the cortex, not just by the fact that we only have 12 slices...&lt;br /&gt;
&lt;br /&gt;
(and even more so: We are always doing &#039;aim box&#039; suppression with the spheres: &lt;br /&gt;
if a sphere touches the boundary of the aim box, it is suppressed!&lt;br /&gt;
&lt;br /&gt;
So this is quite crucial for Tb.Sp and Tb.N: to get meaningful Tb.Sp, you would&lt;br /&gt;
need a LOT of slices. Also, then, you cannot have the inner contour - otherwise&lt;br /&gt;
the negative inner contour will delete the Tb.Sp. spheres... &lt;br /&gt;
&lt;br /&gt;
IF you have enough slices, you may opt to turn the /dt_object on again in the&lt;br /&gt;
midshaft script (second half). Then DT-Tb.Th* and TRI-Tb.Th just have a slightly&lt;br /&gt;
different behaviour if there are little pores within the cortex:&lt;br /&gt;
&lt;br /&gt;
TRI: the little pore just adds a little BS, thus the influence is not that big.&lt;br /&gt;
DT: the little pore cuts the thickness sphere in half, thus at that location,&lt;br /&gt;
the thickness is halved.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*********************************************************************************&lt;br /&gt;
&lt;br /&gt;
The script is also calculating Mean1 and Mean2 now:&lt;br /&gt;
Mean1: &#039;apparent&#039; density, average over whole TV&lt;br /&gt;
Mean2: &#039;tissue&#039; density: average over what was segmented as bone only.&lt;br /&gt;
&lt;br /&gt;
These mean values will be in mg HA/ccm if you have the calibration option for&lt;br /&gt;
bone density installed (and activated for those scans).&lt;br /&gt;
Remember: the bone has to have some soft-tissue (or equivalent) on the inside,&lt;br /&gt;
and preferably also on the outside then.&lt;br /&gt;
&lt;br /&gt;
********************************************************************************** &lt;br /&gt;
&lt;br /&gt;
===HowTo: Assign special 3D evaluation to the uct_evaluation tool===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;: This is for advanced users ONLY.  Do not attempt this without contacting Steve!&lt;br /&gt;
&lt;br /&gt;
This will show how to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt;:&lt;br /&gt;
It is easy to set up multiple .COM files for the 3D evalulation tool, one such set-up is already prepared on your computer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ eval_special&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will do something similar to &amp;lt;code&amp;gt;$ voi&amp;lt;/code&amp;gt; where the normal contour program opens, but if you start the 3D eval, the special script &amp;lt;code&amp;gt;um:uct_evaluation_special.com&amp;lt;/code&amp;gt; is called (associated with eval_special), which then in turn calls &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt;, where you can specify your own set of thresholds, etc.&lt;br /&gt;
&lt;br /&gt;
So it is a daisy chain of files which we will need to follow to set up a special &amp;lt;code&amp;gt;xxx_kyle.com&amp;lt;/code&amp;gt; script, and where ever we encounter &amp;lt;code&amp;gt;_special.com&amp;lt;/code&amp;gt;, we copy and change it to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; you will need to do the following:&lt;br /&gt;
&lt;br /&gt;
*1. Edit &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (double-click on file), please be careful here, it&#039;s very important! (and I hope you have done your &#039;weekly full backup&#039; regularly, so you could always retrieve a good version of login.com...)&lt;br /&gt;
&lt;br /&gt;
*2. Then, towards to bottom and duplicate the line&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_special :== @com:eval_var.com um:uct_evaluation_special.com&amp;lt;/code&amp;gt;&lt;br /&gt;
and change duplicate to&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_kyle    :== @com:eval_var.com um:uct_evaluation_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make this command &amp;lt;code&amp;gt;eval_kyle&amp;lt;/code&amp;gt; available after you login freshly. Save and Exit.&lt;br /&gt;
&lt;br /&gt;
*3. Then go to &amp;lt;code&amp;gt;disk1:[microct.eval]&amp;lt;/code&amp;gt; and copy the file &amp;lt;code&amp;gt;uct_evaluation_special.com&amp;lt;/code&amp;gt; to the name &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt; (&#039;Commands&#039;, &#039;Copy ...&#039;, BUT CLICK ON THE THREE DOTS and give new output name. &lt;br /&gt;
If you do not see the &amp;lt;code&amp;gt;eval_special:&amp;lt;/code&amp;gt; go to terminal, &amp;lt;code&amp;gt;$ dir ue:*special*.com&amp;lt;/code&amp;gt; and take it from the &amp;lt;code&amp;gt;microct_common&amp;lt;/code&amp;gt; directory)&lt;br /&gt;
&lt;br /&gt;
*4. Edit the &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt; file: at the top, change &amp;lt;code&amp;gt;ipl_......_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*5. Copy &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*6. Edit &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; to your liking. If you want &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; to not perform the full evaluation, but only something akin to &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, then, in the steps above, copy &amp;lt;code&amp;gt;uct_eval_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;ipl_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; (thus you take the &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; script as template for the &amp;lt;code&amp;gt;_kyle&amp;lt;/code&amp;gt; script).&lt;br /&gt;
&lt;br /&gt;
*7. Then open a new terminal (&#039;applications&#039;, &#039;decterm&#039;), &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; should work now!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;: When you start the 3D eval, then&lt;br /&gt;
&amp;lt;code&amp;gt;$ que&amp;lt;/code&amp;gt;&lt;br /&gt;
will show you your batch job with your name on it now!&lt;br /&gt;
&lt;br /&gt;
And now a few more explanations how the whole thing works: in all eval programs, hitting &#039;Start 3d&#039; just submits the logical &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$ show log uct_evaluation&amp;lt;/code&amp;gt; shows you that by default, this points to &amp;lt;code&amp;gt;ue:uct_evaluation_v4.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Those little &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;eval_steve&amp;lt;/code&amp;gt; scripts then just temporarily redefine this logical so that a different script is submitted when you &amp;lt;code&amp;gt;&#039;start 3d eval&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
About the &#039;&#039;&#039;corelut eval&#039;&#039;&#039;: Then we start a whole different eval program: the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt;. So, if you set up a &amp;lt;code&amp;gt;eval_steve_c&amp;lt;/code&amp;gt; (or whatever you want to call it): Produce a &amp;lt;code&amp;gt;eval_var_c.com&amp;lt;/code&amp;gt; in the directory commands (maybe copy from microct_common to [microct.commands]), and there, on the last line, instead of starting&lt;br /&gt;
&amp;lt;code&amp;gt;$ uct_evaluation&amp;lt;/code&amp;gt;&lt;br /&gt;
(the normal program), replace by&lt;br /&gt;
&amp;lt;code&amp;gt;$ evalc&amp;lt;/code&amp;gt;&lt;br /&gt;
which starts the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt; - and because the &amp;lt;code&amp;gt;eval_var.com&amp;lt;/code&amp;gt; has over-ridden the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; logical just before, then you are starting different script upon starting 3d eval.&lt;br /&gt;
NB: we have a logical AND a symbol called &amp;lt;code&amp;gt;uct_evalution&amp;lt;/code&amp;gt;. Sorry for confusion. Symbol &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; starts normal &amp;lt;code&amp;gt;eval&amp;lt;/code&amp;gt; program, so this is what you replace by symbol &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt; now).&lt;br /&gt;
&lt;br /&gt;
===HowTo: Convert CT numbers to mg HA/ccm===&lt;br /&gt;
&lt;br /&gt;
The two byte numbers (short) can be converted to mu values by first dividing by mu_scaling which is probably 4096. Then apply the slope and intercept to get mg HA/ccm. A typical slope may be 2.95e+02 and intercept -1.896e+02. &lt;br /&gt;
&lt;br /&gt;
These numbers are available in the AIM header, or the ISQ header (&amp;lt;code&amp;gt;$ run ut:ctheader&amp;lt;/code&amp;gt;).&lt;br /&gt;
The conversion is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mg HA/ccm = (AIM/mu_scaling) * slope + intercept&lt;br /&gt;
mg HA/ccm = (AIM/4096) * 295.494 – 189.695&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!---------------------------------------------------------------------- &lt;br /&gt;
Mu_Scaling                    4096 &lt;br /&gt;
Calibration Data              55 kVp, 200mg HA wedge, 4096 scaling &lt;br /&gt;
Calib. default unit type      2 (Density) &lt;br /&gt;
Density: unit                 mg HA/ccm &lt;br /&gt;
Density: slope                2.95493988e+02 &lt;br /&gt;
Density: intercept            -1.89695007e+02 &lt;br /&gt;
HU: mu water                  0.58200 &lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a list of registered measurements===&lt;br /&gt;
&lt;br /&gt;
:* To generate a list of measurements that are registered in the data base, to determine where backups are stored, or if the data is still on disk:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;$ write_info&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*It asks you for a range of measurement numbers or sample names, and creates &amp;lt;code&amp;gt; sys$scratch:info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix SAP colours when green===&lt;br /&gt;
&lt;br /&gt;
(using the standard gray colourmap), if changing color maps doesn&#039;t help.&lt;br /&gt;
&lt;br /&gt;
:*Menu point &#039;Norm, Default is Bone = 16000.&lt;br /&gt;
&lt;br /&gt;
:*Take max for 32000, or &#039;Adapt slice&#039;.&lt;br /&gt;
&lt;br /&gt;
::Note: Do NOT take &#039;adapt vol&#039; - it will be extremely slow!  Every single mouse-click it re-calculates whole volume...&lt;br /&gt;
&lt;br /&gt;
==Writing Scripts==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Get information about a sample or measurement from database===&lt;br /&gt;
&lt;br /&gt;
The following will create a &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create your own IPL script with some tips===&lt;br /&gt;
&lt;br /&gt;
To make a script that would submit a job to the queue with the command as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you need to create your own IPL file would be translated to the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit /noprint /que=sys$slow ue:IPL_VOI_JOSH_M.COM &lt;br /&gt;
  - /log=sys$scratch:test.log /para=(&#039;aim_file&#039;,&#039;gobj_file&#039;,&#039;seg_file&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The IPL file would look something like this…&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$   if p1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$ 	THEN &lt;br /&gt;
$	write sys$output &amp;quot;Give DK0:[xxx]C0001234_SEG.aim on the line.&amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Or: &amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Type $ scanco_submit_command um:ipl_eval_autostart/para=(dk0:[xxx]c00123_seg.aim) &amp;quot;&lt;br /&gt;
$ 	exit&lt;br /&gt;
$   endif&lt;br /&gt;
$&lt;br /&gt;
$ gobj_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.GOBJ&amp;quot;&lt;br /&gt;
$ aim_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.AIM&amp;quot;&lt;br /&gt;
$&lt;br /&gt;
$!&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some more handy IPL sequences are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then you just need to give meas. number as P1 (and maybe slice range as p2),&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
OR, some nice starts are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P3 .EQS. &amp;quot;&amp;quot;&lt;br /&gt;
$    THEN&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to duplicate&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: New Sample Number from Database&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: New Start Letter of ISQ file&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P4: Optional: Operator Number&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P5: Optional: Controlfile Number&amp;quot;&lt;br /&gt;
$      EXIT&lt;br /&gt;
$    ENDIF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where you say which parameters HAVE to be there (up to p3), and which ones are optional.&lt;br /&gt;
&lt;br /&gt;
All together, the script may look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$    THEN &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to reco&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: Optional: Slice number N or Range M:N. Auto:All&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: Optional: Queue. Auto: sys$slow&amp;quot; &lt;br /&gt;
$      EXIT &lt;br /&gt;
$    ENDIF &lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A &lt;br /&gt;
$ if p3 .eqs. &amp;quot;&amp;quot; then p3 := SYS$SLOW &lt;br /&gt;
$ slices  = p2 &lt;br /&gt;
$ quename = p3 &lt;br /&gt;
$ INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1) &lt;br /&gt;
$ INPUT = INPUT - F$PARSE(INPUT,,,&amp;quot;VERSION&amp;quot;) &lt;br /&gt;
$ logfile = &amp;quot;sys$scratch:RECO_&amp;quot; + f$PARSE(input,,,&amp;quot;NAME&amp;quot;) + &amp;quot;.LOG&amp;quot; &lt;br /&gt;
$ submit/noprint/queue=&#039;quename&#039; uct_reconstruction_file - &lt;br /&gt;
    /para=(&#039;input&#039;,&#039;slices&#039;,&#039;logfile&#039;) &lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;lt;code&amp;gt;uct_reconstruction_file&amp;lt;/code&amp;gt; is a logical that points to &amp;lt;code&amp;gt;um:uct_reconstruction.com&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Logicals are preferred in scripts to make them more universal.&lt;br /&gt;
&lt;br /&gt;
==Errors and Fixes==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix &amp;quot;last slice&amp;quot; error problem when extracting AIM from ISQ===&lt;br /&gt;
&lt;br /&gt;
Sometimes the evaluation script (i.e., voi) converting the ISQ to an AIM fails because it tries to read one slice more than what is available in the ISQ data. The result of this failure is that the 3D analysis appears to fail and no .AIM or _SEG.AIM is created in the data directory. For example, it may have tried to read 261 slices, but there were only 260 slices available.&lt;br /&gt;
The easiest work around is to make sure that the white bounding box in the uct_evaluation program does not include the last slice (largest Z dimension). Scanco is aware of this problem and will fix it in future software releases (V5.2).&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=How_To%27s&amp;diff=230</id>
		<title>How To&#039;s</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=How_To%27s&amp;diff=230"/>
		<updated>2005-08-15T13:09:44Z</updated>

		<summary type="html">&lt;p&gt;Scanco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=HowTo Library=&lt;br /&gt;
&lt;br /&gt;
==OpenVMS==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Shut down the Alpha stations and start up again===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Do not do this unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
For shutdown&lt;br /&gt;
&lt;br /&gt;
At the login screen, type &amp;quot;shutdown&amp;quot;/no password and hit enter. &lt;br /&gt;
Then, you can turn the computer off at the prompt.&lt;br /&gt;
&lt;br /&gt;
Then, you may turn the disk array off (unplug it as there is no power switch).&lt;br /&gt;
&lt;br /&gt;
After you move the computer, power on the disk array and then the computer.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand difference between &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; is the same as &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;, but only with mcr you can hand over &#039;in-line&#039; parameters to an .exe file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
does not work, but you  have to say&lt;br /&gt;
&amp;lt;pre&amp;gt;$ mcr ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But funnily if you define a symbol in &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ ctheader :== $ut:ctheader.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with just neither run nor mcr, but the &#039;funny&#039; $ sign, then you can also hand over the ISQ name in-line.&lt;br /&gt;
&lt;br /&gt;
Small detail with big effect...&lt;br /&gt;
&lt;br /&gt;
===HowTo: Make commands available to all users with symbols or paths===&lt;br /&gt;
&lt;br /&gt;
DCL$PATH is one way to do that, WE don&#039;t use it...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ def dcl$path disk1:[microct.main],disk1:[microct.util]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, if you type&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ uct_t&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
it will first try to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ @uct_t.com&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
and then&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ r uct_t.exe&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
however, we usually define it by giving full path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ progx :== $disk1:[microct.main]progx.exe&lt;br /&gt;
$ com_proc_x :== @disk1:[microct.main]procedure.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type the shortcut (&#039;symbol&#039; in VMS language)&lt;br /&gt;
&lt;br /&gt;
We use the &#039;cd&#039; to set the default path, you may also use this in your command procedure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;proc.com&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd &#039;p1&#039;&lt;br /&gt;
$ dir *.*/size&lt;br /&gt;
&lt;br /&gt;
$ define COM disk1:[microct.commands]&lt;br /&gt;
$ p :== @COM:PROC.COM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
these both go into &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ p disk4:[microct.data.0000007.000009]*.ISQ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Launch an editor such as EVE===&lt;br /&gt;
&lt;br /&gt;
On the command line&lt;br /&gt;
&amp;lt;pre&amp;gt;$ edit/display=decwindows/tpu fname.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit a symbol set by Scanco such as AIX===&lt;br /&gt;
&lt;br /&gt;
IF YOU DO THIS, YOU ARE CANCELLING THE SCANCO SUPPORT FOR YOUR CHANGE!&lt;br /&gt;
&lt;br /&gt;
YOUR CHANGE WILL AFFECT *ALL* USERS ON THE WHOLE CLUSTER...&lt;br /&gt;
&lt;br /&gt;
Log in as user calibration&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set proc/priv=bypass&lt;br /&gt;
$ cdc (changes to microct_common)&lt;br /&gt;
$ sea *.com aix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit that file which is called &amp;lt;code&amp;gt;microct_setup_common.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Another example&#039;&#039;: To make the backspace/insert keys work properly, edit the &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt; and insert the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set terminal/insert&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anywhere suitable.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a customized button in the session manager===&lt;br /&gt;
&lt;br /&gt;
The session manager part to enable the double-click on the AIM file:&lt;br /&gt;
Session Manager, &#039;Options&#039;, &#039;Menu&#039;, enter new item&lt;br /&gt;
SAP&lt;br /&gt;
with command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@decw$user_defaults:sap$vue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then move that menu point into &#039;Applications&#039; menu.&lt;br /&gt;
Also:&lt;br /&gt;
&#039;Options&#039;, &#039;File types&#039;, Create &#039;AIM&#039; file type.&lt;br /&gt;
Move &#039;rename&#039;, &#039;copy&#039;, &#039;purge&#039; etc. into menu, Select &#039;SAP&#039;, click  on&lt;br /&gt;
&#039;Change double click&#039;, and also move SAP into menu.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Export the VMS display to SUN or LINUX terminal===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# - temple&lt;br /&gt;
$ - sceval&lt;br /&gt;
# xhost +temple.ucalgary.ca&lt;br /&gt;
# ssh -X microct@sceval.ucalgary.ca&lt;br /&gt;
$ set display /create /transport=tcpip /node=temple.ucalgary.ca&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE:&amp;lt;/b&amp;gt; Do not use &amp;lt;code&amp;gt;xhost+&amp;lt;/code&amp;gt;.  Always specific exactly which computer is being&lt;br /&gt;
allowed X access.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Monitor CPU usage with a program like TOP===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ monitor/interval=1 processes/topcpu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Configure the EVE editor===&lt;br /&gt;
&lt;br /&gt;
The following file, called &amp;lt;code&amp;gt;tpu.dat&amp;lt;/code&amp;gt;, should be installed in &amp;lt;code&amp;gt;disk1:[microct.xdefaults]:&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# DECTPU V3.1 1993-04-22 15:50 defaults&lt;br /&gt;
# CHANGED B.KOLLER 21-JUN-90&lt;br /&gt;
#&lt;br /&gt;
# Copyright (c) 1993 Digital Equipment Corporation.  All rights reserved.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
# The following are all the resource names that DECTPU supports.&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Title:		DECTPU Copyright © Digital Equipment Corporation 1992.  All Rights Reserved.&lt;br /&gt;
Tpu.Tpu$MainWindow.ApplicationTitle:	DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.IconName:		DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.X:			610&lt;br /&gt;
Tpu.Tpu$MainWindow.Y:			0&lt;br /&gt;
#&lt;br /&gt;
# The following resource names are commented out so that users can specify&lt;br /&gt;
# *rows and *columns and have DECTPU obey those directives.  If DECTPU finds&lt;br /&gt;
# finds no resource names governing the number of rows and columns it should&lt;br /&gt;
# have, it uses 24 rows and 80 columns.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Columns:	80&lt;br /&gt;
Tpu.Tpu$MainWindow.Rows:	56&lt;br /&gt;
*EVE_MENU_BAR*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmScrollBar*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmDialogShell*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmMenuShell*background:	#ADADADADADAD&lt;br /&gt;
*background:			white&lt;br /&gt;
Tpu*condensedFont: OFF&lt;br /&gt;
Tpu*fontSetSelection: 0&lt;br /&gt;
&lt;br /&gt;
# 0 = big font&lt;br /&gt;
# 1 = little font&lt;br /&gt;
# 2 = GS font (German Standard)&lt;br /&gt;
# 3 = Fine font (used only for non-latin 1 fonts?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scanco System and Setup==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract patient name from database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will show you sample-name of sample-number 1234&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info -m 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will give you some (stupid) info about meas 1234&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you use this function all the time, put the following into &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uct_info  :== $um:uct_info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then the usage info will even be correct&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract disk usage information===&lt;br /&gt;
&lt;br /&gt;
To look at the RSQs in the database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dir/siz dk0:[microct.data...]*.rsq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
the three dots means all subdirectories.&lt;br /&gt;
&lt;br /&gt;
Other useful commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.rsq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
shows you header.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ fda command file-wildcard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
does a &#039;file do all&#039; of the command on all the given wildcard filenames.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe xxxx | search sys$pipe &amp;quot;patient&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
is the pipe command in VMS.&lt;br /&gt;
&lt;br /&gt;
So all three combined:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe fda ctheader dk0:[microct.data...]*.rsq | search sys$pipe &amp;quot;patient name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or any other field you want to search for!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other ideas&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gives you a file &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; with info in it (leave defaults to get all samples ever scanned, otherwise &#039;zoom&#039; in on some samples.)&lt;br /&gt;
&lt;br /&gt;
Check out the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ help search&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and &amp;lt;code&amp;gt;/match=and&amp;lt;/code&amp;gt;&lt;br /&gt;
or &amp;lt;code&amp;gt;/match=or&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit Scanco &amp;lt;code&amp;gt;SCANCO_SUBMIT_COMMAND&amp;lt;/code&amp;gt; symbol===&lt;br /&gt;
&lt;br /&gt;
*Check the current setting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show sym *submit*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In directory &amp;lt;code&amp;gt;DISK2:[MICROCT]MICROCT_SETUP_USER.COM&amp;lt;/code&amp;gt; add the following line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ SCANCO_SUBMIT_COMMAND :== SUBMIT/NOPRINT/QUE=SYS$SLOW /NOTIFY/LOG=SYS$SCRATCH:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then end session and log in again.  Definition of the symbol in the &lt;br /&gt;
&amp;lt;code&amp;gt;MICRO_SETUP_USER.COM&amp;lt;/code&amp;gt; supersedes the standard setting.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use the new &amp;lt;code&amp;gt;UCT_BACKUP&amp;lt;/code&amp;gt; software===&lt;br /&gt;
&lt;br /&gt;
New Features (i) You can now select multiple samples with the Shift and/or the Ctrl key; and (2) You can use the sample name filter field on top to display only names containing the filter string.&lt;br /&gt;
&lt;br /&gt;
Start the move/copy by clicking on &amp;lt;code&amp;gt;&#039;Start...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;&#039;Script...&#039;&amp;lt;/code&amp;gt; button is for advanced users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Advanced Users:&amp;lt;/b&amp;gt;&lt;br /&gt;
Use of the &#039;Script...&#039; button: this will generate a script,&lt;br /&gt;
&amp;lt;code&amp;gt;sys$scratch:archive.com&amp;lt;/code&amp;gt;,&lt;br /&gt;
that you may submit in batch mode later (e.g. over night) by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command sys$scratch:archive.com/after=23:59&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(In a multi-computer cluster setup, you may want to specify the exact queue name of the computer that has the tape hooked up by giving e.g. &amp;lt;code&amp;gt;/que=sceval_fast&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
Insert a tape, but do NOT mount the tape in the normal program. (If necessary: if it&#039;s a new tape, initialize it as usual). The batch job will be started one minute before midnight in the example above.&lt;br /&gt;
&amp;lt;code&amp;gt;$ show entry&amp;lt;/code&amp;gt; will show you that it is holding until then.&lt;br /&gt;
See &amp;lt;code&amp;gt;$ help submit /after&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$ help dcl_tips date_time example&amp;lt;/code&amp;gt; for more help on this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Little Reminder:&amp;lt;/b&amp;gt;&lt;br /&gt;
While the tape is running and writing to it, DO NOT LOG OUT, DO NOT INTERRUPT THE PROGRAM! This would make that tape unusable from this point on - you could still read from that tape up to this point, but could not add more scans to this tape.&lt;br /&gt;
What to do when tape is full? It then displays some message about continuing on another tape. Hit &amp;lt;code&amp;gt;ctrl/c&amp;lt;/code&amp;gt; to interrupt the program, take a fresh tape, initialize it, select the remaining scans to archive again, hit &amp;lt;code&amp;gt;&#039;start&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
And last but not least: WE STRONGLY URGE YOU TO DO THE WEEKLY BACKUP (SAFETY BACKUP OF USER DISK1 WITH YOUR DATABASES ON IT). Two users DID experience disk crashes last year, and without the weekly backup, you may still have all scans on the data disk (e.g. disk2), but without the databases you cannot tell which scans belong the which sample!&lt;br /&gt;
&lt;br /&gt;
How to do weekly backup: insert &#039;special&#039; weekly backup tape, e.g. week_a, and&lt;br /&gt;
just hit &#039;Full backup to tape&#039;.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Import foreign data into the Scanco database on the VMS system===&lt;br /&gt;
&lt;br /&gt;
Only ISQ files can be imported into the database, however it is possible to convert other types of data into ISQ files (i.e., stacks of BMPs into ISQ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 1:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After transfering your data to the VMS system (use the data disk &amp;lt;code&amp;gt;disk2&amp;lt;/code&amp;gt;, NOT the user disk &amp;lt;code&amp;gt;disk1&amp;lt;/code&amp;gt;), use the IPL commands &amp;lt;code&amp;gt;/import_freeformat&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/read_aim function&amp;lt;/code&amp;gt; to import your data for conversion to an ISQ.&lt;br /&gt;
&lt;br /&gt;
For DICOM files, start IPL and run the &amp;lt;code&amp;gt;/dicom&amp;lt;/code&amp;gt; function to import. For DICOM, if your object is a single 3D file (-multifile false) or many many individual slice files (-multifile true, and give beginning of filenames, and –extension).&lt;br /&gt;
&lt;br /&gt;
There may be requests by IPL to convert your data to &amp;lt;code&amp;gt;signed short&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;signed char&amp;lt;/code&amp;gt; from other data types. Obey these requests and do it by running the &amp;lt;code&amp;gt;/convert_unsigned&amp;lt;/code&amp;gt; function.&lt;br /&gt;
&lt;br /&gt;
Then, write the ISQ file.&lt;br /&gt;
&amp;lt;pre&amp;gt;ipl&amp;gt; toisq in DK0:[MICROCT.DATA]D0000001.ISQ&lt;br /&gt;
    -square           true&lt;br /&gt;
    -original_pos     false&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This writes the ISQ file. &lt;br /&gt;
&amp;lt;b&amp;gt;Remember&amp;lt;/b&amp;gt;, the ISQ name must be 8 characters long (1 character followed by seven digits)!!! The letters and numbers can be chosen freely.&lt;br /&gt;
&lt;br /&gt;
Fill out a log sheet with the original AIM names that were imported, and the resulting ISQ names that were generated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 2: &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a sample in the database and write down the sample and measurement number. Then, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run um:uct_import&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And give the new ISQ file, the new sample-number and check that the feedback is correct (i.e., that the name from the database is matching the name from the ISQ file header).&lt;br /&gt;
&lt;br /&gt;
Operator and controlfile can be left 0 if you want.&lt;br /&gt;
&lt;br /&gt;
Then it changes the sample and measurement number in the ISQ file, makes the correct directory on &amp;lt;code&amp;gt;DK0&amp;lt;/code&amp;gt;, and gives you the line on the screen of how to rename the file to the correct, new directory. Take this line and use it on the command line.  Done!  &lt;br /&gt;
&lt;br /&gt;
You can now use the normal &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; program with this file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you were importing an AIM file, delete the original file as it will have the wrong measurement indexes in its log header. You will have to produce the AIM file again from the ISQ so our database writes the evaluation results into the correct sample fields.&lt;br /&gt;
&lt;br /&gt;
==Project Management==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Example filled out log sheet===&lt;br /&gt;
&lt;br /&gt;
A log sheet, which is always kept near the scanner, must be filled out for&lt;br /&gt;
every measurement on the system.  A blank log sheet is available in the&lt;br /&gt;
Documents section of this Wiki page.&lt;br /&gt;
&lt;br /&gt;
Here is an example log sheet:&lt;br /&gt;
&lt;br /&gt;
::[[Image:Herzog_pic.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Evaluation==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Start a 3D evaulation from the terminal===&lt;br /&gt;
&lt;br /&gt;
Warning: Do not change &amp;lt;code&amp;gt;uct_evaulation_v4.com&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ipl_fixed_batch_v4.com&amp;lt;/code&amp;gt; in .eval, but only work on your own file (i.e., eval_steve).&lt;br /&gt;
First, an explanation of how the normal evaluation runs by hitting the &#039;Start 3d&#039; button.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_v4.com/para=(xxx,yyy,zzz,…)&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are 8 parameters:&lt;br /&gt;
*P1: number of print outs of our results sheet&lt;br /&gt;
*P2: the ISQ filename&lt;br /&gt;
*P3-5: start x (pos x), y, z&lt;br /&gt;
*P6-8: dim x, y, z&lt;br /&gt;
The parameters p3-p8 come from the white bounding box. The problem is that when you start from the terminal you do not have these. This problem can be overcome by using the &amp;lt;code&amp;gt;isq_to_aim_gobjbox.exe&amp;lt;/code&amp;gt; and then give the relevant parameters. You can &lt;br /&gt;
&amp;lt;code&amp;gt;$ run um: isq_to_aim_gobjbox.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
to see what it&#039;s asking for.&lt;br /&gt;
By using gobjbox you do not need p3-p8. Therefore you can start the evaluation by giving:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_special_josh.com –/para=(1,dk0:[microct.data.0000275.0000245]c0000332.ISQ)&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that you can make &amp;lt;code&amp;gt;uct_evaluation_special_josh.com&amp;lt;/code&amp;gt; such that there is no need for P1 (change p2 to p1 in the script, etc).&lt;br /&gt;
[Alternatively to using the gobjbox you could use the normal isq_to_aim, but hard code the dim and pos.]&lt;br /&gt;
Then call whatever IPL files you want to call. Look into &amp;lt;code&amp;gt;fixed_batch_v4&amp;lt;/code&amp;gt; to see how we turn on the database always on the first line of every IPL part, and how we calculate parameters.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use &amp;lt;code&amp;gt;EVAL PROGRAM (Slice Viewer)&amp;lt;/code&amp;gt; without importing ISQ into the database===&lt;br /&gt;
&lt;br /&gt;
In a terminal, &amp;lt;code&amp;gt;$ def uct_default_isq xxxxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
Then start the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool (or &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt;). Hit cancel when asked for a file to read and the default ISQ that was set will be read.&lt;br /&gt;
&lt;br /&gt;
ONLY START A 3D EVALUATION IF AND ONLY IF THE SAMPLE (PATIENT) AND MEASURMENT INDEX ARE *CORRECT* IN THE ISQ HEADER! It is actually strongly suggested to properly import that ISQ into the database before you run a full 3D evaluation!&lt;br /&gt;
&lt;br /&gt;
===HowTo: Submit a job to the queue===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit/noprint /que=sys$slow ipl_voi_josh_m.com &lt;br /&gt;
  - /log=sys$scratch:test.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract your results from the 3D database===&lt;br /&gt;
&lt;br /&gt;
Assuming you&#039;ve used the scanco_submit_command to initialize your evaluations (either manually or through the uct_evaluation tool) then you can get all of your results stored into a text file that can be easily imported in Excel.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ uct_list&amp;lt;/pre&amp;gt;&lt;br /&gt;
The output text file will be stored in &amp;lt;code&amp;gt;sys$scratch&amp;lt;/code&amp;gt; and you can ftp this to a PC so that it can be imported into excel and further analysis can be performed. &lt;br /&gt;
&lt;br /&gt;
Importing into Excel requires setting a deliminator based on the space.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Tabulate your LOG file results from 3D evaluations===&lt;br /&gt;
&lt;br /&gt;
Only use this if you have not used the standard &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool to generate your 3D evaluations (in which case see the HowTo related to the 3D database).&lt;br /&gt;
You can tabulate the LOG files:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or whatever you want to search for can be stored in a text file&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search/output=sys$scratch:ov.txt xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To search more than one log file, and get the output into one single file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ fda/output=xxx.txt search *.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fda means &#039;file do all&#039; and is a script made by Scanco to do one command (search) on a wildcard of files (*.log). Then put all the ov.txt, tv.txt, name.txt etc. files into excel.&lt;br /&gt;
Josh has made a .com file that does a similar job as described above.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Assign special 3D evaluation to the uct_evaluation tool===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;: This is for advanced users ONLY.  Do not attempt this without contacting Steve!&lt;br /&gt;
&lt;br /&gt;
This will show how to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt;:&lt;br /&gt;
It is easy to set up multiple .COM files for the 3D evalulation tool, one such set-up is already prepared on your computer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ eval_special&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will do something similar to &amp;lt;code&amp;gt;$ voi&amp;lt;/code&amp;gt; where the normal contour program opens, but if you start the 3D eval, the special script &amp;lt;code&amp;gt;um:uct_evaluation_special.com&amp;lt;/code&amp;gt; is called (associated with eval_special), which then in turn calls &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt;, where you can specify your own set of thresholds, etc.&lt;br /&gt;
&lt;br /&gt;
So it is a daisy chain of files which we will need to follow to set up a special &amp;lt;code&amp;gt;xxx_kyle.com&amp;lt;/code&amp;gt; script, and where ever we encounter &amp;lt;code&amp;gt;_special.com&amp;lt;/code&amp;gt;, we copy and change it to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; you will need to do the following:&lt;br /&gt;
&lt;br /&gt;
*1. Edit &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (double-click on file), please be careful here, it&#039;s very important! (and I hope you have done your &#039;weekly full backup&#039; regularly, so you could always retrieve a good version of login.com...)&lt;br /&gt;
&lt;br /&gt;
*2. Then, towards to bottom and duplicate the line&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_special :== @com:eval_var.com um:uct_evaluation_special.com&amp;lt;/code&amp;gt;&lt;br /&gt;
and change duplicate to&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_kyle    :== @com:eval_var.com um:uct_evaluation_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make this command &amp;lt;code&amp;gt;eval_kyle&amp;lt;/code&amp;gt; available after you login freshly. Save and Exit.&lt;br /&gt;
&lt;br /&gt;
*3. Then go to &amp;lt;code&amp;gt;disk1:[microct.eval]&amp;lt;/code&amp;gt; and copy the file &amp;lt;code&amp;gt;uct_evaluation_special.com&amp;lt;/code&amp;gt; to the name &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt; (&#039;Commands&#039;, &#039;Copy ...&#039;, BUT CLICK ON THE THREE DOTS and give new output name. &lt;br /&gt;
If you do not see the &amp;lt;code&amp;gt;eval_special:&amp;lt;/code&amp;gt; go to terminal, &amp;lt;code&amp;gt;$ dir ue:*special*.com&amp;lt;/code&amp;gt; and take it from the &amp;lt;code&amp;gt;microct_common&amp;lt;/code&amp;gt; directory)&lt;br /&gt;
&lt;br /&gt;
*4. Edit the &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt; file: at the top, change &amp;lt;code&amp;gt;ipl_......_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*5. Copy &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*6. Edit &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; to your liking. If you want &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; to not perform the full evaluation, but only something akin to &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, then, in the steps above, copy &amp;lt;code&amp;gt;uct_eval_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;ipl_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; (thus you take the &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; script as template for the &amp;lt;code&amp;gt;_kyle&amp;lt;/code&amp;gt; script).&lt;br /&gt;
&lt;br /&gt;
*7. Then open a new terminal (&#039;applications&#039;, &#039;decterm&#039;), &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; should work now!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;: When you start the 3D eval, then&lt;br /&gt;
&amp;lt;code&amp;gt;$ que&amp;lt;/code&amp;gt;&lt;br /&gt;
will show you your batch job with your name on it now!&lt;br /&gt;
&lt;br /&gt;
And now a few more explanations how the whole thing works: in all eval programs, hitting &#039;Start 3d&#039; just submits the logical &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$ show log uct_evaluation&amp;lt;/code&amp;gt; shows you that by default, this points to &amp;lt;code&amp;gt;ue:uct_evaluation_v4.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Those little &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;eval_steve&amp;lt;/code&amp;gt; scripts then just temporarily redefine this logical so that a different script is submitted when you &amp;lt;code&amp;gt;&#039;start 3d eval&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
About the &#039;&#039;&#039;corelut eval&#039;&#039;&#039;: Then we start a whole different eval program: the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt;. So, if you set up a &amp;lt;code&amp;gt;eval_steve_c&amp;lt;/code&amp;gt; (or whatever you want to call it): Produce a &amp;lt;code&amp;gt;eval_var_c.com&amp;lt;/code&amp;gt; in the directory commands (maybe copy from microct_common to [microct.commands]), and there, on the last line, instead of starting&lt;br /&gt;
&amp;lt;code&amp;gt;$ uct_evaluation&amp;lt;/code&amp;gt;&lt;br /&gt;
(the normal program), replace by&lt;br /&gt;
&amp;lt;code&amp;gt;$ evalc&amp;lt;/code&amp;gt;&lt;br /&gt;
which starts the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt; - and because the &amp;lt;code&amp;gt;eval_var.com&amp;lt;/code&amp;gt; has over-ridden the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; logical just before, then you are starting different script upon starting 3d eval.&lt;br /&gt;
NB: we have a logical AND a symbol called &amp;lt;code&amp;gt;uct_evalution&amp;lt;/code&amp;gt;. Sorry for confusion. Symbol &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; starts normal &amp;lt;code&amp;gt;eval&amp;lt;/code&amp;gt; program, so this is what you replace by symbol &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt; now).&lt;br /&gt;
&lt;br /&gt;
===HowTo: Convert CT numbers to mg HA/ccm===&lt;br /&gt;
&lt;br /&gt;
The two byte numbers (short) can be converted to mu values by first dividing by mu_scaling which is probably 4096. Then apply the slope and intercept to get mg HA/ccm. A typical slope may be 2.95e+02 and intercept -1.896e+02. &lt;br /&gt;
&lt;br /&gt;
These numbers are available in the AIM header, or the ISQ header (&amp;lt;code&amp;gt;$ run ut:ctheader&amp;lt;/code&amp;gt;).&lt;br /&gt;
The conversion is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mg HA/ccm = (AIM/mu_scaling) * slope + intercept&lt;br /&gt;
mg HA/ccm = (AIM/4096) * 295.494 – 189.695&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!---------------------------------------------------------------------- &lt;br /&gt;
Mu_Scaling                    4096 &lt;br /&gt;
Calibration Data              55 kVp, 200mg HA wedge, 4096 scaling &lt;br /&gt;
Calib. default unit type      2 (Density) &lt;br /&gt;
Density: unit                 mg HA/ccm &lt;br /&gt;
Density: slope                2.95493988e+02 &lt;br /&gt;
Density: intercept            -1.89695007e+02 &lt;br /&gt;
HU: mu water                  0.58200 &lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a list of registered measurements===&lt;br /&gt;
&lt;br /&gt;
:* To generate a list of measurements that are registered in the data base, to determine where backups are stored, or if the data is still on disk:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;$ write_info&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*It asks you for a range of measurement numbers or sample names, and creates &amp;lt;code&amp;gt; sys$scratch:info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix SAP colours when green===&lt;br /&gt;
&lt;br /&gt;
(using the standard gray colourmap), if changing color maps doesn&#039;t help.&lt;br /&gt;
&lt;br /&gt;
:*Menu point &#039;Norm, Default is Bone = 16000.&lt;br /&gt;
&lt;br /&gt;
:*Take max for 32000, or &#039;Adapt slice&#039;.&lt;br /&gt;
&lt;br /&gt;
::Note: Do NOT take &#039;adapt vol&#039; - it will be extremely slow!  Every single mouse-click it re-calculates whole volume...&lt;br /&gt;
&lt;br /&gt;
==Writing Scripts==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Get information about a sample or measurement from database===&lt;br /&gt;
&lt;br /&gt;
The following will create a &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create your own IPL script with some tips===&lt;br /&gt;
&lt;br /&gt;
To make a script that would submit a job to the queue with the command as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you need to create your own IPL file would be translated to the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit /noprint /que=sys$slow ue:IPL_VOI_JOSH_M.COM &lt;br /&gt;
  - /log=sys$scratch:test.log /para=(&#039;aim_file&#039;,&#039;gobj_file&#039;,&#039;seg_file&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The IPL file would look something like this…&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$   if p1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$ 	THEN &lt;br /&gt;
$	write sys$output &amp;quot;Give DK0:[xxx]C0001234_SEG.aim on the line.&amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Or: &amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Type $ scanco_submit_command um:ipl_eval_autostart/para=(dk0:[xxx]c00123_seg.aim) &amp;quot;&lt;br /&gt;
$ 	exit&lt;br /&gt;
$   endif&lt;br /&gt;
$&lt;br /&gt;
$ gobj_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.GOBJ&amp;quot;&lt;br /&gt;
$ aim_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.AIM&amp;quot;&lt;br /&gt;
$&lt;br /&gt;
$!&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some more handy IPL sequences are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then you just need to give meas. number as P1 (and maybe slice range as p2),&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
OR, some nice starts are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P3 .EQS. &amp;quot;&amp;quot;&lt;br /&gt;
$    THEN&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to duplicate&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: New Sample Number from Database&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: New Start Letter of ISQ file&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P4: Optional: Operator Number&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P5: Optional: Controlfile Number&amp;quot;&lt;br /&gt;
$      EXIT&lt;br /&gt;
$    ENDIF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where you say which parameters HAVE to be there (up to p3), and which ones are optional.&lt;br /&gt;
&lt;br /&gt;
All together, the script may look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$    THEN &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to reco&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: Optional: Slice number N or Range M:N. Auto:All&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: Optional: Queue. Auto: sys$slow&amp;quot; &lt;br /&gt;
$      EXIT &lt;br /&gt;
$    ENDIF &lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A &lt;br /&gt;
$ if p3 .eqs. &amp;quot;&amp;quot; then p3 := SYS$SLOW &lt;br /&gt;
$ slices  = p2 &lt;br /&gt;
$ quename = p3 &lt;br /&gt;
$ INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1) &lt;br /&gt;
$ INPUT = INPUT - F$PARSE(INPUT,,,&amp;quot;VERSION&amp;quot;) &lt;br /&gt;
$ logfile = &amp;quot;sys$scratch:RECO_&amp;quot; + f$PARSE(input,,,&amp;quot;NAME&amp;quot;) + &amp;quot;.LOG&amp;quot; &lt;br /&gt;
$ submit/noprint/queue=&#039;quename&#039; uct_reconstruction_file - &lt;br /&gt;
    /para=(&#039;input&#039;,&#039;slices&#039;,&#039;logfile&#039;) &lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;lt;code&amp;gt;uct_reconstruction_file&amp;lt;/code&amp;gt; is a logical that points to &amp;lt;code&amp;gt;um:uct_reconstruction.com&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Logicals are preferred in scripts to make them more universal.&lt;br /&gt;
&lt;br /&gt;
==Errors and Fixes==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix &amp;quot;last slice&amp;quot; error problem when extracting AIM from ISQ===&lt;br /&gt;
&lt;br /&gt;
Sometimes the evaluation script (i.e., voi) converting the ISQ to an AIM fails because it tries to read one slice more than what is available in the ISQ data. The result of this failure is that the 3D analysis appears to fail and no .AIM or _SEG.AIM is created in the data directory. For example, it may have tried to read 261 slices, but there were only 260 slices available.&lt;br /&gt;
The easiest work around is to make sure that the white bounding box in the uct_evaluation program does not include the last slice (largest Z dimension). Scanco is aware of this problem and will fix it in future software releases (V5.2).&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=How_To%27s&amp;diff=229</id>
		<title>How To&#039;s</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=How_To%27s&amp;diff=229"/>
		<updated>2005-08-15T13:02:47Z</updated>

		<summary type="html">&lt;p&gt;Scanco: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=HowTo Library=&lt;br /&gt;
&lt;br /&gt;
==OpenVMS==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Shut down the Alpha stations and start up again===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Warning:&amp;lt;/b&amp;gt; Do not do this unless absolutely necessary.&lt;br /&gt;
&lt;br /&gt;
For shutdown&lt;br /&gt;
&lt;br /&gt;
At the login screen, type &amp;quot;shutdown&amp;quot;/no password and hit enter. &lt;br /&gt;
Then, you can turn the computer off at the prompt.&lt;br /&gt;
&lt;br /&gt;
Then, you may turn the disk array off (unplug it as there is no power switch).&lt;br /&gt;
&lt;br /&gt;
After you move the computer, power on the disk array and then the computer.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Understand difference between &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;===&lt;br /&gt;
&lt;br /&gt;
The command &amp;lt;code&amp;gt;mcr&amp;lt;/code&amp;gt; is the same as &amp;lt;code&amp;gt;run&amp;lt;/code&amp;gt;, but only with mcr you can hand over &#039;in-line&#039; parameters to an .exe file:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
does not work, but you  have to say&lt;br /&gt;
&amp;lt;pre&amp;gt;$ mcr ut:ctheader.exe c000124.isq&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
But funnily if you define a symbol in &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (or &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;),&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ ctheader :== $ut:ctheader.exe&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
with just neither run nor mcr, but the &#039;funny&#039; $ sign, then you can also hand over the ISQ name in-line.&lt;br /&gt;
&lt;br /&gt;
Small detail with big effect...&lt;br /&gt;
&lt;br /&gt;
===HowTo: Make commands available to all users with symbols or paths===&lt;br /&gt;
&lt;br /&gt;
DCL$PATH is one way to do that, WE don&#039;t use it...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ def dcl$path disk1:[microct.main],disk1:[microct.util]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
then, if you type&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ uct_t&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
it will first try to&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ @uct_t.com&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
and then&lt;br /&gt;
&amp;lt;code&amp;gt;&lt;br /&gt;
$ r uct_t.exe&lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
however, we usually define it by giving full path:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ progx :== $disk1:[microct.main]progx.exe&lt;br /&gt;
$ com_proc_x :== @disk1:[microct.main]procedure.com&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type the shortcut (&#039;symbol&#039; in VMS language)&lt;br /&gt;
&lt;br /&gt;
We use the &#039;cd&#039; to set the default path, you may also use this in your command procedure:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;proc.com&amp;lt;/code&amp;gt;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd &#039;p1&#039;&lt;br /&gt;
$ dir *.*/size&lt;br /&gt;
&lt;br /&gt;
$ define COM disk1:[microct.commands]&lt;br /&gt;
$ p :== @COM:PROC.COM&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
these both go into &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then, you can just type:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ p disk4:[microct.data.0000007.000009]*.ISQ&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Launch an editor such as EVE===&lt;br /&gt;
&lt;br /&gt;
On the command line&lt;br /&gt;
&amp;lt;pre&amp;gt;$ edit/display=decwindows/tpu fname.txt&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit a symbol set by Scanco such as AIX===&lt;br /&gt;
&lt;br /&gt;
IF YOU DO THIS, YOU ARE CANCELLING THE SCANCO SUPPORT FOR YOUR CHANGE!&lt;br /&gt;
&lt;br /&gt;
YOUR CHANGE WILL AFFECT *ALL* USERS ON THE WHOLE CLUSTER...&lt;br /&gt;
&lt;br /&gt;
Log in as user calibration&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set proc/priv=bypass&lt;br /&gt;
$ cdc (changes to microct_common)&lt;br /&gt;
$ sea *.com aix&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Edit that file which is called &amp;lt;code&amp;gt;microct_setup_common.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Another example&#039;&#039;: To make the backspace/insert keys work properly, edit the &amp;lt;code&amp;gt;login.com&amp;lt;/code&amp;gt; and insert the line&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ set terminal/insert&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Anywhere suitable.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a customized button in the session manager===&lt;br /&gt;
&lt;br /&gt;
The session manager part to enable the double-click on the AIM file:&lt;br /&gt;
Session Manager, &#039;Options&#039;, &#039;Menu&#039;, enter new item&lt;br /&gt;
SAP&lt;br /&gt;
with command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
@decw$user_defaults:sap$vue&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then move that menu point into &#039;Applications&#039; menu.&lt;br /&gt;
Also:&lt;br /&gt;
&#039;Options&#039;, &#039;File types&#039;, Create &#039;AIM&#039; file type.&lt;br /&gt;
Move &#039;rename&#039;, &#039;copy&#039;, &#039;purge&#039; etc. into menu, Select &#039;SAP&#039;, click  on&lt;br /&gt;
&#039;Change double click&#039;, and also move SAP into menu.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Export the VMS display to SUN or LINUX terminal===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# - temple&lt;br /&gt;
$ - sceval&lt;br /&gt;
# xhost +temple.ucalgary.ca&lt;br /&gt;
# ssh -X microct@sceval.ucalgary.ca&lt;br /&gt;
$ set display /create /transport=tcpip /node=temple.ucalgary.ca&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;NOTE:&amp;lt;/b&amp;gt; Do not use &amp;lt;code&amp;gt;xhost+&amp;lt;/code&amp;gt;.  Always specific exactly which computer is being&lt;br /&gt;
allowed X access.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Monitor CPU usage with a program like TOP===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ monitor/interval=1 processes/topcpu&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Configure the EVE editor===&lt;br /&gt;
&lt;br /&gt;
The following file, called &amp;lt;code&amp;gt;tpu.dat&amp;lt;/code&amp;gt;, should be installed in &amp;lt;code&amp;gt;disk1:[microct.xdefaults]:&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# DECTPU V3.1 1993-04-22 15:50 defaults&lt;br /&gt;
# CHANGED B.KOLLER 21-JUN-90&lt;br /&gt;
#&lt;br /&gt;
# Copyright (c) 1993 Digital Equipment Corporation.  All rights reserved.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
# The following are all the resource names that DECTPU supports.&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Title:		DECTPU Copyright © Digital Equipment Corporation 1992.  All Rights Reserved.&lt;br /&gt;
Tpu.Tpu$MainWindow.ApplicationTitle:	DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.IconName:		DECTPU&lt;br /&gt;
Tpu.Tpu$MainWindow.X:			610&lt;br /&gt;
Tpu.Tpu$MainWindow.Y:			0&lt;br /&gt;
#&lt;br /&gt;
# The following resource names are commented out so that users can specify&lt;br /&gt;
# *rows and *columns and have DECTPU obey those directives.  If DECTPU finds&lt;br /&gt;
# finds no resource names governing the number of rows and columns it should&lt;br /&gt;
# have, it uses 24 rows and 80 columns.&lt;br /&gt;
#&lt;br /&gt;
#&lt;br /&gt;
Tpu.Tpu$MainWindow.Columns:	80&lt;br /&gt;
Tpu.Tpu$MainWindow.Rows:	56&lt;br /&gt;
*EVE_MENU_BAR*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmScrollBar*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmDialogShell*background:	#ADADADADADAD&lt;br /&gt;
Tpu*XmMenuShell*background:	#ADADADADADAD&lt;br /&gt;
*background:			white&lt;br /&gt;
Tpu*condensedFont: OFF&lt;br /&gt;
Tpu*fontSetSelection: 0&lt;br /&gt;
&lt;br /&gt;
# 0 = big font&lt;br /&gt;
# 1 = little font&lt;br /&gt;
# 2 = GS font (German Standard)&lt;br /&gt;
# 3 = Fine font (used only for non-latin 1 fonts?)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Scanco System and Setup==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract patient name from database===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will show you sample-name of sample-number 1234&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ mcr um:uct_info -m 1234&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will give you some (stupid) info about meas 1234&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you use this function all the time, put the following into &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ uct_info  :== $um:uct_info&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then the usage info will even be correct&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract disk usage information===&lt;br /&gt;
&lt;br /&gt;
To look at the RSQs in the database&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ dir/siz dk0:[microct.data...]*.rsq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
the three dots means all subdirectories.&lt;br /&gt;
&lt;br /&gt;
Other useful commands:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$ ctheader xxxxxx.rsq&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
shows you header.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ fda command file-wildcard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
does a &#039;file do all&#039; of the command on all the given wildcard filenames.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe xxxx | search sys$pipe &amp;quot;patient&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
is the pipe command in VMS.&lt;br /&gt;
&lt;br /&gt;
So all three combined:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ pipe fda ctheader dk0:[microct.data...]*.rsq | search sys$pipe &amp;quot;patient name&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or any other field you want to search for!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Other ideas&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
gives you a file &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; with info in it (leave defaults to get all samples ever scanned, otherwise &#039;zoom&#039; in on some samples.)&lt;br /&gt;
&lt;br /&gt;
Check out the &amp;lt;code&amp;gt;search&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ help search&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and &amp;lt;code&amp;gt;/match=and&amp;lt;/code&amp;gt;&lt;br /&gt;
or &amp;lt;code&amp;gt;/match=or&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Edit Scanco &amp;lt;code&amp;gt;SCANCO_SUBMIT_COMMAND&amp;lt;/code&amp;gt; symbol===&lt;br /&gt;
&lt;br /&gt;
*Check the current setting:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ show sym *submit*&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In directory &amp;lt;code&amp;gt;DISK2:[MICROCT]MICROCT_SETUP_USER.COM&amp;lt;/code&amp;gt; add the following line:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ SCANCO_SUBMIT_COMMAND :== SUBMIT/NOPRINT/QUE=SYS$SLOW /NOTIFY/LOG=SYS$SCRATCH:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Then end session and log in again.  Definition of the symbol in the &lt;br /&gt;
&amp;lt;code&amp;gt;MICRO_SETUP_USER.COM&amp;lt;/code&amp;gt; supersedes the standard setting.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use the new &amp;lt;code&amp;gt;UCT_BACKUP&amp;lt;/code&amp;gt; software===&lt;br /&gt;
&lt;br /&gt;
New Features (i) You can now select multiple samples with the Shift and/or the Ctrl key; and (2) You can use the sample name filter field on top to display only names containing the filter string.&lt;br /&gt;
&lt;br /&gt;
Start the move/copy by clicking on &amp;lt;code&amp;gt;&#039;Start...&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
The &amp;lt;code&amp;gt;&#039;Script...&#039;&amp;lt;/code&amp;gt; button is for advanced users.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Advanced Users:&amp;lt;/b&amp;gt;&lt;br /&gt;
Use of the &#039;Script...&#039; button: this will generate a script,&lt;br /&gt;
&amp;lt;code&amp;gt;sys$scratch:archive.com&amp;lt;/code&amp;gt;,&lt;br /&gt;
that you may submit in batch mode later (e.g. over night) by typing:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command sys$scratch:archive.com/after=23:59&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
(In a multi-computer cluster setup, you may want to specify the exact queue name of the computer that has the tape hooked up by giving e.g. &amp;lt;code&amp;gt;/que=sceval_fast&amp;lt;/code&amp;gt; )&lt;br /&gt;
&lt;br /&gt;
Insert a tape, but do NOT mount the tape in the normal program. (If necessary: if it&#039;s a new tape, initialize it as usual). The batch job will be started one minute before midnight in the example above.&lt;br /&gt;
&amp;lt;code&amp;gt;$ show entry&amp;lt;/code&amp;gt; will show you that it is holding until then.&lt;br /&gt;
See &amp;lt;code&amp;gt;$ help submit /after&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;$ help dcl_tips date_time example&amp;lt;/code&amp;gt; for more help on this.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Little Reminder:&amp;lt;/b&amp;gt;&lt;br /&gt;
While the tape is running and writing to it, DO NOT LOG OUT, DO NOT INTERRUPT THE PROGRAM! This would make that tape unusable from this point on - you could still read from that tape up to this point, but could not add more scans to this tape.&lt;br /&gt;
What to do when tape is full? It then displays some message about continuing on another tape. Hit &amp;lt;code&amp;gt;ctrl/c&amp;lt;/code&amp;gt; to interrupt the program, take a fresh tape, initialize it, select the remaining scans to archive again, hit &amp;lt;code&amp;gt;&#039;start&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
And last but not least: WE STRONGLY URGE YOU TO DO THE WEEKLY BACKUP (SAFETY BACKUP OF USER DISK1 WITH YOUR DATABASES ON IT). Two users DID experience disk crashes last year, and without the weekly backup, you may still have all scans on the data disk (e.g. disk2), but without the databases you cannot tell which scans belong the which sample!&lt;br /&gt;
&lt;br /&gt;
How to do weekly backup: insert &#039;special&#039; weekly backup tape, e.g. week_a, and&lt;br /&gt;
just hit &#039;Full backup to tape&#039;.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Import foreign data into the Scanco database on the VMS system===&lt;br /&gt;
&lt;br /&gt;
Only ISQ files can be imported into the database, however it is possible to convert other types of data into ISQ files (i.e., stacks of BMPs into ISQ).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 1:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After transfering your data to the VMS system (use the data disk &amp;lt;code&amp;gt;disk2&amp;lt;/code&amp;gt;, NOT the user disk &amp;lt;code&amp;gt;disk1&amp;lt;/code&amp;gt;), use the IPL commands &amp;lt;code&amp;gt;/import_freeformat&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;/read_aim function&amp;lt;/code&amp;gt; to import your data for conversion to an ISQ.&lt;br /&gt;
&lt;br /&gt;
For DICOM files, start IPL and run the &amp;lt;code&amp;gt;/dicom&amp;lt;/code&amp;gt; function to import. For DICOM, if your object is a single 3D file (-multifile false) or many many individual slice files (-multifile true, and give beginning of filenames, and –extension).&lt;br /&gt;
&lt;br /&gt;
There may be requests by IPL to convert your data to &amp;lt;code&amp;gt;signed short&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;signed char&amp;lt;/code&amp;gt; from other data types. Obey these requests and do it by running the &amp;lt;code&amp;gt;/convert_unsigned&amp;lt;/code&amp;gt; function.&lt;br /&gt;
&lt;br /&gt;
Then, write the ISQ file.&lt;br /&gt;
&amp;lt;pre&amp;gt;ipl&amp;gt; toisq in DK0:[MICROCT.DATA]D0000001.ISQ&lt;br /&gt;
    -square           true&lt;br /&gt;
    -original_pos     false&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This writes the ISQ file. &lt;br /&gt;
&amp;lt;b&amp;gt;Remember&amp;lt;/b&amp;gt;, the ISQ name must be 8 characters long (1 character followed by seven digits)!!! The letters and numbers can be chosen freely.&lt;br /&gt;
&lt;br /&gt;
Fill out a log sheet with the original AIM names that were imported, and the resulting ISQ names that were generated.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;PART 2: &amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Create a sample in the database and write down the sample and measurement number. Then, run:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ run um:uct_import&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And give the new ISQ file, the new sample-number and check that the feedback is correct (i.e., that the name from the database is matching the name from the ISQ file header).&lt;br /&gt;
&lt;br /&gt;
Operator and controlfile can be left 0 if you want.&lt;br /&gt;
&lt;br /&gt;
Then it changes the sample and measurement number in the ISQ file, makes the correct directory on &amp;lt;code&amp;gt;DK0&amp;lt;/code&amp;gt;, and gives you the line on the screen of how to rename the file to the correct, new directory. Take this line and use it on the command line.  Done!  &lt;br /&gt;
&lt;br /&gt;
You can now use the normal &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; program with this file.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;Note&amp;lt;/b&amp;gt;, if you were importing an AIM file, delete the original file as it will have the wrong measurement indexes in its log header. You will have to produce the AIM file again from the ISQ so our database writes the evaluation results into the correct sample fields.&lt;br /&gt;
&lt;br /&gt;
==Project Management==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Example filled out log sheet===&lt;br /&gt;
&lt;br /&gt;
A log sheet, which is always kept near the scanner, must be filled out for&lt;br /&gt;
every measurement on the system.  A blank log sheet is available in the&lt;br /&gt;
Documents section of this Wiki page.&lt;br /&gt;
&lt;br /&gt;
Here is an example log sheet:&lt;br /&gt;
&lt;br /&gt;
::[[Image:Herzog_pic.jpg]]&lt;br /&gt;
&lt;br /&gt;
==Evaluation==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Start a 3D evaulation from the terminal===&lt;br /&gt;
&lt;br /&gt;
Warning: Do not change &amp;lt;code&amp;gt;uct_evaulation_v4.com&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;ipl_fixed_batch_v4.com&amp;lt;/code&amp;gt; in .eval, but only work on your own file (i.e., eval_steve).&lt;br /&gt;
First, an explanation of how the normal evaluation runs by hitting the &#039;Start 3d&#039; button.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_v4.com/para=(xxx,yyy,zzz,…)&amp;lt;/pre&amp;gt;&lt;br /&gt;
There are 8 parameters:&lt;br /&gt;
*P1: number of print outs of our results sheet&lt;br /&gt;
*P2: the ISQ filename&lt;br /&gt;
*P3-5: start x (pos x), y, z&lt;br /&gt;
*P6-8: dim x, y, z&lt;br /&gt;
The parameters p3-p8 come from the white bounding box. The problem is that when you start from the terminal you do not have these. This problem can be overcome by using the &amp;lt;code&amp;gt;isq_to_aim_gobjbox.exe&amp;lt;/code&amp;gt; and then give the relevant parameters. You can &lt;br /&gt;
&amp;lt;code&amp;gt;$ run um: isq_to_aim_gobjbox.exe &amp;lt;/code&amp;gt;&lt;br /&gt;
to see what it&#039;s asking for.&lt;br /&gt;
By using gobjbox you do not need p3-p8. Therefore you can start the evaluation by giving:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ scanco_submit_command ue:uct_evaluation_special_josh.com –/para=(1,dk0:[microct.data.0000275.0000245]c0000332.ISQ)&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that you can make &amp;lt;code&amp;gt;uct_evaluation_special_josh.com&amp;lt;/code&amp;gt; such that there is no need for P1 (change p2 to p1 in the script, etc).&lt;br /&gt;
[Alternatively to using the gobjbox you could use the normal isq_to_aim, but hard code the dim and pos.]&lt;br /&gt;
Then call whatever IPL files you want to call. Look into &amp;lt;code&amp;gt;fixed_batch_v4&amp;lt;/code&amp;gt; to see how we turn on the database always on the first line of every IPL part, and how we calculate parameters.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Use &amp;lt;code&amp;gt;UCT_EVALUATION&amp;lt;/code&amp;gt; without importing ISQ into the database===&lt;br /&gt;
&lt;br /&gt;
In a terminal, &amp;lt;code&amp;gt;$ def uct_default_isq xxxxxxxx.isq&amp;lt;/code&amp;gt;&lt;br /&gt;
Then start the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool (or &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt;). Hit cancel when asked for a file to read and the default ISQ that was set will be read.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Submit a job to the queue===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit/noprint /que=sys$slow ipl_voi_josh_m.com &lt;br /&gt;
  - /log=sys$scratch:test.log&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Extract your results from the 3D database===&lt;br /&gt;
&lt;br /&gt;
Assuming you&#039;ve used the scanco_submit_command to initialize your evaluations (either manually or through the uct_evaluation tool) then you can get all of your results stored into a text file that can be easily imported in Excel.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ uct_list&amp;lt;/pre&amp;gt;&lt;br /&gt;
The output text file will be stored in &amp;lt;code&amp;gt;sys$scratch&amp;lt;/code&amp;gt; and you can ftp this to a PC so that it can be imported into excel and further analysis can be performed. &lt;br /&gt;
&lt;br /&gt;
Importing into Excel requires setting a deliminator based on the space.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Tabulate your LOG file results from 3D evaluations===&lt;br /&gt;
&lt;br /&gt;
Only use this if you have not used the standard &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; tool to generate your 3D evaluations (in which case see the HowTo related to the 3D database).&lt;br /&gt;
You can tabulate the LOG files:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
Or whatever you want to search for can be stored in a text file&lt;br /&gt;
&amp;lt;pre&amp;gt;$ search/output=sys$scratch:ov.txt xxxx.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
To search more than one log file, and get the output into one single file:&lt;br /&gt;
&amp;lt;pre&amp;gt;$ fda/output=xxx.txt search *.log &amp;quot;ov &amp;quot;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The fda means &#039;file do all&#039; and is a script made by Scanco to do one command (search) on a wildcard of files (*.log). Then put all the ov.txt, tv.txt, name.txt etc. files into excel.&lt;br /&gt;
Josh has made a .com file that does a similar job as described above.&lt;br /&gt;
&lt;br /&gt;
===HowTo: Assign special 3D evaluation to the uct_evaluation tool===&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Warning&#039;&#039;&#039;: This is for advanced users ONLY.  Do not attempt this without contacting Steve!&lt;br /&gt;
&lt;br /&gt;
This will show how to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt;:&lt;br /&gt;
It is easy to set up multiple .COM files for the 3D evalulation tool, one such set-up is already prepared on your computer:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ eval_special&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
will do something similar to &amp;lt;code&amp;gt;$ voi&amp;lt;/code&amp;gt; where the normal contour program opens, but if you start the 3D eval, the special script &amp;lt;code&amp;gt;um:uct_evaluation_special.com&amp;lt;/code&amp;gt; is called (associated with eval_special), which then in turn calls &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt;, where you can specify your own set of thresholds, etc.&lt;br /&gt;
&lt;br /&gt;
So it is a daisy chain of files which we will need to follow to set up a special &amp;lt;code&amp;gt;xxx_kyle.com&amp;lt;/code&amp;gt; script, and where ever we encounter &amp;lt;code&amp;gt;_special.com&amp;lt;/code&amp;gt;, we copy and change it to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
So to set up &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; you will need to do the following:&lt;br /&gt;
&lt;br /&gt;
*1. Edit &amp;lt;code&amp;gt;microct_setup_user.com&amp;lt;/code&amp;gt; (double-click on file), please be careful here, it&#039;s very important! (and I hope you have done your &#039;weekly full backup&#039; regularly, so you could always retrieve a good version of login.com...)&lt;br /&gt;
&lt;br /&gt;
*2. Then, towards to bottom and duplicate the line&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_special :== @com:eval_var.com um:uct_evaluation_special.com&amp;lt;/code&amp;gt;&lt;br /&gt;
and change duplicate to&lt;br /&gt;
&amp;lt;code&amp;gt;$ eval_kyle    :== @com:eval_var.com um:uct_evaluation_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will make this command &amp;lt;code&amp;gt;eval_kyle&amp;lt;/code&amp;gt; available after you login freshly. Save and Exit.&lt;br /&gt;
&lt;br /&gt;
*3. Then go to &amp;lt;code&amp;gt;disk1:[microct.eval]&amp;lt;/code&amp;gt; and copy the file &amp;lt;code&amp;gt;uct_evaluation_special.com&amp;lt;/code&amp;gt; to the name &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt; (&#039;Commands&#039;, &#039;Copy ...&#039;, BUT CLICK ON THE THREE DOTS and give new output name. &lt;br /&gt;
If you do not see the &amp;lt;code&amp;gt;eval_special:&amp;lt;/code&amp;gt; go to terminal, &amp;lt;code&amp;gt;$ dir ue:*special*.com&amp;lt;/code&amp;gt; and take it from the &amp;lt;code&amp;gt;microct_common&amp;lt;/code&amp;gt; directory)&lt;br /&gt;
&lt;br /&gt;
*4. Edit the &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt; file: at the top, change &amp;lt;code&amp;gt;ipl_......_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*5. Copy &amp;lt;code&amp;gt;ipl_fixed_batch_special.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*6. Edit &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; to your liking. If you want &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; to not perform the full evaluation, but only something akin to &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt;, then, in the steps above, copy &amp;lt;code&amp;gt;uct_eval_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;uct_evaluation_kyle.com&amp;lt;/code&amp;gt;, and &amp;lt;code&amp;gt;ipl_voi.com&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;ipl_fixed_batch_kyle.com&amp;lt;/code&amp;gt; (thus you take the &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; script as template for the &amp;lt;code&amp;gt;_kyle&amp;lt;/code&amp;gt; script).&lt;br /&gt;
&lt;br /&gt;
*7. Then open a new terminal (&#039;applications&#039;, &#039;decterm&#039;), &amp;lt;code&amp;gt;$ eval_kyle&amp;lt;/code&amp;gt; should work now!&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Notes&#039;&#039;&#039;: When you start the 3D eval, then&lt;br /&gt;
&amp;lt;code&amp;gt;$ que&amp;lt;/code&amp;gt;&lt;br /&gt;
will show you your batch job with your name on it now!&lt;br /&gt;
&lt;br /&gt;
And now a few more explanations how the whole thing works: in all eval programs, hitting &#039;Start 3d&#039; just submits the logical &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;$ show log uct_evaluation&amp;lt;/code&amp;gt; shows you that by default, this points to &amp;lt;code&amp;gt;ue:uct_evaluation_v4.com&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Those little &amp;lt;code&amp;gt;voi&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;eval_steve&amp;lt;/code&amp;gt; scripts then just temporarily redefine this logical so that a different script is submitted when you &amp;lt;code&amp;gt;&#039;start 3d eval&#039;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
About the &#039;&#039;&#039;corelut eval&#039;&#039;&#039;: Then we start a whole different eval program: the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt;. So, if you set up a &amp;lt;code&amp;gt;eval_steve_c&amp;lt;/code&amp;gt; (or whatever you want to call it): Produce a &amp;lt;code&amp;gt;eval_var_c.com&amp;lt;/code&amp;gt; in the directory commands (maybe copy from microct_common to [microct.commands]), and there, on the last line, instead of starting&lt;br /&gt;
&amp;lt;code&amp;gt;$ uct_evaluation&amp;lt;/code&amp;gt;&lt;br /&gt;
(the normal program), replace by&lt;br /&gt;
&amp;lt;code&amp;gt;$ evalc&amp;lt;/code&amp;gt;&lt;br /&gt;
which starts the &amp;lt;code&amp;gt;.exe_corelut&amp;lt;/code&amp;gt; - and because the &amp;lt;code&amp;gt;eval_var.com&amp;lt;/code&amp;gt; has over-ridden the &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; logical just before, then you are starting different script upon starting 3d eval.&lt;br /&gt;
NB: we have a logical AND a symbol called &amp;lt;code&amp;gt;uct_evalution&amp;lt;/code&amp;gt;. Sorry for confusion. Symbol &amp;lt;code&amp;gt;uct_evaluation&amp;lt;/code&amp;gt; starts normal &amp;lt;code&amp;gt;eval&amp;lt;/code&amp;gt; program, so this is what you replace by symbol &amp;lt;code&amp;gt;evalc&amp;lt;/code&amp;gt; now).&lt;br /&gt;
&lt;br /&gt;
===HowTo: Convert CT numbers to mg HA/ccm===&lt;br /&gt;
&lt;br /&gt;
The two byte numbers (short) can be converted to mu values by first dividing by mu_scaling which is probably 4096. Then apply the slope and intercept to get mg HA/ccm. A typical slope may be 2.95e+02 and intercept -1.896e+02. &lt;br /&gt;
&lt;br /&gt;
These numbers are available in the AIM header, or the ISQ header (&amp;lt;code&amp;gt;$ run ut:ctheader&amp;lt;/code&amp;gt;).&lt;br /&gt;
The conversion is as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mg HA/ccm = (AIM/mu_scaling) * slope + intercept&lt;br /&gt;
mg HA/ccm = (AIM/4096) * 295.494 – 189.695&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
!---------------------------------------------------------------------- &lt;br /&gt;
Mu_Scaling                    4096 &lt;br /&gt;
Calibration Data              55 kVp, 200mg HA wedge, 4096 scaling &lt;br /&gt;
Calib. default unit type      2 (Density) &lt;br /&gt;
Density: unit                 mg HA/ccm &lt;br /&gt;
Density: slope                2.95493988e+02 &lt;br /&gt;
Density: intercept            -1.89695007e+02 &lt;br /&gt;
HU: mu water                  0.58200 &lt;br /&gt;
!----------------------------------------------------------------------&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create a list of registered measurements===&lt;br /&gt;
&lt;br /&gt;
:* To generate a list of measurements that are registered in the data base, to determine where backups are stored, or if the data is still on disk:&lt;br /&gt;
&lt;br /&gt;
::&amp;lt;code&amp;gt;$ write_info&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*It asks you for a range of measurement numbers or sample names, and creates &amp;lt;code&amp;gt; sys$scratch:info.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix SAP colours when green===&lt;br /&gt;
&lt;br /&gt;
(using the standard gray colourmap), if changing color maps doesn&#039;t help.&lt;br /&gt;
&lt;br /&gt;
:*Menu point &#039;Norm, Default is Bone = 16000.&lt;br /&gt;
&lt;br /&gt;
:*Take max for 32000, or &#039;Adapt slice&#039;.&lt;br /&gt;
&lt;br /&gt;
::Note: Do NOT take &#039;adapt vol&#039; - it will be extremely slow!  Every single mouse-click it re-calculates whole volume...&lt;br /&gt;
&lt;br /&gt;
==Writing Scripts==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Get information about a sample or measurement from database===&lt;br /&gt;
&lt;br /&gt;
The following will create a &amp;lt;code&amp;gt;sys$scratch:info.txt&amp;lt;/code&amp;gt; file.&lt;br /&gt;
&amp;lt;pre&amp;gt;$ write_info&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===HowTo: Create your own IPL script with some tips===&lt;br /&gt;
&lt;br /&gt;
To make a script that would submit a job to the queue with the command as follows:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
you need to create your own IPL file would be translated to the following command:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ submit /noprint /que=sys$slow ue:IPL_VOI_JOSH_M.COM &lt;br /&gt;
  - /log=sys$scratch:test.log /para=(&#039;aim_file&#039;,&#039;gobj_file&#039;,&#039;seg_file&#039;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The IPL file would look something like this…&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$   if p1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$ 	THEN &lt;br /&gt;
$	write sys$output &amp;quot;Give DK0:[xxx]C0001234_SEG.aim on the line.&amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Or: &amp;quot;&lt;br /&gt;
$	write sys$output &amp;quot;Type $ scanco_submit_command um:ipl_eval_autostart/para=(dk0:[xxx]c00123_seg.aim) &amp;quot;&lt;br /&gt;
$ 	exit&lt;br /&gt;
$   endif&lt;br /&gt;
$&lt;br /&gt;
$ gobj_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.GOBJ&amp;quot;&lt;br /&gt;
$ aim_file = p1-F$PARSE(p1,,,&amp;quot;VERSION&amp;quot;)-&amp;quot;_SEG.AIM&amp;quot; + &amp;quot;.AIM&amp;quot;&lt;br /&gt;
$&lt;br /&gt;
$!&lt;br /&gt;
$ @um:ipl_eval_only.com &#039;aim_file&#039; &#039;gobj_file&#039; &#039;p1&#039; 0&lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Some more handy IPL sequences are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and then you just need to give meas. number as P1 (and maybe slice range as p2),&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
OR, some nice starts are:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P3 .EQS. &amp;quot;&amp;quot;&lt;br /&gt;
$    THEN&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to duplicate&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: New Sample Number from Database&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: New Start Letter of ISQ file&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P4: Optional: Operator Number&amp;quot;&lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P5: Optional: Controlfile Number&amp;quot;&lt;br /&gt;
$      EXIT&lt;br /&gt;
$    ENDIF&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
where you say which parameters HAVE to be there (up to p3), and which ones are optional.&lt;br /&gt;
&lt;br /&gt;
All together, the script may look like this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$    IF P1 .EQS. &amp;quot;&amp;quot; &lt;br /&gt;
$    THEN &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P1: Measurement Number to reco&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P2: Optional: Slice number N or Range M:N. Auto:All&amp;quot; &lt;br /&gt;
$      WRITE SYS$OUTPUT &amp;quot;P3: Optional: Queue. Auto: sys$slow&amp;quot; &lt;br /&gt;
$      EXIT &lt;br /&gt;
$    ENDIF &lt;br /&gt;
$ if p2 .eqs. &amp;quot;&amp;quot; then p2 := A &lt;br /&gt;
$ if p3 .eqs. &amp;quot;&amp;quot; then p3 := SYS$SLOW &lt;br /&gt;
$ slices  = p2 &lt;br /&gt;
$ quename = p3 &lt;br /&gt;
$ INPUT = F$SEARCH(&amp;quot;UCT_MEASUREMENT_DATA:[*.*&#039;&#039;P1&#039;]*.RSQ&amp;quot;,1) &lt;br /&gt;
$ INPUT = INPUT - F$PARSE(INPUT,,,&amp;quot;VERSION&amp;quot;) &lt;br /&gt;
$ logfile = &amp;quot;sys$scratch:RECO_&amp;quot; + f$PARSE(input,,,&amp;quot;NAME&amp;quot;) + &amp;quot;.LOG&amp;quot; &lt;br /&gt;
$ submit/noprint/queue=&#039;quename&#039; uct_reconstruction_file - &lt;br /&gt;
    /para=(&#039;input&#039;,&#039;slices&#039;,&#039;logfile&#039;) &lt;br /&gt;
$ exit&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note that &amp;lt;code&amp;gt;uct_reconstruction_file&amp;lt;/code&amp;gt; is a logical that points to &amp;lt;code&amp;gt;um:uct_reconstruction.com&amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
Logicals are preferred in scripts to make them more universal.&lt;br /&gt;
&lt;br /&gt;
==Errors and Fixes==&lt;br /&gt;
&lt;br /&gt;
===HowTo: Fix &amp;quot;last slice&amp;quot; error problem when extracting AIM from ISQ===&lt;br /&gt;
&lt;br /&gt;
Sometimes the evaluation script (i.e., voi) converting the ISQ to an AIM fails because it tries to read one slice more than what is available in the ISQ data. The result of this failure is that the 3D analysis appears to fail and no .AIM or _SEG.AIM is created in the data directory. For example, it may have tried to read 261 slices, but there were only 260 slices available.&lt;br /&gt;
The easiest work around is to make sure that the white bounding box in the uct_evaluation program does not include the last slice (largest Z dimension). Scanco is aware of this problem and will fix it in future software releases (V5.2).&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=Help:Contents&amp;diff=1239</id>
		<title>Help:Contents</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=Help:Contents&amp;diff=1239"/>
		<updated>2005-08-11T16:36:26Z</updated>

		<summary type="html">&lt;p&gt;Scanco: /* Adding Users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Basic Editing==&lt;br /&gt;
===Text Editing===&lt;br /&gt;
&lt;br /&gt;
The simplest page modifications for this site are editing the text of a page. The text of a page can be edited all at &lt;br /&gt;
once, or more practically section by section.  &lt;br /&gt;
====Editing a section:====&lt;br /&gt;
:*Click the adjacent edit tab at the top of the desired section.&lt;br /&gt;
:*The browser now displays a large text box in the center of the page.  Inside this box contains all of the text of the section.&lt;br /&gt;
::Note: There are several formatting conventions to be considered when adding text. These affect the margins, layout, bullets, &lt;br /&gt;
section organisation, etc. See the below section about Text Formatting for details.&lt;br /&gt;
:*Once the text has been modified, select &#039;Save Page&#039; below the text window.&lt;br /&gt;
:*The change are now saved and the new, modified version of this page will appear. &lt;br /&gt;
&lt;br /&gt;
Be careful whenever making any changes, because once the changes are saved, this becomes the new page. Therefore it is possible to &lt;br /&gt;
delete entire sections. (For recovery of old page versions, see the Recent Changes page).&lt;br /&gt;
&lt;br /&gt;
====Editing an entire page====&lt;br /&gt;
:*Similar to above, but select the &#039;edit&#039; tab at the top of the page. Now, the text for the entire page appears in the text editing&lt;br /&gt;
window.&lt;br /&gt;
:*This is useful for changing the arrangement and ordering of sections but is &#039;&#039;&#039;not&#039;&#039;&#039; recommended for specific text editing.&lt;br /&gt;
&lt;br /&gt;
Especially here, be careful when editing because the entire page could be deleted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Creating a new page===&lt;br /&gt;
&lt;br /&gt;
Creating a new page is very simple. You just have to make a link to this new page from an existing page, and click the link. This will bring you to the editing window of this page, to which you can now add content.&lt;br /&gt;
*For example, let&#039;s make a new page [[here]].&lt;br /&gt;
::This was done by putting the word &amp;quot;here&amp;quot; inside double square brackets, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[here]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Select &amp;quot;Save page&amp;quot;, then click &amp;quot;here&amp;quot;, which is now in &amp;lt;b style=&amp;quot;color:red&amp;quot;&amp;gt;red&amp;lt;/b&amp;gt;. Here I begin my new page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Linking to an external page===&lt;br /&gt;
The only difference here is that we use single square brackets, or none at all. &lt;br /&gt;
*Let&#039;s link to Steve Boyd&#039;s homepage here: http://www.enme.ucalgary.ca/~skboyd/. Nothing special, just the put the URL within the text.&lt;br /&gt;
::&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.enme.ucalgary.ca/~skboyd/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*In order to have a more convenient name appear as the link, use single square brackets and type the desired name of the link, seperated by a space, within the brackets. [http://www.enme.ucalgary.ca/~skboyd/ Steve&#039;s Hoempage]&lt;br /&gt;
::&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[http://www.enme.ucalgary.ca/~skboyd/ Steve&#039;s Homepage]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Text Formatting===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re familiar with HTML conventions, you can apply &#039;&#039;&#039;most&#039;&#039;&#039; of these on a wiki page, however wiki has many of its own conventions.&lt;br /&gt;
The following table lists the text formatting operations applicable to this site.&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;80%&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;What appears on the Page&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;What you type&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Section Headers:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This can&#039;t really be demonstrated within a table, but click the edit tab for various sections to see examples of&lt;br /&gt;
sections.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
= Major Section=&lt;br /&gt;
&lt;br /&gt;
==Section==&lt;br /&gt;
&lt;br /&gt;
===Sub-Section===&lt;br /&gt;
&lt;br /&gt;
====Sub-Sub-Section====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&#039;&#039;&#039;Newline:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Typing on the&lt;br /&gt;
next line &lt;br /&gt;
will not&lt;br /&gt;
make a new line.&lt;br /&gt;
&lt;br /&gt;
But leaving one line empty does start&lt;br /&gt;
a new line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start a new line without making a new paragraph &amp;lt;br&amp;gt;&lt;br /&gt;
Now we have a new line here.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Typing on the&lt;br /&gt;
next line &lt;br /&gt;
will not&lt;br /&gt;
make a new line.&lt;br /&gt;
&lt;br /&gt;
But leaving one line empty does start&lt;br /&gt;
a new line.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
To start a new line without making a new paragraph &amp;lt;br&amp;gt;&lt;br /&gt;
Now we have a new line here.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lists&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Lists are started like this.&lt;br /&gt;
**They can also have sub lists&lt;br /&gt;
***and sub-sub lists.&lt;br /&gt;
Starting a regular line like this ends the list.&lt;br /&gt;
&lt;br /&gt;
*But you can break &amp;lt;BR&amp;gt; lines &amp;lt;br&amp;gt; within a list &amp;lt;br&amp;gt; like this.&lt;br /&gt;
*Then start a new line.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
*Lists are started like this.&lt;br /&gt;
**They can also have sub lists&lt;br /&gt;
***and sub-sub lists.&lt;br /&gt;
Starting a regular line like this ends the list.&lt;br /&gt;
&lt;br /&gt;
*But you can break &amp;lt;BR&amp;gt; lines &amp;lt;br&amp;gt; within a list &amp;lt;br&amp;gt; like this.&lt;br /&gt;
*Then start a new line.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Numbered Lists:&#039;&#039;&#039;&lt;br /&gt;
#Numbered lists can be created automatically.&lt;br /&gt;
#New number here&lt;br /&gt;
##I&#039;m a number within a number.&lt;br /&gt;
##Me too.&lt;br /&gt;
#Back to the original list.&lt;br /&gt;
The end of the list.&lt;br /&gt;
#Now here&#039;s a new list.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#Numbered lists can be created automatically.&lt;br /&gt;
#New number here&lt;br /&gt;
##I&#039;m a number within a number.&lt;br /&gt;
##Me too.&lt;br /&gt;
#Back to the original list.&lt;br /&gt;
The end of the list.&lt;br /&gt;
#Now here&#039;s a new list.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Indenting&#039;&#039;&#039;&lt;br /&gt;
:Starting a line with a colon&lt;br /&gt;
::or several colons, you can indent the line.&lt;br /&gt;
No indent here!&lt;br /&gt;
:::::I&#039;m super indented.&lt;br /&gt;
&lt;br /&gt;
:*Indenting, as well as bullets, and numbered lists can&lt;br /&gt;
::be combined.&lt;br /&gt;
:#I&#039;m number one&lt;br /&gt;
:#*I&#039;m almost one&lt;br /&gt;
:#I&#039;m only number two :(&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
:Starting a line with a colon&lt;br /&gt;
::or several colons, you can indent the line.&lt;br /&gt;
No indent here!&lt;br /&gt;
:::::I&#039;m super indented.&lt;br /&gt;
&lt;br /&gt;
:*Indenting, as well as bullets, and numbered lists can&lt;br /&gt;
::be combined.&lt;br /&gt;
:#I&#039;m number one&lt;br /&gt;
:#*I&#039;m almost one&lt;br /&gt;
:#I&#039;m only number two :(&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 Starting every line with a &lt;br /&gt;
    space means that the text won&#039;t be formatted&lt;br /&gt;
 and should appear as typed.     But be careful, lines no &lt;br /&gt;
 longer wrap automatically.&lt;br /&gt;
 &lt;br /&gt;
 *This can be useful for preformatted text&lt;br /&gt;
    but also, is nice for code because it makes this nice box.&lt;br /&gt;
&lt;br /&gt;
Another way to make text within this box is to use &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
and &amp;lt;nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
We&#039;re inside a box.&lt;br /&gt;
*Ya, isn&#039;t this cool.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 Starting every line with a &lt;br /&gt;
    space means that the text won&#039;t be formatted&lt;br /&gt;
 and should appear as typed.     But be careful, lines no &lt;br /&gt;
 longer wrap automatically.&lt;br /&gt;
 &lt;br /&gt;
 *This can be useful for preformatted text&lt;br /&gt;
    but also, is nice for code because it makes this nice box.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another way to make text within this box is to use &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
and &amp;lt;nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
We&#039;re inside a box.&lt;br /&gt;
*Ya, isn&#039;t this cool.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tables===&lt;br /&gt;
&lt;br /&gt;
Tables, like the one above are very useful for organising information, or for specifying the layout of a page - placing text&lt;br /&gt;
and images in certain locations.&lt;br /&gt;
:(Click edit of the table above as an example)&lt;br /&gt;
&lt;br /&gt;
*A table begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;table&amp;gt; Table code &amp;lt;/table&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*A row begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;tr&amp;gt; Row code &amp;lt;/tr&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*A column begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;td&amp;gt; Column code &amp;lt;/td&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are nested within each other: begin a table, row, column; end the column, row, table.&lt;br /&gt;
These are nested within each other: begin a table, row, column; end the column, row, table.&lt;br /&gt;
&lt;br /&gt;
*There are several options that may be set when starting a table, row, or column. The following is a list of the most useful.&lt;br /&gt;
:*&#039;&#039;&#039;border&#039;&#039;&#039; - Sets the thickness of the border for the entire table, or can be invisible.  &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;border=&amp;quot;n&amp;quot;&amp;lt;/code&amp;gt;, (n = {0,1,2,3,etc.})&lt;br /&gt;
:*&#039;&#039;&#039;align&#039;&#039;&#039; - sets the alignment of the table with respect to the page margins, or the text and objects within a cell. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;align=&amp;quot;center&amp;quot;&amp;lt;/code&amp;gt;, (or right, left).&lt;br /&gt;
:*&#039;&#039;&#039;valign&#039;&#039;&#039; - sets the vertical alignment of the text and objects within a cell. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;valign=&amp;quot;top&amp;quot; &amp;lt;/code&amp;gt;, (bottom, middle).&lt;br /&gt;
:*&#039;&#039;&#039;width, height&#039;&#039;&#039; - sets the width, height of the table and/or a column, row. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt; width=&amp;quot;90%&amp;quot; height=&amp;quot;450&#039;&amp;lt;/code&amp;gt;, (size can be in number of pixels, or as a percentage).&lt;br /&gt;
:*&#039;&#039;&#039;background&#039;&#039;&#039; - sets the background of a cell or table.  This can be either a picture or a solid color. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;bgcolor=&amp;quot;yellow&amp;quot; &amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;background=&amp;quot;mypicture.jpg&amp;quot; &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Upload Help==&lt;br /&gt;
&lt;br /&gt;
#Once logged-on to the site, select the &#039;Upload file&#039; link within the toolbox on the left side-bar.&lt;br /&gt;
#&#039;Browse&#039; your system for the desired file, confirm its copyright compliance, and select Upload File.&lt;br /&gt;
#:By default, a page will be created for this file with the filename as its address and, regardless of its type, will be classified as an image.&lt;br /&gt;
#The file is now stored in the image section of the site and can be linked to from any other page within the site, as follows.&lt;br /&gt;
#:a) If the file is an image, then place the following code on a wiki page at the desired location of the image:&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;[[Image:my_favorite_image.jpg|picture_position,ie_right,left,center]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
::(The picture location is not necessary and could be left blank. See the example below.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::b) If the file is not an image, then insert the following code where the file is to be downloaded:&lt;br /&gt;
::(This code should most likely be inserted into the Documents page)&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;[[Media:my_favorite_document.pdf| Document Link Name Displayed on Page]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*NB. For a list of all the files available for download from the wiki site, both images and none images, go to the &#039;&#039;&#039;Special Pages&#039;&#039;&#039; link in the toolbox and then  select &#039;&#039;&#039;Image list&#039;&#039;&#039;.  This page lists all the uploaded files on the site and they can all be downloaded from here.&lt;br /&gt;
&lt;br /&gt;
===Examples ===&lt;br /&gt;
*click the adjacent &#039;edit&#039; tabs to view the code for the examples.&lt;br /&gt;
&lt;br /&gt;
====Documents ====&lt;br /&gt;
&lt;br /&gt;
Now let&#039;s provide a pdf document: [[Media:My_favorite_pdf.pdf| I&#039;m a pdf document]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Images====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s put an image of Steve here:&lt;br /&gt;
[[Image:Steve Boyd money.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*NB. Note how a link is automatically created to the picture&#039;s actual location within the image section - click on the image itself to see.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Site Administration==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Site Creation===&lt;br /&gt;
&lt;br /&gt;
The following explains how this wiki site was created. The intention is that in the event the site is lost, so long as the text from this page &lt;br /&gt;
is backed-up somewhere, the site could be recreated. Also, just to complete the documentation, I have tried to outline all the steps that &lt;br /&gt;
I took and explanations of parts that I had problems with while developing this site.&lt;br /&gt;
&lt;br /&gt;
*The &amp;quot;wiki&amp;quot; interface of this site was developed by MediaWiki and this software runs in the background, on the server at all times.  It &lt;br /&gt;
is this interface that allows users to edit pages, upload documents, and change a variety of settings, which is all stored in a database&lt;br /&gt;
on the server.&lt;br /&gt;
*The database that is compatible with MediaWiki is mySQL. This is a standard database that is one of the packages included with the latest&lt;br /&gt;
Fedora Core for linux.  This database caused several problems during the development of the first versions of the wiki site, however the &lt;br /&gt;
version mySQL 4.1 has so far not caused any similar problems.&lt;br /&gt;
:*It is useful to know that all the data from the site is stored on a mySQL database on the server, however there should be no need to ever&lt;br /&gt;
directly access this database, or try to edit or modify it directly.  &lt;br /&gt;
:*The one exception to this is for setting up the system operator (sysop) or bureaucrat privileges. (more on this later)&lt;br /&gt;
&lt;br /&gt;
====Install Instructions====&lt;br /&gt;
&lt;br /&gt;
Check out [http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide:_Installation MediaWiki Installation] &lt;br /&gt;
*Download the latest, stable version of mediawiki from [http://wikipedia.sourceforge.net/| wikipedia.sourcforge].&lt;br /&gt;
::The MediaWiki FAQs are &#039;&#039;&#039;excellent&#039;&#039;&#039;, and should provide clear and thorough instructions for downloading and installing the program.&lt;br /&gt;
(However here is a quick summary)&lt;br /&gt;
*Read the &#039;Install.txt&#039; file for installation instructions and system requirements.&lt;br /&gt;
*The system requirements for the server (which could really be any computer set up appropriately, although &#039;&#039;&#039;preferably linux&#039;&#039;&#039;) are:&lt;br /&gt;
:*Apache web server&lt;br /&gt;
:*mySQL database&lt;br /&gt;
:*PHP-mySQL package&lt;br /&gt;
:(If running a new version of Fedora Core, all of these can be installed as packages from the original boot disks).&lt;br /&gt;
*Uncompress and untar the mediawiki folder.  It is advised to rename this folder something convenient, like wiki or mediawiki.&lt;br /&gt;
*Change the read/write access of the config directory to be readable by all.  This folder contains the php script for the initial configuration.&lt;br /&gt;
::&amp;lt;code&amp;gt;chmod a+w config&amp;lt;/code&amp;gt;&lt;br /&gt;
*The next step is to browse into this folder from an internet browser.  If this is run off of your linux box, you will need to find the folder open to the world &lt;br /&gt;
via http and move the entire mediawiki folder here.  When I did it, it was:&lt;br /&gt;
::/var/www/html/&lt;br /&gt;
:*Once the folder is there, browse &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://my_ip_address/mediawiki&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  The installation script should start and you can now fill in the boxes, &lt;br /&gt;
initializing the site and the database  which will store all the site data.&lt;br /&gt;
&lt;br /&gt;
*The on-screen instructions are rather self-explanatory and after filling in and confirming the necessary information, the site should be created.&lt;br /&gt;
*On the new page, the instructions will say to move the &#039;LocalSettings.php&#039; file into your main mediawik folder and then delete the config directory.&lt;br /&gt;
::Once this is done, the &#039;LocalSettings.php&#039; file now becomes the default script that loads the mainpage of the wiki site.&lt;br /&gt;
&lt;br /&gt;
====LocalSettings.php====&lt;br /&gt;
&lt;br /&gt;
This becomes the most important and useful file to change the apperance and customize the wiki site. Everything else can be done through the interface&lt;br /&gt;
of the wiki site itself. Within this file, one can change the navigation bar on the left margin, the logo appearing in the upper left corner, the login restrictions, the name &lt;br /&gt;
of the site, the ability to upload files, the name of the site, the contact information and address of the site administrator, among others.&lt;br /&gt;
&lt;br /&gt;
*Navigation bar - For a detailed explanation on editing the Navigation bar, see [http://meta.wikimedia.org/wiki/MediaWiki_FAQ#How_do_I_change_the_contents_of_the_navigation_toolbar.3F MediaWiki Navigation Help]&lt;br /&gt;
:Summary:&lt;br /&gt;
:*The following array should be moved to LocalSettings, from &amp;lt;code&amp;gt;includes/DefaultSettings.php &amp;lt;/code&amp;gt;. It specifies the page which holds the text to be displayed in the navigation bar and the page which holds the link of where this navigation link points to. In other words, what appears here, in this array is not necessarily what will appear in the navigation bar; they are pages on the wiki site (or pointers within the database) to where this information is stored.&lt;br /&gt;
&lt;br /&gt;
 $wgNavigationLinks = array (&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;mainpage&#039;,	&#039;href&#039;=&amp;gt;&#039;mainpage&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;portal&#039;,	&#039;href&#039;=&amp;gt;&#039;portal-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;currentevents&#039;, &#039;href&#039;=&amp;gt;&#039;currentevents-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;recentchanges&#039;, &#039;href&#039;=&amp;gt;&#039;recentchanges-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;randompage&#039;,	&#039;href&#039;=&amp;gt;&#039;randompage-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;help&#039;, 		&#039;href&#039;=&amp;gt;&#039;helppage&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;sitesupport&#039;,	&#039;href&#039;=&amp;gt;&#039;sitesupport-url&#039; ),&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
For example, one line in the navigation array for this site is:&lt;br /&gt;
::&amp;lt;code&amp;gt;array( &#039;text&#039;=&amp;gt;&#039;howto&#039;,	&#039;href&#039;=&amp;gt;&#039;howto-url&#039; ) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*On the wiki site, there is a page &amp;lt;code&amp;gt;..../index.php/MediaWiki:howto&amp;lt;/code&amp;gt; which holds the text to be displayed on the navigation bar. The text on this page is:&lt;br /&gt;
::&amp;lt;code&amp;gt; How To&#039;s&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*There&#039;s another page on this wiki site, &amp;lt;code&amp;gt;..../index.php/MediaWiki:howto-url&amp;lt;/code&amp;gt; which holds the page address of this navigation link&#039;s target.&lt;br /&gt;
::&amp;lt;code&amp;gt; How To &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*The next step is to add the desired text and target to the pages on the wiki site, that are mentioned in the navigation array.  These will initially be empty pages and must be edited for the navigations to work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Logo - This is the picture which appears in the top left corner throughout the site. At all times, this acts as a link returning to the mainpage. To customize this logo, replace the location of the logo picture in the following line of LocalSettings:&lt;br /&gt;
::&amp;lt;code&amp;gt;$wgLogo     = &amp;quot;$wgScriptPath/myfavoritepicture.gif&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
:(Could use another file type for the image, such as .png).&lt;br /&gt;
&lt;br /&gt;
*Enable File Uploading - To enable file uploading, uncomment the following line, in LocalSettings. &lt;br /&gt;
::&amp;lt;code&amp;gt;$wgDisableUploads   = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: - Then change the permissions on the image directory so that it is writable.&lt;br /&gt;
::&amp;lt;code&amp;gt;$chmod a+w images &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Adding Users===&lt;br /&gt;
Depending on the access restrictions specified in the &#039;LocalSettings.php&#039;, the site can be designed such that anybody can access and edit any of&lt;br /&gt;
the pages, or only registered users may log on to the site. Furthermore, the site can be configured such that only the &#039;sysop&#039; of the site can create&lt;br /&gt;
new accounts.  These restrictions are set within the LocalSettings file. (See above for details).&lt;br /&gt;
&lt;br /&gt;
:Note: This site has been configured so that only &#039;sysop&#039; can create new accounts.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Once logged in, the &#039;sysop&#039; can select &amp;quot;Create an account or log in&amp;quot; from the &amp;quot;Special Pages&amp;quot; link of the toolbox,&lt;br /&gt;
along the left margin.  Here, the sysop creates a username and can then automatically email the new user a temporary password for the site. (This email &lt;br /&gt;
will have the return address of the site administrator, as specified in LocalSettings.php.&lt;br /&gt;
&lt;br /&gt;
*Unfortunately, there is no easy way of deleting a user account. A user can be manually removed from the mySQL database, however this will most likely &lt;br /&gt;
cause problems with other tables referring to this user or deleted row. This should only be done if you really understand mySQL. &lt;br /&gt;
:*The best way to remove a user, is for the sysop to either block them, or rename their account/ change their password.&lt;br /&gt;
&lt;br /&gt;
*A user can be given &#039;sysop&#039; and &#039;bureaucrat&#039; priveleges by an existing sysop, from a link on the sysop&#039;s &amp;quot;Special Pages&amp;quot;. (The original sysop is created &lt;br /&gt;
during site initialization).&lt;br /&gt;
 &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wiki software successfully installed.&lt;br /&gt;
&lt;br /&gt;
Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface]&lt;br /&gt;
and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User&#039;s Guide] for usage and configuration help.&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=Help:Contents&amp;diff=163</id>
		<title>Help:Contents</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=Help:Contents&amp;diff=163"/>
		<updated>2005-08-11T16:36:15Z</updated>

		<summary type="html">&lt;p&gt;Scanco: /* Adding Users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Basic Editing==&lt;br /&gt;
===Text Editing===&lt;br /&gt;
&lt;br /&gt;
The simplest page modifications for this site are editing the text of a page. The text of a page can be edited all at &lt;br /&gt;
once, or more practically section by section.  &lt;br /&gt;
====Editing a section:====&lt;br /&gt;
:*Click the adjacent edit tab at the top of the desired section.&lt;br /&gt;
:*The browser now displays a large text box in the center of the page.  Inside this box contains all of the text of the section.&lt;br /&gt;
::Note: There are several formatting conventions to be considered when adding text. These affect the margins, layout, bullets, &lt;br /&gt;
section organisation, etc. See the below section about Text Formatting for details.&lt;br /&gt;
:*Once the text has been modified, select &#039;Save Page&#039; below the text window.&lt;br /&gt;
:*The change are now saved and the new, modified version of this page will appear. &lt;br /&gt;
&lt;br /&gt;
Be careful whenever making any changes, because once the changes are saved, this becomes the new page. Therefore it is possible to &lt;br /&gt;
delete entire sections. (For recovery of old page versions, see the Recent Changes page).&lt;br /&gt;
&lt;br /&gt;
====Editing an entire page====&lt;br /&gt;
:*Similar to above, but select the &#039;edit&#039; tab at the top of the page. Now, the text for the entire page appears in the text editing&lt;br /&gt;
window.&lt;br /&gt;
:*This is useful for changing the arrangement and ordering of sections but is &#039;&#039;&#039;not&#039;&#039;&#039; recommended for specific text editing.&lt;br /&gt;
&lt;br /&gt;
Especially here, be careful when editing because the entire page could be deleted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Creating a new page===&lt;br /&gt;
&lt;br /&gt;
Creating a new page is very simple. You just have to make a link to this new page from an existing page, and click the link. This will bring you to the editing window of this page, to which you can now add content.&lt;br /&gt;
*For example, let&#039;s make a new page [[here]].&lt;br /&gt;
::This was done by putting the word &amp;quot;here&amp;quot; inside double square brackets, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[here]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Select &amp;quot;Save page&amp;quot;, then click &amp;quot;here&amp;quot;, which is now in &amp;lt;b style=&amp;quot;color:red&amp;quot;&amp;gt;red&amp;lt;/b&amp;gt;. Here I begin my new page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Linking to an external page===&lt;br /&gt;
The only difference here is that we use single square brackets, or none at all. &lt;br /&gt;
*Let&#039;s link to Steve Boyd&#039;s homepage here: http://www.enme.ucalgary.ca/~skboyd/. Nothing special, just the put the URL within the text.&lt;br /&gt;
::&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.enme.ucalgary.ca/~skboyd/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*In order to have a more convenient name appear as the link, use single square brackets and type the desired name of the link, seperated by a space, within the brackets. [http://www.enme.ucalgary.ca/~skboyd/ Steve&#039;s Hoempage]&lt;br /&gt;
::&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[http://www.enme.ucalgary.ca/~skboyd/ Steve&#039;s Homepage]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Text Formatting===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re familiar with HTML conventions, you can apply &#039;&#039;&#039;most&#039;&#039;&#039; of these on a wiki page, however wiki has many of its own conventions.&lt;br /&gt;
The following table lists the text formatting operations applicable to this site.&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;80%&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;What appears on the Page&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;What you type&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Section Headers:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This can&#039;t really be demonstrated within a table, but click the edit tab for various sections to see examples of&lt;br /&gt;
sections.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
= Major Section=&lt;br /&gt;
&lt;br /&gt;
==Section==&lt;br /&gt;
&lt;br /&gt;
===Sub-Section===&lt;br /&gt;
&lt;br /&gt;
====Sub-Sub-Section====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&#039;&#039;&#039;Newline:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Typing on the&lt;br /&gt;
next line &lt;br /&gt;
will not&lt;br /&gt;
make a new line.&lt;br /&gt;
&lt;br /&gt;
But leaving one line empty does start&lt;br /&gt;
a new line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start a new line without making a new paragraph &amp;lt;br&amp;gt;&lt;br /&gt;
Now we have a new line here.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Typing on the&lt;br /&gt;
next line &lt;br /&gt;
will not&lt;br /&gt;
make a new line.&lt;br /&gt;
&lt;br /&gt;
But leaving one line empty does start&lt;br /&gt;
a new line.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
To start a new line without making a new paragraph &amp;lt;br&amp;gt;&lt;br /&gt;
Now we have a new line here.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lists&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Lists are started like this.&lt;br /&gt;
**They can also have sub lists&lt;br /&gt;
***and sub-sub lists.&lt;br /&gt;
Starting a regular line like this ends the list.&lt;br /&gt;
&lt;br /&gt;
*But you can break &amp;lt;BR&amp;gt; lines &amp;lt;br&amp;gt; within a list &amp;lt;br&amp;gt; like this.&lt;br /&gt;
*Then start a new line.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
*Lists are started like this.&lt;br /&gt;
**They can also have sub lists&lt;br /&gt;
***and sub-sub lists.&lt;br /&gt;
Starting a regular line like this ends the list.&lt;br /&gt;
&lt;br /&gt;
*But you can break &amp;lt;BR&amp;gt; lines &amp;lt;br&amp;gt; within a list &amp;lt;br&amp;gt; like this.&lt;br /&gt;
*Then start a new line.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Numbered Lists:&#039;&#039;&#039;&lt;br /&gt;
#Numbered lists can be created automatically.&lt;br /&gt;
#New number here&lt;br /&gt;
##I&#039;m a number within a number.&lt;br /&gt;
##Me too.&lt;br /&gt;
#Back to the original list.&lt;br /&gt;
The end of the list.&lt;br /&gt;
#Now here&#039;s a new list.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#Numbered lists can be created automatically.&lt;br /&gt;
#New number here&lt;br /&gt;
##I&#039;m a number within a number.&lt;br /&gt;
##Me too.&lt;br /&gt;
#Back to the original list.&lt;br /&gt;
The end of the list.&lt;br /&gt;
#Now here&#039;s a new list.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Indenting&#039;&#039;&#039;&lt;br /&gt;
:Starting a line with a colon&lt;br /&gt;
::or several colons, you can indent the line.&lt;br /&gt;
No indent here!&lt;br /&gt;
:::::I&#039;m super indented.&lt;br /&gt;
&lt;br /&gt;
:*Indenting, as well as bullets, and numbered lists can&lt;br /&gt;
::be combined.&lt;br /&gt;
:#I&#039;m number one&lt;br /&gt;
:#*I&#039;m almost one&lt;br /&gt;
:#I&#039;m only number two :(&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
:Starting a line with a colon&lt;br /&gt;
::or several colons, you can indent the line.&lt;br /&gt;
No indent here!&lt;br /&gt;
:::::I&#039;m super indented.&lt;br /&gt;
&lt;br /&gt;
:*Indenting, as well as bullets, and numbered lists can&lt;br /&gt;
::be combined.&lt;br /&gt;
:#I&#039;m number one&lt;br /&gt;
:#*I&#039;m almost one&lt;br /&gt;
:#I&#039;m only number two :(&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 Starting every line with a &lt;br /&gt;
    space means that the text won&#039;t be formatted&lt;br /&gt;
 and should appear as typed.     But be careful, lines no &lt;br /&gt;
 longer wrap automatically.&lt;br /&gt;
 &lt;br /&gt;
 *This can be useful for preformatted text&lt;br /&gt;
    but also, is nice for code because it makes this nice box.&lt;br /&gt;
&lt;br /&gt;
Another way to make text within this box is to use &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
and &amp;lt;nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
We&#039;re inside a box.&lt;br /&gt;
*Ya, isn&#039;t this cool.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 Starting every line with a &lt;br /&gt;
    space means that the text won&#039;t be formatted&lt;br /&gt;
 and should appear as typed.     But be careful, lines no &lt;br /&gt;
 longer wrap automatically.&lt;br /&gt;
 &lt;br /&gt;
 *This can be useful for preformatted text&lt;br /&gt;
    but also, is nice for code because it makes this nice box.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another way to make text within this box is to use &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
and &amp;lt;nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
We&#039;re inside a box.&lt;br /&gt;
*Ya, isn&#039;t this cool.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tables===&lt;br /&gt;
&lt;br /&gt;
Tables, like the one above are very useful for organising information, or for specifying the layout of a page - placing text&lt;br /&gt;
and images in certain locations.&lt;br /&gt;
:(Click edit of the table above as an example)&lt;br /&gt;
&lt;br /&gt;
*A table begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;table&amp;gt; Table code &amp;lt;/table&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*A row begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;tr&amp;gt; Row code &amp;lt;/tr&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*A column begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;td&amp;gt; Column code &amp;lt;/td&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are nested within each other: begin a table, row, column; end the column, row, table.&lt;br /&gt;
These are nested within each other: begin a table, row, column; end the column, row, table.&lt;br /&gt;
&lt;br /&gt;
*There are several options that may be set when starting a table, row, or column. The following is a list of the most useful.&lt;br /&gt;
:*&#039;&#039;&#039;border&#039;&#039;&#039; - Sets the thickness of the border for the entire table, or can be invisible.  &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;border=&amp;quot;n&amp;quot;&amp;lt;/code&amp;gt;, (n = {0,1,2,3,etc.})&lt;br /&gt;
:*&#039;&#039;&#039;align&#039;&#039;&#039; - sets the alignment of the table with respect to the page margins, or the text and objects within a cell. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;align=&amp;quot;center&amp;quot;&amp;lt;/code&amp;gt;, (or right, left).&lt;br /&gt;
:*&#039;&#039;&#039;valign&#039;&#039;&#039; - sets the vertical alignment of the text and objects within a cell. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;valign=&amp;quot;top&amp;quot; &amp;lt;/code&amp;gt;, (bottom, middle).&lt;br /&gt;
:*&#039;&#039;&#039;width, height&#039;&#039;&#039; - sets the width, height of the table and/or a column, row. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt; width=&amp;quot;90%&amp;quot; height=&amp;quot;450&#039;&amp;lt;/code&amp;gt;, (size can be in number of pixels, or as a percentage).&lt;br /&gt;
:*&#039;&#039;&#039;background&#039;&#039;&#039; - sets the background of a cell or table.  This can be either a picture or a solid color. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;bgcolor=&amp;quot;yellow&amp;quot; &amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;background=&amp;quot;mypicture.jpg&amp;quot; &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Upload Help==&lt;br /&gt;
&lt;br /&gt;
#Once logged-on to the site, select the &#039;Upload file&#039; link within the toolbox on the left side-bar.&lt;br /&gt;
#&#039;Browse&#039; your system for the desired file, confirm its copyright compliance, and select Upload File.&lt;br /&gt;
#:By default, a page will be created for this file with the filename as its address and, regardless of its type, will be classified as an image.&lt;br /&gt;
#The file is now stored in the image section of the site and can be linked to from any other page within the site, as follows.&lt;br /&gt;
#:a) If the file is an image, then place the following code on a wiki page at the desired location of the image:&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;[[Image:my_favorite_image.jpg|picture_position,ie_right,left,center]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
::(The picture location is not necessary and could be left blank. See the example below.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::b) If the file is not an image, then insert the following code where the file is to be downloaded:&lt;br /&gt;
::(This code should most likely be inserted into the Documents page)&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;[[Media:my_favorite_document.pdf| Document Link Name Displayed on Page]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*NB. For a list of all the files available for download from the wiki site, both images and none images, go to the &#039;&#039;&#039;Special Pages&#039;&#039;&#039; link in the toolbox and then  select &#039;&#039;&#039;Image list&#039;&#039;&#039;.  This page lists all the uploaded files on the site and they can all be downloaded from here.&lt;br /&gt;
&lt;br /&gt;
===Examples ===&lt;br /&gt;
*click the adjacent &#039;edit&#039; tabs to view the code for the examples.&lt;br /&gt;
&lt;br /&gt;
====Documents ====&lt;br /&gt;
&lt;br /&gt;
Now let&#039;s provide a pdf document: [[Media:My_favorite_pdf.pdf| I&#039;m a pdf document]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Images====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s put an image of Steve here:&lt;br /&gt;
[[Image:Steve Boyd money.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*NB. Note how a link is automatically created to the picture&#039;s actual location within the image section - click on the image itself to see.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Site Administration==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Site Creation===&lt;br /&gt;
&lt;br /&gt;
The following explains how this wiki site was created. The intention is that in the event the site is lost, so long as the text from this page &lt;br /&gt;
is backed-up somewhere, the site could be recreated. Also, just to complete the documentation, I have tried to outline all the steps that &lt;br /&gt;
I took and explanations of parts that I had problems with while developing this site.&lt;br /&gt;
&lt;br /&gt;
*The &amp;quot;wiki&amp;quot; interface of this site was developed by MediaWiki and this software runs in the background, on the server at all times.  It &lt;br /&gt;
is this interface that allows users to edit pages, upload documents, and change a variety of settings, which is all stored in a database&lt;br /&gt;
on the server.&lt;br /&gt;
*The database that is compatible with MediaWiki is mySQL. This is a standard database that is one of the packages included with the latest&lt;br /&gt;
Fedora Core for linux.  This database caused several problems during the development of the first versions of the wiki site, however the &lt;br /&gt;
version mySQL 4.1 has so far not caused any similar problems.&lt;br /&gt;
:*It is useful to know that all the data from the site is stored on a mySQL database on the server, however there should be no need to ever&lt;br /&gt;
directly access this database, or try to edit or modify it directly.  &lt;br /&gt;
:*The one exception to this is for setting up the system operator (sysop) or bureaucrat privileges. (more on this later)&lt;br /&gt;
&lt;br /&gt;
====Install Instructions====&lt;br /&gt;
&lt;br /&gt;
Check out [http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide:_Installation MediaWiki Installation] &lt;br /&gt;
*Download the latest, stable version of mediawiki from [http://wikipedia.sourceforge.net/| wikipedia.sourcforge].&lt;br /&gt;
::The MediaWiki FAQs are &#039;&#039;&#039;excellent&#039;&#039;&#039;, and should provide clear and thorough instructions for downloading and installing the program.&lt;br /&gt;
(However here is a quick summary)&lt;br /&gt;
*Read the &#039;Install.txt&#039; file for installation instructions and system requirements.&lt;br /&gt;
*The system requirements for the server (which could really be any computer set up appropriately, although &#039;&#039;&#039;preferably linux&#039;&#039;&#039;) are:&lt;br /&gt;
:*Apache web server&lt;br /&gt;
:*mySQL database&lt;br /&gt;
:*PHP-mySQL package&lt;br /&gt;
:(If running a new version of Fedora Core, all of these can be installed as packages from the original boot disks).&lt;br /&gt;
*Uncompress and untar the mediawiki folder.  It is advised to rename this folder something convenient, like wiki or mediawiki.&lt;br /&gt;
*Change the read/write access of the config directory to be readable by all.  This folder contains the php script for the initial configuration.&lt;br /&gt;
::&amp;lt;code&amp;gt;chmod a+w config&amp;lt;/code&amp;gt;&lt;br /&gt;
*The next step is to browse into this folder from an internet browser.  If this is run off of your linux box, you will need to find the folder open to the world &lt;br /&gt;
via http and move the entire mediawiki folder here.  When I did it, it was:&lt;br /&gt;
::/var/www/html/&lt;br /&gt;
:*Once the folder is there, browse &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://my_ip_address/mediawiki&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  The installation script should start and you can now fill in the boxes, &lt;br /&gt;
initializing the site and the database  which will store all the site data.&lt;br /&gt;
&lt;br /&gt;
*The on-screen instructions are rather self-explanatory and after filling in and confirming the necessary information, the site should be created.&lt;br /&gt;
*On the new page, the instructions will say to move the &#039;LocalSettings.php&#039; file into your main mediawik folder and then delete the config directory.&lt;br /&gt;
::Once this is done, the &#039;LocalSettings.php&#039; file now becomes the default script that loads the mainpage of the wiki site.&lt;br /&gt;
&lt;br /&gt;
====LocalSettings.php====&lt;br /&gt;
&lt;br /&gt;
This becomes the most important and useful file to change the apperance and customize the wiki site. Everything else can be done through the interface&lt;br /&gt;
of the wiki site itself. Within this file, one can change the navigation bar on the left margin, the logo appearing in the upper left corner, the login restrictions, the name &lt;br /&gt;
of the site, the ability to upload files, the name of the site, the contact information and address of the site administrator, among others.&lt;br /&gt;
&lt;br /&gt;
*Navigation bar - For a detailed explanation on editing the Navigation bar, see [http://meta.wikimedia.org/wiki/MediaWiki_FAQ#How_do_I_change_the_contents_of_the_navigation_toolbar.3F MediaWiki Navigation Help]&lt;br /&gt;
:Summary:&lt;br /&gt;
:*The following array should be moved to LocalSettings, from &amp;lt;code&amp;gt;includes/DefaultSettings.php &amp;lt;/code&amp;gt;. It specifies the page which holds the text to be displayed in the navigation bar and the page which holds the link of where this navigation link points to. In other words, what appears here, in this array is not necessarily what will appear in the navigation bar; they are pages on the wiki site (or pointers within the database) to where this information is stored.&lt;br /&gt;
&lt;br /&gt;
 $wgNavigationLinks = array (&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;mainpage&#039;,	&#039;href&#039;=&amp;gt;&#039;mainpage&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;portal&#039;,	&#039;href&#039;=&amp;gt;&#039;portal-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;currentevents&#039;, &#039;href&#039;=&amp;gt;&#039;currentevents-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;recentchanges&#039;, &#039;href&#039;=&amp;gt;&#039;recentchanges-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;randompage&#039;,	&#039;href&#039;=&amp;gt;&#039;randompage-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;help&#039;, 		&#039;href&#039;=&amp;gt;&#039;helppage&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;sitesupport&#039;,	&#039;href&#039;=&amp;gt;&#039;sitesupport-url&#039; ),&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
For example, one line in the navigation array for this site is:&lt;br /&gt;
::&amp;lt;code&amp;gt;array( &#039;text&#039;=&amp;gt;&#039;howto&#039;,	&#039;href&#039;=&amp;gt;&#039;howto-url&#039; ) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*On the wiki site, there is a page &amp;lt;code&amp;gt;..../index.php/MediaWiki:howto&amp;lt;/code&amp;gt; which holds the text to be displayed on the navigation bar. The text on this page is:&lt;br /&gt;
::&amp;lt;code&amp;gt; How To&#039;s&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*There&#039;s another page on this wiki site, &amp;lt;code&amp;gt;..../index.php/MediaWiki:howto-url&amp;lt;/code&amp;gt; which holds the page address of this navigation link&#039;s target.&lt;br /&gt;
::&amp;lt;code&amp;gt; How To &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*The next step is to add the desired text and target to the pages on the wiki site, that are mentioned in the navigation array.  These will initially be empty pages and must be edited for the navigations to work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Logo - This is the picture which appears in the top left corner throughout the site. At all times, this acts as a link returning to the mainpage. To customize this logo, replace the location of the logo picture in the following line of LocalSettings:&lt;br /&gt;
::&amp;lt;code&amp;gt;$wgLogo     = &amp;quot;$wgScriptPath/myfavoritepicture.gif&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
:(Could use another file type for the image, such as .png).&lt;br /&gt;
&lt;br /&gt;
*Enable File Uploading - To enable file uploading, uncomment the following line, in LocalSettings. &lt;br /&gt;
::&amp;lt;code&amp;gt;$wgDisableUploads   = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: - Then change the permissions on the image directory so that it is writable.&lt;br /&gt;
::&amp;lt;code&amp;gt;$chmod a+w images &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Adding Users===&lt;br /&gt;
Depending on the access restrictions specified in the &#039;LocalSettings.php&#039;, the site can be designed such that anybody can access and edit any of&lt;br /&gt;
the pages, or only registered users may log on to the site. Furthermore, the site can be configured such that only the &#039;sysop&#039; of the site can create&lt;br /&gt;
new accounts.  These restrictions are set within the LocalSettings file. (See above for details).&lt;br /&gt;
&lt;br /&gt;
:Note: This site has been configured so that only &#039;sysop&#039; can create new accounts.&lt;br /&gt;
&lt;br /&gt;
*Once logged in, the &#039;sysop&#039; can select &amp;quot;Create an account or log in&amp;quot; from the &amp;quot;Special Pages&amp;quot; link of the toolbox,&lt;br /&gt;
along the left margin.  Here, the sysop creates a username and can then automatically email the new user a temporary password for the site. (This email &lt;br /&gt;
will have the return address of the site administrator, as specified in LocalSettings.php.&lt;br /&gt;
&lt;br /&gt;
*Unfortunately, there is no easy way of deleting a user account. A user can be manually removed from the mySQL database, however this will most likely &lt;br /&gt;
cause problems with other tables referring to this user or deleted row. This should only be done if you really understand mySQL. &lt;br /&gt;
:*The best way to remove a user, is for the sysop to either block them, or rename their account/ change their password.&lt;br /&gt;
&lt;br /&gt;
*A user can be given &#039;sysop&#039; and &#039;bureaucrat&#039; priveleges by an existing sysop, from a link on the sysop&#039;s &amp;quot;Special Pages&amp;quot;. (The original sysop is created &lt;br /&gt;
during site initialization).&lt;br /&gt;
 &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wiki software successfully installed.&lt;br /&gt;
&lt;br /&gt;
Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface]&lt;br /&gt;
and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User&#039;s Guide] for usage and configuration help.&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=Help:Contents&amp;diff=162</id>
		<title>Help:Contents</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=Help:Contents&amp;diff=162"/>
		<updated>2005-08-11T16:36:03Z</updated>

		<summary type="html">&lt;p&gt;Scanco: /* Adding Users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Basic Editing==&lt;br /&gt;
===Text Editing===&lt;br /&gt;
&lt;br /&gt;
The simplest page modifications for this site are editing the text of a page. The text of a page can be edited all at &lt;br /&gt;
once, or more practically section by section.  &lt;br /&gt;
====Editing a section:====&lt;br /&gt;
:*Click the adjacent edit tab at the top of the desired section.&lt;br /&gt;
:*The browser now displays a large text box in the center of the page.  Inside this box contains all of the text of the section.&lt;br /&gt;
::Note: There are several formatting conventions to be considered when adding text. These affect the margins, layout, bullets, &lt;br /&gt;
section organisation, etc. See the below section about Text Formatting for details.&lt;br /&gt;
:*Once the text has been modified, select &#039;Save Page&#039; below the text window.&lt;br /&gt;
:*The change are now saved and the new, modified version of this page will appear. &lt;br /&gt;
&lt;br /&gt;
Be careful whenever making any changes, because once the changes are saved, this becomes the new page. Therefore it is possible to &lt;br /&gt;
delete entire sections. (For recovery of old page versions, see the Recent Changes page).&lt;br /&gt;
&lt;br /&gt;
====Editing an entire page====&lt;br /&gt;
:*Similar to above, but select the &#039;edit&#039; tab at the top of the page. Now, the text for the entire page appears in the text editing&lt;br /&gt;
window.&lt;br /&gt;
:*This is useful for changing the arrangement and ordering of sections but is &#039;&#039;&#039;not&#039;&#039;&#039; recommended for specific text editing.&lt;br /&gt;
&lt;br /&gt;
Especially here, be careful when editing because the entire page could be deleted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Creating a new page===&lt;br /&gt;
&lt;br /&gt;
Creating a new page is very simple. You just have to make a link to this new page from an existing page, and click the link. This will bring you to the editing window of this page, to which you can now add content.&lt;br /&gt;
*For example, let&#039;s make a new page [[here]].&lt;br /&gt;
::This was done by putting the word &amp;quot;here&amp;quot; inside double square brackets, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[here]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Select &amp;quot;Save page&amp;quot;, then click &amp;quot;here&amp;quot;, which is now in &amp;lt;b style=&amp;quot;color:red&amp;quot;&amp;gt;red&amp;lt;/b&amp;gt;. Here I begin my new page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Linking to an external page===&lt;br /&gt;
The only difference here is that we use single square brackets, or none at all. &lt;br /&gt;
*Let&#039;s link to Steve Boyd&#039;s homepage here: http://www.enme.ucalgary.ca/~skboyd/. Nothing special, just the put the URL within the text.&lt;br /&gt;
::&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.enme.ucalgary.ca/~skboyd/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*In order to have a more convenient name appear as the link, use single square brackets and type the desired name of the link, seperated by a space, within the brackets. [http://www.enme.ucalgary.ca/~skboyd/ Steve&#039;s Hoempage]&lt;br /&gt;
::&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[http://www.enme.ucalgary.ca/~skboyd/ Steve&#039;s Homepage]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Text Formatting===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re familiar with HTML conventions, you can apply &#039;&#039;&#039;most&#039;&#039;&#039; of these on a wiki page, however wiki has many of its own conventions.&lt;br /&gt;
The following table lists the text formatting operations applicable to this site.&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;80%&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;What appears on the Page&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;What you type&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Section Headers:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This can&#039;t really be demonstrated within a table, but click the edit tab for various sections to see examples of&lt;br /&gt;
sections.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
= Major Section=&lt;br /&gt;
&lt;br /&gt;
==Section==&lt;br /&gt;
&lt;br /&gt;
===Sub-Section===&lt;br /&gt;
&lt;br /&gt;
====Sub-Sub-Section====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&#039;&#039;&#039;Newline:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Typing on the&lt;br /&gt;
next line &lt;br /&gt;
will not&lt;br /&gt;
make a new line.&lt;br /&gt;
&lt;br /&gt;
But leaving one line empty does start&lt;br /&gt;
a new line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start a new line without making a new paragraph &amp;lt;br&amp;gt;&lt;br /&gt;
Now we have a new line here.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Typing on the&lt;br /&gt;
next line &lt;br /&gt;
will not&lt;br /&gt;
make a new line.&lt;br /&gt;
&lt;br /&gt;
But leaving one line empty does start&lt;br /&gt;
a new line.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
To start a new line without making a new paragraph &amp;lt;br&amp;gt;&lt;br /&gt;
Now we have a new line here.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lists&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Lists are started like this.&lt;br /&gt;
**They can also have sub lists&lt;br /&gt;
***and sub-sub lists.&lt;br /&gt;
Starting a regular line like this ends the list.&lt;br /&gt;
&lt;br /&gt;
*But you can break &amp;lt;BR&amp;gt; lines &amp;lt;br&amp;gt; within a list &amp;lt;br&amp;gt; like this.&lt;br /&gt;
*Then start a new line.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
*Lists are started like this.&lt;br /&gt;
**They can also have sub lists&lt;br /&gt;
***and sub-sub lists.&lt;br /&gt;
Starting a regular line like this ends the list.&lt;br /&gt;
&lt;br /&gt;
*But you can break &amp;lt;BR&amp;gt; lines &amp;lt;br&amp;gt; within a list &amp;lt;br&amp;gt; like this.&lt;br /&gt;
*Then start a new line.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Numbered Lists:&#039;&#039;&#039;&lt;br /&gt;
#Numbered lists can be created automatically.&lt;br /&gt;
#New number here&lt;br /&gt;
##I&#039;m a number within a number.&lt;br /&gt;
##Me too.&lt;br /&gt;
#Back to the original list.&lt;br /&gt;
The end of the list.&lt;br /&gt;
#Now here&#039;s a new list.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#Numbered lists can be created automatically.&lt;br /&gt;
#New number here&lt;br /&gt;
##I&#039;m a number within a number.&lt;br /&gt;
##Me too.&lt;br /&gt;
#Back to the original list.&lt;br /&gt;
The end of the list.&lt;br /&gt;
#Now here&#039;s a new list.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Indenting&#039;&#039;&#039;&lt;br /&gt;
:Starting a line with a colon&lt;br /&gt;
::or several colons, you can indent the line.&lt;br /&gt;
No indent here!&lt;br /&gt;
:::::I&#039;m super indented.&lt;br /&gt;
&lt;br /&gt;
:*Indenting, as well as bullets, and numbered lists can&lt;br /&gt;
::be combined.&lt;br /&gt;
:#I&#039;m number one&lt;br /&gt;
:#*I&#039;m almost one&lt;br /&gt;
:#I&#039;m only number two :(&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
:Starting a line with a colon&lt;br /&gt;
::or several colons, you can indent the line.&lt;br /&gt;
No indent here!&lt;br /&gt;
:::::I&#039;m super indented.&lt;br /&gt;
&lt;br /&gt;
:*Indenting, as well as bullets, and numbered lists can&lt;br /&gt;
::be combined.&lt;br /&gt;
:#I&#039;m number one&lt;br /&gt;
:#*I&#039;m almost one&lt;br /&gt;
:#I&#039;m only number two :(&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 Starting every line with a &lt;br /&gt;
    space means that the text won&#039;t be formatted&lt;br /&gt;
 and should appear as typed.     But be careful, lines no &lt;br /&gt;
 longer wrap automatically.&lt;br /&gt;
 &lt;br /&gt;
 *This can be useful for preformatted text&lt;br /&gt;
    but also, is nice for code because it makes this nice box.&lt;br /&gt;
&lt;br /&gt;
Another way to make text within this box is to use &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
and &amp;lt;nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
We&#039;re inside a box.&lt;br /&gt;
*Ya, isn&#039;t this cool.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 Starting every line with a &lt;br /&gt;
    space means that the text won&#039;t be formatted&lt;br /&gt;
 and should appear as typed.     But be careful, lines no &lt;br /&gt;
 longer wrap automatically.&lt;br /&gt;
 &lt;br /&gt;
 *This can be useful for preformatted text&lt;br /&gt;
    but also, is nice for code because it makes this nice box.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another way to make text within this box is to use &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
and &amp;lt;nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
We&#039;re inside a box.&lt;br /&gt;
*Ya, isn&#039;t this cool.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tables===&lt;br /&gt;
&lt;br /&gt;
Tables, like the one above are very useful for organising information, or for specifying the layout of a page - placing text&lt;br /&gt;
and images in certain locations.&lt;br /&gt;
:(Click edit of the table above as an example)&lt;br /&gt;
&lt;br /&gt;
*A table begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;table&amp;gt; Table code &amp;lt;/table&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*A row begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;tr&amp;gt; Row code &amp;lt;/tr&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*A column begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;td&amp;gt; Column code &amp;lt;/td&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are nested within each other: begin a table, row, column; end the column, row, table.&lt;br /&gt;
These are nested within each other: begin a table, row, column; end the column, row, table.&lt;br /&gt;
&lt;br /&gt;
*There are several options that may be set when starting a table, row, or column. The following is a list of the most useful.&lt;br /&gt;
:*&#039;&#039;&#039;border&#039;&#039;&#039; - Sets the thickness of the border for the entire table, or can be invisible.  &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;border=&amp;quot;n&amp;quot;&amp;lt;/code&amp;gt;, (n = {0,1,2,3,etc.})&lt;br /&gt;
:*&#039;&#039;&#039;align&#039;&#039;&#039; - sets the alignment of the table with respect to the page margins, or the text and objects within a cell. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;align=&amp;quot;center&amp;quot;&amp;lt;/code&amp;gt;, (or right, left).&lt;br /&gt;
:*&#039;&#039;&#039;valign&#039;&#039;&#039; - sets the vertical alignment of the text and objects within a cell. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;valign=&amp;quot;top&amp;quot; &amp;lt;/code&amp;gt;, (bottom, middle).&lt;br /&gt;
:*&#039;&#039;&#039;width, height&#039;&#039;&#039; - sets the width, height of the table and/or a column, row. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt; width=&amp;quot;90%&amp;quot; height=&amp;quot;450&#039;&amp;lt;/code&amp;gt;, (size can be in number of pixels, or as a percentage).&lt;br /&gt;
:*&#039;&#039;&#039;background&#039;&#039;&#039; - sets the background of a cell or table.  This can be either a picture or a solid color. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;bgcolor=&amp;quot;yellow&amp;quot; &amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;background=&amp;quot;mypicture.jpg&amp;quot; &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Upload Help==&lt;br /&gt;
&lt;br /&gt;
#Once logged-on to the site, select the &#039;Upload file&#039; link within the toolbox on the left side-bar.&lt;br /&gt;
#&#039;Browse&#039; your system for the desired file, confirm its copyright compliance, and select Upload File.&lt;br /&gt;
#:By default, a page will be created for this file with the filename as its address and, regardless of its type, will be classified as an image.&lt;br /&gt;
#The file is now stored in the image section of the site and can be linked to from any other page within the site, as follows.&lt;br /&gt;
#:a) If the file is an image, then place the following code on a wiki page at the desired location of the image:&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;[[Image:my_favorite_image.jpg|picture_position,ie_right,left,center]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
::(The picture location is not necessary and could be left blank. See the example below.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::b) If the file is not an image, then insert the following code where the file is to be downloaded:&lt;br /&gt;
::(This code should most likely be inserted into the Documents page)&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;[[Media:my_favorite_document.pdf| Document Link Name Displayed on Page]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*NB. For a list of all the files available for download from the wiki site, both images and none images, go to the &#039;&#039;&#039;Special Pages&#039;&#039;&#039; link in the toolbox and then  select &#039;&#039;&#039;Image list&#039;&#039;&#039;.  This page lists all the uploaded files on the site and they can all be downloaded from here.&lt;br /&gt;
&lt;br /&gt;
===Examples ===&lt;br /&gt;
*click the adjacent &#039;edit&#039; tabs to view the code for the examples.&lt;br /&gt;
&lt;br /&gt;
====Documents ====&lt;br /&gt;
&lt;br /&gt;
Now let&#039;s provide a pdf document: [[Media:My_favorite_pdf.pdf| I&#039;m a pdf document]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Images====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s put an image of Steve here:&lt;br /&gt;
[[Image:Steve Boyd money.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*NB. Note how a link is automatically created to the picture&#039;s actual location within the image section - click on the image itself to see.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Site Administration==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Site Creation===&lt;br /&gt;
&lt;br /&gt;
The following explains how this wiki site was created. The intention is that in the event the site is lost, so long as the text from this page &lt;br /&gt;
is backed-up somewhere, the site could be recreated. Also, just to complete the documentation, I have tried to outline all the steps that &lt;br /&gt;
I took and explanations of parts that I had problems with while developing this site.&lt;br /&gt;
&lt;br /&gt;
*The &amp;quot;wiki&amp;quot; interface of this site was developed by MediaWiki and this software runs in the background, on the server at all times.  It &lt;br /&gt;
is this interface that allows users to edit pages, upload documents, and change a variety of settings, which is all stored in a database&lt;br /&gt;
on the server.&lt;br /&gt;
*The database that is compatible with MediaWiki is mySQL. This is a standard database that is one of the packages included with the latest&lt;br /&gt;
Fedora Core for linux.  This database caused several problems during the development of the first versions of the wiki site, however the &lt;br /&gt;
version mySQL 4.1 has so far not caused any similar problems.&lt;br /&gt;
:*It is useful to know that all the data from the site is stored on a mySQL database on the server, however there should be no need to ever&lt;br /&gt;
directly access this database, or try to edit or modify it directly.  &lt;br /&gt;
:*The one exception to this is for setting up the system operator (sysop) or bureaucrat privileges. (more on this later)&lt;br /&gt;
&lt;br /&gt;
====Install Instructions====&lt;br /&gt;
&lt;br /&gt;
Check out [http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide:_Installation MediaWiki Installation] &lt;br /&gt;
*Download the latest, stable version of mediawiki from [http://wikipedia.sourceforge.net/| wikipedia.sourcforge].&lt;br /&gt;
::The MediaWiki FAQs are &#039;&#039;&#039;excellent&#039;&#039;&#039;, and should provide clear and thorough instructions for downloading and installing the program.&lt;br /&gt;
(However here is a quick summary)&lt;br /&gt;
*Read the &#039;Install.txt&#039; file for installation instructions and system requirements.&lt;br /&gt;
*The system requirements for the server (which could really be any computer set up appropriately, although &#039;&#039;&#039;preferably linux&#039;&#039;&#039;) are:&lt;br /&gt;
:*Apache web server&lt;br /&gt;
:*mySQL database&lt;br /&gt;
:*PHP-mySQL package&lt;br /&gt;
:(If running a new version of Fedora Core, all of these can be installed as packages from the original boot disks).&lt;br /&gt;
*Uncompress and untar the mediawiki folder.  It is advised to rename this folder something convenient, like wiki or mediawiki.&lt;br /&gt;
*Change the read/write access of the config directory to be readable by all.  This folder contains the php script for the initial configuration.&lt;br /&gt;
::&amp;lt;code&amp;gt;chmod a+w config&amp;lt;/code&amp;gt;&lt;br /&gt;
*The next step is to browse into this folder from an internet browser.  If this is run off of your linux box, you will need to find the folder open to the world &lt;br /&gt;
via http and move the entire mediawiki folder here.  When I did it, it was:&lt;br /&gt;
::/var/www/html/&lt;br /&gt;
:*Once the folder is there, browse &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://my_ip_address/mediawiki&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  The installation script should start and you can now fill in the boxes, &lt;br /&gt;
initializing the site and the database  which will store all the site data.&lt;br /&gt;
&lt;br /&gt;
*The on-screen instructions are rather self-explanatory and after filling in and confirming the necessary information, the site should be created.&lt;br /&gt;
*On the new page, the instructions will say to move the &#039;LocalSettings.php&#039; file into your main mediawik folder and then delete the config directory.&lt;br /&gt;
::Once this is done, the &#039;LocalSettings.php&#039; file now becomes the default script that loads the mainpage of the wiki site.&lt;br /&gt;
&lt;br /&gt;
====LocalSettings.php====&lt;br /&gt;
&lt;br /&gt;
This becomes the most important and useful file to change the apperance and customize the wiki site. Everything else can be done through the interface&lt;br /&gt;
of the wiki site itself. Within this file, one can change the navigation bar on the left margin, the logo appearing in the upper left corner, the login restrictions, the name &lt;br /&gt;
of the site, the ability to upload files, the name of the site, the contact information and address of the site administrator, among others.&lt;br /&gt;
&lt;br /&gt;
*Navigation bar - For a detailed explanation on editing the Navigation bar, see [http://meta.wikimedia.org/wiki/MediaWiki_FAQ#How_do_I_change_the_contents_of_the_navigation_toolbar.3F MediaWiki Navigation Help]&lt;br /&gt;
:Summary:&lt;br /&gt;
:*The following array should be moved to LocalSettings, from &amp;lt;code&amp;gt;includes/DefaultSettings.php &amp;lt;/code&amp;gt;. It specifies the page which holds the text to be displayed in the navigation bar and the page which holds the link of where this navigation link points to. In other words, what appears here, in this array is not necessarily what will appear in the navigation bar; they are pages on the wiki site (or pointers within the database) to where this information is stored.&lt;br /&gt;
&lt;br /&gt;
 $wgNavigationLinks = array (&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;mainpage&#039;,	&#039;href&#039;=&amp;gt;&#039;mainpage&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;portal&#039;,	&#039;href&#039;=&amp;gt;&#039;portal-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;currentevents&#039;, &#039;href&#039;=&amp;gt;&#039;currentevents-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;recentchanges&#039;, &#039;href&#039;=&amp;gt;&#039;recentchanges-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;randompage&#039;,	&#039;href&#039;=&amp;gt;&#039;randompage-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;help&#039;, 		&#039;href&#039;=&amp;gt;&#039;helppage&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;sitesupport&#039;,	&#039;href&#039;=&amp;gt;&#039;sitesupport-url&#039; ),&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
For example, one line in the navigation array for this site is:&lt;br /&gt;
::&amp;lt;code&amp;gt;array( &#039;text&#039;=&amp;gt;&#039;howto&#039;,	&#039;href&#039;=&amp;gt;&#039;howto-url&#039; ) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*On the wiki site, there is a page &amp;lt;code&amp;gt;..../index.php/MediaWiki:howto&amp;lt;/code&amp;gt; which holds the text to be displayed on the navigation bar. The text on this page is:&lt;br /&gt;
::&amp;lt;code&amp;gt; How To&#039;s&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*There&#039;s another page on this wiki site, &amp;lt;code&amp;gt;..../index.php/MediaWiki:howto-url&amp;lt;/code&amp;gt; which holds the page address of this navigation link&#039;s target.&lt;br /&gt;
::&amp;lt;code&amp;gt; How To &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*The next step is to add the desired text and target to the pages on the wiki site, that are mentioned in the navigation array.  These will initially be empty pages and must be edited for the navigations to work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Logo - This is the picture which appears in the top left corner throughout the site. At all times, this acts as a link returning to the mainpage. To customize this logo, replace the location of the logo picture in the following line of LocalSettings:&lt;br /&gt;
::&amp;lt;code&amp;gt;$wgLogo     = &amp;quot;$wgScriptPath/myfavoritepicture.gif&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
:(Could use another file type for the image, such as .png).&lt;br /&gt;
&lt;br /&gt;
*Enable File Uploading - To enable file uploading, uncomment the following line, in LocalSettings. &lt;br /&gt;
::&amp;lt;code&amp;gt;$wgDisableUploads   = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: - Then change the permissions on the image directory so that it is writable.&lt;br /&gt;
::&amp;lt;code&amp;gt;$chmod a+w images &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Adding Users===&lt;br /&gt;
Depending on the access restrictions specified in the &#039;LocalSettings.php&#039;, the site can be designed such that anybody can access and edit any of&lt;br /&gt;
the pages, or only registered users may log on to the site. Furthermore, the site can be configured such that only the &#039;sysop&#039; of the site can create&lt;br /&gt;
new accounts.  These restrictions are set within the LocalSettings file. (See above for details).&lt;br /&gt;
&lt;br /&gt;
::Note: This site has been configured so that only &#039;sysop&#039; can create new accounts.&lt;br /&gt;
&lt;br /&gt;
*Once logged in, the &#039;sysop&#039; can select &amp;quot;Create an account or log in&amp;quot; from the &amp;quot;Special Pages&amp;quot; link of the toolbox,&lt;br /&gt;
along the left margin.  Here, the sysop creates a username and can then automatically email the new user a temporary password for the site. (This email &lt;br /&gt;
will have the return address of the site administrator, as specified in LocalSettings.php.&lt;br /&gt;
&lt;br /&gt;
*Unfortunately, there is no easy way of deleting a user account. A user can be manually removed from the mySQL database, however this will most likely &lt;br /&gt;
cause problems with other tables referring to this user or deleted row. This should only be done if you really understand mySQL. &lt;br /&gt;
:*The best way to remove a user, is for the sysop to either block them, or rename their account/ change their password.&lt;br /&gt;
&lt;br /&gt;
*A user can be given &#039;sysop&#039; and &#039;bureaucrat&#039; priveleges by an existing sysop, from a link on the sysop&#039;s &amp;quot;Special Pages&amp;quot;. (The original sysop is created &lt;br /&gt;
during site initialization).&lt;br /&gt;
 &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wiki software successfully installed.&lt;br /&gt;
&lt;br /&gt;
Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface]&lt;br /&gt;
and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User&#039;s Guide] for usage and configuration help.&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=Help:Contents&amp;diff=161</id>
		<title>Help:Contents</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=Help:Contents&amp;diff=161"/>
		<updated>2005-08-11T16:35:54Z</updated>

		<summary type="html">&lt;p&gt;Scanco: /* Adding Users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Basic Editing==&lt;br /&gt;
===Text Editing===&lt;br /&gt;
&lt;br /&gt;
The simplest page modifications for this site are editing the text of a page. The text of a page can be edited all at &lt;br /&gt;
once, or more practically section by section.  &lt;br /&gt;
====Editing a section:====&lt;br /&gt;
:*Click the adjacent edit tab at the top of the desired section.&lt;br /&gt;
:*The browser now displays a large text box in the center of the page.  Inside this box contains all of the text of the section.&lt;br /&gt;
::Note: There are several formatting conventions to be considered when adding text. These affect the margins, layout, bullets, &lt;br /&gt;
section organisation, etc. See the below section about Text Formatting for details.&lt;br /&gt;
:*Once the text has been modified, select &#039;Save Page&#039; below the text window.&lt;br /&gt;
:*The change are now saved and the new, modified version of this page will appear. &lt;br /&gt;
&lt;br /&gt;
Be careful whenever making any changes, because once the changes are saved, this becomes the new page. Therefore it is possible to &lt;br /&gt;
delete entire sections. (For recovery of old page versions, see the Recent Changes page).&lt;br /&gt;
&lt;br /&gt;
====Editing an entire page====&lt;br /&gt;
:*Similar to above, but select the &#039;edit&#039; tab at the top of the page. Now, the text for the entire page appears in the text editing&lt;br /&gt;
window.&lt;br /&gt;
:*This is useful for changing the arrangement and ordering of sections but is &#039;&#039;&#039;not&#039;&#039;&#039; recommended for specific text editing.&lt;br /&gt;
&lt;br /&gt;
Especially here, be careful when editing because the entire page could be deleted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Creating a new page===&lt;br /&gt;
&lt;br /&gt;
Creating a new page is very simple. You just have to make a link to this new page from an existing page, and click the link. This will bring you to the editing window of this page, to which you can now add content.&lt;br /&gt;
*For example, let&#039;s make a new page [[here]].&lt;br /&gt;
::This was done by putting the word &amp;quot;here&amp;quot; inside double square brackets, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[here]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Select &amp;quot;Save page&amp;quot;, then click &amp;quot;here&amp;quot;, which is now in &amp;lt;b style=&amp;quot;color:red&amp;quot;&amp;gt;red&amp;lt;/b&amp;gt;. Here I begin my new page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Linking to an external page===&lt;br /&gt;
The only difference here is that we use single square brackets, or none at all. &lt;br /&gt;
*Let&#039;s link to Steve Boyd&#039;s homepage here: http://www.enme.ucalgary.ca/~skboyd/. Nothing special, just the put the URL within the text.&lt;br /&gt;
::&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.enme.ucalgary.ca/~skboyd/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*In order to have a more convenient name appear as the link, use single square brackets and type the desired name of the link, seperated by a space, within the brackets. [http://www.enme.ucalgary.ca/~skboyd/ Steve&#039;s Hoempage]&lt;br /&gt;
::&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[http://www.enme.ucalgary.ca/~skboyd/ Steve&#039;s Homepage]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Text Formatting===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re familiar with HTML conventions, you can apply &#039;&#039;&#039;most&#039;&#039;&#039; of these on a wiki page, however wiki has many of its own conventions.&lt;br /&gt;
The following table lists the text formatting operations applicable to this site.&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;80%&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;What appears on the Page&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;What you type&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Section Headers:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This can&#039;t really be demonstrated within a table, but click the edit tab for various sections to see examples of&lt;br /&gt;
sections.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
= Major Section=&lt;br /&gt;
&lt;br /&gt;
==Section==&lt;br /&gt;
&lt;br /&gt;
===Sub-Section===&lt;br /&gt;
&lt;br /&gt;
====Sub-Sub-Section====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&#039;&#039;&#039;Newline:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Typing on the&lt;br /&gt;
next line &lt;br /&gt;
will not&lt;br /&gt;
make a new line.&lt;br /&gt;
&lt;br /&gt;
But leaving one line empty does start&lt;br /&gt;
a new line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start a new line without making a new paragraph &amp;lt;br&amp;gt;&lt;br /&gt;
Now we have a new line here.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Typing on the&lt;br /&gt;
next line &lt;br /&gt;
will not&lt;br /&gt;
make a new line.&lt;br /&gt;
&lt;br /&gt;
But leaving one line empty does start&lt;br /&gt;
a new line.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
To start a new line without making a new paragraph &amp;lt;br&amp;gt;&lt;br /&gt;
Now we have a new line here.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lists&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Lists are started like this.&lt;br /&gt;
**They can also have sub lists&lt;br /&gt;
***and sub-sub lists.&lt;br /&gt;
Starting a regular line like this ends the list.&lt;br /&gt;
&lt;br /&gt;
*But you can break &amp;lt;BR&amp;gt; lines &amp;lt;br&amp;gt; within a list &amp;lt;br&amp;gt; like this.&lt;br /&gt;
*Then start a new line.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
*Lists are started like this.&lt;br /&gt;
**They can also have sub lists&lt;br /&gt;
***and sub-sub lists.&lt;br /&gt;
Starting a regular line like this ends the list.&lt;br /&gt;
&lt;br /&gt;
*But you can break &amp;lt;BR&amp;gt; lines &amp;lt;br&amp;gt; within a list &amp;lt;br&amp;gt; like this.&lt;br /&gt;
*Then start a new line.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Numbered Lists:&#039;&#039;&#039;&lt;br /&gt;
#Numbered lists can be created automatically.&lt;br /&gt;
#New number here&lt;br /&gt;
##I&#039;m a number within a number.&lt;br /&gt;
##Me too.&lt;br /&gt;
#Back to the original list.&lt;br /&gt;
The end of the list.&lt;br /&gt;
#Now here&#039;s a new list.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#Numbered lists can be created automatically.&lt;br /&gt;
#New number here&lt;br /&gt;
##I&#039;m a number within a number.&lt;br /&gt;
##Me too.&lt;br /&gt;
#Back to the original list.&lt;br /&gt;
The end of the list.&lt;br /&gt;
#Now here&#039;s a new list.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Indenting&#039;&#039;&#039;&lt;br /&gt;
:Starting a line with a colon&lt;br /&gt;
::or several colons, you can indent the line.&lt;br /&gt;
No indent here!&lt;br /&gt;
:::::I&#039;m super indented.&lt;br /&gt;
&lt;br /&gt;
:*Indenting, as well as bullets, and numbered lists can&lt;br /&gt;
::be combined.&lt;br /&gt;
:#I&#039;m number one&lt;br /&gt;
:#*I&#039;m almost one&lt;br /&gt;
:#I&#039;m only number two :(&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
:Starting a line with a colon&lt;br /&gt;
::or several colons, you can indent the line.&lt;br /&gt;
No indent here!&lt;br /&gt;
:::::I&#039;m super indented.&lt;br /&gt;
&lt;br /&gt;
:*Indenting, as well as bullets, and numbered lists can&lt;br /&gt;
::be combined.&lt;br /&gt;
:#I&#039;m number one&lt;br /&gt;
:#*I&#039;m almost one&lt;br /&gt;
:#I&#039;m only number two :(&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 Starting every line with a &lt;br /&gt;
    space means that the text won&#039;t be formatted&lt;br /&gt;
 and should appear as typed.     But be careful, lines no &lt;br /&gt;
 longer wrap automatically.&lt;br /&gt;
 &lt;br /&gt;
 *This can be useful for preformatted text&lt;br /&gt;
    but also, is nice for code because it makes this nice box.&lt;br /&gt;
&lt;br /&gt;
Another way to make text within this box is to use &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
and &amp;lt;nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
We&#039;re inside a box.&lt;br /&gt;
*Ya, isn&#039;t this cool.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 Starting every line with a &lt;br /&gt;
    space means that the text won&#039;t be formatted&lt;br /&gt;
 and should appear as typed.     But be careful, lines no &lt;br /&gt;
 longer wrap automatically.&lt;br /&gt;
 &lt;br /&gt;
 *This can be useful for preformatted text&lt;br /&gt;
    but also, is nice for code because it makes this nice box.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another way to make text within this box is to use &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
and &amp;lt;nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
We&#039;re inside a box.&lt;br /&gt;
*Ya, isn&#039;t this cool.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tables===&lt;br /&gt;
&lt;br /&gt;
Tables, like the one above are very useful for organising information, or for specifying the layout of a page - placing text&lt;br /&gt;
and images in certain locations.&lt;br /&gt;
:(Click edit of the table above as an example)&lt;br /&gt;
&lt;br /&gt;
*A table begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;table&amp;gt; Table code &amp;lt;/table&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*A row begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;tr&amp;gt; Row code &amp;lt;/tr&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*A column begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;td&amp;gt; Column code &amp;lt;/td&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are nested within each other: begin a table, row, column; end the column, row, table.&lt;br /&gt;
These are nested within each other: begin a table, row, column; end the column, row, table.&lt;br /&gt;
&lt;br /&gt;
*There are several options that may be set when starting a table, row, or column. The following is a list of the most useful.&lt;br /&gt;
:*&#039;&#039;&#039;border&#039;&#039;&#039; - Sets the thickness of the border for the entire table, or can be invisible.  &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;border=&amp;quot;n&amp;quot;&amp;lt;/code&amp;gt;, (n = {0,1,2,3,etc.})&lt;br /&gt;
:*&#039;&#039;&#039;align&#039;&#039;&#039; - sets the alignment of the table with respect to the page margins, or the text and objects within a cell. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;align=&amp;quot;center&amp;quot;&amp;lt;/code&amp;gt;, (or right, left).&lt;br /&gt;
:*&#039;&#039;&#039;valign&#039;&#039;&#039; - sets the vertical alignment of the text and objects within a cell. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;valign=&amp;quot;top&amp;quot; &amp;lt;/code&amp;gt;, (bottom, middle).&lt;br /&gt;
:*&#039;&#039;&#039;width, height&#039;&#039;&#039; - sets the width, height of the table and/or a column, row. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt; width=&amp;quot;90%&amp;quot; height=&amp;quot;450&#039;&amp;lt;/code&amp;gt;, (size can be in number of pixels, or as a percentage).&lt;br /&gt;
:*&#039;&#039;&#039;background&#039;&#039;&#039; - sets the background of a cell or table.  This can be either a picture or a solid color. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;bgcolor=&amp;quot;yellow&amp;quot; &amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;background=&amp;quot;mypicture.jpg&amp;quot; &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Upload Help==&lt;br /&gt;
&lt;br /&gt;
#Once logged-on to the site, select the &#039;Upload file&#039; link within the toolbox on the left side-bar.&lt;br /&gt;
#&#039;Browse&#039; your system for the desired file, confirm its copyright compliance, and select Upload File.&lt;br /&gt;
#:By default, a page will be created for this file with the filename as its address and, regardless of its type, will be classified as an image.&lt;br /&gt;
#The file is now stored in the image section of the site and can be linked to from any other page within the site, as follows.&lt;br /&gt;
#:a) If the file is an image, then place the following code on a wiki page at the desired location of the image:&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;[[Image:my_favorite_image.jpg|picture_position,ie_right,left,center]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
::(The picture location is not necessary and could be left blank. See the example below.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::b) If the file is not an image, then insert the following code where the file is to be downloaded:&lt;br /&gt;
::(This code should most likely be inserted into the Documents page)&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;[[Media:my_favorite_document.pdf| Document Link Name Displayed on Page]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*NB. For a list of all the files available for download from the wiki site, both images and none images, go to the &#039;&#039;&#039;Special Pages&#039;&#039;&#039; link in the toolbox and then  select &#039;&#039;&#039;Image list&#039;&#039;&#039;.  This page lists all the uploaded files on the site and they can all be downloaded from here.&lt;br /&gt;
&lt;br /&gt;
===Examples ===&lt;br /&gt;
*click the adjacent &#039;edit&#039; tabs to view the code for the examples.&lt;br /&gt;
&lt;br /&gt;
====Documents ====&lt;br /&gt;
&lt;br /&gt;
Now let&#039;s provide a pdf document: [[Media:My_favorite_pdf.pdf| I&#039;m a pdf document]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Images====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s put an image of Steve here:&lt;br /&gt;
[[Image:Steve Boyd money.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*NB. Note how a link is automatically created to the picture&#039;s actual location within the image section - click on the image itself to see.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Site Administration==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Site Creation===&lt;br /&gt;
&lt;br /&gt;
The following explains how this wiki site was created. The intention is that in the event the site is lost, so long as the text from this page &lt;br /&gt;
is backed-up somewhere, the site could be recreated. Also, just to complete the documentation, I have tried to outline all the steps that &lt;br /&gt;
I took and explanations of parts that I had problems with while developing this site.&lt;br /&gt;
&lt;br /&gt;
*The &amp;quot;wiki&amp;quot; interface of this site was developed by MediaWiki and this software runs in the background, on the server at all times.  It &lt;br /&gt;
is this interface that allows users to edit pages, upload documents, and change a variety of settings, which is all stored in a database&lt;br /&gt;
on the server.&lt;br /&gt;
*The database that is compatible with MediaWiki is mySQL. This is a standard database that is one of the packages included with the latest&lt;br /&gt;
Fedora Core for linux.  This database caused several problems during the development of the first versions of the wiki site, however the &lt;br /&gt;
version mySQL 4.1 has so far not caused any similar problems.&lt;br /&gt;
:*It is useful to know that all the data from the site is stored on a mySQL database on the server, however there should be no need to ever&lt;br /&gt;
directly access this database, or try to edit or modify it directly.  &lt;br /&gt;
:*The one exception to this is for setting up the system operator (sysop) or bureaucrat privileges. (more on this later)&lt;br /&gt;
&lt;br /&gt;
====Install Instructions====&lt;br /&gt;
&lt;br /&gt;
Check out [http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide:_Installation MediaWiki Installation] &lt;br /&gt;
*Download the latest, stable version of mediawiki from [http://wikipedia.sourceforge.net/| wikipedia.sourcforge].&lt;br /&gt;
::The MediaWiki FAQs are &#039;&#039;&#039;excellent&#039;&#039;&#039;, and should provide clear and thorough instructions for downloading and installing the program.&lt;br /&gt;
(However here is a quick summary)&lt;br /&gt;
*Read the &#039;Install.txt&#039; file for installation instructions and system requirements.&lt;br /&gt;
*The system requirements for the server (which could really be any computer set up appropriately, although &#039;&#039;&#039;preferably linux&#039;&#039;&#039;) are:&lt;br /&gt;
:*Apache web server&lt;br /&gt;
:*mySQL database&lt;br /&gt;
:*PHP-mySQL package&lt;br /&gt;
:(If running a new version of Fedora Core, all of these can be installed as packages from the original boot disks).&lt;br /&gt;
*Uncompress and untar the mediawiki folder.  It is advised to rename this folder something convenient, like wiki or mediawiki.&lt;br /&gt;
*Change the read/write access of the config directory to be readable by all.  This folder contains the php script for the initial configuration.&lt;br /&gt;
::&amp;lt;code&amp;gt;chmod a+w config&amp;lt;/code&amp;gt;&lt;br /&gt;
*The next step is to browse into this folder from an internet browser.  If this is run off of your linux box, you will need to find the folder open to the world &lt;br /&gt;
via http and move the entire mediawiki folder here.  When I did it, it was:&lt;br /&gt;
::/var/www/html/&lt;br /&gt;
:*Once the folder is there, browse &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://my_ip_address/mediawiki&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  The installation script should start and you can now fill in the boxes, &lt;br /&gt;
initializing the site and the database  which will store all the site data.&lt;br /&gt;
&lt;br /&gt;
*The on-screen instructions are rather self-explanatory and after filling in and confirming the necessary information, the site should be created.&lt;br /&gt;
*On the new page, the instructions will say to move the &#039;LocalSettings.php&#039; file into your main mediawik folder and then delete the config directory.&lt;br /&gt;
::Once this is done, the &#039;LocalSettings.php&#039; file now becomes the default script that loads the mainpage of the wiki site.&lt;br /&gt;
&lt;br /&gt;
====LocalSettings.php====&lt;br /&gt;
&lt;br /&gt;
This becomes the most important and useful file to change the apperance and customize the wiki site. Everything else can be done through the interface&lt;br /&gt;
of the wiki site itself. Within this file, one can change the navigation bar on the left margin, the logo appearing in the upper left corner, the login restrictions, the name &lt;br /&gt;
of the site, the ability to upload files, the name of the site, the contact information and address of the site administrator, among others.&lt;br /&gt;
&lt;br /&gt;
*Navigation bar - For a detailed explanation on editing the Navigation bar, see [http://meta.wikimedia.org/wiki/MediaWiki_FAQ#How_do_I_change_the_contents_of_the_navigation_toolbar.3F MediaWiki Navigation Help]&lt;br /&gt;
:Summary:&lt;br /&gt;
:*The following array should be moved to LocalSettings, from &amp;lt;code&amp;gt;includes/DefaultSettings.php &amp;lt;/code&amp;gt;. It specifies the page which holds the text to be displayed in the navigation bar and the page which holds the link of where this navigation link points to. In other words, what appears here, in this array is not necessarily what will appear in the navigation bar; they are pages on the wiki site (or pointers within the database) to where this information is stored.&lt;br /&gt;
&lt;br /&gt;
 $wgNavigationLinks = array (&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;mainpage&#039;,	&#039;href&#039;=&amp;gt;&#039;mainpage&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;portal&#039;,	&#039;href&#039;=&amp;gt;&#039;portal-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;currentevents&#039;, &#039;href&#039;=&amp;gt;&#039;currentevents-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;recentchanges&#039;, &#039;href&#039;=&amp;gt;&#039;recentchanges-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;randompage&#039;,	&#039;href&#039;=&amp;gt;&#039;randompage-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;help&#039;, 		&#039;href&#039;=&amp;gt;&#039;helppage&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;sitesupport&#039;,	&#039;href&#039;=&amp;gt;&#039;sitesupport-url&#039; ),&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
For example, one line in the navigation array for this site is:&lt;br /&gt;
::&amp;lt;code&amp;gt;array( &#039;text&#039;=&amp;gt;&#039;howto&#039;,	&#039;href&#039;=&amp;gt;&#039;howto-url&#039; ) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*On the wiki site, there is a page &amp;lt;code&amp;gt;..../index.php/MediaWiki:howto&amp;lt;/code&amp;gt; which holds the text to be displayed on the navigation bar. The text on this page is:&lt;br /&gt;
::&amp;lt;code&amp;gt; How To&#039;s&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*There&#039;s another page on this wiki site, &amp;lt;code&amp;gt;..../index.php/MediaWiki:howto-url&amp;lt;/code&amp;gt; which holds the page address of this navigation link&#039;s target.&lt;br /&gt;
::&amp;lt;code&amp;gt; How To &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*The next step is to add the desired text and target to the pages on the wiki site, that are mentioned in the navigation array.  These will initially be empty pages and must be edited for the navigations to work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Logo - This is the picture which appears in the top left corner throughout the site. At all times, this acts as a link returning to the mainpage. To customize this logo, replace the location of the logo picture in the following line of LocalSettings:&lt;br /&gt;
::&amp;lt;code&amp;gt;$wgLogo     = &amp;quot;$wgScriptPath/myfavoritepicture.gif&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
:(Could use another file type for the image, such as .png).&lt;br /&gt;
&lt;br /&gt;
*Enable File Uploading - To enable file uploading, uncomment the following line, in LocalSettings. &lt;br /&gt;
::&amp;lt;code&amp;gt;$wgDisableUploads   = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: - Then change the permissions on the image directory so that it is writable.&lt;br /&gt;
::&amp;lt;code&amp;gt;$chmod a+w images &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Adding Users===&lt;br /&gt;
Depending on the access restrictions specified in the &#039;LocalSettings.php&#039;, the site can be designed such that anybody can access and edit any of&lt;br /&gt;
the pages, or only registered users may log on to the site. Furthermore, the site can be configured such that only the &#039;sysop&#039; of the site can create&lt;br /&gt;
new accounts.  These restrictions are set within the LocalSettings file. (See above for details).&lt;br /&gt;
&lt;br /&gt;
::Note: This site has been configured so that only &#039;sysop&#039; can create new accounts.&lt;br /&gt;
*Once logged in, the &#039;sysop&#039; can select &amp;quot;Create an account or log in&amp;quot; from the &amp;quot;Special Pages&amp;quot; link of the toolbox,&lt;br /&gt;
along the left margin.  Here, the sysop creates a username and can then automatically email the new user a temporary password for the site. (This email &lt;br /&gt;
will have the return address of the site administrator, as specified in LocalSettings.php.&lt;br /&gt;
&lt;br /&gt;
*Unfortunately, there is no easy way of deleting a user account. A user can be manually removed from the mySQL database, however this will most likely &lt;br /&gt;
cause problems with other tables referring to this user or deleted row. This should only be done if you really understand mySQL. &lt;br /&gt;
:*The best way to remove a user, is for the sysop to either block them, or rename their account/ change their password.&lt;br /&gt;
&lt;br /&gt;
*A user can be given &#039;sysop&#039; and &#039;bureaucrat&#039; priveleges by an existing sysop, from a link on the sysop&#039;s &amp;quot;Special Pages&amp;quot;. (The original sysop is created &lt;br /&gt;
during site initialization).&lt;br /&gt;
 &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wiki software successfully installed.&lt;br /&gt;
&lt;br /&gt;
Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface]&lt;br /&gt;
and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User&#039;s Guide] for usage and configuration help.&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=Help:Contents&amp;diff=160</id>
		<title>Help:Contents</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=Help:Contents&amp;diff=160"/>
		<updated>2005-08-11T16:34:37Z</updated>

		<summary type="html">&lt;p&gt;Scanco: /* Adding Users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Basic Editing==&lt;br /&gt;
===Text Editing===&lt;br /&gt;
&lt;br /&gt;
The simplest page modifications for this site are editing the text of a page. The text of a page can be edited all at &lt;br /&gt;
once, or more practically section by section.  &lt;br /&gt;
====Editing a section:====&lt;br /&gt;
:*Click the adjacent edit tab at the top of the desired section.&lt;br /&gt;
:*The browser now displays a large text box in the center of the page.  Inside this box contains all of the text of the section.&lt;br /&gt;
::Note: There are several formatting conventions to be considered when adding text. These affect the margins, layout, bullets, &lt;br /&gt;
section organisation, etc. See the below section about Text Formatting for details.&lt;br /&gt;
:*Once the text has been modified, select &#039;Save Page&#039; below the text window.&lt;br /&gt;
:*The change are now saved and the new, modified version of this page will appear. &lt;br /&gt;
&lt;br /&gt;
Be careful whenever making any changes, because once the changes are saved, this becomes the new page. Therefore it is possible to &lt;br /&gt;
delete entire sections. (For recovery of old page versions, see the Recent Changes page).&lt;br /&gt;
&lt;br /&gt;
====Editing an entire page====&lt;br /&gt;
:*Similar to above, but select the &#039;edit&#039; tab at the top of the page. Now, the text for the entire page appears in the text editing&lt;br /&gt;
window.&lt;br /&gt;
:*This is useful for changing the arrangement and ordering of sections but is &#039;&#039;&#039;not&#039;&#039;&#039; recommended for specific text editing.&lt;br /&gt;
&lt;br /&gt;
Especially here, be careful when editing because the entire page could be deleted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Creating a new page===&lt;br /&gt;
&lt;br /&gt;
Creating a new page is very simple. You just have to make a link to this new page from an existing page, and click the link. This will bring you to the editing window of this page, to which you can now add content.&lt;br /&gt;
*For example, let&#039;s make a new page [[here]].&lt;br /&gt;
::This was done by putting the word &amp;quot;here&amp;quot; inside double square brackets, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[here]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Select &amp;quot;Save page&amp;quot;, then click &amp;quot;here&amp;quot;, which is now in &amp;lt;b style=&amp;quot;color:red&amp;quot;&amp;gt;red&amp;lt;/b&amp;gt;. Here I begin my new page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Linking to an external page===&lt;br /&gt;
The only difference here is that we use single square brackets, or none at all. &lt;br /&gt;
*Let&#039;s link to Steve Boyd&#039;s homepage here: http://www.enme.ucalgary.ca/~skboyd/. Nothing special, just the put the URL within the text.&lt;br /&gt;
::&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.enme.ucalgary.ca/~skboyd/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*In order to have a more convenient name appear as the link, use single square brackets and type the desired name of the link, seperated by a space, within the brackets. [http://www.enme.ucalgary.ca/~skboyd/ Steve&#039;s Hoempage]&lt;br /&gt;
::&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[http://www.enme.ucalgary.ca/~skboyd/ Steve&#039;s Homepage]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Text Formatting===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re familiar with HTML conventions, you can apply &#039;&#039;&#039;most&#039;&#039;&#039; of these on a wiki page, however wiki has many of its own conventions.&lt;br /&gt;
The following table lists the text formatting operations applicable to this site.&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;80%&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;What appears on the Page&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;What you type&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Section Headers:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This can&#039;t really be demonstrated within a table, but click the edit tab for various sections to see examples of&lt;br /&gt;
sections.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
= Major Section=&lt;br /&gt;
&lt;br /&gt;
==Section==&lt;br /&gt;
&lt;br /&gt;
===Sub-Section===&lt;br /&gt;
&lt;br /&gt;
====Sub-Sub-Section====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&#039;&#039;&#039;Newline:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Typing on the&lt;br /&gt;
next line &lt;br /&gt;
will not&lt;br /&gt;
make a new line.&lt;br /&gt;
&lt;br /&gt;
But leaving one line empty does start&lt;br /&gt;
a new line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start a new line without making a new paragraph &amp;lt;br&amp;gt;&lt;br /&gt;
Now we have a new line here.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Typing on the&lt;br /&gt;
next line &lt;br /&gt;
will not&lt;br /&gt;
make a new line.&lt;br /&gt;
&lt;br /&gt;
But leaving one line empty does start&lt;br /&gt;
a new line.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
To start a new line without making a new paragraph &amp;lt;br&amp;gt;&lt;br /&gt;
Now we have a new line here.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lists&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Lists are started like this.&lt;br /&gt;
**They can also have sub lists&lt;br /&gt;
***and sub-sub lists.&lt;br /&gt;
Starting a regular line like this ends the list.&lt;br /&gt;
&lt;br /&gt;
*But you can break &amp;lt;BR&amp;gt; lines &amp;lt;br&amp;gt; within a list &amp;lt;br&amp;gt; like this.&lt;br /&gt;
*Then start a new line.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
*Lists are started like this.&lt;br /&gt;
**They can also have sub lists&lt;br /&gt;
***and sub-sub lists.&lt;br /&gt;
Starting a regular line like this ends the list.&lt;br /&gt;
&lt;br /&gt;
*But you can break &amp;lt;BR&amp;gt; lines &amp;lt;br&amp;gt; within a list &amp;lt;br&amp;gt; like this.&lt;br /&gt;
*Then start a new line.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Numbered Lists:&#039;&#039;&#039;&lt;br /&gt;
#Numbered lists can be created automatically.&lt;br /&gt;
#New number here&lt;br /&gt;
##I&#039;m a number within a number.&lt;br /&gt;
##Me too.&lt;br /&gt;
#Back to the original list.&lt;br /&gt;
The end of the list.&lt;br /&gt;
#Now here&#039;s a new list.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#Numbered lists can be created automatically.&lt;br /&gt;
#New number here&lt;br /&gt;
##I&#039;m a number within a number.&lt;br /&gt;
##Me too.&lt;br /&gt;
#Back to the original list.&lt;br /&gt;
The end of the list.&lt;br /&gt;
#Now here&#039;s a new list.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Indenting&#039;&#039;&#039;&lt;br /&gt;
:Starting a line with a colon&lt;br /&gt;
::or several colons, you can indent the line.&lt;br /&gt;
No indent here!&lt;br /&gt;
:::::I&#039;m super indented.&lt;br /&gt;
&lt;br /&gt;
:*Indenting, as well as bullets, and numbered lists can&lt;br /&gt;
::be combined.&lt;br /&gt;
:#I&#039;m number one&lt;br /&gt;
:#*I&#039;m almost one&lt;br /&gt;
:#I&#039;m only number two :(&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
:Starting a line with a colon&lt;br /&gt;
::or several colons, you can indent the line.&lt;br /&gt;
No indent here!&lt;br /&gt;
:::::I&#039;m super indented.&lt;br /&gt;
&lt;br /&gt;
:*Indenting, as well as bullets, and numbered lists can&lt;br /&gt;
::be combined.&lt;br /&gt;
:#I&#039;m number one&lt;br /&gt;
:#*I&#039;m almost one&lt;br /&gt;
:#I&#039;m only number two :(&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 Starting every line with a &lt;br /&gt;
    space means that the text won&#039;t be formatted&lt;br /&gt;
 and should appear as typed.     But be careful, lines no &lt;br /&gt;
 longer wrap automatically.&lt;br /&gt;
 &lt;br /&gt;
 *This can be useful for preformatted text&lt;br /&gt;
    but also, is nice for code because it makes this nice box.&lt;br /&gt;
&lt;br /&gt;
Another way to make text within this box is to use &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
and &amp;lt;nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
We&#039;re inside a box.&lt;br /&gt;
*Ya, isn&#039;t this cool.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 Starting every line with a &lt;br /&gt;
    space means that the text won&#039;t be formatted&lt;br /&gt;
 and should appear as typed.     But be careful, lines no &lt;br /&gt;
 longer wrap automatically.&lt;br /&gt;
 &lt;br /&gt;
 *This can be useful for preformatted text&lt;br /&gt;
    but also, is nice for code because it makes this nice box.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another way to make text within this box is to use &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
and &amp;lt;nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
We&#039;re inside a box.&lt;br /&gt;
*Ya, isn&#039;t this cool.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tables===&lt;br /&gt;
&lt;br /&gt;
Tables, like the one above are very useful for organising information, or for specifying the layout of a page - placing text&lt;br /&gt;
and images in certain locations.&lt;br /&gt;
:(Click edit of the table above as an example)&lt;br /&gt;
&lt;br /&gt;
*A table begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;table&amp;gt; Table code &amp;lt;/table&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*A row begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;tr&amp;gt; Row code &amp;lt;/tr&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*A column begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;td&amp;gt; Column code &amp;lt;/td&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are nested within each other: begin a table, row, column; end the column, row, table.&lt;br /&gt;
These are nested within each other: begin a table, row, column; end the column, row, table.&lt;br /&gt;
&lt;br /&gt;
*There are several options that may be set when starting a table, row, or column. The following is a list of the most useful.&lt;br /&gt;
:*&#039;&#039;&#039;border&#039;&#039;&#039; - Sets the thickness of the border for the entire table, or can be invisible.  &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;border=&amp;quot;n&amp;quot;&amp;lt;/code&amp;gt;, (n = {0,1,2,3,etc.})&lt;br /&gt;
:*&#039;&#039;&#039;align&#039;&#039;&#039; - sets the alignment of the table with respect to the page margins, or the text and objects within a cell. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;align=&amp;quot;center&amp;quot;&amp;lt;/code&amp;gt;, (or right, left).&lt;br /&gt;
:*&#039;&#039;&#039;valign&#039;&#039;&#039; - sets the vertical alignment of the text and objects within a cell. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;valign=&amp;quot;top&amp;quot; &amp;lt;/code&amp;gt;, (bottom, middle).&lt;br /&gt;
:*&#039;&#039;&#039;width, height&#039;&#039;&#039; - sets the width, height of the table and/or a column, row. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt; width=&amp;quot;90%&amp;quot; height=&amp;quot;450&#039;&amp;lt;/code&amp;gt;, (size can be in number of pixels, or as a percentage).&lt;br /&gt;
:*&#039;&#039;&#039;background&#039;&#039;&#039; - sets the background of a cell or table.  This can be either a picture or a solid color. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;bgcolor=&amp;quot;yellow&amp;quot; &amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;background=&amp;quot;mypicture.jpg&amp;quot; &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Upload Help==&lt;br /&gt;
&lt;br /&gt;
#Once logged-on to the site, select the &#039;Upload file&#039; link within the toolbox on the left side-bar.&lt;br /&gt;
#&#039;Browse&#039; your system for the desired file, confirm its copyright compliance, and select Upload File.&lt;br /&gt;
#:By default, a page will be created for this file with the filename as its address and, regardless of its type, will be classified as an image.&lt;br /&gt;
#The file is now stored in the image section of the site and can be linked to from any other page within the site, as follows.&lt;br /&gt;
#:a) If the file is an image, then place the following code on a wiki page at the desired location of the image:&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;[[Image:my_favorite_image.jpg|picture_position,ie_right,left,center]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
::(The picture location is not necessary and could be left blank. See the example below.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::b) If the file is not an image, then insert the following code where the file is to be downloaded:&lt;br /&gt;
::(This code should most likely be inserted into the Documents page)&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;[[Media:my_favorite_document.pdf| Document Link Name Displayed on Page]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*NB. For a list of all the files available for download from the wiki site, both images and none images, go to the &#039;&#039;&#039;Special Pages&#039;&#039;&#039; link in the toolbox and then  select &#039;&#039;&#039;Image list&#039;&#039;&#039;.  This page lists all the uploaded files on the site and they can all be downloaded from here.&lt;br /&gt;
&lt;br /&gt;
===Examples ===&lt;br /&gt;
*click the adjacent &#039;edit&#039; tabs to view the code for the examples.&lt;br /&gt;
&lt;br /&gt;
====Documents ====&lt;br /&gt;
&lt;br /&gt;
Now let&#039;s provide a pdf document: [[Media:My_favorite_pdf.pdf| I&#039;m a pdf document]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Images====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s put an image of Steve here:&lt;br /&gt;
[[Image:Steve Boyd money.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*NB. Note how a link is automatically created to the picture&#039;s actual location within the image section - click on the image itself to see.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Site Administration==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Site Creation===&lt;br /&gt;
&lt;br /&gt;
The following explains how this wiki site was created. The intention is that in the event the site is lost, so long as the text from this page &lt;br /&gt;
is backed-up somewhere, the site could be recreated. Also, just to complete the documentation, I have tried to outline all the steps that &lt;br /&gt;
I took and explanations of parts that I had problems with while developing this site.&lt;br /&gt;
&lt;br /&gt;
*The &amp;quot;wiki&amp;quot; interface of this site was developed by MediaWiki and this software runs in the background, on the server at all times.  It &lt;br /&gt;
is this interface that allows users to edit pages, upload documents, and change a variety of settings, which is all stored in a database&lt;br /&gt;
on the server.&lt;br /&gt;
*The database that is compatible with MediaWiki is mySQL. This is a standard database that is one of the packages included with the latest&lt;br /&gt;
Fedora Core for linux.  This database caused several problems during the development of the first versions of the wiki site, however the &lt;br /&gt;
version mySQL 4.1 has so far not caused any similar problems.&lt;br /&gt;
:*It is useful to know that all the data from the site is stored on a mySQL database on the server, however there should be no need to ever&lt;br /&gt;
directly access this database, or try to edit or modify it directly.  &lt;br /&gt;
:*The one exception to this is for setting up the system operator (sysop) or bureaucrat privileges. (more on this later)&lt;br /&gt;
&lt;br /&gt;
====Install Instructions====&lt;br /&gt;
&lt;br /&gt;
Check out [http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide:_Installation MediaWiki Installation] &lt;br /&gt;
*Download the latest, stable version of mediawiki from [http://wikipedia.sourceforge.net/| wikipedia.sourcforge].&lt;br /&gt;
::The MediaWiki FAQs are &#039;&#039;&#039;excellent&#039;&#039;&#039;, and should provide clear and thorough instructions for downloading and installing the program.&lt;br /&gt;
(However here is a quick summary)&lt;br /&gt;
*Read the &#039;Install.txt&#039; file for installation instructions and system requirements.&lt;br /&gt;
*The system requirements for the server (which could really be any computer set up appropriately, although &#039;&#039;&#039;preferably linux&#039;&#039;&#039;) are:&lt;br /&gt;
:*Apache web server&lt;br /&gt;
:*mySQL database&lt;br /&gt;
:*PHP-mySQL package&lt;br /&gt;
:(If running a new version of Fedora Core, all of these can be installed as packages from the original boot disks).&lt;br /&gt;
*Uncompress and untar the mediawiki folder.  It is advised to rename this folder something convenient, like wiki or mediawiki.&lt;br /&gt;
*Change the read/write access of the config directory to be readable by all.  This folder contains the php script for the initial configuration.&lt;br /&gt;
::&amp;lt;code&amp;gt;chmod a+w config&amp;lt;/code&amp;gt;&lt;br /&gt;
*The next step is to browse into this folder from an internet browser.  If this is run off of your linux box, you will need to find the folder open to the world &lt;br /&gt;
via http and move the entire mediawiki folder here.  When I did it, it was:&lt;br /&gt;
::/var/www/html/&lt;br /&gt;
:*Once the folder is there, browse &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://my_ip_address/mediawiki&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  The installation script should start and you can now fill in the boxes, &lt;br /&gt;
initializing the site and the database  which will store all the site data.&lt;br /&gt;
&lt;br /&gt;
*The on-screen instructions are rather self-explanatory and after filling in and confirming the necessary information, the site should be created.&lt;br /&gt;
*On the new page, the instructions will say to move the &#039;LocalSettings.php&#039; file into your main mediawik folder and then delete the config directory.&lt;br /&gt;
::Once this is done, the &#039;LocalSettings.php&#039; file now becomes the default script that loads the mainpage of the wiki site.&lt;br /&gt;
&lt;br /&gt;
====LocalSettings.php====&lt;br /&gt;
&lt;br /&gt;
This becomes the most important and useful file to change the apperance and customize the wiki site. Everything else can be done through the interface&lt;br /&gt;
of the wiki site itself. Within this file, one can change the navigation bar on the left margin, the logo appearing in the upper left corner, the login restrictions, the name &lt;br /&gt;
of the site, the ability to upload files, the name of the site, the contact information and address of the site administrator, among others.&lt;br /&gt;
&lt;br /&gt;
*Navigation bar - For a detailed explanation on editing the Navigation bar, see [http://meta.wikimedia.org/wiki/MediaWiki_FAQ#How_do_I_change_the_contents_of_the_navigation_toolbar.3F MediaWiki Navigation Help]&lt;br /&gt;
:Summary:&lt;br /&gt;
:*The following array should be moved to LocalSettings, from &amp;lt;code&amp;gt;includes/DefaultSettings.php &amp;lt;/code&amp;gt;. It specifies the page which holds the text to be displayed in the navigation bar and the page which holds the link of where this navigation link points to. In other words, what appears here, in this array is not necessarily what will appear in the navigation bar; they are pages on the wiki site (or pointers within the database) to where this information is stored.&lt;br /&gt;
&lt;br /&gt;
 $wgNavigationLinks = array (&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;mainpage&#039;,	&#039;href&#039;=&amp;gt;&#039;mainpage&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;portal&#039;,	&#039;href&#039;=&amp;gt;&#039;portal-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;currentevents&#039;, &#039;href&#039;=&amp;gt;&#039;currentevents-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;recentchanges&#039;, &#039;href&#039;=&amp;gt;&#039;recentchanges-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;randompage&#039;,	&#039;href&#039;=&amp;gt;&#039;randompage-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;help&#039;, 		&#039;href&#039;=&amp;gt;&#039;helppage&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;sitesupport&#039;,	&#039;href&#039;=&amp;gt;&#039;sitesupport-url&#039; ),&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
For example, one line in the navigation array for this site is:&lt;br /&gt;
::&amp;lt;code&amp;gt;array( &#039;text&#039;=&amp;gt;&#039;howto&#039;,	&#039;href&#039;=&amp;gt;&#039;howto-url&#039; ) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*On the wiki site, there is a page &amp;lt;code&amp;gt;..../index.php/MediaWiki:howto&amp;lt;/code&amp;gt; which holds the text to be displayed on the navigation bar. The text on this page is:&lt;br /&gt;
::&amp;lt;code&amp;gt; How To&#039;s&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*There&#039;s another page on this wiki site, &amp;lt;code&amp;gt;..../index.php/MediaWiki:howto-url&amp;lt;/code&amp;gt; which holds the page address of this navigation link&#039;s target.&lt;br /&gt;
::&amp;lt;code&amp;gt; How To &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*The next step is to add the desired text and target to the pages on the wiki site, that are mentioned in the navigation array.  These will initially be empty pages and must be edited for the navigations to work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Logo - This is the picture which appears in the top left corner throughout the site. At all times, this acts as a link returning to the mainpage. To customize this logo, replace the location of the logo picture in the following line of LocalSettings:&lt;br /&gt;
::&amp;lt;code&amp;gt;$wgLogo     = &amp;quot;$wgScriptPath/myfavoritepicture.gif&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
:(Could use another file type for the image, such as .png).&lt;br /&gt;
&lt;br /&gt;
*Enable File Uploading - To enable file uploading, uncomment the following line, in LocalSettings. &lt;br /&gt;
::&amp;lt;code&amp;gt;$wgDisableUploads   = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: - Then change the permissions on the image directory so that it is writable.&lt;br /&gt;
::&amp;lt;code&amp;gt;$chmod a+w images &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Adding Users===&lt;br /&gt;
Depending on the access restrictions specified in the &#039;LocalSettings.php&#039;, the site can be designed such that anybody can access and edit any of&lt;br /&gt;
the pages, or only registered users may log on to the site. Furthermore, the site can be configured such that only the &#039;sysop&#039; of the site can create&lt;br /&gt;
new accounts.  These restrictions are set within the LocalSettings file. (See above for details).&lt;br /&gt;
&lt;br /&gt;
::Note: This site has been configured so that only &#039;sysop&#039; can create new accounts.&lt;br /&gt;
*If only the &#039;sysop&#039; can create accounts, then once logged in, they can select &amp;quot;Create an account or log in&amp;quot; from the &amp;quot;Special Pages&amp;quot; link of the toolbox,&lt;br /&gt;
along the left margin.  Here, the sysop creates a username and can then automatically email them a temporary password for the site. (This email &lt;br /&gt;
will have the return address of the site administrator, as specified in LocalSettings.php.&lt;br /&gt;
&lt;br /&gt;
*Unfortunately, there is no easy way of deleting a user account. A user can be manually removed from the mySQL database, however this will most likely &lt;br /&gt;
cause problems with other tables referring to this user or deleted row. This should only be done if you really understand mySQL. &lt;br /&gt;
:*The best way to remove a user, is for the sysop to either block them, or rename their account/ change their password.&lt;br /&gt;
&lt;br /&gt;
*A user can be given &#039;sysop&#039; and &#039;bureaucrat&#039; priveleges by an existing sysop, from a link on the sysop&#039;s &amp;quot;Special Pages&amp;quot;. (The original sysop is created &lt;br /&gt;
during site initialization).&lt;br /&gt;
 &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wiki software successfully installed.&lt;br /&gt;
&lt;br /&gt;
Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface]&lt;br /&gt;
and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User&#039;s Guide] for usage and configuration help.&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=Help:Contents&amp;diff=159</id>
		<title>Help:Contents</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=Help:Contents&amp;diff=159"/>
		<updated>2005-08-11T16:33:49Z</updated>

		<summary type="html">&lt;p&gt;Scanco: /* Adding Users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Basic Editing==&lt;br /&gt;
===Text Editing===&lt;br /&gt;
&lt;br /&gt;
The simplest page modifications for this site are editing the text of a page. The text of a page can be edited all at &lt;br /&gt;
once, or more practically section by section.  &lt;br /&gt;
====Editing a section:====&lt;br /&gt;
:*Click the adjacent edit tab at the top of the desired section.&lt;br /&gt;
:*The browser now displays a large text box in the center of the page.  Inside this box contains all of the text of the section.&lt;br /&gt;
::Note: There are several formatting conventions to be considered when adding text. These affect the margins, layout, bullets, &lt;br /&gt;
section organisation, etc. See the below section about Text Formatting for details.&lt;br /&gt;
:*Once the text has been modified, select &#039;Save Page&#039; below the text window.&lt;br /&gt;
:*The change are now saved and the new, modified version of this page will appear. &lt;br /&gt;
&lt;br /&gt;
Be careful whenever making any changes, because once the changes are saved, this becomes the new page. Therefore it is possible to &lt;br /&gt;
delete entire sections. (For recovery of old page versions, see the Recent Changes page).&lt;br /&gt;
&lt;br /&gt;
====Editing an entire page====&lt;br /&gt;
:*Similar to above, but select the &#039;edit&#039; tab at the top of the page. Now, the text for the entire page appears in the text editing&lt;br /&gt;
window.&lt;br /&gt;
:*This is useful for changing the arrangement and ordering of sections but is &#039;&#039;&#039;not&#039;&#039;&#039; recommended for specific text editing.&lt;br /&gt;
&lt;br /&gt;
Especially here, be careful when editing because the entire page could be deleted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Creating a new page===&lt;br /&gt;
&lt;br /&gt;
Creating a new page is very simple. You just have to make a link to this new page from an existing page, and click the link. This will bring you to the editing window of this page, to which you can now add content.&lt;br /&gt;
*For example, let&#039;s make a new page [[here]].&lt;br /&gt;
::This was done by putting the word &amp;quot;here&amp;quot; inside double square brackets, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[here]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Select &amp;quot;Save page&amp;quot;, then click &amp;quot;here&amp;quot;, which is now in &amp;lt;b style=&amp;quot;color:red&amp;quot;&amp;gt;red&amp;lt;/b&amp;gt;. Here I begin my new page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Linking to an external page===&lt;br /&gt;
The only difference here is that we use single square brackets, or none at all. &lt;br /&gt;
*Let&#039;s link to Steve Boyd&#039;s homepage here: http://www.enme.ucalgary.ca/~skboyd/. Nothing special, just the put the URL within the text.&lt;br /&gt;
::&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.enme.ucalgary.ca/~skboyd/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*In order to have a more convenient name appear as the link, use single square brackets and type the desired name of the link, seperated by a space, within the brackets. [http://www.enme.ucalgary.ca/~skboyd/ Steve&#039;s Hoempage]&lt;br /&gt;
::&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[http://www.enme.ucalgary.ca/~skboyd/ Steve&#039;s Homepage]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Text Formatting===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re familiar with HTML conventions, you can apply &#039;&#039;&#039;most&#039;&#039;&#039; of these on a wiki page, however wiki has many of its own conventions.&lt;br /&gt;
The following table lists the text formatting operations applicable to this site.&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;80%&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;What appears on the Page&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;What you type&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Section Headers:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This can&#039;t really be demonstrated within a table, but click the edit tab for various sections to see examples of&lt;br /&gt;
sections.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
= Major Section=&lt;br /&gt;
&lt;br /&gt;
==Section==&lt;br /&gt;
&lt;br /&gt;
===Sub-Section===&lt;br /&gt;
&lt;br /&gt;
====Sub-Sub-Section====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&#039;&#039;&#039;Newline:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Typing on the&lt;br /&gt;
next line &lt;br /&gt;
will not&lt;br /&gt;
make a new line.&lt;br /&gt;
&lt;br /&gt;
But leaving one line empty does start&lt;br /&gt;
a new line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start a new line without making a new paragraph &amp;lt;br&amp;gt;&lt;br /&gt;
Now we have a new line here.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Typing on the&lt;br /&gt;
next line &lt;br /&gt;
will not&lt;br /&gt;
make a new line.&lt;br /&gt;
&lt;br /&gt;
But leaving one line empty does start&lt;br /&gt;
a new line.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
To start a new line without making a new paragraph &amp;lt;br&amp;gt;&lt;br /&gt;
Now we have a new line here.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lists&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Lists are started like this.&lt;br /&gt;
**They can also have sub lists&lt;br /&gt;
***and sub-sub lists.&lt;br /&gt;
Starting a regular line like this ends the list.&lt;br /&gt;
&lt;br /&gt;
*But you can break &amp;lt;BR&amp;gt; lines &amp;lt;br&amp;gt; within a list &amp;lt;br&amp;gt; like this.&lt;br /&gt;
*Then start a new line.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
*Lists are started like this.&lt;br /&gt;
**They can also have sub lists&lt;br /&gt;
***and sub-sub lists.&lt;br /&gt;
Starting a regular line like this ends the list.&lt;br /&gt;
&lt;br /&gt;
*But you can break &amp;lt;BR&amp;gt; lines &amp;lt;br&amp;gt; within a list &amp;lt;br&amp;gt; like this.&lt;br /&gt;
*Then start a new line.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Numbered Lists:&#039;&#039;&#039;&lt;br /&gt;
#Numbered lists can be created automatically.&lt;br /&gt;
#New number here&lt;br /&gt;
##I&#039;m a number within a number.&lt;br /&gt;
##Me too.&lt;br /&gt;
#Back to the original list.&lt;br /&gt;
The end of the list.&lt;br /&gt;
#Now here&#039;s a new list.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#Numbered lists can be created automatically.&lt;br /&gt;
#New number here&lt;br /&gt;
##I&#039;m a number within a number.&lt;br /&gt;
##Me too.&lt;br /&gt;
#Back to the original list.&lt;br /&gt;
The end of the list.&lt;br /&gt;
#Now here&#039;s a new list.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Indenting&#039;&#039;&#039;&lt;br /&gt;
:Starting a line with a colon&lt;br /&gt;
::or several colons, you can indent the line.&lt;br /&gt;
No indent here!&lt;br /&gt;
:::::I&#039;m super indented.&lt;br /&gt;
&lt;br /&gt;
:*Indenting, as well as bullets, and numbered lists can&lt;br /&gt;
::be combined.&lt;br /&gt;
:#I&#039;m number one&lt;br /&gt;
:#*I&#039;m almost one&lt;br /&gt;
:#I&#039;m only number two :(&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
:Starting a line with a colon&lt;br /&gt;
::or several colons, you can indent the line.&lt;br /&gt;
No indent here!&lt;br /&gt;
:::::I&#039;m super indented.&lt;br /&gt;
&lt;br /&gt;
:*Indenting, as well as bullets, and numbered lists can&lt;br /&gt;
::be combined.&lt;br /&gt;
:#I&#039;m number one&lt;br /&gt;
:#*I&#039;m almost one&lt;br /&gt;
:#I&#039;m only number two :(&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 Starting every line with a &lt;br /&gt;
    space means that the text won&#039;t be formatted&lt;br /&gt;
 and should appear as typed.     But be careful, lines no &lt;br /&gt;
 longer wrap automatically.&lt;br /&gt;
 &lt;br /&gt;
 *This can be useful for preformatted text&lt;br /&gt;
    but also, is nice for code because it makes this nice box.&lt;br /&gt;
&lt;br /&gt;
Another way to make text within this box is to use &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
and &amp;lt;nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
We&#039;re inside a box.&lt;br /&gt;
*Ya, isn&#039;t this cool.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 Starting every line with a &lt;br /&gt;
    space means that the text won&#039;t be formatted&lt;br /&gt;
 and should appear as typed.     But be careful, lines no &lt;br /&gt;
 longer wrap automatically.&lt;br /&gt;
 &lt;br /&gt;
 *This can be useful for preformatted text&lt;br /&gt;
    but also, is nice for code because it makes this nice box.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another way to make text within this box is to use &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
and &amp;lt;nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
We&#039;re inside a box.&lt;br /&gt;
*Ya, isn&#039;t this cool.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tables===&lt;br /&gt;
&lt;br /&gt;
Tables, like the one above are very useful for organising information, or for specifying the layout of a page - placing text&lt;br /&gt;
and images in certain locations.&lt;br /&gt;
:(Click edit of the table above as an example)&lt;br /&gt;
&lt;br /&gt;
*A table begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;table&amp;gt; Table code &amp;lt;/table&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*A row begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;tr&amp;gt; Row code &amp;lt;/tr&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*A column begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;td&amp;gt; Column code &amp;lt;/td&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are nested within each other: begin a table, row, column; end the column, row, table.&lt;br /&gt;
These are nested within each other: begin a table, row, column; end the column, row, table.&lt;br /&gt;
&lt;br /&gt;
*There are several options that may be set when starting a table, row, or column. The following is a list of the most useful.&lt;br /&gt;
:*&#039;&#039;&#039;border&#039;&#039;&#039; - Sets the thickness of the border for the entire table, or can be invisible.  &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;border=&amp;quot;n&amp;quot;&amp;lt;/code&amp;gt;, (n = {0,1,2,3,etc.})&lt;br /&gt;
:*&#039;&#039;&#039;align&#039;&#039;&#039; - sets the alignment of the table with respect to the page margins, or the text and objects within a cell. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;align=&amp;quot;center&amp;quot;&amp;lt;/code&amp;gt;, (or right, left).&lt;br /&gt;
:*&#039;&#039;&#039;valign&#039;&#039;&#039; - sets the vertical alignment of the text and objects within a cell. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;valign=&amp;quot;top&amp;quot; &amp;lt;/code&amp;gt;, (bottom, middle).&lt;br /&gt;
:*&#039;&#039;&#039;width, height&#039;&#039;&#039; - sets the width, height of the table and/or a column, row. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt; width=&amp;quot;90%&amp;quot; height=&amp;quot;450&#039;&amp;lt;/code&amp;gt;, (size can be in number of pixels, or as a percentage).&lt;br /&gt;
:*&#039;&#039;&#039;background&#039;&#039;&#039; - sets the background of a cell or table.  This can be either a picture or a solid color. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;bgcolor=&amp;quot;yellow&amp;quot; &amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;background=&amp;quot;mypicture.jpg&amp;quot; &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Upload Help==&lt;br /&gt;
&lt;br /&gt;
#Once logged-on to the site, select the &#039;Upload file&#039; link within the toolbox on the left side-bar.&lt;br /&gt;
#&#039;Browse&#039; your system for the desired file, confirm its copyright compliance, and select Upload File.&lt;br /&gt;
#:By default, a page will be created for this file with the filename as its address and, regardless of its type, will be classified as an image.&lt;br /&gt;
#The file is now stored in the image section of the site and can be linked to from any other page within the site, as follows.&lt;br /&gt;
#:a) If the file is an image, then place the following code on a wiki page at the desired location of the image:&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;[[Image:my_favorite_image.jpg|picture_position,ie_right,left,center]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
::(The picture location is not necessary and could be left blank. See the example below.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::b) If the file is not an image, then insert the following code where the file is to be downloaded:&lt;br /&gt;
::(This code should most likely be inserted into the Documents page)&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;[[Media:my_favorite_document.pdf| Document Link Name Displayed on Page]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*NB. For a list of all the files available for download from the wiki site, both images and none images, go to the &#039;&#039;&#039;Special Pages&#039;&#039;&#039; link in the toolbox and then  select &#039;&#039;&#039;Image list&#039;&#039;&#039;.  This page lists all the uploaded files on the site and they can all be downloaded from here.&lt;br /&gt;
&lt;br /&gt;
===Examples ===&lt;br /&gt;
*click the adjacent &#039;edit&#039; tabs to view the code for the examples.&lt;br /&gt;
&lt;br /&gt;
====Documents ====&lt;br /&gt;
&lt;br /&gt;
Now let&#039;s provide a pdf document: [[Media:My_favorite_pdf.pdf| I&#039;m a pdf document]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Images====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s put an image of Steve here:&lt;br /&gt;
[[Image:Steve Boyd money.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*NB. Note how a link is automatically created to the picture&#039;s actual location within the image section - click on the image itself to see.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Site Administration==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Site Creation===&lt;br /&gt;
&lt;br /&gt;
The following explains how this wiki site was created. The intention is that in the event the site is lost, so long as the text from this page &lt;br /&gt;
is backed-up somewhere, the site could be recreated. Also, just to complete the documentation, I have tried to outline all the steps that &lt;br /&gt;
I took and explanations of parts that I had problems with while developing this site.&lt;br /&gt;
&lt;br /&gt;
*The &amp;quot;wiki&amp;quot; interface of this site was developed by MediaWiki and this software runs in the background, on the server at all times.  It &lt;br /&gt;
is this interface that allows users to edit pages, upload documents, and change a variety of settings, which is all stored in a database&lt;br /&gt;
on the server.&lt;br /&gt;
*The database that is compatible with MediaWiki is mySQL. This is a standard database that is one of the packages included with the latest&lt;br /&gt;
Fedora Core for linux.  This database caused several problems during the development of the first versions of the wiki site, however the &lt;br /&gt;
version mySQL 4.1 has so far not caused any similar problems.&lt;br /&gt;
:*It is useful to know that all the data from the site is stored on a mySQL database on the server, however there should be no need to ever&lt;br /&gt;
directly access this database, or try to edit or modify it directly.  &lt;br /&gt;
:*The one exception to this is for setting up the system operator (sysop) or bureaucrat privileges. (more on this later)&lt;br /&gt;
&lt;br /&gt;
====Install Instructions====&lt;br /&gt;
&lt;br /&gt;
Check out [http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide:_Installation MediaWiki Installation] &lt;br /&gt;
*Download the latest, stable version of mediawiki from [http://wikipedia.sourceforge.net/| wikipedia.sourcforge].&lt;br /&gt;
::The MediaWiki FAQs are &#039;&#039;&#039;excellent&#039;&#039;&#039;, and should provide clear and thorough instructions for downloading and installing the program.&lt;br /&gt;
(However here is a quick summary)&lt;br /&gt;
*Read the &#039;Install.txt&#039; file for installation instructions and system requirements.&lt;br /&gt;
*The system requirements for the server (which could really be any computer set up appropriately, although &#039;&#039;&#039;preferably linux&#039;&#039;&#039;) are:&lt;br /&gt;
:*Apache web server&lt;br /&gt;
:*mySQL database&lt;br /&gt;
:*PHP-mySQL package&lt;br /&gt;
:(If running a new version of Fedora Core, all of these can be installed as packages from the original boot disks).&lt;br /&gt;
*Uncompress and untar the mediawiki folder.  It is advised to rename this folder something convenient, like wiki or mediawiki.&lt;br /&gt;
*Change the read/write access of the config directory to be readable by all.  This folder contains the php script for the initial configuration.&lt;br /&gt;
::&amp;lt;code&amp;gt;chmod a+w config&amp;lt;/code&amp;gt;&lt;br /&gt;
*The next step is to browse into this folder from an internet browser.  If this is run off of your linux box, you will need to find the folder open to the world &lt;br /&gt;
via http and move the entire mediawiki folder here.  When I did it, it was:&lt;br /&gt;
::/var/www/html/&lt;br /&gt;
:*Once the folder is there, browse &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://my_ip_address/mediawiki&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  The installation script should start and you can now fill in the boxes, &lt;br /&gt;
initializing the site and the database  which will store all the site data.&lt;br /&gt;
&lt;br /&gt;
*The on-screen instructions are rather self-explanatory and after filling in and confirming the necessary information, the site should be created.&lt;br /&gt;
*On the new page, the instructions will say to move the &#039;LocalSettings.php&#039; file into your main mediawik folder and then delete the config directory.&lt;br /&gt;
::Once this is done, the &#039;LocalSettings.php&#039; file now becomes the default script that loads the mainpage of the wiki site.&lt;br /&gt;
&lt;br /&gt;
====LocalSettings.php====&lt;br /&gt;
&lt;br /&gt;
This becomes the most important and useful file to change the apperance and customize the wiki site. Everything else can be done through the interface&lt;br /&gt;
of the wiki site itself. Within this file, one can change the navigation bar on the left margin, the logo appearing in the upper left corner, the login restrictions, the name &lt;br /&gt;
of the site, the ability to upload files, the name of the site, the contact information and address of the site administrator, among others.&lt;br /&gt;
&lt;br /&gt;
*Navigation bar - For a detailed explanation on editing the Navigation bar, see [http://meta.wikimedia.org/wiki/MediaWiki_FAQ#How_do_I_change_the_contents_of_the_navigation_toolbar.3F MediaWiki Navigation Help]&lt;br /&gt;
:Summary:&lt;br /&gt;
:*The following array should be moved to LocalSettings, from &amp;lt;code&amp;gt;includes/DefaultSettings.php &amp;lt;/code&amp;gt;. It specifies the page which holds the text to be displayed in the navigation bar and the page which holds the link of where this navigation link points to. In other words, what appears here, in this array is not necessarily what will appear in the navigation bar; they are pages on the wiki site (or pointers within the database) to where this information is stored.&lt;br /&gt;
&lt;br /&gt;
 $wgNavigationLinks = array (&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;mainpage&#039;,	&#039;href&#039;=&amp;gt;&#039;mainpage&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;portal&#039;,	&#039;href&#039;=&amp;gt;&#039;portal-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;currentevents&#039;, &#039;href&#039;=&amp;gt;&#039;currentevents-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;recentchanges&#039;, &#039;href&#039;=&amp;gt;&#039;recentchanges-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;randompage&#039;,	&#039;href&#039;=&amp;gt;&#039;randompage-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;help&#039;, 		&#039;href&#039;=&amp;gt;&#039;helppage&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;sitesupport&#039;,	&#039;href&#039;=&amp;gt;&#039;sitesupport-url&#039; ),&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
For example, one line in the navigation array for this site is:&lt;br /&gt;
::&amp;lt;code&amp;gt;array( &#039;text&#039;=&amp;gt;&#039;howto&#039;,	&#039;href&#039;=&amp;gt;&#039;howto-url&#039; ) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*On the wiki site, there is a page &amp;lt;code&amp;gt;..../index.php/MediaWiki:howto&amp;lt;/code&amp;gt; which holds the text to be displayed on the navigation bar. The text on this page is:&lt;br /&gt;
::&amp;lt;code&amp;gt; How To&#039;s&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*There&#039;s another page on this wiki site, &amp;lt;code&amp;gt;..../index.php/MediaWiki:howto-url&amp;lt;/code&amp;gt; which holds the page address of this navigation link&#039;s target.&lt;br /&gt;
::&amp;lt;code&amp;gt; How To &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*The next step is to add the desired text and target to the pages on the wiki site, that are mentioned in the navigation array.  These will initially be empty pages and must be edited for the navigations to work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Logo - This is the picture which appears in the top left corner throughout the site. At all times, this acts as a link returning to the mainpage. To customize this logo, replace the location of the logo picture in the following line of LocalSettings:&lt;br /&gt;
::&amp;lt;code&amp;gt;$wgLogo     = &amp;quot;$wgScriptPath/myfavoritepicture.gif&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
:(Could use another file type for the image, such as .png).&lt;br /&gt;
&lt;br /&gt;
*Enable File Uploading - To enable file uploading, uncomment the following line, in LocalSettings. &lt;br /&gt;
::&amp;lt;code&amp;gt;$wgDisableUploads   = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: - Then change the permissions on the image directory so that it is writable.&lt;br /&gt;
::&amp;lt;code&amp;gt;$chmod a+w images &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Adding Users===&lt;br /&gt;
Depending on the access restrictions specified in the &#039;LocalSettings.php&#039;, the site can be designed such that anybody can access and edit any of&lt;br /&gt;
the pages, or only registered users may log on to the site. Furthermore, the site can be configured such that only the &#039;sysop&#039; of the site can create&lt;br /&gt;
new accounts.  These restrictions are set within the LocalSettings file. (See above for details).&lt;br /&gt;
&lt;br /&gt;
*This site has been &lt;br /&gt;
*If only the &#039;sysop&#039; can create accounts, then once logged in, they can select &amp;quot;Create an account or log in&amp;quot; from the &amp;quot;Special Pages&amp;quot; link of the toolbox,&lt;br /&gt;
along the left margin.  Here, the sysop creates a username and can then automatically email them a temporary password for the site. (This email &lt;br /&gt;
will have the return address of the site administrator, as specified in LocalSettings.php.&lt;br /&gt;
&lt;br /&gt;
*Unfortunately, there is no easy way of deleting a user account. A user can be manually removed from the mySQL database, however this will most likely &lt;br /&gt;
cause problems with other tables referring to this user or deleted row. This should only be done if you really understand mySQL. &lt;br /&gt;
:*The best way to remove a user, is for the sysop to either block them, or rename their account/ change their password.&lt;br /&gt;
&lt;br /&gt;
*A user can be given &#039;sysop&#039; and &#039;bureaucrat&#039; priveleges by an existing sysop, from a link on the sysop&#039;s &amp;quot;Special Pages&amp;quot;. (The original sysop is created &lt;br /&gt;
during site initialization).&lt;br /&gt;
 &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wiki software successfully installed.&lt;br /&gt;
&lt;br /&gt;
Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface]&lt;br /&gt;
and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User&#039;s Guide] for usage and configuration help.&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
	<entry>
		<id>https://bone.wiki/index.php?title=Help:Contents&amp;diff=158</id>
		<title>Help:Contents</title>
		<link rel="alternate" type="text/html" href="https://bone.wiki/index.php?title=Help:Contents&amp;diff=158"/>
		<updated>2005-08-11T16:32:31Z</updated>

		<summary type="html">&lt;p&gt;Scanco: /* Adding Users */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Basic Editing==&lt;br /&gt;
===Text Editing===&lt;br /&gt;
&lt;br /&gt;
The simplest page modifications for this site are editing the text of a page. The text of a page can be edited all at &lt;br /&gt;
once, or more practically section by section.  &lt;br /&gt;
====Editing a section:====&lt;br /&gt;
:*Click the adjacent edit tab at the top of the desired section.&lt;br /&gt;
:*The browser now displays a large text box in the center of the page.  Inside this box contains all of the text of the section.&lt;br /&gt;
::Note: There are several formatting conventions to be considered when adding text. These affect the margins, layout, bullets, &lt;br /&gt;
section organisation, etc. See the below section about Text Formatting for details.&lt;br /&gt;
:*Once the text has been modified, select &#039;Save Page&#039; below the text window.&lt;br /&gt;
:*The change are now saved and the new, modified version of this page will appear. &lt;br /&gt;
&lt;br /&gt;
Be careful whenever making any changes, because once the changes are saved, this becomes the new page. Therefore it is possible to &lt;br /&gt;
delete entire sections. (For recovery of old page versions, see the Recent Changes page).&lt;br /&gt;
&lt;br /&gt;
====Editing an entire page====&lt;br /&gt;
:*Similar to above, but select the &#039;edit&#039; tab at the top of the page. Now, the text for the entire page appears in the text editing&lt;br /&gt;
window.&lt;br /&gt;
:*This is useful for changing the arrangement and ordering of sections but is &#039;&#039;&#039;not&#039;&#039;&#039; recommended for specific text editing.&lt;br /&gt;
&lt;br /&gt;
Especially here, be careful when editing because the entire page could be deleted.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Creating a new page===&lt;br /&gt;
&lt;br /&gt;
Creating a new page is very simple. You just have to make a link to this new page from an existing page, and click the link. This will bring you to the editing window of this page, to which you can now add content.&lt;br /&gt;
*For example, let&#039;s make a new page [[here]].&lt;br /&gt;
::This was done by putting the word &amp;quot;here&amp;quot; inside double square brackets, &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[[here]]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
*Select &amp;quot;Save page&amp;quot;, then click &amp;quot;here&amp;quot;, which is now in &amp;lt;b style=&amp;quot;color:red&amp;quot;&amp;gt;red&amp;lt;/b&amp;gt;. Here I begin my new page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Linking to an external page===&lt;br /&gt;
The only difference here is that we use single square brackets, or none at all. &lt;br /&gt;
*Let&#039;s link to Steve Boyd&#039;s homepage here: http://www.enme.ucalgary.ca/~skboyd/. Nothing special, just the put the URL within the text.&lt;br /&gt;
::&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://www.enme.ucalgary.ca/~skboyd/&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*In order to have a more convenient name appear as the link, use single square brackets and type the desired name of the link, seperated by a space, within the brackets. [http://www.enme.ucalgary.ca/~skboyd/ Steve&#039;s Hoempage]&lt;br /&gt;
::&amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;[http://www.enme.ucalgary.ca/~skboyd/ Steve&#039;s Homepage]&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Text Formatting===&lt;br /&gt;
&lt;br /&gt;
If you&#039;re familiar with HTML conventions, you can apply &#039;&#039;&#039;most&#039;&#039;&#039; of these on a wiki page, however wiki has many of its own conventions.&lt;br /&gt;
The following table lists the text formatting operations applicable to this site.&lt;br /&gt;
&amp;lt;table border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; width=&amp;quot;80%&amp;quot; valign=&amp;quot;top&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;What appears on the Page&amp;lt;/th&amp;gt;&lt;br /&gt;
&amp;lt;th&amp;gt;What you type&amp;lt;/th&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td valign=&amp;quot;top&amp;quot; width=&amp;quot;40%&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Section Headers:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
This can&#039;t really be demonstrated within a table, but click the edit tab for various sections to see examples of&lt;br /&gt;
sections.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
= Major Section=&lt;br /&gt;
&lt;br /&gt;
==Section==&lt;br /&gt;
&lt;br /&gt;
===Sub-Section===&lt;br /&gt;
&lt;br /&gt;
====Sub-Sub-Section====&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td valign=&amp;quot;top&amp;quot;&amp;gt;&#039;&#039;&#039;Newline:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Typing on the&lt;br /&gt;
next line &lt;br /&gt;
will not&lt;br /&gt;
make a new line.&lt;br /&gt;
&lt;br /&gt;
But leaving one line empty does start&lt;br /&gt;
a new line.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
To start a new line without making a new paragraph &amp;lt;br&amp;gt;&lt;br /&gt;
Now we have a new line here.&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
Typing on the&lt;br /&gt;
next line &lt;br /&gt;
will not&lt;br /&gt;
make a new line.&lt;br /&gt;
&lt;br /&gt;
But leaving one line empty does start&lt;br /&gt;
a new line.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
To start a new line without making a new paragraph &amp;lt;br&amp;gt;&lt;br /&gt;
Now we have a new line here.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Lists&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*Lists are started like this.&lt;br /&gt;
**They can also have sub lists&lt;br /&gt;
***and sub-sub lists.&lt;br /&gt;
Starting a regular line like this ends the list.&lt;br /&gt;
&lt;br /&gt;
*But you can break &amp;lt;BR&amp;gt; lines &amp;lt;br&amp;gt; within a list &amp;lt;br&amp;gt; like this.&lt;br /&gt;
*Then start a new line.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
*Lists are started like this.&lt;br /&gt;
**They can also have sub lists&lt;br /&gt;
***and sub-sub lists.&lt;br /&gt;
Starting a regular line like this ends the list.&lt;br /&gt;
&lt;br /&gt;
*But you can break &amp;lt;BR&amp;gt; lines &amp;lt;br&amp;gt; within a list &amp;lt;br&amp;gt; like this.&lt;br /&gt;
*Then start a new line.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Numbered Lists:&#039;&#039;&#039;&lt;br /&gt;
#Numbered lists can be created automatically.&lt;br /&gt;
#New number here&lt;br /&gt;
##I&#039;m a number within a number.&lt;br /&gt;
##Me too.&lt;br /&gt;
#Back to the original list.&lt;br /&gt;
The end of the list.&lt;br /&gt;
#Now here&#039;s a new list.&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
#Numbered lists can be created automatically.&lt;br /&gt;
#New number here&lt;br /&gt;
##I&#039;m a number within a number.&lt;br /&gt;
##Me too.&lt;br /&gt;
#Back to the original list.&lt;br /&gt;
The end of the list.&lt;br /&gt;
#Now here&#039;s a new list.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Indenting&#039;&#039;&#039;&lt;br /&gt;
:Starting a line with a colon&lt;br /&gt;
::or several colons, you can indent the line.&lt;br /&gt;
No indent here!&lt;br /&gt;
:::::I&#039;m super indented.&lt;br /&gt;
&lt;br /&gt;
:*Indenting, as well as bullets, and numbered lists can&lt;br /&gt;
::be combined.&lt;br /&gt;
:#I&#039;m number one&lt;br /&gt;
:#*I&#039;m almost one&lt;br /&gt;
:#I&#039;m only number two :(&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
:Starting a line with a colon&lt;br /&gt;
::or several colons, you can indent the line.&lt;br /&gt;
No indent here!&lt;br /&gt;
:::::I&#039;m super indented.&lt;br /&gt;
&lt;br /&gt;
:*Indenting, as well as bullets, and numbered lists can&lt;br /&gt;
::be combined.&lt;br /&gt;
:#I&#039;m number one&lt;br /&gt;
:#*I&#039;m almost one&lt;br /&gt;
:#I&#039;m only number two :(&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&lt;br /&gt;
 Starting every line with a &lt;br /&gt;
    space means that the text won&#039;t be formatted&lt;br /&gt;
 and should appear as typed.     But be careful, lines no &lt;br /&gt;
 longer wrap automatically.&lt;br /&gt;
 &lt;br /&gt;
 *This can be useful for preformatted text&lt;br /&gt;
    but also, is nice for code because it makes this nice box.&lt;br /&gt;
&lt;br /&gt;
Another way to make text within this box is to use &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
and &amp;lt;nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
We&#039;re inside a box.&lt;br /&gt;
*Ya, isn&#039;t this cool.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/td&amp;gt;&lt;br /&gt;
&amp;lt;td&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
 Starting every line with a &lt;br /&gt;
    space means that the text won&#039;t be formatted&lt;br /&gt;
 and should appear as typed.     But be careful, lines no &lt;br /&gt;
 longer wrap automatically.&lt;br /&gt;
 &lt;br /&gt;
 *This can be useful for preformatted text&lt;br /&gt;
    but also, is nice for code because it makes this nice box.&lt;br /&gt;
&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Another way to make text within this box is to use &amp;lt;nowiki&amp;gt;&amp;lt;pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
and &amp;lt;nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&amp;lt;nowiki&amp;gt;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
We&#039;re inside a box.&lt;br /&gt;
*Ya, isn&#039;t this cool.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/pre&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/table&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Tables===&lt;br /&gt;
&lt;br /&gt;
Tables, like the one above are very useful for organising information, or for specifying the layout of a page - placing text&lt;br /&gt;
and images in certain locations.&lt;br /&gt;
:(Click edit of the table above as an example)&lt;br /&gt;
&lt;br /&gt;
*A table begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;table&amp;gt; Table code &amp;lt;/table&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*A row begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;tr&amp;gt; Row code &amp;lt;/tr&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
*A column begins and ends with &amp;lt;nowiki&amp;gt; &amp;lt;td&amp;gt; Column code &amp;lt;/td&amp;gt;. &amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These are nested within each other: begin a table, row, column; end the column, row, table.&lt;br /&gt;
These are nested within each other: begin a table, row, column; end the column, row, table.&lt;br /&gt;
&lt;br /&gt;
*There are several options that may be set when starting a table, row, or column. The following is a list of the most useful.&lt;br /&gt;
:*&#039;&#039;&#039;border&#039;&#039;&#039; - Sets the thickness of the border for the entire table, or can be invisible.  &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;border=&amp;quot;n&amp;quot;&amp;lt;/code&amp;gt;, (n = {0,1,2,3,etc.})&lt;br /&gt;
:*&#039;&#039;&#039;align&#039;&#039;&#039; - sets the alignment of the table with respect to the page margins, or the text and objects within a cell. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;align=&amp;quot;center&amp;quot;&amp;lt;/code&amp;gt;, (or right, left).&lt;br /&gt;
:*&#039;&#039;&#039;valign&#039;&#039;&#039; - sets the vertical alignment of the text and objects within a cell. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;valign=&amp;quot;top&amp;quot; &amp;lt;/code&amp;gt;, (bottom, middle).&lt;br /&gt;
:*&#039;&#039;&#039;width, height&#039;&#039;&#039; - sets the width, height of the table and/or a column, row. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt; width=&amp;quot;90%&amp;quot; height=&amp;quot;450&#039;&amp;lt;/code&amp;gt;, (size can be in number of pixels, or as a percentage).&lt;br /&gt;
:*&#039;&#039;&#039;background&#039;&#039;&#039; - sets the background of a cell or table.  This can be either a picture or a solid color. &lt;br /&gt;
::ex: &amp;lt;code&amp;gt;bgcolor=&amp;quot;yellow&amp;quot; &amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;background=&amp;quot;mypicture.jpg&amp;quot; &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
==Upload Help==&lt;br /&gt;
&lt;br /&gt;
#Once logged-on to the site, select the &#039;Upload file&#039; link within the toolbox on the left side-bar.&lt;br /&gt;
#&#039;Browse&#039; your system for the desired file, confirm its copyright compliance, and select Upload File.&lt;br /&gt;
#:By default, a page will be created for this file with the filename as its address and, regardless of its type, will be classified as an image.&lt;br /&gt;
#The file is now stored in the image section of the site and can be linked to from any other page within the site, as follows.&lt;br /&gt;
#:a) If the file is an image, then place the following code on a wiki page at the desired location of the image:&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;[[Image:my_favorite_image.jpg|picture_position,ie_right,left,center]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
::(The picture location is not necessary and could be left blank. See the example below.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
::b) If the file is not an image, then insert the following code where the file is to be downloaded:&lt;br /&gt;
::(This code should most likely be inserted into the Documents page)&lt;br /&gt;
     &amp;lt;nowiki&amp;gt;[[Media:my_favorite_document.pdf| Document Link Name Displayed on Page]]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*NB. For a list of all the files available for download from the wiki site, both images and none images, go to the &#039;&#039;&#039;Special Pages&#039;&#039;&#039; link in the toolbox and then  select &#039;&#039;&#039;Image list&#039;&#039;&#039;.  This page lists all the uploaded files on the site and they can all be downloaded from here.&lt;br /&gt;
&lt;br /&gt;
===Examples ===&lt;br /&gt;
*click the adjacent &#039;edit&#039; tabs to view the code for the examples.&lt;br /&gt;
&lt;br /&gt;
====Documents ====&lt;br /&gt;
&lt;br /&gt;
Now let&#039;s provide a pdf document: [[Media:My_favorite_pdf.pdf| I&#039;m a pdf document]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Images====&lt;br /&gt;
&lt;br /&gt;
Let&#039;s put an image of Steve here:&lt;br /&gt;
[[Image:Steve Boyd money.jpg|center]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*NB. Note how a link is automatically created to the picture&#039;s actual location within the image section - click on the image itself to see.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Site Administration==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Site Creation===&lt;br /&gt;
&lt;br /&gt;
The following explains how this wiki site was created. The intention is that in the event the site is lost, so long as the text from this page &lt;br /&gt;
is backed-up somewhere, the site could be recreated. Also, just to complete the documentation, I have tried to outline all the steps that &lt;br /&gt;
I took and explanations of parts that I had problems with while developing this site.&lt;br /&gt;
&lt;br /&gt;
*The &amp;quot;wiki&amp;quot; interface of this site was developed by MediaWiki and this software runs in the background, on the server at all times.  It &lt;br /&gt;
is this interface that allows users to edit pages, upload documents, and change a variety of settings, which is all stored in a database&lt;br /&gt;
on the server.&lt;br /&gt;
*The database that is compatible with MediaWiki is mySQL. This is a standard database that is one of the packages included with the latest&lt;br /&gt;
Fedora Core for linux.  This database caused several problems during the development of the first versions of the wiki site, however the &lt;br /&gt;
version mySQL 4.1 has so far not caused any similar problems.&lt;br /&gt;
:*It is useful to know that all the data from the site is stored on a mySQL database on the server, however there should be no need to ever&lt;br /&gt;
directly access this database, or try to edit or modify it directly.  &lt;br /&gt;
:*The one exception to this is for setting up the system operator (sysop) or bureaucrat privileges. (more on this later)&lt;br /&gt;
&lt;br /&gt;
====Install Instructions====&lt;br /&gt;
&lt;br /&gt;
Check out [http://meta.wikimedia.org/wiki/MediaWiki_User%27s_Guide:_Installation MediaWiki Installation] &lt;br /&gt;
*Download the latest, stable version of mediawiki from [http://wikipedia.sourceforge.net/| wikipedia.sourcforge].&lt;br /&gt;
::The MediaWiki FAQs are &#039;&#039;&#039;excellent&#039;&#039;&#039;, and should provide clear and thorough instructions for downloading and installing the program.&lt;br /&gt;
(However here is a quick summary)&lt;br /&gt;
*Read the &#039;Install.txt&#039; file for installation instructions and system requirements.&lt;br /&gt;
*The system requirements for the server (which could really be any computer set up appropriately, although &#039;&#039;&#039;preferably linux&#039;&#039;&#039;) are:&lt;br /&gt;
:*Apache web server&lt;br /&gt;
:*mySQL database&lt;br /&gt;
:*PHP-mySQL package&lt;br /&gt;
:(If running a new version of Fedora Core, all of these can be installed as packages from the original boot disks).&lt;br /&gt;
*Uncompress and untar the mediawiki folder.  It is advised to rename this folder something convenient, like wiki or mediawiki.&lt;br /&gt;
*Change the read/write access of the config directory to be readable by all.  This folder contains the php script for the initial configuration.&lt;br /&gt;
::&amp;lt;code&amp;gt;chmod a+w config&amp;lt;/code&amp;gt;&lt;br /&gt;
*The next step is to browse into this folder from an internet browser.  If this is run off of your linux box, you will need to find the folder open to the world &lt;br /&gt;
via http and move the entire mediawiki folder here.  When I did it, it was:&lt;br /&gt;
::/var/www/html/&lt;br /&gt;
:*Once the folder is there, browse &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;http://my_ip_address/mediawiki&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt;.  The installation script should start and you can now fill in the boxes, &lt;br /&gt;
initializing the site and the database  which will store all the site data.&lt;br /&gt;
&lt;br /&gt;
*The on-screen instructions are rather self-explanatory and after filling in and confirming the necessary information, the site should be created.&lt;br /&gt;
*On the new page, the instructions will say to move the &#039;LocalSettings.php&#039; file into your main mediawik folder and then delete the config directory.&lt;br /&gt;
::Once this is done, the &#039;LocalSettings.php&#039; file now becomes the default script that loads the mainpage of the wiki site.&lt;br /&gt;
&lt;br /&gt;
====LocalSettings.php====&lt;br /&gt;
&lt;br /&gt;
This becomes the most important and useful file to change the apperance and customize the wiki site. Everything else can be done through the interface&lt;br /&gt;
of the wiki site itself. Within this file, one can change the navigation bar on the left margin, the logo appearing in the upper left corner, the login restrictions, the name &lt;br /&gt;
of the site, the ability to upload files, the name of the site, the contact information and address of the site administrator, among others.&lt;br /&gt;
&lt;br /&gt;
*Navigation bar - For a detailed explanation on editing the Navigation bar, see [http://meta.wikimedia.org/wiki/MediaWiki_FAQ#How_do_I_change_the_contents_of_the_navigation_toolbar.3F MediaWiki Navigation Help]&lt;br /&gt;
:Summary:&lt;br /&gt;
:*The following array should be moved to LocalSettings, from &amp;lt;code&amp;gt;includes/DefaultSettings.php &amp;lt;/code&amp;gt;. It specifies the page which holds the text to be displayed in the navigation bar and the page which holds the link of where this navigation link points to. In other words, what appears here, in this array is not necessarily what will appear in the navigation bar; they are pages on the wiki site (or pointers within the database) to where this information is stored.&lt;br /&gt;
&lt;br /&gt;
 $wgNavigationLinks = array (&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;mainpage&#039;,	&#039;href&#039;=&amp;gt;&#039;mainpage&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;portal&#039;,	&#039;href&#039;=&amp;gt;&#039;portal-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;currentevents&#039;, &#039;href&#039;=&amp;gt;&#039;currentevents-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;recentchanges&#039;, &#039;href&#039;=&amp;gt;&#039;recentchanges-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;randompage&#039;,	&#039;href&#039;=&amp;gt;&#039;randompage-url&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;help&#039;, 		&#039;href&#039;=&amp;gt;&#039;helppage&#039; ),&lt;br /&gt;
 	array( &#039;text&#039;=&amp;gt;&#039;sitesupport&#039;,	&#039;href&#039;=&amp;gt;&#039;sitesupport-url&#039; ),&lt;br /&gt;
 );&lt;br /&gt;
&lt;br /&gt;
For example, one line in the navigation array for this site is:&lt;br /&gt;
::&amp;lt;code&amp;gt;array( &#039;text&#039;=&amp;gt;&#039;howto&#039;,	&#039;href&#039;=&amp;gt;&#039;howto-url&#039; ) &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*On the wiki site, there is a page &amp;lt;code&amp;gt;..../index.php/MediaWiki:howto&amp;lt;/code&amp;gt; which holds the text to be displayed on the navigation bar. The text on this page is:&lt;br /&gt;
::&amp;lt;code&amp;gt; How To&#039;s&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*There&#039;s another page on this wiki site, &amp;lt;code&amp;gt;..../index.php/MediaWiki:howto-url&amp;lt;/code&amp;gt; which holds the page address of this navigation link&#039;s target.&lt;br /&gt;
::&amp;lt;code&amp;gt; How To &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:*The next step is to add the desired text and target to the pages on the wiki site, that are mentioned in the navigation array.  These will initially be empty pages and must be edited for the navigations to work.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Logo - This is the picture which appears in the top left corner throughout the site. At all times, this acts as a link returning to the mainpage. To customize this logo, replace the location of the logo picture in the following line of LocalSettings:&lt;br /&gt;
::&amp;lt;code&amp;gt;$wgLogo     = &amp;quot;$wgScriptPath/myfavoritepicture.gif&amp;quot;;&amp;lt;/code&amp;gt;&lt;br /&gt;
:(Could use another file type for the image, such as .png).&lt;br /&gt;
&lt;br /&gt;
*Enable File Uploading - To enable file uploading, uncomment the following line, in LocalSettings. &lt;br /&gt;
::&amp;lt;code&amp;gt;$wgDisableUploads   = false;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: - Then change the permissions on the image directory so that it is writable.&lt;br /&gt;
::&amp;lt;code&amp;gt;$chmod a+w images &amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Adding Users===&lt;br /&gt;
Depending on the access restrictions specified in the &#039;LocalSettings.php&#039;, the site can be designed such that anybody can access and edit any of&lt;br /&gt;
the pages, or only registered users may log on to the site. Furthermore, the site can be configured such that only the &#039;sysop&#039; of the site can create&lt;br /&gt;
new accounts, as is the case with this site.  These restrictions are set within the LocalSettings file. (See above for details).&lt;br /&gt;
&lt;br /&gt;
*If only the &#039;sysop&#039; can create accounts, then once logged in, they can select &amp;quot;Create an account or log in&amp;quot; from the &amp;quot;Special Pages&amp;quot; link of the toolbox,&lt;br /&gt;
along the left margin.  Here, the sysop creates a username and can then automatically email them a temporary password for the site. (This email &lt;br /&gt;
will have the return address of the site administrator, as specified in LocalSettings.php.&lt;br /&gt;
&lt;br /&gt;
*Unfortunately, there is no easy way of deleting a user account. A user can be manually removed from the mySQL database, however this will most likely &lt;br /&gt;
cause problems with other tables referring to this user or deleted row. This should only be done if you really understand mySQL. &lt;br /&gt;
:*The best way to remove a user, is for the sysop to either block them, or rename their account/ change their password.&lt;br /&gt;
&lt;br /&gt;
*A user can be given &#039;sysop&#039; and &#039;bureaucrat&#039; priveleges by an existing sysop, from a link on the sysop&#039;s &amp;quot;Special Pages&amp;quot;. (The original sysop is created &lt;br /&gt;
during site initialization).&lt;br /&gt;
 &lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
Wiki software successfully installed.&lt;br /&gt;
&lt;br /&gt;
Please see [http://meta.wikipedia.org/wiki/MediaWiki_i18n documentation on customizing the interface]&lt;br /&gt;
and the [http://meta.wikipedia.org/wiki/MediaWiki_User%27s_Guide User&#039;s Guide] for usage and configuration help.&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Scanco</name></author>
	</entry>
</feed>