| 1 | OCXSEND ;SLC/RJS,CLA - BUILD RULE TRANSPORTER ROUTINES ;2/01/01  10:10
 | 
|---|
| 2 |  ;;3.0;ORDER ENTRY/RESULTS REPORTING;**32,74,96,105**;Dec 17,1997
 | 
|---|
| 3 |  ;;  ;;ORDER CHECK EXPERT version 1.01 released OCT 29,1998
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | S ;
 | 
|---|
| 6 |  N X,IOP,TOTL S TOTL=0
 | 
|---|
| 7 |  N CVER,RCNT,RSIZE,LASTFILE,HEADER1,HEADER2,HEADER3,HEADER4,HEADER5
 | 
|---|
| 8 |  N OCXASK,OCXID,OCXLIN2,OCXLIN3,OCXPATCH,OCXSCR,PARM,PARMV,DIE,DIERR,DIQ2,FCPARM,TEXT
 | 
|---|
| 9 |  I '$D(IOM) S IOP=0 D ^%ZIS K IOP
 | 
|---|
| 10 |  K ^TMP("OCXSEND",$J),^UTILITY($J),OCXPATH
 | 
|---|
| 11 |  K ^UTILITY($J),OCXPATH
 | 
|---|
| 12 |  S ^TMP("OCXSEND",$J)=($P($H,",",2)+($H*86400)+(4*60*60))_" <- ^TMP ENTRY EXPIRATION DATE FOR ^OCXOPURG"
 | 
|---|
| 13 |  S OCXLIN2=$T(+2)
 | 
|---|
| 14 |  S OCXLIN3=$T(+3)
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  D ^OCXSEND1 ; Get List of Objects to Transport
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  I '$O(^TMP("OCXSEND",$J,"LIST",0)) K ^TMP("OCXSEND",$J) Q  ; Nothing selected so Quit
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 |  S OCXASK="" F  D  Q:$L(OCXASK)
 | 
|---|
| 21 |  .W !
 | 
|---|
| 22 |  .W !,"When the transport routine encounters locally"
 | 
|---|
| 23 |  .W !,"altered rule data at a site, do you want to:"
 | 
|---|
| 24 |  .;
 | 
|---|
| 25 |  .S OCXASK=$$READ("S^O:Overwrite local data;D:Display locally altered data only;A:Ask the site what to do","(O)verwrite, (D)isplay, or (A)sk the site ? ","Ask")
 | 
|---|
| 26 |  ;
 | 
|---|
| 27 |  Q:(OCXASK[U)
 | 
|---|
| 28 |  I (OCXASK="O") W !!,"Locally altered data will be overwritten without asking.",!!
 | 
|---|
| 29 |  I (OCXASK="D") W !!,"Locally altered data will be displayed only.",!!
 | 
|---|
| 30 |  I (OCXASK="A") W !!,"Sites will be asked before locally altered data is overwritten.",!!
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 |  S OCXPATCH="" F  D  Q:$L(OCXPATCH)
 | 
|---|
| 33 |  .W !!,"Enter Patch ID (ex. OR*3*96): " R OCXPATCH:DTIME E  S OCXPATCH="^" Q
 | 
|---|
| 34 |  .Q:(OCXPATCH="^")
 | 
|---|
| 35 |  .I '$L(OCXPATCH) S OCXPATCH="^^" Q
 | 
|---|
| 36 |  .I $L(OCXPATCH),'(OCXPATCH?1"OR*"1N1"*"1.4N) D  S OCXPATCH="" Q
 | 
|---|
| 37 |  ..W !!
 | 
|---|
| 38 |  ..W:'(OCXPATCH["?") "Invalid"
 | 
|---|
| 39 |  ..W " Format -> OR*v*ppp"
 | 
|---|
| 40 |  ..W !,"   v = Package Version."
 | 
|---|
| 41 |  ..W !," ppp = Patch Number."
 | 
|---|
| 42 |  ..W !
 | 
|---|
| 43 |  Q:(OCXPATCH="^")
 | 
|---|
| 44 |  S:(OCXPATCH="^^") OCXPATCH=""
 | 
|---|
| 45 |  I $P(OCXPATCH,"*",3) S $P(OCXLIN2,";",5)="**"_$P(OCXPATCH,"*",3)_"**"
 | 
|---|
| 46 |  I $L(OCXPATCH) S OCXPATCH="(Delete after Install of "_OCXPATCH_")"
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 |  Q:'$$RSDEL
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 |  D ^OCXSEND2 ; Get File Data
 | 
|---|
| 51 |  ;
 | 
|---|
| 52 |  S TOTL=$$EN^OCXSEND3 ; File Routines
 | 
|---|
| 53 |  ;
 | 
|---|
| 54 |  S TOTL=TOTL+$$EN^OCXSENDA ; File Main Runtime Library Routine
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 |  S TOTL=TOTL+$$EN^OCXSEND4 ; File Utility Runtime Library Routine 0
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 |  S TOTL=TOTL+$$EN^OCXSEND5 ; File Utility Runtime Library Routine 1
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 |  S TOTL=TOTL+$$EN^OCXSEND6 ; File Utility Runtime Library Routine 2
 | 
|---|
| 61 |  ;
 | 
|---|
| 62 |  S TOTL=TOTL+$$EN^OCXSEND7 ; File Utility Runtime Library Routine 3
 | 
|---|
| 63 |  ;
 | 
|---|
| 64 |  S TOTL=TOTL+$$EN^OCXSEND8 ; File Utility Runtime Library Routine 4
 | 
|---|
| 65 |  ;
 | 
|---|
| 66 | EXIT K ^TMP("OCXSEND",$J),^UTILITY($J)
 | 
|---|
| 67 |  ;
 | 
|---|
| 68 |  W !!,TOTL,"  total lines of code filed.",!!
 | 
|---|
| 69 |  ;
 | 
|---|
| 70 |  Q
 | 
|---|
| 71 |  ;
 | 
|---|
| 72 | READ(OCX0,OCXA,OCXB,OCXL) ;
 | 
|---|
| 73 |  N X,DIR,DTOUT,DUOUT,DIRUT,DIROUT
 | 
|---|
| 74 |  Q:'$L($G(OCX0)) U
 | 
|---|
| 75 |  S DIR(0)=OCX0
 | 
|---|
| 76 |  S:$L($G(OCXA)) DIR("A")=OCXA
 | 
|---|
| 77 |  S:$L($G(OCXB)) DIR("B")=OCXB
 | 
|---|
| 78 |  F X=1:1:($G(OCXL)-1) W !
 | 
|---|
| 79 |  D ^DIR
 | 
|---|
| 80 |  I $D(DTOUT)!$D(DUOUT)!$D(DIRUT)!$D(DIROUT) Q U
 | 
|---|
| 81 |  Q Y
 | 
|---|
| 82 |  ;
 | 
|---|
| 83 | CUCI() Q:'$D(^%ZOSF("UCI")) "" N Y X ^%ZOSF("UCI") Q Y
 | 
|---|
| 84 |  ;
 | 
|---|
| 85 | NETNAME() ;
 | 
|---|
| 86 |  Q:$L($G(^XMB("NETNAME"))) ^XMB("NETNAME")
 | 
|---|
| 87 |  Q:$L($G(^XMB("NAME"))) ^XMB("NAME")
 | 
|---|
| 88 |  Q $$CUCI
 | 
|---|
| 89 |  ;
 | 
|---|
| 90 | RSDEL() ;
 | 
|---|
| 91 |  ;
 | 
|---|
| 92 |  W !!,"Scanning for old rule transport routines..."
 | 
|---|
| 93 |  N X,CNT,RCNT,RLIST,RNAME
 | 
|---|
| 94 |  S RCNT=0
 | 
|---|
| 95 |  ;
 | 
|---|
| 96 |  ;  Scan for Routines To Delete
 | 
|---|
| 97 |  ;
 | 
|---|
| 98 |  ; Main Routine
 | 
|---|
| 99 |  S RNAME=$$RNAME^OCXSEND3(0,0) I $$RFIND(RNAME,100) S RLIST(RNAME)=""
 | 
|---|
| 100 |  ;
 | 
|---|
| 101 |  ; Runtime Library routines
 | 
|---|
| 102 |  F CNT=0:1:35 S RNAME=$$RNAME^OCXSEND3(CNT,1) I $$RFIND(RNAME,CNT) S RLIST(RNAME)=""
 | 
|---|
| 103 |  ;
 | 
|---|
| 104 |  ; Data Routines
 | 
|---|
| 105 |  F CNT=0:1:46655 S RNAME=$$RNAME^OCXSEND3(CNT,2) I $$RFIND(RNAME,CNT) S RLIST(RNAME)=""
 | 
|---|
| 106 |  ;
 | 
|---|
| 107 |  I '$L($O(RLIST(""))) W !,"No old rule transport routines found..." H 2 Q 1
 | 
|---|
| 108 |  ;
 | 
|---|
| 109 |  W !!,"These routines will be deleted and overwritten."
 | 
|---|
| 110 |  Q:'$$READ("Y"," Do you want to proceed?","NO") 0
 | 
|---|
| 111 |  ;
 | 
|---|
| 112 |  ;    Delete The routines
 | 
|---|
| 113 |  ;
 | 
|---|
| 114 |  I '$D(^%ZOSF("DEL")) W !!,"Old rule transport routines not deleted (^%ZOSF(""DEL"") undefined)" Q 0
 | 
|---|
| 115 |  ;
 | 
|---|
| 116 |  S RNAME="" F RCNT=1:1 S RNAME=$O(RLIST(RNAME)) Q:'$L(RNAME)  D
 | 
|---|
| 117 |  .W !,RNAME
 | 
|---|
| 118 |  .I $$RDEL(RNAME) W "   Deleted..." Q
 | 
|---|
| 119 |  .W "   Not Deleted..."
 | 
|---|
| 120 |  ;
 | 
|---|
| 121 |  W !!,RCNT," routine",$S((RCNT=1):"",1:"s")," deleted."
 | 
|---|
| 122 |  ;
 | 
|---|
| 123 |  H 2 Q 1
 | 
|---|
| 124 |  ;
 | 
|---|
| 125 | RFIND(X,C) ;
 | 
|---|
| 126 |  W:($X>70) ! W:'(C#100) "."
 | 
|---|
| 127 |  Q:'$L(X) 0 X "S TEXT=$T(+1^"_X_")" Q:'$L(TEXT) 0
 | 
|---|
| 128 |  W !,X Q 1
 | 
|---|
| 129 |  Q
 | 
|---|
| 130 |  ;
 | 
|---|
| 131 | RDEL(X) ;
 | 
|---|
| 132 |  ;
 | 
|---|
| 133 |  Q:'$L(X) 0 X "S TEXT=$T(+1^"_X_")" Q:'$L(TEXT) 0
 | 
|---|
| 134 |  X ^%ZOSF("DEL") Q 1
 | 
|---|
| 135 |  ;
 | 
|---|