Listing 1

#!/bin/ksh
#
# (c) 1999 SAIC, UCSD
#
# PCASSO SystemAdministrationTool (SAT) Menu System
#

################################################################################
#  USER FEEDBACK REPORTS
################################################################################

function run_reports_menu
{
    trap 'main_menu' INT
    clear
    print "Run Reports\n"
    OLD_PS3=PS3; PS3="$menu_prompt"
    select option in \
        "Monitor Services Menu" \
        "User Feedback Summary" \
        "Provider Feedback Summary" \
        "Patient Feedback Summary" \
        "Feedback Detail" \
        "Provider Feedback Detail" \
        "Patient Feedback Detail"
    do
        case $option in
        "Monitor Services Menu")
            return
            ;;
        "User Feedback Summary")
            ;;
        "Provider Feedback Summary")
            ;;
        "Patient Feedback Summary")
            ;;
        "Feedback Detail")
            ;;
        "Provider Feedback Detail")
            ;;
        "Patient Feedback Detail")
            ;;
        *)
            print "\nError: Invalid option\n"
            ;;
        esac
    done
    PS3=$OLD_PS3
}

################################################################################
#   MANAGE SERVICES
################################################################################

function manage_services_menu
{
    trap 'main_menu' INT
    print "Enter <ctrl-c> at any time to return to the main menu\n\n"
    print "Start/Stop System Services\n"
    OLD_PS3=$PS3; PS3="$menu_prompt"
    clear
    select option in \
        "Main Menu" \
        "Stop Webserver" \
        "Stop PCASSO" \
        "Stop PCASSO Importer" \
        "Stop Oracle" \
        "Reboot" \
        "Start Oracle" \
        "Start PCASSO" \
        "Start PCASSO Importer" \
        "Start Webserver" \
        "Offline Oracle Backup" \
        "Backup  HL7 Queues" \
        "Restore HL7 Queues" \
        "Delete SQL Errors"
    do
        case $option in
        "Main Menu")
            return
            ;;
        "Reboot")
            ;;
        "Start PCASSO")
            ;;
        "Start PCASSO Importer")
            ;;
        "Stop PCASSO")
            ;;
        "Stop PCASSO Importer")
            ;;
        "Start Oracle")
            ;;
        "Stop Oracle")
            ;;
        "Offline Oracle Backup")
            ;;
        "Backup  HL7 Queues")
            ;;
        "Restore HL7 Queues")
            ;;
        "Delete SQL Errors")
            ;;
        "Start Webserver")
            ;;
        "Stop Webserver")
            ;;

        *)    print "\nError: Invalid selection, press return to see options
and
select again\n"
            ;;
        esac
    done
    PS3=$OLD_PS3
}

################################################################################
#   MONITOR SYSTEMS
################################################################################

function monitor_services_menu
{
    trap 'main_menu' INT
    clear
    print "Observe the system\n"
    OLD_PS3=PS3; PS3="$menu_prompt"
    select option in \
        "Main Menu" \
        "Current PCASSO Users" \
        "PCASSO Audit Trail" \
        "PCASSO Processes" \
        "Oracle Processes" \
        "PCASSO Log" \
        "HL7 Server Log" \
        "HL7 Importer Log" \
        "Current HL7 Queue" \
        "Current HL7 Queue Size" \
        "Top 10 CPU consumers" \
        "Top 10 memory consumers" \
        "PCASSO Statistics Report" \
        "PCASSO Misuse Report" \
        "PCASSO Feedback Reports"
    do
        case $option in
        "Main Menu")
            return
            ;;
        "Current PCASSO Users")
            ;;
        "PCASSO Audit Trail")
            ;;
        "PCASSO Processes")
            ;;
        "Oracle Processes")
            ;;
        "PCASSO Log")
            ;;
        "HL7 Server Log")
            ;;
        "HL7 Importer Log")
            ;;
        "Current HL7 Queue")
            ;;
        "Current HL7 Queue Size")
            ;;
        "Top 10 CPU consumers")
            ;;
        "Top 10 memory consumers")
            ;;
        "PCASSO Statistics Report")
            ;;
        "PCASSO Misuse Report")
            ;;
        "PCASSO Feedback Reports")
            run_reports_menu
            break
            ;;
        *)
            print "\nError: Invalid option\n"
            ;;
        esac
    done
    PS3=$OLD_PS3
}

################################################################################
#   MANAGE USERS
################################################################################

function manage_users_menu
{
    trap 'main_menu' INT
    OLD_PS3=$PS3; PS3="$menu_prompt"
    (( manage_users = 1 ))
    while (( manage_users )) ; do
        clear
        print "Manage Users:\n"
        select option in "Main Menu" "Add user" "Delete user" "GRAIL" "Grant
patient-role" "Revoke patient-role" "Reissue certificate"
        do
            case $option in
            "Main Menu")
                (( manage_users = 0 ))
                ;;
            "Add user")
                ;;
            "Delete user")
                ;;
            "GRAIL")
                ;;
            "Grant patient-role")
                ;;
            "Revoke patient-role")
                ;;
            "Reissue certificate")
                ;;
            *)
                print "\nError: Invalid option\n"
                ;;
            esac

            if (( manage_users == 0 )) ; then
                break;
            fi

        done
    done
    PS3=$OLD_PS3
}

################################################################################
#   MAIN MENU
################################################################################

function main_menu
{
    trap "main_menu" INT
    OLD_PS3=$PS3; PS3="$menu_prompt"
    while ((1)) ; do
        clear
        print "Main Menu:\n"
        select main_choice in \
            "Quit" \
            "Manage Users" \
            "Manage Services" \
              "Monitor Services" \
            "Import Provider Authority List"
        do
            case $main_choice in
            "Quit")
                exit
                ;;
            "Manage Users")
                manage_users_menu
                break
                ;;
            "Manage Services")
                manage_services_menu
                break
                ;;
            "Monitor Services")
                monitor_services_menu
                break
                ;;
            "Import Provider Authority List")
                ;;
            *) print "Invalid choice, try again"
            esac
        done
    done
    PS3=$OLD_PS3
}

################################################################################
#   MAIN
################################################################################

menu_prompt="Enter selection(1-N), ^C (Main Menu), Return (options): "

main_menu



