- 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")
- DG1010P0 ;ALB/REW - VA FORM 10-10 UTILITIES ;29 MAY 92
- +1 ;;5.3;Registration;**1015**;Aug 13, 1993;Build 21
- UNK(X,NA,BL) ;Returns a value depending on the FIRST true condition:
- +1 ; NA = 1 : 'NOT APPLICABLE'
- +2 ; X NOT NULL: X
- +3 ; BL = 1 : NULL VALUE
- +4 ; ELSE : 'UNANSWERED'
- +5 ; INPUT -- X Any value
- +6 ; NA,BL (Optional) [See above]
- +7 ; OUTPUT -- [Returned]
- +8 ; OUTPUT[Set] -- DGUNK =1 if NA=1 or X=""
- +9 SET DGUNK=$SELECT($GET(NA):1,(X]""):0,1:1)
- +10 QUIT $SELECT(($GET(NA)):"NOT APPLICABLE",(X]""):X,($GET(BL)):"",1:"UNANSWERED")
- DISP(N,P,NA,BL) ;
- +1 ; Returns the Pth '^' piece of 'N'
- +2 ; Output is modified by NA & BL as per $$UNK[see above]
- +3 ; INPUT: N -- Contents of a node
- +4 ; P -- the Pth '^' piece
- +5 ; NA,BL -- Optional output modifiers
- +6 ; OUTPUT[Returned] -- X
- +7 ; OUTPUT[Set] -- DGUNK =1 if NA=1 or X=""
- +8 NEW X
- +9 SET X=$PIECE($GET(N),"^",P)
- +10 SET DGUNK=$SELECT($GET(NA):1,(X]""):0,1:1)
- +11 QUIT $SELECT(($GET(NA)):"NOT APPLICABLE",(X]""):X,($GET(BL)):"",1:"UNANSWERED")
- POINT(N,P,ROOT,P2,NA,BL) ;
- +1 ; Returns the external value of a pointer.
- +2 ; Output is modified by NA & BL as per $$UNK[see above]
- +3 ; INPUT:
- +4 ; N -- Contents of a node
- +5 ; P -- the Pth '^' piece that holds the pointer
- +6 ; ROOT -- The global root or filenumber if root is ^DIC(ROOT,
- +7 ; P2 -- The piece of the pointed-to file [Default=1]
- +8 ; NA,BL-- Optional output modifiers
- +9 ; OUTPUT[Returned] -- X
- +10 ; OUTPUT[Set] -- DGUNK =1 if NA=1 or (X or N)=""
- +11 NEW X,F
- +12 ; F -- VALUE OF FIELD
- +13 IF ('$GET(P2))
- SET P2=1
- +14 SET F=$PIECE(N,"^",P)
- +15 IF +ROOT
- SET X=$PIECE($GET(^DIC(ROOT,+F,0)),U,P2)
- +16 IF (+ROOT=0)
- SET X=$PIECE($GET(@(ROOT_+F_",0)")),U,P2)
- +17 SET DGUNK=$SELECT($GET(NA):1,(X]""):0,1:1)
- +18 QUIT $SELECT(($GET(NA)):"NOT APPLICABLE",(X]""):X,(F]""):"INVALID",($GET(BL)):"",1:"UNANSWERED")
- DATENP(N,P,NA,BL) ;
- +1 ; Returns External Value of Date in the Pth '^' piece of 'N'
- +2 ; Output is modified by NA & BL as per $$UNK[see above]
- +3 ; INPUT:
- +4 ; N -- Contents of a node
- +5 ; P -- the Pth '^' piece
- +6 ; NA,BL -- Optional output modifiers
- +7 ; OUTPUT[Returned] -- X
- +8 ; OUTPUT[Set] -- DGUNK =1 if NA=1 or X=""
- +9 NEW Y
- +10 SET Y=$$DISP(N,P,+$GET(NA),$GET(BL))
- +11 IF DGUNK
- GOTO QDNP
- +12 XECUTE ^DD("DD")
- QDNP ;
- +1 QUIT Y
- YN2(N,P) ;
- +1 ; Ext Val of YES/NO given node & piece.
- +2 ;IN: N -- Val of Node
- +3 ; P -- Piece
- +4 ;OUT:[RETURN] -- Ext Val
- +5 SET X=$PIECE(N,"^",P)
- +6 QUIT $SELECT((X="Y"):"YES",(X="N"):"NO",(X="U"):"UNKNOWN",(X=""):"UNANSWERED",("0"[X):"NO",("12"[X):"YES",("3"[X):"UNKNOWN",1:"INVALID")