- GMRGPNB0 ;CISC/JH/RM-NARRATIVE BUILDER FOR TEXT GENERATOR (cont.) ;6/20/91
- ;;3.0;Text Generator;;Jan 24, 1996
- TEXT ; ENTRY WITH GMRGA SET TO POINT AT WHICH WANT TO START BUILDING TEXT
- S (GMRGE0,GMRGADD)=""
- Q:'$D(^GMR(124.3,GMRGPDA,1,"ALIST",GMRGA0))&GMRGCSW Q:('$D(^GMR(124.3,"B",GMRGA0,GMRGPDA))&'$D(^GMR(124.3,GMRGPDA,1,"B",GMRGA0)))&'GMRGCSW D NOW^%DTC
- S GMRGB0=$O(^GMR(124.3,GMRGPDA,1,"B",GMRGA0,0)) I GMRGB0>0 S GMRGST=GMRGB0,GMRGST(1)=GMRGPDA,GMRGST(2)=$S(GMRGCSW=1:%,1:GMRGPDT) D STAT^GMRGRUT0 S GMRGF0=GMRGSTAT,GMRGST=GMRGB0,GMRGST(1)=GMRGPDA,GMRGST(2)=GMRGPDT D STAT^GMRGRUT0
- I GMRGB0>0 S GMRGE0=$S($P(GMRGSTAT,"^",3)=1:"",$P(GMRGSTAT,"^")=$P(GMRGF0,"^"):$S($D(^GMR(124.3,GMRGPDA,1,GMRGB0,0)):$P(^(0),"^",2),1:""),1:$S($D(^GMR(124.3,GMRGPDA,1,GMRGB0,2,+$P(GMRGSTAT,"^"),0)):$P(^(0),"^",4),1:""))
- I S GMRGADD=$S($P(GMRGSTAT,"^",3)=1:"",$P(GMRGSTAT,"^")=$P(GMRGF0,"^"):$S($D(^GMR(124.3,GMRGPDA,1,GMRGB0,"ADD")):"1;"_GMRGB0_";0",1:""),1:$S($D(^GMR(124.3,GMRGPDA,1,GMRGB0,2,$P(GMRGSTAT,"^"),"ADD")):"1;"_GMRGB0_";2;"_$P(GMRGSTAT,"^"),1:""))
- S GMRGE0(0)=$S($D(^GMRD(124.2,GMRGA0,0)):^(0),1:""),GMRGE0(4)=$S($D(^GMRD(124.2,GMRGA0,4)):^(4),1:""),GMRGE0(5)=$S($D(^GMRD(124.2,GMRGA0,5)):^(5),1:"") Q:$P(GMRGE0(0),"^",2)=3&GMRGSSW
- I "S"[$P(GMRGE0(0),"^",8)!GMRGSSW D SNT^GMRGPNB1 Q
- S GMRGNAR=GMRGPAR_"^"_$P(GMRGE0(0),"^",8)_"^"_GMRGSPC_"^^"_GMRGRM,GMRGNAR(0)=$P(GMRGE0(0),"^")_"^"_GMRGE0,GMRGNAR("LEAD")=GMRGE0(4),GMRGNAR("TRAIL")=GMRGE0(5) D STORETXT^GMRGRUT1
- S GMRGSPC=GMRGSPC+3
- F GMRGD0=0:0 S GMRGD0=$O(^GMRD(124.2,GMRGA0,1,GMRGD0)) Q:GMRGD0'>0 D RECUR
- Q:'GMRGADD
- S GMRGNAR=GMRGPAR_"^T^"_GMRGSPC_"^^"_GMRGRM,GMRGNAR("LEAD")="Additional Text: ",GMRGNAR("TRAIL")=""
- S GMRGNAR(0)=$S('$P(GMRGADD,";",3):^GMR(124.3,GMRGPDA,1,$P(GMRGADD,";",2),"ADD"),1:^GMR(124.3,GMRGPDA,1,$P(GMRGADD,";",2),2,$P(GMRGADD,";",4),"ADD")) D STORETXT^GMRGRUT1
- Q
- RECUR ;
- Q:'$$ALIST^GMRGRUT0(GMRGPDA,GMRGA0,+$G(^GMRD(124.2,+GMRGA0,1,+GMRGD0,0)))
- S ^TMP($J,"GMRGPLVL",GMRGPLVL)=GMRGA0_"^"_GMRGD0_"^"_GMRGSPC_"^"_GMRGSSW_"^"_GMRGADD,GMRGPLVL=GMRGPLVL+1,GMRGA0=$S($D(^GMRD(124.2,GMRGA0,1,GMRGD0,0)):$P(^(0),"^"),1:"")
- D TEXT
- S GMRGPLVL=GMRGPLVL-1,GMRGI0=^TMP($J,"GMRGPLVL",GMRGPLVL),GMRGA0=$P(GMRGI0,"^"),GMRGD0=$P(GMRGI0,"^",2),GMRGSPC=$P(GMRGI0,"^",3),GMRGSSW=$P(GMRGI0,"^",4),GMRGADD=$P(GMRGI0,"^",5)
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HGMRGPNB0 2324 printed Apr 23, 2025@18:09:52 Page 2
- GMRGPNB0 ;CISC/JH/RM-NARRATIVE BUILDER FOR TEXT GENERATOR (cont.) ;6/20/91
- +1 ;;3.0;Text Generator;;Jan 24, 1996
- TEXT ; ENTRY WITH GMRGA SET TO POINT AT WHICH WANT TO START BUILDING TEXT
- +1 SET (GMRGE0,GMRGADD)=""
- +2 if '$DATA(^GMR(124.3,GMRGPDA,1,"ALIST",GMRGA0))&GMRGCSW
- QUIT
- if ('$DATA(^GMR(124.3,"B",GMRGA0,GMRGPDA))&'$DATA(^GMR(124.3,GMRGPDA,1,"B",GMRGA0)))&'GMRGCSW
- QUIT
- DO NOW^%DTC
- +3 SET GMRGB0=$ORDER(^GMR(124.3,GMRGPDA,1,"B",GMRGA0,0))
- IF GMRGB0>0
- SET GMRGST=GMRGB0
- SET GMRGST(1)=GMRGPDA
- SET GMRGST(2)=$SELECT(GMRGCSW=1:%,1:GMRGPDT)
- DO STAT^GMRGRUT0
- SET GMRGF0=GMRGSTAT
- SET GMRGST=GMRGB0
- SET GMRGST(1)=GMRGPDA
- SET GMRGST(2)=GMRGPDT
- DO STAT^GMRGRUT0
- +4 IF GMRGB0>0
- SET GMRGE0=$SELECT($PIECE(GMRGSTAT,"^",3)=1:"",$PIECE(GMRGSTAT,"^")=$PIECE(GMRGF0,"^"):$SELECT($DATA(^GMR(124.3,GMRGPDA,1,GMRGB0,0)):$PIECE(^(0),"^",2),1:""),1:$SELECT($DATA(^GMR(124.3,GMRGPDA,1,GMRGB0,2,+$PIECE(GMRGSTAT,"^"),0)):...
- ... $PIECE(^(0),"^",4),1:""))
- +5 IF $TEST
- SET GMRGADD=$SELECT($PIECE(GMRGSTAT,"^",3)=1:"",$PIECE(GMRGSTAT,"^")=...
- ... $PIECE(GMRGF0,"^"):$SELECT($DATA(^GMR(124.3,GMRGPDA,1,GMRGB0,"ADD")):"1;"_GMRGB0_";0",1:""),1:$SELECT($DATA(^GMR(124.3,GMRGPDA,1,GMRGB0,2,$PIECE(GMRGSTAT,"^"),"ADD")):"1;"_GMRGB0_";2;"_$PIECE(GMRGSTAT,"^"),1:""))
- +6 SET GMRGE0(0)=$SELECT($DATA(^GMRD(124.2,GMRGA0,0)):^(0),1:"")
- SET GMRGE0(4)=$SELECT($DATA(^GMRD(124.2,GMRGA0,4)):^(4),1:"")
- SET GMRGE0(5)=$SELECT($DATA(^GMRD(124.2,GMRGA0,5)):^(5),1:"")
- if $PIECE(GMRGE0(0),"^",2)=3&GMRGSSW
- QUIT
- +7 IF "S"[$PIECE(GMRGE0(0),"^",8)!GMRGSSW
- DO SNT^GMRGPNB1
- QUIT
- +8 SET GMRGNAR=GMRGPAR_"^"_$PIECE(GMRGE0(0),"^",8)_"^"_GMRGSPC_"^^"_GMRGRM
- SET GMRGNAR(0)=$PIECE(GMRGE0(0),"^")_"^"_GMRGE0
- SET GMRGNAR("LEAD")=GMRGE0(4)
- SET GMRGNAR("TRAIL")=GMRGE0(5)
- DO STORETXT^GMRGRUT1
- +9 SET GMRGSPC=GMRGSPC+3
- +10 FOR GMRGD0=0:0
- SET GMRGD0=$ORDER(^GMRD(124.2,GMRGA0,1,GMRGD0))
- if GMRGD0'>0
- QUIT
- DO RECUR
- +11 if 'GMRGADD
- QUIT
- +12 SET GMRGNAR=GMRGPAR_"^T^"_GMRGSPC_"^^"_GMRGRM
- SET GMRGNAR("LEAD")="Additional Text: "
- SET GMRGNAR("TRAIL")=""
- +13 SET GMRGNAR(0)=$SELECT('$PIECE(GMRGADD,";",3):^GMR(124.3,GMRGPDA,1,$PIECE(GMRGADD,";",2),"ADD"),1:^GMR(124.3,GMRGPDA,1,$PIECE(GMRGADD,";",2),2,$PIECE(GMRGADD,";",4),"ADD"))
- DO STORETXT^GMRGRUT1
- +14 QUIT
- RECUR ;
- +1 if '$$ALIST^GMRGRUT0(GMRGPDA,GMRGA0,+$GET(^GMRD(124.2,+GMRGA0,1,+GMRGD0,0)))
- QUIT
- +2 SET ^TMP($JOB,"GMRGPLVL",GMRGPLVL)=GMRGA0_"^"_GMRGD0_"^"_GMRGSPC_"^"_GMRGSSW_"^"_GMRGADD
- SET GMRGPLVL=GMRGPLVL+1
- SET GMRGA0=$SELECT($DATA(^GMRD(124.2,GMRGA0,1,GMRGD0,0)):$PIECE(^(0),"^"),1:"")
- +3 DO TEXT
- +4 SET GMRGPLVL=GMRGPLVL-1
- SET GMRGI0=^TMP($JOB,"GMRGPLVL",GMRGPLVL)
- SET GMRGA0=$PIECE(GMRGI0,"^")
- SET GMRGD0=$PIECE(GMRGI0,"^",2)
- SET GMRGSPC=$PIECE(GMRGI0,"^",3)
- SET GMRGSSW=$PIECE(GMRGI0,"^",4)
- SET GMRGADD=$PIECE(GMRGI0,"^",5)
- +5 QUIT