| 1 | IBDFDE41 ;ALB/AAS - AICS Data Entry, process selection lists ; 24-FEB-96 [ 11/13/96 3:58 PM ]
|
---|
| 2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;;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 | I +SEL=SEL S CHOICE=$G(^TMP("IBD-LST",$J,IBDFMIEN,IBDF("PI"),IBDF("IEN"),SEL))
|
---|
| 11 | I +SEL'=SEL S CHOICE=SEL
|
---|
| 12 | Q:IBQUIT
|
---|
| 13 | ;
|
---|
| 14 | ; -- build selections
|
---|
| 15 | S RESULT(0)=$G(RESULT(0))+1
|
---|
| 16 | W " ",$P(CHOICE,"^")," ",$P(CHOICE,"^",3)
|
---|
| 17 | ;
|
---|
| 18 | S RESULT(RESULT(0))=IBDF("PI")_"^"_$P(CHOICE,"^",4)_"^"_$P(CHOICE,"^")_"^^^"_$P(CHOICE,"^",3)_"^"_$G(IBDF("IEN"))
|
---|
| 19 | S IBDPI(IBDF("PI"),RESULT(0))=RESULT(RESULT(0))
|
---|
| 20 | ;
|
---|
| 21 | ; --validate code for active problem list
|
---|
| 22 | I $P($G(^IBE(357.6,IBDF("PI"),0)),"^")="PX INPUT PATIENT ACTIVE PROBLEM" D
|
---|
| 23 | .N X S X=$P(CHOICE,"^",2) Q:X=""
|
---|
| 24 | .I X=799.9 W !,$C(7),$G(IOINHI),"Warning: The ICD9 Diagnosis associated with this problem needs to be updated!",$G(IOINORM) Q
|
---|
| 25 | .D TESTICD^IBDFN7
|
---|
| 26 | .I '$D(X) W !,$C(7),$G(IOINHI),"Warning: The ICD9 code associated with this problem is inactive.",$G(IOINORM)
|
---|
| 27 | ;
|
---|
| 28 | Q
|
---|
| 29 | ;
|
---|
| 30 | LST ; -- List previous selections and selections to choose from.
|
---|
| 31 | N I,CNT,IBQUIT,NUM
|
---|
| 32 | ;
|
---|
| 33 | ; -- list previous selections
|
---|
| 34 | D PREVSEL
|
---|
| 35 | ;
|
---|
| 36 | ; -- list available choices
|
---|
| 37 | S (IBQUIT,CNT)=0
|
---|
| 38 | S NUM=+$G(^TMP("IBD-LST",$J,IBDFMIEN,IBDF("PI"),IBDF("IEN"),0))
|
---|
| 39 | W !!,"Choose from: "
|
---|
| 40 | S I=0 F S I=$O(^TMP("IBD-LST",$J,IBDFMIEN,IBDF("PI"),IBDF("IEN"),I)) Q:'I!(IBQUIT) D
|
---|
| 41 | .S CHOICE=$G(^TMP("IBD-LST",$J,IBDFMIEN,IBDF("PI"),IBDF("IEN"),I))
|
---|
| 42 | .S CNT=CNT+1,NUMBER(CNT)=I
|
---|
| 43 | .W !?3,CNT,?7,$S($P(CHOICE,"^",2)'="":$P(CHOICE,"^",2),1:$P(CHOICE,"^")),?20," ",$P(CHOICE,"^",3)
|
---|
| 44 | .I NUM>15,NUM>I,'(CNT#15) D PAUSE^IBDFDE I 'IBQUIT W $C(13),$J("",55),$C(13)
|
---|
| 45 | Q
|
---|
| 46 | ;
|
---|
| 47 | PREVSEL ; -- List previous selections
|
---|
| 48 | N I,CNT
|
---|
| 49 | S CNT=0
|
---|
| 50 | ;
|
---|
| 51 | ; -- list previous selections
|
---|
| 52 | I $D(IBDPI(IBDF("PI")))>1 S I=0 F S I=$O(IBDPI(IBDF("PI"),I)) Q:'I D
|
---|
| 53 | .Q:$P(IBDPI(IBDF("PI"),I),"^",7)'=IBDF("IEN") ; not the same list
|
---|
| 54 | .S CNT=CNT+1
|
---|
| 55 | .W:CNT=1 !!,IOINHI," You have previously selected: ",IOINORM
|
---|
| 56 | .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))
|
---|
| 57 | .W ?16,$P(IBDPI(IBDF("PI"),I),"^",3),?50,$P(IBDPI(IBDF("PI"),I),"^",6)
|
---|
| 58 | W !
|
---|
| 59 | Q
|
---|
| 60 | ;
|
---|
| 61 | DEFAULT ; -- compute default answer
|
---|
| 62 | N CNT,SEL,NAME,PIECE,SELAST
|
---|
| 63 | S (CNT,SEL,SELAST)=0
|
---|
| 64 | S NAME=$P($G(^IBE(357.6,+IBDF("PI"),0)),"^")
|
---|
| 65 | S PIECE=$S(NAME["INPUT PROCEDURE CODE":2,NAME["INPUT DIAGNOSIS CODE":2,NAME["INPUT VISIT TYPE":2,1:3)
|
---|
| 66 | F S SEL=$O(IBDPI(IBDF("PI"),SEL)) Q:'SEL D
|
---|
| 67 | .Q:$P(IBDPI(IBDF("PI"),SEL),"^",7)'=IBDF("IEN") ; not the same list
|
---|
| 68 | .S CNT=CNT+1,SELAST=SEL
|
---|
| 69 | I $G(SELAST) S DIR("B")=$P(IBDPI(IBDF("PI"),SELAST),"^",PIECE),IBDEFLT(IBDF("PI"))=DIR("B")
|
---|
| 70 | D PREVSEL
|
---|
| 71 | Q
|
---|
| 72 | ;
|
---|
| 73 | PARTLST(ARY,NEXT,ANS) ; -- input has more than one match, prompt for which one
|
---|
| 74 | N I,J,K,N,IBD,ANS2,SEL,CHOICE
|
---|
| 75 | S SEL=0
|
---|
| 76 | S NEXT=$E(NEXT,1,$L(NEXT)-1)_$C($A($E(NEXT,$L(NEXT)))-1)_"~"
|
---|
| 77 | ;
|
---|
| 78 | S J=0,K=NEXT F S K=$O(@ARY@(K)) Q:$E(K,1,$L(ANS))'=ANS D
|
---|
| 79 | .S N=0 F S N=$O(@ARY@(K,N)) Q:'N D
|
---|
| 80 | ..S J=J+1,IBD(J)=@ARY@(K,N),CHOICE=$$CHOICE^IBDFDE2(IBD(J))
|
---|
| 81 | ..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)
|
---|
| 82 | ;
|
---|
| 83 | ASKNUM I J<1 G PARTLQ
|
---|
| 84 | W !," Choose 1-",J,": " R ANS2:DTIME
|
---|
| 85 | I '$T!($E(ANS2,1)="^")!(ANS2="") S SEL="" G PARTLQ
|
---|
| 86 | I $E(ANS2,1)="?" W !,"Enter a number from 1 - ",J G ASKNUM
|
---|
| 87 | S ANS2=+ANS2
|
---|
| 88 | I ANS2<1!(ANS2>J) G ASKNUM
|
---|
| 89 | I $G(IBD(ANS2))="" G ASKNUM
|
---|
| 90 | W !
|
---|
| 91 | S SEL=$G(IBD(ANS2))
|
---|
| 92 | PARTLQ Q SEL
|
---|