| 1 | OCXOCMPN ;SLC/RJS,CLA - ORDER CHECK CODE COMPILER (Construct Rule MetaCode Subroutines) ;10/29/98  12:37 | 
|---|
| 2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;**32**;Dec 17,1997 | 
|---|
| 3 | ;;  ;;ORDER CHECK EXPERT version 1.01 released OCT 29,1998 | 
|---|
| 4 | ; | 
|---|
| 5 | MC(CODE,ELEM) ; | 
|---|
| 6 | ; | 
|---|
| 7 | N INDEX1,INDEX2,LEVL | 
|---|
| 8 | ; | 
|---|
| 9 | S INDEX1=0 F  S INDEX1=$O(CODE(INDEX1)) Q:'INDEX1  D | 
|---|
| 10 | .I ($E(CODE(INDEX1),1,10)="I $L(OCXDF") D | 
|---|
| 11 | ..N DFLD S DFLD=(+$P(CODE(INDEX1),"OCXDF(",2)) | 
|---|
| 12 | ..D INSERT(INDEX1+1,"S OCXRES("_(+ELEM)_","_(DFLD)_")=OCXDF("_(+DFLD)_")","S") | 
|---|
| 13 | ; | 
|---|
| 14 | D INSERT(1,";","Y") | 
|---|
| 15 | S INDEX1=0 F  S INDEX1=$O(CODE(INDEX1)) Q:'INDEX1  D | 
|---|
| 16 | .I ($E(CODE(INDEX1),1,7)="S OCXDF") D | 
|---|
| 17 | ..N DFLD S DFLD=(+$P(CODE(INDEX1),"OCXDF(",2)),INDEX1=INDEX1+1 | 
|---|
| 18 | ..D INSERT(1,";  OCXDF("_(+DFLD)_") -> "_$P($G(^OCXS(860.4,+DFLD,0)),U,1)_" data field","Y") | 
|---|
| 19 | ; | 
|---|
| 20 | S (LEVL,INDEX1)=0 F  S INDEX1=$O(CODE(INDEX1)) Q:'INDEX1  D | 
|---|
| 21 | .I (CODE(INDEX1,"OPLIST")="Y") S LEVL=0 Q | 
|---|
| 22 | .S INDEX2=INDEX1 F  S INDEX2=$O(CODE(INDEX2))  Q:'INDEX2  Q:(CODE(INDEX2,"OPLIST")="Y")  D | 
|---|
| 23 | ..;I (($L(CODE(INDEX1))+$L(CODE(INDEX2)))>70) S LEVL=LEVL+1,CODE(INDEX1)=CODE(INDEX1)_" D",CODE(INDEX2)=$E("...........",1,LEVL)_CODE(INDEX2),INDEX2=99999 Q | 
|---|
| 24 | ..I (($L(CODE(INDEX1))+$L(CODE(INDEX2)))>OCXCLL) S LEVL=LEVL+1,CODE(INDEX1)=CODE(INDEX1)_" D",CODE(INDEX2)=$E("...........",1,LEVL)_CODE(INDEX2),INDEX2=99999 Q | 
|---|
| 25 | ..I ($E(CODE(INDEX1,"OPLIST"),$L(CODE(INDEX1,"OPLIST")))=CODE(INDEX2,"OPLIST")) D  Q | 
|---|
| 26 | ...S CODE(INDEX1)=CODE(INDEX1)_","_$P(CODE(INDEX2)," ",2,999) K CODE(INDEX2) | 
|---|
| 27 | ..S CODE(INDEX1)=CODE(INDEX1)_" "_CODE(INDEX2) | 
|---|
| 28 | ..S CODE(INDEX1,"OPLIST")=CODE(INDEX1,"OPLIST")_CODE(INDEX2,"OPLIST") | 
|---|
| 29 | ..K CODE(INDEX2) | 
|---|
| 30 | ; | 
|---|
| 31 | Q | 
|---|
| 32 | ; | 
|---|
| 33 | INSERT(X,T,O) ; | 
|---|
| 34 | ; | 
|---|
| 35 | N Y,LAST | 
|---|
| 36 | S LAST=$O(CODE(99999),-1) | 
|---|
| 37 | F Y=LAST:-1:X M CODE(Y+1)=CODE(Y) | 
|---|
| 38 | S CODE(X)=T | 
|---|
| 39 | S CODE(X,"OPLIST")=O | 
|---|
| 40 | Q | 
|---|
| 41 | ; | 
|---|