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:
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:
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:
$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:
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 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).]
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',
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";
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 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).]