| 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 |  ;
 | 
|---|