MCARDNJ1 ;WISC/TJK,JA-INSERT AND LOOK UP ;7/22/96 11:10
;;2.3;Medicine;;09/13/1996
G T1:'$D(DJDN) S DJXX=X,D="" G:DJ4["P" P G:X["^" ER S (DJDIC,DIE)=DIC,DA=DJDN S DR=DJ3_"///"_$S(X["/"!(X[";"):"^S X=DJXX",1:X) X DJCP W ! D ^DIE S DIC=DJDIC D KILL I $D(Y) S DJY=Y G Q1
I DJ4["D" S (DJXX,Y)=X X ^DD("DD") S X=Y
I DJ4["S" K:DJ4'["*" DIC("S") S DJX=$P(DJ0,U,3),DJXX=X F DJK=1:1 I X=$P($P(DJX,";",DJK),":",1) S X=$P($P(DJX,";",DJK),":",2) Q
I '$D(DJY) S V(V)=$E(X,1,+DJJ(V))
I D O S @$P(DJJ(V),U,2) X XY W DJHIN X XY W V(V),DJLIN S:DJ4["D"!(DJ4["S") X=DJXX X DJCP S YMLH=$O(^MCAR(697.3,DJN,1,"A",V,0)) S:YMLH="" YMLH=-1 X:$D(^MCAR(697.3,DJN,1,YMLH,1)) ^(1) G NXT^MCARDNJ
P I DJ4["P" D P^MCARDNQ S @$P(DJJ(V),U,2) X XY G NXT^MCARDNJ:$D(Y)=0,TK^MCARDNJ
S V(V)=$S(X="@":"",1:X) D O X DJCP S YMLH=$O(^MCAR(697.3,DJN,1,"A",V,0)) S:YMLH="" YMLH=-1 I $D(^MCAR(697.3,DJN,1,YMLH,1)) X DJCP S:DJ4["D" X=DJXX X ^(1) S @$P(DJJ(V),U,2) X XY
G:DJAT=.01&(V(V)="") Q^MCARDNJ G T4^MCARDNJ
Q1 S:'$D(X) X=DJXX D ^MCARDNQ G TK^MCARDNJ
T1 S YMLH=$O(^MCAR(697.3,DJN,1,"A",V,0)) S:YMLH="" YMLH=-1 I $D(^MCAR(697.3,DJN,1,YMLH,1)) X DJCP X ^(1) S @$P(DJJ(V),U,2) X XY
G:DJAT=.01&($D(DJDN)=0) K1
G:DJAT=.01&(DJP) K1
I V(V)'="",X="" G NXT^MCARDNJ
I V(V)'="" S @$P(DJJ(V),U,2) X XY W DJHIN X XY W V(V),DJLIN G NXT^MCARDNJ
I V(V)="" D G NXT^MCARDNJ
.S @$P(DJJ(V),U,2) X XY W DJLIN S $P(DJDB,".",DJJ(V))="."
.;S $X=DX
.W DJDB K DJDB
G LH^MCARDNJ
K1 G NXT^MCARDNJ:X=""&($D(DJDN)),LST^MCARDNJ:X=""&('$D(DJDN)) I $D(DJST),DJST=1 K ^TMP($J,"DJST"),DJST
D DCS^MCARDNQ
S:X'=" " DIC(0)="LMEQZ" S:X=" " DIC(0)="Z" X DJCP W X S:$D(DJDICS) DIC("S")=DJDICS D ^MCARDC,N^MCARDNJ2 K DIC("S"),DIC("V") S DIC(0)="LMEQZ"
I $Y>22 R !,"Press <RETURN> to Continue",X:DTIME S DJSV=V,DJFF=0,MCASS=1 D N^MCARDPL S V=DJSV
I Y<0 S @$P(DJJ(V),U,2),X="" X XY G TK^MCARDNJ
S (X,V(V))=$P(Y(0),U,1),(DA,W(V))=+Y,DJDNM=V(V) S:'$D(DJST) DJST=1,D0=DA I DJST=1 G LOCK
C S:'DJP DJDN=+Y K Y,DJLK D ^MCARD1 X XY G NXT^MCARDNJ
ER K X W *7 G Q1
WP ;PRINT WORD PROCESSOR FIELD
S DJDIC=DIC_DA_","_+$P(DJ0,"^",4)_"," S DJXX=X Q:'$D(@(DJDIC_"0)")) S DJZ1=0,DJX=0,DIWL=1,DIWR=79,DIWF="" K ^UTILITY($J,"W")
F DJK=1:1 S DJZ1=$O(@(DJDIC_DJZ1_")")) Q:DJZ1'?1N.N S X=^(DJZ1,0) D ^DIWP X DJCP
D ^DIWW
S DJZ1=0 F DJK=1:1 S DJZ1=$O(^UTILITY($J,"W",DIWL,DJZ1)) Q:DJZ1="" D:$Y>21 CONT Q:DJX[U W !,^(DJZ1,0)
D CONT K DJZ1,DJK,^UTILITY($J,"W",DIWL),DIWL,DIWR,DIWF S X=DJXX Q:DJX'[U
Q
CONT W !,"Press <RETURN> to Continue, '^' to Quit: " R DJX:DTIME X DJCP W ! Q
R X DJCL W "Press <RETURN> to Continue" R DJX:DTIME Q
EN ;COMPUTE AND DISPLAY
S @$P(DJJ(DJVV),U,2) X XY S $P(DJDB," ",+DJJ(DJVV))=" " W DJDB X XY W DJHIN X XY S DJDB(1)=$P($P(DJJ(DJVV),U,4),"J",2),DJDB(2)=$P(DJDB(1),",",2),DJDB(1)=+DJDB(1)
I V(DJVV)'="" W V(DJVV) ;W $J(V(DJVV),DJDB(1),+DJDB(2)),DJLIN K DJDB
W DJLIN K DJDB
Q
LOCK ;LOCK GLOBAL THAN IS BEING ACCESSED BY ANOTHER USER
L @(DIC_+Y_"):1") S DJLK=$T G:DJLK'=0 C I DJLK=0 X XY K DJLK X DJCL W "THIS ENTRY IS BEING EDITED BY ANOTHER USER. TRY LATER.",*7 G TK^MCARDNJ
KILL K DB,DC,DG,DH,DE,DI,DK,DL,DM,DP,DW,DR Q
EN2 X DJCP W !!,"THIS IS NOT THE FIRST SCREEN",*7 R !,"Press <RETURN> to Continue",X:DTIME S X="^" Q
O ;EX OUTPUT TRANSFROM
I $D(^DD(DJDD,DJAT,2)) S Y=X X ^(2) S (V(V),X)=Y
Q
EN3 ;ERROR ON DIE
G:'$D(Y) E X DJCP W !,"You have a bad default variable, please check with your",!,"Data Base administrator",*7
S @$P(DJJ(V),U,2),$P(DJDB,".",DJJ(V))="." X XY W DJHIN X XY
;S $X=DX
W DJDB,DJLIN K DJDB X XY S V(V)="" Q
E S DJDB="" S:(DJJ(V)-$L(V(V))) $P(DJDB," ",DJJ(V)-$L(V(V)))=" " X XY W DJHIN X XY W V(V),DJDB,DJLIN K DJDB Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HMCARDNJ1 3664 printed Oct 16, 2024@18:13:16 Page 2
MCARDNJ1 ;WISC/TJK,JA-INSERT AND LOOK UP ;7/22/96 11:10
+1 ;;2.3;Medicine;;09/13/1996
+2 if '$DATA(DJDN)
GOTO T1
SET DJXX=X
SET D=""
if DJ4["P"
GOTO P
if X["^"
GOTO ER
SET (DJDIC,DIE)=DIC
SET DA=DJDN
SET DR=DJ3_"///"_$SELECT(X["/"!(X[";"):"^S X=DJXX",1:X)
XECUTE DJCP
WRITE !
DO ^DIE
SET DIC=DJDIC
DO KILL
IF $DATA(Y)
SET DJY=Y
GOTO Q1
+3 IF DJ4["D"
SET (DJXX,Y)=X
XECUTE ^DD("DD")
SET X=Y
+4 IF DJ4["S"
if DJ4'["*"
KILL DIC("S")
SET DJX=$PIECE(DJ0,U,3)
SET DJXX=X
FOR DJK=1:1
IF X=$PIECE($PIECE(DJX,";",DJK),":",1)
SET X=$PIECE($PIECE(DJX,";",DJK),":",2)
QUIT
+5 IF '$DATA(DJY)
SET V(V)=$EXTRACT(X,1,+DJJ(V))
+6 IF $TEST
DO O
SET @$PIECE(DJJ(V),U,2)
XECUTE XY
WRITE DJHIN
XECUTE XY
WRITE V(V),DJLIN
if DJ4["D"!(DJ4["S")
SET X=DJXX
XECUTE DJCP
SET YMLH=$ORDER(^MCAR(697.3,DJN,1,"A",V,0))
if YMLH=""
SET YMLH=-1
if $DATA(^MCAR(697.3,DJN,1,YMLH,1))
XECUTE ^(1)
GOTO NXT^MCARDNJ
P IF DJ4["P"
DO P^MCARDNQ
SET @$PIECE(DJJ(V),U,2)
XECUTE XY
if $DATA(Y)=0
GOTO NXT^MCARDNJ
GOTO TK^MCARDNJ
+1 SET V(V)=$SELECT(X="@":"",1:X)
DO O
XECUTE DJCP
SET YMLH=$ORDER(^MCAR(697.3,DJN,1,"A",V,0))
if YMLH=""
SET YMLH=-1
IF $DATA(^MCAR(697.3,DJN,1,YMLH,1))
XECUTE DJCP
if DJ4["D"
SET X=DJXX
XECUTE ^(1)
SET @$PIECE(DJJ(V),U,2)
XECUTE XY
+2 if DJAT=.01&(V(V)="")
GOTO Q^MCARDNJ
GOTO T4^MCARDNJ
Q1 if '$DATA(X)
SET X=DJXX
DO ^MCARDNQ
GOTO TK^MCARDNJ
T1 SET YMLH=$ORDER(^MCAR(697.3,DJN,1,"A",V,0))
if YMLH=""
SET YMLH=-1
IF $DATA(^MCAR(697.3,DJN,1,YMLH,1))
XECUTE DJCP
XECUTE ^(1)
SET @$PIECE(DJJ(V),U,2)
XECUTE XY
+1 if DJAT=.01&($DATA(DJDN)=0)
GOTO K1
+2 if DJAT=.01&(DJP)
GOTO K1
+3 IF V(V)'=""
IF X=""
GOTO NXT^MCARDNJ
+4 IF V(V)'=""
SET @$PIECE(DJJ(V),U,2)
XECUTE XY
WRITE DJHIN
XECUTE XY
WRITE V(V),DJLIN
GOTO NXT^MCARDNJ
+5 IF V(V)=""
Begin DoDot:1
+6 SET @$PIECE(DJJ(V),U,2)
XECUTE XY
WRITE DJLIN
SET $PIECE(DJDB,".",DJJ(V))="."
+7 ;S $X=DX
+8 WRITE DJDB
KILL DJDB
End DoDot:1
GOTO NXT^MCARDNJ
+9 GOTO LH^MCARDNJ
K1 if X=""&($DATA(DJDN))
GOTO NXT^MCARDNJ
if X=""&('$DATA(DJDN))
GOTO LST^MCARDNJ
IF $DATA(DJST)
IF DJST=1
KILL ^TMP($JOB,"DJST"),DJST
+1 DO DCS^MCARDNQ
+2 if X'=" "
SET DIC(0)="LMEQZ"
if X=" "
SET DIC(0)="Z"
XECUTE DJCP
WRITE X
if $DATA(DJDICS)
SET DIC("S")=DJDICS
DO ^MCARDC
DO N^MCARDNJ2
KILL DIC("S"),DIC("V")
SET DIC(0)="LMEQZ"
+3 IF $Y>22
READ !,"Press <RETURN> to Continue",X:DTIME
SET DJSV=V
SET DJFF=0
SET MCASS=1
DO N^MCARDPL
SET V=DJSV
+4 IF Y<0
SET @$PIECE(DJJ(V),U,2)
SET X=""
XECUTE XY
GOTO TK^MCARDNJ
+5 SET (X,V(V))=$PIECE(Y(0),U,1)
SET (DA,W(V))=+Y
SET DJDNM=V(V)
if '$DATA(DJST)
SET DJST=1
SET D0=DA
IF DJST=1
GOTO LOCK
C if 'DJP
SET DJDN=+Y
KILL Y,DJLK
DO ^MCARD1
XECUTE XY
GOTO NXT^MCARDNJ
ER KILL X
WRITE *7
GOTO Q1
WP ;PRINT WORD PROCESSOR FIELD
+1 SET DJDIC=DIC_DA_","_+$PIECE(DJ0,"^",4)_","
SET DJXX=X
if '$DATA(@(DJDIC_"0)"))
QUIT
SET DJZ1=0
SET DJX=0
SET DIWL=1
SET DIWR=79
SET DIWF=""
KILL ^UTILITY($JOB,"W")
+2 FOR DJK=1:1
SET DJZ1=$ORDER(@(DJDIC_DJZ1_")"))
if DJZ1'?1N.N
QUIT
SET X=^(DJZ1,0)
DO ^DIWP
XECUTE DJCP
+3 DO ^DIWW
+4 SET DJZ1=0
FOR DJK=1:1
SET DJZ1=$ORDER(^UTILITY($JOB,"W",DIWL,DJZ1))
if DJZ1=""
QUIT
if $Y>21
DO CONT
if DJX[U
QUIT
WRITE !,^(DJZ1,0)
+5 DO CONT
KILL DJZ1,DJK,^UTILITY($JOB,"W",DIWL),DIWL,DIWR,DIWF
SET X=DJXX
if DJX'[U
QUIT
+6 QUIT
CONT WRITE !,"Press <RETURN> to Continue, '^' to Quit: "
READ DJX:DTIME
XECUTE DJCP
WRITE !
QUIT
R XECUTE DJCL
WRITE "Press <RETURN> to Continue"
READ DJX:DTIME
QUIT
EN ;COMPUTE AND DISPLAY
+1 SET @$PIECE(DJJ(DJVV),U,2)
XECUTE XY
SET $PIECE(DJDB," ",+DJJ(DJVV))=" "
WRITE DJDB
XECUTE XY
WRITE DJHIN
XECUTE XY
SET DJDB(1)=$PIECE($PIECE(DJJ(DJVV),U,4),"J",2)
SET DJDB(2)=$PIECE(DJDB(1),",",2)
SET DJDB(1)=+DJDB(1)
+2 ;W $J(V(DJVV),DJDB(1),+DJDB(2)),DJLIN K DJDB
IF V(DJVV)'=""
WRITE V(DJVV)
+3 WRITE DJLIN
KILL DJDB
+4 QUIT
LOCK ;LOCK GLOBAL THAN IS BEING ACCESSED BY ANOTHER USER
+1 LOCK @(DIC_+Y_"):1")
SET DJLK=$TEST
if DJLK'=0
GOTO C
IF DJLK=0
XECUTE XY
KILL DJLK
XECUTE DJCL
WRITE "THIS ENTRY IS BEING EDITED BY ANOTHER USER. TRY LATER.",*7
GOTO TK^MCARDNJ
KILL KILL DB,DC,DG,DH,DE,DI,DK,DL,DM,DP,DW,DR
QUIT
EN2 XECUTE DJCP
WRITE !!,"THIS IS NOT THE FIRST SCREEN",*7
READ !,"Press <RETURN> to Continue",X:DTIME
SET X="^"
QUIT
O ;EX OUTPUT TRANSFROM
+1 IF $DATA(^DD(DJDD,DJAT,2))
SET Y=X
XECUTE ^(2)
SET (V(V),X)=Y
+2 QUIT
EN3 ;ERROR ON DIE
+1 if '$DATA(Y)
GOTO E
XECUTE DJCP
WRITE !,"You have a bad default variable, please check with your",!,"Data Base administrator",*7
+2 SET @$PIECE(DJJ(V),U,2)
SET $PIECE(DJDB,".",DJJ(V))="."
XECUTE XY
WRITE DJHIN
XECUTE XY
+3 ;S $X=DX
+4 WRITE DJDB,DJLIN
KILL DJDB
XECUTE XY
SET V(V)=""
QUIT
E SET DJDB=""
if (DJJ(V)-$LENGTH(V(V)))
SET $PIECE(DJDB," ",DJJ(V)-$LENGTH(V(V)))=" "
XECUTE XY
WRITE DJHIN
XECUTE XY
WRITE V(V),DJDB,DJLIN
KILL DJDB
QUIT