1 | RORTSK12 ;HCIOFO/SG - REPORT STATS UTILITIES ; 7/15/05 12:00pm
|
---|
2 | ;;1.5;CLINICAL CASE REGISTRIES;;Feb 17, 2006
|
---|
3 | ;
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | ;***** CLEARS THE STATISTICS
|
---|
7 | ;
|
---|
8 | ; REGIEN Registry IEN
|
---|
9 | ;
|
---|
10 | ; [RPTCODE] Report Code. By default ($G(RPTCODE)'>0),
|
---|
11 | ; all statistic data is deleted.
|
---|
12 | ;
|
---|
13 | CLEAR(REGIEN,RPTCODE) ;
|
---|
14 | N DA,DIK,IENS,NODE,RPIEN
|
---|
15 | S DA(1)=+REGIEN,IENS=","_DA(1)_","
|
---|
16 | S DIK=$$ROOT^DILFD(798.12,IENS)
|
---|
17 | S NODE=$$CREF^DILF(DIK)
|
---|
18 | ;
|
---|
19 | ;--- Clear the report stats
|
---|
20 | I $G(RPTCODE)>0 D Q
|
---|
21 | . S RPIEN=$$RPIEN^RORUTL08(RPTCODE) Q:RPIEN'>0
|
---|
22 | . L +@NODE@(RPTCODE):5
|
---|
23 | . S DA=$$FIND1^DIC(798.12,IENS,"QX",RPIEN,"B",,"RORMSG")
|
---|
24 | . D:DA>0 ^DIK
|
---|
25 | . L -@NODE@(RPTCODE)
|
---|
26 | ;
|
---|
27 | ;--- Clear all stats
|
---|
28 | L +@NODE:5
|
---|
29 | S DA=0 F S DA=$O(@NODE@(DA)) Q:DA'>0 D ^DIK
|
---|
30 | L -@NODE
|
---|
31 | Q
|
---|
32 | ;
|
---|
33 | ;***** INCREMENT THE NUMBER OF REPORT RUNS
|
---|
34 | ;
|
---|
35 | ; REGIEN Registry IEN
|
---|
36 | ;
|
---|
37 | ; RPTCODE Report Code
|
---|
38 | ;
|
---|
39 | ; [VAL] Increment value. By default ($G(VAL)'>0),
|
---|
40 | ; the counter is incremented by 1.
|
---|
41 | ;
|
---|
42 | INC(REGIEN,RPTCODE,VAL) ;
|
---|
43 | N IEN,IENS,NODE,RORBUF,RORFDA,RORMSG,RPIEN,TMP
|
---|
44 | S:$G(VAL)'>0 VAL=1
|
---|
45 | ;
|
---|
46 | ;--- Get IEN of the report parameters
|
---|
47 | S RPIEN=$$RPIEN^RORUTL08(RPTCODE) Q:RPIEN'>0
|
---|
48 | ;
|
---|
49 | ;--- Lock the report stats
|
---|
50 | S IENS=","_(+REGIEN)_","
|
---|
51 | S NODE=$$ROOT^DILFD(798.12,IENS,1)
|
---|
52 | L +@NODE@(RPTCODE):5
|
---|
53 | D
|
---|
54 | . ;--- Find and load the report stats
|
---|
55 | . S TMP="@;.02"
|
---|
56 | . D FIND^DIC(798.12,IENS,TMP,"QX",RPIEN,2,"B",,,"RORBUF","RORMSG")
|
---|
57 | . D:$G(DIERR) DBS^RORERR("RORMSG",-9,,,798.12,IENS)
|
---|
58 | . Q:$G(RORBUF("DILIST",0))>1
|
---|
59 | . S IEN=+$G(RORBUF("DILIST",2,1))
|
---|
60 | . ;--- Increment the counter
|
---|
61 | . S IENS=$S(IEN>0:IEN,1:"?+1")_","_(+REGIEN)_","
|
---|
62 | . S RORFDA(798.12,IENS,.01)=RPIEN
|
---|
63 | . S RORFDA(798.12,IENS,.02)=$G(RORBUF("DILIST","ID",1,.02))+VAL
|
---|
64 | . D UPDATE^DIE(,"RORFDA",,"RORMSG")
|
---|
65 | . D:$G(DIERR) DBS^RORERR("RORMSG",-9,,,798.12,IENS)
|
---|
66 | ;
|
---|
67 | ;--- Unlock the report stats
|
---|
68 | L -@NODE@(RPTCODE)
|
---|
69 | Q
|
---|
70 | ;
|
---|
71 | ;***** RETURNS THE REPORT RUN STATISTICS
|
---|
72 | ;
|
---|
73 | ; REGIEN Registry IEN
|
---|
74 | ;
|
---|
75 | ; .STATS Reference to a local array where the statistics
|
---|
76 | ; (collected since the last successful data
|
---|
77 | ; transmission) will be returned to.
|
---|
78 | ;
|
---|
79 | ; STATS( Report Statistics Summary
|
---|
80 | ; ^01: Total number of report runs
|
---|
81 | ; RptCode) Report run statistics
|
---|
82 | ; ^01: Number of report runs
|
---|
83 | ;
|
---|
84 | ; Return Values:
|
---|
85 | ; <0 Error code
|
---|
86 | ; 0 Ok
|
---|
87 | ;
|
---|
88 | STATS(REGIEN,STATS) ;
|
---|
89 | N IR,RORBUF,RORMSG,RPTCODE,TMP
|
---|
90 | K STATS S STATS="0"
|
---|
91 | ;--- Load the statistics
|
---|
92 | S TMP=","_(+REGIEN)_","
|
---|
93 | D LIST^DIC(798.12,TMP,".01I;.02","Q",,,,"B",,,"RORBUF","RORMSG")
|
---|
94 | Q:$G(DIERR) $$DBS^RORERR("RORMSG",-9,,,798.12,TMP)
|
---|
95 | ;--- Process the statistics
|
---|
96 | S IR=0
|
---|
97 | F S IR=$O(RORBUF("DILIST","ID",IR)) Q:IR'>0 D
|
---|
98 | . ;--- Get the IEN of the report parameters
|
---|
99 | . S TMP=+$G(RORBUF("DILIST","ID",IR,.01)) Q:TMP'>0
|
---|
100 | . ;--- Get the report code
|
---|
101 | . S RPTCODE=$$RPCODE^RORUTL08(TMP) Q:RPTCODE'>0
|
---|
102 | . ;--- Get the report statistics
|
---|
103 | . S TMP=+$G(RORBUF("DILIST","ID",IR,.02))
|
---|
104 | . S $P(STATS(RPTCODE),U)=TMP
|
---|
105 | . S $P(STATS,U)=$P(STATS,U)+TMP
|
---|
106 | ;---
|
---|
107 | Q 0
|
---|