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

INHSC.m

Go to the documentation of this file.
  1. INHSC ;JSH; 11 Jul 94 15:55;Create/Edit a script
  1. ;;3.01;BHL IHS Interfaces with GIS;;JUL 01, 2001
  1. ;COPYRIGHT 1991-2000 SAIC
  1. ;
  1. N DIC,I,NAME,X,Y,DIK,DIE,DA,DR
  1. A S DIC="^INRHS(",DIC(0)="E",DIC("S")="I '$P(^(0),U,5)"
  1. W !! D ^UTSRD("Select SCRIPT to edit: ",1) Q:X=""!($E(X)="^")
  1. D ^DIC G:X["?" A I Y>0 S DA=+Y D ED G A
  1. X $P(^DD(4006,.01,0),U,5,999) I '$D(X) W *7," ??" G A
  1. W *7 S NAME=X S X=$$YN^UTSRD(" Are you adding a new script? ;1","") I 'X W " ??",*7 G A
  1. S DA=$$MAKENEW Q:'DA
  1. S ^DIJUSV(DUZ,"^INRHS(")=DA,^INRHS(DA,0)=NAME,DIK="^INRHS(" D IX1^DIK
  1. W ! S X=$$YN^UTSRD("Is this script going to be an INCLUDE for another script? ;0","") Q:X["^"
  1. S $P(^INRHS(DA,0),U,4)=+X G:X 1
  1. S DR=".02;.03",DIE="^INRHS(" D ^DIE S X=$P(^INRHS(DA,0),U,2,3)
  1. I X'?1A1"^"1.NP W *7,!?5,"<Script '"_$P(^INRHS(DA,0),U)_"' Deleted>" S DIK=DIE D ^DIK G A
  1. D TEMP($E(X))
  1. 1 D ED G A
  1. ;
  1. MAKENEW() ;Make a new script and return its IEN
  1. N I,X
  1. L +^INRHS(0) F I=1:1 Q:'$D(^INRHS(I))
  1. I I>99999 W *7,!,"No space for additional scripts.",! L -^INRHS(0) Q ""
  1. S ^INRHS(I,0)="",X=$P(^INRHS(0),U,4),X=X+1,$P(^INRHS(0),U,4)=X
  1. S X=$P(^(0),U,3) I I>X S $P(^(0),U,3)=I
  1. L -^INRHS(0) Q I
  1. ;
  1. ED ;Edit DA=script number
  1. N INDA,INON,INRMAX
  1. S:$P(^INRHS(DA,0),U,4) INON=1
  1. S INDA=DA,DIE="^INRHS(",INRMAX=$P(^INRHS(DA,0),U,6)
  1. I $$SC^INHUTIL1 S DWN="INH SCRIPT EDIT" D ^DWC G:'$D(^INRHS(INDA,0)) SDEL D EDSCR^INHI(INDA) G ED1
  1. S DR="[INH SCRIPT EDIT]" D ^DIE G:'$D(^INRHS(DA,0)) SDEL
  1. ED1 Q:$P(^INRHS(DA,0),U,4)
  1. W !! S X=$$YN^UTSRD("Compile Script? ;1","") Q:'X
  1. S SCR=DA G EN^INHSZ
  1. ;
  1. SDEL ;Script INDA deleted, INRMAX = number of compiled routines
  1. S:'$G(INRMAX) INRMAX=10 S R="IS"_$E(INDA#100000+100000,2,6)
  1. F I=1:1:INRMAX S X=R_$S(I=1:"",1:$C(63+I)) X ^%ZOSF("DEL") W !,X_" routine deleted."
  1. K I,X,R Q
  1. ;
  1. KILL(DA) ;Kill script DA
  1. Q:'$D(^INRHS(DA,0))
  1. N INRMAX S INRMAX=$P(^INRHS(DA,0),U,6)
  1. S INDA=DA,DIK="^INRHS(" D ^DIK G SDEL
  1. ;
  1. TEMP(%M) ;Load initial script template
  1. ;%M = I or O
  1. N %,I,X,%1
  1. D:'$D(DT) SETDT^UTDT
  1. S %=0 F I=1:1 S X=$T(TEXT+I) Q:'$L(X) S %1=$P(X,";",2) I '$L(%1)!(%1=%M) S %=%+1,^INRHS(DA,1,%,0)=$P(X,";",3,99)_"|CR|"
  1. S ^INRHS(DA,1,0)=U_U_%_U_%_U_DT
  1. Q
  1. ;
  1. PRINT ;Print a script
  1. N D0,ROU,ZTSK,IOP,DUOUT,PAGE,FILE,DIR,NAME,INON
  1. S DIC=4006,DIC(0)="QAEM",DIC("A")="Select SCRIPT to Print: "
  1. D ^DIC Q:Y<0 S D0=+Y
  1. K IOP S %ZIS="NMQ" D ^%ZIS Q:POP S IOP=ION_";"_IOST_";"_IOM_";"_IOSL
  1. I IO'=IO(0) D D ^%ZISC Q
  1. . S ZTSAVE("D0")="",ZTSAVE("DTIME")=""
  1. . S ZTRTN="ZTSK^INHSC",ZTIO=IOP D ^%ZTLOAD W !?5,"Request "_$S($D(ZTSK):"",1:"NOT ")_"QUEUED."
  1. S %ZIS="" D ^%ZIS
  1. ZTSK ;TaskMan entry point - enter with D0 set to entry #
  1. S U="^",PAGE=0
  1. X $P(^DD(4006,1,0),U,5,99) S ROU=X S FILE=$P($G(^DIC(+$P(^INRHS(D0,0),U,3),0)),U),DIR=$P("IN^OUT",U,$P(^INRHS(D0,0),U,2)="O"+1),NAME=$P(^INRHS(D0,0),U),INON=$P(^(0),U,4)
  1. K ^UTILITY("IN",$J) D ASBL^INHSZ(D0) ;Assemble lines
  1. W:'$D(ZTSK) @IOF D HEAD
  1. S I=0 F S I=$O(^UTILITY("IN",$J,"L",I)) Q:'I D Q:$G(DUOUT)
  1. . I $Y+3>IOSL D HEAD Q:$G(DUOUT)
  1. . S L=^(I),N=0 W !,I,".",?7
  1. . I $L(L)<(IOM-10) W L Q
  1. . W $E(L,1,IOM-10) S L=$E(L,IOM-9,999)
  1. . F Q:'$L(L)&'$O(^UTILITY("IN",$J,"L",I,N)) D Q:$G(DUOUT)
  1. .. I $Y+3>IOSL D HEAD Q:$G(DUOUT)
  1. .. S X=$E(L,1,IOM-10),L=$E(L,IOM-9,999) I $L(X)<(IOM-10),$O(^UTILITY("IN",$J,"L",I,N)) S N=$O(^(N)),L=^(N),X=X_$E(L,1,(IOM-10)-$L(X)),L=$E(L,(IOM-10)-$L(X)+1,999)
  1. .. W !?10,X
  1. I $D(ZTSK) K ^%ZTSK(ZTSK) W @IOF
  1. K ^UTILITY("IN",$J) D ^%ZISC Q
  1. ;
  1. K DUOUT
  1. I IO=IO(0),'$D(ZTSK),$E(IOST,1,2)="C-",PAGE W !,*7 R X:DTIME S:$E(X)=U DUOUT=1
  1. Q:$G(DUOUT)
  1. W:PAGE @IOF S PAGE=PAGE+1
  1. W !,"Script Name:",?18,NAME
  1. I 'INON W !,"Compiled Routine:",?18,ROU,!,"File:",?18,$E(FILE,1,30),?50,"Direction: ",DIR
  1. E W " (Include Only)"
  1. W ! K Z S $P(Z,"-",IOM+1)="" W Z
  1. Q
  1. TEXT ;Lines of text for initial script
  1. ;;;
  1. ;;
  1. ;;DATA:
  1. ;;;Data Section
  1. ;;DELIM=
  1. ;;SUBDELIM=
  1. ;;
  1. ;;
  1. ;;
  1. ;I;TRANS:
  1. ;I;;Transform Section
  1. ;I;
  1. ;I;
  1. ;I;REQUIRED:
  1. ;I;;Required Section
  1. ;I;
  1. ;I;
  1. ;I;
  1. ;I;LOOKUP:
  1. ;I;;Lookup Section
  1. ;I;IDENT
  1. ;I;MATCH
  1. ;I;PARAM
  1. ;I;
  1. ;I;STORE:
  1. ;I;;Store Section
  1. ;I;ROUTINE=
  1. ;I;TEMPLATE=
  1. ;I;
  1. ;;END: