| 1 | DIOZ ;SFISC/TKW - COMPILED SORT TEMPLATE ;11/29/94  09:53
 | 
|---|
| 2 |  ;;22.0;VA FileMan;;Mar 30, 1999
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 | ENCU ;MARK A SORT TEMPLATE FOR ROUTINE COMPILATION
 | 
|---|
| 5 |  I $G(DUZ(0))'="@" W !,$C(7),$$EZBLD^DIALOG(101) Q
 | 
|---|
| 6 | EN1 N DDH,DIC,DIR,DIROUT,DIRUT,DUOUT,DTOUT,X,Y,DIOZ
 | 
|---|
| 7 |  D OS^DII:'$D(DISYS) I $G(^DD("OS",DISYS,"ZS"))="" W $C(7),!,$$EZBLD^DIALOG(820) Q
 | 
|---|
| 8 |  D DIC Q:Y<0  S DIOZ=+Y
 | 
|---|
| 9 |  S DIR(0)="Y"
 | 
|---|
| 10 |  I $G(^DIBT(+Y,"ROU"))="" D  Q
 | 
|---|
| 11 |  .D BLD^DIALOG(8029,$$EZBLD^DIALOG(8035),"","DIR(""A"")")
 | 
|---|
| 12 |  .S DIR("B")="YES" D BLD^DIALOG(9014,"","","DIR(""?"")"),^DIR Q:'Y
 | 
|---|
| 13 |  .S ^DIBT(DIOZ,"ROU")="^DISZ",^("ROUOLD")="DISZ"
 | 
|---|
| 14 |  .W !!,$C(7),DIR("?",2),!,DIR("?")
 | 
|---|
| 15 |  .Q
 | 
|---|
| 16 |  S X(1)=$$EZBLD^DIALOG(8035),X(2)="DISZ" D BLD^DIALOG(8028,.X,"","DIR(""A"")")
 | 
|---|
| 17 |  S DIR("B")="NO" D BLD^DIALOG(9019,"","","DIR(""?"")"),^DIR Q:'Y
 | 
|---|
| 18 |  K ^DIBT(DIOZ,"ROU")
 | 
|---|
| 19 |  W !!,$C(7),DIR("?",2),!,DIR("?")
 | 
|---|
| 20 |  Q
 | 
|---|
| 21 |  ;
 | 
|---|
| 22 | DIC S DIC="^DIBT(",DIC(0)="AEIQ",DIC("W")="W ?40,""FILE #"",$P(^(0),U,4) W:$D(^(""ROU"")) ?60,""Compiled"""
 | 
|---|
| 23 |  S DIC("S")="I '$P(^(0),U,8),Y'<1,$O(^DIBT(+Y,2,0))"
 | 
|---|
| 24 |  D ^DIC Q
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 | ENC ;CREATE COMPILED SORT ROUTINE
 | 
|---|
| 27 |  D OS^DII:'$D(DISYS) I $G(^DD("OS",DISYS,"ZS"))="" D BLD^DIALOG(820) G QSV
 | 
|---|
| 28 |  I $O(^TMP("DIBTC",$J,""))="" D BLD^DIALOG(1501) G QSV
 | 
|---|
| 29 |  N %,%H,%I,DIROUT,DIRUT,DTOUT,DUOUT,DRN,I,J,K,X,Y,DIR
 | 
|---|
| 30 |  D NEW G:$D(DIERR) QSV
 | 
|---|
| 31 |  S K=2,I="" F  S I=$O(^TMP("DIBTC",$J,I)) Q:I=""  F J=0:0 S J=$O(^TMP("DIBTC",$J,I,J)) Q:'J  S X=^(J) I X]"" S K=K+1,^UTILITY($J,0,K)=X
 | 
|---|
| 32 |  F I=1:1 S X=$P($T(TXT+I),";",3) Q:X=""  S K=K+1,^UTILITY($J,0,K)=X
 | 
|---|
| 33 |  S X=$P(DIBTPGM,U,2) X ^DD("OS",DISYS,"ZS")
 | 
|---|
| 34 |  K ^TMP("DIBTC",$J)
 | 
|---|
| 35 |  Q
 | 
|---|
| 36 |  ;
 | 
|---|
| 37 | NEW I DIBTPGM'?1"^"1.7U1.4N D NXTNO(.DRN) Q:$D(DIERR)  S DIBTPGM=DIBTPGM_$E("000",1,(4-$L(DRN)))_DRN
 | 
|---|
| 38 |  D NOW^%DTC,YX^%DTC
 | 
|---|
| 39 |  K ^UTILITY($J,0)
 | 
|---|
| 40 |  S ^UTILITY($J,0,1)=$P(DIBTPGM,U,2)_" ; GENERATED FROM '"_$P(^DIBT(DIBT1,0),U,1)_"' SORT TEMPLATE (#"_DIBT1_"), FILE:"_DP_",  USER:"_$S($G(^VA(200,+DUZ,0))]"":$P(^(0),U),1:$P($G(^DIC(3,+DUZ,0)),U))_" ; "_Y
 | 
|---|
| 41 |  S ^UTILITY($J,0,2)=$T(DIOZ+1)
 | 
|---|
| 42 |  Q
 | 
|---|
| 43 |  ;
 | 
|---|
| 44 | NXTNO(DRN) ; GET NEXT AVAILABLE ROUTINE NUMBER
 | 
|---|
| 45 |  N DILOCK S DRN=0 D  Q:DRN
 | 
|---|
| 46 | N1 . S DILOCK=0,DRN=$O(^DI(.83,"C","n",DRN)) Q:'DRN  D N3 G:DILOCK N1
 | 
|---|
| 47 | N2 S DILOCK=0,DRN=$$NXTNO^DICLIB("^DI(.83,","","U") I DRN>9999 D BLD^DIALOG(1502) Q
 | 
|---|
| 48 |  D N3 G:DILOCK N2
 | 
|---|
| 49 |  Q
 | 
|---|
| 50 | N3 L +^DI(.83,DRN,0):10 I '$T S DILOCK=1 Q
 | 
|---|
| 51 |  S ^DI(.83,DRN,0)=DRN_"^y",^DI(.83,"B",DRN,DRN)="",^DI(.83,"C","y",DRN)="" K ^DI(.83,"C","n",DRN) L -^DI(.83,DRN,0) Q
 | 
|---|
| 52 |  Q
 | 
|---|
| 53 |  ;
 | 
|---|
| 54 | ENRLS(DRN) ; MAKE ROUTINE NUMBER AVAILABLE FOR REUSE & DELETE ROUTINE
 | 
|---|
| 55 |  N DICLEAN,X S DRN=+$G(DRN),DICLEAN='DRN G:DRN R1
 | 
|---|
| 56 | R S DRN=$O(^DI(.83,DRN)) Q:'DRN
 | 
|---|
| 57 | R1 I $G(^DI(.83,DRN,0))]"" S $P(^(0),U,2)="n",^DI(.83,"C","n",DRN)="" K ^DI(.83,"C","y",DRN)
 | 
|---|
| 58 |  I $G(^%ZOSF("DEL"))]"" S X="DISZ"_$E("000",1,(4-$L(DRN)))_DRN X ^%ZOSF("DEL")
 | 
|---|
| 59 |  G:DICLEAN R
 | 
|---|
| 60 |  Q
 | 
|---|
| 61 |  ;
 | 
|---|
| 62 | QSV D:$G(DRN) ENRLS(DRN) K DIBTPGM
 | 
|---|
| 63 | QER Q:$G(DIQUIET)
 | 
|---|
| 64 |  D MSG^DIALOG("W") S DIERR=1 Q
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 |  ;DIALOG #101    'only those with programmer's access'                 
 | 
|---|
| 67 |  ;       #820    'no way to save routines on the system'               
 | 
|---|
| 68 |  ;       #1501   'There is no code to save for this compiled...'
 | 
|---|
| 69 |  ;       #1502   'All available routine numbers...are in use...'
 | 
|---|
| 70 |  ;       #8028   '...currently compiled under namespace...'
 | 
|---|
| 71 |  ;       #8029   '...not currently compiled.'
 | 
|---|
| 72 |  ;       #8035   'Sort template'
 | 
|---|
| 73 |  ;       #9014   (help) 'if YES...Sort logic will be compiled...'
 | 
|---|
| 74 |  ;       #9019   (help) 'if YES...Sort logic...will NOT be compiled...' 
 | 
|---|
| 75 |  ;
 | 
|---|
| 76 | TXT ;;
 | 
|---|
| 77 |  ;;M X $S($D(DPQ):DX(DIXX),1:^UTILITY($J,99,DIXX))
 | 
|---|