Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: VBECSRV

VBECSRV.m

Go to the documentation of this file.
  1. VBECSRV ;DALLAS CIOFO/RLM - INTEGRITY CHECKER FOR BLOOD BANK ROUTINES ;08/20/2001 4:35 PM
  1. ;;2.0;VBEC;**8**;Jun 05, 2015;Build 27
  1. ;
  1. START ;
  1. K ^TMP($J,"VBECDATA")
  1. S VBECSITE=$P($$SITE^VASITE,U,2),VBECSIT1=$P($$SITE^VASITE,U,1)
  1. ;Determine station number
  1. S VBECSUB=$TR(XQSUB,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  1. ;Translate the subject into upper case and place it into a locally
  1. ;namespaced variable.
  1. S ^TMP("VBECINTEG",$J,1,0)=VBECSUB_" triggered at "_VBECSITE_" by "_XMFROM_" on "_XQDATE
  1. ;The first line of the message tells who requested the action and when.
  1. S %DT="T",X="NOW" D ^%DT,DD^%DT S VBECNOW=Y
  1. I VBECSUB["REPORT" D REPORT G EXIT
  1. I VBECSUB["UPDATE" D UPDATE G EXIT
  1. I VBECSUB["LIST" D LIST G EXIT
  1. I VBECSUB["PATCH" D PATCH G EXIT
  1. K XMTEXT,XMSUB,VBECSITE,VBECNOW,XMY
  1. ;Call a routine based on the "Subject" line of the message.
  1. ;Skip the rest of the routine (down to exit) if the subject
  1. ;is a valid call.
  1. S VBECSITE=$P($$SITE^VASITE,U,2),VBECSIT1=$P($$SITE^VASITE,U,1)
  1. S ^TMP($J,"VBECDATA",1)=""
  1. S ^TMP($J,"VBECDATA",2)="Sorry, but I don't know how to "_XQSUB
  1. S ^TMP($J,"VBECDATA",3)="No action taken"
  1. S ^TMP($J,"VBECDATA",3)="Invalid VBEC Server Request From "_XMFROM_" at "_VBECSITE_" run on "_VBECNOW
  1. S XMY("G.bloodbank@FO-HINES.DOMAIN.EXT")=""
  1. S %DT="T",X="NOW" D ^%DT,DD^%DT S VBECNOW=Y
  1. S XMSUB="Invalid BB Server Request From "_XMFROM_" at "_VBECSITE_" run on "_VBECNOW
  1. S XMTEXT="^TMP($J,""VBECDATA"",",XMDUZ="Blood Bank Monitor"
  1. D ^XMD
  1. ;Send a message to the designated mail group if the server is triggered with
  1. ;an invalid command. This lets the users know that they either made
  1. ;a typo, or that someone is attempting to improperly invoke the server.
  1. EXIT K %DT,XMTEXT,XMSUB,VBECSITE,VBECNOW,XMY,^TMP($J,"VBECDATA")
  1. Q
  1. REPORT ;report on invalid checksums at a site.
  1. S VBECSITE=$P($$SITE^VASITE,U,2),VBECSIT1=$P($$SITE^VASITE,U,1)
  1. S X=$T(+0) X ^%ZOSF("RSUM1") S ^TMP("VBECINTEG",$J,2,0)="VBECSRV at "_VBECSITE_" = "_Y,^TMP("VBECINTEG1",$J,3,0)="**VBECSRV^"_Y_"^^"_VBECSIT1_"^"_DT
  1. S VBA=0,VBI=4 F S VBA=$O(^VBEC(6002.04,VBA)) Q:'VBA S VBDATA=$G(^VBEC(6002.04,VBA,0)) D
  1. . S X=$P(VBDATA,"^") X ^%ZOSF("TEST") I '$T S ^TMP("VBECINTEG",$J,VBI,0)=X_" is missing.",VBI=VBI+1,^TMP("VBECINTEG1",$J,VBI,0)="**"_X_"^"_$P(VBDATA,"^",2)_"^0^"_DT,VBI=VBI+1 Q
  1. . X ^%ZOSF("RSUM1") I $P(VBDATA,"^",2)'=Y S ^TMP("VBECINTEG",$J,VBI,0)=X_" should be "_$P(VBDATA,"^",2)_" is "_Y,VBI=VBI+1
  1. . S ^TMP("VBECINTEG1",$J,VBI,0)="**"_X_"^"_$P(VBDATA,"^",2)_"^"_Y_"^"_VBECSIT1_"^"_DT_"^"_(Y'=$P(VBDATA,"^",2)),VBI=VBI+1
  1. K XMY S XMY("G.bloodbank@FO-HINES.DOMAIN.EXT")="" ;,XMY("S.VBECINTEG@FO-HINES.DOMAIN.EXT")=""
  1. S %DT="T",X="NOW" D ^%DT,DD^%DT S VBECNOW=Y
  1. S XMSUB="BB CHECKSUM "_XQSUB_" at "_VBECSITE_" run on "_VBECNOW
  1. F I="",1 S XMTEXT="^TMP(""VBECINTEG"_I_""",$J,",XMDUZ="Blood Bank Monitor" D ^XMD
  1. K %DT,VBA,VBECNOW,VBECSITE,VBI,X,XMDUZ,XMSUB,XMTEXT,Y
  1. K ^TMP("VBECINTEG",$J),^TMP("VBECINTEG1",$J)
  1. Q
  1. UPDATE ;Update checksums at a site.
  1. S VBI=2
  1. F X XMREC Q:XMER<0 S VBDEL=$S($P(XMRG,"^")?1"-".E:1,1:0),VBROU=$TR($P(XMRG,"^"),"-",""),VBCHK=$P(XMRG,"^",2) D
  1. . S VBECON=$$FIND1^DIC(6002.04,,"X",VBROU,,.ERROR)
  1. . I VBDEL S DA=VBECON,DIK="^VBEC(6002.04," D ^DIK S ^TMP("VBECINTEG",$J,VBI,0)="Routine "_VBROU_" deleted at "_VBECSITE,VBI=VBI+1 Q
  1. . S VBECIEN=$S(VBECON:VBECON_",",1:"+1,")
  1. . S FDA(1,6002.04,VBECIEN,.01)=VBROU
  1. . S FDA(1,6002.04,VBECIEN,1)=VBCHK
  1. . I 'VBECON D UPDATE^DIE("","FDA(1)",,"VBERR")
  1. . I VBECON D FILE^DIE("E","FDA(1)","VBERR")
  1. . S ^TMP("VBECINTEG",$J,VBI,0)="Routine "_VBROU_$S(VBECON:" updated to ",1:" added with ")_"checksum "_VBCHK,VBI=VBI+1
  1. K XMY S XMY("G.bloodbank@FO-HINES.DOMAIN.EXT")=""
  1. S %DT="T",X="NOW" D ^%DT,DD^%DT S VBECNOW=Y
  1. S XMSUB="BB Checksum update at "_VBECSITE_" run on "_VBECNOW
  1. S XMTEXT="^TMP(""VBECINTEG"",$J,",XMDUZ="Blood Bank Monitor" D ^XMD
  1. K %DT,VBA,VBECNOW,VBECSITE,VBI,X,XMDUZ,XMSUB,XMTEXT,Y
  1. K ^TMP("VBECINTEG",$J),^TMP("VBECINTEG1",$J)
  1. Q
  1. LIST ;
  1. S VBA=0,VBI=2 F S VBA=$O(^VBEC(6002.04,VBA)) Q:'VBA D
  1. . S VBDATA=$G(^VBEC(6002.04,VBA,0)),VBROU=$P(VBDATA,"^"),VBCHK=$P(VBDATA,"^",2)
  1. . I VBDATA="" S ^TMP("VBECINTEG",$J,VBI,0)="Record "_VBA_" damaged." Q
  1. . S ^TMP("VBECINTEG",$J,VBI,0)=VBECSIT1_$E(" ",1,(10-$L(VBECSIT1)))_VBROU_$E(" ",1,(10-$L(VBROU)))_VBCHK,VBI=VBI+1
  1. K XMY S XMY("G.bloodbank@FO-HINES.DOMAIN.EXT")=""
  1. S %DT="T",X="NOW" D ^%DT,DD^%DT S VBECNOW=Y
  1. S XMSUB="BB CHECKSUM "_XQSUB_" at "_VBECSITE_" run on "_VBECNOW
  1. S XMTEXT="^TMP(""VBECINTEG"",$J,",XMDUZ="Blood Bank Monitor" D ^XMD
  1. K %DT,VBA,VBECNOW,VBECSITE,VBI,X,XMDUZ,XMSUB,XMTEXT,Y
  1. K ^TMP("VBECINTEG",$J),^TMP("VBECINTEG1",$J)
  1. Q
  1. PATCH ;Determine Vista patch level. Expand later to include VBECS
  1. f VBECV=1,2 f VBECI=0:1:9999 s VBECA=$$PATCH^XPDUTL("VBEC*"_VBECV_".0*"_VBECI) i VBECA s ^TMP("VBEC",$J,(VBECI+5),0)="Patch VBEC*"_VBECV_".0*"_VBECI_" has been installed."
  1. K XMY S XMY("G.bloodbank@FO-HINES.DOMAIN.EXT")="",XMY(XQSND)=""
  1. S %DT="T",X="NOW" D ^%DT,DD^%DT S VBECNOW=Y
  1. S XMSUB="VBEC Patch List at "_VBECSITE_" run on "_VBECNOW
  1. S XMTEXT="^TMP(""VBEC"",$J,",XMDUZ="Blood Bank Monitor" D ^XMD
  1. K %DT,VBA,VBECNOW,VBECSITE,VBI,X,XMDUZ,XMSUB,XMTEXT,Y
  1. K ^TMP("VBECINTEG",$J),^TMP("VBECINTEG1",$J)
  1. Q
  1. PTCAPI(RESULTS) ;Gather patch info for transmission to VBECS
  1. N VBECA,VBECI,VBECV
  1. S (VBECCNT,X)=0
  1. S RESULTS=$NA(^TMP("VistAPatchList",$J))
  1. K @RESULTS
  1. D BEGROOT^VBECRPC("Patches")
  1. F VBECV=1,2 f VBECI=0:1:9999 s VBECA=$$PATCH^XPDUTL("VBEC*"_VBECV_".0*"_VBECI) i VBECA D
  1. . D BEGROOT^VBECRPC("Patch")
  1. . D ADD^VBECRPC("<PatchName>"_$$CHARCHK^XOBVLIB("VBEC*"_VBECV_".0*"_VBECI)_"</PatchName>")
  1. . D ENDROOT^VBECRPC("Patch")
  1. D ENDROOT^VBECRPC("Patches")
  1. ;
  1. K VBECCNT
  1. Q
  1. ZEOR ;VBECSRV