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

DG1010P0.m

Go to the documentation of this file.
DG1010P0 ;ALB/REW - VA FORM 10-10 UTILITIES ;29 MAY 92
 ;;5.3;Registration;**1015**;Aug 13, 1993;Build 21
UNK(X,NA,BL) ;Returns a value depending on the FIRST true condition:
 ; NA = 1    : 'NOT APPLICABLE' 
 ; X NOT NULL: X
 ; BL = 1    : NULL VALUE
 ; ELSE      : 'UNANSWERED'
 ;   INPUT -- X    Any value
 ;            NA,BL (Optional) [See above]
 ;   OUTPUT      -- [Returned]
 ;   OUTPUT[Set] -- DGUNK =1 if NA=1 or X=""
 S DGUNK=$S($G(NA):1,(X]""):0,1:1)
 Q $S(($G(NA)):"NOT APPLICABLE",(X]""):X,($G(BL)):"",1:"UNANSWERED")
DISP(N,P,NA,BL) ;
 ; Returns  the Pth '^' piece of 'N'
 ; Output is modified by NA & BL as per $$UNK[see above]
 ;   INPUT: N -- Contents of a node
 ;     P -- the Pth '^' piece
 ;     NA,BL -- Optional output modifiers
 ;   OUTPUT[Returned] --  X
 ;   OUTPUT[Set]       -- DGUNK =1 if NA=1 or X=""
 NEW X
 S X=$P($G(N),"^",P)
 S DGUNK=$S($G(NA):1,(X]""):0,1:1)
 Q $S(($G(NA)):"NOT APPLICABLE",(X]""):X,($G(BL)):"",1:"UNANSWERED")
POINT(N,P,ROOT,P2,NA,BL) ;
 ; Returns the external value of a pointer.
 ; Output is modified by NA & BL as per $$UNK[see above]
 ; INPUT: 
 ; N    -- Contents of a node
 ; P    -- the Pth '^' piece that holds the pointer
 ; ROOT -- The global root or filenumber if root is ^DIC(ROOT,
 ; P2   -- The piece of the pointed-to file [Default=1]
 ; NA,BL-- Optional output modifiers
 ;   OUTPUT[Returned] --  X
 ;   OUTPUT[Set]      -- DGUNK =1 if NA=1 or (X or N)=""
 NEW X,F
 ; F    -- VALUE OF FIELD
 S:('$G(P2)) P2=1
 S F=$P(N,"^",P)
 S:+ROOT X=$P($G(^DIC(ROOT,+F,0)),U,P2)
 S:(+ROOT=0) X=$P($G(@(ROOT_+F_",0)")),U,P2)
 S DGUNK=$S($G(NA):1,(X]""):0,1:1)
 Q $S(($G(NA)):"NOT APPLICABLE",(X]""):X,(F]""):"INVALID",($G(BL)):"",1:"UNANSWERED")
DATENP(N,P,NA,BL) ;
 ; Returns External Value of Date in the Pth '^' piece of 'N'
 ; Output is modified by NA & BL as per $$UNK[see above]
 ; INPUT: 
 ; N     -- Contents of a node
 ; P     -- the Pth '^' piece
 ; NA,BL -- Optional output modifiers
 ; OUTPUT[Returned] --  X
 ; OUTPUT[Set]      -- DGUNK =1 if NA=1 or X=""
 N Y
 S Y=$$DISP(N,P,+$G(NA),$G(BL))
 I DGUNK G QDNP
 X ^DD("DD")
QDNP ;
 Q Y
YN2(N,P) ;
 ; Ext Val of YES/NO given node & piece.
 ;IN:  N  -- Val of Node
 ;     P  -- Piece
 ;OUT:[RETURN] -- Ext Val 
 S X=$P(N,"^",P)
 Q $S((X="Y"):"YES",(X="N"):"NO",(X="U"):"UNKNOWN",(X=""):"UNANSWERED",("0"[X):"NO",("12"[X):"YES",("3"[X):"UNKNOWN",1:"INVALID")