1 | PRCGPM1 ;WIRMFO@ALTOONA/CTB/WIRMFO/PLT/BGJ - IFCAP PURGEMASTER PROCESS PRCGPM CONT. ;12/10/97 9:53 AM
|
---|
2 | V ;;5.1;IFCAP;**95**;Oct 20, 2000
|
---|
3 | ;Per VHA Directive 2004-038, this routine should not be modified.
|
---|
4 | ;This routine contains misc functions/tools to be used by the
|
---|
5 | ;purge package
|
---|
6 | ADD(X,Y,Z) ;PARAMETER CALL TO ADD NEW ENTRY TO PURGE MASTER FILE
|
---|
7 | ;RETURNS Z=0 (ZERO) IF UNSUCCESSFUL, Z=1 (ONE) IF SUCCESSFUL
|
---|
8 | ;ARGUEMENT LIST = RECORD NUMBER (DA)^ENTRY POINT^ROUTINE NAME^VARIABLE STRING
|
---|
9 | ;X= ENTRY POINT^ROUTINE NAME
|
---|
10 | ;Y= VARIABLE STRING
|
---|
11 | NEW NODE,LAST,TOTAL,DONE
|
---|
12 | I X="" S Z=0 QUIT
|
---|
13 | L +^PRC(443.1,0):10 I '$T S Z=0 QUIT
|
---|
14 | S NODE=^PRC(443.1,0),LAST=$P(NODE,"^",3),TOTAL=$P(NODE,"^",4)
|
---|
15 | F D Q:$D(DONE)
|
---|
16 | . S LAST=LAST+1
|
---|
17 | . S:X'["^" X="^"_X
|
---|
18 | . I '$D(^PRC(443.1,LAST)) S ^PRC(443.1,LAST,0)=LAST_"^"_X_"^"_Y,$P(^PRC(443.1,0),"^",3,4)=(LAST_"^"_(TOTAL+1)),DONE=1
|
---|
19 | . QUIT
|
---|
20 | L -^PRC(443.1,0)
|
---|
21 | S Z=1 QUIT
|
---|
22 | REMOVE(DA) ;REMOVE ENTRY FROM FILE 443.1
|
---|
23 | ;PARAMATER CALL TO REMOVE RECORD 'DA' FROM FILE
|
---|
24 | NEW NODE,LAST,TOTAL
|
---|
25 | I +DA=0!(DA'=+DA) QUIT
|
---|
26 | I '$D(^PRC(443.1,DA)) QUIT
|
---|
27 | FOR L +^PRC(443.1,0):1 I Q
|
---|
28 | S NODE=^PRC(443.1,0),LAST=$P(NODE,"^",3),TOTAL=$P(NODE,"^",4)
|
---|
29 | K ^PRC(443.1,DA) S TOTAL=TOTAL-1
|
---|
30 | I DA'<LAST F S LAST=LAST-1 Q:($D(^PRC(443.1,LAST))!(LAST=0))
|
---|
31 | S $P(^PRC(443.1,0),"^",3,4)=LAST_"^"_TOTAL
|
---|
32 | L -^PRC(443.1,0)
|
---|
33 | QUIT
|
---|
34 | ADDIP(X,Y,Z) ;PARAMETER CALL TO ADD NEW ENTRY TO INPROCESS FILE
|
---|
35 | ;RETURNS Z=0 (ZERO) IF UNSUCCESSFUL, Z=DA NUMBER IF SUCCESSFUL
|
---|
36 | ;ARGUEMENT LIST = RECORD NUM (DA)^ENTRY POINT^ROUTINE NAME^VARIABLE STRING
|
---|
37 | ;X= ENTRY POINT^ROUTINE NAME
|
---|
38 | ;Y= VARIABLE STRING
|
---|
39 | NEW NODE,LAST,TOTAL,DONE
|
---|
40 | I (X="") S Z=0 QUIT
|
---|
41 | F L +^PRC(443.3,0):1 I Q
|
---|
42 | S NODE=^PRC(443.3,0),LAST=$P(NODE,"^",3),TOTAL=$P(NODE,"^",4)
|
---|
43 | F D Q:$D(DONE)
|
---|
44 | . S LAST=LAST+1
|
---|
45 | . S:X'["^" X="^"_X
|
---|
46 | . I '$D(^PRC(443.3,LAST)) S ^PRC(443.3,LAST,0)=LAST_"^"_X_"^"_Y,^(1)=$H,$P(^PRC(443.3,0),"^",3,4)=(LAST_"^"_(TOTAL+1)),DONE=LAST
|
---|
47 | . QUIT
|
---|
48 | L -^PRC(443.3,0)
|
---|
49 | S Z=DONE QUIT
|
---|
50 | REMIP(DA) ;PARAMETER CALL TO REMOVE RECORD 'DA' FROM FILE 443.3
|
---|
51 | NEW NODE,LAST,TOTAL
|
---|
52 | I +DA=0!(DA'=+DA) QUIT
|
---|
53 | I '$D(^PRC(443.3,DA)) QUIT
|
---|
54 | FOR L +^PRC(443.3,0):1 I Q
|
---|
55 | S NODE=^PRC(443.3,0),LAST=$P(NODE,"^",3),TOTAL=$P(NODE,"^",4)
|
---|
56 | K ^PRC(443.3,DA) S TOTAL=TOTAL-1
|
---|
57 | I DA'<LAST F S LAST=LAST-1 Q:($D(^PRC(443.3,LAST))!(LAST=0))
|
---|
58 | S $P(^PRC(443.3,0),"^",3,4)=LAST_"^"_TOTAL
|
---|
59 | I $O(^PRC(443.3,0))="" S $P(^PRC(443.0),"^",3,4)="^"
|
---|
60 | L -^PRC(443.3,0)
|
---|
61 | QUIT
|
---|
62 | CLN445 ;add line to delete
|
---|
63 | S MYHLD=0,MYCOUNT=0,THISCNT=0
|
---|
64 | F S MYHLD=$O(^PRC(443.1,MYHLD)) Q:'MYHLD S MYCOUNT=MYHLD
|
---|
65 | S LAST=MYCOUNT+1
|
---|
66 | S X="FIND445^PRCG238P"
|
---|
67 | S THISCNT=$P(^PRC(443.1,0),U,4)
|
---|
68 | S Y=""
|
---|
69 | S:X'["^" X="^"_X
|
---|
70 | I '$D(^PRC(443.1,LAST)) S ^PRC(443.1,LAST,0)=LAST_"^"_X_"^"_Y,$P(^PRC(443.1,0),"^",3,4)=(LAST_"^"_(THISCNT+1))
|
---|
71 | K MYHLD,MYCOUNT,THISCNT
|
---|
72 | Q
|
---|