Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/ORDER_ENTRY_RESULTS_REPORTING-OR-OCX--ORRC--ORRJ/OCXSEND3.m

    r613 r623  
    1 OCXSEND3        ;SLC/RJS,CLA - BUILD RULE TRANSPORTER ROUTINES (Build Routines) ;1/31/01  08:51
    2         ;;3.0;ORDER ENTRY/RESULTS REPORTING;**32,74,96,105,243**;Dec 17,1997;Build 242
    3         ;;  ;;ORDER CHECK EXPERT version 1.01 released OCT 29,1998
    4         ;
    5 EN()    ;
    6         ;
    7         N LAST,RLINE,RNUM,RTEXT,TOTLINE
    8         K ^TMP("OCXSEND",$J,"RTN") S ^TMP("OCXSEND",$J,"RTN",100,0)=" ;"
    9         S (TOTLINE,RSIZE,RLINE,RCNT)=0,RNUM=1 F  S RLINE=$O(^TMP("OCXSEND",$J,"DATA",RLINE)) Q:'RLINE  D
    10         .S RTEXT=$G(^TMP("OCXSEND",$J,"DATA",RLINE)) Q:'$L(RTEXT)
    11         .S LAST=$O(^TMP("OCXSEND",$J,"RTN",""),-1)+1,RCNT=RCNT+1,RSIZE=RSIZE+$L(RTEXT)
    12         .S ^TMP("OCXSEND",$J,"RTN",LAST,0)=" ;;"_RTEXT
    13         .I (RSIZE>6000) S TOTLINE=TOTLINE+$$RFILE($O(^TMP("OCXSEND",$J,"DATA",RLINE)),.RNUM) S (RSIZE,RCNT)=0
    14         I $O(^TMP("OCXSEND",$J,"RTN",100)) S TOTLINE=TOTLINE+$$RFILE(0,.RNUM)
    15         ;
    16         Q TOTLINE
    17         ;
    18 RFILE(LINK,RNUM)        ;
    19         ;
    20         N DIE,LAST,X,XCN
    21         D HDR(LINK,RNUM)
    22         S LAST=$O(^TMP("OCXSEND",$J,"RTN",""),-1)+1
    23         S ^TMP("OCXSEND",$J,"RTN",LAST,0)=" ;1;"
    24         S ^TMP("OCXSEND",$J,"RTN",LAST+1,0)=" ;"
    25         S ^TMP("OCXSEND",$J,"RTN",LAST+2,0)="$"
    26         S DIE="^TMP(""OCXSEND"","_$J_",""RTN"",",XCN=0
    27         S X=$$RNAME(RNUM,2)
    28         W !,X
    29         X ^%ZOSF("SAVE")
    30         S RNUM=RNUM+1
    31         K ^TMP("OCXSEND",$J,"RTN") S ^TMP("OCXSEND",$J,"RTN",100,0)=" ;"
    32         Q ""
    33         ;
    34 NOW()   ;
    35         N X,Y,%DT
    36         S X="N",%DT="T" D ^%DT S Y=$$DATE^OCXSENDD(Y)
    37         I (Y["@") S Y=$P(Y,"@",1)_" at "_$P(Y,"@",2)
    38         Q Y
    39         ;
    40 HDR(LINK,RNUM)  ;
    41         ;
    42         N R,LINE,TEXT,RNAME,RLINK,NOW
    43         S NOW=$$NOW
    44         I 'LINK S RLINK=";"
    45         E  S RLINK="G ^"_$$RNAME(RNUM+1,2)
    46         S RNAME=$$RNAME(RNUM,2),(HEADER1,HEADER2,HEADER3,HEADER4,HEADER5)=";"
    47         ;
    48         F LINE=1:1:999 S TEXT=$P($T(TEXT+LINE),";",2,999) Q:TEXT  S TEXT=$P(TEXT,";",2,999) S R(LINE,0)=$$CONV(TEXT)
    49         ;
    50         M ^TMP("OCXSEND",$J,"RTN")=R
    51         ;
    52         Q
    53         ;
    54 HEX(X)  Q:'X "" Q $$HEX(X\36)_$E("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",((X#36)+1))
    55         ;
    56 RNAME(X,Y)      ;
    57         ; Y=0  -> Main Routine
    58         ; Y=1  -> Runtime Library Routine
    59         ; Y=2  -> Data Routine for ORYppp
    60         ; Y=3  -> Data Routine for OCXRU
    61         ;
    62         N OCXRN1,OCXRN2,OCXSEQ
    63         ;
    64         S OCXRN1="OCXRULE",OCXRN2="OCXRU"
    65         S:$L($G(OCXPATCH)) OCXRN2="ORY"_$E((1000+$P(OCXPATCH,"*",3)),2,4),OCXRN1=OCXRN2_"ES"
    66         ;
    67         Q:'Y OCXRN1
    68         ;
    69         I (Y=1),(X>35) Q ""
    70         I (Y=2),'$L($G(OCXPATCH)) S Y=3
    71         I (Y=2),(X>1295) Q ""
    72         I (Y=3),(X>46655) Q ""
    73         ;
    74         S OCXSEQ=0 S:X OCXSEQ=$$HEX(X)
    75         S OCXSEQ="00000"_OCXSEQ
    76         S OCXSEQ=$E(OCXSEQ,($L(OCXSEQ)-Y+1),$L(OCXSEQ))
    77         ;
    78         Q OCXRN2_OCXSEQ
    79         ;
    80 CONV(X) ;
    81         N VAL
    82         F  Q:'(X["|")  D
    83         .S VAL=$P(X,"|",2)
    84         .X "S VAL="_VAL
    85         .S X=$P(X,"|",1)_VAL_$P(X,"|",3,999)
    86         I '(X="$"),'$L($P(X," ",2)) S X=X_" ;"
    87         Q X
    88         ;
    89 TEXT    ;
    90         ;;|RNAME| ;SLC/RJS,CLA - OCX PACKAGE RULE TRANSPORT ROUTINE |OCXPATCH| ;|NOW|
    91         ;;|OCXLIN2|
    92         ;;|OCXLIN3|
    93         ;; ;
    94         ;;S ;
    95         ;; ;
    96         ;; D DOT^|$$RNAME^OCXSEND3(0,0)|
    97         ;; ;
    98         ;; ;
    99         ;; K REMOTE,LOCAL,OPCODE,REF
    100         ;; F LINE=1:1:500 S TEXT=$P($T(DATA+LINE),";",2,999) Q:TEXT  I $L(TEXT) D  Q:QUIT
    101         ;; .S ^TMP("OCXRULE",$J,$O(^TMP("OCXRULE",$J,"A"),-1)+1)=TEXT
    102         ;; ;
    103         ;; |RLINK|
    104         ;; ;
    105         ;; Q
    106         ;; ;
    107         ;;DATA ;
    108         ;1;
    109         ;
     1OCXSEND3 ;SLC/RJS,CLA - BUILD RULE TRANSPORTER ROUTINES (Build Routines) ;1/31/01  08:51
     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 ;
     5EN() ;
     6 ;
     7 N LAST,RLINE,RNUM,RTEXT,TOTLINE
     8 K ^TMP("OCXSEND",$J,"RTN") S ^TMP("OCXSEND",$J,"RTN",100,0)=" ;"
     9 S (TOTLINE,RSIZE,RLINE,RCNT)=0,RNUM=1 F  S RLINE=$O(^TMP("OCXSEND",$J,"DATA",RLINE)) Q:'RLINE  D
     10 .S RTEXT=$G(^TMP("OCXSEND",$J,"DATA",RLINE)) Q:'$L(RTEXT)
     11 .S LAST=$O(^TMP("OCXSEND",$J,"RTN",""),-1)+1,RCNT=RCNT+1,RSIZE=RSIZE+$L(RTEXT)
     12 .S ^TMP("OCXSEND",$J,"RTN",LAST,0)=" ;;"_RTEXT
     13 .I (RSIZE>6000) S TOTLINE=TOTLINE+$$RFILE($O(^TMP("OCXSEND",$J,"DATA",RLINE)),.RNUM) S (RSIZE,RCNT)=0
     14 I $O(^TMP("OCXSEND",$J,"RTN",100)) S TOTLINE=TOTLINE+$$RFILE(0,.RNUM)
     15 ;
     16 Q TOTLINE
     17 ;
     18RFILE(LINK,RNUM) ;
     19 ;
     20 N DIE,LAST,X,XCN,XCM
     21 D HDR(LINK,RNUM)
     22 S LAST=$O(^TMP("OCXSEND",$J,"RTN",""),-1)+1
     23 S ^TMP("OCXSEND",$J,"RTN",LAST,0)=" ;1;"
     24 S ^TMP("OCXSEND",$J,"RTN",LAST+1,0)=" ;"
     25 S ^TMP("OCXSEND",$J,"RTN",LAST+2,0)="$"
     26 S DIE="^TMP(""OCXSEND"","_$J_",""RTN"",",XCN=0
     27 S X=$$RNAME(RNUM,2)
     28 W !,X
     29 X ^%ZOSF("SAVE")
     30 W "  ... ",XCM," Lines filed"
     31 S RNUM=RNUM+1
     32 K ^TMP("OCXSEND",$J,"RTN") S ^TMP("OCXSEND",$J,"RTN",100,0)=" ;"
     33 Q XCM
     34 ;
     35NOW() ;
     36 N X,Y,%DT
     37 S X="N",%DT="T" D ^%DT S Y=$$DATE^OCXSENDD(Y)
     38 I (Y["@") S Y=$P(Y,"@",1)_" at "_$P(Y,"@",2)
     39 Q Y
     40 ;
     41HDR(LINK,RNUM) ;
     42 ;
     43 N R,LINE,TEXT,RNAME,RLINK,NOW
     44 S NOW=$$NOW
     45 I 'LINK S RLINK=";"
     46 E  S RLINK="G ^"_$$RNAME(RNUM+1,2)
     47 S RNAME=$$RNAME(RNUM,2),(HEADER1,HEADER2,HEADER3,HEADER4,HEADER5)=";"
     48 ;
     49 F LINE=1:1:999 S TEXT=$P($T(TEXT+LINE),";",2,999) Q:TEXT  S TEXT=$P(TEXT,";",2,999) S R(LINE,0)=$$CONV(TEXT)
     50 ;
     51 M ^TMP("OCXSEND",$J,"RTN")=R
     52 ;
     53 Q
     54 ;
     55HEX(X) Q:'X "" Q $$HEX(X\36)_$E("0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",((X#36)+1))
     56 ;
     57RNAME(X,Y) ;
     58 ; Y=0  -> Main Routine
     59 ; Y=1  -> Runtime Library Routine
     60 ; Y=2  -> Data Routine for ORYppp
     61 ; Y=3  -> Data Routine for OCXRU
     62 ;
     63 N OCXRN1,OCXRN2,OCXSEQ
     64 ;
     65 S OCXRN1="OCXRULE",OCXRN2="OCXRU"
     66 S:$L($G(OCXPATCH)) OCXRN2="ORY"_$E((1000+$P(OCXPATCH,"*",3)),2,4),OCXRN1=OCXRN2_"ES"
     67 ;
     68 Q:'Y OCXRN1
     69 ;
     70 I (Y=1),(X>35) Q ""
     71 I (Y=2),'$L($G(OCXPATCH)) S Y=3
     72 I (Y=2),(X>1295) Q ""
     73 I (Y=3),(X>46655) Q ""
     74 ;
     75 S OCXSEQ=0 S:X OCXSEQ=$$HEX(X)
     76 S OCXSEQ="00000"_OCXSEQ
     77 S OCXSEQ=$E(OCXSEQ,($L(OCXSEQ)-Y+1),$L(OCXSEQ))
     78 ;
     79 Q OCXRN2_OCXSEQ
     80 ;
     81CONV(X) ;
     82 N VAL
     83 F  Q:'(X["|")  D
     84 .S VAL=$P(X,"|",2)
     85 .X "S VAL="_VAL
     86 .S X=$P(X,"|",1)_VAL_$P(X,"|",3,999)
     87 I '(X="$"),'$L($P(X," ",2)) S X=X_" ;"
     88 Q X
     89 ;
     90TEXT ;
     91 ;;|RNAME| ;SLC/RJS,CLA - OCX PACKAGE RULE TRANSPORT ROUTINE |OCXPATCH| ;|NOW|
     92 ;;|OCXLIN2|
     93 ;;|OCXLIN3|
     94 ;; ;
     95 ;;S ;
     96 ;; ;
     97 ;; D DOT^|$$RNAME^OCXSEND3(0,0)|
     98 ;; ;
     99 ;; ;
     100 ;; K REMOTE,LOCAL,OPCODE,REF
     101 ;; F LINE=1:1:500 S TEXT=$P($T(DATA+LINE),";",2,999) Q:TEXT  I $L(TEXT) D  Q:QUIT
     102 ;; .S ^TMP("OCXRULE",$J,$O(^TMP("OCXRULE",$J,"A"),-1)+1)=TEXT
     103 ;; ;
     104 ;; |RLINK|
     105 ;; ;
     106 ;; Q
     107 ;; ;
     108 ;;DATA ;
     109 ;1;
     110 ;
Note: See TracChangeset for help on using the changeset viewer.