| 1 | OCXOCMP3 ;SLC/RJS,CLA - ORDER CHECK CODE COMPILER (Compile Rule Element Relation code) ;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 | EN() ; | 
|---|
| 6 | ; | 
|---|
| 7 | Q:$G(OCXWARN) OCXWARN | 
|---|
| 8 | S OCXD0=0 F  S OCXD0=$O(^TMP("OCXCMP",$J,"RULE",OCXD0)) Q:'OCXD0  D  Q:OCXWARN | 
|---|
| 9 | .S OCXNAM=$P($G(^OCXS(860.2,OCXD0,0)),U,1) Q:'$L(OCXNAM) | 
|---|
| 10 | .I '$G(OCXAUTO) W:($X>60) ! W "." | 
|---|
| 11 | .N OCXD1,OCXCODE | 
|---|
| 12 | .; | 
|---|
| 13 | .Q:'$O(^OCXS(860.2,OCXD0,"C",0)) | 
|---|
| 14 | .Q:'$O(^OCXS(860.2,OCXD0,"R",0)) | 
|---|
| 15 | .; | 
|---|
| 16 | .S OCXD1=0 F  S OCXD1=$O(^OCXS(860.2,OCXD0,"C",OCXD1)) Q:'OCXD1  D  Q:OCXWARN | 
|---|
| 17 | ..N X,OCXLAB,DA | 
|---|
| 18 | ..S OCXLAB0=$G(^OCXS(860.2,OCXD0,"C",OCXD1,0)) | 
|---|
| 19 | ..S OCXLABE=$G(^OCXS(860.2,OCXD0,"C",OCXD1,"EXP")) | 
|---|
| 20 | ..S X=$P(OCXLAB0,U,1) Q:'$L(X)  S DA=OCXD1,DA(1)=OCXD0 D LABEL^OCXOCMPS I '$D(X) S OCXWARN=1 Q | 
|---|
| 21 | ..; | 
|---|
| 22 | ..I '$P(OCXLAB0,U,3) S OCXCODE(OCXD1)=(+$P(OCXLAB0,U,2)),OCXCODE(OCXD1,"LABEL")=X,OCXCODE("B",X)=OCXD1 | 
|---|
| 23 | ..I $P(OCXLAB0,U,3) S OCXCODE(OCXD1)=OCXLABE,OCXCODE(OCXD1,"LABEL")=X,OCXCODE("B",X)=OCXD1 | 
|---|
| 24 | .; | 
|---|
| 25 | .Q:'$D(OCXCODE) | 
|---|
| 26 | .; | 
|---|
| 27 | .S OCXWARN=$$GETCODE^OCXOCMPI(OCXD0,.OCXCODE) Q:OCXWARN | 
|---|
| 28 | .; | 
|---|
| 29 | .S OCXD1=0 F  S OCXD1=$O(^OCXS(860.2,OCXD0,"R",OCXD1)) Q:'OCXD1  D  Q:OCXWARN | 
|---|
| 30 | ..; | 
|---|
| 31 | ..N OCXEXP,OCXD2 | 
|---|
| 32 | ..S OCXEXP=$G(^OCXS(860.2,OCXD0,"R",OCXD1,"E")) Q:'$L(OCXEXP) | 
|---|
| 33 | ..S OCXWARN=$$PARSE^OCXOCMPB(OCXD0,OCXD1,OCXEXP,.OCXCODE) Q:OCXWARN | 
|---|
| 34 | ..I '$G(OCXAUTO) W:($X>60) ! W "." | 
|---|
| 35 | ; | 
|---|
| 36 | Q OCXWARN | 
|---|
| 37 | ; | 
|---|
| 38 | GETPARM(FILE,INST,PARM) ; | 
|---|
| 39 | Q:'$L(FILE) "" Q:'$L(INST) "" Q:'$L(PARM) "" | 
|---|
| 40 | N OCXP,OCXP1,OCXI,OCXGL | 
|---|
| 41 | S OCXGL="^OCXS" S:(FILE=1) OCXGL="^OCXD" S:(FILE=7) OCXGL="^OCXD" S:(FILE=10) OCXGL="^OCXD" S FILE=FILE/10+860 | 
|---|
| 42 | Q:'$D(@OCXGL@(+FILE,0)) "" | 
|---|
| 43 | I (PARM=+PARM),$D(^OCXS(863.8,PARM,0)) S OCXP=PARM | 
|---|
| 44 | E  S OCXP=$O(^OCXS(863.8,"B",PARM,0)) | 
|---|
| 45 | Q:'OCXP "" | 
|---|
| 46 | I (INST=+INST),$D(@OCXGL@(FILE,INST,0)) S OCXI=INST | 
|---|
| 47 | E  S OCXI=$O(@OCXGL@(FILE,"B",INST,0)) | 
|---|
| 48 | Q:'OCXI "" | 
|---|
| 49 | S OCXP1=$O(@OCXGL@(FILE,OCXI,"PAR","B",OCXP,0)) S:'OCXP1 OCXP1=$O(@OCXGL@(FILE,OCXI,"PAR","B",PARM,0)) | 
|---|
| 50 | Q:'$L(OCXP1) "" | 
|---|
| 51 | Q $G(@OCXGL@(FILE,OCXI,"PAR",OCXP1,"VAL")) | 
|---|
| 52 | ; | 
|---|