[613] | 1 | QACKEY ;HISC/DAD,CEW - Allocate/Deallocate Patient Representative key ;2/10/95 09:42
|
---|
| 2 | ;;2.0;Patient Representative;;07/25/1995
|
---|
| 3 | K DIC S DIC="^DIC(19.1,",DIC(0)="AEMNQZ"
|
---|
| 4 | S DIC("S")="I $E($P(^(0),U,1),1,3)=""QAC"""
|
---|
| 5 | S DIC("A")="Select the key you want to allocate/deallocate: "
|
---|
| 6 | S DIC("W")="W "" "",$P(^(0),U,2)"
|
---|
| 7 | D ^DIC K DIC G:Y'>0 EXIT S QACKEY(0)=$P(Y,U,2),QACKEY=+Y
|
---|
| 8 | S QACKEY(1)=$P(Y(0),U,2)
|
---|
| 9 | K ^TMP($J,"QACKEY ADD"),^TMP($J,"QACKEY DEL") S QACCOUNT=0
|
---|
| 10 | W !!,"Checking for current holders of the ",QACKEY(1)
|
---|
| 11 | F QACDUZ=0:0 S QACDUZ=$O(^XUSEC(QACKEY(0),QACDUZ)) Q:QACDUZ'>0 D
|
---|
| 12 | . W "." S X=$G(^VA(200,QACDUZ,0))
|
---|
| 13 | . I $P(X,"^")]"" D
|
---|
| 14 | .. S ^TMP($J,"QACKEY ADD",$P(X,"^"),QACDUZ)=""
|
---|
| 15 | .. S QACCOUNT=QACCOUNT+1
|
---|
| 16 | .. Q
|
---|
| 17 | . Q
|
---|
| 18 | W !,QACCOUNT," found. " W:QACCOUNT "Type a '?' to list their names."
|
---|
| 19 | ASK ;
|
---|
| 20 | R !!,"Select PATIENT REPRESENTATIVE: ",X:DTIME S:'$T X="^"
|
---|
| 21 | G EXIT:$E(X)="^",OK:X=""
|
---|
| 22 | S QADELETE=($E(X)="-"),X=$S(QADELETE:$E(X,2,999),1:X)
|
---|
| 23 | I $E(X)="?" D HELP G ASK
|
---|
| 24 | S DIC="^VA(200,",DIC(0)="EMNQZ" D ^DIC K DIC G:Y'>0 ASK
|
---|
| 25 | S QACDUZ=+Y,QACDUZ(0)=$P(Y(0),"^")
|
---|
| 26 | I QACDUZ(0)="" W " ??",*7 G ASK
|
---|
| 27 | I QADELETE D
|
---|
| 28 | . I $D(^TMP($J,"QACKEY ADD",QACDUZ(0),QACDUZ))[0 W " ??",*7 Q
|
---|
| 29 | . S ^TMP($J,"QACKEY DEL",QACDUZ(0),QACDUZ)=""
|
---|
| 30 | . K ^TMP($J,"QACKEY ADD",QACDUZ(0),QACDUZ)
|
---|
| 31 | . Q
|
---|
| 32 | E D
|
---|
| 33 | . S ^TMP($J,"QACKEY ADD",QACDUZ(0),QACDUZ)=""
|
---|
| 34 | . K ^TMP($J,"QACKEY DEL",QACDUZ(0),QACDUZ)
|
---|
| 35 | . Q
|
---|
| 36 | G ASK
|
---|
| 37 | OK ;
|
---|
| 38 | I $O(^TMP($J,"QACKEY ADD",""))="",$O(^TMP($J,"QACKEY DEL",""))="" W !!?3,"*** No Patient Reps. selected !! ***",*7 G EXIT
|
---|
| 39 | ASKOK W !!,"Allocate / Deallocate ",QACKEY(1)
|
---|
| 40 | S %=2 D YN^DICN G:(%=-1)!(%=2) EXIT
|
---|
| 41 | I '% W !!?5,"Please answer Y(es) or N(o)" G ASKOK
|
---|
| 42 | DOIT ;
|
---|
| 43 | W !!,"Allocating key:"
|
---|
| 44 | I $O(^TMP($J,"QACKEY ADD",""))]"" D
|
---|
| 45 | . S QACDUZ(0)=""
|
---|
| 46 | . F S QACDUZ(0)=$O(^TMP($J,"QACKEY ADD",QACDUZ(0))) Q:QACDUZ(0)="" F QACDUZ=0:0 S QACDUZ=$O(^TMP($J,"QACKEY ADD",QACDUZ(0),QACDUZ)) Q:QACDUZ'>0 D
|
---|
| 47 | .. K DD,DIC,DINUM,DO
|
---|
| 48 | .. S:$D(^VA(200,QACDUZ,51,0))[0 ^(0)="^200.051PA^^"
|
---|
| 49 | .. S DA(1)=QACDUZ,DIC="^VA(200,"_QACDUZ_",51,"
|
---|
| 50 | .. S DIC(0)="LM",DLAYGO=200,(X,DINUM)=QACKEY
|
---|
| 51 | .. D:$O(^VA(200,QACDUZ,51,"B",QACKEY,0))'>0 FILE^DICN
|
---|
| 52 | .. W !?3,QACDUZ(0)
|
---|
| 53 | .. Q
|
---|
| 54 | . Q
|
---|
| 55 | E W !?3,"*** None ***"
|
---|
| 56 | W !!,"Deallocating key:"
|
---|
| 57 | I $O(^TMP($J,"QACKEY DEL",""))]"" D
|
---|
| 58 | . S QACDUZ(0)=""
|
---|
| 59 | . F S QACDUZ(0)=$O(^TMP($J,"QACKEY DEL",QACDUZ(0))) Q:QACDUZ(0)="" F QACDUZ=0:0 S QACDUZ=$O(^TMP($J,"QACKEY DEL",QACDUZ(0),QACDUZ)) Q:QACDUZ'>0 D
|
---|
| 60 | .. F QACSD1=0:0 S QACSD1=$O(^VA(200,QACDUZ,51,"B",QACKEY,QACSD1)) Q:QACSD1'>0 D
|
---|
| 61 | ... S DA(1)=QACDUZ,DA=QACSD1,DIDEL=200
|
---|
| 62 | ... S DIK="^VA(200,"_QACDUZ_",51,"
|
---|
| 63 | ... D ^DIK
|
---|
| 64 | ... Q
|
---|
| 65 | .. W !?3,QACDUZ(0)
|
---|
| 66 | .. Q
|
---|
| 67 | . Q
|
---|
| 68 | E W !?3,"*** None ***"
|
---|
| 69 | EXIT ;
|
---|
| 70 | K %,D,DA,DD,DIC,DIDEL,DIK,DINUM,DIR,DLAYGO,DO,DZ,QADELETE
|
---|
| 71 | K QACCOUNT,QACKEY,QACSD1,QACDUZ,QACLINE,QACLIST,X,Y
|
---|
| 72 | K ^TMP($J,"QACKEY ADD"),^TMP($J,"QACKEY DEL")
|
---|
| 73 | Q
|
---|
| 74 | HELP ;
|
---|
| 75 | W !!," Enter the name of a Patient Representative to add to the list."
|
---|
| 76 | W !," Enter a minus (-) Patient Representative name to remove a name"
|
---|
| 77 | W " from the list."
|
---|
| 78 | W !!,"Patient Reps. selected for key ALLOCATION:" D HLP("ADD")
|
---|
| 79 | W !!,"Patient Reps. selected for key DEALLOCATION:" D HLP("DEL")
|
---|
| 80 | Q:X'?1"??".E
|
---|
| 81 | K DIR S DIR(0)="E" W ! D ^DIR K DIR Q:Y'>0
|
---|
| 82 | S DIC="^VA(200,",DIC(0)="AEMNQ",D="B",DZ="??" D DQ^DICQ
|
---|
| 83 | Q
|
---|
| 84 | HLP(QACLIST) ; Display Patient Representatives
|
---|
| 85 | N DIR,QACLINE,QACDUZ,X,Y
|
---|
| 86 | S QACLIST="QACKEY "_QACLIST
|
---|
| 87 | I $O(^TMP($J,QACLIST,""))]"" D
|
---|
| 88 | . S QACLINE=$Y,Y=1,QACDUZ(0)=""
|
---|
| 89 | . F S QACDUZ(0)=$O(^TMP($J,QACLIST,QACDUZ(0))) Q:(QACDUZ(0)="")!(Y'>0) F QACDUZ=0:0 S QACDUZ=$O(^TMP($J,QACLIST,QACDUZ(0),QACDUZ)) Q:(QACDUZ'>0)!(Y'>0) D
|
---|
| 90 | .. W !?3,QACDUZ(0)
|
---|
| 91 | .. I $Y>(IOSL+QACLINE-3),(($O(^TMP($J,QACLIST,QACDUZ(0)))]"")!($O(^TMP($J,QACLIST,QACDUZ(0),QACDUZ)))) K DIR S DIR(0)="E",QACLINE=$Y D ^DIR K DIR
|
---|
| 92 | .. Q
|
---|
| 93 | . Q
|
---|
| 94 | E W !?3,"*** None ***"
|
---|
| 95 | Q
|
---|