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

INHUTIL.m

Go to the documentation of this file.
  1. INHUTIL ;JSH; 6 Mar 96 13:04;Function library part 1 - VA version
  1. ;;3.01;BHL IHS Interfaces with GIS;;JUL 01, 2001
  1. ;COPYRIGHT 1991-2000 SAIC
  1. ;
  1. SOC(P1,P2,SOC,T) ;Set of Codes front end to readers
  1. ;P1,P2 same as reader
  1. ;SOC = code string
  1. ;T = type of reader (0 = scrolling, 1 = screen)
  1. N P21,I,J,X,DIC,Y
  1. S $P(P1,";",9)="D TRANS^UTIL("_T_")",$P(P1,";",10)=""
  1. K ^UTILITY("UTSOC",$J)
  1. S P21="Choose from: " F I=1:1:$L(SOC,"^") S J=$P(SOC,"^",I) S:I>1 P21=P21_", " S P21=P21_J,^UTILITY("UTSOC",$J,I,0)=$P(SOC,U,I),^UTILITY("UTSOC",$J,"B",$P(SOC,U,I),I)=""
  1. S ^UTILITY("UTSOC",$J,0)="CHOICE^1N^"_I_"^"_I S:$G(P2)="" P2=P21
  1. D @("^UT"_$S($G(T):"W",1:"S")_"RD(P1,P2)") K ^UTILITY("UTSOC",$J) Q X
  1. TRANS(%E) ;input transform for reader
  1. ;%E = manipulate echo (0=no, 1=yes)
  1. Q:$E(X)="?" X:%E $G(^%ZOSF("EON"))
  1. S DIC="^UTILITY(""UTSOC"",$J,",DIC(0)="EM" D ^DIC K:+Y<0 X I +Y>0 S X=$P(Y,U,2)
  1. X:%E $G(^%ZOSF("EOFF")) Q
  1. ;
  1. CENTER(S,L) ;center text S in field of length L
  1. S S=$J("",L-$L(S)\2)_S Q S_$J("",L-$L(S))
  1. ;
  1. LB(X) ;Returns X with leading spaces stripped
  1. N I,Y S Y=X F I=1:1:$L(X) S:$E(X,I)=" " Y=$E(X,I+1,$L(X)) Q:$E(X,I)'=" "
  1. Q Y
  1. ;
  1. TB(X) ;Returns X with trailing spaces stripped
  1. N I,Y S Y=X F I=$L(X):-1:0 S:$E(X,I)=" " Y=$E(X,1,I-1) Q:$E(X,I)'=" "
  1. Q Y
  1. ;
  1. LBTB(X) ;Returns X with both leading and trailing spaces removed
  1. Q $$LB($$TB(X))
  1. ;
  1. NOCTRL(X) ;Returns X with all control characters removed
  1. ;Control characters are $A values from 0-31,127
  1. Q $TR(X,$C(0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,127))
  1. ;
  1. CASECONV(STRING,CODE) ;Returns STRING case converted according to CODE
  1. ;CODE = U (to upper case)
  1. ;CODE = L (to lower case)
  1. S:'$D(CODE) CODE="U"
  1. Q:CODE="U" $TR(STRING,"abcdefghijklmnopqrstuvwxyz","ABCDEFGHIJKLMNOPQRSTUVWXYZ")
  1. Q:CODE="L" $TR(STRING,"ABCDEFGHIJKLMNOPQRSTUVWXYZ","abcdefghijklmnopqrstuvwxyz")
  1. Q STRING
  1. ;
  1. NAME(NAME,F) ;Returns NAME (in FileMan storage form LAST,FIRST MIDDLE)
  1. ;formatted according to format string F.
  1. N %F,%M,%L,%N,I S %L=$P(NAME,","),%F=$P($P(NAME,",",2)," "),%M=$P($P(NAME,",",2)," ",2)
  1. S %N="" F I=1:1:$L(F) D
  1. . I "FML"[$E(F,I) S %N=%N_@("%"_$E(F,I)) Q
  1. . S %N=%N_$E(F,I) Q
  1. Q %N
  1. ;
  1. REPLACE(STRING,ST1,ST2) ;Replace all occurrences of ST1 in STRING with ST2
  1. ;Returns modified string.
  1. N %1,%S S %S=""
  1. F S %1=$F(STRING,ST1) Q:'%1 S %S=%S_$E(STRING,1,%1-$L(ST1)-1)_ST2,STRING=$E(STRING,%1,999)
  1. Q %S_STRING
  1. ;
  1. DUP(C,L) ;Returns a string of length L made by duplicating
  1. ;character(s) in C
  1. N %,I,S S %=L\$L(C)+1,$P(S,C,%+1)="" Q $E(S,1,L)
  1. ;
  1. FORMAT(S,W,D) ;Formats string S into an array referenced by D with a
  1. ;maximum length of W in each array subscript
  1. N S1,I,% S %=1 K @D
  1. F D Q:S=""!($TR(S," ")="")
  1. . I $L(S)'>W S @D@(%)=S,S="" Q
  1. . F I=W:-1:1 Q:$E(S,I)=" "
  1. . S:I=1 I=W+1 S @D@(%)=$E(S,1,I-1),%=%+1,S=$E(S,I+(I'=(W+1)),999)
  1. Q
  1. ;
  1. JUST(S,W,T,P) ;returns string S in a field of width W
  1. ;T = "L" for left justify, = "R" for right justify
  1. ;P = 0 for pad with spaces, 1 = pad with zeros
  1. N %P
  1. S $P(%P,$S('P:" ",1:"0"),W-$L(S)+1)="",%P=$G(%P)
  1. Q:T="L" $E(S,1,W)_%P Q %P_$E(S,1,W)
  1. ;
  1. ENV ;Set up user environment
  1. I '$G(DUZ) S DIC="^DIC(3,",DIC(0)="QAEM" D ^DIC Q:Y<0 S DUZ=+Y
  1. X $G(^INRHSITE(1,1)) Q
  1. ;
  1. ACTV(BIT) ;activate/inactivate all active messages in Script Generator
  1. ; Message file #4011
  1. ;input:
  1. ; BIT - (req,pbv) 1:inactive, 0:active
  1. N INI,P01
  1. S P01=""
  1. F S P01=$O(^INTHL7M("B",P01)) Q:P01="" D
  1. .S INI=""
  1. .F S INI=$O(^INTHL7M("B",P01,INI)) Q:'INI D
  1. ..S $P(^INTHL7M(INI,0),U,8)=BIT
  1. ..W:$X>(IOM-($L(P01)+$S(BIT:11,1:9))) !
  1. ..W P01_$S(BIT:" in",1:" ")_"active. "
  1. Q
  1. QS(GLB,SUB) ; return subscript - temporary replacement for $QS
  1. ; Input:
  1. ; (r) GLB - Global node
  1. ; (r) SUB - Subscript of node
  1. N I,N,P,PO,S,X,%
  1. I SUB<1 S GLB=$TR($P(GLB,"("),"[]","||") D Q $G(X(SUB))
  1. . I GLB["|" S X(-1)=$P(GLB,"|",2),X(-1)=$E(X(-1),2,$L(X(-1))-1),X(0)=$P(GLB,"|",1)_$P(GLB,"|",3)
  1. . E S X(0)=GLB
  1. S GLB=$P(GLB,"(",2),GLB=$E(GLB,1,$L(GLB)-1)
  1. S S=1,P=1,PO=0 F S X(S)=$P(GLB,",",P,P+PO) Q:'$L(X(S)) S %=$L(X(S),"""")#2 S:% S=S+1,P=P+1+PO,PO=0 S:'% PO=PO+1 Q:S>SUB
  1. S GLB=$G(X(SUB)),N=$E(GLB)
  1. I 'N,N'=0 S GLB=$E(GLB,2,$L(GLB)-1),%=0 F S %=$F(GLB,"""""",%-1) Q:'% S GLB=$E(GLB,1,%-3)_""""_$E(GLB,%,999)
  1. Q GLB