DIFROM3 ;SFISC/XAK-CREATES RTN ENDING IN 'INIT2' (HELP FRAMES) ;02:44 PM 28 Nov 1994
;;22.0;VA FileMan;;Mar 30, 1999
;Per VHA Directive 10-93-142, this routine should not be modified.
S DIRS=" S DIFQ=1"
S DNAME=E_2,DL=0,(DH,Q)=" ;" K ^UTILITY($J) F DD=1:1 S X=$T(TEXT+DD) Q:X="" S ^UTILITY($J,DD,0)=$E(X,4,999) S:$E(X,4)="U" ^(0)=^(0)_DIRS
S DIFROM=2 D ZI G ^DIFROM4
;
FILE ;
D:'$D(DISYS) OS^DII S DL=0,Q="Q Q",S=" ;;"
NAME S D=$L(DH)+10
I DRN>12959 K DRN Q
S DNAME=DN_$$B36(DRN)
ZI ;
I '$D(DIFROM(1)) S %H=+$H D YX^%DTC S DIFROM(1)=$E(Y,5,6)_"-"_$E(Y,1,3)_"-"_$E(Y,9,12)
2 K ^UTILITY($J,0) S ^(0,1)=DNAME_" ; ; "_DIFROM(1),^(1.1)=DILN2
S ^UTILITY($J,0,2)=DH,^UTILITY($J,0,3)=Q F L=4:1 S DL=$O(^UTILITY($J,DL)) Q:DL'>0 S ^UTILITY($J,0,L)=S_^(DL,0),D=$L(^(L))+D I D+380>DIFRM,$E(^(L),4)'="^",$E(^(L),4)'=$C(126) Q
S DRN=DRN+1,X=DNAME X ^DD("OS",DISYS,"ZS") W !,X_" HAS BEEN FILED..." G NAME:DL>0
K K %A,%B,%C,%Z,^UTILITY($J) S DL=0 Q
;
B36(X) ;Calculate base 36 number from 0 (000) to 46,655 (ZZZ).
S X=$G(X) I X>46655 Q ""
Q $$N(X\(36*36)#36+1)_$$N(X\36#36+1)_$$N(X#36+1)
N(%) Q $E("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",%)
;
TEXT ;
;; K ^UTILITY("DIFROM",$J),DIC S DIDUZ=0 S:$D(DUZ)#2 DIDUZ=DUZ S DUZ=.5
;; I $D(^DIC(9.2,0))#2,^(0)?1"HEL".E S (DIC,DLAYGO)=9.2,N="HEL",DIC(0)="LX" G ADD
;; Q
;; ;
;;ADD F R=0:0 S R=$O(^UTILITY(U,$J,N,R)) Q:R'>0 S X=$P(^(R,0),U,1) W "." K DA D ^DIC I Y>0,'$D(DIFQ(N))!$P(Y,U,3) S ^UTILITY("DIFROM",$J,N,X)=+Y K ^DIC(9.2,+Y,1),^(2),^(3),^(10) S %X="^UTILITY(U,$J,N,R,",%Y=DIC_"+Y,",DA=+Y D %XY^%RCR
;; S DIK=DIC
;;HELP S R=$O(^UTILITY("DIFROM",$J,N,R)) Q:R="" W !,"'"_R_"' Help Frame filed." S DA=^(R)
;; F X=0:0 S X=$O(^DIC(9.2,DA,2,X)) Q:'X S I=$S($D(^(X,0)):^(0),1:0),Y=$P(I,U,2) S:Y]"" Y=$O(^DIC(9.2,"B",Y,0)) S ^(0)=$P(^DIC(9.2,DA,2,X,0),U,1)_U_$S(Y>0:Y,1:"")_U_$P(^(0),U,3,99)
;; S I=0 F X=0:0 S X=$O(^DIC(9.2,DA,10,X)) Q:'X I $D(^(X,0)) S Y=$P(^(0),U),Y=$S(Y]"":$O(^MAG("B",Y,0)),1:0) S:Y $P(^DIC(9.2,DA,10,X,0),U)=Y,I=I+1,%=X I 'Y K ^DIC(9.2,DA,10,X,0)
;; I I S $P(^DIC(9.2,DA,10,0),U,3,4)=%_U_I
;;IX D IX1^DIK G HELP
;; ;
;;U I $D(DIRUT)
;; W ! Q
;;REP S DIR(0)="Y",DIR("A")="Shall I change the NAME of the file to "_DIF
;; S DIR("??")="^D REP^DIFROMH1",DIR("B")="NO" D ^DIR G U:$D(DIRUT)
;; I Y S DIE=1,DIFQ=0,DA=N,DR=".01////"_DIF D ^DIE Q
;; S DIR("A")="Shall I replace your file with mine"
;; S DIR("??")="^D AG^DIFROMH1" D ^DIR G U:$D(DIRUT)!'Y
;; S DIU(0)="E",DIR("A")="Do you want to keep the Data"
;; S DIR("??")="^D CHG^DIFROMH1" D ^DIR G U:$D(DIRUT)
;; S:'Y DIU(0)=DIU(0)_"D"
;; S DIR("A")="Do you want to keep the Templates"
;; S DIR("??")="^D TEMP^DIFROMH1" D ^DIR G U:$D(DIRUT) S:'Y DIU(0)=DIU(0)_"T"
;; S DIFQ(N)=1,DIFKEP(N)=DIU(0) W !?15," (",DIF,") " Q
DIFROM3 ;SFISC/XAK-CREATES RTN ENDING IN 'INIT2' (HELP FRAMES) ;02:44 PM 28 Nov 1994
+1 ;;22.0;VA FileMan;;Mar 30, 1999
+2 ;Per VHA Directive 10-93-142, this routine should not be modified.
+3 SET DIRS=" S DIFQ=1"
+4 SET DNAME=E_2
SET DL=0
SET (DH,Q)=" ;"
KILL ^UTILITY($JOB)
FOR DD=1:1
SET X=$TEXT(TEXT+DD)
IF X=""
QUIT
SET ^UTILITY($JOB,DD,0)=$EXTRACT(X,4,999)
IF $EXTRACT(X,4)="U"
SET ^(0)=^(0)_DIRS
+5 SET DIFROM=2
DO ZI
GOTO ^DIFROM4
+6 ;
FILE ;
+1 IF '$DATA(DISYS)
DO OS^DII
SET DL=0
SET Q="Q Q"
SET S=" ;;"
NAME SET D=$LENGTH(DH)+10
+1 IF DRN>12959
KILL DRN
QUIT
+2 SET DNAME=DN_$$B36(DRN)
ZI ;
+1 IF '$DATA(DIFROM(1))
SET %H=+$HOROLOG
DO YX^%DTC
SET DIFROM(1)=$EXTRACT(Y,5,6)_"-"_$EXTRACT(Y,1,3)_"-"_$EXTRACT(Y,9,12)
2 KILL ^UTILITY($JOB,0)
SET ^(0,1)=DNAME_" ; ; "_DIFROM(1)
SET ^(1.1)=DILN2
+1 SET ^UTILITY($JOB,0,2)=DH
SET ^UTILITY($JOB,0,3)=Q
FOR L=4:1
SET DL=$ORDER(^UTILITY($JOB,DL))
IF DL'>0
QUIT
SET ^UTILITY($JOB,0,L)=S_^(DL,0)
SET D=$LENGTH(^(L))+D
IF D+380>DIFRM
IF $EXTRACT(^(L),4)'="^"
IF $EXTRACT(^(L),4)'=$CHAR(126)
QUIT
+2 SET DRN=DRN+1
SET X=DNAME
XECUTE ^DD("OS",DISYS,"ZS")
WRITE !,X_" HAS BEEN FILED..."
IF DL>0
GOTO NAME
K KILL %A,%B,%C,%Z,^UTILITY($JOB)
SET DL=0
QUIT
+1 ;
B36(X) ;Calculate base 36 number from 0 (000) to 46,655 (ZZZ).
+1 SET X=$GET(X)
IF X>46655
QUIT ""
+2 QUIT $$N(X\(36*36)#36+1)_$$N(X\36#36+1)_$$N(X#36+1)
N(%) QUIT $EXTRACT("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",%)
+1 ;
TEXT ;
+1 ;; K ^UTILITY("DIFROM",$J),DIC S DIDUZ=0 S:$D(DUZ)#2 DIDUZ=DUZ S DUZ=.5
+2 ;; I $D(^DIC(9.2,0))#2,^(0)?1"HEL".E S (DIC,DLAYGO)=9.2,N="HEL",DIC(0)="LX" G ADD
+3 ;; Q
+4 ;; ;
+5 ;;ADD F R=0:0 S R=$O(^UTILITY(U,$J,N,R)) Q:R'>0 S X=$P(^(R,0),U,1) W "." K DA D ^DIC I Y>0,'$D(DIFQ(N))!$P(Y,U,3) S ^UTILITY("DIFROM",$J,N,X)=+Y K ^DIC(9.2,+Y,1),^(2),^(3),^(10) S %X="^UTILITY(U,$J,N,R,",%Y=DIC_"+Y,",DA=+Y D %XY^%RCR
+6 ;; S DIK=DIC
+7 ;;HELP S R=$O(^UTILITY("DIFROM",$J,N,R)) Q:R="" W !,"'"_R_"' Help Frame filed." S DA=^(R)
+8 ;; F X=0:0 S X=$O(^DIC(9.2,DA,2,X)) Q:'X S I=$S($D(^(X,0)):^(0),1:0),Y=$P(I,U,2) S:Y]"" Y=$O(^DIC(9.2,"B",Y,0)) S ^(0)=$P(^DIC(9.2,DA,2,X,0),U,1)_U_$S(Y>0:Y,1:"")_U_$P(^(0),U,3,99)
+9 ;; S I=0 F X=0:0 S X=$O(^DIC(9.2,DA,10,X)) Q:'X I $D(^(X,0)) S Y=$P(^(0),U),Y=$S(Y]"":$O(^MAG("B",Y,0)),1:0) S:Y $P(^DIC(9.2,DA,10,X,0),U)=Y,I=I+1,%=X I 'Y K ^DIC(9.2,DA,10,X,0)
+10 ;; I I S $P(^DIC(9.2,DA,10,0),U,3,4)=%_U_I
+11 ;;IX D IX1^DIK G HELP
+12 ;; ;
+13 ;;U I $D(DIRUT)
+14 ;; W ! Q
+15 ;;REP S DIR(0)="Y",DIR("A")="Shall I change the NAME of the file to "_DIF
+16 ;; S DIR("??")="^D REP^DIFROMH1",DIR("B")="NO" D ^DIR G U:$D(DIRUT)
+17 ;; I Y S DIE=1,DIFQ=0,DA=N,DR=".01////"_DIF D ^DIE Q
+18 ;; S DIR("A")="Shall I replace your file with mine"
+19 ;; S DIR("??")="^D AG^DIFROMH1" D ^DIR G U:$D(DIRUT)!'Y
+20 ;; S DIU(0)="E",DIR("A")="Do you want to keep the Data"
+21 ;; S DIR("??")="^D CHG^DIFROMH1" D ^DIR G U:$D(DIRUT)
+22 ;; S:'Y DIU(0)=DIU(0)_"D"
+23 ;; S DIR("A")="Do you want to keep the Templates"
+24 ;; S DIR("??")="^D TEMP^DIFROMH1" D ^DIR G U:$D(DIRUT) S:'Y DIU(0)=DIU(0)_"T"
+25 ;; S DIFQ(N)=1,DIFKEP(N)=DIU(0) W !?15," (",DIF,") " Q