IBCNSP01 ;ALB/AAS - INSURANCE MANAGEMENT - EXPANDED POLICY ;05-MAR-1993
;;2.0;INTEGRATED BILLING;**43,52,85,251,371,377,416,452,497,595**;21-MAR-94;Build 29
;;Per VA Directive 6402, this routine should not be modified.
;
;
% D SUBSC,RIDER
Q
;
SUBSC ; -- subscriber region ;IB*2*497 move subscriber lines around
N OFFSET,START,RX,DATARRY,X1,SAV
S START=$O(^TMP("IBCNSVP",$J,""),-1)+1,OFFSET=2,RX=0 ;IB*2*497
D SET^IBCNSP(START,OFFSET," Subscriber Information ",IORVON,IORVOFF)
S Y=$P(IBCDFND,U,6),C=$P(^DD(2.312,6,0),U,2) D Y^DIQ
D SET^IBCNSP(START+1,OFFSET,$$RJ^XLFSTR("Whose Insurance: ",19)_Y)
D SPLIT(OFFSET,$$RJ^XLFSTR("Subscriber Name: ",19),$P(IBCDFND7,U),.DATARRY)
S (SAV,X1)=0 F S X1=$O(DATARRY(X1)) Q:'X1 D
. S START=$O(^TMP("IBCNSVP",$J,""),-1)+1
. D SET^IBCNSP(START,OFFSET,DATARRY(X1))
S Y=$P(IBCDFND4,U,3),C=$P(^DD(2.312,4.03,0),U,2) D Y^DIQ
S START=$O(^TMP("IBCNSVP",$J,""),-1)+1
D SET^IBCNSP(START,OFFSET,$$RJ^XLFSTR("Relationship: ",19)_Y)
K DATARRY D SPLIT(OFFSET,$$RJ^XLFSTR("Primary ID: ",19),$P(IBCDFND7,U,2),.DATARRY)
S X1=0 F S X1=$O(DATARRY(X1)) Q:'X1 D
. S START=$O(^TMP("IBCNSVP",$J,""),-1)+1
. D SET^IBCNSP(START,OFFSET,DATARRY(X1))
S Y=$P(IBCDFND,U,20),C=$P(^DD(2.312,.2,0),U,2) D Y^DIQ
S START=$O(^TMP("IBCNSVP",$J,""),-1)+1
D SET^IBCNSP(START,OFFSET,$$RJ^XLFSTR("Coord. Benefits: ",19)_Y)
;
; IB*2*452 - esg - display Pharmacy fields if they exist
I $P(IBCDFND4,U,5)'=""!($P(IBCDFND4,U,6)'="") D
. N G,IBY S G=+$P(IBCDFND4,U,5),IBY=""
. I G S IBY=$$GET1^DIQ(9002313.19,G_",",.01)_" - "_$$GET1^DIQ(9002313.19,G_",",.02)
. S START=$O(^TMP("IBCNSVP",$J,""),-1)+1
. D SET^IBCNSP(START,OFFSET,$$RJ^XLFSTR("Rx Relationship: ",19)_IBY)
. D SET^IBCNSP(START,OFFSET,$$RJ^XLFSTR("Rx Person Code: ",19)_$P(IBCDFND4,U,6))
. Q
; Two blank lines at end of section
S START=$O(^TMP("IBCNSVP",$J,""),-1)+1
D SET^IBCNSP(START,OFFSET," ")
Q
;
PRV ; Provider and contact info IB*2*497 move provider contact info so that prints after employer related info
; inputs
; IBCDFND,IBCDFND4 - data strings equal to the 0 and 4 subscripts of the INSURANCE TYPE Subfile (2.312) entry
; output
; - an entry at the nth node of ^TMP("IBCNSVP",$J,n)
N OFFSET,START
S START=$O(^TMP("IBCNSVP",$J,""),-1)+1,OFFSET=2
D SET^IBCNSP(START,OFFSET,"Primary Provider: "_$P(IBCDFND4,U,1))
D SET^IBCNSP(START+1,OFFSET," Prim Prov Phone: "_$P(IBCDFND4,U,2))
D SET^IBCNSP(START+2,2," ")
Q
;
VER ; -- Entered/Verfied Region
N OFFSET,START,EIVFLG
S EIVFLG=+$P(IBCDFND4,U,4)
S START=$O(^TMP("IBCNSVP",$J,""),-1)+1,OFFSET=2
S IB1ST("VERIFY")=START
D SET^IBCNSP(START,OFFSET," User Information ",IORVON,IORVOFF)
D SET^IBCNSP(START+1,OFFSET," Entered By: "_$E($P($G(^VA(200,+$P(IBCDFND1,U,2),0)),U,1),1,20))
D SET^IBCNSP(START+2,OFFSET," Entered On: "_$$DAT1^IBOUTL(+IBCDFND1))
;D SET^IBCNSP(START+3,OFFSET,"Last Verified By: "_$S(EIVFLG:"AUTOUPDATE,IB-eIV",1:$E($P($G(^VA(200,+$P(IBCDFND1,U,4),0)),U,1),1,20)))
D SET^IBCNSP(START+3,OFFSET,"Last Verified By: "_$E($P($G(^VA(200,+$P(IBCDFND1,U,4),0)),U,1),1,20))
D SET^IBCNSP(START+4,OFFSET,"Last Verified On: "_$$DAT1^IBOUTL(+$P(IBCDFND1,U,3)))
;D SET^IBCNSP(START+5,OFFSET," Last Updated By: "_$S(EIVFLG:"AUTOUPDATE,IB-eIV",1:$E($P($G(^VA(200,+$P(IBCDFND1,U,6),0)),U,1),1,20)))
D SET^IBCNSP(START+5,OFFSET," Last Updated By: "_$E($P($G(^VA(200,+$P(IBCDFND1,U,6),0)),U,1),1,20))
D SET^IBCNSP(START+6,OFFSET," Last Updated On: "_$$DAT1^IBOUTL(+$P(IBCDFND1,U,5)))
D SET^IBCNSP(START+7,2," ") ; 2 blank lines to end section
D SET^IBCNSP(START+8,2," ")
VERQ Q
;
ID ; Subscriber and patient primary and secondary ID's and qualifiers
NEW START,OFFSET,IBL,G,PCE,QUAL,QUAL1
S G=IBCDFND5
S (START,IBL)=$O(^TMP("IBCNSVP",$J,""),-1)+1,OFFSET=2
S IB1ST("ID")=START
D SET^IBCNSP(START,OFFSET," Insurance Company ID Numbers (use Subscriber Update Action) ",IORVON,IORVOFF)
D SPLIT(OFFSET," Subscriber ID: ",$P(IBCDFND7,U,2),.DATARRY)
S (SAV,X1)=0 F S X1=$O(DATARRY(X1)) Q:'X1 D
. S IBL=IBL+1
. D SET^IBCNSP(IBL,OFFSET,DATARRY(X1))
;
F PCE=3,5,7 D ; subscriber secondary IDs
. I $P(G,U,PCE)="" Q ; no secondary ID#
. S QUAL=$P(G,U,PCE-1) ; internal qualifier code
. S QUAL1=$S(QUAL="23":"Client#",QUAL="IG":"Ins. Policy#",QUAL="SY":"SSN",1:"Unknown")
. S IBL=IBL+1
. D SET^IBCNSP(IBL,OFFSET,"Subscriber Secondary ID: "_$P(G,U,PCE))
. D SET^IBCNSP(IBL,52,"ID Qual: "_QUAL_" ("_QUAL1_")")
. Q
;
; patient=subscriber so skip over patient ID# display
I +$P(IBCDFND,U,16)=1 G ID1
;
S IBL=IBL+1 D SET^IBCNSP(IBL,2," ") ; blank line
S IBL=IBL+1
D SET^IBCNSP(IBL,OFFSET," Patient Primary ID: "_$P(G,U,1))
;
F PCE=9,11,13 D ; patient secondary IDs
. I $P(G,U,PCE)="" Q ; no secondary ID#
. S QUAL=$P(G,U,PCE-1) ; internal qualifier code
. S QUAL1=$S(QUAL="23":"Client#",QUAL="IG":"Ins. Policy#",QUAL="SY":"SSN",1:"Unknown")
. S IBL=IBL+1
. D SET^IBCNSP(IBL,OFFSET," Patient Secondary ID: "_$P(G,U,PCE))
. D SET^IBCNSP(IBL,52,"ID Qual: "_QUAL_" ("_QUAL1_")")
. Q
;
ID1 ; end of section - 2 blank lines
S IBL=IBL+1 D SET^IBCNSP(IBL,2," ")
S IBL=IBL+1 D SET^IBCNSP(IBL,2," ")
IDQ ;
Q
;
RIDER ; -- Personal policy riders
N OFFSET,START,IBI,IBL,IBPR,IBPRD
S START=$O(^TMP("IBCNSVP",$J,""),-1)+1,OFFSET=2,IBL=0
D SET^IBCNSP(START,OFFSET," Personal Riders ",IORVON,IORVOFF)
S IBI="" F S IBI=$O(^IBA(355.7,"APP",DFN,IBCDFN,IBI)) Q:'IBI S IBPR=$O(^(IBI,0)),IBPRD=+$G(^IBA(355.7,IBPR,0)),IBL=IBL+1 D
. D SET^IBCNSP(START+IBL,OFFSET," Rider #"_IBL_": "_$$EXPAND^IBTRE(355.7,.01,IBPRD))
. Q
S IBL=IBL+1 D SET^IBCNSP(START+IBL,OFFSET," ")
S IBL=IBL+1 D SET^IBCNSP(START+IBL,OFFSET," ")
Q
;
AI ; -- Add ins. verification entry
; called from ai^ibcnsp1
;
; -- see if current inpatient
D INP^VADPT I +VAIN(1) D
.S IBTRN=$O(^IBT(356,"AD",+VAIN(1),0))
;
S IBXIFN=$O(^IBE(356.11,"ACODE",85,0))
;
; -- if not tracking id allow selecting
I '$G(IBTRN) D G:IBQUIT AIQ
.W !,"You can now enter a contact and relate it to a Claims Tracking Admission entry."
.S DIC("A")="Select RELATED ADMISSION DATE: "
.S DIC="^IBT(356,",DIC(0)="AEQ",D="ADFN"_DFN,DIC("S")="I $P(^(0),U,5)"
.D IX^DIC K DA,DR,DIC,DIE I $D(DUOUT)!($D(DTOUT)) S IBQUIT=1 Q
.I +Y>1 S IBTRN=+Y
;
I '$G(IBTRN) W !!,"Warning: This contact is not associated with any care in Claims Tracking.",!,"You may only edit or view this contact using this action.",!
;
; -- select date
S IBOK=0,IBI=0 F S IBI=$O(^IBT(356.2,"D",DFN,IBI)) Q:'IBI I $P($G(^IBT(356.2,+IBI,0)),U,4)=IBXIFN,$P($G(^(1)),U,5)=IBCDFN S IBOK=1
I IBOK D G:IBQUIT AIQ
.S DIC="^IBT(356.2,",DIC("A")="Select Contact Date: "
.S X="??",DIC(0)="EQ",DIC("S")="I $P($G(^(1)),U,5)=IBCDFN,$P(^(0),U,4)=IBXIFN" ;,DLAYGO=356.2
.S D="ADFN"_DFN
.D IX^DIC K DIC,DR,DA,DIE,D I $D(DUOUT)!($D(DTOUT)) S IBQUIT=1
;
S DIC="^IBT(356.2,",DIC("A")="Select Contact Date: ",DIC("B")="TODAY"
S DIC("DR")=".02////"_$G(IBTRN)_";.04////"_IBXIFN_";.05////"_DFN_";.19////1;1.01///NOW;1.02////"_DUZ_";1.05////"_IBCDFN
S DIC(0)="AEQL",DIC("S")="I $P(^(0),U,5)=DFN,$P($G(^(1)),U,5)=IBCDFN,$P(^(0),U,4)=IBXIFN",DLAYGO=356.2
D ^DIC K DIC
I $D(DTOUT)!($D(DUOUT))!(+Y<1) G AIQ
S IBTRC=+Y
I $G(IBTRC),$G(IBTRN),'$P(^IBT(356.2,+IBTRC,0),U,2) S DA=IBTRC,DIE="^IBT(356.2,",DR=".02////"_$G(IBTRN) D ^DIE
;
; -- edit ins ver type
D EDIT^IBTRCD1("[IBT INS VERIFICATION]",1)
AIQ Q
;
SPLIT(OFFSET,LABEL,DATA,DATARRY) ; ib*2*497 reformat data that is too large to fit on one line
;
; INPUTS
; OFFSET - left margin starting point (e.g., 2)
; LABEL - the data label that gets displayed alongside the actual data (e.g."subscriber name:)
; DATA - the value to be set for display on a line (e.g., IB, PATIENT")
; OUTPUT
; DATARRY - an array which contains the data to be displayed on more than 1 line
;
N STRING,I,SAVPOS,QUIT
S STRING=LABEL_DATA
I $L(STRING)+OFFSET<81 S DATARRY(1)=STRING Q
S DATARRY(1)=$E(STRING,1,80-OFFSET)
S SAVPOS=$L(DATARRY(1))
S QUIT=0 F I=2:1 D Q:QUIT
. S DATARRY(I)=$$REPEAT^XLFSTR(" ",$L(LABEL))_$E(STRING,SAVPOS+1,$L(STRING))
. I $TR(DATARRY(I)," ")']"" K DATARRY(I) S QUIT=1 Q
. I $L(DATARRY(I))+OFFSET>80 S DATARRY(I)=$E(DATARRY(I),1,80-OFFSET) S SAVPOS=SAVPOS+$L(DATARRY(I)) Q
. S QUIT=1
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HIBCNSP01 8452 printed Oct 16, 2024@18:18:30 Page 2
IBCNSP01 ;ALB/AAS - INSURANCE MANAGEMENT - EXPANDED POLICY ;05-MAR-1993
+1 ;;2.0;INTEGRATED BILLING;**43,52,85,251,371,377,416,452,497,595**;21-MAR-94;Build 29
+2 ;;Per VA Directive 6402, this routine should not be modified.
+3 ;
+4 ;
% DO SUBSC
DO RIDER
+1 QUIT
+2 ;
SUBSC ; -- subscriber region ;IB*2*497 move subscriber lines around
+1 NEW OFFSET,START,RX,DATARRY,X1,SAV
+2 ;IB*2*497
SET START=$ORDER(^TMP("IBCNSVP",$JOB,""),-1)+1
SET OFFSET=2
SET RX=0
+3 DO SET^IBCNSP(START,OFFSET," Subscriber Information ",IORVON,IORVOFF)
+4 SET Y=$PIECE(IBCDFND,U,6)
SET C=$PIECE(^DD(2.312,6,0),U,2)
DO Y^DIQ
+5 DO SET^IBCNSP(START+1,OFFSET,$$RJ^XLFSTR("Whose Insurance: ",19)_Y)
+6 DO SPLIT(OFFSET,$$RJ^XLFSTR("Subscriber Name: ",19),$PIECE(IBCDFND7,U),.DATARRY)
+7 SET (SAV,X1)=0
FOR
SET X1=$ORDER(DATARRY(X1))
if 'X1
QUIT
Begin DoDot:1
+8 SET START=$ORDER(^TMP("IBCNSVP",$JOB,""),-1)+1
+9 DO SET^IBCNSP(START,OFFSET,DATARRY(X1))
End DoDot:1
+10 SET Y=$PIECE(IBCDFND4,U,3)
SET C=$PIECE(^DD(2.312,4.03,0),U,2)
DO Y^DIQ
+11 SET START=$ORDER(^TMP("IBCNSVP",$JOB,""),-1)+1
+12 DO SET^IBCNSP(START,OFFSET,$$RJ^XLFSTR("Relationship: ",19)_Y)
+13 KILL DATARRY
DO SPLIT(OFFSET,$$RJ^XLFSTR("Primary ID: ",19),$PIECE(IBCDFND7,U,2),.DATARRY)
+14 SET X1=0
FOR
SET X1=$ORDER(DATARRY(X1))
if 'X1
QUIT
Begin DoDot:1
+15 SET START=$ORDER(^TMP("IBCNSVP",$JOB,""),-1)+1
+16 DO SET^IBCNSP(START,OFFSET,DATARRY(X1))
End DoDot:1
+17 SET Y=$PIECE(IBCDFND,U,20)
SET C=$PIECE(^DD(2.312,.2,0),U,2)
DO Y^DIQ
+18 SET START=$ORDER(^TMP("IBCNSVP",$JOB,""),-1)+1
+19 DO SET^IBCNSP(START,OFFSET,$$RJ^XLFSTR("Coord. Benefits: ",19)_Y)
+20 ;
+21 ; IB*2*452 - esg - display Pharmacy fields if they exist
+22 IF $PIECE(IBCDFND4,U,5)'=""!($PIECE(IBCDFND4,U,6)'="")
Begin DoDot:1
+23 NEW G,IBY
SET G=+$PIECE(IBCDFND4,U,5)
SET IBY=""
+24 IF G
SET IBY=$$GET1^DIQ(9002313.19,G_",",.01)_" - "_$$GET1^DIQ(9002313.19,G_",",.02)
+25 SET START=$ORDER(^TMP("IBCNSVP",$JOB,""),-1)+1
+26 DO SET^IBCNSP(START,OFFSET,$$RJ^XLFSTR("Rx Relationship: ",19)_IBY)
+27 DO SET^IBCNSP(START,OFFSET,$$RJ^XLFSTR("Rx Person Code: ",19)_$PIECE(IBCDFND4,U,6))
+28 QUIT
End DoDot:1
+29 ; Two blank lines at end of section
+30 SET START=$ORDER(^TMP("IBCNSVP",$JOB,""),-1)+1
+31 DO SET^IBCNSP(START,OFFSET," ")
+32 QUIT
+33 ;
PRV ; Provider and contact info IB*2*497 move provider contact info so that prints after employer related info
+1 ; inputs
+2 ; IBCDFND,IBCDFND4 - data strings equal to the 0 and 4 subscripts of the INSURANCE TYPE Subfile (2.312) entry
+3 ; output
+4 ; - an entry at the nth node of ^TMP("IBCNSVP",$J,n)
+5 NEW OFFSET,START
+6 SET START=$ORDER(^TMP("IBCNSVP",$JOB,""),-1)+1
SET OFFSET=2
+7 DO SET^IBCNSP(START,OFFSET,"Primary Provider: "_$PIECE(IBCDFND4,U,1))
+8 DO SET^IBCNSP(START+1,OFFSET," Prim Prov Phone: "_$PIECE(IBCDFND4,U,2))
+9 DO SET^IBCNSP(START+2,2," ")
+10 QUIT
+11 ;
VER ; -- Entered/Verfied Region
+1 NEW OFFSET,START,EIVFLG
+2 SET EIVFLG=+$PIECE(IBCDFND4,U,4)
+3 SET START=$ORDER(^TMP("IBCNSVP",$JOB,""),-1)+1
SET OFFSET=2
+4 SET IB1ST("VERIFY")=START
+5 DO SET^IBCNSP(START,OFFSET," User Information ",IORVON,IORVOFF)
+6 DO SET^IBCNSP(START+1,OFFSET," Entered By: "_$EXTRACT($PIECE($GET(^VA(200,+$PIECE(IBCDFND1,U,2),0)),U,1),1,20))
+7 DO SET^IBCNSP(START+2,OFFSET," Entered On: "_$$DAT1^IBOUTL(+IBCDFND1))
+8 ;D SET^IBCNSP(START+3,OFFSET,"Last Verified By: "_$S(EIVFLG:"AUTOUPDATE,IB-eIV",1:$E($P($G(^VA(200,+$P(IBCDFND1,U,4),0)),U,1),1,20)))
+9 DO SET^IBCNSP(START+3,OFFSET,"Last Verified By: "_$EXTRACT($PIECE($GET(^VA(200,+$PIECE(IBCDFND1,U,4),0)),U,1),1,20))
+10 DO SET^IBCNSP(START+4,OFFSET,"Last Verified On: "_$$DAT1^IBOUTL(+$PIECE(IBCDFND1,U,3)))
+11 ;D SET^IBCNSP(START+5,OFFSET," Last Updated By: "_$S(EIVFLG:"AUTOUPDATE,IB-eIV",1:$E($P($G(^VA(200,+$P(IBCDFND1,U,6),0)),U,1),1,20)))
+12 DO SET^IBCNSP(START+5,OFFSET," Last Updated By: "_$EXTRACT($PIECE($GET(^VA(200,+$PIECE(IBCDFND1,U,6),0)),U,1),1,20))
+13 DO SET^IBCNSP(START+6,OFFSET," Last Updated On: "_$$DAT1^IBOUTL(+$PIECE(IBCDFND1,U,5)))
+14 ; 2 blank lines to end section
DO SET^IBCNSP(START+7,2," ")
+15 DO SET^IBCNSP(START+8,2," ")
VERQ QUIT
+1 ;
ID ; Subscriber and patient primary and secondary ID's and qualifiers
+1 NEW START,OFFSET,IBL,G,PCE,QUAL,QUAL1
+2 SET G=IBCDFND5
+3 SET (START,IBL)=$ORDER(^TMP("IBCNSVP",$JOB,""),-1)+1
SET OFFSET=2
+4 SET IB1ST("ID")=START
+5 DO SET^IBCNSP(START,OFFSET," Insurance Company ID Numbers (use Subscriber Update Action) ",IORVON,IORVOFF)
+6 DO SPLIT(OFFSET," Subscriber ID: ",$PIECE(IBCDFND7,U,2),.DATARRY)
+7 SET (SAV,X1)=0
FOR
SET X1=$ORDER(DATARRY(X1))
if 'X1
QUIT
Begin DoDot:1
+8 SET IBL=IBL+1
+9 DO SET^IBCNSP(IBL,OFFSET,DATARRY(X1))
End DoDot:1
+10 ;
+11 ; subscriber secondary IDs
FOR PCE=3,5,7
Begin DoDot:1
+12 ; no secondary ID#
IF $PIECE(G,U,PCE)=""
QUIT
+13 ; internal qualifier code
SET QUAL=$PIECE(G,U,PCE-1)
+14 SET QUAL1=$SELECT(QUAL="23":"Client#",QUAL="IG":"Ins. Policy#",QUAL="SY":"SSN",1:"Unknown")
+15 SET IBL=IBL+1
+16 DO SET^IBCNSP(IBL,OFFSET,"Subscriber Secondary ID: "_$PIECE(G,U,PCE))
+17 DO SET^IBCNSP(IBL,52,"ID Qual: "_QUAL_" ("_QUAL1_")")
+18 QUIT
End DoDot:1
+19 ;
+20 ; patient=subscriber so skip over patient ID# display
+21 IF +$PIECE(IBCDFND,U,16)=1
GOTO ID1
+22 ;
+23 ; blank line
SET IBL=IBL+1
DO SET^IBCNSP(IBL,2," ")
+24 SET IBL=IBL+1
+25 DO SET^IBCNSP(IBL,OFFSET," Patient Primary ID: "_$PIECE(G,U,1))
+26 ;
+27 ; patient secondary IDs
FOR PCE=9,11,13
Begin DoDot:1
+28 ; no secondary ID#
IF $PIECE(G,U,PCE)=""
QUIT
+29 ; internal qualifier code
SET QUAL=$PIECE(G,U,PCE-1)
+30 SET QUAL1=$SELECT(QUAL="23":"Client#",QUAL="IG":"Ins. Policy#",QUAL="SY":"SSN",1:"Unknown")
+31 SET IBL=IBL+1
+32 DO SET^IBCNSP(IBL,OFFSET," Patient Secondary ID: "_$PIECE(G,U,PCE))
+33 DO SET^IBCNSP(IBL,52,"ID Qual: "_QUAL_" ("_QUAL1_")")
+34 QUIT
End DoDot:1
+35 ;
ID1 ; end of section - 2 blank lines
+1 SET IBL=IBL+1
DO SET^IBCNSP(IBL,2," ")
+2 SET IBL=IBL+1
DO SET^IBCNSP(IBL,2," ")
IDQ ;
+1 QUIT
+2 ;
RIDER ; -- Personal policy riders
+1 NEW OFFSET,START,IBI,IBL,IBPR,IBPRD
+2 SET START=$ORDER(^TMP("IBCNSVP",$JOB,""),-1)+1
SET OFFSET=2
SET IBL=0
+3 DO SET^IBCNSP(START,OFFSET," Personal Riders ",IORVON,IORVOFF)
+4 SET IBI=""
FOR
SET IBI=$ORDER(^IBA(355.7,"APP",DFN,IBCDFN,IBI))
if 'IBI
QUIT
SET IBPR=$ORDER(^(IBI,0))
SET IBPRD=+$GET(^IBA(355.7,IBPR,0))
SET IBL=IBL+1
Begin DoDot:1
+5 DO SET^IBCNSP(START+IBL,OFFSET," Rider #"_IBL_": "_$$EXPAND^IBTRE(355.7,.01,IBPRD))
+6 QUIT
End DoDot:1
+7 SET IBL=IBL+1
DO SET^IBCNSP(START+IBL,OFFSET," ")
+8 SET IBL=IBL+1
DO SET^IBCNSP(START+IBL,OFFSET," ")
+9 QUIT
+10 ;
AI ; -- Add ins. verification entry
+1 ; called from ai^ibcnsp1
+2 ;
+3 ; -- see if current inpatient
+4 DO INP^VADPT
IF +VAIN(1)
Begin DoDot:1
+5 SET IBTRN=$ORDER(^IBT(356,"AD",+VAIN(1),0))
End DoDot:1
+6 ;
+7 SET IBXIFN=$ORDER(^IBE(356.11,"ACODE",85,0))
+8 ;
+9 ; -- if not tracking id allow selecting
+10 IF '$GET(IBTRN)
Begin DoDot:1
+11 WRITE !,"You can now enter a contact and relate it to a Claims Tracking Admission entry."
+12 SET DIC("A")="Select RELATED ADMISSION DATE: "
+13 SET DIC="^IBT(356,"
SET DIC(0)="AEQ"
SET D="ADFN"_DFN
SET DIC("S")="I $P(^(0),U,5)"
+14 DO IX^DIC
KILL DA,DR,DIC,DIE
IF $DATA(DUOUT)!($DATA(DTOUT))
SET IBQUIT=1
QUIT
+15 IF +Y>1
SET IBTRN=+Y
End DoDot:1
if IBQUIT
GOTO AIQ
+16 ;
+17 IF '$GET(IBTRN)
WRITE !!,"Warning: This contact is not associated with any care in Claims Tracking.",!,"You may only edit or view this contact using this action.",!
+18 ;
+19 ; -- select date
+20 SET IBOK=0
SET IBI=0
FOR
SET IBI=$ORDER(^IBT(356.2,"D",DFN,IBI))
if 'IBI
QUIT
IF $PIECE($GET(^IBT(356.2,+IBI,0)),U,4)=IBXIFN
IF $PIECE($GET(^(1)),U,5)=IBCDFN
SET IBOK=1
+21 IF IBOK
Begin DoDot:1
+22 SET DIC="^IBT(356.2,"
SET DIC("A")="Select Contact Date: "
+23 ;,DLAYGO=356.2
SET X="??"
SET DIC(0)="EQ"
SET DIC("S")="I $P($G(^(1)),U,5)=IBCDFN,$P(^(0),U,4)=IBXIFN"
+24 SET D="ADFN"_DFN
+25 DO IX^DIC
KILL DIC,DR,DA,DIE,D
IF $DATA(DUOUT)!($DATA(DTOUT))
SET IBQUIT=1
End DoDot:1
if IBQUIT
GOTO AIQ
+26 ;
+27 SET DIC="^IBT(356.2,"
SET DIC("A")="Select Contact Date: "
SET DIC("B")="TODAY"
+28 SET DIC("DR")=".02////"_$GET(IBTRN)_";.04////"_IBXIFN_";.05////"_DFN_";.19////1;1.01///NOW;1.02////"_DUZ_";1.05////"_IBCDFN
+29 SET DIC(0)="AEQL"
SET DIC("S")="I $P(^(0),U,5)=DFN,$P($G(^(1)),U,5)=IBCDFN,$P(^(0),U,4)=IBXIFN"
SET DLAYGO=356.2
+30 DO ^DIC
KILL DIC
+31 IF $DATA(DTOUT)!($DATA(DUOUT))!(+Y<1)
GOTO AIQ
+32 SET IBTRC=+Y
+33 IF $GET(IBTRC)
IF $GET(IBTRN)
IF '$PIECE(^IBT(356.2,+IBTRC,0),U,2)
SET DA=IBTRC
SET DIE="^IBT(356.2,"
SET DR=".02////"_$GET(IBTRN)
DO ^DIE
+34 ;
+35 ; -- edit ins ver type
+36 DO EDIT^IBTRCD1("[IBT INS VERIFICATION]",1)
AIQ QUIT
+1 ;
SPLIT(OFFSET,LABEL,DATA,DATARRY) ; ib*2*497 reformat data that is too large to fit on one line
+1 ;
+2 ; INPUTS
+3 ; OFFSET - left margin starting point (e.g., 2)
+4 ; LABEL - the data label that gets displayed alongside the actual data (e.g."subscriber name:)
+5 ; DATA - the value to be set for display on a line (e.g., IB, PATIENT")
+6 ; OUTPUT
+7 ; DATARRY - an array which contains the data to be displayed on more than 1 line
+8 ;
+9 NEW STRING,I,SAVPOS,QUIT
+10 SET STRING=LABEL_DATA
+11 IF $LENGTH(STRING)+OFFSET<81
SET DATARRY(1)=STRING
QUIT
+12 SET DATARRY(1)=$EXTRACT(STRING,1,80-OFFSET)
+13 SET SAVPOS=$LENGTH(DATARRY(1))
+14 SET QUIT=0
FOR I=2:1
Begin DoDot:1
+15 SET DATARRY(I)=$$REPEAT^XLFSTR(" ",$LENGTH(LABEL))_$EXTRACT(STRING,SAVPOS+1,$LENGTH(STRING))
+16 IF $TRANSLATE(DATARRY(I)," ")']""
KILL DATARRY(I)
SET QUIT=1
QUIT
+17 IF $LENGTH(DATARRY(I))+OFFSET>80
SET DATARRY(I)=$EXTRACT(DATARRY(I),1,80-OFFSET)
SET SAVPOS=SAVPOS+$LENGTH(DATARRY(I))
QUIT
+18 SET QUIT=1
End DoDot:1
if QUIT
QUIT
+19 QUIT