Gossamer Forum
Home : Products : DBMan : Installation :

Checkboxes don't print

Quote Reply
Checkboxes don't print
To summarize, my database will contain 140-some physician records. Each physician will be associated with one dept and a dept description, which should appear as a dropdown menu choice in the Add screen.

Each physician also will be associated with one or more practices/subspecialties and a practice/subspecialty description; since they can be associated with more than one, this field needs to be checkboxes.

Our current JavaScript-driven directory, which I want to replace with a database, is here: http://www.evms.edu/services/phyrefdr.html

Here is my database definition. If there's a way to avoid having 36 practice fields, it would be great, but I still need descriptions:

Code:
%db_def = ( ID => [0, 'alpha', 10 , 100, 1, '', '' ],
dept => [1, 'alpha', 0 , 0, 0, '', '' ],
first_name => [2, 'alpha', 20 , 50, 1, '', '' ],
middle => [3, 'alpha', 20 , 50, 0, '', '' ],
last_name => [4, 'alpha', 20 , 50, 1, '', '' ],
degree => [5, 'alpha', 50 , 150, 0, '', '' ],
title => [6, 'alpha', 50 , 150, 0, '', '' ],
type_of_practice => [7, 'alpha', 50 , 100, 1, '', '' ],
clinical_interests => [8, 'alpha','50x4' , 150, 1, '', '' ],
medical_school => [9, 'alpha', 50 , 150, 0, '', '' ],
residency => [10, 'alpha','50x5' , 250, 0, '', '' ],
fellowship => [11, 'alpha', 50 , 150, 0, '', '' ],
board_certification => [12, 'alpha', 50 , 150, 0, '', '' ],
other_training => [13, 'alpha', 50 , 150, 0, '', '' ],
graduate_school => [14, 'alpha', 50 , 150, 0, '', '' ],
clinical_training => [15, 'alpha', 50 , 150, 0, '', '' ],
certification => [16, 'alpha', 50 , 150, 0, '', '' ],
professional_assoc => [17, 'alpha','50x3' , 200, 0, '', '' ],
languages => [18, 'alpha', 50 , 150, 0, '', '' ],
practice_office => [19, 'alpha', 50 , 100, 1, '', '' ],
practice_location => [20, 'alpha','50x2' , 150, 1, '', '' ],
practice_phone => [21, 'numer', 14 , 14, 1, '(757) ', '' ],
practice_fax => [22, 'numer', 14 , 14, 0, '(757) ', '' ],
email => [23, 'alpha', 50 , 50, 0, '@evms.edu', '.+\@.+\..+' ],
academic_office => [24, 'alpha', 50 , 100, 0, '', '' ],
academic_location => [25, 'alpha','50x2' , 150, 0, '', '' ],
academic_phone => [26, 'numer', 14 , 50, 0, '(757) ', '' ],
after_hours_phone => [27, 'numer', 14 , 50, 1, '(757) ', '' ],
photo => [28, 'alpha', 50 ,100, 0, 'http://www.evms.edu/services/doctors/photos/', '' ],
authorized_user => [29, 'alpha', -2 , 10, 1, '', '' ],
practice01 => [30, 'alpha', 0 , 0, 0, '', '' ],
practice02 => [31, 'alpha', 0 , 0, 0, '', '' ],
practice03 => [32, 'alpha', 0 , 0, 0, '', '' ],
practice04 => [33, 'alpha', 0 , 0, 0, '', '' ],
practice05 => [34, 'alpha', 0 , 0, 0, '', '' ],
practice06 => [35, 'alpha', 0 , 0, 0, '', '' ],
practice07 => [36, 'alpha', 0 , 0, 0, '', '' ],
practice08 => [37, 'alpha', 0 , 0, 0, '', '' ],
practice09 => [38, 'alpha', 0 , 0, 0, '', '' ],
practice10 => [39, 'alpha', 0 , 0, 0, '', '' ],
practice11 => [40, 'alpha', 0 , 0, 0, '', '' ],
practice12 => [41, 'alpha', 0 , 0, 0, '', '' ],
practice13 => [42, 'alpha', 0 , 0, 0, '', '' ],
practice14 => [43, 'alpha', 0 , 0, 0, '', '' ],
practice15 => [44, 'alpha', 0 , 0, 0, '', '' ],
practice16 => [45, 'alpha', 0 , 0, 0, '', '' ],
practice17 => [46, 'alpha', 0 , 0, 0, '', '' ],
practice18 => [47, 'alpha', 0 , 0, 0, '', '' ],
practice19 => [48, 'alpha', 0 , 0, 0, '', '' ],
practice20 => [49, 'alpha', 0 , 0, 0, '', '' ],
practice21 => [50, 'alpha', 0 , 0, 0, '', '' ],
practice22 => [51, 'alpha', 0 , 0, 0, '', '' ],
practice23 => [52, 'alpha', 0 , 0, 0, '', '' ],
practice24 => [53, 'alpha', 0 , 0, 0, '', '' ],
practice25 => [54, 'alpha', 0 , 0, 0, '', '' ],
practice26 => [55, 'alpha', 0 , 0, 0, '', '' ],
practice27 => [56, 'alpha', 0 , 0, 0, '', '' ],
practice28 => [57, 'alpha', 0 , 0, 0, '', '' ],
practice29 => [58, 'alpha', 0 , 0, 0, '', '' ],
practice30 => [59, 'alpha', 0 , 0, 0, '', '' ],
practice31 => [60, 'alpha', 0 , 0, 0, '', '' ],
practice32 => [61, 'alpha', 0 , 0, 0, '', '' ],
practice33 => [62, 'alpha', 0 , 0, 0, '', '' ],
practice34 => [63, 'alpha', 0 , 0, 0, '', '' ],
practice35 => [64, 'alpha', 0 , 0, 0, '', '' ],
practice36 => [65, 'alpha', 0 , 0, 0, '', '' ],

Then I have a checkbox field set up, since a given physician may be part of more than one practice or subspecialty:

Code:
%db_checkbox_fields = (
practice01 => 'Behavioral Medicine',
practice02 => 'Geriatrics',
practice03 => 'Ghent Family Practice',
practice04 => 'Portsmouth Family Medicine',
practice05 => 'Weight and Well Being',
etc. to practice36

Then I have practice descriptions set up in variables:

Code:
# Family and Community Medicine ===============
$prac_desc{'practice01'} = "description";

$prac_desc{'practice02'} = "description";

$prac_desc{'practice03'} = "The Ghent Family Practice Center is located in the Fairfax
Building on the medical school campus. The clinical area includes two minor
surgery/procedure rooms, x-ray and dark room, laboratory, and a special testing room. The
center serves the needs of the individual and community and has a residency training
program. The staff includes family physicians, family nurse practictioners, and
counselors who have access to specialists and other resources as needed. ";


$prac_desc{'practice04'} = "
EVMS Portsmouth Family Medicine
2700 London Boulevard Portsmouth VA 23707
Phone: (757) 397-6344
Fax: (757) 399-1870";

$prac_desc{'practice05'} = "description";
etc. to practice36.

Then I have my html.pl sub html_record_form. All the fields work fine, except for the practice field, which should be a list of checkboxes - nothing prints. I can post all of the code for this subroutine, if you need to see it, but it's pretty long. The code for the practice field only is:

Code:
|; # to close off any previous print qq| statement
foreach $practice ( sort keys %prac_desc) {
if ($rec{$practice}) {
print qq|<tr><td>$rec{$practice}</td>
<td>$prac_desc{$practice}</td></tr>|;
}
}
print qq|
</TABLE>
|;

I want the practice managers to have view, add, modify, and delete permissions; when they add or modify a record, they should be able to select a dept from a dropdown list and one or more practice/subspecialties from a set of checkboxes.

Site visitors will be allowed to search the database by selecting a dept from the dropdown list. They will get a description of the dept and either
a) a list of physicians associated with that dept and a dept description or
b) a dept description and a list of practices/subspecialties associated with that dept; this list will be clickable. Clicking on a practice/subspecialty will take them to a page with the practice/subspecialty description and a list of physicians associated with that prac/sub.

I think that's it Smile Let me know if you need more info.

Thanks,
KimL

[This message has been edited by kiml (edited August 17, 1999).]

[This message has been edited by kiml (edited August 17, 1999).]
Quote Reply
Re: Checkboxes don't print In reply to
All I'm concerned about right now is getting things to print out.

It really does help to have this all together in a new thread. Smile

Code:
</TD></TR>|;

$i = 1;
foreach $type (sort keys %db_checkbox_fields) {
if ($i%6 == 1) {
print "<TR>";
}
print "<TD><$font><B>";
print &build_checkbox_field($type,$rec{$type});
print "</B></font></TD>\n";
if ($i%6 == 0) {
print "</TR>\n";
}
++$i;
}
--$i;
while ($i%6 > 1) {
print "<TD> </TD>\n";
++$i;
}
print qq|
</TR></TABLE>

The advantage of this is that you can add more practices in the future, but you won't have to change sub html_record_form in order to print them out.

If you want a different number of columns than 6, change every instance of 6 in the code above to the number of columns you want.


------------------
JPD







[This message has been edited by JPDeni (edited August 17, 1999).]
Quote Reply
Re: Checkboxes don't print In reply to
It works Smile I had to tweak it a little - I have a two-column table with labels in the left column and input fields in the right, and the checkboxes printed in the left, right, and additional columns. I put the code you gave me in a nested table, reduced the columns to two, and it looks great. Thanks Smile

On to the next step...

KimL