| 1 | IBDFDE42 ;ALB/AAS - AICS Data Entry, check selection rules ; 24-FEB-96 | 
|---|
| 2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997 | 
|---|
| 3 | ; | 
|---|
| 4 | % G ^IBDFDE | 
|---|
| 5 | ; | 
|---|
| 6 | CHK ; -- see if rules allow for more or less than one | 
|---|
| 7 | ;    rules 0 := select any number | 
|---|
| 8 | ;          1 := exactly 1 | 
|---|
| 9 | ;          2 := at most 1 | 
|---|
| 10 | ;          3 := at least 1 (1 or more) | 
|---|
| 11 | N I,IBDY,MATCH | 
|---|
| 12 | S (MATCH,OVER,ASKOTHER)=0 | 
|---|
| 13 | ; | 
|---|
| 14 | ; -- find all matches | 
|---|
| 15 | S MATCH=0 | 
|---|
| 16 | S IBDY=0 F  S IBDY=$O(IBDPI(IBDF("PI"),IBDY)) Q:'IBDY  S MATCH=MATCH+1 | 
|---|
| 17 | ; | 
|---|
| 18 | ; -- any number allowed | 
|---|
| 19 | I RULE=0 D | 
|---|
| 20 | .I ANS="" S OVER=0 Q  ;nothing selected, don't reask | 
|---|
| 21 | .I ANS'="" S OVER=1 Q  ;something selected, reask | 
|---|
| 22 | ; | 
|---|
| 23 | ; -- exactly one required | 
|---|
| 24 | I RULE=1 D | 
|---|
| 25 | .I MATCH>1 S OVER=2 W:'$G(IBDREDIT) !,"More than one selected, you must delete one" Q | 
|---|
| 26 | .I MATCH=1 S OVER=0 Q  ;exactly one selected | 
|---|
| 27 | .I MATCH<1 S OVER=1 W:'$G(IBDREDIT) !!,"A ",IOINHI,IBDASK,IOINORM," selection is required.",! Q | 
|---|
| 28 | ; | 
|---|
| 29 | ; -- at most one required | 
|---|
| 30 | I RULE=2 D | 
|---|
| 31 | .I MATCH>1 S OVER=2 W:'$G(IBDREDIT) !,"More than one selected, you must delete one" Q | 
|---|
| 32 | .I MATCH=1 S OVER=0 Q  ;exactly one selected | 
|---|
| 33 | .I ANS'="",MATCH<1 S OVER=1 ;if match = 0 thats okay but ask | 
|---|
| 34 | ; | 
|---|
| 35 | ; -- at least one required | 
|---|
| 36 | I RULE=3 D | 
|---|
| 37 | .S OVER=1 | 
|---|
| 38 | .I MATCH<1 S OVER=1 W:'$G(IBDREDIT) !!,"A ",IOINHI,IBDASK,IOINORM," selection is required.",! Q | 
|---|
| 39 | .I MATCH>1,ANS="" S OVER=0 Q  ;more than one selected | 
|---|
| 40 | .I MATCH=1,ANS="" S OVER=0 Q  ;exactly one selected | 
|---|
| 41 | ; | 
|---|
| 42 | I OVER=2 D DEL^IBDFDE1 | 
|---|
| 43 | D DELQLF | 
|---|
| 44 | CHKQ Q | 
|---|
| 45 | ; | 
|---|
| 46 | DELQLF ; -- delete choices if selected | 
|---|
| 47 | Q:(+$G(SEL)=0) | 
|---|
| 48 | K ^TMP("IBD-LST",$J,IBDFMIEN,IBDF("PI"),IBDF("IEN"),+$G(SEL)) | 
|---|
| 49 | Q | 
|---|