QAOSCKEY ;HISC/DAD-ALLOCATE/DEALLOCATE CLINICAL REVIEWER KEY ;11/9/92 10:38
;;3.0;Occurrence Screen;;09/14/1993
S QAOSCLIN(0)="QAOSCLIN",QAOSCLIN=+$O(^DIC(19.1,"B",QAOSCLIN(0),0))
I $P($G(^DIC(19.1,QAOSCLIN,0)),"^")'=QAOSCLIN(0) D G EXIT
. W !!?5,"*** The Clinical Reviewer key was not found !! ***",*7
. Q
K ^TMP($J,"QAOSCLIN ADD"),^TMP($J,"QAOSCLIN DEL") S QAOCOUNT=0
W !!,"Checking for current holders of the Clinical Reviewer key"
F QAOSDUZ=0:0 S QAOSDUZ=$O(^XUSEC(QAOSCLIN(0),QAOSDUZ)) Q:QAOSDUZ'>0 D
. W "." S X=$G(^VA(200,QAOSDUZ,0))
. I $P(X,"^")]"" D
.. S ^TMP($J,"QAOSCLIN ADD",$P(X,"^"),QAOSDUZ)=""
.. S QAOCOUNT=QAOCOUNT+1
.. Q
. Q
W !,QAOCOUNT," found. " W:QAOCOUNT "Type a '?' to list their names."
ASK ;
R !!,"Select CLINICAL REVIEWER: ",X:DTIME S:'$T X="^"
G EXIT:$E(X)="^",OK:X=""
S QADELETE=($E(X)="-"),X=$S(QADELETE:$E(X,2,999),1:X)
I $E(X)="?" D HELP G ASK
S DIC="^VA(200,",DIC(0)="EMNQZ" D ^DIC K DIC G:Y'>0 ASK
S QAOSDUZ=+Y,QAOSDUZ(0)=$P(Y(0),"^")
I QAOSDUZ(0)="" W " ??",*7 G ASK
I QADELETE D
. I $D(^TMP($J,"QAOSCLIN ADD",QAOSDUZ(0),QAOSDUZ))[0 W " ??",*7 Q
. S ^TMP($J,"QAOSCLIN DEL",QAOSDUZ(0),QAOSDUZ)=""
. K ^TMP($J,"QAOSCLIN ADD",QAOSDUZ(0),QAOSDUZ)
. Q
E D
. S ^TMP($J,"QAOSCLIN ADD",QAOSDUZ(0),QAOSDUZ)=""
. K ^TMP($J,"QAOSCLIN DEL",QAOSDUZ(0),QAOSDUZ)
. Q
G ASK
OK ;
I $O(^TMP($J,"QAOSCLIN ADD",""))="",$O(^TMP($J,"QAOSCLIN DEL",""))="" W !!?3,"*** No Clinical Reviewers selected !! ***",*7 G EXIT
ASKOK W !!,"Allocate / Deallocate Clinical Reviewer key"
S %=2 D YN^DICN G:(%=-1)!(%=2) EXIT
I '% W !!?5,"Please answer Y(es) or N(o)" G ASKOK
DOIT ; Entry point from postinit: convert file #741.3
W !!,"Allocating key:"
I $O(^TMP($J,"QAOSCLIN ADD",""))]"" D
. S QAOSDUZ(0)=""
. F S QAOSDUZ(0)=$O(^TMP($J,"QAOSCLIN ADD",QAOSDUZ(0))) Q:QAOSDUZ(0)="" F QAOSDUZ=0:0 S QAOSDUZ=$O(^TMP($J,"QAOSCLIN ADD",QAOSDUZ(0),QAOSDUZ)) Q:QAOSDUZ'>0 D
.. K DD,DIC,DINUM,DO
.. S:$D(^VA(200,QAOSDUZ,51,0))[0 ^(0)="^200.051PA^^"
.. S DA(1)=QAOSDUZ,DIC="^VA(200,"_QAOSDUZ_",51,"
.. S DIC(0)="LM",DLAYGO=200,(X,DINUM)=QAOSCLIN
.. D:$O(^VA(200,QAOSDUZ,51,"B",QAOSCLIN,0))'>0 FILE^DICN
.. W !?3,QAOSDUZ(0)
.. Q
. Q
E W !?3,"*** None ***"
W !!,"Deallocating key:"
I $O(^TMP($J,"QAOSCLIN DEL",""))]"" D
. S QAOSDUZ(0)=""
. F S QAOSDUZ(0)=$O(^TMP($J,"QAOSCLIN DEL",QAOSDUZ(0))) Q:QAOSDUZ(0)="" F QAOSDUZ=0:0 S QAOSDUZ=$O(^TMP($J,"QAOSCLIN DEL",QAOSDUZ(0),QAOSDUZ)) Q:QAOSDUZ'>0 D
.. F QAOSD1=0:0 S QAOSD1=$O(^VA(200,QAOSDUZ,51,"B",QAOSCLIN,QAOSD1)) Q:QAOSD1'>0 D
... S DA(1)=QAOSDUZ,DA=QAOSD1,DIDEL=200
... S DIK="^VA(200,"_QAOSDUZ_",51,"
... D ^DIK
... Q
.. W !?3,QAOSDUZ(0)
.. Q
. Q
E W !?3,"*** None ***"
EXIT ;
K %,D,DA,DD,DIC,DIDEL,DIK,DINUM,DIR,DLAYGO,DO,DZ,QADELETE
K QAOCOUNT,QAOSCLIN,QAOSD1,QAOSDUZ,QAOSLINE,QAOSLIST,X,Y
K ^TMP($J,"QAOSCLIN ADD"),^TMP($J,"QAOSCLIN DEL")
Q
HELP ;
W !!," Enter the name of a Clinical Reviewer to add to the list."
W !," Enter a minus (-) Clinical Reviewer name to remove a name"
W " from the list."
W !!,"Clinical Reviewers selected for key ALLOCATION:" D HLP("ADD")
W !!,"Clinical Reviewers selected for key DEALLOCATION:" D HLP("DEL")
Q:X'?1"??".E
K DIR S DIR(0)="E" W ! D ^DIR K DIR Q:Y'>0
S DIC="^VA(200,",DIC(0)="AEMNQ",D="B",DZ="??" D DQ^DICQ
Q
HLP(QAOSLIST) ; DISPLAY CLINICAL REVIEWERS
N DIR,QAOSLINE,QAOSDUZ,X,Y
S QAOSLIST="QAOSCLIN "_QAOSLIST
I $O(^TMP($J,QAOSLIST,""))]"" D
. S QAOSLINE=$Y,Y=1,QAOSDUZ(0)=""
. F S QAOSDUZ(0)=$O(^TMP($J,QAOSLIST,QAOSDUZ(0))) Q:(QAOSDUZ(0)="")!(Y'>0) F QAOSDUZ=0:0 S QAOSDUZ=$O(^TMP($J,QAOSLIST,QAOSDUZ(0),QAOSDUZ)) Q:(QAOSDUZ'>0)!(Y'>0) D
.. W !?3,QAOSDUZ(0)
.. I $Y>(IOSL+QAOSLINE-3),(($O(^TMP($J,QAOSLIST,QAOSDUZ(0)))]"")!($O(^TMP($J,QAOSLIST,QAOSDUZ(0),QAOSDUZ)))) K DIR S DIR(0)="E",QAOSLINE=$Y D ^DIR K DIR
.. Q
. Q
E W !?3,"*** None ***"
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HQAOSCKEY 3931 printed Oct 16, 2024@18:21:51 Page 2
QAOSCKEY ;HISC/DAD-ALLOCATE/DEALLOCATE CLINICAL REVIEWER KEY ;11/9/92 10:38
+1 ;;3.0;Occurrence Screen;;09/14/1993
+2 SET QAOSCLIN(0)="QAOSCLIN"
SET QAOSCLIN=+$ORDER(^DIC(19.1,"B",QAOSCLIN(0),0))
+3 IF $PIECE($GET(^DIC(19.1,QAOSCLIN,0)),"^")'=QAOSCLIN(0)
Begin DoDot:1
+4 WRITE !!?5,"*** The Clinical Reviewer key was not found !! ***",*7
+5 QUIT
End DoDot:1
GOTO EXIT
+6 KILL ^TMP($JOB,"QAOSCLIN ADD"),^TMP($JOB,"QAOSCLIN DEL")
SET QAOCOUNT=0
+7 WRITE !!,"Checking for current holders of the Clinical Reviewer key"
+8 FOR QAOSDUZ=0:0
SET QAOSDUZ=$ORDER(^XUSEC(QAOSCLIN(0),QAOSDUZ))
if QAOSDUZ'>0
QUIT
Begin DoDot:1
+9 WRITE "."
SET X=$GET(^VA(200,QAOSDUZ,0))
+10 IF $PIECE(X,"^")]""
Begin DoDot:2
+11 SET ^TMP($JOB,"QAOSCLIN ADD",$PIECE(X,"^"),QAOSDUZ)=""
+12 SET QAOCOUNT=QAOCOUNT+1
+13 QUIT
End DoDot:2
+14 QUIT
End DoDot:1
+15 WRITE !,QAOCOUNT," found. "
if QAOCOUNT
WRITE "Type a '?' to list their names."
ASK ;
+1 READ !!,"Select CLINICAL REVIEWER: ",X:DTIME
if '$TEST
SET X="^"
+2 if $EXTRACT(X)="^"
GOTO EXIT
if X=""
GOTO OK
+3 SET QADELETE=($EXTRACT(X)="-")
SET X=$SELECT(QADELETE:$EXTRACT(X,2,999),1:X)
+4 IF $EXTRACT(X)="?"
DO HELP
GOTO ASK
+5 SET DIC="^VA(200,"
SET DIC(0)="EMNQZ"
DO ^DIC
KILL DIC
if Y'>0
GOTO ASK
+6 SET QAOSDUZ=+Y
SET QAOSDUZ(0)=$PIECE(Y(0),"^")
+7 IF QAOSDUZ(0)=""
WRITE " ??",*7
GOTO ASK
+8 IF QADELETE
Begin DoDot:1
+9 IF $DATA(^TMP($JOB,"QAOSCLIN ADD",QAOSDUZ(0),QAOSDUZ))[0
WRITE " ??",*7
QUIT
+10 SET ^TMP($JOB,"QAOSCLIN DEL",QAOSDUZ(0),QAOSDUZ)=""
+11 KILL ^TMP($JOB,"QAOSCLIN ADD",QAOSDUZ(0),QAOSDUZ)
+12 QUIT
End DoDot:1
+13 IF '$TEST
Begin DoDot:1
+14 SET ^TMP($JOB,"QAOSCLIN ADD",QAOSDUZ(0),QAOSDUZ)=""
+15 KILL ^TMP($JOB,"QAOSCLIN DEL",QAOSDUZ(0),QAOSDUZ)
+16 QUIT
End DoDot:1
+17 GOTO ASK
OK ;
+1 IF $ORDER(^TMP($JOB,"QAOSCLIN ADD",""))=""
IF $ORDER(^TMP($JOB,"QAOSCLIN DEL",""))=""
WRITE !!?3,"*** No Clinical Reviewers selected !! ***",*7
GOTO EXIT
ASKOK WRITE !!,"Allocate / Deallocate Clinical Reviewer key"
+1 SET %=2
DO YN^DICN
if (%=-1)!(%=2)
GOTO EXIT
+2 IF '%
WRITE !!?5,"Please answer Y(es) or N(o)"
GOTO ASKOK
DOIT ; Entry point from postinit: convert file #741.3
+1 WRITE !!,"Allocating key:"
+2 IF $ORDER(^TMP($JOB,"QAOSCLIN ADD",""))]""
Begin DoDot:1
+3 SET QAOSDUZ(0)=""
+4 FOR
SET QAOSDUZ(0)=$ORDER(^TMP($JOB,"QAOSCLIN ADD",QAOSDUZ(0)))
if QAOSDUZ(0)=""
QUIT
FOR QAOSDUZ=0:0
SET QAOSDUZ=$ORDER(^TMP($JOB,"QAOSCLIN ADD",QAOSDUZ(0),QAOSDUZ))
if QAOSDUZ'>0
QUIT
Begin DoDot:2
+5 KILL DD,DIC,DINUM,DO
+6 if $DATA(^VA(200,QAOSDUZ,51,0))[0
SET ^(0)="^200.051PA^^"
+7 SET DA(1)=QAOSDUZ
SET DIC="^VA(200,"_QAOSDUZ_",51,"
+8 SET DIC(0)="LM"
SET DLAYGO=200
SET (X,DINUM)=QAOSCLIN
+9 if $ORDER(^VA(200,QAOSDUZ,51,"B",QAOSCLIN,0))'>0
DO FILE^DICN
+10 WRITE !?3,QAOSDUZ(0)
+11 QUIT
End DoDot:2
+12 QUIT
End DoDot:1
+13 IF '$TEST
WRITE !?3,"*** None ***"
+14 WRITE !!,"Deallocating key:"
+15 IF $ORDER(^TMP($JOB,"QAOSCLIN DEL",""))]""
Begin DoDot:1
+16 SET QAOSDUZ(0)=""
+17 FOR
SET QAOSDUZ(0)=$ORDER(^TMP($JOB,"QAOSCLIN DEL",QAOSDUZ(0)))
if QAOSDUZ(0)=""
QUIT
FOR QAOSDUZ=0:0
SET QAOSDUZ=$ORDER(^TMP($JOB,"QAOSCLIN DEL",QAOSDUZ(0),QAOSDUZ))
if QAOSDUZ'>0
QUIT
Begin DoDot:2
+18 FOR QAOSD1=0:0
SET QAOSD1=$ORDER(^VA(200,QAOSDUZ,51,"B",QAOSCLIN,QAOSD1))
if QAOSD1'>0
QUIT
Begin DoDot:3
+19 SET DA(1)=QAOSDUZ
SET DA=QAOSD1
SET DIDEL=200
+20 SET DIK="^VA(200,"_QAOSDUZ_",51,"
+21 DO ^DIK
+22 QUIT
End DoDot:3
+23 WRITE !?3,QAOSDUZ(0)
+24 QUIT
End DoDot:2
+25 QUIT
End DoDot:1
+26 IF '$TEST
WRITE !?3,"*** None ***"
EXIT ;
+1 KILL %,D,DA,DD,DIC,DIDEL,DIK,DINUM,DIR,DLAYGO,DO,DZ,QADELETE
+2 KILL QAOCOUNT,QAOSCLIN,QAOSD1,QAOSDUZ,QAOSLINE,QAOSLIST,X,Y
+3 KILL ^TMP($JOB,"QAOSCLIN ADD"),^TMP($JOB,"QAOSCLIN DEL")
+4 QUIT
HELP ;
+1 WRITE !!," Enter the name of a Clinical Reviewer to add to the list."
+2 WRITE !," Enter a minus (-) Clinical Reviewer name to remove a name"
+3 WRITE " from the list."
+4 WRITE !!,"Clinical Reviewers selected for key ALLOCATION:"
DO HLP("ADD")
+5 WRITE !!,"Clinical Reviewers selected for key DEALLOCATION:"
DO HLP("DEL")
+6 if X'?1"??".E
QUIT
+7 KILL DIR
SET DIR(0)="E"
WRITE !
DO ^DIR
KILL DIR
if Y'>0
QUIT
+8 SET DIC="^VA(200,"
SET DIC(0)="AEMNQ"
SET D="B"
SET DZ="??"
DO DQ^DICQ
+9 QUIT
HLP(QAOSLIST) ; DISPLAY CLINICAL REVIEWERS
+1 NEW DIR,QAOSLINE,QAOSDUZ,X,Y
+2 SET QAOSLIST="QAOSCLIN "_QAOSLIST
+3 IF $ORDER(^TMP($JOB,QAOSLIST,""))]""
Begin DoDot:1
+4 SET QAOSLINE=$Y
SET Y=1
SET QAOSDUZ(0)=""
+5 FOR
SET QAOSDUZ(0)=$ORDER(^TMP($JOB,QAOSLIST,QAOSDUZ(0)))
if (QAOSDUZ(0)="")!(Y'>0)
QUIT
FOR QAOSDUZ=0:0
SET QAOSDUZ=$ORDER(^TMP($JOB,QAOSLIST,QAOSDUZ(0),QAOSDUZ))
if (QAOSDUZ'>0)!(Y'>0)
QUIT
Begin DoDot:2
+6 WRITE !?3,QAOSDUZ(0)
+7 IF $Y>(IOSL+QAOSLINE-3)
IF (($ORDER(^TMP($JOB,QAOSLIST,QAOSDUZ(0)))]"")!($ORDER(^TMP($JOB,QAOSLIST,QAOSDUZ(0),QAOSDUZ))))
KILL DIR
SET DIR(0)="E"
SET QAOSLINE=$Y
DO ^DIR
KILL DIR
+8 QUIT
End DoDot:2
+9 QUIT
End DoDot:1
+10 IF '$TEST
WRITE !?3,"*** None ***"
+11 QUIT