#!/usr/bin/ksh #****************************************************************************** # $RCSfile:$ # # $Date:$ # # $Revision:$ # #****************************************************************************** # # Author: Jeff Martin # # Purpose: Extract selected warnings from err_rpt.hl7_rcv.out.mimi1. # Call hl7_rcv_notifications.lib functions to build an # email notification of each for distribution. # #****************************************************************************** # # $Source:$ # #****************************************************************************** # # Modifications: # # $Log:$ # #****************************************************************************** if [[ -n $REGENV ]] ; then # aliases aren't inhereted from the shell so they need to be sourced again . $REGENV/reg.commands else #source reg.kshvar based upon file location. . ${.sh.file%/reg/scripts*}/reg.kshvar fi DDASHES="==========" DDASHES=$DDASHES$DDASHES$DDASHES$DDASHES$DDASHES$DDASHES$DDASHES DASHES="----------" DASHES=$DASHES$DASHES$DASHES$DASHES$DASHES$DASHES$DASHES printf "$DDASHES\n" printf "$(date) $DBANAME $(basename $0) Started\n\n" #***************************************************************************** # source function library #***************************************************************************** if [[ ! -f hl7_rcv_notifications.lib ]] ; then printf "Can't find hl7_rcv_notifications.lib\n" exit -1 fi . hl7_rcv_notifications.lib #***************************************************************************** # build hl7_rcv err_rpt log location and filename #***************************************************************************** SUFFIX=`date -d "yesterday" +"%Y%m%d"` MSGFILE=$DATA/hl7_rcv_notification.msgs.$SUFFIX LOGDIR=$IF_LOG/save.week LOGFILE=err_rpt.hl7_rcv.out.mimi1.$SUFFIX.xls # dev/unit test EVNHOST=`hostname -s` if [[ $EVNHOST = "junior" ]]; then LOGDIR="." LOGFILE="err_rpt.hl7_rcv.out.mimi1.20081023.xls" fi if [[ ! -f $LOGDIR/$LOGFILE ]] ; then printf "Can't find:\n$LOGDIR/$LOGFILE\n" exit 0 fi #***************************************************************************** # build WARNINGS string array / FUNCTIONS name array #***************************************************************************** set -A WARNINGS WARNINGS[1]="Duplicate Soc. Sec. Number" WARNINGS[2]="Person Number Mismatch" set -A FUNCTIONS FUNCTIONS[1]="DupSSN" FUNCTIONS[2]="PersonNoMismatch" #***************************************************************************** # build WARNING logs #***************************************************************************** WINDEX=${#WARNINGS[*]} while [[ ${WINDEX} -ne 0 ]] do grep "${WARNINGS[$WINDEX]}" $LOGDIR/$LOGFILE > ${FUNCTIONS[$WINDEX]}.msg let WINDEX=$WINDEX-1 done #***************************************************************************** # build notification report #***************************************************************************** cat <$MSGFILE $DDASHES Message sent from $(basename $0) script: ----------------------------------------------------- The following patient's data could not be updated in Reg/ADT. Please research and correct: EOF # call a unique function in hl7_rcv_notifications.lib for each message type. FINDEX=${#FUNCTIONS[*]} while [[ ${FINDEX} -ne 0 ]] do # read grep output cat ${FUNCTIONS[$FINDEX]}.msg | while read DATE TIME HOSP_PAT PERSON_NO LAST_NAME FIRST_NAME MIDDLE_SSN SSN2 BDATE2 MSG2 MSG3 do # get common fields ParseHeader # call message parser ${FUNCTIONS[$FINDEX]} "$MSG" >>$MSGFILE done let FINDEX=$FINDEX-1 done #***************************************************************************** # distribute discharged.msgs #***************************************************************************** printf "Calling distribute_rpt.sh HL7_RCV_NOTIF $MSGFILE\n" #distribute_rpt.sh HL7_RCV_NOTIF $MSGFILE cat $MSGFILE #***************************************************************************** # Processing is done. #***************************************************************************** # remove WARNINGS files FINDEX=${#FUNCTIONS[*]} while [[ ${FINDEX} -ne 0 ]] do rm -f ${FUNCTIONS[$FINDEX]}.msg > /dev/null 2>&1 let FINDEX=$FINDEX-1 done # Get rid of files more than 91 days old. find $DATA -name '$DATA/hl7_rcv_notification.msgs*' -mtime +91 -print | xargs rm -f #****************************************************************************** printf "\n$(date) $DBANAME $(basename $0) Finished\n\n$DDASHES\n" exit 0 #******************************************************************************