IBXX23 ; COMPILED XREF FOR FILE #399.0304 ; 05/29/25
 ; 
 S DA=0
A1 ;
 I $D(DISET) K DIKLM S:DIKM1=1 DIKLM=1 G @DIKM1
0 ;
A S DA=$O(^DGCR(399,DA(1),"CP",DA)) I DA'>0 S DA=0 G END
1 ;
 S DIKZ(0)=$G(^DGCR(399,DA(1),"CP",DA,0))
 S X=$P($G(DIKZ(0)),U,1)
 I X'="" S ^DGCR(399,DA(1),"CP","B",$E(X,1,30),DA)=""
 S X=$P($G(DIKZ(0)),U,1)
 I X'="" I $P(X,";",2)="ICPT(",$D(^DGCR(399,DA(1),"CP",DA,0)),$P(^(0),"^",2) S ^DGCR(399,"ASD",-$P(^(0),"^",2),+X,DA(1),DA)=""
 S X=$P($G(DIKZ(0)),U,2)
 I X'="" I $D(^DGCR(399,DA(1),"CP",DA,0)),+^(0),$P($P(^(0),"^",1),";",2)="ICPT(" S ^DGCR(399,"ASD",-X,+^(0),DA(1),DA)=""
 S X=$P($G(DIKZ(0)),U,4)
 I X'="" S ^DGCR(399,DA(1),"CP","D",$E(X,1,30),DA)=""
 S X=$P($G(DIKZ(0)),U,5)
 I X'="" S DGRVRCAL=1
 S X=$P($G(DIKZ(0)),U,5)
 I X'="" S ^DGCR(399,DA(1),"CP","ASC",$E(X,1,30),DA)=""
 S X=$P($G(DIKZ(0)),U,7)
 I X'="" D
 .N DIK,DIV,DIU,DIN
 .K DIV S DIV=X,D0=DA(1),DIV(0)=D0,D1=DA,DIV(1)=D1 S Y(1)=$S($D(^DGCR(399,D0,"CP",D1,0)):^(0),1:"") S X=$P(Y(1),U,6),X=X S DIU=X K Y X ^DD(399.0304,6,1,1,1.1) X ^DD(399.0304,6,1,1,1.4)
 S DIKZ(0)=$G(^DGCR(399,DA(1),"CP",DA,0))
 S X=$P($G(DIKZ(0)),U,10)
 I X'="" D
 .N DIK,DIV,DIU,DIN
 .X ^DD(399.0304,9,1,1,1.3) I X S X=DIV S Y(1)=$S($D(^DGCR(399,D0,"CP",D1,0)):^(0),1:"") S X=$P(Y(1),U,16),X=X S DIU=X K Y S X="" X ^DD(399.0304,9,1,1,1.4)
CR1 S DIXR=990
 K X
 S DIKZ(0)=$G(^DGCR(399,DA(1),"CP",DA,0))
 S X(1)=$P(DIKZ(0),U,6)
 S X=$G(X(1))
 I $G(X(1))]"" D
 . K X1,X2 M X1=X,X2=X
 . D FROMPROC^IBCU9(DA(1),DA,"E")
CR2 K X
 G:'$D(DIKLM) A Q:$D(DISET)
END G ^IBXX24
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HIBXX23   1570     printed  Sep 23, 2025@20:09:24                                                                                                                                                                                                      Page 2
IBXX23    ; COMPILED XREF FOR FILE #399.0304 ; 05/29/25
 +1       ; 
 +2        SET DA=0
A1        ;
 +1        IF $DATA(DISET)
               KILL DIKLM
               if DIKM1=1
                   SET DIKLM=1
               GOTO @DIKM1
0         ;
A          SET DA=$ORDER(^DGCR(399,DA(1),"CP",DA))
           IF DA'>0
               SET DA=0
               GOTO END
1         ;
 +1        SET DIKZ(0)=$GET(^DGCR(399,DA(1),"CP",DA,0))
 +2        SET X=$PIECE($GET(DIKZ(0)),U,1)
 +3        IF X'=""
               SET ^DGCR(399,DA(1),"CP","B",$EXTRACT(X,1,30),DA)=""
 +4        SET X=$PIECE($GET(DIKZ(0)),U,1)
 +5        IF X'=""
               IF $PIECE(X,";",2)="ICPT("
                   IF $DATA(^DGCR(399,DA(1),"CP",DA,0))
                       IF $PIECE(^(0),"^",2)
                           SET ^DGCR(399,"ASD",-$PIECE(^(0),"^",2),+X,DA(1),DA)=""
 +6        SET X=$PIECE($GET(DIKZ(0)),U,2)
 +7        IF X'=""
               IF $DATA(^DGCR(399,DA(1),"CP",DA,0))
                   IF +^(0)
                       IF $PIECE($PIECE(^(0),"^",1),";",2)="ICPT("
                           SET ^DGCR(399,"ASD",-X,+^(0),DA(1),DA)=""
 +8        SET X=$PIECE($GET(DIKZ(0)),U,4)
 +9        IF X'=""
               SET ^DGCR(399,DA(1),"CP","D",$EXTRACT(X,1,30),DA)=""
 +10       SET X=$PIECE($GET(DIKZ(0)),U,5)
 +11       IF X'=""
               SET DGRVRCAL=1
 +12       SET X=$PIECE($GET(DIKZ(0)),U,5)
 +13       IF X'=""
               SET ^DGCR(399,DA(1),"CP","ASC",$EXTRACT(X,1,30),DA)=""
 +14       SET X=$PIECE($GET(DIKZ(0)),U,7)
 +15       IF X'=""
               Begin DoDot:1
 +16               NEW DIK,DIV,DIU,DIN
 +17               KILL DIV
                   SET DIV=X
                   SET D0=DA(1)
                   SET DIV(0)=D0
                   SET D1=DA
                   SET DIV(1)=D1
                   SET Y(1)=$SELECT($DATA(^DGCR(399,D0,"CP",D1,0)):^(0),1:"")
                   SET X=$PIECE(Y(1),U,6)
                   SET X=X
                   SET DIU=X
                   KILL Y
                   XECUTE ^DD(399.0304,6,1,1,1.1)
                   XECUTE ^DD(399.0304,6,1,1,1.4)
               End DoDot:1
 +18       SET DIKZ(0)=$GET(^DGCR(399,DA(1),"CP",DA,0))
 +19       SET X=$PIECE($GET(DIKZ(0)),U,10)
 +20       IF X'=""
               Begin DoDot:1
 +21               NEW DIK,DIV,DIU,DIN
 +22               XECUTE ^DD(399.0304,9,1,1,1.3)
                   IF X
                       SET X=DIV
                       SET Y(1)=$SELECT($DATA(^DGCR(399,D0,"CP",D1,0)):^(0),1:"")
                       SET X=$PIECE(Y(1),U,16)
                       SET X=X
                       SET DIU=X
                       KILL Y
                       SET X=""
                       XECUTE ^DD(399.0304,9,1,1,1.4)
               End DoDot:1
CR1        SET DIXR=990
 +1        KILL X
 +2        SET DIKZ(0)=$GET(^DGCR(399,DA(1),"CP",DA,0))
 +3        SET X(1)=$PIECE(DIKZ(0),U,6)
 +4        SET X=$GET(X(1))
 +5        IF $GET(X(1))]""
               Begin DoDot:1
 +6                KILL X1,X2
                   MERGE X1=X,X2=X
 +7                DO FROMPROC^IBCU9(DA(1),DA,"E")
               End DoDot:1
CR2        KILL X
 +1        if '$DATA(DIKLM)
               GOTO A
           if $DATA(DISET)
               QUIT 
END        GOTO ^IBXX24