- IBBAACCT ;OAK/ELZ - PFSS ACCOUNT API ;15-MAR-2005
- ;;2.0;INTEGRATED BILLING;**286**;21-MAR-94
- ;;Per VHA Directive 10-93-142, this routine should not be modified.
- ;
- GET(IBBDFN,IBBARFN,IBBEVENT,IBBAPLR,IBBPV1,IBBPV2,IBBPR1,IBBDG1,IBBZCL,IBBDIV,IBBRAIEN,IBBSURG) ;
- ;
- N IBB,IBBIEN,IBBIENS,IBBERR,IBBVERR,IBBSUBTY,IBBVDEF,FDA,OUT,J,J1,X,Y,X1,X2,X3
- I '$G(IBBDFN)!($G(IBBEVENT)="") Q 0
- I $D(IBBPV1)<10 Q 0
- ;
- ;update account record
- S OUT=0
- I IBBARFN'="" D
- .S IBBIEN=IBBARFN
- .I IBBDFN'=$P($G(^IBBAA(375,IBBIEN,0)),U,3) S OUT=1 Q
- .;visit data
- .I $D(IBBPV1)>1 D
- ..I $G(IBBPV1(44))="" S IBBPV1(44)=$G(IBBPV2(8))
- ..I $P($G(^IBBAA(375,IBBIEN,"PV1")),U,44),$G(IBBPV1(44))'=$P($G(^IBBAA(375,IBBIEN,"PV1")),U,44),$P(^IBBAA(375,IBBIEN,0),U,2) D KAC144^IBBAADD(IBBIEN)
- ..S J=0 F S J=$O(IBBPV1(J)) Q:'J S $P(^IBBAA(375,IBBIEN,"PV1"),U,J)=IBBPV1(J)
- ..I $G(IBBPV1(50)) S $P(^IBBAA(375,IBBIEN,"PV1"),U,50)=IBBPV1(50)_";;;;OPP"
- .I $D(IBBPV2)>1 D
- ..S J=0 F S J=$O(IBBPV2(J)) Q:'J S $P(^IBBAA(375,IBBIEN,"PV2"),U,J)=IBBPV2(J)
- .;procedure
- .I $D(IBBPR1)>1 D
- ..S J=0,X="" F S J=$O(IBBPR1(J)) Q:'J I J'=4 S $P(X,U,J)=IBBPR1(J)
- ..S ^IBBAA(375,IBBIEN,"PR1")=X
- ..I $G(IBBPR1(4))'="" S ^IBBAA(375,IBBIEN,11)=IBBPR1(4)
- .;diagnosis
- .;if any dx sent, remove existing dx
- .I $D(IBBDG1)>1,$G(IBBDG1(1,3))=+$G(IBBDG1(1,3)) K ^IBBAA(375,IBBIEN,"DG1") D DX^IBBAACCT(.IBBDG1,IBBIEN)
- .I $G(IBBDG1(1,4)) S ^IBBAA(375,IBBIEN,12)=IBBDG1(1,4)
- .;classification
- .;if any classification sent, remove existing classification
- .I $D(IBBZCL)>1 D
- ..K ^IBBAA(375,IBBIEN,"ZCL")
- ..S (J,J1)=0 F S J=$O(IBBZCL(J)) Q:'J S J1=J1+1,X=J1_U_IBBZCL(J,2)_U_IBBZCL(J,3),^IBBAA(375,IBBIEN,"ZCL",J1,0)=X
- ..S ^IBBAA(375,IBBIEN,"ZCL",0)="^375.05A^"_J1_U_J1
- .;miscellaneous
- .I $G(IBBDIV) S ^IBBAA(375,IBBIEN,13)=IBBDIV
- .I $D(IBBSURG)>1 S ^IBBAA(375,IBBIEN,14)=$G(IBBSURG(1))_U_$G(IBBSURG(2))
- .I $G(IBBRAIEN) S ^IBBAA(375,IBBIEN,15)=$G(IBBRAIEN)
- .I $G(IBBSURG(1)) S $P(^IBBAA(375,IBBIEN,"PV1"),U,50)=IBBSURG(1)_";;;;SUR"
- I OUT Q 0
- ;
- ;request account reference number
- I IBBARFN="" D
- .I $G(IBBAPLR)'="" D
- ..S IBBAPLR=$E($TR(IBBAPLR,U,";"),1,25)
- ..I IBBAPLR'[";" S IBBAPLR=";"_IBBAPLR
- .L +^IBBAA(375,0):5
- .Q:'$T
- .S IBBIEN=$P(^IBBAA(375,0),U,3)+1,$P(^IBBAA(375,0),U,3)=IBBIEN
- .L -^IBBAA(375,0)
- .S ^IBBAA(375,IBBIEN,0)=IBBIEN
- .S IBBIENS=IBBIEN_","
- .S IBBERR="IBB(""DIERR"")"
- .S FDA(375,IBBIENS,.02)="G"
- .S FDA(375,IBBIENS,.03)=IBBDFN
- .S FDA(375,IBBIENS,.04)=$G(IBBAPLR)
- .D FILE^DIE("","FDA",IBBERR)
- .Q:$D(IBB("DIERR"))
- .S IBBARFN=IBBIEN
- .;visit data
- .I $D(IBBPV1)>1 D
- ..I $G(IBBPV1(44))="" S IBBPV1(44)=$G(IBBPV2(8))
- ..S J=0,X="" F S J=$O(IBBPV1(J)) Q:'J S $P(X,U,J)=IBBPV1(J)
- ..S ^IBBAA(375,IBBIEN,"PV1")=X
- ..I $G(IBBPV1(50)) S $P(^IBBAA(375,IBBIEN,"PV1"),U,50)=IBBPV1(50)_";;;;OPP"
- ..I $G(IBBPV1(3))="FEE BASIS" D
- ...S IBBPV1(44)=$P($G(IBBPV1(44)),".",1)
- ...S $P(^IBBAA(375,IBBIEN,"PV1"),U,3)="",$P(^("PV1"),U,44)=IBBPV1(44)
- ...S ^IBBAA(375,IBBIEN,16)=IBBPV1(3)
- .I $D(IBBPV2)>1 D
- ..S J=0,X="" F S J=$O(IBBPV2(J)) Q:'J S $P(X,U,J)=IBBPV2(J)
- ..S ^IBBAA(375,IBBIEN,"PV2")=X
- .;procedure
- .I $D(IBBPR1)>1 D
- ..I $D(IBBPR1(4)) S ^IBBAA(375,IBBIEN,11)=IBBPR1(4)
- ..S J=0,X="" F S J=$O(IBBPR1(J)) Q:'J I J'=4 S $P(X,U,J)=IBBPR1(J)
- ..S ^IBBAA(375,IBBIEN,"PR1")=X
- .;diagnosis
- .I $D(IBBDG1)>1 D
- ..I $D(IBBDG1(1,4)) S ^IBBAA(375,IBBIEN,12)=IBBDG1(1,4)
- ..I $G(IBBDG1(1,3))=+$G(IBBDG1(1,3)) D DX^IBBAACCT(.IBBDG1,IBBIEN)
- .;classification
- .I $D(IBBZCL)>1 D
- ..S (J,J1)=0 F S J=$O(IBBZCL(J)) Q:'J S J1=J1+1,X=J1_U_IBBZCL(J,2)_U_IBBZCL(J,3),^IBBAA(375,IBBIEN,"ZCL",J1,0)=X
- ..S ^IBBAA(375,IBBIEN,"ZCL",0)="^375.05A^"_J1_U_J1
- .;miscellaneous
- .I $G(IBBDIV) S ^IBBAA(375,IBBIEN,13)=IBBDIV
- .I $D(IBBSURG)>1 S ^IBBAA(375,IBBIEN,14)=$G(IBBSURG(1))_U_$G(IBBSURG(2))
- .I $G(IBBRAIEN) S ^IBBAA(375,IBBIEN,15)=$G(IBBRAIEN)
- .I $G(IBBSURG(1)) S $P(^IBBAA(375,IBBIEN,"PV1"),U,50)=IBBSURG(1)_";;;;SUR"
- ;
- ;exit here if lock failed or FM error (??)
- I 'IBBARFN Q +IBBARFN
- ;
- ;update event history
- I $L(IBBEVENT)=3 D EVENT^IBBAACCT(IBBARFN,IBBEVENT,"R")
- ;
- ;set xref
- S X1=IBBDFN,X2=$G(IBBPV1(3)),X3=$G(IBBPV1(44)) I X3 D
- .I X2'=+X2 S ^IBBAA(375,"AF",X1,X3,X2,IBBARFN)=""
- .I X2=+X2 S ^IBBAA(375,"AC",X1,X3,X2,IBBARFN)=""
- ;
- ;quit if test patient
- I $$TESTPAT^VADPT(IBBDFN) S $P(^IBBAA(375,IBBIEN,0),U,20)=1 Q IBBARFN
- ;
- ;call VDEF
- S IBBVDEF=0,X=IBBEVENT
- S IBBSUBTY=$S(X="A01":"PFAN",X="A03":"PFDE",X="A04":"PFOA",X="A05":"PFPA",X="A08":"PFUPI",X="A11":"PFCAN",X="A13":"PFCDE",X="A38":"PFCPA",1:"")
- I IBBSUBTY'="" S X=$T(QUEUE^VDEFQM) I X'="" S IBBVDEF=$$QUEUE^VDEFQM("ADT^"_IBBEVENT,"SUBTYPE="_IBBSUBTY_"^IEN="_IBBARFN,.IBBVERR,"PFSS OUTBOUND")
- ;
- Q +IBBARFN
- ;
- DX(DG1,IEN) ;file diagnosis on subfile #375.04
- N J,IBB,IBBIEN,IBBIENS,IBBERR,FDA
- S J=0 F S J=$O(DG1(J)) Q:'J Q:(DG1(J,3)'=+DG1(J,3)) D
- .S IBBIEN(1)=J
- .S IBBIENS="+1,"_IEN_","
- .S IBBERR="IBB(""DIERR"")"
- .S FDA(375.04,IBBIENS,.01)=J
- .S FDA(375.04,IBBIENS,.03)=DG1(J,3)
- .S FDA(375.04,IBBIENS,.06)=$G(DG1(J,6))
- .D UPDATE^DIE("","FDA","IBBIEN",IBBERR)
- Q
- ;
- EVENT(IBBARFN,IBBEVENT,IBBREAS,IBBHLMSG) ;update the event history subfile #375.099
- ;
- ;update event history
- N IBB,IBBIEN,IBBIENS,IBBERR,FDA
- Q:'$G(IBBARFN) Q:$G(IBBEVENT)=""
- S IBBIEN(1)=""
- S IBBIENS="+1,"_IBBARFN_","
- S IBBERR="IBB(""DIERR"")"
- S FDA(375.099,IBBIENS,.01)=$$NOW^XLFDT()
- S FDA(375.099,IBBIENS,.02)=IBBEVENT
- S FDA(375.099,IBBIENS,.03)=$G(IBBREAS)
- S FDA(375.099,IBBIENS,.04)=$G(IBBHLMSG)
- D UPDATE^DIE("","FDA","IBBIEN",IBBERR)
- Q
- ;
- EXTNUM(IBBDFN,IBBARFN) ;find external visit number
- N IBBIEN,IBBEXVN,IBBARRY,IBBERR
- S IBBEXVN="",IBBIEN=IBBARFN
- D GETS^DIQ(375,IBBIEN_",",".02;.03","I","IBBARRY","IBBERR")
- I $D(IBBERR("DIERR")) Q IBBEXVN
- I IBBARRY(375,IBBIEN_",",.03,"I")=IBBDFN S IBBEXVN=IBBARRY(375,IBBIEN_",",.02,"I")
- Q IBBEXVN
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HIBBAACCT 5936 printed Feb 18, 2025@23:34:41 Page 2
- IBBAACCT ;OAK/ELZ - PFSS ACCOUNT API ;15-MAR-2005
- +1 ;;2.0;INTEGRATED BILLING;**286**;21-MAR-94
- +2 ;;Per VHA Directive 10-93-142, this routine should not be modified.
- +3 ;
- GET(IBBDFN,IBBARFN,IBBEVENT,IBBAPLR,IBBPV1,IBBPV2,IBBPR1,IBBDG1,IBBZCL,IBBDIV,IBBRAIEN,IBBSURG) ;
- +1 ;
- +2 NEW IBB,IBBIEN,IBBIENS,IBBERR,IBBVERR,IBBSUBTY,IBBVDEF,FDA,OUT,J,J1,X,Y,X1,X2,X3
- +3 IF '$GET(IBBDFN)!($GET(IBBEVENT)="")
- QUIT 0
- +4 IF $DATA(IBBPV1)<10
- QUIT 0
- +5 ;
- +6 ;update account record
- +7 SET OUT=0
- +8 IF IBBARFN'=""
- Begin DoDot:1
- +9 SET IBBIEN=IBBARFN
- +10 IF IBBDFN'=$PIECE($GET(^IBBAA(375,IBBIEN,0)),U,3)
- SET OUT=1
- QUIT
- +11 ;visit data
- +12 IF $DATA(IBBPV1)>1
- Begin DoDot:2
- +13 IF $GET(IBBPV1(44))=""
- SET IBBPV1(44)=$GET(IBBPV2(8))
- +14 IF $PIECE($GET(^IBBAA(375,IBBIEN,"PV1")),U,44)
- IF $GET(IBBPV1(44))'=$PIECE($GET(^IBBAA(375,IBBIEN,"PV1")),U,44)
- IF $PIECE(^IBBAA(375,IBBIEN,0),U,2)
- DO KAC144^IBBAADD(IBBIEN)
- +15 SET J=0
- FOR
- SET J=$ORDER(IBBPV1(J))
- if 'J
- QUIT
- SET $PIECE(^IBBAA(375,IBBIEN,"PV1"),U,J)=IBBPV1(J)
- +16 IF $GET(IBBPV1(50))
- SET $PIECE(^IBBAA(375,IBBIEN,"PV1"),U,50)=IBBPV1(50)_";;;;OPP"
- End DoDot:2
- +17 IF $DATA(IBBPV2)>1
- Begin DoDot:2
- +18 SET J=0
- FOR
- SET J=$ORDER(IBBPV2(J))
- if 'J
- QUIT
- SET $PIECE(^IBBAA(375,IBBIEN,"PV2"),U,J)=IBBPV2(J)
- End DoDot:2
- +19 ;procedure
- +20 IF $DATA(IBBPR1)>1
- Begin DoDot:2
- +21 SET J=0
- SET X=""
- FOR
- SET J=$ORDER(IBBPR1(J))
- if 'J
- QUIT
- IF J'=4
- SET $PIECE(X,U,J)=IBBPR1(J)
- +22 SET ^IBBAA(375,IBBIEN,"PR1")=X
- +23 IF $GET(IBBPR1(4))'=""
- SET ^IBBAA(375,IBBIEN,11)=IBBPR1(4)
- End DoDot:2
- +24 ;diagnosis
- +25 ;if any dx sent, remove existing dx
- +26 IF $DATA(IBBDG1)>1
- IF $GET(IBBDG1(1,3))=+$GET(IBBDG1(1,3))
- KILL ^IBBAA(375,IBBIEN,"DG1")
- DO DX^IBBAACCT(.IBBDG1,IBBIEN)
- +27 IF $GET(IBBDG1(1,4))
- SET ^IBBAA(375,IBBIEN,12)=IBBDG1(1,4)
- +28 ;classification
- +29 ;if any classification sent, remove existing classification
- +30 IF $DATA(IBBZCL)>1
- Begin DoDot:2
- +31 KILL ^IBBAA(375,IBBIEN,"ZCL")
- +32 SET (J,J1)=0
- FOR
- SET J=$ORDER(IBBZCL(J))
- if 'J
- QUIT
- SET J1=J1+1
- SET X=J1_U_IBBZCL(J,2)_U_IBBZCL(J,3)
- SET ^IBBAA(375,IBBIEN,"ZCL",J1,0)=X
- +33 SET ^IBBAA(375,IBBIEN,"ZCL",0)="^375.05A^"_J1_U_J1
- End DoDot:2
- +34 ;miscellaneous
- +35 IF $GET(IBBDIV)
- SET ^IBBAA(375,IBBIEN,13)=IBBDIV
- +36 IF $DATA(IBBSURG)>1
- SET ^IBBAA(375,IBBIEN,14)=$GET(IBBSURG(1))_U_$GET(IBBSURG(2))
- +37 IF $GET(IBBRAIEN)
- SET ^IBBAA(375,IBBIEN,15)=$GET(IBBRAIEN)
- +38 IF $GET(IBBSURG(1))
- SET $PIECE(^IBBAA(375,IBBIEN,"PV1"),U,50)=IBBSURG(1)_";;;;SUR"
- End DoDot:1
- +39 IF OUT
- QUIT 0
- +40 ;
- +41 ;request account reference number
- +42 IF IBBARFN=""
- Begin DoDot:1
- +43 IF $GET(IBBAPLR)'=""
- Begin DoDot:2
- +44 SET IBBAPLR=$EXTRACT($TRANSLATE(IBBAPLR,U,";"),1,25)
- +45 IF IBBAPLR'[";"
- SET IBBAPLR=";"_IBBAPLR
- End DoDot:2
- +46 LOCK +^IBBAA(375,0):5
- +47 if '$TEST
- QUIT
- +48 SET IBBIEN=$PIECE(^IBBAA(375,0),U,3)+1
- SET $PIECE(^IBBAA(375,0),U,3)=IBBIEN
- +49 LOCK -^IBBAA(375,0)
- +50 SET ^IBBAA(375,IBBIEN,0)=IBBIEN
- +51 SET IBBIENS=IBBIEN_","
- +52 SET IBBERR="IBB(""DIERR"")"
- +53 SET FDA(375,IBBIENS,.02)="G"
- +54 SET FDA(375,IBBIENS,.03)=IBBDFN
- +55 SET FDA(375,IBBIENS,.04)=$GET(IBBAPLR)
- +56 DO FILE^DIE("","FDA",IBBERR)
- +57 if $DATA(IBB("DIERR"))
- QUIT
- +58 SET IBBARFN=IBBIEN
- +59 ;visit data
- +60 IF $DATA(IBBPV1)>1
- Begin DoDot:2
- +61 IF $GET(IBBPV1(44))=""
- SET IBBPV1(44)=$GET(IBBPV2(8))
- +62 SET J=0
- SET X=""
- FOR
- SET J=$ORDER(IBBPV1(J))
- if 'J
- QUIT
- SET $PIECE(X,U,J)=IBBPV1(J)
- +63 SET ^IBBAA(375,IBBIEN,"PV1")=X
- +64 IF $GET(IBBPV1(50))
- SET $PIECE(^IBBAA(375,IBBIEN,"PV1"),U,50)=IBBPV1(50)_";;;;OPP"
- +65 IF $GET(IBBPV1(3))="FEE BASIS"
- Begin DoDot:3
- +66 SET IBBPV1(44)=$PIECE($GET(IBBPV1(44)),".",1)
- +67 SET $PIECE(^IBBAA(375,IBBIEN,"PV1"),U,3)=""
- SET $PIECE(^("PV1"),U,44)=IBBPV1(44)
- +68 SET ^IBBAA(375,IBBIEN,16)=IBBPV1(3)
- End DoDot:3
- End DoDot:2
- +69 IF $DATA(IBBPV2)>1
- Begin DoDot:2
- +70 SET J=0
- SET X=""
- FOR
- SET J=$ORDER(IBBPV2(J))
- if 'J
- QUIT
- SET $PIECE(X,U,J)=IBBPV2(J)
- +71 SET ^IBBAA(375,IBBIEN,"PV2")=X
- End DoDot:2
- +72 ;procedure
- +73 IF $DATA(IBBPR1)>1
- Begin DoDot:2
- +74 IF $DATA(IBBPR1(4))
- SET ^IBBAA(375,IBBIEN,11)=IBBPR1(4)
- +75 SET J=0
- SET X=""
- FOR
- SET J=$ORDER(IBBPR1(J))
- if 'J
- QUIT
- IF J'=4
- SET $PIECE(X,U,J)=IBBPR1(J)
- +76 SET ^IBBAA(375,IBBIEN,"PR1")=X
- End DoDot:2
- +77 ;diagnosis
- +78 IF $DATA(IBBDG1)>1
- Begin DoDot:2
- +79 IF $DATA(IBBDG1(1,4))
- SET ^IBBAA(375,IBBIEN,12)=IBBDG1(1,4)
- +80 IF $GET(IBBDG1(1,3))=+$GET(IBBDG1(1,3))
- DO DX^IBBAACCT(.IBBDG1,IBBIEN)
- End DoDot:2
- +81 ;classification
- +82 IF $DATA(IBBZCL)>1
- Begin DoDot:2
- +83 SET (J,J1)=0
- FOR
- SET J=$ORDER(IBBZCL(J))
- if 'J
- QUIT
- SET J1=J1+1
- SET X=J1_U_IBBZCL(J,2)_U_IBBZCL(J,3)
- SET ^IBBAA(375,IBBIEN,"ZCL",J1,0)=X
- +84 SET ^IBBAA(375,IBBIEN,"ZCL",0)="^375.05A^"_J1_U_J1
- End DoDot:2
- +85 ;miscellaneous
- +86 IF $GET(IBBDIV)
- SET ^IBBAA(375,IBBIEN,13)=IBBDIV
- +87 IF $DATA(IBBSURG)>1
- SET ^IBBAA(375,IBBIEN,14)=$GET(IBBSURG(1))_U_$GET(IBBSURG(2))
- +88 IF $GET(IBBRAIEN)
- SET ^IBBAA(375,IBBIEN,15)=$GET(IBBRAIEN)
- +89 IF $GET(IBBSURG(1))
- SET $PIECE(^IBBAA(375,IBBIEN,"PV1"),U,50)=IBBSURG(1)_";;;;SUR"
- End DoDot:1
- +90 ;
- +91 ;exit here if lock failed or FM error (??)
- +92 IF 'IBBARFN
- QUIT +IBBARFN
- +93 ;
- +94 ;update event history
- +95 IF $LENGTH(IBBEVENT)=3
- DO EVENT^IBBAACCT(IBBARFN,IBBEVENT,"R")
- +96 ;
- +97 ;set xref
- +98 SET X1=IBBDFN
- SET X2=$GET(IBBPV1(3))
- SET X3=$GET(IBBPV1(44))
- IF X3
- Begin DoDot:1
- +99 IF X2'=+X2
- SET ^IBBAA(375,"AF",X1,X3,X2,IBBARFN)=""
- +100 IF X2=+X2
- SET ^IBBAA(375,"AC",X1,X3,X2,IBBARFN)=""
- End DoDot:1
- +101 ;
- +102 ;quit if test patient
- +103 IF $$TESTPAT^VADPT(IBBDFN)
- SET $PIECE(^IBBAA(375,IBBIEN,0),U,20)=1
- QUIT IBBARFN
- +104 ;
- +105 ;call VDEF
- +106 SET IBBVDEF=0
- SET X=IBBEVENT
- +107 SET IBBSUBTY=$SELECT(X="A01":"PFAN",X="A03":"PFDE",X="A04":"PFOA",X="A05":"PFPA",X="A08":"PFUPI",X="A11":"PFCAN",X="A13":"PFCDE",X="A38":"PFCPA",1:"")
- +108 IF IBBSUBTY'=""
- SET X=$TEXT(QUEUE^VDEFQM)
- IF X'=""
- SET IBBVDEF=$$QUEUE^VDEFQM("ADT^"_IBBEVENT,"SUBTYPE="_IBBSUBTY_"^IEN="_IBBARFN,.IBBVERR,"PFSS OUTBOUND")
- +109 ;
- +110 QUIT +IBBARFN
- +111 ;
- DX(DG1,IEN) ;file diagnosis on subfile #375.04
- +1 NEW J,IBB,IBBIEN,IBBIENS,IBBERR,FDA
- +2 SET J=0
- FOR
- SET J=$ORDER(DG1(J))
- if 'J
- QUIT
- if (DG1(J,3)'=+DG1(J,3))
- QUIT
- Begin DoDot:1
- +3 SET IBBIEN(1)=J
- +4 SET IBBIENS="+1,"_IEN_","
- +5 SET IBBERR="IBB(""DIERR"")"
- +6 SET FDA(375.04,IBBIENS,.01)=J
- +7 SET FDA(375.04,IBBIENS,.03)=DG1(J,3)
- +8 SET FDA(375.04,IBBIENS,.06)=$GET(DG1(J,6))
- +9 DO UPDATE^DIE("","FDA","IBBIEN",IBBERR)
- End DoDot:1
- +10 QUIT
- +11 ;
- EVENT(IBBARFN,IBBEVENT,IBBREAS,IBBHLMSG) ;update the event history subfile #375.099
- +1 ;
- +2 ;update event history
- +3 NEW IBB,IBBIEN,IBBIENS,IBBERR,FDA
- +4 if '$GET(IBBARFN)
- QUIT
- if $GET(IBBEVENT)=""
- QUIT
- +5 SET IBBIEN(1)=""
- +6 SET IBBIENS="+1,"_IBBARFN_","
- +7 SET IBBERR="IBB(""DIERR"")"
- +8 SET FDA(375.099,IBBIENS,.01)=$$NOW^XLFDT()
- +9 SET FDA(375.099,IBBIENS,.02)=IBBEVENT
- +10 SET FDA(375.099,IBBIENS,.03)=$GET(IBBREAS)
- +11 SET FDA(375.099,IBBIENS,.04)=$GET(IBBHLMSG)
- +12 DO UPDATE^DIE("","FDA","IBBIEN",IBBERR)
- +13 QUIT
- +14 ;
- EXTNUM(IBBDFN,IBBARFN) ;find external visit number
- +1 NEW IBBIEN,IBBEXVN,IBBARRY,IBBERR
- +2 SET IBBEXVN=""
- SET IBBIEN=IBBARFN
- +3 DO GETS^DIQ(375,IBBIEN_",",".02;.03","I","IBBARRY","IBBERR")
- +4 IF $DATA(IBBERR("DIERR"))
- QUIT IBBEXVN
- +5 IF IBBARRY(375,IBBIEN_",",.03,"I")=IBBDFN
- SET IBBEXVN=IBBARRY(375,IBBIEN_",",.02,"I")
- +6 QUIT IBBEXVN