| 1 | DDGFPG ;SFISC/MKO-ADD A NEW PAGE ;2:26 PM  13 Sep 1995
 | 
|---|
| 2 |  ;;22.0;VA FileMan;;Mar 30, 1999
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | ADD ;Invoke forms to add a new page
 | 
|---|
| 6 |  S DDGFDY=DY,DDGFDX=DX K DDGFPNUM
 | 
|---|
| 7 |  ;
 | 
|---|
| 8 |  ;Ask for new page number
 | 
|---|
| 9 |  S DDSFILE=.403,DDSFILE(1)=.4031
 | 
|---|
| 10 |  S DA(1)=+DDGFFM,DA="",DR="[DDGF PAGE ADD]",DDSPARM="KTW"
 | 
|---|
| 11 |  D ^DDS K DDSFILE,DA,DR,DDSPARM
 | 
|---|
| 12 |  ;
 | 
|---|
| 13 |  G:$D(DDGFPNUM)[0 ADDQ
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 |  ;Ask 'are you sure' page should be added
 | 
|---|
| 16 |  K DDGFANS
 | 
|---|
| 17 |  S DDSFILE=.403,DDSFILE(1)=.4031
 | 
|---|
| 18 |  S DR="[DDGF PAGE ADD]",DA(1)=+DDGFFM,DA="",DDSPARM="KTW",DDSPAGE=11
 | 
|---|
| 19 |  D ^DDS K DDSFILE,DA,DR,DDSPARM,DDSPAGE
 | 
|---|
| 20 |  ;
 | 
|---|
| 21 |  I '$G(DDGFANS) K DDGFANS G ADDQ
 | 
|---|
| 22 |  K DDGFANS
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 |  ;Add page to form
 | 
|---|
| 25 |  S DIC="^DIST(.403,+DDGFFM,40,",DIC(0)="L",DA(1)=+DDGFFM
 | 
|---|
| 26 |  S DIC("P")=$P(^DD(.403,40,0),U,2),X=DDGFPNUM
 | 
|---|
| 27 |  K DD,DO D FILE^DICN K DIC,DA,X G:Y=-1 ADDQ
 | 
|---|
| 28 |  S DDGFPG=+Y
 | 
|---|
| 29 |  ;
 | 
|---|
| 30 |  ;Stuff in values for coordinates and name
 | 
|---|
| 31 |  S DIE="^DIST(.403,"_+DDGFFM_",40,",DA(1)=+DDGFFM,DA=DDGFPG
 | 
|---|
| 32 |  S DR="2////1,1;7////Page "_DDGFPNUM
 | 
|---|
| 33 |  D ^DIE K DIE,DA,DR
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 |  K DDGFPNUM
 | 
|---|
| 36 |  D LOADPG
 | 
|---|
| 37 |  S DDGFNEW=1
 | 
|---|
| 38 |  G EDIT
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 | ADDQ D REFRESH^DDGF,RC(DDGFDY,DDGFDX)
 | 
|---|
| 41 |  K DDGFPNUM,DDGFDY,DDGFDX
 | 
|---|
| 42 |  Q
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 | EDIT ;Invoke form to edit a page
 | 
|---|
| 45 |  ;Input:  DDGFNEW (optional)
 | 
|---|
| 46 |  ;  Set by ADD to indicate this is a brand new page.
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  S DDGFDY=DY,DDGFDX=DX
 | 
|---|
| 49 |  S DDGFND=@DDGFREF@("F",DDGFPG)
 | 
|---|
| 50 |  S (DDGFTLC,DDGFTLC0)=$P(DDGFND,U)+1_","_($P(DDGFND,U,2)+1)
 | 
|---|
| 51 |  S (DDGFLRC,DDGFLRC0)=$S($P(DDGFND,U,3)]"":$P(DDGFND,U,3)+1_","_($P(DDGFND,U,4)+1),1:"")
 | 
|---|
| 52 |  S (DDGFPNM,DDGFPNM0)=$P(DDGFND,U,5)
 | 
|---|
| 53 |  S DDGFPAR=$P($G(^DIST(.403,+DDGFFM,40,DDGFPG,1)),U,2)
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 |  S DDSFILE=.403,DDSFILE(1)=.4031,DDSPARM="KTW"
 | 
|---|
| 56 |  S DA(1)=+DDGFFM,DA=DDGFPG,DR="[DDGF PAGE EDIT]"
 | 
|---|
| 57 |  D ^DDS K DDSFILE,DA,DR,DDSPARM
 | 
|---|
| 58 |  ;
 | 
|---|
| 59 |  S DDGFND=$G(^DIST(.403,+DDGFFM,40,DDGFPG,0))
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 |  ;If page was deleted, destroy windows and set new page
 | 
|---|
| 62 |  I DDGFND="" D  Q:DDGFE
 | 
|---|
| 63 |  . I $D(DDGFWID)#2,$$EXIST^DDGLIBW(DDGFWID) D DESTROY^DDGLIBW(DDGFWID)
 | 
|---|
| 64 |  . I $D(DDGFWIDB)#2,$$EXIST^DDGLIBW(DDGFWIDB) D DESTROY^DDGLIBW(DDGFWIDB)
 | 
|---|
| 65 |  . K @DDGFREF@("F",DDGFPG),@DDGFREF@("RC",DDGFWID),@DDGFREF@("BKRC",DDGFWIDB)
 | 
|---|
| 66 |  . I $D(@DDGFREF@("ASUB","B",DDGFPG)) D DEL^DDGFASUB(DDGFPG)
 | 
|---|
| 67 |  . S DDGFPG=$O(^DIST(.403,+DDGFFM,40,"B",""))
 | 
|---|
| 68 |  . S:DDGFPG]"" DDGFPG=$O(^DIST(.403,+DDGFFM,40,"B",DDGFPG,""))
 | 
|---|
| 69 |  . D LOADPG,REFRESH^DDGF,RC(DDGFDY,DDGFDX)
 | 
|---|
| 70 |  ;
 | 
|---|
| 71 |  E  D
 | 
|---|
| 72 |  . S:DDGFPNM'=DDGFPNM0 $P(@DDGFREF@("F",DDGFPG),U,5)=DDGFPNM,$P(^(DDGFPG),U,7)=1,DDGFCHG=1
 | 
|---|
| 73 |  . D:DDGFPAR'=$P($G(^DIST(.403,+DDGFFM,40,DDGFPG,1)),U,2) EDIT^DDGFASUB(DDGFPG)
 | 
|---|
| 74 |  . I DDGFTLC'=DDGFTLC0!(DDGFLRC'=DDGFLRC0) D
 | 
|---|
| 75 |  .. D PAGE^DDGFUPDP($P(DDGFTLC,",")-1,$P(DDGFTLC,",",2)-1,$S(DDGFLRC]"":$P(DDGFLRC,",")-1,1:""),$S(DDGFLRC]"":$P(DDGFLRC,",",2)-1,1:""),$S(DDGFTLC=DDGFTLC0:"PBRC",1:"PTOP"))
 | 
|---|
| 76 |  .. D STATUS^DDGF,RC($P(DDGFLIM,U),$P(DDGFLIM,U,2))
 | 
|---|
| 77 |  . E  D REFRESH^DDGF,RC(DDGFDY,DDGFDX)
 | 
|---|
| 78 |  ;
 | 
|---|
| 79 |  K DDGFDX,DDGFDY,DDGFND,DDGFNEW
 | 
|---|
| 80 |  K DDGFLRC,DDGFLRC0,DDGFPOP,DDGFPOP0,DDGFTLC,DDGFTLC0
 | 
|---|
| 81 |  K DDGFPAR,DDGFPNM,DDGFPNM0
 | 
|---|
| 82 |  Q
 | 
|---|
| 83 |  ;
 | 
|---|
| 84 | PGSEL ;Select a new page
 | 
|---|
| 85 |  S DDGFDY=DY,DDGFDX=DX,DDGFPAGE=DDGFPG
 | 
|---|
| 86 |  ;
 | 
|---|
| 87 |  S DDSFILE=.403,DDSFILE(1)=.4031
 | 
|---|
| 88 |  S DR="[DDGF PAGE SELECT]",DDSPARM="KTW"
 | 
|---|
| 89 |  D ^DDS
 | 
|---|
| 90 |  K DDSFILE,DA,DR,DDSPAGE,DDSPARM
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 |  I DDGFPAGE]"",DDGFPAGE'=DDGFPG S DDGFPG=DDGFPAGE D LOADPG
 | 
|---|
| 93 |  ;
 | 
|---|
| 94 |  D REFRESH^DDGF,RC(DDGFDY,DDGFDX)
 | 
|---|
| 95 |  K DDGFPAGE,DDGFDY,DDGFDX
 | 
|---|
| 96 |  Q
 | 
|---|
| 97 |  ;
 | 
|---|
| 98 | NXTPRV(F) ;Go to page
 | 
|---|
| 99 |  ;F=1:next page; -1:previous page
 | 
|---|
| 100 |  S DDGFPAGE=$P($G(^DIST(.403,+DDGFFM,40,DDGFPG,0)),U,$S($G(F)=-1:5,1:4))
 | 
|---|
| 101 |  G:DDGFPAGE="" NXTPRVQ
 | 
|---|
| 102 |  S DDGFPAGE=$O(^DIST(.403,+DDGFFM,40,"B",DDGFPAGE,""))
 | 
|---|
| 103 |  G:$D(^DIST(.403,+DDGFFM,40,+DDGFPAGE,0))[0!(DDGFPAGE=DDGFPG) NXTPRVQ
 | 
|---|
| 104 |  ;
 | 
|---|
| 105 |  S DDGFPG=DDGFPAGE
 | 
|---|
| 106 |  D LOADPG,REFRESH^DDGF,RC(DDGFDY,DDGFDX)
 | 
|---|
| 107 | NXTPRVQ K DDGFPAGE,DDGFDY,DDGFDX
 | 
|---|
| 108 |  Q
 | 
|---|
| 109 |  ;
 | 
|---|
| 110 | CLSPG ;Close page
 | 
|---|
| 111 |  Q:$G(DDGLSCR)'>1
 | 
|---|
| 112 |  D CLOSE^DDGLIBW(DDGFWID)
 | 
|---|
| 113 |  S DDGFPG=$E(DDGLSCR(DDGLSCR),2,999)
 | 
|---|
| 114 |  D PG^DDGFLOAD(+DDGFFM,DDGFPG,1)
 | 
|---|
| 115 |  D STATUS^DDGF,RC($P(DDGFLIM,U),$P(DDGFLIM,U,2))
 | 
|---|
| 116 |  Q
 | 
|---|
| 117 |  ;
 | 
|---|
| 118 | SUBPG ;Go into subpage
 | 
|---|
| 119 |  I $D(@DDGFREF@("ASUB",DDGFPG,B,F))#2 S DDGFSUBP=^(F)
 | 
|---|
| 120 |  E  D
 | 
|---|
| 121 |  . S DDGFSUBP=+$P($G(^DIST(.404,B,40,F,7)),U,2)
 | 
|---|
| 122 |  . S DDGFSUBP=+$O(^DIST(.403,+DDGFFM,40,"B",DDGFSUBP,""))
 | 
|---|
| 123 |  ;
 | 
|---|
| 124 |  I $D(^DIST(.403,+DDGFFM,40,DDGFSUBP,0))[0 W $C(7) K DDGFSUBP Q
 | 
|---|
| 125 |  I DDGFSUBP=DDGFPG K DDGFSUBP Q
 | 
|---|
| 126 |  S DDGFE=1
 | 
|---|
| 127 |  Q
 | 
|---|
| 128 |  ;
 | 
|---|
| 129 | SUBPG1 S DDGFPG=DDGFSUBP K DDGFSUBP
 | 
|---|
| 130 |  D PG^DDGFLOAD(+DDGFFM,DDGFPG)
 | 
|---|
| 131 |  D STATUS^DDGF,RC($P(DDGFLIM,U),$P(DDGFLIM,U,2))
 | 
|---|
| 132 |  Q
 | 
|---|
| 133 |  ;
 | 
|---|
| 134 | LOADPG ;Load new page
 | 
|---|
| 135 |  D PG^DDGFLOAD(+DDGFFM,DDGFPG,1)
 | 
|---|
| 136 |  S DDGFDY=$P(DDGFLIM,U),DDGFDX=$P(DDGFLIM,U,2)
 | 
|---|
| 137 |  Q
 | 
|---|
| 138 |  ;
 | 
|---|
| 139 | RC(DDGFY,DDGFX) ;Update status line, reset DX and DY, move cursor
 | 
|---|
| 140 |  N S
 | 
|---|
| 141 |  I DDGFR D
 | 
|---|
| 142 |  . S DY=IOSL-6,DX=IOM-9,S="R"_(DDGFY+1)_",C"_(DDGFX+1)
 | 
|---|
| 143 |  . X IOXY W S_$J("",7-$L(S))
 | 
|---|
| 144 |  S DY=DDGFY,DX=DDGFX X IOXY
 | 
|---|
| 145 |  Q
 | 
|---|