Jay Hammond

Forum Replies Created

Viewing 15 replies – 1 through 15 (of 38 total)
  • Author
    Replies
  • in reply to: Shell Window Configuration #122308
    Jay Hammond
    Participant

      You can go to Client Preferences>External Tools and add paths to .exe files to launch whatever you’d like from the IDE on Windows. See attached image.

       

       

      Attachments:
      You must be logged in to view attached files.
      in reply to: How to escape the ampersand (&) character in an Xlate #122288
      Jay Hammond
      Participant

        What do you see if you change the Detail level to 1?

        I see what you’re talking about with the ampersand being removed when I have Detail level set to 4, but if I change it to 1 I see the following:

        (0).OBR(0) : >|1|271538248^HNAM_ORDERID|20066091^EPC|343023^PLATELET|||20190926092700||https://server.local/mdweb/LauncherInterface.aspx?host=https://server.local.webmd&PatientID=3000837&accesionnum=271538248|||||20190926093100|BLOOD&Blood|0000819^Test^An^K^^MD^^^Doctor #||||000002019269005004^HNA_ACCN~18295341^HNA_ACCNID||20190926092500||LA|||1^^0^20190926093000^^S~^^^^^ST|||||||||20190926093000<0xa><

        This is what I see with Detail level set to 4:

        0(0).OBR(0).#9(0).[0].[0] : >https://server.local/mdweb/LauncherInterface.aspx?host=https://server.local.webmd&lt;
        0(0).OBR(0).#9(0).[0].[1] : >PatientID=3000837<
        0(0).OBR(0).#9(0).[0].[2] : >accesionnum=271538248<

        We’re on Cloverleaf 2022.09.03.01

        in reply to: Duplicate Alerts #121993
        Jay Hammond
        Participant

          I just did a test and it looks like the WITH is set to -2 for ANY or -1 for ALL and a positive number with the value entered for AT LEAST in the Source Count. I want to say I remember in the past that having Source Count set to ANY may not fire the alert.  Could you try setting it to something different like ALL?

          in reply to: Alerting off of Error DB #121773
          Jay Hammond
          Participant

            The only thing that jumps out at me is that the thread name contains upper case letters. There’s a Best Practice document that states:

            <td width=”107″>Naming

            Convention
            <td width=”107″>Site, Process, and Threads
            <td width=”292″>Always use lowercase letters for site, process and thread names.
            <td width=”167″>Not required for other CL objects

            But, we have threads with upper case names and it doesn’t bomb MonitorD.

            in reply to: Alerting off of Error DB #121763
            Jay Hammond
            Participant

              Oh, sorry I left that one out.  Source Count is set to Any.

              in reply to: Alerting off of Error DB #121761
              Jay Hammond
              Participant

                We have an email alert set up for the error DB in all sites that will send an email to us if there are any entries in it. We don’t have any commands to shut down the threads, but here’s our config:

                 

                Alert Type: error database

                Source: highlighted all threads

                Comparing: > 0

                Duration: once

                Repeating:  N minutes 90 Max: 2

                Time Window: */5:30-17:30/*/*

                 

                It’s worked well for us for several years now. You might want to check with your email admin that the user is allowed to send emails in your network. That bit us a few times.

                in reply to: Log control #121743
                Jay Hammond
                Participant

                  Sure, Jason. I’d like to see it when you get yours updated.

                  I’m not sure what happened with the tabs/spacing in the code. I tend to reuse code from other scripts so I could have copied some sections that used tab characters instead of spaces.

                  in reply to: Log control #121739
                  Jay Hammond
                  Participant

                    Script attached. Remove the file extension if using in a *nix environment.

                    Attachments:
                    You must be logged in to view attached files.
                    in reply to: Log control #121737
                    Jay Hammond
                    Participant

                      We’ve been using the attached ksh (we’re on AIX 7.2) script to remove process logs older than 30 days for a while now. It doesn’t use any TCL scripts. We call the command from a cron job and write that output to a file in the hci user’s home directory. I use a similar script to clean up monitor daemon logs older than 30 days as well.

                      We have Log History set to keep up to 150 files and the folder size up to 1 GB.  We also have the process configuration set to cycle logs after they reach 10 MB.

                      I’ve attached the script because I can’t figure out how to format the text so that it doesn’t look worse than it does in the script. It’s over-commented, but I forget how some commands work and like to have somewhere to remind myself.

                      I’ve commented out the rm command (which will delete files it’s presented) and the echo command just below it will return a list of the files that would be deleted.

                      Be careful with this if you aren’t sure what it is doing.

                      EDIT: Well, it wouldn’t let me upload the file – I assume because it has no extension. So, here’s the ugly pasted code:

                       

                      #!/usr/bin/ksh
                      #########################################################################################################
                      #########################################################################################################
                      ## Name:        delete_process_loghistory_all_sites_to_logfile
                      ##
                      ## Purpose:     Delete LogHistory files, in each process directory, in all sites,
                      ## that are older than 30 days. BE CAREFUL WITH THIS!!!!
                      ##
                      ## Usage: delete_process_loghistory_all_sites_to_logfile
                      ##
                      ## Author:      Jay Hammond
                      ##
                      ## Date:        06/02/2022
                      ##
                      #########################################################################################################
                      #########################################################################################################
                      echo
                      SCRIPT=$(basename $0)
                      script_start_time=$(date +”%B %e, %Y %T %Z %p”)
                      echo “=======================  $SCRIPT begin time:  $script_start_time =======================”
                      # Set fonts for Help text.
                      # NORM=$(tput sgr0)   #   Normal
                      # BOLD=$(tput bold)   #   Bold
                      # REV=$(tput smso)    #   Reverse fore and background colors
                      # UND=$(tput smul)    #   Underline
                      sites=$(ls $HCIROOT/*/NetConfig | awk -F\/ ‘{print $5}’ | grep -v siteProto| grep -v templates | grep -v -E “^$”)
                      # Variablize the current site so we don’t have to hardcode it
                      # current_site=$(echo $HCISITE)
                      # Let’s setsite to the current site and print out the name
                      # setsite $current_site
                      # echo “==========${REV}$site${NORM}==========”
                      # echo “”
                      for site in $sites;
                      do
                      setsite $site
                      echo
                      echo “SITE:  $site <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<“
                      echo
                      # Variablize the list of processes so that we can iterate through it
                      process_list=$(grep “process ” $HCISITEDIR/NetConfig | awk ‘{print $2}’ | sort -d -f)
                      # For each process in the list of this site’s processes
                      for process in $process_list;
                      do
                      # Set and variablize the loghistory_folder location
                      loghistory_folder=$HCISITEDIR/exec/processes/$process/LogHistory
                      # Change Directory to the current process’s loghistory_folder
                      cd $loghistory_folder
                      # -d = True, if the specified file exists and is a directory.
                      # If there’s a loghistory_folder
                      if [ -d “${loghistory_folder}” ];
                      then
                      # -z = True, if length of the specified string is 0.
                      # If the loghistory_folder is not empty
                      if [ ! -z $(ls -A $loghistory_folder) ];
                      then
                      echo “PROCESS:  $process”
                      echo “Searching for LogHistory files in $loghistory_folder…”
                      # Variablize the folder contents (’cause I’m lazy) to take action
                      # based on what’s returned.
                      files_found=$(find $HCISITEDIR/exec/processes/$process/LogHistory -type f)
                      echo
                      # -n = True, if the length of the specified string is nonzero.
                      # If we don’t find any files in the folder
                      if [ ! -n  “${files_found}” ];
                      then
                      echo “>>>>>>>>>>>>>>Search returned no LogHistory files for the $process process in the $site site.<<<<<<<<<<<<<<“
                      echo
                      else
                      # Variablize the lists of files to keep and to delete so that we can echo them out pretty.
                      # In the current (.) directory, without recursing into any other folders that may be in the
                                          #   current directory (\( -name . -o -prune \), find files with an extension containing err
                                          #   or log (-regextype extended -iregex “.*err|.*log”), that are older than 30 days (-mtime +30)
                      files_to_keep=$(find . \( -name . -o -prune \) -regextype extended -iregex “.*err|.*log” -mtime -30)
                      files_to_delete=$(find . \( -name . -o -prune \) -regextype extended -iregex “.*err|.*log” -mtime +30)
                      # -z = True, if length of the specified string is 0.
                      # If the files_to_delete variable is not empty
                      if [ ! -z “${files_to_delete}” ];
                      then
                      echo “The following files are older than 30 days and are being deleted:”
                      echo  “${files_to_delete}”
                      echo
                      for file in $files_to_delete;
                      do
                      # Echo each file name
                      echo “>>>>>>> $file is being deleted now:”
                      echo
                      # Remove files
                                                  #   -e = Displays a message after each file is deleted.
                                                  #   -f = Does not prompt before removing a write-protected file. Does not display an error message or return
                                                  #           error status if a specified file does not exist.
                                                  # UNCOMMENT THE ‘rm -ef $file’ LINE TO ACTIVATE DELETING FILES IF YOU SO DESIRE AND ARE SURE YOU WANT THEM REMOVED
                                                  #   FOREVER. OTHERWISE, THE ECHO BELOW IT WILL JUST RETURN THE FILES THAT WOULD BE DELETED.
                      # rm -ef $file
                      echo $file
                      echo
                      done
                      else
                      echo “No files older than 30 days were found to delete for the $process process.”
                      fi
                      # -z = True, if length of the specified string is 0.
                      # If the files_to_keep variable is not empty
                      if [ ! -z “${files_to_keep}” ];
                      then
                      echo
                      echo “These files to remain in the folder:”
                      echo
                      # For each file in the list of files_to_keep
                      for file in $files_to_keep;
                      do
                      # Echo each file name
                      echo $file
                      done
                      fi
                      echo
                      fi
                      else
                      echo “PROCESS:  $process has a LogHistory folder, but it’s empty.”
                      echo
                      fi
                      else
                      echo “PROCESS:  $process does not have a LogHistory folder.”
                      echo
                      fi
                          done
                      done
                      echo

                       

                       

                      • This reply was modified 1 year, 2 months ago by Jay Hammond.
                      in reply to: Version Control #121298
                      Jay Hammond
                      Participant

                        From the documentation:

                         

                        Host Server Version Control tab

                        In some situations, the administrator must directly revise the configuration file’s version status. For doing this, the Server Administration tool has a a Version Control tab to list version records. Users can update the version status in this tab.

                        • Selecting Root lists the root-level version records.
                        • Selecting Site enables the site name list. When a user selects a site from the list, the tab shows the specified site’s version records.

                        The administrator can revise the configuration file’s version status by these actions:

                        • Selecting Unlock to unlock the selected configuration entries.
                        • Selecting Remove to remove the selected configuration entries. All history version records of the selected configurations are removed from the version database and folder.
                        • Selecting Refresh to reload the table components.

                        in reply to: Version Control #121296
                        Jay Hammond
                        Participant

                          Admins are able to unlock versioned files in this case (we’re on Version 20.1).  In the hciserveradmin GUI, in the Version Control tab.  See the attached screenshot.

                          Attachments:
                          You must be logged in to view attached files.
                          in reply to: Which Alert File is Monitor Daemon Using #120587
                          Jay Hammond
                          Participant

                            Very cool!  Thank you, Robert.

                            I have one site listed thrice (willow_pharmacy) as well as another listed twice (vcloverleafdeva1) like your list:
                            <p style=”padding-left: 40px;”>$ ps -ef | grep -i -e hcimon -e stime | grep -v grep
                            UID PID PPID C STIME TTY TIME CMD
                            hci 14352792 1 0 May 18 – 15:06 /hci/cis20.1/integrator/bin/hcimonitord -cl default.alrt -S hcidev_in
                            hci 14614886 1 0 May 18 – 1:01 /hci/cis20.1/integrator/bin/hcimonitord -cl default.alrt -S acc_reg_cycle
                            hci 22806974 1 0 May 18 – 0:28 /hci/cis20.1/integrator/bin/hcimonitord -cl default.alrt -S vcloverleafdeva1
                            hci 24314290 1 0 May 18 – 0:48 /hci/cis20.1/integrator/bin/hcimonitord -S willow_pharmacy
                            hci 24838534 1 0 May 18 – 0:37 /hci/cis20.1/integrator/bin/hcimonitord -cl default.alrt -S education
                            hci 25297248 1 0 May 18 – 1:05 /hci/cis20.1/integrator/bin/hcimonitord -cl default.alrt -S hcidev_tst2
                            hci 26476944 1 0 May 18 – 1:10 /hci/cis20.1/integrator/bin/hcimonitord -cl default.alrt -S him
                            hci 28836296 1 0 May 18 – 1:44 /hci/cis20.1/integrator/bin/hcimonitord -cl disabled_alerts.alrt -S willow_pharmacy
                            hci 5112428 1 0 May 18 – 0:28 /hci/cis20.1/integrator/bin/hcimonitord -cl disabled_alerts.alrt -S vcloverleafdeva1
                            hci 5636802 1 0 May 18 – 0:25 /hci/cis20.1/integrator/bin/hcimonitord -cl default.alrt -S resource_management
                            hci 7078568 1 0 May 18 – 5:24 /hci/cis20.1/integrator/bin/hcimonitord -cl default.alrt -S hoke
                            hci 9437764 1 0 May 18 – 0:38 /hci/cis20.1/integrator/bin/hcimonitord -cl default.alrt -S midas
                            hci 9765398 1 0 May 18 – 1:04 /hci/cis20.1/integrator/bin/hcimonitord -cl default.alrt -S hcidev_documents
                            hci 14156540 1 0 May 18 – 1:29 /hci/cis20.1/integrator/bin/hcimonitord -cl default.alrt -S hcidev_device_int
                            hci 15270416 1 0 May 18 – 1:13 /hci/cis20.1/integrator/bin/hcimonitord -cl default.alrt -S hcidev_cupid_rad
                            hci 15991426 1 0 May 18 – 23:48 /hci/cis20.1/integrator/bin/hcimonitord -cl default.alrt -S hcidev_out
                            hci 17826444 1 0 May 18 – 7:10 /hci/cis20.1/integrator/bin/hcimonitord -cl default.alrt -S hcidev_adt_mfn_chgs
                            hci 21168758 1 0 May 18 – 3:02 /hci/cis20.1/integrator/bin/hcimonitord -cl default.alrt -S hcidev_ord_res
                            hci 23331492 1 0 12:20:40 – 0:00 /hci/cis20.1/integrator/bin/hcimonitord -S willow_pharmacy
                            hci 24314620 1 0 May 18 – 1:05 /hci/cis20.1/integrator/bin/hcimonitord -cl default.alrt -S hcidev_case_mgnt
                            hci 26215024 1 0 May 18 – 3:28 /hci/cis20.1/integrator/bin/hcimonitord -cl default.alrt -S hcidev_beaker
                            hci 29360820 1 0 May 18 – 0:39 /hci/cis20.1/integrator/bin/hcimonitord -cl default.alrt -S hcidev_labor_deliv</p>
                            After a bit of digging, it looks like the sites listed twice may be due to a manual stop/start of the monitor daemon.  And the process isn’t removed from the list?

                            On the 18th, I was testing out starting/stopping monD with different *.alrt files; I guess that’s why those show up multiple times in the list with -cl <alert_name>.  I tried stopping monD in the willow_pharmacy site and the most recent entry was removed until I restarted and it showed again.  I also tried stopping/starting the host server for shiggles, but that didn’t change anything either.

                            Also appears that maybe Linux and AIX list things slightly differently (e.g. AIX is showing -cl <alert_name> for all sites) which isn’t surprising.

                            in reply to: Which Alert File is Monitor Daemon Using #120570
                            Jay Hammond
                            Participant

                              Thank you, Tim!  That will definitely work. I was just hoping there was something I couldn’t find with the hcisitectl (or any other) command that would return the active file name for a quick look.

                              in reply to: Can we get a list of Global Variable Keys in Tcl? #120523
                              Jay Hammond
                              Participant

                                Does this get what you’re looking for:

                                 

                                hcigvt
                                This command is used to access the global variables.

                                hcigvt {add|del|get|set|show} [varname] [varvalue] [isencrypted]
                                add – adds the global variable to the variable table.
                                del – deletes the global variable name from the variable table.
                                get – prints the global variable value of varname.
                                set – sets the global variable value of varname to a new value.
                                show – shows all the variable names and values in local site.
                                varname is the global variable name.
                                varvalue is the global variable value.
                                isencrypted determines if the global variable must be encrypted in the ini file.
                                1 indicates it is encrypted.
                                0 indicates it is not encrypted. This is the default.
                                For example:

                                C:\cloverleaf\cis6.3\integrator\bin>hcigvt show

                                • This reply was modified 2 years, 10 months ago by Jay Hammond.
                                • This reply was modified 2 years, 10 months ago by Jay Hammond.
                                • This reply was modified 2 years, 10 months ago by Jay Hammond.
                                in reply to: Parse siteInfo to extract SMAT and Log Retention Periods #120503
                                Jay Hammond
                                Participant

                                  I’ve attached a couple that I use from time to time to pull at least some of the info that you’re looking for.

                                  • This reply was modified 2 years, 10 months ago by Jay Hammond.
                                  Attachments:
                                  You must be logged in to view attached files.
                                Viewing 15 replies – 1 through 15 (of 38 total)