| 1 | MCARDHLP ;WISC/DCB-HELP FOR SCREEN INPUT ;8/27/96  10:06
 | 
|---|
| 2 |  ;;2.3;Medicine;;09/13/1996
 | 
|---|
| 3 |  Q
 | 
|---|
| 4 | START ;
 | 
|---|
| 5 |  N SPACE,X,Y S MCARGDA=DJDN
 | 
|---|
| 6 |  N VAL,MCERR,FLAG,TMP,XHOLD
 | 
|---|
| 7 |  N SPACE S SPACE="" S $P(SPACE," ",80)=""
 | 
|---|
| 8 |  I $D(MCDID) S DX=1,DY=1 X XY W SPACE
 | 
|---|
| 9 |  Q:'$D(DJJ(+V))
 | 
|---|
| 10 |  S @$P(DJJ(V),U,2) X XY
 | 
|---|
| 11 |  I $D(MCHELPSW),('$D(MCHELPS2)) D FUNC^MCARDNQ2 K MCMASS D SKIP Q
 | 
|---|
| 12 |  I $D(MCDID),$D(MCHELPSW),'$D(MCHELPS2) Q
 | 
|---|
| 13 |  I (DJ4["200")!(DJ4["690") D FUNC Q
 | 
|---|
| 14 |  S VAL=$P(DJ0,U,2)
 | 
|---|
| 15 |  I VAL["F" G FUNC
 | 
|---|
| 16 |  I VAL["S" D SETH(DJDD,DJAT,DJ0) D SKIP Q
 | 
|---|
| 17 |  I DJ4["M" D MULT(DJDD,DJAT,DJDN,.FLAG)
 | 
|---|
| 18 |  I VAL["P" D POINTER(DJDD,DJAT) D FUNC:$D(MCERR),SKIP Q
 | 
|---|
| 19 |  I DJ4["M",VAL["D" D  Q  ; New line & dot block DAD 7-23-96
 | 
|---|
| 20 |  . N %DT,DJAT,DJDD,DJX,MCMASS,X
 | 
|---|
| 21 |  . S DJDD=+$P(DJ0,U,2),DJAT=.01
 | 
|---|
| 22 |  . S X=$P($P(DJ0,U,5)," D ^%DT") S:X="" X="S %DT=""E""" X X
 | 
|---|
| 23 |  . I $D(DJCP) X DJCP X XY W DJLIN
 | 
|---|
| 24 |  . D HELP^MCARDNQ,FUNC
 | 
|---|
| 25 |  . Q
 | 
|---|
| 26 |  I DJ4["M",$TR(VAL,"aeAIM")=+VAL D  Q  ; New line & dot block DAD 8-14-96
 | 
|---|
| 27 |  . N DJAT,DJDD
 | 
|---|
| 28 |  . S DJDD=+$P(DJ0,U,2),DJAT=.01
 | 
|---|
| 29 |  . I $D(DJCP) X DJCP X XY W DJLIN
 | 
|---|
| 30 |  . D FUNC
 | 
|---|
| 31 |  . Q
 | 
|---|
| 32 | FUNC ;
 | 
|---|
| 33 |  D NUMBER(DJDD,DJAT)
 | 
|---|
| 34 |  I $G(MCERR) D FUNC^MCARDNQ2
 | 
|---|
| 35 | SKIP ;
 | 
|---|
| 36 |  S MCDID=1
 | 
|---|
| 37 |  S @$P(DJJ(V),U,2) X XY Q
 | 
|---|
| 38 | POINTER(XFILE,FLD) ;
 | 
|---|
| 39 |  N LINE,PTER,SUB,GL,XFLD,HOLD S HOLD=XFILE
 | 
|---|
| 40 |  S LINE=$G(^DD(XFILE,FLD,0)) I LINE="" S MCERR=0 Q
 | 
|---|
| 41 |  S GL=$P(LINE,U,3),LINE=$P(LINE,U,2)
 | 
|---|
| 42 |  I GL'="" S PTER=+$P(LINE,"P",2)
 | 
|---|
| 43 |  E  S XFILE=+LINE,XFLD=.01,PTER=+$P($P($G(^DD(XFILE,XFLD,0)),U,2),"P",2)
 | 
|---|
| 44 |  I +PTER=0 S MCERR=0 Q
 | 
|---|
| 45 |  I PTER=200 S MCERR=0 Q
 | 
|---|
| 46 |  D POINTERH(XFILE,PTER,FLD,HOLD)
 | 
|---|
| 47 |  Q
 | 
|---|
| 48 | POINTERH(XFILE,MFILE,FLD,HOLD) ;
 | 
|---|
| 49 |  N DIC,TMP,REC,LOOP,TOTAL,LEN,GLOBAL,Y,SETLOC
 | 
|---|
| 50 |  N FIELDS,TYPE,EXC,TEMP,ERROR,X,XREF,SWITCH
 | 
|---|
| 51 |  D RTNELM^MCDBELM(MFILE,1,".01","","","E","",.TEMP,.ERROR)
 | 
|---|
| 52 |  S GLOBAL=TEMP("DIC"),XREF=GLOBAL_"""B"")"
 | 
|---|
| 53 |  S GLOBAL=TEMP("GLO")
 | 
|---|
| 54 |  S REC=+$P($G(@GLOBAL@(0)),U,4) I REC>200!(REC<1) S MCERR=1 Q
 | 
|---|
| 55 |  S SETLOC=$$SCRN(HOLD,FLD),LOOP=0,D0=DJDN,HOLD=""
 | 
|---|
| 56 |  W !
 | 
|---|
| 57 |  F  S HOLD=$O(@XREF@(HOLD)) Q:HOLD=""  D
 | 
|---|
| 58 |  .S Y=$O(@XREF@(HOLD,0))
 | 
|---|
| 59 |  .S TEP=$G(@GLOBAL@(Y,0)),REC=Y X SETLOC
 | 
|---|
| 60 |  .I $T D
 | 
|---|
| 61 |  ..S $P(TEMP(1),U,2)=Y D GETDATA^MCDBSAVE(.TEMP,.ERROR)
 | 
|---|
| 62 |  ..S XHOLD=$D(XHOLD(REC)),LOOP=LOOP+1
 | 
|---|
| 63 |  ..S TMP(TEMP("FLD",.01))=XHOLD S SWITCH=XHOLD
 | 
|---|
| 64 |  I (LOOP<1) S MCERR=1 Q
 | 
|---|
| 65 |  I (LOOP>70) D:SWITCH'=0 ADJUST
 | 
|---|
| 66 |  D HEADER("{Current choices}")
 | 
|---|
| 67 |  D POINTER2(LOOP)
 | 
|---|
| 68 |  Q
 | 
|---|
| 69 | ADJUST ;
 | 
|---|
| 70 |  N %X,%Y,HOLD,TOTAL,XTEMP S XTEMP(1)="CURENTLY IN LIST",TOTAL=1
 | 
|---|
| 71 |  F HOLD=1:1:LOOP D
 | 
|---|
| 72 |  .I $D(TMP(HOLD,0)) S TOTAL=TOTAL+1,XTEMP(TOTAL)=TMP(HOLD,0)
 | 
|---|
| 73 |  S LOOP=TOTAL K TMP
 | 
|---|
| 74 |  S %X="XTEMP(",%Y="TMP(" D %XY^%RCR
 | 
|---|
| 75 |  Q
 | 
|---|
| 76 | POINTER2(TOTAL) ;Help display for pointers
 | 
|---|
| 77 |  N MAX,COL,SP,VAL,TYPE S VAL=""
 | 
|---|
| 78 |  I TOTAL=0 S MCERR=1 Q
 | 
|---|
| 79 |  S SP=" ",$P(SP," ",80)="",CT=0,COL=(TOTAL\7)
 | 
|---|
| 80 |  S:(TOTAL/7)'=(TOTAL\7) COL=COL+1
 | 
|---|
| 81 |  S MAX=80\COL,MLEN=MAX-2,COL=COL-1
 | 
|---|
| 82 |  I $D(DJCP) X DJCP X XY W DJLIN
 | 
|---|
| 83 |  F LOOP=1:1:TOTAL S VAL=$O(TMP(VAL)) Q:VAL=""  D
 | 
|---|
| 84 |  .S TYPE=TMP(VAL)
 | 
|---|
| 85 |  .I CT>COL S CT=0 W !
 | 
|---|
| 86 |  .I $G(VAL)'="" D
 | 
|---|
| 87 |  ..S CT=CT+1
 | 
|---|
| 88 |  ..W $S(TYPE:$G(DJHIN),1:"")_$E($E(VAL,1,MLEN)_SP,1,MAX)_$S(TYPE:$G(DJLIN),1:"")
 | 
|---|
| 89 |  Q
 | 
|---|
| 90 | SETH(FILE,FIELD,TEMP) ;
 | 
|---|
| 91 |  N DIC,LOOP,ITEMS,TMP,LOP,MAX,MLEN1,MLEN2,TOTAL
 | 
|---|
| 92 |  I +$P(TEMP,U,2)'=0 S FILE=+$P(TEMP,U,2),FIELD=.01,TEMP=""
 | 
|---|
| 93 |  S:$P($G(TEMP),U,3)="" TEMP=$G(^DD(FILE,FIELD,0))
 | 
|---|
| 94 |  S TMP=$P(TEMP,U,3),MLEN1=0,MLEN2=0
 | 
|---|
| 95 |  S DIC("S")=$$SCRN(FILE,FIELD),LOOP(0)=0,ITEMS=""
 | 
|---|
| 96 |  Q:TMP=""
 | 
|---|
| 97 |  F LOOP=1:1:$L(TMP,";") S MAX=$P(TMP,";",LOOP) Q:MAX=""  D
 | 
|---|
| 98 |  .I $G(DIC("S"))]"" S Y=$P(MAX,":") I Y]"" X DIC("S") Q:'$T
 | 
|---|
| 99 |  .S LOOP(0)=LOOP(0)+1,ITEMS=ITEMS_MAX_";"
 | 
|---|
| 100 |  .S LEN1=$L($P(MAX,":",1)) S:LEN1>MLEN1 MLEN1=LEN1
 | 
|---|
| 101 |  .S LEN2=$L($P(MAX,":",2)) S:LEN2>MLEN2 MLEN2=LEN2
 | 
|---|
| 102 |  S TOTAL=LOOP(0) D SET2(ITEMS,TOTAL,MLEN1,MLEN2)
 | 
|---|
| 103 |  Q
 | 
|---|
| 104 | SET2(TMP,TOTAL,MLEN1,MLEN2) ;
 | 
|---|
| 105 |  N MAX,COL,CT,LOOP,F1,F2,SP,Y
 | 
|---|
| 106 |  S SP="",$P(SP," ",80)="",MLEN=MLEN1+3+MLEN2+2,CT=0
 | 
|---|
| 107 |  S COL=(TOTAL\7) S:(TOTAL/7)'=(TOTAL\7) COL=COL+1
 | 
|---|
| 108 |  S MAX=80\COL,MAX=MAX-2 S:MAX<MLEN MLEN=MAX
 | 
|---|
| 109 |  S COL=COL-1
 | 
|---|
| 110 |  S:COL=3&(TOTAL<8) COL=1 I $D(DJCP) X DJCP X XY W DJLIN
 | 
|---|
| 111 |  F LOOP=1:1:TOTAL D
 | 
|---|
| 112 |  .S TEMP=$P(TMP,";",LOOP),F1=$P(TEMP,":",1),F2=$P(TEMP,":",2)
 | 
|---|
| 113 |  .S F1=$E(F1_SP,1,MLEN1),F2=$E(F2_SP,1,MLEN2)
 | 
|---|
| 114 |  .I CT>COL S CT=0 W !
 | 
|---|
| 115 |  .W $G(DJHIN),F1,$G(DJLIN)," - ",F2,"  "
 | 
|---|
| 116 |  .S CT=CT+1
 | 
|---|
| 117 |  D HEADER("{Help prompt for Set of Codes}")
 | 
|---|
| 118 |  Q
 | 
|---|
| 119 | NUMBER(FILE,FIELD) ;
 | 
|---|
| 120 |  N VAL
 | 
|---|
| 121 |  S VAL=$G(^DD(FILE,FIELD,3)) I VAL="" S MCERR=1 Q
 | 
|---|
| 122 |  D HEADER("{Help prompt}")
 | 
|---|
| 123 |  I $D(DJCP) X DJCP X XY W DJLIN
 | 
|---|
| 124 |  W !!,VAL
 | 
|---|
| 125 |  Q
 | 
|---|
| 126 | MULT(FILE,FIELD,XREC,FLAG) ;
 | 
|---|
| 127 |  N FIELDS,REC,EXC,DATA,TYPE,USER,TEMP,ERROR,LOOP,TOTAL,GLO,LEVEL
 | 
|---|
| 128 |  S LEVEL=1,FIELDS=FIELD,REC=""
 | 
|---|
| 129 |  D MAIN(FILE,.FIELDS,.LEVEL)
 | 
|---|
| 130 |  I LEVEL>1 F LOOP=1:1:LEVEL S REC=REC_^TMP($J,"DJST",LOOP,"DA")_U
 | 
|---|
| 131 |  E  S REC=XREC_U,FIELDS=FIELD_U
 | 
|---|
| 132 |  S REC=REC_1,FIELDS=FIELDS_".01"
 | 
|---|
| 133 |  ;; ***ORIGINAL*** ;; S:$D(^DD(FILE,0,"UP")) FILE=^DD(FILE,0,"UP")
 | 
|---|
| 134 |  F  S FILE(0)=$G(^DD(FILE,0,"UP")) Q:FILE(0)'>0  S FILE=FILE(0) ;DAD81496
 | 
|---|
| 135 |  D RTNELM^MCDBELM(FILE,REC,FIELDS,"","","E","",.TEMP,.ERROR)
 | 
|---|
| 136 |  S GLO=TEMP("GLO")
 | 
|---|
| 137 |  F LOOP=0:0 S LOOP=+$O(@GLO@(LOOP)) Q:LOOP=0  D
 | 
|---|
| 138 |  .S REC=+$P($G(@GLO@(LOOP,0)),U,1),XHOLD(REC)=""
 | 
|---|
| 139 |  Q
 | 
|---|
| 140 | MAIN(FILE,FIELDS,LEVEL) ;
 | 
|---|
| 141 |  N HOLD,NAME
 | 
|---|
| 142 |  S HOLD=$G(^DD(FILE,0,"UP"))
 | 
|---|
| 143 |  I HOLD="" S FIELDS=$$REORDER(FIELDS,LEVEL) Q
 | 
|---|
| 144 |  S NAME=$O(^DD(FILE,0,"NM","")),LEVEL=LEVEL+1
 | 
|---|
| 145 |  S FIELDS=$G(FIELDS)_U_+$O(^DD(HOLD,"B",NAME,0))
 | 
|---|
| 146 |  D MAIN(HOLD,.FIELDS,LEVEL)
 | 
|---|
| 147 |  Q
 | 
|---|
| 148 | REORDER(FIELDS,LEVEL) ;
 | 
|---|
| 149 |  N LOOP,HOLD S HOLD="" I LEVEL<2 Q ""
 | 
|---|
| 150 |  F LOOP=LEVEL:-1:1 D
 | 
|---|
| 151 |  .S HOLD=HOLD_$P(FIELDS,U,LOOP)_U
 | 
|---|
| 152 |  Q HOLD
 | 
|---|
| 153 | HEADER(MCHELP) ;
 | 
|---|
| 154 |  N SPACE,TEMP,TMP S SPACE="",$P(SPACE," ",80)=" "
 | 
|---|
| 155 |  S DX=1,DY=1 X XY
 | 
|---|
| 156 |  S TMP=40-$L(MCHELP)
 | 
|---|
| 157 |  S TEMP=$E(SPACE,1,TMP)_MCHELP
 | 
|---|
| 158 |  W DJHIN,"*** Commands: ^C ",$S($D(DJTOGGLE):"or KP1 ",1:""),"***",?40,TEMP,DJLIN
 | 
|---|
| 159 |  Q
 | 
|---|
| 160 | SCRN(SFILE,SFLD) ;
 | 
|---|
| 161 |  N SCREEN
 | 
|---|
| 162 |  I $G(^DD(SFILE,SFLD,12.1))'="" D SCSET
 | 
|---|
| 163 |  I '$D(SCREEN) D
 | 
|---|
| 164 |  .S SFILE=+$P(^DD(SFILE,SFLD,0),U,2),SFLD=.01
 | 
|---|
| 165 |  .I 'SFILE?1N.N1".".N S SFILE=+$P(SFILE,"P",2)
 | 
|---|
| 166 |  .I $G(^DD(SFILE,SFLD,12.1))'="" D SCSET
 | 
|---|
| 167 |  Q $S($D(SCREEN):SCREEN,1:"I 1")
 | 
|---|
| 168 | SCSET ;
 | 
|---|
| 169 |  I ^DD(SFILE,SFLD,12.1)["S DIC(""S"")" X ^(12.1) S SCREEN=DIC("S") K DIC("S") Q
 | 
|---|
| 170 |  S SCREEN=^DD(SFILE,SFLD,12.1) Q
 | 
|---|