Changeset 623 for WorldVistAEHR/trunk/r/KERNEL-XU-A4A7-USC-XG-XLF-XNOA-XPD-XQ-XVIR-ZI-ZOSF-ZOSV-ZT-ZU-%Z-XIP--XQAB--XUC--XUR--ZIN--ZTED/XUSERBLK.m
- Timestamp:
- Dec 4, 2009, 12:11:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/KERNEL-XU-A4A7-USC-XG-XLF-XNOA-XPD-XQ-XVIR-ZI-ZOSF-ZOSV-ZT-ZU-%Z-XIP--XQAB--XUC--XUR--ZIN--ZTED/XUSERBLK.m
r613 r623 1 XUSERBLK ;SF/RWF - Bulk user (new person) COMPUTER ACCESS ;02/26/2008 2 ;;8.0;KERNEL;**20,214,230,289,419,490**;Jul 10, 1995;Build 5 3 ; Per VHA Directive 2004-038, this routine should not be modified. 4 ; Option: XUSERBLK 5 ; This routine allows the Cloning of one person to a group of others. 6 A ; 7 I $G(DUZ)'>0 W !!,"You are not a known user and can't use this option." Q 8 N DIC,X,Y,XUTMP,DA,DIR,XUTERMDT,XUSER,XUY,%ZIS,XUIOP,XMQUIET 9 K ^TMP($J) 10 B1 W @IOF,!?26,"Batch Entry of New Persons" 11 W !?26,"--------------------------",!!,"Please select a person to copy from" 12 K DIC S DIC(0)="AEQZ",DIC("A")="Template PERSON: ",DIC="^VA(200," D ^DIC 13 Q:$D(DTOUT)!$D(DUOUT) 14 G B1:Y=-1 15 ; Show INFO to be copied" 16 S XUTMP=+Y,XUTMP(0)=$P(Y,U,2),DA=+Y D EN^DIQ 17 S DIR(0)="Y",DIR("A")="Is this the person whose data you want cloned" D ^DIR Q:$D(DIRUT) G B1:'Y 18 W !!,"You may enter a date, when the users that are being created/updated",!,"will no longer have access to the system." 19 S DIR(0)="DAO^DT::AEF" 20 S DIR("A")="Enter (optional) TERMINATION DATE: " 21 D ^DIR Q:$D(DTOUT)!$D(DUOUT) 22 S XUTERMDT=Y 23 K XUSER S XUSER=0 24 B2 ; 25 W !!,?26,"Batch Entry of New Persons",!,?26,"--------------------------",! 26 W !,"Clone of: ",XUTMP(0) I XUTERMDT W ?49,"TERMINATION DATE: ",$$FMTE^XLFDT(XUTERMDT) 27 ;; 28 B3 F S XUY=$$ADD^XUSERNEW Q:XUY<0 D ;Create new entry 29 . I '$P(XUY,U,3) D 30 . . S DIR(0)="Y",DIR("A")=$P(XUY,U,2)_" is an existing user. Do you want to include" D ^DIR I Y'=1 S XUY=-1 Q 31 . . S DIR(0)="Y",DIR("A")="Clear out KEYS, FILES, SECONDARY MENUS first" D ^DIR 32 . . S:Y=1 $P(XUY,U,4)=1 33 . . Q 34 . I XUY>0 D 35 . . S DIR(0)="Y",DIR("A")="Do You Want To Clone PERSON CLASS" D ^DIR 36 . . S:Y=1 $P(XUY,U,5)=1 37 . S:XUY>0 XUSER=XUSER+1,XUSER(XUSER)=XUY W !!,"Next!" 38 . Q 39 B4 ; 40 Q:XUSER'>0 41 I XUTERMDT D 42 . N XUZT 43 . S XUZT("ZTDTH")=XUTERMDT 44 . W !!,"Queueing automatic deactivation for ",$$FMTE^XLFDT(XUTERMDT) 45 . S X=$$NODEV^XUTMDEVQ("CHECK^XUSTERM1",,,.XUZT,1) 46 W !!,"Where do you want to print the COMPUTER ACCOUNT NOTIFICATION LETTERS?" 47 S XMQUIET=1 48 S %ZIS="NMQ" D ^%ZIS Q:POP ; "N" means don't open device 49 K XMQUIET 50 S XUIOP=ION_";"_IOST_";"_IOM_";"_IOSL 51 D HOME^%ZIS 52 ;I ION["P-MESSAGE-HFS" G START 53 I '$D(IO("Q")) G CLONE 54 START ; 55 N XUZT 56 S XUZT("ZTDTH")=$H 57 S X=$$NODEV^XUTMDEVQ("CLONE^XUSERBLK",,"XUIOP;XUTMP;XUTERMDT;XUSER;XUSER(",.XUZT,1) 58 Q 59 ;; 60 CLONE ;;Do work 61 N XUTEXT,XU1,%,DA,XUNEW,XUPURGE 62 S XUTEXT=$O(^DIC(9.2,"B",$$GET^XUPARAM("XUSER COMPUTER ACCOUNT","N"),0)) 63 F XU1=1:1:XUSER S %=XUSER(XU1),DA=+%,XUNEW=$P(%,U,3),XUPURGE=$P(%,U,4) D C2,UPDATE("ORD",DA) 64 K ^TMP($J) 65 Q 66 C2 ; 67 N XUU,XUU2,XFDA,XUH,XUH2,XIEN,XERR,Y,XMZ,XMM,XMDT 68 I '$D(ZTQUEUED) W !!?8,$S(XUNEW:"CREATING A NEW ACCOUNT FOR '"_$P(XUSER(XU1),U,2)_"'",1:"CONVERTING "_$P(XUSER(XU1),U,2)_"'S ACCOUNT OVER"),!!,"One moment please..." 69 D BLDFDA 70 I $P(^VA(200,DA,0),U,3)']"" S XUNEW=1 ;if no access code treat as new 71 I $P($G(^VA(200,DA,.1)),U,2)']"" S XUNEW=1 ;If no verify code treat as new 72 S (XUU,XUU2)="unchanged",$P(^VA(200,DA,0),U,11)=XUTERMDT 73 I XUNEW D ACODE S @XFDA@(200,DA_",",2)=XUH D VCODE S @XFDA@(200,DA_",",11)=XUH2 74 D UPDATE^DIE("",XFDA,XIEN,"XERR") K @XFDA 75 I XUNEW,XUTEXT>0 D LET(DA,XUTEXT) 76 I $D(^XMB(3.7,DA,0))[0 S Y=DA K XMZ D NEW^XM K XMDT,XMM,XMZ 77 Q 78 ; 79 BLDFDA ;Build the FDA 80 N X2,X3,X4,X5,X6,X7,XUNODE,XU 81 S XFDA="^TMP($J,""XFDA"")",XIEN="^TMP($J,""XIEN"")" K ^TMP($J) 82 ;Move piece on nodes from list, Build XU only once 83 F X2=1:1 S XUNODE=$P($T(DATA+X2),";;",2) Q:XUNODE="" D 84 . F X3=1:1 S X7=$P(XUNODE,U,X3) Q:X7="" S X4=$$GETDD(200,X7),X5=$P(X4,";"),X6=$P(X4,";",2) D 85 . . I '$D(XU(2,X5)) S XU(2,X5)=$G(^VA(200,XUTMP,X5)) 86 . . S:$P(XU(2,X5),U,X6)]"" @XFDA@(200,DA_",",X7)=$P(XU(2,X5),U,X6) 87 . . Q 88 . Q 89 D SUBFILE 90 Q 91 ; 92 GETDD(FI,FE) ;Return node;piece for a field 93 Q $P($G(^DD(FI,FE,0)),U,4) 94 ; 95 DATA ;;field# 96 ;;3^8^15^29^28 97 ;;200.04^200.05^200.06^200.09^200.1^201^ 98 ;;41^41.1^41.2 99 ;;101.01^101.02 100 ;;9.21^9.22 101 ;; 102 ; 103 ACODE ; 104 N Z 105 F Z=0:0 S XUU=$$AC^XUS4(),XUH=$$EN^XUSHSH(XUU) Q:'($D(^VA(200,"AOLD",XUH))!$D(^VA(200,"A",XUH))) 106 Q 107 ; 108 VCODE ; 109 S XUU2=$$VC^XUS4(),XUH2=$$EN^XUSHSH(XUU2) 110 Q 111 ; 112 SUBFILE ;Move subfiles: Subscript, Subfile#, DINUM, Fields 113 N XCNT S XCNT=0 114 KEY D MULTI(51,200.051,1,".01,3") 115 PATH ;D MULTI(19.8,".01") 116 FOF D MULTI("FOF",200.032,1,".01,1,2,3,4,5,6") 117 DIV D MULTI(2,200.02,1,".01") 118 SEC D MULTI(203,200.03,0,".01,2") 119 TAB D MULTI("ORD",200.010113,0,".01,.02,.03") 120 PSCLSS I $P($G(XUSER(XU1)),U,5)=1 D PRSNCL(DA) 121 Q 122 ; 123 MULTI(XSS,XSF,XDN,XDD) ;Build new data 124 I XUPURGE D CLEAR(DA,XSS) 125 Q:'$D(^VA(200,XUTMP,XSS,0)) 126 ;S X=^(0),Y=$S($D(^VA(200,DA,X2,0)):^(0),1:"") 127 F X1=0:0 S X1=$O(^VA(200,XUTMP,XSS,X1)) Q:X1'>0 S X=^(X1,0) D 128 . F X2=1:1 S X3=$P(XDD,",",X2) Q:X3="" D 129 . . I X3'=.01 S @XFDA@(XSF,"?+"_XCNT_","_DA_",",X3)=$$VAL(X,X3,XSF) Q 130 . . S XCNT=XCNT+1,@XFDA@(XSF,"?+"_XCNT_","_DA_",",.01)=$P(X,U,1) 131 . . S:XDN @XIEN@(XCNT)=X1 132 . . Q 133 . Q 134 Q 135 ; 136 VAL(V,FE,FI) ;Get value 137 N % S %=$$GETDD(FI,FE),%=$P(%,";",2) Q $P(V,"^",%) 138 ; 139 LET(DA,XUTEXT) ;Write access letter 140 N DIWF,FR,TO,BY,IOP 141 S DIWF="^DIC(9.2,"_XUTEXT_",1,",DIWF(1)=200,FR=DA,TO=DA,BY="NUMBER",IOP=XUIOP D EN2^DIWF 142 Q 143 ; 144 CLEAR(X4,X2) ;Clear subfile first, IEN, Subscript 145 Q:$D(^VA(200,X4,X2,0))[0 N C,XUFN,XDEL,XMSG 146 S C=",",XDEL=$NA(^TMP($J,"XUBLK2")),XUFN=+$P(^VA(200,X4,X2,0),"^",2) 147 F X1=0:0 S X1=$O(^VA(200,X4,X2,X1)) Q:X1'>0 D 148 . I X2=51 S %=$$DEL^XQKEY(X4,X1) Q ;Special case for KEYS 149 . S @XDEL@(XUFN,X1_C_X4_C,.01)="@" 150 . Q 151 I $D(@XDEL)>1 D FILE^DIE("",XDEL,"XMSG") ;I $D(XMSG) ZW XMSG 152 Q 153 ; 154 UPDATE(XX,USRIEN) ;Update effective date 155 N PC,PC1 156 S PC=$O(^VA(200,USRIEN,XX,"A"),-1) Q:PC'>0 157 S PC=0 F S PC=$O(^VA(200,USRIEN,XX,PC)) Q:PC'>0 D 158 .S PC1=$P($G(^VA(200,USRIEN,XX,PC,0)),"^",3) 159 .I (PC1="")!(PC1'<DT) D DOPD 160 Q 161 ; 162 DOPD ; 163 L +^VA(200,DA,XX,PC,0):20 I '$T D Q 164 .W !,"===> The user is locked. Please try this option again." 165 S $P(^VA(200,USRIEN,XX,PC,0),"^",2)=DT 166 L -^VA(200,USRIEN,XX,PC,0) 167 Q 168 ; 169 PRSNCL(USERIEN) ; 170 N XUDATA,XUPSC,XUEFDA,XUEXDA,ZZ 171 S XUDATA=$O(^VA(200,XUTMP,"USC1","A"),-1) Q:XUDATA'>0 172 S XUDATA=$G(^VA(200,XUTMP,"USC1",XUDATA,0)) Q:XUDATA="" 173 S XUPSC=$P(XUDATA,"^") 174 S XUEFDA=$P(XUDATA,"^",2) I XUEFDA'>DT S XUEFDA=DT 175 S XUEXDA=$P(XUDATA,"^",3) 176 I XUEXDA<DT,XUEXDA'="" Q 177 N XULAST,XULDATA 178 S XULAST=$O(^VA(200,USERIEN,"USC1","A"),-1) 179 S ZZ(1,200.05,"+2,"_USERIEN_",",.01)=XUPSC 180 S ZZ(1,200.05,"+2,"_USERIEN_",",2)=XUEFDA 181 S ZZ(1,200.05,"+2,"_USERIEN_",",3)=XUEXDA 182 D UPDATE^DIE("","ZZ(1)") 183 Q:XULAST'>0 184 S XULDATA=$G(^VA(200,USERIEN,"USC1",XULAST,0)) 185 S XULDATA=$P(XULDATA,"^",3) 186 Q:XULDATA'>DT 187 S $P(^VA(200,USERIEN,"USC1",XULAST,0),"^",3)=DT 188 Q 1 XUSERBLK ;SF/RWF - Bulk user (new person) COMPUTER ACCESS ; 5/23/2006 2 ;;8.0;KERNEL;**20,214,230,289,419**;Jul 10, 1995;Build 5 3 ; This routine allows the Cloning of one person to a group of others. 4 A ; 5 I $G(DUZ)'>0 W !!,"You are not a known user and can't use this option." Q 6 N DIC,DIR,%,L,XUIOP,XUNODE,XU1,X1,X2,X3,X4,X5,X6,XUTEXT,XUNEW,XUSER,XUTMP,XUTERMDT,XUH,XUU,XUU2,M,P,XU 7 K ^TMP($J) 8 B1 W @IOF,!?26,"Batch Entry of New Persons" 9 W !?26,"--------------------------",!!,"Please select a person to copy from" 10 K DIC S DIC(0)="AEQZ",DIC("A")="Template PERSON: ",DIC="^VA(200," D ^DIC 11 G QUIT:$D(DTOUT)!$D(DUOUT),B1:Y=-1 12 ; Show INFO to be copied" 13 S XUTMP=+Y,XUTMP(0)=$P(Y,U,2),DA=+Y D EN^DIQ 14 S DIR(0)="Y",DIR("A")="Is this the person data you want cloned" D ^DIR G B1:'Y 15 W !,"You may enter a date, when the users that are being created/updated",!,"will no longer have access to the system." 16 S XUTERMDT="",%DT="AEF",%DT(0)=DT,%DT("A")="Enter (optional) TERMINATION DATE: " D ^%DT S:Y>0 XUTERMDT=Y 17 K XUSER S XUSER=0 18 B2 ; 19 W !!,?26,"Batch Entry of New Persons",!,?26,"--------------------------",! 20 W !,"Clone of: ",XUTMP(0) I XUTERMDT W ?50,"TERMINATION DATE: ",$$FMTE^XLFDT(XUTERMDT) 21 ;; 22 B3 F S XUY=$$ADD^XUSERNEW Q:XUY<0 D ;Create new entry 23 . I '$P(XUY,U,3) D 24 . . S DIR(0)="Y",DIR("A")=$P(XUY,U,2)_" is an existing user. Do you want to include" D ^DIR I Y'=1 S XUY=-1 Q 25 . . S DIR(0)="Y",DIR("A")="Clear out KEYS, FILES, SECONDARY MENUS first" D ^DIR 26 . . S:Y=1 $P(XUY,U,4)=1 27 . . Q 28 . I XUY>0 D 29 . . S DIR(0)="Y",DIR("A")="Do You Want To Clone PERSON CLASS" D ^DIR 30 . . S:Y=1 $P(XUY,U,5)=1 31 . S:XUY>0 XUSER=XUSER+1,XUSER(XUSER)=XUY W !,"Next!",! 32 . Q 33 B4 ; 34 G:XUSER'>0 QUIT 35 I XUTERMDT>0 S ZTRTN="CHECK^XUSTERM1",ZTIO="",ZTDTH=XUTERMDT D ^%ZTLOAD W !,"Automatic deactivation has been queued for this date.",! 36 W !!,"Where do you want to print the COMPUTER ACCOUNT NOTIFICATION LETTERS" 37 S %ZIS="MQ" D ^%ZIS G QUIT:POP 38 I ION["P-MESSAGE-HFS" G START 39 I '$D(IO("Q")) G CLONE 40 START ; 41 S ZTRTN="CLONE^XUSERBLK" F I="XUTMP","XUTERMDT","XUSER","XUSER(" S ZTSAVE(I)="" 42 K IO("Q") D ^%ZTLOAD 43 ;; 44 QUIT ; 45 K DIC,DIR,%,L,XUIOP,XUNODE,XU1,X1,X2,X3,X4,X5,X6,XUTEXT,XUNEW,XUSER,XUTMP,XUTERMDT,XUH,XUU,XUU2,M,P,XU 46 K ^TMP($J) 47 Q 48 ;; 49 CLONE ;;Do work 50 S XUTEXT=$O(^DIC(9.2,"B",$$GET^XUPARAM("XUSER COMPUTER ACCOUNT","N"),0)),XUIOP=ION_";"_IOST_";"_IOM_";"_IOSL 51 F XU1=1:1:XUSER S %=XUSER(XU1),DA=+%,XUNEW=$P(%,U,3),XUPURGE=$P(%,U,4) D C2,UPDATE("ORD",DA) 52 G QUIT 53 ; 54 C2 ; 55 N XUH,XUH2,XUU,XUU2 56 I '$D(ZTQUEUED) W !!?8,$S(XUNEW:"CREATING A NEW ACCOUNT FOR '"_$P(XUSER(XU1),U,2)_"'",1:"CONVERTING "_$P(XUSER(XU1),U,2)_"'S ACCOUNT OVER"),!!,"One moment please..." 57 D BLDFDA 58 I $P(^VA(200,DA,0),U,3)']"" S XUNEW=1 ;if no access code treat as new 59 I $P($G(^VA(200,DA,.1)),U,2)']"" S XUNEW=1 ;If no verify code treat as new 60 S (XUU,XUU2)="unchanged",$P(^VA(200,DA,0),U,11)=XUTERMDT 61 I XUNEW D ACODE S @XFDA@(200,DA_",",2)=XUH D VCODE S @XFDA@(200,DA_",",11)=XUH2 62 D UPDATE^DIE("",XFDA,XIEN,"XERR") K @XFDA 63 I XUNEW,XUTEXT>0 D LET(DA,XUTEXT) 64 I $D(^XMB(3.7,DA,0))[0 S Y=DA K XMZ D NEW^XM K XMDT,XMM,XMZ 65 Q 66 ; 67 BLDFDA ;Build the FDA 68 S XFDA="^TMP($J,""XFDA"")",XIEN="^TMP($J,""XIEN"")" K ^TMP($J) 69 ;Move piece on nodes from list, Build XU only once 70 F X2=1:1 S XUNODE=$P($T(DATA+X2),";;",2) Q:XUNODE="" D 71 . F X3=1:1 S X7=$P(XUNODE,U,X3) Q:X7="" S X4=$$GETDD(200,X7),X5=$P(X4,";"),X6=$P(X4,";",2) D 72 . . I '$D(XU(2,X5)) S XU(2,X5)=$G(^VA(200,XUTMP,X5)) 73 . . S:$P(XU(2,X5),U,X6)]"" @XFDA@(200,DA_",",X7)=$P(XU(2,X5),U,X6) 74 . . Q 75 . Q 76 D SUBFILE 77 Q 78 ; 79 GETDD(FI,FE) ;Return node;piece for a field 80 Q $P($G(^DD(FI,FE,0)),U,4) 81 ; 82 DATA ;;field# 83 ;;3^8^15^29^28 84 ;;200.04^200.05^200.06^200.09^200.1^201^ 85 ;;41^41.1^41.2 86 ;;101.01^101.02 87 ;;9.21^9.22 88 ;; 89 ; 90 ACODE ; 91 F Z=0:0 S XUU=$$AC^XUS4(),XUH=$$EN^XUSHSH(XUU) Q:'($D(^VA(200,"AOLD",XUH))!$D(^VA(200,"A",XUH))) 92 Q 93 ; 94 VCODE ; 95 S XUU2=$$VC^XUS4(),XUH2=$$EN^XUSHSH(XUU2) 96 Q 97 ; 98 SUBFILE ;Move subfiles: Subscript, Subfile#, DINUM, Fields 99 N XCNT S XCNT=0 100 KEY D MULTI(51,200.051,1,".01,3") 101 PATH ;D MULTI(19.8,".01") 102 FOF D MULTI("FOF",200.032,1,".01,1,2,3,4,5,6") 103 DIV D MULTI(2,200.02,1,".01") 104 SEC D MULTI(203,200.03,0,".01,2") 105 TAB D MULTI("ORD",200.010113,0,".01,.02,.03") 106 PSCLSS I $P($G(XUSER(XU1)),U,5)=1 D PRSNCL(DA) 107 Q 108 ; 109 MULTI(XSS,XSF,XDN,XDD) ;Build new data 110 I XUPURGE D CLEAR(DA,XSS) 111 Q:'$D(^VA(200,XUTMP,XSS,0)) 112 ;S X=^(0),Y=$S($D(^VA(200,DA,X2,0)):^(0),1:"") 113 F X1=0:0 S X1=$O(^VA(200,XUTMP,XSS,X1)) Q:X1'>0 S X=^(X1,0) D 114 . F X2=1:1 S X3=$P(XDD,",",X2) Q:X3="" D 115 . . I X3'=.01 S @XFDA@(XSF,"?+"_XCNT_","_DA_",",X3)=$$VAL(X,X3,XSF) Q 116 . . S XCNT=XCNT+1,@XFDA@(XSF,"?+"_XCNT_","_DA_",",.01)=$P(X,U,1) 117 . . S:XDN @XIEN@(XCNT)=X1 118 . . Q 119 . Q 120 Q 121 ; 122 VAL(V,FE,FI) ;Get value 123 N % S %=$$GETDD(FI,FE),%=$P(%,";",2) Q $P(V,"^",%) 124 ; 125 LET(DA,XUTEXT) ;Write access letter 126 N DIWF,FR,TO,BY 127 S DIWF="^DIC(9.2,"_XUTEXT_",1,",DIWF(1)=200,FR=DA,TO=DA,BY="NUMBER",IOP=XUIOP D EN2^DIWF 128 Q 129 ; 130 CLEAR(X4,X2) ;Clear subfile first, IEN, Subscript 131 Q:$D(^VA(200,X4,X2,0))[0 N C,XUFN,XDEL,XMSG 132 S C=",",XDEL=$NA(^TMP($J,"XUBLK2")),XUFN=+$P(^VA(200,X4,X2,0),"^",2) 133 F X1=0:0 S X1=$O(^VA(200,X4,X2,X1)) Q:X1'>0 D 134 . I X2=51 S %=$$DEL^XQKEY(X4,X1) Q ;Special case for KEYS 135 . S @XDEL@(XUFN,X1_C_X4_C,.01)="@" 136 . Q 137 I $D(@XDEL)>1 D FILE^DIE("",XDEL,"XMSG") ;I $D(XMSG) ZW XMSG 138 Q 139 ; 140 UPDATE(XX,USRIEN) ;Update effective date 141 N PC,PC1 142 S PC=$O(^VA(200,USRIEN,XX,"A"),-1) Q:PC'>0 143 S PC=0 F S PC=$O(^VA(200,USRIEN,XX,PC)) Q:PC'>0 D 144 .S PC1=$P($G(^VA(200,USRIEN,XX,PC,0)),"^",3) 145 .I (PC1="")!(PC1'<DT) D DOPD 146 Q 147 ; 148 DOPD ; 149 L +^VA(200,DA,XX,PC,0):20 I '$T D Q 150 .W !,"===> The user is locked. Please try this option again." 151 S $P(^VA(200,USRIEN,XX,PC,0),"^",2)=DT 152 L -^VA(200,USRIEN,XX,PC,0) 153 Q 154 ; 155 PRSNCL(USERIEN) ; 156 N XUDATA,XUPSC,XUEFDA,XUEXDA,ZZ 157 S XUDATA=$O(^VA(200,XUTMP,"USC1","A"),-1) Q:XUDATA'>0 158 S XUDATA=$G(^VA(200,XUTMP,"USC1",XUDATA,0)) Q:XUDATA="" 159 S XUPSC=$P(XUDATA,"^") 160 S XUEFDA=$P(XUDATA,"^",2) I XUEFDA'>DT S XUEFDA=DT 161 S XUEXDA=$P(XUDATA,"^",3) 162 I XUEXDA<DT,XUEXDA'="" Q 163 N XULAST,XULDATA 164 S XULAST=$O(^VA(200,USERIEN,"USC1","A"),-1) 165 S ZZ(1,200.05,"+2,"_USERIEN_",",.01)=XUPSC 166 S ZZ(1,200.05,"+2,"_USERIEN_",",2)=XUEFDA 167 S ZZ(1,200.05,"+2,"_USERIEN_",",3)=XUEXDA 168 D UPDATE^DIE("","ZZ(1)") 169 Q:XULAST'>0 170 S XULDATA=$G(^VA(200,USERIEN,"USC1",XULAST,0)) 171 S XULDATA=$P(XULDATA,"^",3) 172 Q:XULDATA'>DT 173 S $P(^VA(200,USERIEN,"USC1",XULAST,0),"^",3)=DT 174 Q
Note:
See TracChangeset
for help on using the changeset viewer.