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/OCXOCMP6.m

    r613 r623  
    1 OCXOCMP6        ;SLC/RJS,CLA - ORDER CHECK CODE COMPILER (Assemble Order Check Routines) ;1/05/04  14:33
    2         ;;3.0;ORDER ENTRY/RESULTS REPORTING;**32,221,243**;Dec 17,1997;Build 242
    3         ;;  ;;ORDER CHECK EXPERT version 1.01 released OCT 29,1998
    4         ;
    5 EN()    ;
    6         ;
    7         Q:$G(OCXWARN) 1
    8         N OCXD0,OCXD1,OCXRN,OCXSCNT,OCXOFF
    9         ;
    10         W:'$G(OCXAUTO) !,?5,"Generate Extrinsic Function and Variables documentation..."
    11         S OCXD0=0 F  S OCXD0=$O(^TMP("OCXCMP",$J,"C CODE",OCXD0)) Q:'OCXD0  D DOC^OCXOCMPT(OCXD0)
    12         ;
    13         K ^OCXS(860.3,"APGM")
    14         S OCXD0=0 F  S OCXD0=$O(^OCXS(860.3,OCXD0)) Q:'OCXD0  D
    15         .K ^OCXS(860.3,OCXD0,"RTN") I '$G(OCXAUTO) W:($X>60) ! W "."
    16         ;
    17         K ^TMP("OCXCMP",$J,"D CODE")
    18         ;
    19         W:'$G(OCXAUTO) !,?5,"Assign Subroutines to Routines..."
    20         S OCXRN=1,OCXD0=0
    21         D GETHDR(1)
    22         F  S OCXD0=$O(^TMP("OCXCMP",$J,"C CODE",OCXD0)) Q:'OCXD0  D  Q:OCXWARN
    23         .N OCXLLAB,OCXSKIP,OCXEXF,OCXSUB,OCXSIZE,OCXFILE,OCXCCODE,OCXDCODE,OCXLAST
    24         .I '$G(OCXAUTO) W:($X>60) ! W "."
    25         .S OCXLLAB=^TMP("OCXCMP",$J,"LINE",OCXD0)
    26         .S OCXSKIP=((OCXLLAB="UPDATE")!(OCXLLAB="LOG"))
    27         .S OCXSIZE=$$SIZE^OCXOCMP8(OCXRN,OCXD0)
    28         .S OCXLAST='$O(^TMP("OCXCMP",$J,"C CODE",OCXD0))
    29         .S OCXFILE=(OCXSIZE>OCXCRS)!(OCXLAST) S:OCXSKIP OCXFILE=0
    30         .I OCXFILE D
    31         ..K OCXEXF S OCXEXF=""
    32         ..I $D(^TMP("OCXCMP",$J,"D CODE",OCXRN,"CALLS")) M OCXEXF=^("CALLS")
    33         ..S OCXSUB="" F  S OCXSUB=$O(OCXEXF(OCXSUB)) Q:'$L(OCXSUB)  I 'OCXEXF(OCXSUB) D
    34         ...S OCXEXF(OCXSUB)=1,OCXEXF=OCXSUB
    35         ...S OCXSUB="" F  S OCXSUB=$O(^TMP("OCXCMP",$J,"INCLUDE",OCXEXF,"CALLS",OCXSUB)) Q:'$L(OCXSUB)  D
    36         ....S OCXEXF(OCXSUB)=$G(OCXEXF(OCXSUB))
    37         ..S OCXSUB="" F  S OCXSUB=$O(OCXEXF(OCXSUB)) Q:'$L(OCXSUB)  D
    38         ...D APPEND^OCXOCMP8(OCXRN,OCXSUB,"F")
    39         ..D APPEND^OCXOCMP8(OCXRN,"$")
    40         ..S OCXRN=OCXRN+1 D GETHDR(OCXRN)
    41         ..;
    42         .D APPEND^OCXOCMP8(OCXRN,OCXD0,"C",OCXLLAB)
    43         .I ($E(OCXLLAB,1,2)="EL") D
    44         ..S ^OCXS(860.3,"APGM",(+$E(OCXLLAB,3,$L(OCXLLAB))),(OCXLLAB_U_$$RNAM(OCXRN)))=""
    45         .S $P(^TMP("OCXCMP",$J,"LINE",OCXD0),U,2)=$$RNAM(OCXRN)
    46         .Q:'OCXLAST
    47         .K OCXEXF S OCXEXF=""
    48         .I $D(^TMP("OCXCMP",$J,"D CODE",OCXRN,"CALLS")) M OCXEXF=^("CALLS")
    49         .S OCXSUB="" F  S OCXSUB=$O(OCXEXF(OCXSUB)) Q:'$L(OCXSUB)  I 'OCXEXF(OCXSUB) D
    50         ..S OCXEXF(OCXSUB)=1,OCXEXF=OCXSUB
    51         ..S OCXSUB="" F  S OCXSUB=$O(^TMP("OCXCMP",$J,"INCLUDE",OCXEXF,"CALLS",OCXSUB)) Q:'$L(OCXSUB)  D
    52         ...S OCXEXF(OCXSUB)=$G(OCXEXF(OCXSUB))
    53         .S OCXSUB="" F  S OCXSUB=$O(OCXEXF(OCXSUB)) Q:'$L(OCXSUB)  D
    54         ..D APPEND^OCXOCMP8(OCXRN,OCXSUB,"F")
    55         .D APPEND^OCXOCMP8(OCXRN,"$")
    56         ;
    57         W:'$G(OCXAUTO) !,?5,"Resolve Routine Line Tags..."
    58         S OCXD0=0 F  S OCXD0=$O(^TMP("OCXCMP",$J,"D CODE",OCXD0)) Q:'OCXD0  D  Q:OCXWARN
    59         .I '$G(OCXAUTO) W:($X>60) ! W "."
    60         .N TEXT,RTN,TEMP,ALT,LABL,OBJ,PIEC
    61         .S RTN=$$RNAM(OCXD0)
    62         .K TEMP M TEMP=^TMP("OCXCMP",$J,"D CODE",OCXD0)
    63         .S OCXD1=0 F OCXOFF=0:1 S OCXD1=$O(TEMP(OCXD1)) Q:'OCXD1  D  Q:OCXWARN
    64         ..N TEXT,PIEC
    65         ..S TEXT=TEMP(OCXD1,0) Q:'(TEXT["||")
    66         ..;
    67         ..F PIEC=2:2:$L(TEXT,"||") D  Q:OCXWARN
    68         ...S LABL=$P(TEXT,"||",PIEC)
    69         ...I ($E(LABL,1,5)="LINE:") D  I 1
    70         ....S LABL=$G(^TMP("OCXCMP",$J,"LINE",+$P(LABL,":",2)))
    71         ....I '$L(LABL) D WARN^OCXOCMPV("Line Label not found: "_$P(TEXT,"|",2),$P($T(+1)," ",1)) Q
    72         ....S:($P(LABL,"^",2)=RTN) LABL=$P(LABL,"^",1)
    73         ...;
    74         ...E  I ($E(LABL,1,5)="LNTAG") D  I 1
    75         ....N D0,CNT
    76         ....S D0=OCXD1 F CNT=1:1 S D0=$O(TEMP(D0),-1)  Q:$L($P(TEMP(D0,0)," ",1))
    77         ....S LABL=$P(TEMP(D0,0)," ",1) S:(LABL["(") LABL=$P(LABL,"(",1)
    78         ....S LABL="(+$P($H,"","",2))_""<"_LABL_"+"_CNT_U_RTN_">"""
    79         ...;
    80         ...E  D WARN^OCXOCMPV("Unknown Compiler directive: "_LABL,$P($T(+1)," ",1)) Q
    81         ...;
    82         ...S $P(TEXT,"||",PIEC)=LABL
    83         ..;
    84         ..F  Q:'(TEXT["||")  S TEXT=$P(TEXT,"||",1)_$P(TEXT,"||",2,999)
    85         ..S TEMP(OCXD1,0)=TEXT
    86         .;
    87         .K ^TMP("OCXCMP",$J,"D CODE",OCXD0)
    88         .M ^TMP("OCXCMP",$J,"D CODE",OCXD0)=TEMP
    89         ;
    90         Q:OCXWARN 1
    91         W:'$G(OCXAUTO) !,?5,"Generate Subroutine and Call documentation..."
    92         S OCXD0=0 F  S OCXD0=$O(^TMP("OCXCMP",$J,"C CODE",OCXD0)) Q:'OCXD0  D CALL^OCXOCMPT(OCXD0)
    93         ;
    94         W:'$G(OCXAUTO) !!,?5,"Delete Old OCXOZ* Routines..."
    95         S OCXRTEST=^%ZOSF("TEST"),OCXSAVE=^%ZOSF("SAVE"),OCXDEL=^%ZOSF("DEL")
    96         F OCXRN=1:1:1290 D
    97         .I '$G(OCXAUTO) W:($X>60) ! W:'(OCXRN#100) "."
    98         .S X=$$RNAM(OCXRN) X OCXRTEST I  X OCXDEL W:'$G(OCXAUTO) "!"
    99         ;
    100         W:'$G(OCXAUTO) !,?5,"File New OCXOZ* routines..."
    101         S OCXD0=$O(^TMP("OCXCMP",$J,"D CODE",0)) Q:'OCXD0 1
    102         F  S OCXD0=$O(^TMP("OCXCMP",$J,"D CODE",OCXD0)) Q:'OCXD0  D  Q:OCXWARN
    103         .I '$G(OCXAUTO) W:($X>60) ! W "."
    104         .D FILE^OCXOCMP8(OCXD0)
    105         S OCXD0=$O(^TMP("OCXCMP",$J,"D CODE",0)) Q:'OCXD0 1  D FILE^OCXOCMP8(OCXD0)
    106         ;
    107         Q OCXWARN
    108         ;
    109 GETHDR(RNUM)    ;
    110         ;
    111         N OCXREC,D0,EFC,OCXEFF,PIEC,TEXT
    112         S OCXREC(1,0)=$$RNAM(RNUM)_" ;SLC/RJS,CLA - Order Check Scan ;"_$$NOW
    113         S OCXREC(2,0)=$T(+2)
    114         S OCXREC(3,0)=$T(+3)
    115         S OCXREC(4,0)=" ;"
    116         S OCXREC(5,0)=" ; ***************************************************************"
    117         S OCXREC(6,0)=" ; ** Warning: This routine is automatically generated by the   **"
    118         S OCXREC(7,0)=" ; ** Rule Compiler (^OCXOCMP) and ANY changes to this routine  **"
    119         S OCXREC(8,0)=" ; ** will be lost the next time the rule compiler executes.    **"
    120         S OCXREC(9,0)=" ; ***************************************************************"
    121         S OCXREC(10,0)=" ;"
    122         I (RNUM=1) D
    123         .S OCXREC(11,0)=" ;    compiled code line length: "_OCXCLL
    124         .S OCXREC(12,0)=" ;        compiled routine size: "_OCXCRS
    125         .S OCXREC(13,0)=" ; triggered rule ignore period: "_OCXTSPI
    126         .S OCXREC(14,0)=" ;"
    127         .S OCXREC(15,0)=" ;   Program Execution Trace Mode: "_$S($G(OCXTRACE):" ON",1:"OFF")
    128         .S OCXREC(16,0)=" ;" ; " ;    Elapsed time logging: "_$S($G(OCXTLOG):" ON",1:"OFF")
    129         .S OCXREC(17,0)=" ;               Raw Data Logging: "_$S($G(OCXDLOG):(" ON  Keep data for "_OCXDLOG_" day"_$S(OCXDLOG=1:"",1:"s")_" then purge."),1:"OFF")
    130         .S OCXREC(18,0)=" ; Compiler mode: "_$S(($G(OCXAUTO)>1):"Queued",$G(OCXAUTO):" ON",1:"OFF")
    131         .S OCXREC(19,0)=" ;   Compiled by: "_$P($G(^VA(200,+$G(DUZ),0)),U,1)_"  (DUZ="_(+$G(DUZ))_")"
    132         .S OCXREC(20,0)=" Q"
    133         .S OCXREC(21,0)=" ;"
    134         ;
    135         E  D
    136         .S OCXREC(11,0)=" Q"
    137         .S OCXREC(12,0)=" ;"
    138         ;
    139         M ^TMP("OCXCMP",$J,"D CODE",RNUM)=OCXREC
    140         Q
    141         ;
    142 RNAM(X) ;
    143         N CHAR
    144         S CHAR="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
    145         Q "OCXOZ"_$E(CHAR,(X\36+1))_$E(CHAR,(X#36+1))
    146         ;
    147 TODAY() N X,Y,%DT S X="T",%DT="" D ^%DT X ^DD("DD") Q Y
    148         ;
    149 NOW()   N X,Y,%DT S X="N",%DT="T" D ^%DT X ^DD("DD") S:(Y["@") Y=$P(Y,"@",1)_" at "_$P(Y,"@",2,99) Q Y
    150         ;
     1OCXOCMP6 ;SLC/RJS,CLA - ORDER CHECK CODE COMPILER (Assemble Order Check Routines) ;1/05/04  14:33
     2 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**32,221**;Dec 17,1997
     3 ;;  ;;ORDER CHECK EXPERT version 1.01 released OCT 29,1998
     4 ;
     5EN() ;
     6 ;
     7 Q:$G(OCXWARN) 1
     8 N OCXD0,OCXD1,OCXRN,OCXSCNT,OCXOFF
     9 ;
     10 S OCXLCNT=0
     11 ;
     12 W:'$G(OCXAUTO) !,?5,"Generate Extrinsic Function and Variables documentation..."
     13 S OCXD0=0 F  S OCXD0=$O(^TMP("OCXCMP",$J,"C CODE",OCXD0)) Q:'OCXD0  D DOC^OCXOCMPT(OCXD0)
     14 ;
     15 K ^OCXS(860.3,"APGM")
     16 S OCXD0=0 F  S OCXD0=$O(^OCXS(860.3,OCXD0)) Q:'OCXD0  D
     17 .K ^OCXS(860.3,OCXD0,"RTN") I '$G(OCXAUTO) W:($X>60) ! W "."
     18 ;
     19 K ^TMP("OCXCMP",$J,"D CODE")
     20 ;
     21 W:'$G(OCXAUTO) !,?5,"Assign Subroutines to Routines..."
     22 S OCXRN=1,OCXD0=0
     23 D GETHDR(1)
     24 F  S OCXD0=$O(^TMP("OCXCMP",$J,"C CODE",OCXD0)) Q:'OCXD0  D  Q:OCXWARN
     25 .N OCXLLAB,OCXSKIP,OCXEXF,OCXSUB,OCXSIZE,OCXFILE,OCXCCODE,OCXDCODE,OCXLAST
     26 .I '$G(OCXAUTO) W:($X>60) ! W "."
     27 .S OCXLLAB=^TMP("OCXCMP",$J,"LINE",OCXD0)
     28 .S OCXSKIP=((OCXLLAB="UPDATE")!(OCXLLAB="LOG"))
     29 .S OCXSIZE=$$SIZE^OCXOCMP8(OCXRN,OCXD0)
     30 .S OCXLAST='$O(^TMP("OCXCMP",$J,"C CODE",OCXD0))
     31 .S OCXFILE=(OCXSIZE>OCXCRS)!(OCXLAST) S:OCXSKIP OCXFILE=0
     32 .I OCXFILE D
     33 ..K OCXEXF S OCXEXF=""
     34 ..I $D(^TMP("OCXCMP",$J,"D CODE",OCXRN,"CALLS")) M OCXEXF=^("CALLS")
     35 ..S OCXSUB="" F  S OCXSUB=$O(OCXEXF(OCXSUB)) Q:'$L(OCXSUB)  I 'OCXEXF(OCXSUB) D
     36 ...S OCXEXF(OCXSUB)=1,OCXEXF=OCXSUB
     37 ...S OCXSUB="" F  S OCXSUB=$O(^TMP("OCXCMP",$J,"INCLUDE",OCXEXF,"CALLS",OCXSUB)) Q:'$L(OCXSUB)  D
     38 ....S OCXEXF(OCXSUB)=$G(OCXEXF(OCXSUB))
     39 ..S OCXSUB="" F  S OCXSUB=$O(OCXEXF(OCXSUB)) Q:'$L(OCXSUB)  D
     40 ...D APPEND^OCXOCMP8(OCXRN,OCXSUB,"F")
     41 ..D APPEND^OCXOCMP8(OCXRN,"$")
     42 ..S OCXRN=OCXRN+1 D GETHDR(OCXRN)
     43 ..;
     44 .D APPEND^OCXOCMP8(OCXRN,OCXD0,"C",OCXLLAB)
     45 .I ($E(OCXLLAB,1,2)="EL") D
     46 ..S ^OCXS(860.3,"APGM",(+$E(OCXLLAB,3,$L(OCXLLAB))),(OCXLLAB_U_$$RNAM(OCXRN)))=""
     47 .S $P(^TMP("OCXCMP",$J,"LINE",OCXD0),U,2)=$$RNAM(OCXRN)
     48 .Q:'OCXLAST
     49 .K OCXEXF S OCXEXF=""
     50 .I $D(^TMP("OCXCMP",$J,"D CODE",OCXRN,"CALLS")) M OCXEXF=^("CALLS")
     51 .S OCXSUB="" F  S OCXSUB=$O(OCXEXF(OCXSUB)) Q:'$L(OCXSUB)  I 'OCXEXF(OCXSUB) D
     52 ..S OCXEXF(OCXSUB)=1,OCXEXF=OCXSUB
     53 ..S OCXSUB="" F  S OCXSUB=$O(^TMP("OCXCMP",$J,"INCLUDE",OCXEXF,"CALLS",OCXSUB)) Q:'$L(OCXSUB)  D
     54 ...S OCXEXF(OCXSUB)=$G(OCXEXF(OCXSUB))
     55 .S OCXSUB="" F  S OCXSUB=$O(OCXEXF(OCXSUB)) Q:'$L(OCXSUB)  D
     56 ..D APPEND^OCXOCMP8(OCXRN,OCXSUB,"F")
     57 .D APPEND^OCXOCMP8(OCXRN,"$")
     58 ;
     59 W:'$G(OCXAUTO) !,?5,"Resolve Routine Line Tags..."
     60 S OCXD0=0 F  S OCXD0=$O(^TMP("OCXCMP",$J,"D CODE",OCXD0)) Q:'OCXD0  D  Q:OCXWARN
     61 .I '$G(OCXAUTO) W:($X>60) ! W "."
     62 .N TEXT,RTN,TEMP,ALT,LABL,OBJ,PIEC
     63 .S RTN=$$RNAM(OCXD0)
     64 .K TEMP M TEMP=^TMP("OCXCMP",$J,"D CODE",OCXD0)
     65 .S OCXD1=0 F OCXOFF=0:1 S OCXD1=$O(TEMP(OCXD1)) Q:'OCXD1  D  Q:OCXWARN
     66 ..N TEXT,PIEC
     67 ..S TEXT=TEMP(OCXD1,0) Q:'(TEXT["||")
     68 ..;
     69 ..F PIEC=2:2:$L(TEXT,"||") D  Q:OCXWARN
     70 ...S LABL=$P(TEXT,"||",PIEC)
     71 ...I ($E(LABL,1,5)="LINE:") D  I 1
     72 ....S LABL=$G(^TMP("OCXCMP",$J,"LINE",+$P(LABL,":",2)))
     73 ....I '$L(LABL) D WARN^OCXOCMPV("Line Label not found: "_$P(TEXT,"|",2),$P($T(+1)," ",1)) Q
     74 ....S:($P(LABL,"^",2)=RTN) LABL=$P(LABL,"^",1)
     75 ...;
     76 ...E  I ($E(LABL,1,5)="LNTAG") D  I 1
     77 ....N D0,CNT
     78 ....S D0=OCXD1 F CNT=1:1 S D0=$O(TEMP(D0),-1)  Q:$L($P(TEMP(D0,0)," ",1))
     79 ....S LABL=$P(TEMP(D0,0)," ",1) S:(LABL["(") LABL=$P(LABL,"(",1)
     80 ....S LABL="(+$P($H,"","",2))_""<"_LABL_"+"_CNT_U_RTN_">"""
     81 ...;
     82 ...E  D WARN^OCXOCMPV("Unknown Compiler directive: "_LABL,$P($T(+1)," ",1)) Q
     83 ...;
     84 ...S $P(TEXT,"||",PIEC)=LABL
     85 ..;
     86 ..F  Q:'(TEXT["||")  S TEXT=$P(TEXT,"||",1)_$P(TEXT,"||",2,999)
     87 ..S TEMP(OCXD1,0)=TEXT
     88 .;
     89 .K ^TMP("OCXCMP",$J,"D CODE",OCXD0)
     90 .M ^TMP("OCXCMP",$J,"D CODE",OCXD0)=TEMP
     91 ;
     92 Q:OCXWARN 1
     93 W:'$G(OCXAUTO) !,?5,"Generate Subroutine and Call documentation..."
     94 S OCXD0=0 F  S OCXD0=$O(^TMP("OCXCMP",$J,"C CODE",OCXD0)) Q:'OCXD0  D CALL^OCXOCMPT(OCXD0)
     95 ;
     96 W:'$G(OCXAUTO) !!,?5,"Delete Old OCXOZ* Routines..."
     97 S OCXRTEST=^%ZOSF("TEST"),OCXSAVE=^%ZOSF("SAVE"),OCXDEL=^%ZOSF("DEL")
     98 F OCXRN=1:1:1290 D
     99 .I '$G(OCXAUTO) W:($X>60) ! W:'(OCXRN#100) "."
     100 .S X=$$RNAM(OCXRN) X OCXRTEST I  X OCXDEL W:'$G(OCXAUTO) "!"
     101 ;
     102 W:'$G(OCXAUTO) !,?5,"File New OCXOZ* routines..."
     103 S OCXD0=$O(^TMP("OCXCMP",$J,"D CODE",0)) Q:'OCXD0 1
     104 F  S OCXD0=$O(^TMP("OCXCMP",$J,"D CODE",OCXD0)) Q:'OCXD0  D  Q:OCXWARN
     105 .I '$G(OCXAUTO) W:($X>60) ! W "."
     106 .D FILE^OCXOCMP8(OCXD0)
     107 S OCXD0=$O(^TMP("OCXCMP",$J,"D CODE",0)) Q:'OCXD0 1  D FILE^OCXOCMP8(OCXD0)
     108 ;
     109 Q OCXWARN
     110 ;
     111GETHDR(RNUM) ;
     112 ;
     113 N OCXREC,D0,EFC,OCXEFF,PIEC,TEXT
     114 S OCXREC(1,0)=$$RNAM(RNUM)_" ;SLC/RJS,CLA - Order Check Scan ;"_$$NOW
     115 S OCXREC(2,0)=$T(+2)
     116 S OCXREC(3,0)=$T(+3)
     117 S OCXREC(4,0)=" ;"
     118 S OCXREC(5,0)=" ; ***************************************************************"
     119 S OCXREC(6,0)=" ; ** Warning: This routine is automatically generated by the   **"
     120 S OCXREC(7,0)=" ; ** Rule Compiler (^OCXOCMP) and ANY changes to this routine  **"
     121 S OCXREC(8,0)=" ; ** will be lost the next time the rule compiler executes.    **"
     122 S OCXREC(9,0)=" ; ***************************************************************"
     123 S OCXREC(10,0)=" ;"
     124 I (RNUM=1) D
     125 .S OCXREC(11,0)=" ;    compiled code line length: "_OCXCLL
     126 .S OCXREC(12,0)=" ;        compiled routine size: "_OCXCRS
     127 .S OCXREC(13,0)=" ; triggered rule ignore period: "_OCXTSPI
     128 .S OCXREC(14,0)=" ;"
     129 .S OCXREC(15,0)=" ;   Program Execution Trace Mode: "_$S($G(OCXTRACE):" ON",1:"OFF")
     130 .S OCXREC(16,0)=" ;" ; " ;    Elapsed time logging: "_$S($G(OCXTLOG):" ON",1:"OFF")
     131 .S OCXREC(17,0)=" ;               Raw Data Logging: "_$S($G(OCXDLOG):(" ON  Keep data for "_OCXDLOG_" day"_$S(OCXDLOG=1:"",1:"s")_" then purge."),1:"OFF")
     132 .S OCXREC(18,0)=" ; Compiler mode: "_$S(($G(OCXAUTO)>1):"Queued",$G(OCXAUTO):" ON",1:"OFF")
     133 .S OCXREC(19,0)=" ;   Compiled by: "_$P($G(^VA(200,+$G(DUZ),0)),U,1)_"  (DUZ="_(+$G(DUZ))_")"
     134 .S OCXREC(20,0)=" Q"
     135 .S OCXREC(21,0)=" ;"
     136 ;
     137 E  D
     138 .S OCXREC(11,0)=" Q"
     139 .S OCXREC(12,0)=" ;"
     140 ;
     141 M ^TMP("OCXCMP",$J,"D CODE",RNUM)=OCXREC
     142 Q
     143 ;
     144RNAM(X) ;
     145 N CHAR
     146 S CHAR="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
     147 Q "OCXOZ"_$E(CHAR,(X\36+1))_$E(CHAR,(X#36+1))
     148 ;
     149TODAY() N X,Y,%DT S X="T",%DT="" D ^%DT X ^DD("DD") Q Y
     150 ;
     151NOW() N X,Y,%DT S X="N",%DT="T" D ^%DT X ^DD("DD") S:(Y["@") Y=$P(Y,"@",1)_" at "_$P(Y,"@",2,99) Q Y
     152 ;
Note: See TracChangeset for help on using the changeset viewer.