Warning: include(/home/www/data/lejpthead.php): failed to open stream: No such file or directory in /home/www/data/lejpt/gettext.php on line 4

Warning: include(): Failed opening '/home/www/data/lejpthead.php' for inclusion (include_path='.:/usr/pkg/lib/php') in /home/www/data/lejpt/gettext.php on line 4
LEJPT - Leonardo Electronic Journal of Practices and Technologies - light html archive A02
Warning: include(/home/www/data/lejptbody.php): failed to open stream: No such file or directory in /home/www/data/lejpt/gettext.php on line 6

Warning: include(): Failed opening '/home/www/data/lejptbody.php' for inclusion (include_path='.:/usr/pkg/lib/php') in /home/www/data/lejpt/gettext.php on line 6
Leonardo Electronic Journal of Practices and Technologies
Issue 02, p. 01-19
Free Software Development. 4. Client-Server Implementation of Bone Age Assessment Calculations
Sorana BOLBOACĂa*, Carmencita DENEŞb, Andrei ACHIMAŞ CADARIUa
a “Iuliu Haţieganu” University of Medicine and Pharmacy, Cluj-Napoca, Romania
b “Axente Iancu” Pediatric Clinic no. 1, Cluj-Napoca, Romania
* corresponding author, sbolboaca@umfcluj.ro

Abstract
In pediatrics, bone age also called skeletal maturity, an expression of biological maturity of a child, is an important quantitative measure for the clinical diagnosis of endocrinological problems and growth disorders. The present paper discusses a Java script implementation of Tanner-Whitehouse Method on computer, with complete graphical interface that include pictures and explanations for every bone. The program allows to select a stage (from a set of 7 or 8 stages) for every bone (from a set of 20 bones), and also allow user to input some specific data such as natural age, sex, place of residence. Based on TW2 reported values, selected and input data, the program compute the bone age. Java script functions and objects were used in order to make an efficient and adaptive program. Note that in classic way, the program implementation it requires more than 160 groups of instructions only for user interface design. Using of dynamic creation of page, the program became smaller and efficient. The program was tested and put on a web server to serve for directly testing via http service and from where can also be download and runes from a personal computer without internet connection: http://vl.academicdirect.ro/medical_informatics/bone_age/v1.0/
Keywords
Bone age, Skeletal maturity, Tanner-Whitehouse method, Online evaluation, Java script programming.

Background
In pediatrics, skeletal maturity, also called “bone age”, an expression of biological maturity of a child, is an important quantitative measure for the clinical diagnosis of endocrinological problems and growth disorders. Bone age is also used in monitoring children with hormone therapy. Skeletal maturity may be assessed by analysis of the ossification centers of the hand, foot, knee, elbow or pelvis but most often used is the hand. For the assessment of child skeletal maturity, radiologists use a hand and wrist radiography. The assessment is realized by assessing the ossification and maturation of the epiphysis of the hands and wrists comparing them with standards radiographs and standards descriptions. There are al least two methods of evaluating wrist and hand bone age represented by Tanner-Whitehouse method and Greulich-Pyle method.[1],[2] In the Greulich-Pyle [3] method the radiographs of the whole hand and wrist are compared with images in the atlas. This method, as the Tanner-Whitehouse one, is gender specific and it is enabling to assess the bone age of the child from birth to 18 years old. The Greulich-Pyle method has been used more frequently by orthopedists. The Tanner and Whitehouse method [4] is most frequently applied methods for skeletal maturity in Romania. The Tanner-Whitehouse method is based on left hand and wrist radiography. Generally, in order to determine the bone age it is used the left hand and wrist radiography. The bone age of the left hand precedes that of the right hand because the right hand is more frequently involved in injury than the left one [5]. The score is assign to 20 of the epiphyses in the left hand and wrist radiographs compared with the standard. In the end, the radiologist totals the scores for those 20 bones and, by reference to gender-dependent standard tables, converts the total maturity score (on a scale of 0 to 1000) into an individual bone age. Comparing the bone age with chronological age will reveal if the child growth is advanced or retarded relative to the normal situation. The Grulich-Pyle method and the Tanner-Whitehouse method do not give equivalent bone ages [6]. Estimating bone age of a child using Tanner-Whitehouse method is time-consuming (between 8 and 10 minutes for each patient) and is also necessary that the radiologists to have some abilities and a lot of practice. In recent years, the increasing speed in computer sciences and decreases their costs give the opportunity to create and use computerized bone age estimation system. In order to help radiologists to estimate bone age, we created and present in this paper software which use the Tanner-Whitehouse method for estimating child bone age.

Tanner-Whitehouse Method
To assess the bone age the Tanner-Whitehouse method were used [4]. For this method is necessary to analyze 20 bones: distal radius, distal ulna, first, third and fifth metacarpals, proximal phalanges of the thumb, third and fifth fingers, middle phalanges of the third and fifth fingers, distal phalanges of the thumb, third and fifth fingers, the seventh carpal bones: capitate, hamate, triquetral, lunate, scaphoid, trapezium and trapezoid. Each bone, conform to Tanner-Whitehouse method, was graded into 8 or 9 maturity stages. Staging were assigned pursuant the rating system of the Tanner-Whitehouse method. If no sign of the bone was presented, the lowest rating was given (this rate in not include in our software). The epiphyseal region were staging by distinction of the size, shape, density, smoothness or thickening of the borders, thickness of epiphyseal line, extent of fusion and capping. The individual scores of 20 bones corresponding to the stages, both for the boys and for the girls are given in table 1 and table 2. For computing bone age we used, according to the reference table (table 3 and table 4), Tanner-Whitehouse equivalency between maturity score and bone age [4]. All data from table 1-4 are writes in PHP modules. More, photos with all stages of grow for bones are also scanned and putted into a web folder.
Table 1. Twenty Bone Tanner-Whitehouse Maturity Score for Boys
Bone Boys
BCDEFGHI
Radius15172127487796106
Ulna22263039567384X
First Metacarpal45111924283032
Third Metacarpal3461016222325
Fifth Metacarpal3361217212325
Proximal Phalanx of the Thumb4581523283032
Proximal Phalanx of the Third Finger3461320232426
Proximal Phalanx of the Fifth Finger3361319222325
Middle Phalanx of the Third Finger3471319222325
Middle Phalanx of the Fifth Finger4481419212223
Distal Phalanx of the Thumb4471423303133
Distal Phalanx of the Third Finger3461016212224
Distal Phalanx of the Fifth Finger3471116202123
Capitate606265717989116X
Hamate42444959708192106
Triquetral7101728384562X
Lunate10132027364460X
Scaphoid14182330354258X
Trapezium1215212834394759
Trapezoid14162023323956X

Table 2. Twenty Bone Tanner-Whitehouse Maturity Score for Girls
BoneGirls
BCDEFGHI
Radius17192533548599106
Ulna22263039607380X
First Metacarpal56111824293133
Third Metacarpal3571117232426
Fifth Metacarpal3471218222425
Proximal Phalanx of the Thumb5581424293032
Proximal Phalanx of the Third Finger4471320242526
Proximal Phalanx of the Fifth Finger4471319232425
Middle Phalanx of the Third Finger4471320232425
Middle Phalanx of the Fifth Finger4581420222223
Distal Phalanx of the Thumb5581524313234
Distal Phalanx of the Third Finger3461017222324
Distal Phalanx of the Fifth Finger3471117212223
Capitate535661677685113X
Hamate44475364748597109
Triquetral8121928364663X
Lunate10142027354660X
Scaphoid13172329364457X
Trapezium1214202532394959
Trapezoid13162024314057X

Table 3. Tanner-Whitehouse Boys Bone Age (BBA) for Given Maturity Score (MS)
MS114116119123126129133136139142146150154159163168
BBA1.01.11.21.31.41.51.61.71.81.92.02.12.22.32.42.5
MS172176181185190195200205210215220226231236242247
BBA2.62.72.82.93.03.13.23.33.43.53.63.73.83.94.04.1
MS252258264270276282287292298303308314319325331337
BBA4.24.34.44.54.64.74.84.95.05.15.25.35.45.55.65.7
MS343349355360366372378384390396402409415422428435
BBA5.85.96.06.16.26.36.46.56.66.76.86.97.07.17.27.3
MS441447454460466472477483489495501507513520526533
BBA7.47.57.67.77.879.08.08.18.28.38.48.58.68.78.88.9
MS540546553560566573580587594601608615622629636643
BBA9.09.19.29.39.49.59.69.79.89.910.010.110.210.310.410.5
MS650657664671678684690697703711718725732740747754
BBA10.610.710.810.911.011.111.211.311.411.511.611.711.811.912.012.1
MS761768774781788795802809817823830836842849855861
BBA12.212.312.412.512.612.712.812.913.013.113.213.313.413.513.613.7
MS867873879884889895900906911916921926931936940944
BBA13.813.914.014.114.214.314.414.514.614.714.814.915.015.115.215.3
MS948952956959963967970973976979981983985987989991
BBA15.415.515.615.715.815.916.016.116.216.316.416.516.616.716.816.9
MS992994995996996997998999999999103
BBA17.017.117.217.317.417.517.617.717.817.918.0

Table 4. Tanner-Whitehouse Girls Bone Age (GBA) for Given Maturity Score
MS131136140146152159163172179186192199206213220226
GBA1.01.11.21.31.41.51.61.71.81.92.02.12.22.32.42.5
MS233240247253260267274281287293299303311317324331
GBA2.62.72.82.93.03.13.23.33.43.53.63.73.83.94.04.1
MS338345351357363370376382389395402408414420426432
GBA4.24.34.44.54.64.74.84.95.05.15.25.35.45.55.65.7
MS438444450456462468474480485491497503510516522529
GBA5.85.96.06.16.26.36.46.56.66.76.86.97.07.17.27.3
MS535541547553559565571578585592600608617625634643
GBA7.47.57.67.77.87.98.08.18.28.38.48.58.68.78.88.9
MS653662670680690700710721731742752762772783794803
GBA9.09.19.29.39.49.59.69.79.89.910.010.110.210.310.410.5
MS812821830838845852859866872879885891898903908913
GBA10.610.710.810.911.011.111.211.311.411.511.611.711.811.912.012.1
MS918923928932937940944948953956960963966969972974
GBA12.212.312.412.512.612.712.812.913.013.113.213.313.413.513.613.7
MS976979981982984986987989990991993994995995996996
GBA13.813.914.014.114.214.314.414.514.614.714.814.915.015.115.215.3
MS997997998998999999103
GBA15.415.515.615.715.815.916.0

Java Script Programming
Why we choose JavaScript? We had some reasons when we chose Java Script programming language. First, we chose JavaScript language in order to create our program because is a simple programming language which can be written into HTML documents. The second reason was that JavaScript language allow interactivity with the users, especially can be used in order to create online calculators and our purpose was to create a program which to allow to the radiologists to compute, assisted by the computer, child bone age. Arrays and multi-dimensional arrays are very useful in JavaScript. Arrays are a kind of objects in JavaScript and are dynamically created. An Array object is used to store a set of values in a single variable name. Each value is an element of the array and has an associated index number. The index number start at zero (in this case the array is empty) and can be n (case in that the length of the array is equal with n) [7]. Using Array object is possible to create one-dimensional Array objects:
var <table_name> = new Array(<table_dimension>);
a[0]a[1]
Fig. 1. a[0] and a[1] from a = new Array(2);

One-dimensional arrays were used in our program. We used Arrays Object to create a one-dimensional table in order to create content with the bones name used in Tanner-Whitehouse method for bone age assessment:
var bone_name = new Array(20);
bone_name[0]="Radius";
bone_name[1]="Ulna";
bone_name[2]="First Metacarpal";
bone_name[3]="Third Metacarpal";
...
Two-dimensional Array objects are constructed as follows:
var <table_name> = new Array(new Array(<table_dimension>), ...);
b[0][0]b[0][1]
b[1][0]b[1][1]b[1][2]
Fig. 2. b[0][0], b[0][1], b[1][0], b[1][1], b[1][2] from b = new Array(new Array(2), new Array(3));

Two-dimensional arrays were used in our program. Conform to Tanner-Whitehouse method, each bone covered eight or nine maturity stage. If no sign of the bone was presented, the lowest rating was given (this stage is not include in our program). Because we didn’t take in consideration the lowest stage, in our program we have seven or eight maturity stage for each bone. In order to create the standard definition correspond to each bone maturity stage, we used the next array object:
var std_bone_stage = new Array(new Array(8), new Array(7), ...);
std_bone_stage[0][1] = "The center is just visible as a single deposit of calcium, ...";
...
std_bone_stage is a two-dimensional array with 8 columns and 20 rows and it contain strings. This example corresponds to the Radius, which has eight maturity Tanner-Whitehouse stages. Multi-dimensional Array objects declaration syntax is similarly to the two-dimensional ones. A 3-dimensional table can be declared as follows:
var <table_name> = new Array(new Array (new Array(<table_dimension>), ...);

Fig. 3. c[0][0][0], c[0][0][1], c[0][1][0], c[0][1][1], c[1][0][0], c[1][0][1], c[1][1][0], c[1][1][1] cells from c = new Array(new Array(new Array(2)), new Array(new Array(2));
We used a 3-dimensional table for storing the bone scores that are different from boys to girls. Each bone used from Tanner-Whitehouse method has an individual score that corresponding to the stages, individual score which is different from boys and from girls. In order to use these individual scores to assess the bone age of the child, the first dimension correspond to each bone, the second one correspond to bone stage, and last one to the sex (0 for boy and 1 for girl):
var individual_bone_maturity_score = new Array(new Array(new Array(2), ...));
individual_bone_maturity_score[0][0][0]=15;
individual_bone_maturity_score[0][0][1]=17;
individual_bone_maturity_score[0][1][0]=17;
individual_bone_maturity_score[0][1][1]=19;
individual_bone_maturity_score[0][2][0]=21;
individual_bone_maturity_score[0][2][1]=25;
individual_bone_maturity_score[0][3][0]=27;
individual_bone_maturity_score[0][3][1]=33;
...
The organizing of the HTML document according to HTML 4.0 specifications (DHTML model) make possible the accessing of object containers from the document through all collection. For example, all tags with a specified format can be retrieved using the tags function:
var <variable_name> = document.all.tags(<tag_name>);
where <tag_name> is given as string and represent the value of name attribute of the referred tag. We used this function to retrieve all Input tags:
var bone_stage = document.all.tags("INPUT");
when we obtain a collection with 154 objects for the document which implement the bone age evaluation. The properties of HTML objects can be reads or writes on the same way. For example, for us are very important to retrieve the sex of the patient from sex drop down list:
patient_sex = document.all.sex.value;
The state of radio buttons from one bone (only one is checked) is obtained with:
if ( bone_stage(j).checked ) { ... }
With helps of the java script operators, the programming can be easily made. Operators take one or more variables or values (operands) and return a new value; e.g. the ‘/’ operators can divide two numbers to produce a new one. We use operators in expressions to relate values, whether to perform arithmetic or compare quantities. JavaScript operators are based on C++ one. Thus, JavaScript provides a number of operators divided into several classes depending on the relationship they perform [8]. The classification of these operators is given in table 4-7. Arithmetic operators take numerical values or their operands and return a single value. The standard arithmetic operators are given in table 5. A comparison operator compares its operands and returns a logical value based on whether the comparison is true or false. The operands can be numerical or string values. When used on string values, the comparisons are based on the alphabetic ordering (table 6). Boolean operators are used to combine multiple comparisons into a conditional expression. Boolean operators work with two operands, each of which is a true or false value, and return a true or false result (table 7). The assignment operator (=) lets us assign a value to a variable. We can assign any value to a variable, included another variable (table 8).
Table 5. Arithmetic or computational operators
+ (plus sign)Addition
- (minus sign)Subtraction
* (asterisk)Multiplication
/ (forward slash)Division
% (percent sign)Modulus: the remainder after division
++ (increment)This operator takes only one operand. The operand’s is increased by 1. The value returned depends on whether the ++ operator is placed before or after the operand. E.g. ++y will return the value of y following the increment where as y++ will return the value of y prior to the decrement.
-- (decrement)This operator takes only one operand. The operand’s value is decreased by 1. The value returned depends, as in the case of unary increment, on whether the -- operator is placed before or after the operand. E.g. --y will return the value of y following the decrement whereas y-- will return the value of y prior to the decrement.
-Unary negation: returns the negation of operands.

Table 6. Comparison operators
== (equal to)Returns true if operands are equal.
!= (not equal to)Returns true if operands are not equal.
> (greater than)Returns true if left operand is greater than right one.
>= (greater than or equal to)Returns true if left operands is greater than or equal to right operand.
< (less than)Returns true if left operand is less than right operand.
<= (less than or equal to)Returns true if left operand is less than or equal to right operand.

Table 7. Boolean operators
&& (and)Returns true if both operands are true.
|| (or)Returns true if either operand is true.
! (not)Returns true if the negation of the operand is true (e. g. the operand is false).

Table 8. Assignment operators
=Assigns the value of the right hand operand to the variable on the left.
+= (also -= , *= , /=)Adds the value of the right hand operand to the left hand variable and stores the result in the left hand variable.
&= (also !=)Assigns result of (left hand operand && right hand operand) to left hand operand.
JavaScript functions are more like biological functions. It cumulates or multiplies using some algorithm a set of values to give a specific response to the main program. A function is composed from a set of statements, which perform some action. It may accept incoming values (parameters), and it may return an outgoing value. To create a function it is necessary to define its name, any values or arguments and some statements:
function <function_name>(argument1, argument2, ...) { <statements> };
We can create a function without arguments (like procedures in Pascal) but in this case, the function must include the parentheses, as in the example below:
function <functionName>() { <statements> };
We used this kind of function in our program to the beginning of the program in order to compute the maturity score and bone age on base of individual bone:
function bone_stage_calculation() {
	var individual_bone_maturity_score = new Array(new Array(new Array(2), new Array(2), ...), ...);
	//20 new Array of 9 new Array(2) inside of new Array ...
	individual_bone_maturity_score [14][6][0] = 92;
	individual_bone_maturity_score [14][6][1] = 97;
	...
	for (i = 0; i < 1; i++) { 
		da = 0; 
		for (j = k; j < k+8; j++) 
			if ( bone_stage(j).checked ){ 
				if (document.all.Sex.value == 'M') 
					b += individual_bone_maturity_score[i][j-k][0];
				else b += individual_bone_maturity_score[i][j-k][1];
				da = 1;
			}
		k += 8;
		if (da > 0)
			colect += bone_name[i]+', ';
	}
	...
};
As we used in bone_stage_calculation function, there exist a simple way to output the values to the screen. The write function of the document object makes this very easy:
...
document.write(colect);
...
where colect is a string variable that contain the string for output. Also the document.write function can be used to display a constant string:
document.write("Tanner-Whitehouse Test");
Some interactive I/O functions are also available: alert, prompt and confirm. These functions are generally used for advertising or for submitting data to the server, but are very useful for program debugging and developing. We used the alert function to display number of INPUT tags from the document in testing phase:
alert(document.all.tags("INPUT").length); // display 154

Dynamically Building of a HTML Page
In order to create a dynamically program and interactive one we used some statements. Statements define the flow of a script, known as program flow. A statement is made up of small expressions, which evaluate into a cogent meaning. Form JavaScript statements we used in our program a loops statement (for), and a conditional statement (if ...else) [8]. for loop repeatedly cycles though a block of statements until a test condition is false. This statement is used commonly to initialize a counter variable. The number of times a loop is repeated depends on a counter. The JavaScript for syntax incorporates the counter and its increments, as below:
for (<initial_statements>; <evaluate_conditions>; <end_statements>) {<statements>}
if (<conditional_statement>) <statement1>; [ else <statement2>;]
where initial statements are made only at beginning of the cycle, are separately by " ,”. We used in our program the next sequence of three for’s:
for (i = 0; i < 1; i++){
	document.write(
		"<BR><hr size='5' color='#191970' 
		width='40%'><h2><font color='#800000'>"
		+bone_name[i]+"</h2></font><table border='1'>"
	);
	for (j = 1; j < 9; j++){
		document.write(
			"<tr><td><input type='radio' id='x"
			+i+"_"+j+"' name='o"+i+"' value='"+j+"'>"
		);
		for (k = 1; k < 4;k++){
			document.write("<td align='center'><img src='"
			+i+"_"+j+"_"+k+".jpg' height='100'>");
		}
		document.write("<td>"+standard_bone_stage[i][j]+"<BR>");
	}
	document.write("</table>");
}
A set of form type objects (input, select, ..) for patient information may be used in order to send the data to a web server or compute directly in java script program. The purpose of this program is to allow computer assessment of child bone age in order to compare the result with biological age. Because the Tanner-Whitehouse method used to assess the skeletal maturity has some results for boys and other results for girls first we create using document.write a sub-table which allows us to choose child sex (see the example below). We present now how we create the sex sub-table using form controls:
document.write("<BR><hr size='7' color='#191970'><BR>");
document.write("<center><table width='50%' border=1><tr>");
document.write("<td>Sex:<BR><select name='sex'>");
document.write("<option value='M' selected>Male</option>");
document.write("<option value='F'>Female</option></select>");
In order to create a database with all the bone ages assess with this program we created a form with the patient data:
document.write("<form method=post"+"action='eval.php'>");

Evaluation Function
The present paper describes the assessment of child skeletal maturity based on JavaScript programming language. In order to assess the child bone age, first, the program took in consideration all the individual score bone on the based of what the radiologist checked:
for (i = 0; i < 1; i++){
	da = 0;
	for (j = k; j < k+8; j++)
		if ( bone_stage(j).checked ){
			if (document.all.Sex.value=='M')
				b+= individual_bone_maturity_score[i][j-k][0];
			else b += individual_bone_maturity_score[i][j-k][1];
			da = 1;
		}
	k += 8;
	if (da>0)
		colect += bone_name[i]+', ';
}
At the end, the bone_stage_calculation() function sum all the individual bone stage score, and assign for every maturity score, differentiate on sex, a bone age:
if (document.all.Sex.value == 'M'){
	var boys_maturity_score = new Array(171);
	boys_maturity_score[0]=114;
	boys_maturity_score[1]=116;
	...
	if (b>0)
		for(k = 0; k<171; k++) {
			if (boys_maturity_score[k]>=b) {
				colect +="<tr><td>Maturity score:<td>"
				+b+"->"+boys_maturity_score[k]
				+"<tr><td>Bone age:<td>"+(1+k/10);
				break;
			}
		} else
			colect += "<tr><td>Maturity score:<td>0 -> 0<tr><td>Bone age:<td>0";
} else {
	var girls_maturity_score=new Array (151);
	girls_maturity_score[0]=131;
	girls_maturity_score[1]=136;
	if (b>0)
		for(k = 0; k<150; k++) {
			if (girls_maturity_score[k] >= b) {
				colect +="<tr><td>Maturity score:<td>"
				+b+"->"+girls_maturity_score[k]
				+"<tr><td>Bone age:<td>"+(1+k/10);
				break;
			}
		} else
			colect += "<tr><td>Maturity score:<td>0 -> 0<tr><td>Bone age:<td>0";
}

Results
Our software integrates the Tanner-Whitehouse method in a fact and reliable way. It is easy to use, have a friendly interface (see figure 4) and reduce the time needed to obtain final bone age from 8-10 minutes to 3-5 minutes. It is a PC’s program and it is quite easy to run in any computer. The minimum required for running the program is an HTML 4.0 web browser (like Internet Explorer 4.0, Netscape 4.7, Mozzilla, Opera, and so on). With this minimum requirement, the program is quite easy to install it in a clinical environment.

Fig. 4. Java script program running (index.html)
The program subsumes all the documentation of Tanners-Whitehouse atlas, including the standardized image. They are available on the screen when the radiologists use the program. For every bone from 20th, the radiologists choose, whit a mouse click, the patient individual bone maturity stage. For one bone, the program allows choosing just a single maturity stage. To every bone, maturity stage was assign, on based of Tanner-Whitehouse standard, a score. The program allows users to input some specific data such as: the patient personal number, the first and second name of the patient, the patient address, the patient chronological age, the patient weight and height, the patient diagnosis, the date of patient examination (figure 5). In order to use our program it is necessary to follow three steps, represented by:
  • choosing the bone maturity stage, for every bone;
  • introducing the patient data;
  • displaying the Tanner-Whitehouse test results.

    Fig. 5. Input patient data interface (these data are fictive one)
    At the end, the program creates a report (figure 6) with all the patient data, and displays the skeletal maturity score and corresponding bone age. The report can be print or can be save on the computer hard disk or on a floppy disk.

    Fig. 6. Patient report (the data from this report do not belong to any patient).
    The performance of the computerized procedure depends to some extend on the interaction user and on the familiarization of the radiologists with a Web browser. On the other hand, the program performance also depends on the radiologist’s experiences, experience which is essential. However, the execution time of the total process of bone age assessment is always significantly shorter than the time necessary for the traditionally subjective visual rating.

    Discussions
    Why is so important to assess skeletal maturity? Is quite simple, the development and growth of children is a very important issue for every country. It is important to have healthy children because if we have healthy children now, in the feature, will we have healthy adults. Radiographs of the hand and wrist, which representing well al the skeletal system, has been used in order to assess bone age for the following reasons: · it is easy to take a left hand and wrist radiograph; · the development of the hand and wrist is not different from that of other bones such as knee, foot or pelvis; · the accuracy of an analysis of skeletal maturity of the hand and wrist is not inferior to that of many other bones; · the ossification of the carpal bones not only appears uniformly in order but also is affected more by illness or inadequate nutritional conditions rather than genetic factors [9],[10]. The Tanner-Whitehouse system (TW2) was made by Tanner-Whitehouse in 1972 by a longitudinal and cross sectional study. The size, shape, density, smoothness or thickening of the borders, thickness of epiphyseal line, extent of fusion and capping of the twenty bones of the left hand (distal radius; distal ulna; first, third and fifth metacarpals; proximal phalanges of the thumb, third and fifth fingers; middle phalanges of the third and fifth fingers; distal phalanges of the thumb, third and fifth fingers; the seventh carpal bones: capitate, hamate, triquetral, lunate, scaphoid, trapezium and trapezoid) were analyzed and graded into 8 or 9 stages from A to H or I according to the degree of maturity and scored from 0 to 1000 according to the biological weight which indicate the bone maturity by stages [4]. Our program subsumes all the documentation of Tanners-Whitehouse atlas, including the standardized image. They are available on the screen when the radiologists use the program. The program is easy to use and it is an important tool in pediatric radiology. The program can be extended in order to compute RUS bone maturity score – this score use just radius, ulna and finger bones, and/or Carpal bone maturity score – use only carpal bones. Can also be developing an automated system of bone age maturity evaluation applied on the base of the Tanner-Whitehouse method. The program can be improved to send the resulted data to a Web server. This task can be easily done using a PHP program [11] in order to create a large database (in this case usually a MySQL database [12]) with patients results. The database can be after that interrogates to retrieve the data results for selected patient, to make computation on groups of patients, in order to relieve group dependencies.

    Conclusions
    We presented a helpful program in skeletal maturity assessment that includes the Tanner-Whitehouse method. Now, radiological department have at their disposition an efficient and useful program in assessing the child skeletal maturity. The program have a nicely interface, is easy to use and significantly reduces the time need to obtain final bone age, from 8-10 minutes to 3-5 minutes. The program which was dynamically create allow interaction with the users and can run from any computer, if on computer is installed Internet Explorer 4.0. It is quite easy to install the program in a clinical environment. The program is a powerful tool for routine application in pediatric radiology.

    References
    [1]. Milner G.R., Levick R.K., Kay R. Assessment of bone age: a comparison of the Greulich and Plye, and Tanner and Whitehouse methods. Clin. Radiol. 1986; 37: 119-212.
    [2]. Frische H., Riedl S., Waldhör T. Computer-aided estimation of skeletal age and comparison with bone age evaluations by the method of Greulic-Pyle and Tanner-Whitehouse. Pediatr. Radiol. 1996; 26: 226-31.
    [3]. Greulich W.W., Pyle S.I. Radiographic atlas of skeletal development of the hand-wrist. 2nd edition. Carlifonia. Stanford University Press, 1959.
    [4]. Tanner J. et all. Assessment of Skeletal Maturity and Prediction of the Adult Height (TW2 Method). London/New York, Academic Press, 1983.
    [5]. Roche A.F. A study of skeletal maturation in a group of Melbourn children. Aust. Paediatr. J. 1967; 3: 123-7.
    [6]. Bull R.K., Edwards P.D., Kemp P.M., Fly S., Hughes I.A. Bone age assessment: a large scale comparison of the Greulich and Pyle, and Tanner and Whitehouse (TW2) methods. Achieves of Disease in Childhood. 1999, 81(2): 172-3.
    [7]. Microsoft home page. Introduction to Dynamic HTML. http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/dhtml.asp
    [8]. Weiss A. JavaScript Tutorial for Programmers. 1998. http://www.wdvl.com/Authoring/JavaScript/Tutorial/
    [9]. Hewitt D., Acheson R.M. Some aspect of skeletal development though adolescence, 1. Variations in the rate and pattern of skeletal maturation at puberty. Am. J. Phys. Anthropol. 1961; 19: 321-31.
    [10]. Roche A.F., Wainer H., Thissen D. Skeletal maturity: the knee joint as a biological indicator. New York/London. Plenum, 1975.
    [11]. Zend Technologies: http://www.zend.com
    [12]. MySQL. The World’s Most Popular Source Database: http://www.mysql.com
    Issue 02, p. 20-36
    SQL by Example. 1. Application for High School Bachelor Examination
    Lorentz JÄNTSCHI
    Technical University of Cluj-Napoca, Romania,
    http://lori.academicdirect.ro


    Abstract
    This paper main objective is to present SQL power of use of data management with heterogeneous cases of data classification. The article is based on a PHP application developed to manage a real situation of school-leaving examination in August 2003 at Braşov city, Romania at exams center no. 29, where the first author was president of the committee of the examination. The paper describes all used queries that was used for classifications, room repartitions, probes and investigation subject envelopes and finally, describe de final classification algorithm.
    Keywords
    SQL application, MySQL database server, PHP programming.

    Introduction
    Main information about the school-leaving examination is required.[1] The examination is organized into Exam Centers, where participate candidates form more than one school (in presented case 12 schools) with varied specializations (in our case 12 specializations). Note that one school has in most of cases candidates with more than one specialization (in our case from 1 to 5). For example, produce 5 rows a query like:
    SELECT DISTINCT `pl` FROM `candidati` WHERE `sc` LIKE 'N. Titulescu'
    School-leaving examination is organized by probes. All candidates that were studied in Romanian language in school must sustain 6 probes. For the candidates that were studied in mother tongue in school must sustain 8 probes. Probes are 2 (or three, respectively) eliminatory and are viva voce and the candidates obtains a qualifying result for every probe (one from: admitted, discarded and not present). The `a` probe is obligatory for all candidates and is Romanian language and literature. The `c` probe is for candidates with mother tongue in school. According to candidate specialization for the last three probes, the candidates has option to sustain at every probe the exam at one discipline from a list of one or more disciplines at partial free chousing (as example, if candidate specialization is philology, the candidate can sustain `b` probe at one modern language, and at `e` probe must sustain the exam at the other one language according to his school studies. For example, in our case, for `b` probe, we have three modern languages, that result from select phrase:
    SELECT DISTINCT `pb` FROM `candidati`
    After the eliminatory probes (2 or 3) all candidates are allowed to participate at rest of the probes (4 or 5). These probes are noted with marks from 10.00 to 1.00. To promote school-leaving examination, candidate must pass the eliminatory probes (with admitted qualification) and must have mark of at least 5.00 for every other ones probes. More, two decimals chopped average mean of all noted with marks probes must be at least 6.00. A database to store all required information is necessary. More, with PHP [2] in conjunction with MySQL [3] a set of programs to process efficiently the information the task is fast and efficient.

    Database Design
    A database called Bac2003 with a set of 16 tables was created (see fig. 1). Because a set of varied number from 2 to 6 Exam Center (EC) are goes to one Zonal Center of Evaluation (ZCE) where all hand writes exam papers are evaluated and marked (`a` and `c` probes, and some disciplines from `e` and `f` probes) the database are designed to manage all exam results from more than one EC (as example, all EC depended at one ZCE). The table `ex` is used for both user management and EC classification. It store in `id` field the identification number of EC (in our case from 29 to 34), in field `nume` the name of operator (usually one of the EC committee members) and his password. Note that for this table `id` is not a primary key, but using a SELECT DISTINCT SQL phrase we have a column that act as primary key for `ex`, `candidati` and `scoli` tables. More, from here it result as consequence that for an EC we can have more than one operator. There exists a super user for user management, with a blank `id` key. A script for user management was created. The script use three SQL phrases, one for SELECT, one for INSERT and one for UPDATE in table `ex`.

    Figure 1. Bac2003 database architecture
    For example, the phrase which and add a new operator at $HTTP_POST_VARS['id'] EC with $HTTP_POST_VARS['nume'] name and $HTTP_POST_VARS['password'] password is:
    INSERT INTO `ex` VALUES ('$HTTP_POST_VARS['nume']', '$HTTP_POST_VARS['id']', PASSWORD('$HTTP_POST_VARS['password']') )
    Table `sc` stores the names of schools (`name` field, candidate key), EC number (`ex` field, foreign key) and primary key (`id` field, auto increment). Table `abs` contain only `nume` field that stores school graduation years (from 2003 descending) which act as primary key also. Table `pg` store only two values to discriminate the study curricula of the candidates (candidates from 2003 school graduation year with 12 graduation years has one type of curricula, and the all others, i.e. previously graduated candidates and 2003 graduated candidates with 13 graduation years). Table `pl` store profiles of studies (such as philology, economics, and so on, 12 distinct profiles in our case). The `id` field is primary key and `nume` field is the candidate key. The tables `pa`, `pb`, `pc`, `pas`, `pcs`, `pd`, `pe` and `pf` contains the names and the primary keys for the disciplines by probes, every table storing all possible disciplines of one probe. The table c contain the labels and primary keys of qualification marks (i.e. 'adm.' for admitted, 'res.' for not admitted, and 'nep.' for not presented). Table `candidati` is designed to store all information about candidates. A script to store the primary information (candidate name) was designed and called candidats.php. The candidats.php program makes INSERT candidates in table `candidati` successively for an EC by provenience schools. The required information is candidate’s names and inserted information is composed from `id` (primary key), `nume` (candidate first and second name, not necessary candidate key), `ex` (EC, foreign key from `ex` table) and `sc` (provenience school, foreign key from `sc` table). The second step is to fill all others information about candidates into candidate records (defined by `id` key). A set of PHP programs was prepared for this task. The program query.php retrieves from `candidati` table for selected candidates a set (one or more fields) of information and, for every field (excepting `nas`, `ncs`, `nd`, `ne`, `nf` fields) create a combo box with all possible values from primary tables (see fig. 1). Then, the candidate’s registration procedure is fast and easy. More, the program can be executed any time for updates or eventually corrections. The program do.php verifies the updates and for not empty values makes UPDATE at `candidati` table.

    Problems and Solutions
    The problems that appear in school-leaving examination procedure are produced by the complexity of examination methodology. First, the candidates must provide a list with options for every partial free selection examination probe (for example, the candidates with humanistic profiles, i.e. philology, social sciences, and so on can choose one of two options: Geography or History for `d` probe in the mean while candidates with realistic profiles don’t have options, the examination at `d` probe is from Mathematics, but depending on profile, graduation year, and type of study curricula, resulting 6 types of subjects of Mathematics). More, for all probes, the control key for correct options is candidate profile, graduation year and study curricula. At the beginning of the school-leaving examination period, it must displayed a list with all candidates and there options alphabetically sorted. Once we have `Bac2003` database, a SELECT command is enough:
    SELECT * FROM `candidati` WHERE `ex` LIKE '29' ORDER BY`nume` ASC
    To format data on page, following script additions in PHP program are proper: <style>.lori{text-align:center;font: Bold 8pt. Times New Roman;}</style> <br clear=all style='mso-special-character:line-break; page-break-before:always'> where style are used to display data in a table and page break are inserted after n=20 candidates. For the first day of school-leaving examination (SLE), a list with all candidates which must sustain `a` eliminatory probe must be provided, in same alphabetically order for time scheduling and room repartitions:
    SELECT `id`, `nume`, `ex`, `sc`, `abs`, `pg`, `pl`, `pa` FROM `candidati` WHERE `ex` LIKE '29' AND `ra` LIKE '' ORDER BY `nume` ASC
    Also, for verification, a list with candidates that has `a` probe recognized prom previous sessions, but sorter first by school and second by name is very useful:
    SELECT `id`, `nume`, `ex`, `sc`, `abs`, `pg`, `pl`, `pa`, `ra`, `ca` FROM `candidati` WHERE `ex` LIKE '29' AND `ra` LIKE 'd' ORDER BY `sc` ASC, `nume` ASC
    At the end of `a` probe, after the updating of the database, a list with admitted candidates is:
    SELECT `id`, `nume`, `ex`, `sc`, `abs`, `pg`, `pl`, `pa`, `ra`, `ca` FROM `candidati` WHERE `ex` LIKE '29' AND `ra` LIKE '' AND `ca` LIKE 'adm.' ORDER BY `nume`
    The not present candidates are:
    SELECT `id`, `nume`, `ex`, `sc`, `abs`, `pg`, `pl`, `pa`, `ra`, `ca` FROM `candidati` WHERE `ex` LIKE '29' AND `ra` LIKE '' AND `ca` LIKE 'nep.' ORDER BY `nume`
    The not admitted candidates are:
    SELECT `id`, `nume`, `ex`, `sc`, `abs`, `pg`, `pl`, `pa`, `ra`, `ca` FROM `candidati` WHERE `ex` LIKE '29' AND `ra` LIKE '' AND `ca` LIKE 'res.' ORDER BY `nume`
    Before the beginning of `b` probe, a list with all candidates that must sustain this probe, ordered by discipline and by name must be generated:
    SELECT `id`, `nume`, `ex`, `sc`, `abs`, `pg`, `pl`, `pb` FROM `candidati` WHERE `ex` LIKE '29' AND `ca` LIKE 'adm.' AND `rb` LIKE '' ORDER BY `pb`, `nume`
    For verifications, the candidates with `b` probe recognized from previous sessions are obtained from:
    SELECT `id`, `nume`, `ex`, `sc`, `abs`, `pg`, `pl`, `pb`, `rb`, `cb` FROM `candidati` WHERE `ex` LIKE '29' AND `rb` LIKE 'd' ORDER BY `nume` ASC
    After updating the database with `b` probe results, the list of all candidates that can sustain following probes is:
    SELECT * FROM `candidati` WHERE `ex` LIKE '29' AND `ca` LIKE 'adm.' AND `cb` LIKE 'adm.' ORDER BY`nume` ASC
    For candidates with mother tongue studies the `c` probe is necessary and eliminatory:
    SELECT `id`, `nume`, `ex`, `sc`, `abs`, `pg`, `pl`, `pc` FROM `candidati` WHERE `ex` LIKE '29' AND `pc` NOT LIKE '' AND `rc` LIKE '' ORDER BY `pc`, `nume`
    The candidates with recognized results at `c` probe from previous sessions are:
    SELECT `id`, `nume`, `ex`, `sc`, `abs`, `pg`, `pl`, `pc`, `rc`, `cc` FROM `candidati` WHERE `ex` LIKE '29' AND `pc` NOT LIKE '' AND `rc` LIKE 'd' ORDER BY `pc` ASC, `nume` ASC
    After the finishing of viva voice eliminatory probes, all accepted candidates for following probes are:
    SELECT * FROM `candidati` WHERE `ex` LIKE '29' AND `ca` LIKE 'adm.' AND `cb` LIKE 'adm.' AND (`cc` LIKE 'adm.' OR `pc` LIKE '') ORDER BY `nume` ASC
    Concordant with `a`, `b` and `c` results and previous sessions results, the list of candidates for `as` probe are:
    SELECT `id`, `nume`, `ex`, `sc`, `abs`, `pg`, `pl`, `pas` FROM `candidati` WHERE `ex` LIKE '29' AND `ca` LIKE 'adm.' AND `cb` LIKE 'adm.' AND (`cc` LIKE 'adm.' OR`pc` LIKE '') AND `ra` LIKE '' ORDER BY`nume` ASC
    Room’s repartition of candidates for `as` probe is obtained from limit clause:
    SELECT `id`, `nume`, `ex`, `sc`, `abs`, `pg`, `pl`, `pas` FROM `candidati` WHERE `ex` LIKE '29' AND `ca` LIKE 'adm.' AND `cb` LIKE 'adm.' AND (`cc` LIKE 'adm.' OR `pc` LIKE '') AND `ra` LIKE '' ORDER BY`pg`, `nume` LIMIT 0,20
    and so on (LIMIT20, 20, ..) until all candidates are fetched (for rooms by 20 places). For all following probes, the list of disciplines for which exam subjects are necessary are required. The list for `cs` disciplines is:
    SELECT DISTINCT`pcs` FROM `candidati` WHERE `ex` LIKE '29' AND `ca` LIKE 'adm.' AND `cb` LIKE 'adm.' AND (`cc` LIKE 'adm.' OR `pc` LIKE '') AND `rcs` LIKE '' AND `pcs` NOT LIKE '' ORDER BY`pcs`
    Analogue, for `d`, `f` and `e` probe disciplines lists are obtained from previous select phrase by replacing of `cs` with `d`, `e` and `f` respectively. Room’s repartitions for `cs` mother tongue writes probe:
    SELECT `id`, `nume`, `ex`, `sc`, `abs`, `pg`, `pl`, `pcs` FROM `candidati` WHERE `ex` LIKE '29' AND `ca` LIKE 'adm.' AND `cb` LIKE 'adm.' AND `cc` LIKE 'adm.' AND `rcs` LIKE '' ORDER BY `pl` ASC, `nume` ASC
    Candidates with `cs` recognized probe:
    SELECT `id`, `nume`, `ex`, `sc`, `abs`, `pg`, `pl`, `pcs`, `rcs`, `ncs` FROM `candidati` WHERE `ex` LIKE '29' AND `ca` LIKE 'adm.' AND `cb` LIKE 'adm.' AND `cc` LIKE 'adm.' AND `rc` LIKE 'd' ORDER BY`pl` ASC, `nume` ASC
    Candidates for `d` probe:
    SELECT `id`, `nume`, `ex`, `sc`, `abs`, `pg`, `pl`, `pd` FROM `candidati` WHERE `ex` LIKE '29' AND `ca` LIKE 'adm.' AND `cb` LIKE 'adm.' AND (`cc` LIKE 'adm.' OR `pc` LIKE '') AND `rd` LIKE '' ORDER BY `pd` ASC, `pg` ASC, `nume` ASC
    Candidates for `f` probe are split in two, because 'EdF' and 'EdF-v' probes (sport) are practically:
    SELECT `id`, `nume`, `ex`, `sc`, `abs`, `pg`, `pl`, `pf` FROM `candidati` WHERE `ex` LIKE '29' AND `ca` LIKE 'adm.' AND `cb` LIKE 'adm.' AND (`cc` LIKE 'adm.' OR `pc` LIKE '') AND (`pf` LIKE 'EdF%') AND `rf` LIKE '' ORDER BY `pf` ASC, `pg` ASC, `nume` ASC
    for sport and for all others are replaced (`pf` LIKE 'EdF%') clause with (`pf` NOT LIKE 'EdF%').
    For `e` probe, is possible to have practical tests, such as in our case. The practical disciplines are 'StFor' and 'Instr' so the previous select must be updated as follows:
  • for 'StFor' (picture): `f` replaced with `e` in `pf` and `rf` and 'EdF%' replaced with 'StFor';
  • for 'Instr' (music): `f` replaced with `e` in `pf` and `rf` and 'EdF%' replaced with 'Instr';
  • for all others: `f` replaced with `e` in `pf` and `rf` and (`pf` NOT LIKE 'EdF%') replaced with ((`pf` NOT LIKE 'StFor') OR (`pf` NOT LIKE 'Instr'));

    Implementation, Results and Discussion
    To make required lists, all that we have to do is to submit queries to the SQL server (in our case MySQL) and to fetch the results. One solution is to create a drop down list with all SQL phrases for selection and more, for room repartition to create two input boxes for start value and limit value from LIMIT clause. Probably is the best option. Because the program was created and completed in school-leaving examination period from 17 august to 29 august 2003 and the real situation was not known before the designed interface is adaptive one that allow user to construct SQL phrases. Note that is not a perfect one, because do not consider the `c` mother tongue possibly eliminated candidates (conditional OR in SELECT). Anyway, for a small number of mother tongue candidates it works perfectly. The database management was makes on PHPTriad [4] under Windows XP, because the unavailability of internet connection, and after the school-leaving examination the database and the programs was ported into a FreeBSD operating system with Apache web server. The entry can be found at the address:
    http://vl.academicdirect.org/admittance_app/Bac2003_BV/.
    If we enter into a phpMyAdmin5 web interface, database structure is displayed as in figure 2. The action allowed (fig. 2) is to select the EC (C.E. noted in figure) and the action (select, update, add schools, add candidates, add profile, make means). For select action, a menu like in fig. 3 is displayed. The entry interface is password restricted, as we described in figure 3. First list is field list (<select multiple name='fields[]' size=' $ cols_n'>) a header message follow, then filter list (up to 5 filters), then ordering criterions (up to 5, order is strict), a footer message, a drop down list to draw supplementary columns (from 0 to 4) in resulted table for supplementary information like time scheduling, room, marks, exam paper serial number.

    Figure 2. phpMyAdmin web interface to database structure

    Figure 3. Bac2003 entry point

    Figure 4. SELECT phrase construction
    Both filter and order drop down lists contain all fields from `candidati` table and was retrieved using another SQL phrases:
    SHOW COLUMS FROM `candidati`
    and
    SHOW TABLES FROM `Bac2003`
    The update interface is designed as in fig. 5:

    Figure 5. UPDATE phrase construction

    Final Reports
    At the end of school-leaving examination period, the final results must be provided. A registration book leaf with all candidates ordered by name containing probe results is the final document of examination. The document it contain also average mean of the candidates for the candidates which obtain at least minimum requirement marks for all probes. To succeed the school-leaving examination the average mean must be at least 6.00. More, a qualifying label are assigned to every candidate, one from `reusit` (for succeeded school-leaving examination candidates), `respins` (for not succeeded school-leaving examination candidates) and `neprezentat` (for not present candidates at one or more probes). The average mean and qualification label require a program to computes. A program called media.php was build. The program manages also the registration book leaf extracts by provenience schools (for diplomas elaboration). So, the select phrase are again from user interface constructed (fig. 6).

    Figure 6. Means and qualifying labels presetting interface
    The SELECT phrase is constructing dependent of the filter (page break filter) selection:
    SELECT * FROM `candidati` ORDER BY $sc `nume`
    ASC
    where $sc can have a empty value or $sc="`sc` ASC, ".
    MySQL query and fetch sequence is:
    $q=mysql_query($query);
    while($r=mysql_fetch_array($q)){ ...}
    
    where $query it contain the SELECT phrase as string, $q is MySQL handler for fetching management and $r is an object oriented array with elements constructed from MySQL database. Every fetching produce a updating of $r values, that is $r['name'] is candidate name, $r['sc'] is provenience school and so on. A variable called $media was used to store the average mean value and a variable called $c was used to store qualifying label. To avoid the errors produced by floating point approximations and to display the mean with first two decimals some artifices are applied:
    $media=($r['nas']+$r['ncs']+$r['nd']+$r['ne']+$r['nf'])*100;
    //collect 2 decimals in integer part of the sum
    if ($r['ncs'])
    	$media /=5;
    else 
    	$media /=4;
    //make average mean from sum
    if ( $r['nas'] < 5) 
    	$media = 0;
    if ( ( $r['pcs'] ) && ( $r['ncs'] < 5 ) ) 
    	$media = 0;
    if ( $r['nd'] < 5 ) 
    	$media = 0;
    if ( $r['ne'] < 5 ) 
    	$media = 0;
    if ( $r['nf'] < 5 ) 
    	$media = 0;
    //mean are not applied for marks under 5.00 
    $media = (string) $media; //string forced conversion (to “freeze” the value)
    $media = substr($media,0,strpos($media,"."));
    //extract the integer part 
    $media = (int) $media;
    //integer forced conversion (to display as example 9.1 in place of 9.10) 
    $c = "reusit";
    //hypothesis
    while ( $c == "reusit" ) {
    	//proper qualification label assignment, false cycle
    	if ( $r['ca'] == 'nep.' ) { 
    		$c = "neprezentat";
    		break; 
    	}
    	if( $r['ca'] == 'res.' ) { 
    		$c = "respins";
    		break; 
    	}
    	if( $r['cb'] == 'nep.' ){
    		$c = "neprezentat";
    		break;
    	}
    	if($r['cb'] == 'res.'){ 
    		$c = "respins";
    		break;
    	}
    	if( !$r['nas'] ){ 
    		$c = "neprezentat";
    		break;
    	}
    	//the marks for `pas` probe are published after the last probe
    	if (( $r['cc'] )&&( !$r['ncs'] )){ 
    		$c="neprezentat";
    		break;
    	}
    	//the marks for `pcs` probe are published after the last probe
    	if ( !$r['nd'] ) { 
    		$c="neprezentat";
    		break;
    	}
    	if ($r['nd'] < 5 ) { 
    		$c="respins";
    		break;
    	}
    	if ( !$r['nf'] ) { 
    		$c="neprezentat";
    		break;
    	}
    	if ( $r['nf'] < 5 ) { 
    		$c="respins";
    		break;
    	}
    	if ( !$r['ne'] ) {
    		$c="neprezentat";
    		break;
    	}
    	if ( $r['ne'] < 5 ) { 
    		$c="respins";
    		break;
    	}
    	if ( $r['nas'] < 5 ) { 
    		$c="respins";
    		break;
    	}
    	if ( $r['cc'] )&&($r['ncs'] < 5 ) { 
    		$c="respins";
    		break;
    	}
    	//the maks results for `pas` and `pcs` probes
    	if ( $media < 600 ) {
    		$c = "respins";
    		break;
    	}
    }
    //the end of qualification label assignment
    if ( $media ) {
    	$media = ( (float) $media ) / 100.0;
    	$media = sprintf("%2.2f",$media);
    } else { 
    	$media = "-";
    }
    //the end of media preparation for printing
    
    If we want to put a automat script for printer driver starting, all that we have to do is to write a code into our page: <script> if (typeof(window.print) != 'undefined') { window.print(); </script> and then the printer is launched automatically (fig. 6):

    Figure 6. SQL execution from phpMyAdmin interface and printing driver starting

    Conclusions
    The school-leaving examination procedure is complex one, with a large set of variants, cases and possibilities. It requires that at least one member of examination committee that has good qualification in computer using and database management. The presented application uses hardly the performances of SQL kernel from MySQL database server for multiple filters, multiple sorting and specific fetching of the records. The PHP implementation of the programs shortens the implementation time at the most and makes an easy to run and update applications. The using of SQL phrases in this paper instead of programs presentation was didactical scope, to understand the nature of the problem and solution.

    Acknowledgments
    Thanks from first author to Mr. Prof. Aurel TĂRĂU, from Bihor School Inspectorate District, Romania for advices and help in his first school-leaving examination presidency in June 2003.

    References
    [1]. Ecaterina ANDRONESCU (Ministry), Annex no. 2 at MEC no. 4328 Directive from 30.08.2002 about Calendar and Methodology of Organizing and Unfolding of School-leaving Examination – 2003, http://vl.academicdirect.org/admittance_app/Bac2003_BV/lisbac03.pdf
    2. http://www.zend.com
    3. http://www.mysql.org
    4. http://sourceforge.net/projects/phptriad
    5. http://www.phpmyadmin.net
    Issue 02, p. 37-52
    SQL by Example. 2. PHP and MySQL Web Application based on Tanner-Whitehouse Standard
    Sorana BOLBOACĂa, Lorentz JÄNTSCHIb, Andrei ACHIMAŞ CADARIUa
    a Iuliu Haţieganu Medicine and Pharmacy University, Cluj-Napoca, Romania
    b Technical University of Cluj-Napoca, Romania, http://lori.academicdirect.ro

    Abstract
    In pediatrics, skeletal maturity, also called “bone age”, an expression of biological maturity of a child, is an important quantitative measure for the clinical diagnosis of endocrinological problems and growth disorders. Bone age is also used in monitoring children with hormone therapy. Skeletal maturity may be assessed by analysis of the ossification centers of the hand, foot, knee, elbow or pelvis but most often used is the hand. Skeletal maturity diagnosis is usually based on a visual comparison of a left-hand wrist radiograph with atlas patterns and the most common method used is the Tanner-Whitehouse method. With the help of PHP and MySQL a computer-assisted software we developed, based on Tanner-Whitehouse method, for bone age assessment of children and young people. The program is a client-server one and all data are saved into a database server. The program (1) display control radiographies, schematic drawings and specifications for every stage of hand bones until maturity stage, (2) allow user to select a maturity stage for every bone, (3) save and query personal data of patients, (4) save and query consultations and (5) make consultation reports. URL address: http://vl.academicdirect.ro/medical_informatics/bone_age/v1.2/.
    Keywords:
    PHP, MySQL, Web application, Tanner-Whitehouse method

    Introduction
    The faster growing of the Internet in the last decades determinates a similar growth in services that are accessible over the Web in all day-to-day activities domains. The medical world has been included in this transformation and medical sites and application are available presently, covering many specialties including radiology [1]. Nowadays, we can talk inclusive about evidence-based medicine Web sites, which provide a large amount of medical knowledge, more of them organized in medical databases [2]. In pediatrics, skeletal maturity, an expression of biological maturity of a child, is an important quantitative measure for the clinical diagnosis of endocrinological problems and growth disorders. Bone age is also used in monitoring children with hormone therapy. Skeletal maturity may be assessed by analysis of the ossification centers of the hand, foot, knee, elbow or pelvis but most often used is the hand. For the assessment of child skeletal maturity, radiologists use a hand and wrist radiography. The assessment is realized by assessing the ossification and maturation of the epiphysis of the hands and wrists comparing them with standards radiographs and standards descriptions. There are al least two methods of evaluating wrist and hand bone age represented by the Tanner-Whitehouse method and the Greulich-Pyle method [3,4]. In the Greulich-Pyle method the hand radiograph as hole is compared with some standard hand radiographs [5]. The Tanner-Whitehouse method [6] involves the examination of 20 bones of the hand and wrist and the assignment of a stage to each bone dependent on the attainment of clearly described bone-specific maturity indicators. In accordance with Tanner-Whitehouse tables, every bone stage has a numerical score, and the scores are summed for each individual to give a maturity score on a scale of 0 to 1000. Using the Tanner-Whitehouse tables, maturity scores are converted to bone age for each individual and the relative maturation can be assessed by comparison of the bone age with the individual’s chronological age. The main idea what leads to program design was to create a interactive program easy to use, with minimum requirements that allow to manage most of the activities relative to skeletal maturity analysis. The first question that requires an answer was “We want a server-based application or client based application?” We decided that we want a server-based application because we need to store all data in one database. Another question that required an answers grow up “We want a server side application or a client side application?” If we want a server, side application, to minimize the using of client computer, then requires a Web server installed. The analysis continues to choose proper operating system of server. Platform independent and free software is a real alternative to avoid all problems concerning license and portability [7]. Once we have an operating system installed, the next step is to choose a proper programming language for software developing. PHP comes with the best offer. The advantage of PHP programs consist in his portability under most of operating system platforms and internal compilation feature that do not necessity the compilation “by hand” from the user. The disadvantage can derive from the same internal compilation that consumes supplementary time in execution. However, this disadvantage can be partially eliminated through installing a PHP proxy that store compiled programs and next execution of the unmodified program use this compiled binary. In terms of program developing PHP is easy to use, the language borrow syntax from C, Pascal, Basic and Perl, but do not borrow the complex declaration syntax from them. The pointer mechanism is absolute. Thus, a variable used as a string, can be exploited as an integer or real if the value represent a number such that. Modular programming, recursively and graphics are at home! Module loading of compiled programs in other languages and execution of binary programs is also available. System services such as mail service are easy to exploit in PHP scripts. A very easy mechanism to link PHP scripts to HTML scripts make PHP language to be one of the best. Shell executing commands make PHP a useful platform for system administration (PhpSysInfo, WebAdmin, PhpMyAdmin, PhpPgAdmin). Class constructing is also available and PHP posses a strong library of database connectivity. MySQL database server is the best choice to manage patient and consultation data and has a very easy to use syntax, based on SQL specifications. SQL commands can be sends to the database server through PHP programs using MySQL functions. The output of the PHP program is in HTML style and can be viewed by any web client (Microsoft Internet Explorer, Mozzilla, Opera, Netscape, Konkueror). There are many computer program all over the world, most of them using the pattern recognition [8] with algorithms based on Tanner-Whitehouse methods [9, 10] or using some algorithms based on carpal bones score [11]. All these program are developed in countries where the radiological devices have possibilities to storing digital image because the pattern recognition suppose to work with an high quality right hand radiographies in order to fit correctly the image with the standard image. Most of the radiological devices used in Pediatric Hospitals in Romania did not have the potential of storages digital imaging of the hand and the assessment of skeletal maturity is performed using manually classic x-rays assessment. In order to help pediatric radiologists we developed, based on Tanner-Whitehouse standards, working with PHP and MySQL, a Web application which to facilitate bone age assessment.

    Implementation Methods
    In order to develop an application which to can be used on a stand-alone computer as well as on a Web server we choose to work with Apache, PHP and MySQL, technologies that allow to create powerful and fast database Web site applications. Apache is the most popular Web server and is generally considered to be more stable than other servers. It is usually installed on UNIX and Linux systems, but is also available for Microsoft Windows platform. [12] PHP has the unique distinction of being an open-source server-side scripting language that can be integrating it in HTML. PHP started as a small project to improve a home page and grew into one of the world’s most powerful server-side script [13]. Databases applications have been around for over 30 years, and many have been deployed using network technology long before the web existed. In order to develop an interactive web application we choose to work with MySQL [14], a perfect database management system for storing and sharing information directly from a Website.

    MySQL Database Design
    MySQL is a popular database and its speed and small size make it ideal for a Web application. It also is an open source, which means free under the open source GPL license. Another advantage of the MySQl is that can run on many operating systems as Windows, Linux, Mac O5, most varieties of Unix (Solaris, AIX, DEC Unix), FreeBSD, OS/2, and others. MySQL is a secure system that allows some authorizations or all database privileges (the privilege to create a database or to delete data that in our application is attribute to the administrator) to specific users or group of users. The present application uses a database named `TW2`. The database contains five tables named `Patients`, `Consultations`, `Physicians`, `Bones`, and `BoneStages` (see fig. 1).

    Fig. 1. Database structure and connectivity
    `Patients` table contains patient general information’s like: personal no., second name, first name, sex, date of birth and place of birth. The `Patients` table has two unique fields, one is represented by the `IdPatient` that is an auto-increment field and the second filed is represented by the `PersonalNo`, a thirteen character number unique for every person. The second table is named `Consultations` and stores consultations information data represented by date of consultation, patient’s weight and height, patient diagnostic, the bones that were selected in the skeletal maturity assessment, real score, maturity score and bone age. The `Physicians` table contained the next information: name of the physicians and the password. The password field is an encrypted one. The last two tables, `Bones` and `BoneStages` were created in order to store information necessary to compute skeletal maturity score. These two tables, are queried when bone age is computed and they retrieved the bone names, bone stages links to photos and bone stages specifications. The structure of the relationship is based on tables `Patients` (primary table), `Physicians` (primary table) and `Consultations` where the filed `PersonalNo` is a foreign key from `Patients` and `Physicians` is foreign key from `Physicians` (see fig. 1).

    PHP and MySQL Programming
    We used the PHP language to write the program in order to perform the application tasks because we consider that the PHP is flexible enough to perform the task we need for our application. Our application has 10 PHP programs: stiluri.php, password.php, index.php, info.php, info_n.php, info_cons.php, patient.php, NewPatient.php, SaveConsultation.php, tw2.php. There are two program that are used in all the rest of the programs: stiluri.php and password.php. stiluri.php is an additional program where we defined some styles that are used in the program. This allows us to reduce the number of rows in programming. The next example is a style used in index.php, info.php, info_n.php, info_cons.php, patient.php, NewPatient.php, SaveConsultation.php, tw2.php: .style2 { font: 13pt. Times New Roman; color: #800000; } The connection to the TW2 database is realized through the password.php program. The program is a simple one and has just five rows. Through this program store the information for connection with the TW2 database, specified the host server, the user and the password in the variables called $host, $user and $password. The first page application program is named index.php and allows us to choose where to perform the application (localhost or Internet) and what kind consultation we want to perform. If we have a new patient, we will pick the Insert option from Option drop down list. If we want to perform a new consultation to an older patient, we will choose the Select option from Option drop down list. When we insert a new patient data or retrieve patient’s information from the database, the application will use the patient.php program. The new patient registration is made using a SQL command:
    INSERT INTO `Patients` VALUES ('','<value>', ..., '<value>')
    
    where first value is empty one and represent `IdPatient`, which is a numeric field primary key with auto increment and is incremented automatically by MySQL database server. If the patient already exists, another registration is not allowed for the same `PersonalNo` filed. If the patient is already registered into our database, we will choose the Select option. When the patient information’s are registered, the NewPatient.php program gives us a confirmation of registered data into `Patients` table from `TW2` database. If there are, another patient registered with the same `PersonalNo`, the registration will not be possible because the script did not allow this and the application answer will be given by the following program sequence:
    if($r=mysql_fetch_array($t)){
    	echo("Patient with Personal No: ".$HTTP_POST_VARS['PersonalNo']);
    	echo(" already exist!<BR>");
    	echo("Another registration is not possible.<BR>");
    	echo("If you want to make a consultation please click here:");
    	echo(" <A HRef='index.php'>New Consultation</A>");
    	exit();
    }
    
    If we know that the patient was already registered into the TW2 database, we will choose the Select option. Patient selection is made also through a SQL command:
    SELECT `PersonalNo` FROM `Patients` WHERE `PersonalNo` LIKE '$HTTP_POST_VARS['PersonalNo']'
    
    An UPDATE command is also possible to modify the patient information:
    UPDATE `Patients` SET `PersonalNo`='<value>', `SecondName`='<value>', ...,
    	WHERE `id`='$HTTP_POST_VARS['PersonalNo']'
    
    Performing the Tanner-Whitehouse test is allows using the tw2.php program. First is necessary to select the patient. Into this window, we can see again the patient data that are tacked out from the `Patients` using the next statement:
    document.write("<BR><hr size=7 color=#191970 width=70%><BR>");
    document.write("<center><table width=50% border=1><tr>");
    document.write("<td valign=middle align=center>Sex:<BR>");
    <?
    	echo("document.write(\"<input type='text' readonly='true' ");
    	echo("name='Sex' size='1' value='".strtoupper($r['Sex'])."'>\");");
    ?>
    document.write("<td valign=middle align=right><table border=0>");
    document.write("<tr><td valign=middle align=right>");
    document.write("Personal No:");
    document.write("<td valign=middle align=left>");
    <?
    	echo("document.write(\"<input type='text' name='CNP' ");
    	echo("size='13' value='".$r['PersonalNo']."' readonly='true'><BR>\");");
    ?>
    
    The script which described the computational part of the program was described in the Client-Server Implementation of Bone Age Assessment Calculations paper[15]. The consultations data are saved into the `Consultation` table from `TW2` database. The message of successful registration of the data is script into the SaveConsultations.php program. Inserting a new patient, update the patient information and performing the Tanner-Whitehouse test is allows just for the physicians who are inserted into `Physicians` table from `TW2` database. Interrogating the database about patient and consultation is performing using the info.php program. We can interrogate the database about patient information if we choose the Consultations option from Option drop down list, or to obtain a report if we pick up the Report option. The patient consultation information’s are obtain using the info_n.php program. We can choose to create a complex report or a simple one using the next statement:
  • Do you wish to display bones?
    <select name='bones' class='style2'>
    	<option value='1'>yes
    	<option value='2' selected>no
    </select>
    
  • Do you wish to display real TW2 score?
    <select name='tw2score' class='style2'>
    	<option value='1'>yes
    	<option value='2' selected>no
    </select>
    
  • Do you wish to display maturity score?
    <select name='matsc' class='style2'>
    	<option value='1'>yes <
    	option value='2' selected>no
    </select>
    
    The Report option allow to create a report with all the patient data from the TW2 database and this script is in info_cons.php program.

    Implementation and Results
    Using PHP ad MySQL, a program that offers possibilities of an interactive proceeding for the computer-assisted bone age assessment, was developed. The program can run on a stand-alone computer or on a Web server. The computer is necessary to have installed a phptriad program [13], program which can be freely download from the Internet and an HTML 4.0 web browser (like Internet Explorer 4.0, Netscape 4.7, Mozzilla, Opera). The program is also hosted in educational network of Technical University of Cluj-Napoca, on a Free BSD Unix based server (5.0 DPI software version). The server has installed an Apache web server (1.3.26 software version) and the MySQL database server (3.23.52 software version) is installed and running on it. The program can be tested at the next address:
    http://vl.academicdirect.ro/medical_informatics/bone_age.
    The application has a friendly interface and can be used by any radiologists who know how to use a Web browser (see fig. 2). We can say that the program has two important segments. First, is represented by the part that allows radiologist to insert patient data (fig. 2) and compute maturity score (see fig. 3). The insert patient information part of the program has some fields where the user can choose the information from a drop list. These fields are represented by the patient’s sex, patient’s place of residence and place of birth (fig. 4). We choose these options in order to reduce the time need to fill these fields.

    Fig 2. The inserting patient information interface


    Fig. 3. The maturity score assessment interface

    Fig. 4. The place of residence drop down list In order to compute a patient bone age, first is necessary to insert the patient information data into the database and after that to select the required patient. The patient is selected from a drop list. The user can see the patient second name, first name and personal no. In the list the patient are orders by the second name in ascending alphabetical order (see fig. 5).


    Fig. 5. Selecting the patient in order to compute skeletal maturity
    After the user select a patient, a new windows is open and the radiologist, using some radio buttons, must to choose a maturity stage for every 20 bones used in Tanner-Whitehouse method. For every bone the program, allow to choose just a single stage. At the end of the page, we can see a table with the patient information data. It is also necessary to fill in this table other patient information like date of consultation, diagnosis, weight and height. This information will be saved in the `consultations` table from the `TW2` database. The second part of the program allows users to interrogate the databases in order to find a consultation report (see fig. 6) or a general report.

    Fig. 6. The consultation report interface
    When we create the consultation report, we can say to the program to give us all the patient data or we can choose to bring us the patient data from the `Patients` table and just date of consultation, diagnosis, weight, height, and bone age from the `Consultations` table. The consultation reports can be printed or can be saving on a floppy disk in order to send a consultation results to the specialist or to the family doctor. A pediatric radiologist who works in First Pediatric Hospital in Cluj-Napoca tested the program. The program has some advantages: · The time need to obtain final bone age is significantly reduce to 3-5 minute in comparison with the paper evaluation when the radiologist need 8-10 minutes; · The program allows a reduction of computational errors in both score and bone age that often occurs using paper as a support for evaluation; · All the data are saving in a database, and can be interrogate any time. The performance of the computerized procedure depends on the interaction user and on the familiarization of the radiologists with a Web browser. On the other hand, the program performance also depends on the radiologist’s experiences, experience which is essential.

    Discussions
    Nowadays, Internet offers some new opportunities in medical field. Two of them are more important: presenting medical information and database medical application. There are some portals which intend to collect significant information about medical problems [16] or guide developed in order to help physicians to find biomedical resources on Internet, such as HONselect [17], OMNI [18], CISMeF [19] and Medical Matrix [20]. All these sites provide free access to high quality data by filtering relevant information. We decided to use MySQl and PHP, the dynamic duo, because MySQL provides the database part and PHP provides the application part of the Web database application. As a data based management system, MySQL can store very complex information. As a scripting language, PHP can perform complicated manipulation of data. MySQL and PHP as a pair have several advantages:
  • They are free;
  • They are Web-oriented.
    Both were designed specifically for use on Web sites and have a set of features that are focused on building dynamic Web sites:
  • They are easy to use because were designed for the purpose of getting a Web site up quickly;
  • They are fast.
    So MySQL, so PHP were designed with speed as a major goal. Together they provide one of the fastest ways to deliver dynamic Web pages to users.
  • They communicate well with one another. PHP was built-in features for communication with MySQL;
  • A wide base of support is available for both. There are a lot of people available to help, including on e-mail discussion lists, people that have experience using MySQL and PHP together;
  • They are customizable. MySQL and PHP are open source which allowing programmers to modify the PHP and MySQL software in order to fit to some specific environments.
    Our project is intended to serve more specialized needs of pediatric radiologists who work with not so sophisticated radiological devices to assess easily child bone age. The aim of the project was to allow the pediatric radiologists to introduce some general data of the patient into a database, to compute the bone age for the child and to perform interrogations on database in order to obtain reports with the actual and previous examinations. The application can be use by the resident of radiology which perform the pediatric radiology probation and of course by the pediatric radiologists in day-by-day work. The program can be extended in order to compute RUS bone maturity score – this score use just radius, ulna and finger bones, and/or Carpal bone maturity score – use only carpal bones. Can also be developing an automated system of bone age maturity evaluation applied on the base of the Tanner-Whitehouse method but for this is necessary first to have the proper radiological devices in the Pediatric Hospitals.

    Conclusions
    With the help of PHP and MySQL a computer-assisted software was developed, based on Tanner-Whitehouse method, for bone age assessment of children and young people. The application has a friendly interface and offers a nice environment for skeletal maturity assessments. The program allows a significantly reduction of time need to obtain final bone age and a reduction of computational errors in both score and bone age, errors that often occurs when radiologists used paper as a support for evaluation. Other advantages of this application is represented by the possibilities of storing patients information as well as patient consultations data, information that can be easily find again when the patient to the seconds or third consultation. The advantage offer by the web application is huge. If, for example we consult a patient into a hospital in Cluj, patient who has previous consulted in another hospital in Romania and these two hospital register the patient data into the same TW2 server database it will be so easy to find the previous consultations data. The performance of the computerized procedure depends on the interaction user and on the familiarization of the radiologists with a Web browser. On the other hand, the program performance also depends on the radiologist’s experiences, experience which is essential.

    Acknowledgement
    The authors thank to Dr. Carmencita Deneş for her valuable assistance with the hand and wrist x-rays radiography skeletal maturity experience.

    References
    [1] Rolland Y., Bousquet C., Pouliquen B., Le Beux P., Fresnel A., Duvauferrier R.: Radiology on Internet: advice in consulting websites and evaluating their quality. Eur. Radiol. 2000; 10: 859-866.
    [2] Delvenne Catherine, Pasleau F. Organising access to Evidence-Based Medicine resources on the Web. ELSVIER. 2003; 71: 1-10.
    [3] Milner G.R., Levick R.K., Kay R. Assessment of bone age: a comparison of the Greulich and Plye, and Tanner and Whitehouse methods. Clin. Radiol. 1986; 37: 119-212.
    [4] Frische H., Riedl S., Waldhör T. Computer-aided estimation of skeletal age and comparison with bone age evaluations by the method of Greulic-Pyle and Tanner-Whitehouse. Pediatr. Radiol. 1996; 26: 226-31.
    [5] Greulich W.W., Pyle S.I. Radiographic atlas of skeletal development of the hand-wrist. 2nd edition. Carlifonia. Stanford University Press, 1959.
    [6] Tanner J. et all. Assessment of Skeletal Maturity and Prediction of the Adult Height (TW2 Method). London/New York, Academic Press, 1983.
    [7] Lorentz JÄNTSCHI, Free Software Development. 1. Fitting Statistical Regressions, Leonardo Journal of Sciences, Vol. 1(2002), p. 31-52, ISSN 1583-0233, http://ljs.utcluj.ro.
    [8] Meindert Niemeijer, Casper Maas, Bram van Ginneken. Automanic skeletal age assessment. (WWW page) http://www.isi.uu.nl/People/Meindert/
    [9] Dickhaus H., Habich R., Wastl W., Schőnberg. D. A computer based system for skeletal maturity assessment. Medical signal and image processing. 13:11-20.
    [10] Cabello A. Suanes., Esrtada R. Caňete. sistema Automatizo de evaluación de ka maduratción ósea aplicado al método Tanner-Whitehouse 2. Anales Espanoles de Pediatria. 1999; 50(2): 134-139.
    [11] Bo-Chun Fan, Chi-Wen Hsieh, Tai-Lang Jong, Chui-Mei Tiu. Automatic Bone Age Estimation Based on Carpal-bone Inage – A Preliminary Report. Chin Med J (Taipei) 2001; 64: 203-208.
    [12] Apache Software Foundation (WWW site): http://www.apache.org
    [13] PHP (WWW site): http://www.php.net
    [14] MySQL (WWW site): http://www.mysql.com
    [15] Sorana BOLBOACĂ, Carmencita DENEŞ, Lorentz JÄNTSCHI, Andrei ACHIMAŞ-CADARIU, Free Software Development. 4. Client-Server Implementation of Bone Age Assessment Calculations, Leonardo Electronic Journal of Practices and Technologies, 2002; 2; 1-19.
    [16] Ribaric S., Todorovski L., Dimec J., Lunder T. Presentation of dermatological imaages on the Internet. Comput. Methods programs Biomed. 2001; 65:111-121.
    [17] Boyer C., Baujard V., Griesser V., Scherrer J.R. HONselect: a multilingual and intelligent search tool integrating heterogeneous Web resources. Stud. Health Technol. Inform. 2000; 77: 273-278.
    [18] Norman F. Organizing medical networked information (OMNI). Medical Informatics (Lond). 1998; 23: 43-51.
    [19] CISMeF (Catalogue et Index des Sites Médicaux Francophones), University of Rouen, France (WWW page): http://www.chu/rouen.fr/cismef/
    [20] Medical Matrix , USA (WWW page): http://www.medmatrix.org/
    Issue 02, p. 53-65
    Comprehensive Case Study of Coals from Fărcăşeşti Area
    Elena Maria PICĂ
    Technical University of Cluj-Napoca, Romania,
    empica@yahoo.com


    Abstract
    A statistical study of analysis results was made for lignite from the Fărcăşeşti area (Gorj County, Romania), exemplified for the eight characteristic properties, as moisture content (imbibitions and hygroscopic), volatile, density, sulfur, ash softening content, higher heating value and seam. Previously, the properties dependencies were investigate in pairs of two. In present study the properties was investigated using an automat processing routine for multivariate regression, available at address: http://vl.academicdirect.org/applied_statistics/linear_regression/multiple/v1.5/ The program is capable to identify multiple dependencies between given properties. Few significant results were obtained, that make possible to simplify analysis procedure of coals by reducing number of determinations and/or measured properties. All equations are made for predicting heating value Qsi from other measured properties excluding fixed carbon content Cfi. Present article is focused on identifying dependencies between Wii, Whi, Vi, Sti, Qsi, ti, ro and seam (see text). Application of the model among others at prospecting new coalfields and coal conversion, can contribute to the reduction of drilling and analysis costs.
    Keywords:
    Coal analysis, Regression models, Software implementation study.

    Introduction
    In field of statistical data processing it exist a large set of software to compute and fit the regressions, but few are free. Even for free software, another problem it appear, operating system license and portability of the software. Other questions require an answer: We want a server-based application or client based application? We want a server side application or a client side application? As example, a client side application can have disadvantage of execution on client, and dependence of processing speed by power of client machine. If we prefer this variant, a java script or visual basic script is our programming language. Under Apache, we have the possibility to execute programs already compiled in C, Fortran and Java, under Unix machines we can directly execute Perl programs, and, most important, under all operating system platforms we can execute PHP programs if we previously install PHP language and module binaries. The advantage of PHP programs consist in his portability under most of operating system platforms and internal compilation feature that do not necessity the compilation “by hand” from the user. Putting PHP programs on a web server into a data folder and executes by them using PHP module. The output of the PHP program is in HTML style and can be viewed by any web client (Microsoft Internet Explorer [1], Mozilla [2], Opera [3], Netscape [4], Konkueror [5]).

    Model Implementation
    Many statistical procedures for processing data are available [6]. Most of them offer a voluble set of possibilities and variants, but which one to consider them? That is not a easy question and the frequent answer is: that is choice of analyst [7, 8]. Data mining technology offer in this area of knowledge some answers, but not a complete answer [9]. By other hand, to interpret experiment results, data need to be well processed [10]. Modeling of structure is benefit to property predictions [11, 12]. Nonstandard statistical evaluation procedures then are helpful [13]. The design of statistical processing program is presented in another paper [14].

    Data Mining
    To characterize a coal seam the results of proximate analyses as function of depth as related to the initial sample (i), the sample for analysis (a), or anhydrous sample (anh) can be considered [15,16]. A set of measured data from Farcăseşti area was taken into statistical analysis. The probes for analysis were taken from the 64040.15 platform at different seams. The analysis results are given in table 1. All measured data from table 1 refer to the initial sample “i” and are expressed in percents (excepting the ash softening temperature, the density and the number of seam). The imbibitions moisture content is Wii, the hygroscopic moisture content is Whi, the volatile content is Vi, the fixed carbon content is Cfi, the content of total sulfur is Sti, the higher heating value is Qsi, the ash softening temperature is ti, the density is ro, and the seam is represented by a number. Table 1. Data values and Qsi predicted values
    Wii (x0,A) Whi (x1,B) Vi (x2,C) Cfi (x3,D) Sfi (x4,E) Qsi (x5,F) ti (x6,G) ro (x7,H) Seam (x8,I)
    34.4 8.1 23.4 14.7 1.03 2225 1130 1.23 16
    24.7 9.9 25.3 17.5 0.69 2529 1100 1.19 14
    27.1 7.9 20.1 12.1 0.64 1802 1250 1.39 13
    25.0 10.5 26.2 19.2 0.90 2700 1250 1.22 12
    29.0 8.4 22.1 14.6 0.95 2117 1150 1.11 10
    33.0 9.6 26.0 17.9 1.25 2641 1105 1.10 10
    28.5 9.1 25.5 18.2 1.32 2590 1120 1.25 10
    32.2 8.9 27.2 18.6 0.97 2816 1130 1.12 10
    33.3 9.6 25.0 18.6 0.93 2647 1115 1.10 10
    25.5 9.4 30.5 20.9 2.10 3043 1100 1.22 10
    30.0 8.3 21.2 14.0 1.67 2025 1105 1.13 8
    34.7 9.8 26.6 20.9 0.88 2919 1115 1.08 8
    26.9 10.7 28.5 19.8 1.63 2983 1100 1.02 8
    33.1 9.5 27.1 20.6 1.07 2949 1085 1.20 7
    34.4 9.1 26.3 18.7 1.97 2692 1125 1.28 6
    25.0 8.8 29.5 15.7 0.82 2650 1110 1.20 5.9
    27.5 10.2 26.9 19.0 1.69 2737 1120 1.13 5.1
    25.4 10.7 27.5 19.1 2.23 2741 1115 1.20 5
    The used functions for Qsi prediction are:
    f(x0,x1,x2) = x0∙34.2+x1∙168+x2∙102-2620; r = 0.978; s = 0.127
    f(x0,x1,x2,x4) = x0∙33.9+x1∙170+x2∙103-x4∙36.2-2630; r = 0.978; s = 0.124
    f(x0,x1,x2,x8) = x0∙34.3+x1∙171+x2∙107+x8∙13.1-2920; r = 0.977; s = 0.127
    f(x0,x1,x2,x4,x8) = x0∙34.3+x1∙171+x2∙107-x4∙2+x8∙13-2920; r = 0.977; s = 0.127
    f(x0,x1,x2,x6,x7,x8) = x0∙45+x1∙175+x2∙124+ x6∙2+x7∙282+x8∙5.47-6260; r = 0.952; s = 0.185
    f(x2,x3) = x2∙74.8+x3∙80.5 -770; r = 0.992; s = 0.098
    f(x0,x2,x3) = x0∙13.1+x2∙75.1+x3∙69.4-9750; r = 0.994; s = 0.066
    f(x2,x3,x4) = x2∙71.8+x3∙82.9-x4∙47.7-6740; r = 0.994; s = 0.079
    f(x0,x1,x2,x3,x4) = x0∙16.3+x1∙65.6+x2∙76.2+x3∙51.3-x4∙37.2-1330; r = 0.996; s = 0.054
    
    The Qsi functions are used for prediction. There are the predicted values: Table 2. Qsi predicted values
    f(Wii,Whi, Vi) f(Wii,Whi, Vi, Sti) f(Wii,Whi, Vi,seam) f(Wii,Whi, Vi,Sti, seam) f(Wii,Whi, Vi,ti, ro,seam) f(Vi, Cfi) f(Wii, Vi, Cfi) f(Vi, Cfi,Sti) f(Wii,Whi, Vi,Cfi,Sti)
    2304 2286 2358 2355 2347 2164 2263 2176 2261
    2469 2471 2511 2508 2377 2531 2473 2560 2522
    1684 1679 1681 1679 1847 1708 1737 1742 1759
    2671 2669 2694 2691 2911 2735 2663 2756 2714
    2037 2023 2007 2004 1969 2058 2087 2078 2091
    2773 2753 2767 2763 2748 2616 2663 2617 2691
    2485 2462 2473 2469 2469 2603 2587 2603 2559
    2751 2741 2748 2745 2795 2762 2791 2775 2769
    2682 2672 2670 2667 2658 2597 2640 2619 2667
    2942 2898 2957 2951 2957 3194 3112 3148 3020
    1963 1921 1902 1897 1788 1943 1990 1929 1975
    2926 2920 2897 2894 2938 2902 2938 2927 2945
    3005 2977 2987 2983 2932 2956 2903 2936 2937
    2872 2860 2831 2828 2842 2915 2934 2928 2915
    2768 2721 2709 2704 2830 2703 2759 2671 2718
    2722 2722 2666 2663 2694 2700 2669 2707 2678
    2778 2746 2713 2709 2729 2772 2735 2752 2749
    2851 2802 2789 2784 2806 2825 2760 2778 2778


    Results and Discussion
    The fig. 1 presents the regressions between Qsi and a function that cumulate the contributions of imbibitions and hygroscopic moisture and volatile contents by a regular linear equation. The fig. 2 presents same dependency by an origin forced regression equation. The r squared values about 0.95 indicate a very good correlation.

    Figure 1. Dependencies of Qsi by other measured data from table 1 (see also table 2)

    Figure 2. Dependencies of Qsi by other measured data from table 1 (see table 2 also)

    Figure 3. Dependencies of Qsi by other measured data from table 1 (see also table 2)
    The fig. 3 presents the regressions between Qsi and a function that cumulate the contributions of imbibitions and hygroscopic moisture and volatile contents and also the content of total sulfur by a regular linear equation. The fig. 4 presents same dependency by an origin forced regression equation. The correlation analysis shows that total sulfur content adding do not increase de accuracy of predicted higher heating value.

    Figure 4. Dependencies of Qsi by other measured data from table 1 (see also table 2)

    Figure 5. Dependencies of Qsi by other measured data from table 1 (see also table 2)
    The fig. 5 presents the regressions between Qsi and a function that cumulate the contributions of imbibitions and hygroscopic moisture and volatile contents and also the seam identification number by a regular linear equation. The fig. 6 presents same dependency by an origin forced regression equation. The correlation analysis shows that we consider the seam number do not increase significant the accuracy of predicted higher heating value.

    Figure 6. Dependencies of Qsi by other measured data from table 1 (see also table 2)

    Figure 7. Dependencies of Qsi by other measured data from table 1 (see also table 2)

    Figure 8. Dependencies of Qsi by other measured data from table 1 (see also table 2)
    The fig. 7 presents the regressions between Qsi and a function that cumulate the contributions of imbibitions and hygroscopic moisture, volatile, total sulfur contents and also the seam identification number by a regular linear equation. The fig. 8 presents same dependency by an origin forced regression equation. The correlation analysis shows prove the observations from figs. 3-6, thus the best accuracy of predicted higher heating value is obtained from contributions of imbibitions and hygroscopic moisture and volatile contents.

    Figure 9. Dependencies of Qsi by other measured data from table 1 (see also table 2)
    In the fig. 9 and 10 is presented a tries to include in higher heating value descriptor equations the ash softening temperature and the density of coal. The r value proves that the trying is uselessly.

    Figure 10. Dependencies of Qsi by other measured data from table 1 (see also table 2)
    The dependency plotted in fig. 11 considers a function that cumulates the contributions of fixed carbon and volatile contents. Apparently, the correlation analysis does not show a better correlation than previous results. But, looking at fig. 12, where are considerate also the contribution of hygroscopic moisture content, it can observe that the predictor function is comparable in power of estimation with predictor from fig. 1.

    Figure 11. Dependencies of Qsi by a Cfi based equation

    Figure 12. Dependencies of Qsi by a Cfi based equation
    Another prediction tries is depicted in fig. 13, where the contributions of volatiles, fixed carbon and total sulfur are considered. The r value proves that the trying was successful, the predictor is better than previous ones.

    Figure 13. Dependencies of Qsi by a Cfi based equation
    Last figure (fig. 14) presents also a very good correlation and is based on both fig. 1 and fig. 13 observations. The dependency includes imbibitions and hygroscopic moisture, volatile, fixed carbon and sulfur contents.

    Figure 14. Dependencies of Qsi by a Cfi based equation

    Conclusions
    The study shows the possibility of reducing number of analysis for physical and chemical parameters of coals without reducing the quality of information. The study shows the possibility of prediction of higher heating value from another measured data. From fig. 1 it result that if are available only imbibitions and hygroscopic moisture and volatile contents is proper to predict higher heating value from them. From fig. 13 it result that if are available only fixed carbon, volatile and sulfur content, is proper to predict higher heating value from them. Finally, from fig. 14 it result that if are available imbibitions and hygroscopic moisture, volatile, fixed carbon and sulfur contents, the best choice to predict the higher heating value is to consider all of them.

    References
    1. http://microsoft.com
    2. http://www.mozilla.org
    3. http://www.opera.com
    4. http://www.netscape.com
    5. http://www.konqueror.org
    6. H. Nascu, L. Jäntschi, T. Hodisan, C. Cimpoiu, G. Câmpan, Some Applications of Statistics in Analytical Chemistry, Reviews in Analytical Chemistry, Freud Publishing House, XVIII(6), 1999, 409-456.
    7. L. Jäntschi, G. Katona, M. Diudea, Modeling Molecular Properties by Cluj Indices, Commun. Math. Comput. Chem. (MATCH), 2000, 41, 151-188, ISSN 0340-6253.
    8. L. Jäntschi, H. Nascu, Numerical Description of Titration (MathCad application), International Conference on Quality Control, Automation and Robotics, May 23-25 2002, Cluj-Napoca, Romania, work published in volume "AQTR Theta 13" (ISBN 973-9357-10-3) at p. 259-262.
    9. M. Diudea, L. Jäntschi, A. Graovac, Cluj Fragmental Indices, Math/Chem/Comp'98 (The Thirteenth Dubrovnik International Course & Conference on the Interfaces among Mathematics, Chemistry and Computer Sciences), June 22-27, 1998.
    10. L. Jäntschi, M. Unguresan, Parallel processing of data. C++ Applications, Oradea University Annals, Mathematics Fascicle, 2001, VIII, 105-112, ISSN 1221-1265.
    11. L. Jäntschi, M. Unguresan, MathLab. Statistical Applications, International Conference on Quality Control, Automation and Robotics, May 23-25 2002, Cluj-Napoca, Romania, work published in volume "AQTR Theta 13" (ISBN 973-9357-10-3) at p. 194-199.
    12. L. Marta, I. G. Deac, I. Fruth, M. Zaharescu, L. Jäntschi, Superconducting Materials: Comparision Between Coprecipitation and Solid State Phase Preparation, International Conference on Science of Materials, August 20-22, 2000, Cluj-Napoca, Romania, work published in volume 2 (ISBN 973-686-058-2) at p. 627-632.
    13. C. Sârbu, L. Jäntschi, Statistic Validation and Evaluation of Analytical Methods by Comparative Studies. I. Validation of Analytical Methods using Regression Analysis (in Romanian), Revista de Chimie, Bucuresti, 49(1), 1998, 19-24, ISSN 0034-7752.
    14. Lorentz JÄNTSCHI, Automat Server Side Processing of Statistical Data, UNITECH'02 International Scientific Conference, November 21-22 2002, Gabrovo, Bulgaria, work published in volume "ISC UNITECH'02 GABROVO Proceedings" (ISBN 954-683-167-0) at p. 185-189.
    15. Blum I., Barca Fr., Chemistry and preparation of solid combustors (in Romanian), Ed. Did. Ped., Bucharest, 1966.
    16. Enache C-tin., Focşa I., Pică Elena Maria, Niac G., The Study of Lignite from the Fărcăşeşti Area, Acta Technica Napocensis, Section: Construction Machines and Materials, 36 (1993), pp.79-86.
    Issue 02, p. 66-74
    Evolution Study of Crystal Parameter for Iron Powder Subjected to Mechanical Milling
    Ioan TAUT*, George ARGHIR
    Technical University of Cluj-Napoca
    * ioantaut2002@yahoo.com

    Abstract
    In a planetary mill with balls of high energy, the experiences of milling on different time interval of iron powder were done. The iron powder with 99.9% purity was introduced in four vials, having every one on average mass of 1.750 kg, varying the number and diameter of balls. It was noticed, there is a tendency to increase accentuated the crystallographic parameter in the interval of 7.5-9 mm ball radius, it is admitted the same interval to be more efficiently on milling from point of view of evolution of crystal parameter from experimental data.
    Keywords
    Mechanical milling; Iron powder; Crystal parameter; Dislocation

    1. Introduction
    The object of process of mechanical milling in mills with balls of high energy is the disintegration of particles with the energy resulting from the moving of milling bodies. Mechanical milling includes many hardening mechanisms [1]: · the fine size of particles; · the high density of dislocation; · the high hardness by precipitation. The mechanical milling leads to obtaining of hard materials with high mechanical strength. Obtaining of phases of high hardness on precipitation, process, may introduce problems of corrosion and distortions of slipping planes. During milling the powder reacts with atmosphere of milling. During milling process, take place the transmitting the impact energy of balls to particles of powders, with implications in their morphology and hardness. An important variable of process is the development temperature during milling which results from the transformation of kinetic energy in heat and which warms the powder. The temperature may allow critics values for some powders, starting reactions or and form solid solution. Some reactions take place in solid environment if energy of impact is high enough to force the atoms to pass over the starting activation energy. In the same time the particles of powders are deformed in the same way and subjected continually to process of mixing. The powder may have a fine microstructure with nanocrystalline grains [2]. The scope of present research is the note the efficiently of milling on iron powder, varying the ball diameter.

    2. Description of Mill
    The planetary mill has 6 vials, mounted on a plate support; velocity of rotation of plate of planetary mill is np = 1200 rpm, velocity of rotation of containers is nc = -1.25 np and is produced by construction. Initial parameters are: radius of disk: R (250 mm) and radius of vials, r have a mean weight of 1.750 kg approximately. Each used vial contained a certain mass of balls: mb with a diameter D (figure 1).

    Fig. 1. Mill configuration

    3. The Experiments, Results, Discussion of Experimental Results
    The experiences took place in the planetary mill with ball of high energy, figure 1, where had been used four vials for these experiments. The vials were produced of OLC 45 steel and the balls of RUL.2 steel. In vial number one are introduced 32 balls with diameter D =18.6 mm. In vial number two are introduced 13 balls with diameter D = 22 mm, in vial number three are introduced 13 balls with diameter D = 22 mm and in vial number four are introduced 32 balls with diameter D = 12.6 mm. In every vial is introduced 100 g of iron powder with purity of 99.9 % having a grain size under 200 μm. The milling is done without protective atmosphere and the ratio of weight ball to weight powder was about 8:1. The experiences were produced for different intervals of milling time; during milling the mill was stopped approximately five minute, necessary for vials to cool dawn. There were used as milling time interval of 0, 10, 20, 40, 80, 160, 320 minutes. The energy of impact was transformed mainly in heat, which warm ball, vials and powder principal in warmth having like effect warming ball and plane surface and a quantity of this shall be introduced in powder, producing disorder of structural [3]. In powder is produced a structural disorder also [4]. The term effect gives on intensifying of diffusion. The process of volume diffusion in particle powder is accelerated by the increasing of density dislocations results at plastic deformations. Figure 2 gives value of crystallographic parameter for iron after 10 minute of milling: 285.58 pm; at 20 minute, with 287.12 pm; at 40 minute with 287.12 pm; at 80 minute with 287.12 pm; at 160 minute: with 287.08 pm; and at 320 minutes with 286.37 pm. The cut of experimental results line with abscissa gives a00 and the line slope is b. It is noticed oscillations of values till 20 minutes milling after which there is a tendency of decreasing of parameter. The investigation of figure 2 it shows that a00 = 286,832 pm, b = -0.00059 (sloping of straight line).

    Fig. 2. Crystallographic parameter of iron powder vial 4, radius D/2 = 6.3 mm vs. milling time
    Figure 3 shows at 10 minute of milling the value of crystallographic parameter at 287.15 pm, at 20 minutes milling with 287.08 pm, at 40 minute of milling with 286.12 pm, at 160 minute of milling with 287.30 pm and at 320 minute of milling with 287.29 pm.

    Fig. 3. Crystallographic parameter of iron powder vial 3, radius D/2 = 7.5 mm vs. milling time
    It is noticed an easily increasing of crystallographic parameter till 40 minute, after that an easily decreasing. The investigation of figure 3 it shows that a00 = 286.88 pm, b = -0.00133 (sloping of straight line). Figure 4, vial 1 the crystallographic parameter at 287.09 pm at 0 minute of milling, at 20 minute of milling with 287.15 pm, at 80 minute of milling with 287.56 pm, at 160 minute of milling with 287.84 pm and at 320 minute of milling with 288.80 pm.

    Fig. 4. Crystallographic parameter of iron powder vial 1, radius D/2 = 9.1 mm vs. milling time
    It is noticed a tendency of linear increasing of crystal parameter of milling time noticing that thing at fourth figure after that. The investigation of figure 4 it shows that a00 = 286.225 pm, b = -0.00546 (sloping of straight line). Figure 5 present the value of crystallographic parameter at 287.10 pm at 10 minute of milling, at 20 minute of milling with 287.39 pm, at 40 minute of milling with 287.08 pm, at 160 minute of milling with 286.99 pm and at 320 minute of milling with 286.37 pm. It is noticed an easily increasing of crystallographic parameter till 20 minutes, after which an easily decreasing occur. The investigation of figure 4 it shows that a00 = 287.225 pm, b = -0.00242 (sloping of straight line). In all figures 2-5 are noticed a linearity with time of increasing and decreasing of crystallographic parameter.

    Fig. 5. Crystallographic parameter of iron powder vial 2, radius D/2 = 11 mm vs. milling time
    The milling powder at mention time has been subjected diffractions with raze X to obtain crystallographic parameters using the last square method. In case of milling process, the energy transferred in system is the base the influence of parameters this energy depends of mill type. It produces mechanical disorder which leads to an increasing of Gibbs free energy. The following was parameters in our investigation: ball mass and velocity, and ratio mass balls/mass powder, time of process, and volume filling of vial.
    Table.1. Parameter a0 versus of milling time (minutes), number at balls and radius of balls
    No.ao, pmminutesballsD/2, mmNo.ao, pmminutesballsD/2, mm
    1287.090736.315287.090329.1
    2285.5510736.316287.0610329.1
    3287.1220736.317287.1520329.1
    4287.1240736.318287.1640329.1
    5287.1280736.319287.5680329.1
    6287.08160736.320287.84160329.1
    7286.37320736.321288.8320329.1
    8287.090467.522287.0901311
    9287.1510467.523287.1101311
    10287.0820467.524287.39201311
    11286.1240467.525287.08401311
    12286.9780467.526287.03801311
    13287.3160467.527286.991601311
    14287.29320467.528286.373201311
    The experimental X-ray results used for figures 2-5 are presented in table 1. In base of table 1 and Figures 2-4, and results is the last square method computed obtained, the crystallographic parameter at 0 time of milling a00 and line slope b. Results are in table 2.
    Table 2. Crystallographic parameter a00 line slope b of milling of iron powder with balls of different radii
    No.a00, pmbRadius of balls, mm
    1286. 83-0.000596.3
    2286.880.001337.5
    3286.280.005469.1
    4287.22-0.0024211
    In during the milling time take place:
  • the increasing density of dislocation and internal stress;
  • the possibility of plastic deformation and o strong plastic distortion;
  • the tendency to morphological and structural equilibrium [4].
    The energy of impact corresponds in the some time for peak of pressure and an increasing of local temperature which may be approximate over the activation energy barrier. During milling time a deformation of powders, a increasing of dislocation mobility and an increasing of temperature take place. A ratio between mass balls and mass powders, of high value, reduces the mean size of impact balls, while a small ratio reduces the impacts frequently because unit efforts action at atomic level elongates atomic net, connection energy of iron atoms increases and arrives at a maxim value in case at broken particles that tension atomics network, energy of connection of iron atoms increasing and arriving at maxim value in case broken particles, consequent leads at increasing of distance between atoms like in figure 3, and in case of overlapping of some slipping plane decreasing their distance similar with the net stress as noticed in Figures 3, 4 and 5, where these parameters increase respectively figure 5 decrease with milling time. Notice vial 1 has 32 balls, which is the mean number of balls having the approximately average radius. It is noticed in case of vial 2, which has smaller number of big balls and big mass is reduced is reduced: · number of impacts and cold welding of particles as a results at plastic deformation; · impacts between balls and particles produce a big kinetic energy, because of less welding which produce the less agglomerations. In case of vial 4 which has 73 balls of smalls size and mass which produces a high number of impacts between balls, to be producing of big number of cold welding during its milling time [5].

    ball radius (mm)
    Fig. 6. Crystal parameter a00 at time 0 of milling results from the slope of straight line passed and b (slope of straight line) of iron powder milling with balls of different radius
    It is noticed from table 2 and figure 6 that increasing of crystallographic parameter takes place only at radius at 7.5 mm and 9.1 mm, in interval from 7.5 to 9 mm.

    4. Conclusions
    Some final remarks can be makes:
  • At balls with radius of 6.3 mm there is a tendency of easily decreasing of crystallographic parameter.
  • At balls with radius of 7.5 mm there is a tendency of easily increasing of crystallographic parameter.
  • At balls with radius of 9.1 mm there is a tendency of accentually increasing of crystallographic parameter.
  • At balls with radius of 11 mm there is a tendency of accentually decreasing of crystallographic parameter.
    From this results is noticed that in the interval at 7.5 with 9 mm there a tendency of accentually increasing of crystallographic parameter. From experimental data someone may say that in that interval there is more efficiently milling from the evolution of crystallographic parameter.

    References
    [1]. Pickens I.R. - A Review of Aluminum Powder Metallurgy for High – Strength Applications, Journal of Material Science, 16, p. 1437–1457, 1981.
    [2]. Bhaduri A., et.al. - Microstructural changes of elemental powders during mechanical alloying, P.M. 94 World Congress Proceedings, Paris, p. 1329-1332, 1994.
    [3]. Arghir G., Crystallography (in Romanian), Polytechnic Institute, Cluj-Napoca, 1982.
    [4]. Arghir G., The Crystallographic characterizations of metals and alloys on diffraction with X radius, UTCN, 1993.
    [5]. Davis R. M., Dervott Mc. B. T., Koch C. C., Metall. Trans, 19 A, p. 2867-2874, 1988.
    [6]. Salomie M. D., Ph. D. Thesis, The theoretical researches and experimental looking obtaining powders on base of Aluminum on mechanical alloying, Cluj–Napoca, p. 69-70, 2000.