- 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 Feb 18, 2025@23:39:06 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