[613] | 1 | DIFROMSS ;SCISC/DCL-DIFROM SERVER/DATA SORT LIST/SB-DD/HDR2P ;6/2/96 18:55
|
---|
| 2 | ;;22.0;VA FileMan;;Mar 30, 1999
|
---|
| 3 | ;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
| 4 | Q
|
---|
| 5 | SEL(DIFRFILE,DIFRX) ;Extrinsic function to return resolved value for
|
---|
| 6 | ;freetext pointer
|
---|
| 7 | ;FILE,X-VALUE
|
---|
| 8 | N D,DIC,DIE,DIX,DIY,DO,DS,X,Y
|
---|
| 9 | N %,%K,%Y,DA,D0,D1,D2,D3
|
---|
| 10 | S DIC="^DIBT(",DIC(0)="QEMZ",X=DIFRX
|
---|
| 11 | S DIC("S")="I $P(^(0),U,4)=DIFRFILE,$D(^(1))>9"
|
---|
| 12 | D ^DIC
|
---|
| 13 | Q:Y'>0 ""
|
---|
| 14 | Q Y(0,0)
|
---|
| 15 | ;
|
---|
| 16 | HELP(DIFRFILE) ;
|
---|
| 17 | N D,DIC,DIE,DIX,DIY,DO,DS,X,Y
|
---|
| 18 | N %,%K,%Y,DA,D0,D1,D2,D3
|
---|
| 19 | S DIC="^DIBT(",DIC(0)="M",DIC("S")="I $P(^(0),U,4)=DIFRFILE,$D(^(1))>9",X="??"
|
---|
| 20 | D ^DIC
|
---|
| 21 | Q
|
---|
| 22 | ;
|
---|
| 23 | SB(DIFRDD,DIFRFLG,DIFRTA,DIFRVAL) ;Returns a list of sub-DDs for any DD#
|
---|
| 24 | ;DD#,FLAGS,TARGET ARRAY(by value)
|
---|
| 25 | ;DD/SUB DD NUMBER (required)
|
---|
| 26 | ;FLAGS "W"=Include Word-processing fields (optional)
|
---|
| 27 | ;TARGET ARRAY (required)
|
---|
| 28 | ;DIFRVAL - SET TARGET ARRAY EQUAL TO
|
---|
| 29 | N DIFRSDD,DIFRSSDD,DIFRNW
|
---|
| 30 | S DIFRSDD=0,DIFRNW=$G(DIFRFLG)'["W",DIFRVAL=$G(DIFRVAL)
|
---|
| 31 | F S DIFRSDD=$O(^DD(DIFRDD,"SB",DIFRSDD)) Q:DIFRSDD'>0 D
|
---|
| 32 | .S DIFRSSDD=0
|
---|
| 33 | .I DIFRNW,$P($G(^DD(DIFRSDD,.01,0)),"^",2)["W" Q
|
---|
| 34 | .S @DIFRTA@(DIFRSDD)=DIFRVAL,DIFRSSDD=$O(^DD(DIFRSDD,"SB",0))
|
---|
| 35 | .I DIFRSSDD D SB(DIFRSDD,$G(DIFRFLG),DIFRTA,DIFRVAL)
|
---|
| 36 | .Q
|
---|
| 37 | Q
|
---|
| 38 | ;
|
---|
| 39 | HDR2P(DIFRDD) ;Header Node/2nd piece update
|
---|
| 40 | Q:$G(DIFRDD)'>0 ""
|
---|
| 41 | Q:'$D(^DIC(+DIFRDD,0,"GL")) "" S DIFRDD=$TR(DIFRDD_$P($P(@(^("GL")_"0)"),"^",2),+DIFRDD,2),"DPSVIs")
|
---|
| 42 | N DIFRDDT
|
---|
| 43 | I $D(^DD(+DIFRDD,0,"ID")) S DIFRDD=DIFRDD_"I"
|
---|
| 44 | I $D(^DD(+DIFRDD,0,"SCR")) S DIFRDD=DIFRDD_"s"
|
---|
| 45 | F DIFRDDT="D","P","S","V" I $P(^DD(+DIFRDD,.01,0),"^",2)[DIFRDDT S DIFRDD=DIFRDD_DIFRDDT Q
|
---|
| 46 | Q DIFRDD
|
---|
| 47 | ;
|
---|
| 48 | EXAM(TA) ;Examine what's in 2nd piece of data Header and put into array sub
|
---|
| 49 | ;TA=Target Array
|
---|
| 50 | Q:$G(TA)']""
|
---|
| 51 | N FN,GR,P2
|
---|
| 52 | S FN=0
|
---|
| 53 | F S FN=$O(^DIC(FN)) Q:FN'>0 I $D(^DIC(FN,0,"GL")) S GR=^("GL") D
|
---|
| 54 | .Q:'$D(@(GR_"0)")) S P2=$P(^(0),"^",2),P2=$P(P2,+P2,2)
|
---|
| 55 | .S:P2]"" @TA@(P2)=FN
|
---|
| 56 | .Q
|
---|
| 57 | Q
|
---|
| 58 | ;
|
---|
| 59 | VAL(DIFRFILE,DIFRIEN) ;Validate Edit and Print Template's and also Forms
|
---|
| 60 | S DIFRFILE=$G(DIFRFILE),DIFRIEN=$G(DIFRIEN)
|
---|
| 61 | Q:DIFRIEN'>0 0
|
---|
| 62 | N ROOT,PIECE,FILE
|
---|
| 63 | D
|
---|
| 64 | .N X
|
---|
| 65 | .S X=DIFRFILE
|
---|
| 66 | .I X=.4!(X=.402)!(X=.403)!(X=.404) Q
|
---|
| 67 | .S DIFRFILE=0
|
---|
| 68 | .Q
|
---|
| 69 | Q:DIFRFILE'>0 0
|
---|
| 70 | S ROOT="^"_$P($P(".4;DIPT^.402;DIE^.403;DIST(.403)^.404;DIST(.404)",DIFRFILE_";",2),"^")
|
---|
| 71 | S PIECE=$P($P(".4;4^.402;4^.403;8^.404;2",DIFRFILE_";",2),"^")
|
---|
| 72 | Q:'$D(@ROOT@(DIFRIEN,0)) 0
|
---|
| 73 | S FILE=$P(^(0),"^",PIECE)
|
---|
| 74 | I DIFRFILE=.404&('FILE) Q 1
|
---|
| 75 | Q:FILE'>0 0
|
---|
| 76 | I DIFRFILE=.403 N BLOCK D Q:'BLOCK 0
|
---|
| 77 | .N PAGE,BLOCKP
|
---|
| 78 | .S PAGE=0,BLOCK=1
|
---|
| 79 | .F S PAGE=$O(@ROOT@(DIFRIEN,40,PAGE)) Q:PAGE'>0 S BLOCKP=$P($G(^(PAGE,0)),"^",2) S:BLOCKP BLOCK=$$VAL(.404,BLOCKP) Q:'BLOCK D Q:'BLOCK
|
---|
| 80 | ..N M40
|
---|
| 81 | ..S M40=0
|
---|
| 82 | ..F S M40=$O(@ROOT@(DIFRIEN,40,PAGE,40,M40)) Q:M40'>0 S BLOCK=$$VAL(.404,M40) Q:'BLOCK
|
---|
| 83 | ..Q
|
---|
| 84 | .Q
|
---|
| 85 | I DIFRFILE=.4,$P(@ROOT@(DIFRIEN,0),"^",8) Q 0
|
---|
| 86 | Q $D(^DD(FILE,0))#2
|
---|