SRCUSS1 ;TAMPA/CFB - SCREEN SERVER ; [ 03/11/02 13:40 PM ]
;;3.0; Surgery ;**14,31,48,66,108**;24 Jun 93
B G BQ:Q(13)=2 Q:$D(Q("X")) S DR="" W:'Q("ED") !! I Q(1)="Q" S Q(1)="" Q
I '$D(Q(12,12)),Q(1,Q)=3,Q(7)["(MULTIPLE)" S Q7=1 G BP2
I Q=1,$D(Q3("DIVE")) S Q7=$P(Q3("DIVE"),"P",2) K Q3("DIVE") G BP10
BP1 S DX=1,DY=22 X:Q("ED") Q("XY") I $D(Q3("VIEW")) S Q3("VIEW")=""
K QPQPQ W "Enter Screen Server Function: " R Q7:DTIME S:'$T Q7="^^" I Q7?.N S:$L(Q7)>2 Q7="?" S:Q7>15 Q7="?"
S:Q7="a" Q7="A" S:$E(Q7)="p" Q7="P"_$E(Q7,2,99)
S:$L(Q7)&("^-+123456789AP"'[$E(Q7)) Q7="?" S:$P(Q7,":",2)>15 Q7="?" S:Q7?.E1C.E Q7="?"
I Q7[";" F Q8=2:1 S QQ=$P(Q7,";",Q8) S:"123456789"'[$E(QQ) Q7="?" Q:'QQ
I Q7["?" D QUES G BP2
K SRCUSS("OUT")
I Q7'?.N1";".E,(Q7'?.N),(Q7'?.N1":".E),(Q7'="A"),("^^"'[Q7),(Q7'?1"+".N),(Q7'?1"-".N),(Q7'?1"P"1N.N) D QUES G BP2
W Q("LO")
BP10 I Q7="A" S Q7="1:"_(Q(1,Q)-1)
S:$S(Q7="^^":1,$E(Q7)'="L":0,+$E(Q7,2,99)<Q:1,1:0) Q(12,4)=$E(Q7,2,99) S Q(13)=1 G BQ:((Q7=""&('$D(Q0(Q,Q0(0,Q)+1))))!(Q7[U))
I $E(Q7)="P",$L(Q7)>1,('+$E(Q7,2,99)!('$D(Q0(Q,+$E(Q7,2,99))))) D QUES G BP2
I $E(Q7)="P",$L(Q7)>1,+$E(Q7,2,99) S Q0(0,Q)=$E(Q7,2,99),Q(1,Q)=1 X Q(0) G A^SRCUSS
S:Q7="" Q7="+1" I $E(Q7,1)="+" S Q0(0,Q)=Q0(0,Q)+Q7,Q(1,Q)=1 G BQ:'$D(Q0(Q,Q0(0,Q))) X Q(0) G A^SRCUSS
K Q(12,12) I $E(Q7,1)="-" S:Q7="-" Q7="-1" S Q0(0,Q)=$S(Q0(0,Q)+Q7<2:1,1:Q0(0,Q)+Q7),Q(1,Q)=1 X Q(0) G A^SRCUSS
BP2 S (Q2(Q),DR)="" F Q8=1:1 S Q6=$P(Q7,";",Q8) D:Q6[":" BCOM Q:Q6=""!(Q6'=+Q6) I $P(Q0(Q,Q0(0,Q)),";",Q6+1)'="" D BM
S:$D(Q("S",Q,Q0(0,Q),Q(1,Q))) DIC("S")=Q("S",Q,Q0(0,Q),Q(1,Q)) D CNG K DIC("S") S @("Q(7)=$D("_Q(8,Q)_Q(9,Q)_",0))") I 'Q(7) G BQ
I Q2(Q)="",Q("ED") X ^TMP("SRCUSS",$J,^TMP("SRCUSS",$J,0),1),^(2) W !,Q("EPE") G B
S QPQPQ=1,Q(1,Q)=1 F EMILY=1:1 S Q2(Q,1)=+$P(Q2(Q),U,1),Q2(Q)=$P(Q2(Q),U,2,99) Q:Q2(Q,1)<1 S Q(3)=Q(2,Q,Q2(Q,1)) D M^SRCUSS0 S Q(1,Q)=1
X:$S('$D(Q(12,4)):1,+Q(12,4)=Q:1,1:0) Q(0) G A^SRCUSS
BCOM S Q(12,2)=+$P(Q6,":",2),Q6=+Q6,Q(12,1)=0 Q:Q(12,2)'>Q6 F Q(12,0)=Q6:1:Q(12,2) S Q7=$S(Q(12,1)+Q8>1:$P(Q7,";",1,Q8+Q(12,1)-1)_";",1:"")_Q(12,0)_";"_$P(Q7,";",Q(12,1)+Q8+$S(Q(12,1)=0:1,1:0),99) S Q(12,1)=Q(12,1)+1
Q
BM I $D(Q(2,Q,Q6)),$P(@("^DD("_+$P(Q(2,Q,Q6),U,2)_",.01,0)"),U,2)'["W" S Q2(Q)=Q2(Q)_Q6_U Q
I $D(Q(2,Q,Q6)),$P(@("^DD("_+$P(Q(2,Q,Q6),U,2)_",.01,0)"),U,2)["W",$D(Q3("VIEW")) S Q3("VIEW")=Q3("VIEW")_$P($P(Q(2,Q,Q6),U,4),";",1)_";"
S DR=DR_$P(Q0(Q,Q0(0,Q)),";",Q6+1)_";Q;" Q
BQ W:Q=1 @IOF W:$D(Q("NOR")) Q("NOR") K:$D(Q0(0,Q)) Q("S",Q,Q0(0,Q)) K:Q=1 Q,Q0,Q1,DE,DP,DQ,Q2,Q3,Q4,Q5,Q6,Q7,Q8,QQ,QQQ,DX,DY,SRCUSS K ^TMP("SRCUSS",$J) Q ;WITH NEW K:Q=1 Q
CNG W Q("HI") S (DIE,DIC)=Q(8,Q),DA=Q(9,Q) I $D(Q3("VIEW")) Q:Q3("VIEW")="" S DR=Q3("VIEW") D EN^DIQ R !!,"Press <RET> to continue ",Q8:DTIME Q
I $D(Q("S",Q,"IX")) D IX Q
I 'Q("ED") D SET,^DIE S SRCUSS("OUT")=1 D RET Q
G ^SRCUSS2
ID Q:'$D(^DD(+Q(4))) Q:('(+Q(4)\1=80!(+Q(4)=45.3)))&'($P(^DD(+Q(4),.01,0),U,2)["N"&($D(^DD(+Q(4),0,"ID")))) S Q(11)=$O(@("^DD("_$S(+Q(4)'="":+Q(4),1:+Q(0,Q))_",0,""ID"","_Q(11)_")")) Q:Q(11)="" I ^(Q(11))["^(""0"")" S Q(11)=^(Q(11)) Q
G ID
IX X Q("S",Q,"IX") Q:Q6<1 S DR=".01///"_$P(Q6,U,2) D ^DIE,SET Q
SET S QQ=$S(Q>1:Q-1,1:1) F Q8=1:1:QQ S QQQ=$S(Q>1:Q-Q8,1:1),DA(Q8)=Q(9,QQQ)
Q
QUES ;
W:'$D(Q3("VIEW")) !,"To change entries, enter your choices (numbers) separated by a ';', or use",!,"a ':' for ranges. i.e. 2;3 or 1:3. Enter 'A' to enter/edit all.",!
W !,"If there is more than one page to this screen, entering '+' or '-' followed",!,"by the number of pages or entering 'P' followed by the page number will",!,"take you to the desired page."
W !!,"Enter '^' to quit, or '^^' to return to the menu options."
R !!,"Press <RET> to continue ",Q("QUESTION"):DTIME I Q("QUESTION")["?" W !!,"Forget it." H 2
S Q7="?" Q
RET ; pause for display
I ($D(DR(1,130))&($E(DR,$L(DR)-6,$L(DR)-4)="27T"))!($D(DR(1,130.16))&($E(DR,$L(DR)-5,$L(DR)-4)="3T")) W Q("NOR"),!!,"Press <RET> to continue " R Q8:DTIME
Q
SRCUSS1 ;TAMPA/CFB - SCREEN SERVER ; [ 03/11/02 13:40 PM ]
+1 ;;3.0; Surgery ;**14,31,48,66,108**;24 Jun 93
B IF Q(13)=2
GOTO BQ
IF $DATA(Q("X"))
QUIT
SET DR=""
IF 'Q("ED")
WRITE !!
IF Q(1)="Q"
SET Q(1)=""
QUIT
+1 IF '$DATA(Q(12,12))
IF Q(1,Q)=3
IF Q(7)["(MULTIPLE)"
SET Q7=1
GOTO BP2
+2 IF Q=1
IF $DATA(Q3("DIVE"))
SET Q7=$PIECE(Q3("DIVE"),"P",2)
KILL Q3("DIVE")
GOTO BP10
BP1 SET DX=1
SET DY=22
IF Q("ED")
XECUTE Q("XY")
IF $DATA(Q3("VIEW"))
SET Q3("VIEW")=""
+1 KILL QPQPQ
WRITE "Enter Screen Server Function: "
READ Q7:DTIME
IF '$TEST
SET Q7="^^"
IF Q7?.N
IF $LENGTH(Q7)>2
SET Q7="?"
IF Q7>15
SET Q7="?"
+2 IF Q7="a"
SET Q7="A"
IF $EXTRACT(Q7)="p"
SET Q7="P"_$EXTRACT(Q7,2,99)
+3 IF $LENGTH(Q7)&("^-+123456789AP"'[$EXTRACT(Q7))
SET Q7="?"
IF $PIECE(Q7,"
SET Q7="?"
IF Q7?.E1C.E
SET Q7="?"
+4 IF Q7[";"
FOR Q8=2:1
SET QQ=$PIECE(Q7,";",Q8)
IF "123456789"'[$EXTRACT(QQ)
SET Q7="?"
IF 'QQ
QUIT
+5 IF Q7["?"
DO QUES
GOTO BP2
+6 KILL SRCUSS("OUT")
+7 IF Q7'?.N1";".E
IF (Q7'?.N)
IF (Q7'?.N1":".E)
IF (Q7'="A")
IF ("^^"'[Q7)
IF (Q7'?1"+".N)
IF (Q7'?1"-".N)
IF (Q7'?1"P"1N.N)
DO QUES
GOTO BP2
+8 WRITE Q("LO")
BP10 IF Q7="A"
SET Q7="1:"_(Q(1,Q)-1)
+1 IF $SELECT(Q7="^^"
SET Q(12,4)=$EXTRACT(Q7,2,99)
SET Q(13)=1
IF ((Q7=""&('$DATA(Q0(Q,Q0(0,Q)+1))))!(Q7[U))
GOTO BQ
+2 IF $EXTRACT(Q7)="P"
IF $LENGTH(Q7)>1
IF ('+$EXTRACT(Q7,2,99)!('$DATA(Q0(Q,+$EXTRACT(Q7,2,99)))))
DO QUES
GOTO BP2
+3 IF $EXTRACT(Q7)="P"
IF $LENGTH(Q7)>1
IF +$EXTRACT(Q7,2,99)
SET Q0(0,Q)=$EXTRACT(Q7,2,99)
SET Q(1,Q)=1
XECUTE Q(0)
GOTO A^SRCUSS
+4 IF Q7=""
SET Q7="+1"
IF $EXTRACT(Q7,1)="+"
SET Q0(0,Q)=Q0(0,Q)+Q7
SET Q(1,Q)=1
IF '$DATA(Q0(Q,Q0(0,Q)))
GOTO BQ
XECUTE Q(0)
GOTO A^SRCUSS
+5 KILL Q(12,12)
IF $EXTRACT(Q7,1)="-"
IF Q7="-"
SET Q7="-1"
SET Q0(0,Q)=$SELECT(Q0(0,Q)+Q7<2:1,1:Q0(0,Q)+Q7)
SET Q(1,Q)=1
XECUTE Q(0)
GOTO A^SRCUSS
BP2 SET (Q2(Q),DR)=""
FOR Q8=1:1
SET Q6=$PIECE(Q7,";",Q8)
IF Q6["
DO BCOM
IF Q6=""!(Q6'=+Q6)
QUIT
IF $PIECE(Q0(Q,Q0(0,Q)),";",Q6+1)'=""
DO BM
+1 IF $DATA(Q("S",Q,Q0(0,Q),Q(1,Q)))
SET DIC("S")=Q("S",Q,Q0(0,Q),Q(1,Q))
DO CNG
KILL DIC("S")
SET @("Q(7)=$D("_Q(8,Q)_Q(9,Q)_",0))")
IF 'Q(7)
GOTO BQ
+2 IF Q2(Q)=""
IF Q("ED")
XECUTE ^TMP("SRCUSS",$JOB,^TMP("SRCUSS",$JOB,0),1)
XECUTE ^(2)
WRITE !,Q("EPE")
GOTO B
+3 SET QPQPQ=1
SET Q(1,Q)=1
FOR EMILY=1:1
SET Q2(Q,1)=+$PIECE(Q2(Q),U,1)
SET Q2(Q)=$PIECE(Q2(Q),U,2,99)
IF Q2(Q,1)<1
QUIT
SET Q(3)=Q(2,Q,Q2(Q,1))
DO M^SRCUSS0
SET Q(1,Q)=1
+4 IF $SELECT('$DATA(Q(12,4))
XECUTE Q(0)
GOTO A^SRCUSS
BCOM SET Q(12,2)=+$PIECE(Q6,":",2)
SET Q6=+Q6
SET Q(12,1)=0
IF Q(12,2)'>Q6
QUIT
FOR Q(12,0)=Q6:1:Q(12,2)
SET Q7=$SELECT(Q(12,1)+Q8>1:$PIECE(Q7,";",1,Q8+Q(12,1)-1)_";",1:"")_Q(12,0)_";"_$PIECE(Q7,";",Q(12,1)+Q8+$SELECT(Q(12,1)=0:1,1:0),99)
SET Q(12,1)=Q(12,1)+1
+1 QUIT
BM IF $DATA(Q(2,Q,Q6))
IF $PIECE(@("^DD("_+$PIECE(Q(2,Q,Q6),U,2)_",.01,0)"),U,2)'["W"
SET Q2(Q)=Q2(Q)_Q6_U
QUIT
+1 IF $DATA(Q(2,Q,Q6))
IF $PIECE(@("^DD("_+$PIECE(Q(2,Q,Q6),U,2)_",.01,0)"),U,2)["W"
IF $DATA(Q3("VIEW"))
SET Q3("VIEW")=Q3("VIEW")_$PIECE($PIECE(Q(2,Q,Q6),U,4),";",1)_";"
+2 SET DR=DR_$PIECE(Q0(Q,Q0(0,Q)),";",Q6+1)_";Q;"
QUIT
BQ ;WITH NEW K:Q=1 Q
IF Q=1
WRITE @IOF
IF $DATA(Q("NOR"))
WRITE Q("NOR")
IF $DATA(Q0(0,Q))
KILL Q("S",Q,Q0(0,Q))
IF Q=1
KILL Q,Q0,Q1,DE,DP,DQ,Q2,Q3,Q4,Q5,Q6,Q7,Q8,QQ,QQQ,DX,DY,SRCUSS
KILL ^TMP("SRCUSS",$JOB)
QUIT
CNG WRITE Q("HI")
SET (DIE,DIC)=Q(8,Q)
SET DA=Q(9,Q)
IF $DATA(Q3("VIEW"))
IF Q3("VIEW")=""
QUIT
SET DR=Q3("VIEW")
DO EN^DIQ
READ !!,"Press <RET> to continue ",Q8:DTIME
QUIT
+1 IF $DATA(Q("S",Q,"IX"))
DO IX
QUIT
+2 IF 'Q("ED")
DO SET
DO ^DIE
SET SRCUSS("OUT")=1
DO RET
QUIT
+3 GOTO ^SRCUSS2
ID IF '$DATA(^DD(+Q(4)))
QUIT
IF ('(+Q(4)\1=80!(+Q(4)=45.3)))&'($PIECE(^DD(+Q(4),.01,0),U,2)["N"&($DATA(^DD(+Q(4),0,"ID"))))
QUIT
SET Q(11)=$ORDER(@("^DD("_$SELECT(+Q(4)'="":+Q(4),1:+Q(0,Q))_",0,""ID"","_Q(11)_")"))
IF Q(11)=""
QUIT
IF ^(Q(11))["^(""0"")"
SET Q(11)=^(Q(11))
QUIT
+1 GOTO ID
IX XECUTE Q("S",Q,"IX")
IF Q6<1
QUIT
SET DR=".01///"_$PIECE(Q6,U,2)
DO ^DIE
DO SET
QUIT
SET SET QQ=$SELECT(Q>1:Q-1,1:1)
FOR Q8=1:1:QQ
SET QQQ=$SELECT(Q>1:Q-Q8,1:1)
SET DA(Q8)=Q(9,QQQ)
+1 QUIT
QUES ;
+1 IF '$DATA(Q3("VIEW"))
WRITE !,"To change entries, enter your choices (numbers) separated by a ';', or use",!,"a ':' for ranges. i.e. 2;3 or 1:3. Enter 'A' to enter/edit all.",!
+2 WRITE !,"If there is more than one page to this screen, entering '+' or '-' followed",!,"by the number of pages or entering 'P' followed by the page number will",!,"take you to the desired page."
+3 WRITE !!,"Enter '^' to quit, or '^^' to return to the menu options."
+4 READ !!,"Press <RET> to continue ",Q("QUESTION"):DTIME
IF Q("QUESTION")["?"
WRITE !!,"Forget it."
HANG 2
+5 SET Q7="?"
QUIT
RET ; pause for display
+1 IF ($DATA(DR(1,130))&($EXTRACT(DR,$LENGTH(DR)-6,$LENGTH(DR)-4)="27T"))!($DATA(DR(1,130.16))&($EXTRACT(DR,$LENGTH(DR)-5,$LENGTH(DR)-4)="3T"))
WRITE Q("NOR"),!!,"Press <RET> to continue "
READ Q8:DTIME
+2 QUIT