- IBXX16 ; COMPILED XREF FOR FILE #399.0404 ; 10/03/23
- ;
- S DA(2)=DA(1) S DA(1)=0 S DA=0
- A1 ;
- I $D(DIKILL) K DIKLM S:DIKM1=2 DIKLM=1 S:DIKM1'=2&'$G(DIKPUSH(2)) DIKPUSH(2)=1,DA(2)=DA(1),DA(1)=DA,DA=0 G @DIKM1
- A S DA(1)=$O(^DGCR(399,DA(2),"CP",DA(1))) I DA(1)'>0 S DA(1)=0 G END
- 1 ;
- K ^DGCR(399,DA(2),"CP",DA(1),"LNPRV","C")
- B S DA=$O(^DGCR(399,DA(2),"CP",DA(1),"LNPRV",DA)) I DA'>0 S DA=0 Q:DIKM1=1 G A
- 2 ;
- S DIKZ(0)=$G(^DGCR(399,DA(2),"CP",DA(1),"LNPRV",DA,0))
- S X=$P($G(DIKZ(0)),U,2)
- I X'="" D
- .N DIK,DIV,DIU,DIN
- .K DIV S DIV=X,D0=DA(2),DIV(0)=D0,D1=DA(1),DIV(1)=D1,D2=DA,DIV(2)=D2 S Y(1)=$S($D(^DGCR(399,D0,"CP",D1,"LNPRV",D2,0)):^(0),1:"") S X=$P(Y(1),U,3),X=X S DIU=X K Y S X="" X ^DD(399.0404,.02,1,2,2.4)
- S X=$P($G(DIKZ(0)),U,2)
- I X'="" D
- .N DIK,DIV,DIU,DIN
- .K DIV S DIV=X,D0=DA(2),DIV(0)=D0,D1=DA(1),DIV(1)=D1,D2=DA,DIV(2)=D2 S Y(1)=$S($D(^DGCR(399,D0,"CP",D1,"LNPRV",D2,0)):^(0),1:"") S X=$P(Y(1),U,8),X=X S DIU=X K Y S X="" X ^DD(399.0404,.02,1,3,2.4)
- S X=$P($G(DIKZ(0)),U,2)
- I X'="" D
- .N DIK,DIV,DIU,DIN
- .K DIV S DIV=X,D0=DA(2),DIV(0)=D0,D1=DA(1),DIV(1)=D1,D2=DA,DIV(2)=D2 S Y(1)=$S($D(^DGCR(399,D0,"CP",D1,"LNPRV",D2,0)):^(0),1:"") S X=$P(Y(1),U,5),X=X S DIU=X K Y S X="" X ^DD(399.0404,.02,1,4,2.4)
- S X=$P($G(DIKZ(0)),U,2)
- I X'="" D
- .N DIK,DIV,DIU,DIN
- .K DIV S DIV=X,D0=DA(2),DIV(0)=D0,D1=DA(1),DIV(1)=D1,D2=DA,DIV(2)=D2 S Y(1)=$S($D(^DGCR(399,D0,"CP",D1,"LNPRV",D2,0)):^(0),1:"") S X=$P(Y(1),U,6),X=X S DIU=X K Y S X="" X ^DD(399.0404,.02,1,5,2.4)
- S X=$P($G(DIKZ(0)),U,2)
- I X'="" D
- .N DIK,DIV,DIU,DIN
- .K DIV S DIV=X,D0=DA(2),DIV(0)=D0,D1=DA(1),DIV(1)=D1,D2=DA,DIV(2)=D2 S Y(1)=$S($D(^DGCR(399,D0,"CP",D1,"LNPRV",D2,0)):^(0),1:"") S X=$P(Y(1),U,7),X=X S DIU=X K Y S X="" X ^DD(399.0404,.02,1,6,2.4)
- S X=$P($G(DIKZ(0)),U,2)
- I X'="" D
- .N DIK,DIV,DIU,DIN
- .K DIV S DIV=X,D0=DA(2),DIV(0)=D0,D1=DA(1),DIV(1)=D1,D2=DA,DIV(2)=D2 S Y(1)=$S($D(^DGCR(399,D0,"CP",D1,"LNPRV",D2,0)):^(0),1:"") S X=$P(Y(1),U,15),X=X S DIU=X K Y S X="" X ^DD(399.0404,.02,1,7,2.4)
- S DIKZ(0)=$G(^DGCR(399,DA(2),"CP",DA(1),"LNPRV",DA,0))
- S X=$P($G(DIKZ(0)),U,1)
- I X'="" K ^DGCR(399,DA(2),"CP",DA(1),"LNPRV","B",$E(X,1,30),DA)
- S X=$P($G(DIKZ(0)),U,1)
- I X'="" D
- .N DIK,DIV,DIU,DIN
- .K DIV S DIV=X,D0=DA(2),DIV(0)=D0,D1=DA(1),DIV(1)=D1,D2=DA,DIV(2)=D2 S Y(1)=$S($D(^DGCR(399,D0,"CP",D1,"LNPRV",D2,0)):^(0),1:"") S X=$P(Y(1),U,4),X=X S DIU=X K Y S X="" X ^DD(399.0404,.01,1,2,2.4)
- CR1 S DIXR=178
- K X
- S DIKZ(0)=$G(^DGCR(399,DA(2),"CP",DA(1),"LNPRV",DA,0))
- S X(1)=$P(DIKZ(0),U,1)
- S X=$$EXTERNAL^DILFD(399.0404,.01,,X(1))
- S:$D(X)#2 X(2)=X
- S X=$G(X(1))
- I $G(X(2))]"" D
- . K X1,X2 M X1=X,X2=X
- . S:$D(DIKIL) (X2,X2(1))=""
- . K ^DGCR(399,DA(2),"CP",DA(1),"LNPRV","C",$E(X(2),1,30),DA)
- CR2 K X
- G:'$D(DIKLM) B Q:$D(DIKILL)
- END G ^IBXX17
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HIBXX16 2802 printed Feb 18, 2025@23:59:23 Page 2
- IBXX16 ; COMPILED XREF FOR FILE #399.0404 ; 10/03/23
- +1 ;
- +2 SET DA(2)=DA(1)
- SET DA(1)=0
- SET DA=0
- A1 ;
- +1 IF $DATA(DIKILL)
- KILL DIKLM
- if DIKM1=2
- SET DIKLM=1
- if DIKM1'=2&'$GET(DIKPUSH(2))
- SET DIKPUSH(2)=1
- SET DA(2)=DA(1)
- SET DA(1)=DA
- SET DA=0
- GOTO @DIKM1
- A SET DA(1)=$ORDER(^DGCR(399,DA(2),"CP",DA(1)))
- IF DA(1)'>0
- SET DA(1)=0
- GOTO END
- 1 ;
- +1 KILL ^DGCR(399,DA(2),"CP",DA(1),"LNPRV","C")
- B SET DA=$ORDER(^DGCR(399,DA(2),"CP",DA(1),"LNPRV",DA))
- IF DA'>0
- SET DA=0
- if DIKM1=1
- QUIT
- GOTO A
- 2 ;
- +1 SET DIKZ(0)=$GET(^DGCR(399,DA(2),"CP",DA(1),"LNPRV",DA,0))
- +2 SET X=$PIECE($GET(DIKZ(0)),U,2)
- +3 IF X'=""
- Begin DoDot:1
- +4 NEW DIK,DIV,DIU,DIN
- +5 KILL DIV
- SET DIV=X
- SET D0=DA(2)
- SET DIV(0)=D0
- SET D1=DA(1)
- SET DIV(1)=D1
- SET D2=DA
- SET DIV(2)=D2
- SET Y(1)=$SELECT($DATA(^DGCR(399,D0,"CP",D1,"LNPRV",D2,0)):^(0),1:"")
- SET X=$PIECE(Y(1),U,3)
- SET X=X
- SET DIU=X
- KILL Y
- SET X=""
- XECUTE ^DD(399.0404,.02,1,2,2.4)
- End DoDot:1
- +6 SET X=$PIECE($GET(DIKZ(0)),U,2)
- +7 IF X'=""
- Begin DoDot:1
- +8 NEW DIK,DIV,DIU,DIN
- +9 KILL DIV
- SET DIV=X
- SET D0=DA(2)
- SET DIV(0)=D0
- SET D1=DA(1)
- SET DIV(1)=D1
- SET D2=DA
- SET DIV(2)=D2
- SET Y(1)=$SELECT($DATA(^DGCR(399,D0,"CP",D1,"LNPRV",D2,0)):^(0),1:"")
- SET X=$PIECE(Y(1),U,8)
- SET X=X
- SET DIU=X
- KILL Y
- SET X=""
- XECUTE ^DD(399.0404,.02,1,3,2.4)
- End DoDot:1
- +10 SET X=$PIECE($GET(DIKZ(0)),U,2)
- +11 IF X'=""
- Begin DoDot:1
- +12 NEW DIK,DIV,DIU,DIN
- +13 KILL DIV
- SET DIV=X
- SET D0=DA(2)
- SET DIV(0)=D0
- SET D1=DA(1)
- SET DIV(1)=D1
- SET D2=DA
- SET DIV(2)=D2
- SET Y(1)=$SELECT($DATA(^DGCR(399,D0,"CP",D1,"LNPRV",D2,0)):^(0),1:"")
- SET X=$PIECE(Y(1),U,5)
- SET X=X
- SET DIU=X
- KILL Y
- SET X=""
- XECUTE ^DD(399.0404,.02,1,4,2.4)
- End DoDot:1
- +14 SET X=$PIECE($GET(DIKZ(0)),U,2)
- +15 IF X'=""
- Begin DoDot:1
- +16 NEW DIK,DIV,DIU,DIN
- +17 KILL DIV
- SET DIV=X
- SET D0=DA(2)
- SET DIV(0)=D0
- SET D1=DA(1)
- SET DIV(1)=D1
- SET D2=DA
- SET DIV(2)=D2
- SET Y(1)=$SELECT($DATA(^DGCR(399,D0,"CP",D1,"LNPRV",D2,0)):^(0),1:"")
- SET X=$PIECE(Y(1),U,6)
- SET X=X
- SET DIU=X
- KILL Y
- SET X=""
- XECUTE ^DD(399.0404,.02,1,5,2.4)
- End DoDot:1
- +18 SET X=$PIECE($GET(DIKZ(0)),U,2)
- +19 IF X'=""
- Begin DoDot:1
- +20 NEW DIK,DIV,DIU,DIN
- +21 KILL DIV
- SET DIV=X
- SET D0=DA(2)
- SET DIV(0)=D0
- SET D1=DA(1)
- SET DIV(1)=D1
- SET D2=DA
- SET DIV(2)=D2
- SET Y(1)=$SELECT($DATA(^DGCR(399,D0,"CP",D1,"LNPRV",D2,0)):^(0),1:"")
- SET X=$PIECE(Y(1),U,7)
- SET X=X
- SET DIU=X
- KILL Y
- SET X=""
- XECUTE ^DD(399.0404,.02,1,6,2.4)
- End DoDot:1
- +22 SET X=$PIECE($GET(DIKZ(0)),U,2)
- +23 IF X'=""
- Begin DoDot:1
- +24 NEW DIK,DIV,DIU,DIN
- +25 KILL DIV
- SET DIV=X
- SET D0=DA(2)
- SET DIV(0)=D0
- SET D1=DA(1)
- SET DIV(1)=D1
- SET D2=DA
- SET DIV(2)=D2
- SET Y(1)=$SELECT($DATA(^DGCR(399,D0,"CP",D1,"LNPRV",D2,0)):^(0),1:"")
- SET X=$PIECE(Y(1),U,15)
- SET X=X
- SET DIU=X
- KILL Y
- SET X=""
- XECUTE ^DD(399.0404,.02,1,7,2.4)
- End DoDot:1
- +26 SET DIKZ(0)=$GET(^DGCR(399,DA(2),"CP",DA(1),"LNPRV",DA,0))
- +27 SET X=$PIECE($GET(DIKZ(0)),U,1)
- +28 IF X'=""
- KILL ^DGCR(399,DA(2),"CP",DA(1),"LNPRV","B",$EXTRACT(X,1,30),DA)
- +29 SET X=$PIECE($GET(DIKZ(0)),U,1)
- +30 IF X'=""
- Begin DoDot:1
- +31 NEW DIK,DIV,DIU,DIN
- +32 KILL DIV
- SET DIV=X
- SET D0=DA(2)
- SET DIV(0)=D0
- SET D1=DA(1)
- SET DIV(1)=D1
- SET D2=DA
- SET DIV(2)=D2
- SET Y(1)=$SELECT($DATA(^DGCR(399,D0,"CP",D1,"LNPRV",D2,0)):^(0),1:"")
- SET X=$PIECE(Y(1),U,4)
- SET X=X
- SET DIU=X
- KILL Y
- SET X=""
- XECUTE ^DD(399.0404,.01,1,2,2.4)
- End DoDot:1
- CR1 SET DIXR=178
- +1 KILL X
- +2 SET DIKZ(0)=$GET(^DGCR(399,DA(2),"CP",DA(1),"LNPRV",DA,0))
- +3 SET X(1)=$PIECE(DIKZ(0),U,1)
- +4 SET X=$$EXTERNAL^DILFD(399.0404,.01,,X(1))
- +5 if $DATA(X)#2
- SET X(2)=X
- +6 SET X=$GET(X(1))
- +7 IF $GET(X(2))]""
- Begin DoDot:1
- +8 KILL X1,X2
- MERGE X1=X,X2=X
- +9 if $DATA(DIKIL)
- SET (X2,X2(1))=""
- +10 KILL ^DGCR(399,DA(2),"CP",DA(1),"LNPRV","C",$EXTRACT(X(2),1,30),DA)
- End DoDot:1
- CR2 KILL X
- +1 if '$DATA(DIKLM)
- GOTO B
- if $DATA(DIKILL)
- QUIT
- END GOTO ^IBXX17