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

ORDEBUG.m

Go to the documentation of this file.
  1. ORDEBUG ;SLC/JMH,AJB - CPRS Debug Support Routine ;Jul 23, 2020@11:29:03
  1. ;;3.0;ORDER ENTRY/RESULTS REPORTING;**350,498**;Dec 17, 1997;Build 38
  1. ;
  1. SAVERPCS(ORY,ORKEY,ORDATA) ;
  1. ;
  1. N ORI S ORI=""
  1. S ORI=$O(^XTMP("CPRS DEBUG LOG",ORKEY,"RPCS",ORI),-1)
  1. I 'ORI S ORI=0
  1. S ORI=ORI+1
  1. M ^XTMP("CPRS DEBUG LOG",ORKEY,"RPCS",ORI)=ORDATA
  1. Q
  1. ;
  1. SAVEDESC(ORY,ORKEY,ORDATA) ;
  1. ;
  1. S ^XTMP("CPRS DEBUG LOG",0)=$$FMADD^XLFDT($$NOW^XLFDT,60)_U_$$NOW^XLFDT
  1. M ^XTMP("CPRS DEBUG LOG",ORKEY,"DESCRIPTION")=ORDATA
  1. N XMSUB,XMY,XMTEXT,XMDUZ,ORTEXT
  1. S ORTEXT(1)="Run option OR DEBUG REPORT to view information about this Debug Report."
  1. S XMDUZ=DUZ
  1. S XMSUB="NEW DEBUG REPORT SUBMITTED BY "_$P($G(^VA(200,+ORKEY,0)),U)_" AT "_$P(ORKEY,U,2)
  1. ; *498 get list of recipients from new parameter, quit if no recipients
  1. N LIST D GETLST^XPAR(.LIST,"400;DIC(4.2,","OR CPRS DEBUG EMAIL") Q:'+LIST
  1. S LIST=0 F S LIST=$O(LIST(LIST)) Q:'+LIST S XMY($P(LIST(LIST),U,2))=""
  1. ; *498
  1. S XMTEXT="ORTEXT("
  1. D ^XMD
  1. Q
  1. EN ;
  1. W @IOF
  1. N DESC,POP,RTN,SAVE
  1. S DESC="CPRS Debug Log Viewer",RTN="LOG^ORDEBUG" ; ,SAVE("*")=""
  1. W ! D EN^XUTMDEVQ(RTN,DESC,.SAVE)
  1. Q
  1. LOG ;
  1. ;
  1. N DATA,DLM S DATA=$NA(^XTMP("CPRS DEBUG LOG")),DLM=","
  1. N INFO S INFO=$NA(^XTMP("DEBUG LOG VIEW",$J))
  1. K @INFO
  1. ;
  1. ; ^XTMP format
  1. ; P1="<usr IEN>^DD/MM/YYYY HH:MM:SS"
  1. ; P2=type of data [description, rpc, etc.]
  1. ; P3=counter for type
  1. ; P4=counter for # of lines in type
  1. ;
  1. W """USER"",""DATE"",""TIME"",""RPC #"",""DESCRIPTION/RPC"",""PARAMETERS"",""RESULTS"""
  1. ;
  1. ; get XTMP data and sort for various output
  1. N P1,P2,P3,P4
  1. S P1=0 F S P1=$O(@DATA@(P1)) Q:'+P1 S P2="" F S P2=$O(@DATA@(P1,P2)) Q:P2="" S P3="" F S P3=$O(@DATA@(P1,P2,P3)) Q:P3="" D
  1. . N DEV,DATE,TIME
  1. . S DEV=$$GET1^DIQ(200,$P(P1,U),.01)
  1. . S DATE=$P($P(P1,U,2)," ")
  1. . S TIME=$P($P(P1,U,2)," ",2)
  1. . I P2="DESCRIPTION" D
  1. . . S:P3=0 @INFO@(DEV,DATE,TIME,0,0,P2,0)=@DATA@(P1,P2,P3)
  1. . . S:P3'=0 @INFO@(DEV,DATE,TIME,0,0,P2,P3)=@DATA@(P1,P2,P3)
  1. . N RSLTS S RSLTS=0 S P4="" F S P4=$O(@DATA@(P1,P2,P3,P4)) Q:P4="" D
  1. . . ;I P3'=4 Q ; ***** control number of results for testing
  1. . . I P4=0 S @INFO@(DEV,DATE,TIME,P3,0,"RPC",P4)=@DATA@(P1,P2,P3,P4) S P4=3 Q ; set 0 node=RPC name set P=3 to skip 1 & 2
  1. . . I P4=4,@DATA@(P1,P2,P3,P4)=" " S @INFO@(DEV,DATE,TIME,P3,1,"PARAM",P4)="",RSLTS=1 Q ; no parameters for RPC
  1. . . I @DATA@(P1,P2,P3,P4)["Results -----" S RSLTS=1 Q
  1. . . I '+RSLTS,@DATA@(P1,P2,P3,P4)'=" " S @INFO@(DEV,DATE,TIME,P3,1,"PARAM",P4)=@DATA@(P1,P2,P3,P4)
  1. . . I +RSLTS,@DATA@(P1,P2,P3,P4)'=" " S @INFO@(DEV,DATE,TIME,P3,2,"RESULT",P4)=@DATA@(P1,P2,P3,P4)
  1. ;
  1. ; ^XTMP format [RPC,Parameters,Results]
  1. ; P1=user name
  1. ; P2=date of log
  1. ; P3=time of log
  1. ; P4=RPC number
  1. ; P5=type of data numeric [0=RPC name,1=Parameter,2=Result]
  1. ; P6=type of data
  1. ; P7=line number
  1. ;
  1. N P5,P6,P7
  1. S P1="" F S P1=$O(@INFO@(P1)) Q:P1="" S P2="" F S P2=$O(@INFO@(P1,P2)) Q:P2="" S P3="" F S P3=$O(@INFO@(P1,P2,P3)) Q:P3="" S P4="" F S P4=$O(@INFO@(P1,P2,P3,P4)) Q:P4="" D
  1. . W !,$C(34),P1,$C(34),DLM,$C(34),P2,$C(34),DLM,$C(34),P3,$C(34),DLM,$C(34),P4,$C(34),DLM
  1. . S P5="" F S P5=$O(@INFO@(P1,P2,P3,P4,P5)) Q:P5="" D
  1. . . S P6="" F S P6=$O(@INFO@(P1,P2,P3,P4,P5,P6)) Q:P6="" S P7="" F S P7=$O(@INFO@(P1,P2,P3,P4,P5,P6,P7)) Q:P7="" D
  1. . . . I $O(@INFO@(P1,P2,P3,P4,P5,P6,P7),-1)="" W $C(34)
  1. . . . W $TR(@INFO@(P1,P2,P3,P4,P5,P6,P7),"""","'") ; ***** convert any double quotes into single quotes to avoid confusing Excel during import
  1. . . . I $O(@INFO@(P1,P2,P3,P4,P5,P6,P7))'="" W !
  1. . . . I $O(@INFO@(P1,P2,P3,P4,P5,P6,P7))="" W $C(34) I P4'=0 I P5=0!(P5=1) W DLM
  1. ;
  1. K @INFO
  1. Q