| [613] | 1 | IBDFDE21 ;ALB/AAS - AICS Data Entry, process selection lists ; 11/22/99 4:35pm
 | 
|---|
 | 2 |  ;;3.0;AUTOMATED INFO COLLECTION SYS;**4,38,23**;APR 24, 1997
 | 
|---|
 | 3 |  ;
 | 
|---|
 | 4 | % G ^IBDFDE
 | 
|---|
 | 5 |  ;
 | 
|---|
 | 6 | SEL(SEL) ; -- Build results array
 | 
|---|
 | 7 |  N IBDX,DSPTXT,IBQUIT,IBDQL,QCNT,IBDQLFR
 | 
|---|
 | 8 |  S IBQUIT=0
 | 
|---|
 | 9 |  ;
 | 
|---|
 | 10 |  S IBDQL=$$QLFR(.RULE,.QLFR)
 | 
|---|
 | 11 |  Q:IBQUIT!(IBDQL="^")
 | 
|---|
 | 12 |  S IBDQLFR=$P(IBDQL,"^",1) D SEL1
 | 
|---|
 | 13 |  ;
 | 
|---|
 | 14 |  F QCNT=2:1 S IBDQLFR=$P(IBDQL,"^",QCNT) Q:IBDQLFR=""  D SEL1
 | 
|---|
 | 15 |  Q
 | 
|---|
 | 16 |  ;
 | 
|---|
 | 17 | SEL1 ; -- build selections
 | 
|---|
 | 18 |  S IBDX=$G(RESULT(0))+1,RESULT(0)=IBDX
 | 
|---|
 | 19 |  I +SEL=SEL S CHOICE=$$CHOICE^IBDFDE2(SEL)
 | 
|---|
 | 20 |  I +SEL'=SEL S CHOICE=SEL
 | 
|---|
 | 21 |  S DISPTXT=$S($P(CHOICE,"^",5)="":$P(CHOICE,"^"),1:$P(CHOICE,"^",5))
 | 
|---|
 | 22 |  W:+$G(QCNT)<2 "  ",DISPTXT,"   ",$S($P(CHOICE,"^",2)'="":$P(CHOICE,"^",2),$P($G(^IBE(357.6,IBDF("PI"),0)),"^")="GMP INPUT CLINIC COMMON PROBLEMS":$$LEX^IBDFDE1($P(CHOICE,"^",3)),1:$P(CHOICE,"^",3)),"   ",$P(CHOICE,"^",8)_"   ",$P(CHOICE,"^",4)
 | 
|---|
 | 23 |  ;
 | 
|---|
 | 24 |  S RESULT(IBDX)=IBDF("PI")_"^"_$P(CHOICE,"^",3)_"^"_DISPTXT_"^"_$P(CHOICE,"^",8)_"^"_$P(CHOICE,"^",6)_"^"_IBDQLFR_"^"_$G(IBDF("IEN"))_"^^"_$P(CHOICE,"^",9)_"^"_$P(CHOICE,"^",2)_"^^"_$P(CHOICE,"^",12)
 | 
|---|
 | 25 |  S IBDPI(IBDF("PI"),IBDX)=RESULT(IBDX)
 | 
|---|
 | 26 |  ;
 | 
|---|
 | 27 |  ; --validate code for active problem list
 | 
|---|
 | 28 |  I $P($G(^IBE(357.6,IBDF("PI"),0)),"^")="PX INPUT PATIENT ACTIVE PROBLEM" D
 | 
|---|
 | 29 |  .N X S X=$P(CHOICE,"^",2) Q:X=""
 | 
|---|
 | 30 |  .I X=799.9 W !,$C(7),IOINHI,"Warning: The ICD9 Diagnosis associated with this problem needs to be updated!",IOINORM Q
 | 
|---|
 | 31 |  .D TESTICD^IBDFN7
 | 
|---|
 | 32 |  .I '$D(X) W !,$C(7),IOINHI,"Warning: The ICD9 code associated with this problem is inactive.",IOINORM
 | 
|---|
 | 33 |  .;I $D(X) W !,"This is a valid icd9 code"
 | 
|---|
 | 34 |  ;
 | 
|---|
 | 35 |  ; -- send second and third codes if applicable
 | 
|---|
 | 36 |  Q:"PRIMARYSECONDARYADD TO PROBLEM LIST"'[IBDQLFR
 | 
|---|
 | 37 |  N IBDQUAL
 | 
|---|
 | 38 |  S IBDQUAL=$S(IBDQLFR="PRIMARY":"SECONDARY",1:IBDQLFR)
 | 
|---|
 | 39 |  N I,IBDXCD,DISPTXT F I=10,11 I $P(CHOICE,"^",I)]"" D
 | 
|---|
 | 40 |  .S IBDX=$G(RESULT(0))+1,RESULT(0)=IBDX
 | 
|---|
 | 41 |  .S IBDXCD=$P(CHOICE,"^",I)
 | 
|---|
 | 42 |  .N X,Y S X=IBDXCD
 | 
|---|
 | 43 |  .D
 | 
|---|
 | 44 |  ..I $G(X)="" K X S Y="" Q
 | 
|---|
 | 45 |  ..S:$E(X,$L(X))'=" " X=X_" " ; use ba xref, add space to end for lookup.
 | 
|---|
 | 46 |  ..S X=$O(^ICD9("BA",X,0))
 | 
|---|
 | 47 |  ..I 'X S Y=""
 | 
|---|
 | 48 |  ..E  S Y=$P(^ICD9(X,0),"^",3)
 | 
|---|
 | 49 |  .S DISPTXT=Y
 | 
|---|
 | 50 |  .S RESULT(IBDX)=IBDF("PI")_"^"_IBDXCD_"^"_DISPTXT_"^"_$P(CHOICE,"^",8)_"^"_$P(CHOICE,"^",6)_"^"_IBDQUAL_"^"_$G(IBDF("IEN"))_"^^"_$P(CHOICE,"^",9)
 | 
|---|
 | 51 |  .S IBDPI(IBDF("PI"),IBDX)=RESULT(IBDX)
 | 
|---|
 | 52 |  ; 
 | 
|---|
 | 53 |  ; -- if ans contains - go to modifier routine
 | 
|---|
 | 54 |  I IBDASK="CPT Procedure Code" D MOD^IBDFDE23
 | 
|---|
 | 55 |  I IBDASK="Visit Type (EM) Code" D MOD^IBDFDE23
 | 
|---|
 | 56 |  Q
 | 
|---|
 | 57 |  ;
 | 
|---|
 | 58 | QLFR(RULE,QLFR) ; -- ask Qualifier from array, impose rules
 | 
|---|
 | 59 |  N I,X,IBDQ,IBDQ1,QCNT,CNT,ANS,IBDI,OVER,X1,X2,NUM
 | 
|---|
 | 60 |  S IBDQ="",CNT=0
 | 
|---|
 | 61 |  ;
 | 
|---|
 | 62 |  ; -- if only 1 qualifier use it
 | 
|---|
 | 63 |  I RULE=1 S IBDQ=$G(QLFR(+$O(QLFR(0)))) W "  ",IBDQ G QLFRQ
 | 
|---|
 | 64 |  ;
 | 
|---|
 | 65 |  S IBDI=0
 | 
|---|
 | 66 |  F  S IBDI=$O(QLFR(IBDI)) Q:'IBDI  S X=$G(QLFR(IBDI)) I X'="" D
 | 
|---|
 | 67 |  .S CNT=CNT+1,X(CNT)=X,X2(X)=X
 | 
|---|
 | 68 |  .I '$D(X1($E(X),1)) S X1($E(X),1)=X Q
 | 
|---|
 | 69 |  .S NUM=$O(X1($E(X),""),-1) S X1($E(X),NUM+1)=X
 | 
|---|
 | 70 |  I CNT=1 S IBDQ=$G(X(CNT)) W "  ",IBDQ G QLFRQ
 | 
|---|
 | 71 |  ;
 | 
|---|
 | 72 |  I $D(IBNAQLFR) S ANS=1 S IBDQ=X(ANS)  W !,IOINHI,"Using Default Qualifier: "_X(ANS),IOINORM,! Q IBDQ
 | 
|---|
 | 73 | OVER1 ;
 | 
|---|
 | 74 |  I CNT<1 G QLFRQ
 | 
|---|
 | 75 |  W !,IOINHI,"   Select a Qualifier",IOINORM
 | 
|---|
 | 76 |  I CNT>1 F I=1:1:CNT I X(I)'="" W !?6,I,?10,X(I)
 | 
|---|
 | 77 |  W !,"   Choose 1-",CNT,": " R ANS:DTIME
 | 
|---|
 | 78 |  I '$T!($E(ANS,1)="^") S IBDQ="",IBQUIT=1 G QLFRQ
 | 
|---|
 | 79 |  I ANS="" G OVER1
 | 
|---|
 | 80 |  S OVER=0
 | 
|---|
 | 81 |  I $E(ANS,1)="?" D HELP G OVER1
 | 
|---|
 | 82 |  I ANS=+ANS D  G:OVER OVER1
 | 
|---|
 | 83 |  .I ANS<1!(ANS>CNT) S OVER=1 Q
 | 
|---|
 | 84 |  .I $G(X(ANS))="" S OVER=1 Q
 | 
|---|
 | 85 |  .S IBDQ=X(ANS) W "  ",X(ANS)
 | 
|---|
 | 86 |  .W !
 | 
|---|
 | 87 |  I ANS'=+ANS D  G:OVER OVER1
 | 
|---|
 | 88 |  .S ANS1=ANS,QCNT=0,IBDQ1=""
 | 
|---|
 | 89 |  .F IBD=1:1 S ANS=$P(ANS1,",",IBD) Q:ANS=""!OVER  D ONEQLFR I 'OVER,IBDQ'="" S QCNT=QCNT+1,$P(IBDQ1,"^",QCNT)=IBDQ
 | 
|---|
 | 90 |  .S IBDQ=IBDQ1
 | 
|---|
 | 91 |  .K QCNT,IBDQ1
 | 
|---|
 | 92 |  ;
 | 
|---|
 | 93 | QLFRQ Q IBDQ
 | 
|---|
 | 94 |  ;
 | 
|---|
 | 95 | ONEQLFR ; -- parse qualifiers
 | 
|---|
 | 96 |  S ANS=$$UP^XLFSTR(ANS)
 | 
|---|
 | 97 |  I +ANS=ANS D  Q
 | 
|---|
 | 98 |  .I $G(X(ANS))="" W !,"'"_ANS_"' IS NOT A VALID SELECTION, RE-ENTER" S OVER=1 Q
 | 
|---|
 | 99 |  .S IBDQ=X(ANS) W "  ",X(ANS)
 | 
|---|
 | 100 |  ;
 | 
|---|
 | 101 |  I $L(ANS)=1,$G(X1(ANS,1))'="",$O(X1(ANS,1))="" S IBDQ=X1(ANS,1) W:ANS=ANS1 $E(X1(ANS,1),2,99) W:ANS'=ANS1 "  ",X1(ANS,1) Q
 | 
|---|
 | 102 |  I $G(X2(ANS))'="" S IBDQ=X2(ANS) W "  ",X2(ANS) Q
 | 
|---|
 | 103 |  I $L(ANS)=1,$G(X1(ANS,1))'="",$O(X1(ANS,1)) S OVER=1 W "  Ambiguous answer, enter the number." Q  ;S IBDQ=$$PARTLST("X1",ANS,ANS) W $E(X1(ANS,1),2,99) Q
 | 
|---|
 | 104 |  S OVER=1
 | 
|---|
 | 105 |  Q
 | 
|---|
 | 106 |  ;
 | 
|---|
 | 107 | LST ; -- List previous selections and selections to choose from.
 | 
|---|
 | 108 |  N I,CNT,IBQUIT,NUM
 | 
|---|
 | 109 |  ;
 | 
|---|
 | 110 |  ; -- list previous selections
 | 
|---|
 | 111 |  D PREVSEL
 | 
|---|
 | 112 |  ;
 | 
|---|
 | 113 |  ; -- list available choices
 | 
|---|
 | 114 |  S (IBQUIT,CNT)=0
 | 
|---|
 | 115 |  S NUM=+$$CHOICE^IBDFDE2(0)
 | 
|---|
 | 116 |  W !!,"Choose from: "
 | 
|---|
 | 117 |  S I=0 F  S I=$O(^TMP("IBD-LST",$J,IBDFMIEN,IBDF("PI"),IBDF("IEN"),I)) Q:'I!(IBQUIT)  D
 | 
|---|
 | 118 |  .S CHOICE=$$CHOICE^IBDFDE2(I)
 | 
|---|
 | 119 |  .I '$P(CHOICE,"^",7) W !?16,IOINHI,$P(CHOICE,"^"),IOINORM Q
 | 
|---|
 | 120 |  .S CNT=CNT+1,NUMBER(CNT)=I
 | 
|---|
 | 121 |  .W !?3,CNT,?7,$S($P(CHOICE,"^",2)'="":$P(CHOICE,"^",2),1:$P(CHOICE,"^",3)),?16,$P(CHOICE,"^",1)
 | 
|---|
 | 122 |  .I NUM>15,NUM>I,'(CNT#15) D PAUSE^IBDFDE I 'IBQUIT W $C(13),$J("",55),$C(13)
 | 
|---|
 | 123 |  .;I NUM>15,CNT'=NUM,'(CNT#15) D READ I $G(LISTSEL)<1!($G(LISTSEL)>CNT) K LISTSEL
 | 
|---|
 | 124 |  .;I $G(LISTSEL) S SEL=NUMBER(LISTSEL)
 | 
|---|
 | 125 |  Q
 | 
|---|
 | 126 |  ;
 | 
|---|
 | 127 | PREVSEL ; -- List previous selections
 | 
|---|
 | 128 |  N I,CNT
 | 
|---|
 | 129 |  S CNT=0
 | 
|---|
 | 130 |  ;
 | 
|---|
 | 131 |  ; -- list previous selections
 | 
|---|
 | 132 |  I $D(IBDPI(IBDF("PI")))>1 S I=0 F  S I=$O(IBDPI(IBDF("PI"),I)) Q:'I  D
 | 
|---|
 | 133 |  .Q:$P(IBDPI(IBDF("PI"),I),"^",7)'=IBDF("IEN")  ; not the same list
 | 
|---|
 | 134 |  .S CNT=CNT+1
 | 
|---|
 | 135 |  .W:CNT=1 !!,IOINHI,"   You have previously selected: ",IOINORM
 | 
|---|
 | 136 |  .W !,?7,$S($P($G(^IBE(357.6,+IBDPI(IBDF("PI"),I),0)),"^")="GMP INPUT CLINIC COMMON PROBLEMS":$$LEX^IBDFDE1($P(IBDPI(IBDF("PI"),I),"^",2)),1:$P(IBDPI(IBDF("PI"),I),"^",2))
 | 
|---|
 | 137 |  .W ?16,$P(IBDPI(IBDF("PI"),I),"^",3),?50,$P(IBDPI(IBDF("PI"),I),"^",6)
 | 
|---|
 | 138 |  W !
 | 
|---|
 | 139 |  Q
 | 
|---|
 | 140 |  ;
 | 
|---|
 | 141 | DEFAULT ; -- compute default answer
 | 
|---|
 | 142 |  N CNT,SEL,NAME,PIECE,SELAST
 | 
|---|
 | 143 |  S (CNT,SEL,SELAST)=0
 | 
|---|
 | 144 |  S NAME=$P($G(^IBE(357.6,+IBDF("PI"),0)),"^")
 | 
|---|
 | 145 |  S PIECE=$S(NAME["INPUT PROCEDURE CODE":2,NAME["INPUT DIAGNOSIS CODE":2,NAME["INPUT VISIT TYPE":2,1:3)
 | 
|---|
 | 146 |  F  S SEL=$O(IBDPI(IBDF("PI"),SEL)) Q:'SEL  D
 | 
|---|
 | 147 |  .Q:$P(IBDPI(IBDF("PI"),SEL),"^",7)'=IBDF("IEN")  ; not the same list
 | 
|---|
 | 148 |  .S CNT=CNT+1,SELAST=SEL
 | 
|---|
 | 149 |  I $G(SELAST) S DIR("B")=$P(IBDPI(IBDF("PI"),SELAST),"^",PIECE),IBDEFLT(IBDF("PI"))=DIR("B")
 | 
|---|
 | 150 |  D PREVSEL
 | 
|---|
 | 151 |  Q
 | 
|---|
 | 152 |  ;
 | 
|---|
 | 153 | DEFPROV ; -- find default provider, not on form
 | 
|---|
 | 154 |  N SEL,IBDX
 | 
|---|
 | 155 |  S IBDF("PI")=$O(^IBE(357.6,"B","INPUT PROVIDER",0))
 | 
|---|
 | 156 |  Q:$D(IBDPI(IBDF("PI")))
 | 
|---|
 | 157 |  S SEL=$G(IBDF("PROVIDER")) I 'SEL S SEL=$$PRDEF^IBDFRPC3(IBDF("CLINIC"))
 | 
|---|
 | 158 |  Q:'SEL
 | 
|---|
 | 159 |  S $P(IBDF("PROVIDER PI"),"^",2)=1 ;flag not on form
 | 
|---|
 | 160 |  S IBDX=$G(IBDSEL(0))+1,IBDSEL(0)=IBDX
 | 
|---|
 | 161 |  S IBDSEL(IBDX)=IBDF("PI")_"^"_SEL_"^"_$P($G(^VA(200,+SEL,0)),"^")_"^^^PRIMARY^"
 | 
|---|
 | 162 |  S IBDPI(IBDF("PI"),IBDX)=IBDSEL(IBDX)
 | 
|---|
 | 163 |  W:'$G(IBDF("PROVIDER")) !!,"No Provider Block on form.  Using Default Provider from Clinic as Primary.",!
 | 
|---|
 | 164 |  W:$G(IBDF("PROVIDER")) !!,"Using Provider: "
 | 
|---|
 | 165 |  W "   ",$P(^VA(200,+SEL,0),"^"),"    PRIMARY",!
 | 
|---|
 | 166 |  Q
 | 
|---|
 | 167 |  ;
 | 
|---|
 | 168 | HELP ; -- 
 | 
|---|
 | 169 |  W !,"You must choose a data qualifier for this item.  Enter a number from 1-",CNT,!,"Or enter the first letter, or enter the full name.  Enter more than one",!,"qualifier separated by commas (ie 1,2 or P,A).",!
 | 
|---|
 | 170 |  Q
 | 
|---|
 | 171 |  ;
 | 
|---|
 | 172 | OTHER(IBDX) ; -- allow input of an additional item
 | 
|---|
 | 173 |  N I,J,X,Y,DIR,DIRUT,DUOUT,SEL,SELX,NARR,DIC,DIE,DA,DR,GMPTUN,GMPTSUB,GMPTSHOW,XTLKGLB,XTLKHLP,XTLKKSCH,XTLKSAY,IBDLEX,IBDFILE
 | 
|---|
 | 174 |  ;
 | 
|---|
 | 175 |  ; -- strip the cpt code if modifiers are added cpt-mod,mod,mod...
 | 
|---|
 | 176 |  ;
 | 
|---|
 | 177 |  I IBDX["-" S IBDX=$P(IBDX,"-")
 | 
|---|
 | 178 |  I $G(IBDF("LEXICON")) D  Q:'$D(IBDLEX)
 | 
|---|
 | 179 |  .I $D(^LEX)>1 S X="LEXSET" X ^%ZOSF("TEST") I $T D CONFIG^LEXSET("ICD","ICD") S IBDLEX=1
 | 
|---|
 | 180 |  .I '$D(IBDLEX) S X="GMPTSET" X ^%ZOSF("TEST") I $T D CONFIG^GMPTSET("GMPL","PL1") S IBDLEX=1
 | 
|---|
 | 181 |  .;D CONFIG^GMPTSET("ICD","ICD") (this is an alternate filter)
 | 
|---|
 | 182 |  S SELX=-1
 | 
|---|
 | 183 |  I '$G(IBDF("OTHER")) G OTHQ
 | 
|---|
 | 184 |  I $L($G(IBDX)) S X=IBDX S DIC(0)="EQMZ"
 | 
|---|
 | 185 |  S DIC("A")="Select Other "_$G(IBDASK)
 | 
|---|
 | 186 |  S DIC=$P(IBDF("OTHER"),"^") I $P(IBDF("OTHER"),"^",2)'="" S DIC("S")=$P(IBDF("OTHER"),"^",2,99)
 | 
|---|
 | 187 |  D ^DIC G OTHQ:+Y<1
 | 
|---|
 | 188 |  K DIC
 | 
|---|
 | 189 |  S SEL=Y
 | 
|---|
 | 190 |  W !!,$C(7),"WARNING: Item selected not from Encounter Form."
 | 
|---|
 | 191 |  ;
 | 
|---|
 | 192 |  I IBDF("PI")=$G(IBDF("PROVIDER PI")) W ! S SELX=$P($G(^VA(200,+Y,0)),"^",1)_"^^"_+Y_"^^^^1" G OTHQ
 | 
|---|
 | 193 |  ;
 | 
|---|
 | 194 |  W "...Entry of Narrative Required!",!
 | 
|---|
 | 195 |  S IBDFILE=+IBDF("OTHER")
 | 
|---|
 | 196 |  S:IBDFILE=81 DIR("B")=$P(Y(0),"^",2)
 | 
|---|
 | 197 |  ;S:IBDFILE=80 DIR("B")=$P(Y(0),"^",3)
 | 
|---|
 | 198 |  S:IBDFILE=80 DIR("B")=$S($L($G(^ICD9(+Y,1)))<81:^ICD9(+Y,1),1:$P(Y(0),"^",3))
 | 
|---|
 | 199 |  S:IBDFILE=357.69 DIR("B")=$P(Y(0),"^",3)
 | 
|---|
 | 200 |  I IBDFILE>9999999,IBDFILE<10000000 S DIR("B")=$P(Y(0),"^",1)
 | 
|---|
 | 201 |  S DIR(0)="FO^3:80",DIR("A")="Narrative" D ^DIR K DIR G:$G(DIRUT) OTHQ
 | 
|---|
 | 202 |  S NARR=Y
 | 
|---|
 | 203 |  ;
 | 
|---|
 | 204 |  S SELX=$S((IBDFILE<9999999)&(IBDFILE'=757.01):NARR_"^^"_$P(SEL,"^",2)_"^^^^1",1:NARR_"^^"_$P(SEL,"^",1)_"^^^^1")
 | 
|---|
 | 205 | OTHQ Q $S(SELX=-1:"",1:SELX)
 | 
|---|
 | 206 |  ;
 | 
|---|
 | 207 | PARTLST(ARY,NEXT,ANS) ; -- input has more than one match, prompt for which one
 | 
|---|
 | 208 |  N I,J,K,N,IBD,ANS2,SEL,CHOICE
 | 
|---|
 | 209 |  S SEL=0
 | 
|---|
 | 210 |  S NEXT=$E(NEXT,1,$L(NEXT)-1)_$C($A($E(NEXT,$L(NEXT)))-1)_"~"
 | 
|---|
 | 211 |  ;
 | 
|---|
 | 212 |  S J=0,K=NEXT F  S K=$O(@ARY@(K)) Q:$E(K,1,$L(ANS))'=ANS  D
 | 
|---|
 | 213 |  .S N=0 F  S N=$O(@ARY@(K,N)) Q:'N  D
 | 
|---|
 | 214 |  ..S J=J+1,IBD(J)=@ARY@(K,N),CHOICE=$$CHOICE^IBDFDE2(IBD(J))
 | 
|---|
 | 215 |  ..W !?6,J,?10,$S($P(CHOICE,"^",2)'="":$P(CHOICE,"^",2),1:$P(CHOICE,"^",3)),?20,$P(CHOICE,"^",1),?50,"   ",$P(CHOICE,"^",8),"   ",$P(CHOICE,"^",4)
 | 
|---|
 | 216 |  ;
 | 
|---|
 | 217 | ASKNUM I J<1 G PARTLQ
 | 
|---|
 | 218 |  W !,"   Choose 1-",J,": " R ANS2:DTIME
 | 
|---|
 | 219 |  I '$T!($E(ANS2,1)="^")!(ANS2="") S SEL="" G PARTLQ
 | 
|---|
 | 220 |  I $E(ANS2,1)="?" W !,"Enter a number from 1 - ",J G ASKNUM
 | 
|---|
 | 221 |  S ANS2=+ANS2
 | 
|---|
 | 222 |  I ANS2<1!(ANS2>J) G ASKNUM
 | 
|---|
 | 223 |  I $G(IBD(ANS2))="" G ASKNUM
 | 
|---|
 | 224 |  W !
 | 
|---|
 | 225 |  S SEL=$G(IBD(ANS2))
 | 
|---|
 | 226 | PARTLQ Q SEL
 | 
|---|
 | 227 |  ;
 | 
|---|
 | 228 | READ ; -- get input from list
 | 
|---|
 | 229 |  N ANS2
 | 
|---|
 | 230 |  G:CNT<1 READQ
 | 
|---|
 | 231 |  W !,"   Choose 1-",CNT,": " R ANS2:DTIME
 | 
|---|
 | 232 |  I '$T!($E(ANS2,1)="^") S IBQUIT=1 G READQ
 | 
|---|
 | 233 |  I $E(ANS2,1)="?" W !,"Enter a number from 1 - ",CNT," or return to see more." G READ
 | 
|---|
 | 234 |  S ANS2=+ANS2
 | 
|---|
 | 235 |  I ANS2<1!(ANS2>CNT) W $C(7),! G READ
 | 
|---|
 | 236 |  I $G(NUMBER(CNT))="" G READ
 | 
|---|
 | 237 |  W !
 | 
|---|
 | 238 | READQ Q
 | 
|---|