OCXOCMPU ;SLC/RJS,CLA - ORDER CHECK CODE COMPILER (Build Local Term Translator) ;2/02/99  11:33
 ;;3.0;ORDER ENTRY/RESULTS REPORTING;**32**;Dec 17,1997
 ;;  ;;ORDER CHECK EXPERT version 1.01 released OCT 29,1998
 ;
 Q
 ;
TERMLKUP ;
 ;
 N OCXSR,OCXD0,OCXD1,OCXNAME,TEXT,OCXREC,OCXFILE
 ;
 S OCXSR=""
 D INCLUDE("TERMLKUP(OCXTERM,OCXLIST) ;")
 ;
 I OCXTRACE D
 .D INCLUDE(" W:$G(OCXTRACE) !,||LNTAG||,?27,""Compiler Function TERMLKUP(OCXTERM,OCXLIST) Execution trace. """)
 .D INCLUDE(" W:$G(OCXTRACE) !,?35,"" OCXTERM: "",$G(OCXTERM)")
 .D INCLUDE(" ;")
 D INCLUDE(" Q $$||LINE:"_$$LINE^OCXOCMP4("TERM","OCXTERM","OCXLIST")_"||(OCXTERM,.OCXLIST)")
 D INCLUDE(" ;")
 ;
 K ^TMP("OCXCMP",$J,"INCLUDE","TERMLKUP")
 M ^TMP("OCXCMP",$J,"INCLUDE","TERMLKUP")=OCXSR
 ;
 Q
 ;
TERM ;
 ;
 N OCXSR,OCXD0,OCXD1,OCXNAME,TEXT,OCXREC,OCXFILE
 ;
 D IN(" Q:'$L(OCXTERM) 0")
 D IN(" ;")
 ;
 D IN(" N FILE,IEN,LINE,LTERM,NTERM,TEXT S FILE=0 K OCXLIST")
 D IN(" F LINE=1:1:999 S TEXT=$T(TERM+LINE) Q:$P(TEXT,"";"",2)  I ($E(TEXT,2,3)="";;"") D")
 D IN(" .S TEXT=$P(TEXT,"";;"",2)")
 D IN(" .S NTERM=$P(TEXT,U,1) Q:'$L(NTERM)  Q:'(OCXTERM=NTERM)")
 D IN(" .S FILE=$P(TEXT,U,2),IEN=$P(TEXT,U,3),LTERM=$P(TEXT,U,4)")
 D IN(" .S OCXLIST(IEN)=LTERM,OCXLIST(""B"",LTERM,IEN)=""""")
 D IN(" ;")
 ;
 I (OCXTRACE) D
 .D IN(" I $G(OCXTRACE) S IEN=0 F  S IEN=$O(OCXLIST(IEN)) Q:'IEN  D")
 .D IN(" .W:$G(OCXTRACE) !,?35,"" OCXLIST: "",$J(IEN,7),"" = "",OCXLIST(IEN)")
 .D IN(" W:$G(OCXTRACE) !,||LNTAG||,?30,""TERM RESULT:  (FILE: "",+$G(FILE),"")     "",$G(COUNT),"" Local term(s) found.""")
 .D IN(" ;")
 ;
 D IN(" Q FILE")
 D IN(" ;")
 ;
 D IN(" ;TERM DATA;")
 S OCXD0=0 F  S OCXD0=$O(^OCXS(860.9,OCXD0)) Q:'OCXD0  D
 .K OCXREC M OCXREC=^OCXS(860.9,OCXD0)
 .S OCXNAME=$P(OCXREC(0),U,1) Q:'$L(OCXNAME)
 .S OCXFILE=$P(OCXREC(0),U,2) Q:'$L(OCXFILE)
 .;Q:'$O(OCXREC(1,0))
 .S OCXD1=0 F  S OCXD1=$O(OCXREC(1,OCXD1)) Q:'OCXD1  D
 ..N IEN,NAME
 ..S NAME=$P($G(OCXREC(1,OCXD1,0)),"^",1) Q:'$L(NAME)
 ..S IEN=$P($G(OCXREC(1,OCXD1,0)),"^",2) Q:'IEN
 ..D IN(" ;;"_OCXNAME_U_OCXFILE_U_IEN_U_NAME)
 D IN(" ;1;")
 D IN(" ;")
 ;
 Q
 ;
IN(CODE) D IN^OCXOCMP4("TERM",CODE,"Y",16000) Q
 ;
INCLUDE(LINE) ;
 S OCXSR($O(OCXSR(" "),-1)+1,0)=LINE
 Q
 ;
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HOCXOCMPU   2270     printed  Sep 23, 2025@20:01:22                                                                                                                                                                                                    Page 2
OCXOCMPU  ;SLC/RJS,CLA - ORDER CHECK CODE COMPILER (Build Local Term Translator) ;2/02/99  11:33
 +1       ;;3.0;ORDER ENTRY/RESULTS REPORTING;**32**;Dec 17,1997
 +2       ;;  ;;ORDER CHECK EXPERT version 1.01 released OCT 29,1998
 +3       ;
 +4        QUIT 
 +5       ;
TERMLKUP  ;
 +1       ;
 +2        NEW OCXSR,OCXD0,OCXD1,OCXNAME,TEXT,OCXREC,OCXFILE
 +3       ;
 +4        SET OCXSR=""
 +5        DO INCLUDE("TERMLKUP(OCXTERM,OCXLIST) ;")
 +6       ;
 +7        IF OCXTRACE
               Begin DoDot:1
 +8                DO INCLUDE(" W:$G(OCXTRACE) !,||LNTAG||,?27,""Compiler Function TERMLKUP(OCXTERM,OCXLIST) Execution trace. """)
 +9                DO INCLUDE(" W:$G(OCXTRACE) !,?35,"" OCXTERM: "",$G(OCXTERM)")
 +10               DO INCLUDE(" ;")
               End DoDot:1
 +11       DO INCLUDE(" Q $$||LINE:"_$$LINE^OCXOCMP4("TERM","OCXTERM","OCXLIST")_"||(OCXTERM,.OCXLIST)")
 +12       DO INCLUDE(" ;")
 +13      ;
 +14       KILL ^TMP("OCXCMP",$JOB,"INCLUDE","TERMLKUP")
 +15       MERGE ^TMP("OCXCMP",$JOB,"INCLUDE","TERMLKUP")=OCXSR
 +16      ;
 +17       QUIT 
 +18      ;
TERM      ;
 +1       ;
 +2        NEW OCXSR,OCXD0,OCXD1,OCXNAME,TEXT,OCXREC,OCXFILE
 +3       ;
 +4        DO IN(" Q:'$L(OCXTERM) 0")
 +5        DO IN(" ;")
 +6       ;
 +7        DO IN(" N FILE,IEN,LINE,LTERM,NTERM,TEXT S FILE=0 K OCXLIST")
 +8        DO IN(" F LINE=1:1:999 S TEXT=$T(TERM+LINE) Q:$P(TEXT,"";"",2)  I ($E(TEXT,2,3)="";;"") D")
 +9        DO IN(" .S TEXT=$P(TEXT,"";;"",2)")
 +10       DO IN(" .S NTERM=$P(TEXT,U,1) Q:'$L(NTERM)  Q:'(OCXTERM=NTERM)")
 +11       DO IN(" .S FILE=$P(TEXT,U,2),IEN=$P(TEXT,U,3),LTERM=$P(TEXT,U,4)")
 +12       DO IN(" .S OCXLIST(IEN)=LTERM,OCXLIST(""B"",LTERM,IEN)=""""")
 +13       DO IN(" ;")
 +14      ;
 +15       IF (OCXTRACE)
               Begin DoDot:1
 +16               DO IN(" I $G(OCXTRACE) S IEN=0 F  S IEN=$O(OCXLIST(IEN)) Q:'IEN  D")
 +17               DO IN(" .W:$G(OCXTRACE) !,?35,"" OCXLIST: "",$J(IEN,7),"" = "",OCXLIST(IEN)")
 +18               DO IN(" W:$G(OCXTRACE) !,||LNTAG||,?30,""TERM RESULT:  (FILE: "",+$G(FILE),"")     "",$G(COUNT),"" Local term(s) found.""")
 +19               DO IN(" ;")
               End DoDot:1
 +20      ;
 +21       DO IN(" Q FILE")
 +22       DO IN(" ;")
 +23      ;
 +24       DO IN(" ;TERM DATA;")
 +25       SET OCXD0=0
           FOR 
               SET OCXD0=$ORDER(^OCXS(860.9,OCXD0))
               if 'OCXD0
                   QUIT 
               Begin DoDot:1
 +26               KILL OCXREC
                   MERGE OCXREC=^OCXS(860.9,OCXD0)
 +27               SET OCXNAME=$PIECE(OCXREC(0),U,1)
                   if '$LENGTH(OCXNAME)
                       QUIT 
 +28               SET OCXFILE=$PIECE(OCXREC(0),U,2)
                   if '$LENGTH(OCXFILE)
                       QUIT 
 +29      ;Q:'$O(OCXREC(1,0))
 +30               SET OCXD1=0
                   FOR 
                       SET OCXD1=$ORDER(OCXREC(1,OCXD1))
                       if 'OCXD1
                           QUIT 
                       Begin DoDot:2
 +31                       NEW IEN,NAME
 +32                       SET NAME=$PIECE($GET(OCXREC(1,OCXD1,0)),"^",1)
                           if '$LENGTH(NAME)
                               QUIT 
 +33                       SET IEN=$PIECE($GET(OCXREC(1,OCXD1,0)),"^",2)
                           if 'IEN
                               QUIT 
 +34                       DO IN(" ;;"_OCXNAME_U_OCXFILE_U_IEN_U_NAME)
                       End DoDot:2
               End DoDot:1
 +35       DO IN(" ;1;")
 +36       DO IN(" ;")
 +37      ;
 +38       QUIT 
 +39      ;
IN(CODE)   DO IN^OCXOCMP4("TERM",CODE,"Y",16000)
           QUIT 
 +1       ;
INCLUDE(LINE) ;
 +1        SET OCXSR($ORDER(OCXSR(" "),-1)+1,0)=LINE
 +2        QUIT 
 +3       ;