Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: DIFROMSS

DIFROMSS.m

Go to the documentation of this file.
  1. DIFROMSS ;SCISC/DCL-DIFROM SERVER/DATA SORT LIST/SB-DD/HDR2P ;6/2/96 18:55
  1. ;;22.0;VA FileMan;;Mar 30, 1999
  1. ;Per VHA Directive 10-93-142, this routine should not be modified.
  1. Q
  1. SEL(DIFRFILE,DIFRX) ;Extrinsic function to return resolved value for
  1. ;freetext pointer
  1. ;FILE,X-VALUE
  1. N D,DIC,DIE,DIX,DIY,DO,DS,X,Y
  1. N %,%K,%Y,DA,D0,D1,D2,D3
  1. S DIC="^DIBT(",DIC(0)="QEMZ",X=DIFRX
  1. S DIC("S")="I $P(^(0),U,4)=DIFRFILE,$D(^(1))>9"
  1. D ^DIC
  1. Q:Y'>0 ""
  1. Q Y(0,0)
  1. ;
  1. HELP(DIFRFILE) ;
  1. N D,DIC,DIE,DIX,DIY,DO,DS,X,Y
  1. N %,%K,%Y,DA,D0,D1,D2,D3
  1. S DIC="^DIBT(",DIC(0)="M",DIC("S")="I $P(^(0),U,4)=DIFRFILE,$D(^(1))>9",X="??"
  1. D ^DIC
  1. Q
  1. ;
  1. SB(DIFRDD,DIFRFLG,DIFRTA,DIFRVAL) ;Returns a list of sub-DDs for any DD#
  1. ;DD#,FLAGS,TARGET ARRAY(by value)
  1. ;DD/SUB DD NUMBER (required)
  1. ;FLAGS "W"=Include Word-processing fields (optional)
  1. ;TARGET ARRAY (required)
  1. ;DIFRVAL - SET TARGET ARRAY EQUAL TO
  1. N DIFRSDD,DIFRSSDD,DIFRNW
  1. S DIFRSDD=0,DIFRNW=$G(DIFRFLG)'["W",DIFRVAL=$G(DIFRVAL)
  1. F S DIFRSDD=$O(^DD(DIFRDD,"SB",DIFRSDD)) Q:DIFRSDD'>0 D
  1. .S DIFRSSDD=0
  1. .I DIFRNW,$P($G(^DD(DIFRSDD,.01,0)),"^",2)["W" Q
  1. .S @DIFRTA@(DIFRSDD)=DIFRVAL,DIFRSSDD=$O(^DD(DIFRSDD,"SB",0))
  1. .I DIFRSSDD D SB(DIFRSDD,$G(DIFRFLG),DIFRTA,DIFRVAL)
  1. .Q
  1. Q
  1. ;
  1. HDR2P(DIFRDD) ;Header Node/2nd piece update
  1. Q:$G(DIFRDD)'>0 ""
  1. Q:'$D(^DIC(+DIFRDD,0,"GL")) "" S DIFRDD=$TR(DIFRDD_$P($P(@(^("GL")_"0)"),"^",2),+DIFRDD,2),"DPSVIs")
  1. N DIFRDDT
  1. I $D(^DD(+DIFRDD,0,"ID")) S DIFRDD=DIFRDD_"I"
  1. I $D(^DD(+DIFRDD,0,"SCR")) S DIFRDD=DIFRDD_"s"
  1. F DIFRDDT="D","P","S","V" I $P(^DD(+DIFRDD,.01,0),"^",2)[DIFRDDT S DIFRDD=DIFRDD_DIFRDDT Q
  1. Q DIFRDD
  1. ;
  1. EXAM(TA) ;Examine what's in 2nd piece of data Header and put into array sub
  1. ;TA=Target Array
  1. Q:$G(TA)']""
  1. N FN,GR,P2
  1. S FN=0
  1. F S FN=$O(^DIC(FN)) Q:FN'>0 I $D(^DIC(FN,0,"GL")) S GR=^("GL") D
  1. .Q:'$D(@(GR_"0)")) S P2=$P(^(0),"^",2),P2=$P(P2,+P2,2)
  1. .S:P2]"" @TA@(P2)=FN
  1. .Q
  1. Q
  1. ;
  1. VAL(DIFRFILE,DIFRIEN) ;Validate Edit and Print Template's and also Forms
  1. S DIFRFILE=$G(DIFRFILE),DIFRIEN=$G(DIFRIEN)
  1. Q:DIFRIEN'>0 0
  1. N ROOT,PIECE,FILE
  1. D
  1. .N X
  1. .S X=DIFRFILE
  1. .I X=.4!(X=.402)!(X=.403)!(X=.404) Q
  1. .S DIFRFILE=0
  1. .Q
  1. Q:DIFRFILE'>0 0
  1. S ROOT="^"_$P($P(".4;DIPT^.402;DIE^.403;DIST(.403)^.404;DIST(.404)",DIFRFILE_";",2),"^")
  1. S PIECE=$P($P(".4;4^.402;4^.403;8^.404;2",DIFRFILE_";",2),"^")
  1. Q:'$D(@ROOT@(DIFRIEN,0)) 0
  1. S FILE=$P(^(0),"^",PIECE)
  1. I DIFRFILE=.404&('FILE) Q 1
  1. Q:FILE'>0 0
  1. I DIFRFILE=.403 N BLOCK D Q:'BLOCK 0
  1. .N PAGE,BLOCKP
  1. .S PAGE=0,BLOCK=1
  1. .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
  1. ..N M40
  1. ..S M40=0
  1. ..F S M40=$O(@ROOT@(DIFRIEN,40,PAGE,40,M40)) Q:M40'>0 S BLOCK=$$VAL(.404,M40) Q:'BLOCK
  1. ..Q
  1. .Q
  1. I DIFRFILE=.4,$P(@ROOT@(DIFRIEN,0),"^",8) Q 0
  1. Q $D(^DD(FILE,0))#2