| 1 | OCXOED13 ;SLC/RJS,CLA - Rule Editor (Meta Dictionary Link Display) ;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 | ; | 
|---|
| 6 | S ; | 
|---|
| 7 | ; | 
|---|
| 8 | Q | 
|---|
| 9 | EN(OCXLNK,OCXSRC) ; | 
|---|
| 10 | ; | 
|---|
| 11 | N OCXACT,OCXRD | 
|---|
| 12 | S OCXD0=+$$DIC("^OCXS(863.3,","XM","",OCXLNK) | 
|---|
| 13 | I '(OCXD0>0) S OCXD0=$$ADDLINK(OCXLNK,OCXSRC) Q:'OCXD0 | 
|---|
| 14 | F  K OCXRD,OCXACT S (OCXRD,OCXACT)="" D DISP(OCXD0,.OCXRD,.OCXACT) Q:$$EN^OCXOED14(OCXD0,.OCXRD,.OCXACT) | 
|---|
| 15 | ; | 
|---|
| 16 | Q | 
|---|
| 17 | ; | 
|---|
| 18 | DISP(OCXD0,OCXRD,OCXACT) ; | 
|---|
| 19 | ; | 
|---|
| 20 | N OCXTHLN,OCXTNLN,OCXTRLN,OCXTULN,OCXTNLN | 
|---|
| 21 | S OCXTNLN=$C(27,91,48,109),OCXTRLN=$C(27,91,55,109),OCXTULN=$C(27,91,52,109),OCXTHLN=$C(27,91,49,109) | 
|---|
| 22 | D GETDATA(OCXD0,.OCXRD) | 
|---|
| 23 | D CHKVR(OCXD0,.OCXRD) | 
|---|
| 24 | ; | 
|---|
| 25 | W @IOF,OCXTNLN | 
|---|
| 26 | W !,$$CENTER($$FIELD("Meta Dictionary Edit Screen"),80),! | 
|---|
| 27 | W !,"  ",$$FIELD("Link:")," ",$$DATA($G(OCXRD("LINK",OCXD0,.01,"E")),50) | 
|---|
| 28 | W !,"  ",$$FIELD("        Subject:")," ",$$DATA($G(OCXRD("LINK",OCXD0,.02,"E")),50) | 
|---|
| 29 | W !,"  ",$$OPT^OCXOEDT("Change Attribute","EDATT","14",.OCXACT,OCXD0,"CA") | 
|---|
| 30 | W "  ",$$FIELD("        Attribute:")," ",$$DATA($G(OCXRD("LINK",OCXD0,.05,"E")),50) | 
|---|
| 31 | ; | 
|---|
| 32 | W !!,$$SEP("Parameters"),! | 
|---|
| 33 | ; | 
|---|
| 34 | W !,"  ",$$OPT^OCXOEDT("P1","EDPARAM","14",.OCXACT,OCXD0_",""OCXO EXTERNAL FUNCTION CALL""") | 
|---|
| 35 | W "  ",$$FIELD("               M Function Call: "),"  ",$$DATA($$PVAL("LINK",OCXD0,"OCXO EXTERNAL FUNCTION CALL"),30) | 
|---|
| 36 | W !,"  ",$$OPT^OCXOEDT("P2","EDPARAM","14",.OCXACT,OCXD0_",""OCXO VARIABLE NAME""") | 
|---|
| 37 | W "  ",$$FIELD("            Data Variable Name: "),"  ",$$DATA($$PVAL("LINK",OCXD0,"OCXO VARIABLE NAME"),30) | 
|---|
| 38 | W !,"  ",$$OPT^OCXOEDT("P3","EDPARAM","14",.OCXACT,OCXD0_",""OCXO VT-BAR PIECE NUMBER""") | 
|---|
| 39 | W "  ",$$FIELD(" Vertical Bar '|' Piece Number: "),"  ",$$DATA($$PVAL("LINK",OCXD0,"OCXO VT-BAR PIECE NUMBER"),30) | 
|---|
| 40 | W !,"  ",$$OPT^OCXOEDT("P4","EDPARAM","14",.OCXACT,OCXD0_",""OCXO UP-ARROW PIECE NUMBER""") | 
|---|
| 41 | W "  ",$$FIELD("     Up Arrow '^' Piece Number: "),"  ",$$DATA($$PVAL("LINK",OCXD0,"OCXO UP-ARROW PIECE NUMBER"),30) | 
|---|
| 42 | W !,"  ",$$OPT^OCXOEDT("P5","EDPARAM","14",.OCXACT,OCXD0_",""OCXO SEMI-COLON PIECE NUMBER""") | 
|---|
| 43 | W "  ",$$FIELD("   Semi Colon ';' Piece Number: "),"  ",$$DATA($$PVAL("LINK",OCXD0,"OCXO SEMI-COLON PIECE NUMBER"),30) | 
|---|
| 44 | W !,"  ",$$OPT^OCXOEDT("P6","EDPARAM","14",.OCXACT,OCXD0_",""OCXO FILE POINTER""") | 
|---|
| 45 | W "  ",$$FIELD("        Pointed To File Number: "),"  ",$$DATA($$PVAL("LINK",OCXD0,"OCXO FILE POINTER"),30) | 
|---|
| 46 | W !,"  ",$$OPT^OCXOEDT("P7","EDPARAM","14",.OCXACT,OCXD0_",""OCXO HL7 SEGMENT ID""") | 
|---|
| 47 | W "  ",$$FIELD("                HL7 Segment ID: "),"  ",$$DATA($$PVAL("LINK",OCXD0,"OCXO HL7 SEGMENT ID"),30) | 
|---|
| 48 | I +$G(OCXRD("LINK",OCXD0,.05,"I")) D | 
|---|
| 49 | .W !!,"  ",$$OPT^OCXOEDT("Data Type","EDPATT","14",.OCXACT,(+$G(OCXRD("LINK",OCXD0,.05,"I")))_",""DATA TYPE""","DT") | 
|---|
| 50 | .W "  ",$$FIELD("         Attribute Data Type: "),"  ",$$DATA($$PVAL("ATT",+$G(OCXRD("LINK",OCXD0,.05,"I")),"DATA TYPE"),30) | 
|---|
| 51 | ; | 
|---|
| 52 | Q | 
|---|
| 53 | ; | 
|---|
| 54 | PVAL(SUB,OCXD0,PNAME) ; | 
|---|
| 55 | N X S X="" F  S X=$O(OCXRD(SUB,OCXD0,"PAR",X)) Q:'X  I ($G(OCXRD(SUB,OCXD0,"PAR",X,.01,"E"))=PNAME) Q | 
|---|
| 56 | Q:'X "" Q $G(OCXRD(SUB,OCXD0,"PAR",X,1,"E")) | 
|---|
| 57 | ; | 
|---|
| 58 | CHKVR(OCXD0,OCXRD) ; | 
|---|
| 59 | ; | 
|---|
| 60 | N OCXVNM,OCXSID,OCXVPN | 
|---|
| 61 | ; | 
|---|
| 62 | S OCXVNM=$$PVAL("LINK",OCXD0,"OCXO VARIABLE NAME") | 
|---|
| 63 | S OCXVPN=$$PVAL("LINK",OCXD0,"OCXO VT-BAR PIECE NUMBER") | 
|---|
| 64 | S OCXSID=$$PVAL("LINK",OCXD0,"OCXO HL7 SEGMENT ID") | 
|---|
| 65 | ; | 
|---|
| 66 | ; | 
|---|
| 67 | I '$L(OCXVNM),$L(OCXVPN),$L(OCXSID) D | 
|---|
| 68 | .N OCXVAR S OCXVAR="OCXODATA("""_OCXSID_""","_OCXVPN_")" | 
|---|
| 69 | .D SLPVAL^OCXOED14(OCXD0,"OCXO VARIABLE NAME",OCXVAR) | 
|---|
| 70 | .D SLPVAL^OCXOED14(OCXD0,"OCXO VT-BAR PIECE NUMBER","@") | 
|---|
| 71 | .D SLPVAL^OCXOED14(OCXD0,"OCXO HL7 SEGMENT ID","@") | 
|---|
| 72 | .K OCXRD S OCXRD="" D GETDATA(OCXD0,.OCXRD) | 
|---|
| 73 | Q | 
|---|
| 74 | ; | 
|---|
| 75 | Q | 
|---|
| 76 | CENTER(X,M) ; | 
|---|
| 77 | N SP S SP="",$P(SP," ",80)=" " Q $E(SP,1,((M\2)-($L(X)\2)))_X | 
|---|
| 78 | ; | 
|---|
| 79 | SEP(OCXHDR) ; | 
|---|
| 80 | ; | 
|---|
| 81 | N SPACES S SPACES="",$P(SPACES," ",80-$L(OCXHDR))=" " Q OCXTNLN_OCXTHLN_OCXTULN_$G(OCXHDR)_SPACES_OCXTNLN | 
|---|
| 82 | ; | 
|---|
| 83 | FIELD(OCXHDR) ; | 
|---|
| 84 | ; | 
|---|
| 85 | Q OCXTHLN_$G(OCXHDR)_OCXTNLN | 
|---|
| 86 | ; | 
|---|
| 87 | DATA(OCXVAL,OCXLEN) ; | 
|---|
| 88 | ; | 
|---|
| 89 | N SPACES S SPACES="",$P(SPACES," ",OCXLEN+5)=" ",OCXVAL=$G(OCXVAL) | 
|---|
| 90 | I ($L(OCXVAL)>OCXLEN) Q $E(OCXVAL,1,OCXLEN-3)_"..." | 
|---|
| 91 | Q $E((OCXVAL_SPACES),1,OCXLEN) | 
|---|
| 92 | ; | 
|---|
| 93 | GETDATA(OCXD0,OCXD) ; | 
|---|
| 94 | ; | 
|---|
| 95 | N OCXDIQ,OCXX,OCXATT,OCXSUB | 
|---|
| 96 | ; | 
|---|
| 97 | S OCXDIQ="" D DIQ("^OCXS(863.3,",OCXD0,"IEN",.OCXDIQ) | 
|---|
| 98 | M OCXD("LINK")=OCXDIQ(863.3) K OCXDIQ S OCXDIQ="" | 
|---|
| 99 | S OCXX=0 F  S OCXX=$O(^OCXS(863.3,OCXD0,"PAR",OCXX)) Q:'OCXX  W "." D | 
|---|
| 100 | .S OCXDIQ="" D DIQ("^OCXS(863.3,"_OCXD0_",""PAR"",",OCXX,"IEN",.OCXDIQ) | 
|---|
| 101 | .M OCXD("LINK",OCXD0,"PAR")=OCXDIQ(863.32) K OCXDIQ S OCXDIQ="" | 
|---|
| 102 | ; | 
|---|
| 103 | S OCXDIQ="",OCXSUB=$G(OCXD("LINK",OCXD0,.02,"I")) I OCXSUB D | 
|---|
| 104 | .D DIQ("^OCXS(863.2,",OCXSUB,"IEN",.OCXDIQ) | 
|---|
| 105 | .M OCXD("SUB")=OCXDIQ(863.2) K OCXDIQ S OCXDIQ="" | 
|---|
| 106 | ; | 
|---|
| 107 | S OCXDIQ="",OCXATT=$G(OCXD("LINK",OCXD0,.05,"I")) I OCXATT D | 
|---|
| 108 | .D DIQ("^OCXS(863.4,",OCXATT,"IEN",.OCXDIQ) | 
|---|
| 109 | .M OCXD("ATT")=OCXDIQ(863.4) K OCXDIQ S OCXDIQ="" | 
|---|
| 110 | .S OCXX=0 F  S OCXX=$O(^OCXS(863.4,OCXATT,"PAR",OCXX)) Q:'OCXX  W "." D | 
|---|
| 111 | ..S OCXDIQ="" D DIQ("^OCXS(863.4,"_OCXATT_",""PAR"",",OCXX,"IEN",.OCXDIQ) | 
|---|
| 112 | ..M OCXD("ATT",OCXATT,"PAR")=OCXDIQ(863.41) K OCXDIQ S OCXDIQ="" | 
|---|
| 113 | Q | 
|---|
| 114 | ; | 
|---|
| 115 | DIC(OCXDIC,OCXDIC0,OCXDICA,OCXX,OCXDICS,OCXDR) ; | 
|---|
| 116 | ; | 
|---|
| 117 | N DIC,X,Y | 
|---|
| 118 | S DIC=$G(OCXDIC) Q:'$L(DIC) -1 | 
|---|
| 119 | S DIC(0)=$G(OCXDIC0) S:$L($G(OCXX)) X=OCXX | 
|---|
| 120 | S:$L($G(OCXDICS)) DIC("S")=OCXDICS | 
|---|
| 121 | S:$L($G(OCXDICA)) DIC("A")=OCXDICA | 
|---|
| 122 | S:$L($G(OCXDR)) DIC("DR")=OCXDR | 
|---|
| 123 | D ^DIC Q:(Y<1) 0 Q Y | 
|---|
| 124 | ; | 
|---|
| 125 | DIQ(DIC,DA,OCXDIQ0,OCXARY) ; | 
|---|
| 126 | N DR,DIQ S DR=".01:99999",DIQ="OCXARY(",DIQ(0)=$G(OCXDIQ0) | 
|---|
| 127 | D EN^DIQ1 | 
|---|
| 128 | Q | 
|---|
| 129 | ; | 
|---|
| 130 | ADDLINK(OCXNAME,OCXSRC) ; | 
|---|
| 131 | N OCXD0,OCXDR | 
|---|
| 132 | S OCXD0=+$$DIC("^OCXS(863.2,","XLME","",$P(OCXNAME,".",1)) Q:(OCXD0<1) 0 | 
|---|
| 133 | S OCXDR=".02///"_$P(OCXNAME,".",1)_";.04///"_OCXSRC_";.06///99" | 
|---|
| 134 | S OCXD0=+$$DIC("^OCXS(863.3,","XLME","",OCXNAME,"",OCXDR) | 
|---|
| 135 | Q:(OCXD0<1) 0 Q OCXD0 | 
|---|
| 136 | ; | 
|---|