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

INHS.m

Go to the documentation of this file.
  1. INHS ;JSH; 16 Nov 95 16:45;Interface - Script utilities
  1. ;;3.01;BHL IHS Interfaces with GIS;;JUL 01, 2001
  1. ;COPYRIGHT 1991-2000 SAIC
  1. ;
  1. ERROR(MESS,TYPE) ;Report an error in a script
  1. ;MESS = error message (if passed by reference it may contain subscripts)
  1. ;TYPE = type of error:
  1. ; 1 = Non-fatal
  1. ; 2 = Fatal (default)
  1. ;
  1. S:$G(TYPE)="" TYPE=2
  1. S INSTERR=$S(INSTERR>TYPE:INSTERR,1:TYPE)
  1. I $D(MESS)<9 S MESS(1)=$G(MESS)
  1. N I
  1. S I=0 F S I=$O(MESS(I)) Q:'I S INHERCNT=$G(INHERCNT)+1,INHERR(INHERCNT)=MESS(I)
  1. Q
  1. ;
  1. SREPERR(UIF,ERROR) ;Script reports an error
  1. ;UIF = entry # in UIF
  1. ;ERROR = array of error messages
  1. ;
  1. ;First, log in UIF
  1. D ULOG^INHU(UIF,"",.ERROR)
  1. ;Log in the IEF
  1. D END^INHE(UIF,.ERROR)
  1. Q
  1. ;
  1. MC ;Check if time to move variables to a global
  1. Q:INV["^"
  1. I $S<INSMIN M ^UTILITY("INV",$J)=INV K INV S INV="^UTILITY(""INV"",$J)"
  1. Q
  1. MC1 ;Check if time to move variables to a global
  1. Q:INVTMP["^"
  1. I $S<INSMIN M ^UTILITY("INVTMP",$J)=INVTMP K INVTMP S INVTMP="^UTILITY(""INVTMP"",$J)"
  1. Q
  1. MC2 ;Check if time to move variables to a global
  1. Q:%INV["^"
  1. I $S<INSMIN M ^UTILITY("%INV",$J)=%INV K %INV S %INV="^UTILITY(""%INV"",$J)"
  1. Q
  1. ;
  1. WP(%D,%F,%V,%M) ;Word processing store
  1. ;%D = file # which contains the multiple field [REQD]
  1. ;%F = WP field # within %D [REQD]
  1. ;%V = reference whose next level descendents have text [REQD]
  1. ; ex. @%V@(1) has first node, @%V@(2) has second node, etc.
  1. ;%M = mode of operation (0:default = OVERWRITE, 1 = APPEND) [REQD]
  1. ;Assumes DIE set to current global reference
  1. ;Assumes the DA array is properly constructed
  1. Q:'$G(%D)!'$G(%F)!'$D(DA)!($G(DIE)="")!($G(%V)="") Q:'$D(^DD(%D,%F)) S %M=+$G(%M)
  1. N N,G,I,%,J
  1. S N=$P($P(^DD(%D,%F,0),U,4),";") Q:'$L(N)
  1. S:$D(@%V)<9 @%V@(1)=@%V
  1. S G=DIE_DA_","_$S(+N=N:N,1:""""_N_"""")_")" L +@G
  1. I '%M D Q
  1. . K @G S (%,I)=0 F S I=$O(@%V@(I)) Q:'I S %=%+1,@G@(I,0)=@%V@(I)
  1. . S @G@(0)=U_U_%_U_%_U_DT L -@G
  1. S (%,I)=0 F Q:'$O(@G@(I)) S %=%+1,I=$O(@G@(I))
  1. S J=0 F S J=$O(@%V@(J)) Q:'J S %=%+1,I=I+1,@G@(I,0)=@%V@(J)
  1. S @G@(0)=U_U_%_U_%_U_DT L -@G
  1. Q
  1. ;
  1. GSAVE(%G) ;Save array into message - called from within a script
  1. ;%G = array reference [eg. ^UTILITY("X",2, ]
  1. ;DO NOT include variables in %G!
  1. Q:%G=""
  1. N A,B,C S A=%G,C=$L(A),B=$E(A,1,$L(A)-1) S:B["(" B=B_")" Q:$D(@B)<9
  1. F S B=$Q(@B) Q:$E(B,1,C)'=A S LCT=LCT+1,^UTILITY("INH",$J,LCT)=$E(B,C+1,256),LCT=LCT+1,^UTILITY("INH",$J,LCT)=@B
  1. Q
  1. ;
  1. GLOAD(%G) ;Load array from message beginning at the current position
  1. ;%G = root reference where data should go
  1. ; [eg. ^UTILITY(10, ]
  1. Q:%G=""
  1. N X,Y
  1. F D GET^INHOU(UIF,0) Q:'$D(LINE) S X=LINE D GET^INHOU(UIF,0) Q:'$D(LINE) S Y=LINE,@(%G_X_"=Y")
  1. Q