GMRGED6 ;CISC/RM-PATIENT DATA EDIT (cont.) ;4/25/89
;;3.0;Text Generator;;Jan 24, 1996
INTERNAL ; EDIT INTERNAL TEXT FOR THE SELECTED ENTRY.
S (GMRGTX("OL"),GMRGTX)=$P(GMRGPRC(0),"^",3),GMRGTX("ACTION")=$P($P(GMRGPRC,"^",2),"/",2,999)
I GMRGTX("ACTION")="" D INTP
I GMRGTX("ACTION")'="" F X=1:1:$L($P(GMRGPRC(0),"^"),"]")-1 S $P(GMRGTX,"|",X+1)=$P(GMRGTX("ACTION"),"/",X,$S(X=($L($P(GMRGPRC(0),"^"),"]")-1):999,1:X))
I 'GMRGOUT,GMRGTX("OL")'=GMRGTX S X=GMRGTX("OL"),DA=$P(GMRGPRC(0),"^",2),DA(1)=GMRGPDA,GMRGY=2,GMRGAT=0,GMRGZ="" D EN1^GMRGUTL K GMRGAT,GMRGZ S $P(^GMR(124.3,DA(1),1,DA,0),"^",2)=GMRGTX,$P(GMRGPRC(0),"^",3)=GMRGTX
I 'GMRGOUT,GMRGTX("OL")'=GMRGTX S ^TMP($J,"GMRGLVL",$P(GMRGLVL,"^"),GMRGTLVL,GMRGSLVL,0)=GMRGPRC(0)
Q
INTP ;
W !!,"INTERNAL TEXT for '" S GMRGXPRT=$P(GMRGPRC(0),"^"),GMRGXPRT(0)=$P(GMRGPRC(0),"^",3),GMRGXPRT(1)="19^"_IOM_"^1^0" D EN1^GMRGRUT2 W "'"
F GMRG10=1:1:$L($P(GMRGPRC(0),"^"),"]")-1 D INTXED Q:GMRGOUT S $P(GMRGTX,"|",GMRG10+1)=GMRGTX(0)
Q
INTXED ;
S GMRGTX("DEF")=$P($P($P(GMRGPRC(0),"^"),"]",GMRG10),"[",2) F X=1:1:$L(GMRGTX("DEF")) Q:$E(GMRGTX("DEF"),X)'=" " S GMRGTX("DEF")=$E(GMRGTX("DEF"),2,$L(GMRGTX("DEF")))
S (GMRGTX("OLD"),GMRGTX(0))=$S($P(GMRGTX,"|",GMRG10+1)="":GMRGTX("DEF"),1:$P(GMRGTX,"|",GMRG10+1))
INTX0 ;
I $L(GMRGTX(0))>15 S (GMRGTX("@"),GMRGTX(1))=1 W ! D EN1^GMRGED3 S:GMRGTX(0)="" GMRGTX(0)=GMRGTX("DEF") G INTX1
W !,"Internal Text Number ",GMRG10,": ",$S($L(GMRGTX(0)):GMRGTX(0)_"// ",1:"") R GMRGTX(0):DTIME
S:GMRGTX(0)=""&$L(GMRGTX("OLD")) GMRGTX(0)=GMRGTX("OLD") S:GMRGTX(0)="^"!(GMRGTX(0)="^^")!'$T GMRGOUT=1 Q:GMRGOUT!(GMRGTX(0)="") G:GMRGTX(0)'="@" INTX1
YNIP W !?4,$C(7),"WANT TO DELETE" S %=1 D YN^DICN S:%=-1 GMRGOUT=1 Q:GMRGOUT W:%=2 $C(7)," ??" S GMRGTX(0)=$S(%=2:GMRGTX("OLD"),%=1:"",1:GMRGTX(0))
G INTX0:%=2,INTX1:%=1 W !?8,$C(7),"Answer Yes if you want to delete the appended text, else answer No.",!!?8,"NOTE: If you delete bracketed text, the original default will become",!?8,"the new value." G YNIP
INTX1 I $L(($P(GMRGTX,"|",1,GMRG10)_"|"_GMRGTX(0)_"|"_$P(GMRGTX,"|",GMRG10+2,$L(GMRGTX,"|"))))>175 W !,?4,$C(7),"LINE TOO LONG??" S GMRGTX(0)=GMRGTX("OLD") G INTX0
I GMRGTX(0)["^"!(GMRGTX(0)?1"?".E) W !?4,$C(7),$S(GMRGTX(0)?1"?".E:"ANSWER WITH FREE TEXT",1:"ANSWER CANNOT CONTAIN THE CIRCUMFLEX '^' CHARACTER") S GMRGTX(0)=GMRGTX("OLD") G INTX0
Q
DELETE ;
S GMRGDFLG=1,X=$P(GMRGPRC,"^"),DA(1)=GMRGPDA,DA=$P(GMRGPRC(0),"^",2) I DA'>0 K DA Q
S GMRGY=0 D EN1^GMRGUTL
K GMRGDFLG S GMRGART=0 X:$D(^GMRD(124.2,$P(GMRGPRC,"^"),8)) ^(8) Q:GMRGOUT
Q
STUT ;
I GMRG0["*"!(GMRG0["T") D JSTCK^GMRGED9 Q
S GMRG3=0 I $P(GMRGPRC,"^",2)="S",GMRG0'="A" S GMRG3=+$O(^GMRD(124.4,GMRGTPLT,1,"B",+GMRGSEL(GMRG0),0)),GMRG3=$S($D(^GMRD(124.4,GMRGTPLT,1,GMRG3,0)):10+$P(^(0),"^",3),1:0)
S ^TMP($J,"GMRGLVL",$P(GMRGLVL,"^"),GMRGTLVL,GMRG2)=$S(GMRG0'="A":$P(GMRGSEL(GMRG0),"^")_"^"_GMRGUSL(GMRG0),1:"A^"_GMRGTERM)_"^"_GMRG3
S:GMRG0'="A" ^TMP($J,"GMRGLVL",$P(GMRGLVL,"^"),GMRGTLVL,GMRG2,0)=$P(GMRGSEL(GMRG0),"^",2)_"^"_$S($D(GMRGSEL(GMRG0,1)):GMRGSEL(GMRG0,1),1:"")
Q
PRCTRM ;
Q:+GMRGTERM=+GMRGRT K DA S DA(1)=GMRGPDA,DA=$P(GMRGTERM,"^",3)
S GMRGND=GMRGPDA,GMRGND(0)=$P(GMRGTERM,"^") D STLST^GMRGRUT0
I '$D(^GMR(124.3,DA(1),1,DA)) S ^(DA,0)=$P(GMRGTERM,"^")_"^^1",DIK="^GMR(124.3,"_DA(1)_",1," D IX1^DIK
I '$P(^GMR(124.3,DA(1),1,DA,0),"^",3) D ADS
Q
ADS ;
S X=0 F GMRG1=0:0 S GMRG1=$O(^DD(124.31,4,1,GMRG1)) Q:GMRG1'>0 X:$D(^DD(124.31,4,1,GMRG1,2)) ^(2)
S X=1,$P(^GMR(124.3,DA(1),1,DA,0),"^",3)=X F GMRG1=0:0 S GMRG1=$O(^DD(124.31,4,1,GMRG1)) Q:GMRG1'>0 X:$D(^DD(124.31,4,1,GMRG1,1)) ^(1)
S GMRGART=1 X:$D(^GMRD(124.2,$P(GMRGTERM,"^"),8)) ^(8)
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HGMRGED6 3689 printed Oct 16, 2024@17:56 Page 2
GMRGED6 ;CISC/RM-PATIENT DATA EDIT (cont.) ;4/25/89
+1 ;;3.0;Text Generator;;Jan 24, 1996
INTERNAL ; EDIT INTERNAL TEXT FOR THE SELECTED ENTRY.
+1 SET (GMRGTX("OL"),GMRGTX)=$PIECE(GMRGPRC(0),"^",3)
SET GMRGTX("ACTION")=$PIECE($PIECE(GMRGPRC,"^",2),"/",2,999)
+2 IF GMRGTX("ACTION")=""
DO INTP
+3 IF GMRGTX("ACTION")'=""
FOR X=1:1:$LENGTH($PIECE(GMRGPRC(0),"^"),"]")-1
SET $PIECE(GMRGTX,"|",X+1)=$PIECE(GMRGTX("ACTION"),"/",X,$SELECT(X=($LENGTH($PIECE(GMRGPRC(0),"^"),"]")-1):999,1:X))
+4 IF 'GMRGOUT
IF GMRGTX("OL")'=GMRGTX
SET X=GMRGTX("OL")
SET DA=$PIECE(GMRGPRC(0),"^",2)
SET DA(1)=GMRGPDA
SET GMRGY=2
SET GMRGAT=0
SET GMRGZ=""
DO EN1^GMRGUTL
KILL GMRGAT,GMRGZ
SET $PIECE(^GMR(124.3,DA(1),1,DA,0),"^",2)=GMRGTX
SET $PIECE(GMRGPRC(0),"^",3)=GMRGTX
+5 IF 'GMRGOUT
IF GMRGTX("OL")'=GMRGTX
SET ^TMP($JOB,"GMRGLVL",$PIECE(GMRGLVL,"^"),GMRGTLVL,GMRGSLVL,0)=GMRGPRC(0)
+6 QUIT
INTP ;
+1 WRITE !!,"INTERNAL TEXT for '"
SET GMRGXPRT=$PIECE(GMRGPRC(0),"^")
SET GMRGXPRT(0)=$PIECE(GMRGPRC(0),"^",3)
SET GMRGXPRT(1)="19^"_IOM_"^1^0"
DO EN1^GMRGRUT2
WRITE "'"
+2 FOR GMRG10=1:1:$LENGTH($PIECE(GMRGPRC(0),"^"),"]")-1
DO INTXED
if GMRGOUT
QUIT
SET $PIECE(GMRGTX,"|",GMRG10+1)=GMRGTX(0)
+3 QUIT
INTXED ;
+1 SET GMRGTX("DEF")=$PIECE($PIECE($PIECE(GMRGPRC(0),"^"),"]",GMRG10),"[",2)
FOR X=1:1:$LENGTH(GMRGTX("DEF"))
if $EXTRACT(GMRGTX("DEF"),X)'=" "
QUIT
SET GMRGTX("DEF")=$EXTRACT(GMRGTX("DEF"),2,$LENGTH(GMRGTX("DEF")))
+2 SET (GMRGTX("OLD"),GMRGTX(0))=$SELECT($PIECE(GMRGTX,"|",GMRG10+1)="":GMRGTX("DEF"),1:$PIECE(GMRGTX,"|",GMRG10+1))
INTX0 ;
+1 IF $LENGTH(GMRGTX(0))>15
SET (GMRGTX("@"),GMRGTX(1))=1
WRITE !
DO EN1^GMRGED3
if GMRGTX(0)=""
SET GMRGTX(0)=GMRGTX("DEF")
GOTO INTX1
+2 WRITE !,"Internal Text Number ",GMRG10,": ",$SELECT($LENGTH(GMRGTX(0)):GMRGTX(0)_"// ",1:"")
READ GMRGTX(0):DTIME
+3 if GMRGTX(0)=""&$LENGTH(GMRGTX("OLD"))
SET GMRGTX(0)=GMRGTX("OLD")
if GMRGTX(0)="^"!(GMRGTX(0)="^^")!'$TEST
SET GMRGOUT=1
if GMRGOUT!(GMRGTX(0)="")
QUIT
if GMRGTX(0)'="@"
GOTO INTX1
YNIP WRITE !?4,$CHAR(7),"WANT TO DELETE"
SET %=1
DO YN^DICN
if %=-1
SET GMRGOUT=1
if GMRGOUT
QUIT
if %=2
WRITE $CHAR(7)," ??"
SET GMRGTX(0)=$SELECT(%=2:GMRGTX("OLD"),%=1:"",1:GMRGTX(0))
+1 if %=2
GOTO INTX0
if %=1
GOTO INTX1
WRITE !?8,$CHAR(7),"Answer Yes if you want to delete the appended text, else answer No.",!!?8,"NOTE: If you delete bracketed text, the original default will become",!?8,"the new value."
GOTO YNIP
INTX1 IF $LENGTH(($PIECE(GMRGTX,"|",1,GMRG10)_"|"_GMRGTX(0)_"|"_$PIECE(GMRGTX,"|",GMRG10+2,$LENGTH(GMRGTX,"|"))))>175
WRITE !,?4,$CHAR(7),"LINE TOO LONG??"
SET GMRGTX(0)=GMRGTX("OLD")
GOTO INTX0
+1 IF GMRGTX(0)["^"!(GMRGTX(0)?1"?".E)
WRITE !?4,$CHAR(7),$SELECT(GMRGTX(0)?1"?".E:"ANSWER WITH FREE TEXT",1:"ANSWER CANNOT CONTAIN THE CIRCUMFLEX '^' CHARACTER")
SET GMRGTX(0)=GMRGTX("OLD")
GOTO INTX0
+2 QUIT
DELETE ;
+1 SET GMRGDFLG=1
SET X=$PIECE(GMRGPRC,"^")
SET DA(1)=GMRGPDA
SET DA=$PIECE(GMRGPRC(0),"^",2)
IF DA'>0
KILL DA
QUIT
+2 SET GMRGY=0
DO EN1^GMRGUTL
+3 KILL GMRGDFLG
SET GMRGART=0
if $DATA(^GMRD(124.2,$PIECE(GMRGPRC,"^"),8))
XECUTE ^(8)
if GMRGOUT
QUIT
+4 QUIT
STUT ;
+1 IF GMRG0["*"!(GMRG0["T")
DO JSTCK^GMRGED9
QUIT
+2 SET GMRG3=0
IF $PIECE(GMRGPRC,"^",2)="S"
IF GMRG0'="A"
SET GMRG3=+$ORDER(^GMRD(124.4,GMRGTPLT,1,"B",+GMRGSEL(GMRG0),0))
SET GMRG3=$SELECT($DATA(^GMRD(124.4,GMRGTPLT,1,GMRG3,0)):10+$PIECE(^(0),"^",3),1:0)
+3 SET ^TMP($JOB,"GMRGLVL",$PIECE(GMRGLVL,"^"),GMRGTLVL,GMRG2)=$SELECT(GMRG0'="A":$PIECE(GMRGSEL(GMRG0),"^")_"^"_GMRGUSL(GMRG0),1:"A^"_GMRGTERM)_"^"_GMRG3
+4 if GMRG0'="A"
SET ^TMP($JOB,"GMRGLVL",$PIECE(GMRGLVL,"^"),GMRGTLVL,GMRG2,0)=$PIECE(GMRGSEL(GMRG0),"^",2)_"^"_$SELECT($DATA(GMRGSEL(GMRG0,1)):GMRGSEL(GMRG0,1),1:"")
+5 QUIT
PRCTRM ;
+1 if +GMRGTERM=+GMRGRT
QUIT
KILL DA
SET DA(1)=GMRGPDA
SET DA=$PIECE(GMRGTERM,"^",3)
+2 SET GMRGND=GMRGPDA
SET GMRGND(0)=$PIECE(GMRGTERM,"^")
DO STLST^GMRGRUT0
+3 IF '$DATA(^GMR(124.3,DA(1),1,DA))
SET ^(DA,0)=$PIECE(GMRGTERM,"^")_"^^1"
SET DIK="^GMR(124.3,"_DA(1)_",1,"
DO IX1^DIK
+4 IF '$PIECE(^GMR(124.3,DA(1),1,DA,0),"^",3)
DO ADS
+5 QUIT
ADS ;
+1 SET X=0
FOR GMRG1=0:0
SET GMRG1=$ORDER(^DD(124.31,4,1,GMRG1))
if GMRG1'>0
QUIT
if $DATA(^DD(124.31,4,1,GMRG1,2))
XECUTE ^(2)
+2 SET X=1
SET $PIECE(^GMR(124.3,DA(1),1,DA,0),"^",3)=X
FOR GMRG1=0:0
SET GMRG1=$ORDER(^DD(124.31,4,1,GMRG1))
if GMRG1'>0
QUIT
if $DATA(^DD(124.31,4,1,GMRG1,1))
XECUTE ^(1)
+3 SET GMRGART=1
if $DATA(^GMRD(124.2,$PIECE(GMRGTERM,"^"),8))
XECUTE ^(8)
+4 QUIT