Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: FBAAV5

FBAAV5.m

Go to the documentation of this file.
  1. FBAAV5 ;AISC/GRR - CREATE TRANSACTIONS FOR CH/CNH PAYMENTS ;11 Apr 2006 2:54 PM
  1. ;;3.5;FEE BASIS;**3,55,89,98,116,108,139,123,158**;JAN 30, 1995;Build 94
  1. ;;Per VA Directive 6402, this routine should not be modified.
  1. ;
  1. ; Reference to API $$CODEABA^ICDEX supported by ICR #5747
  1. ;
  1. D CKB9V^FBAAV01 I $G(FBERR) K FBERR Q
  1. G:FBSTAT="S"&(FBCHB="Y")&($P(Y(0),"^",18)'="Y") ^FBAAV6
  1. DETCH S FBTXT=0
  1. ; HIPAA 5010 - line items that have 0.00 amount paid are now required to go to Central Fee
  1. F K=0:0 S K=$O(^FBAAI("AC",J,K)) Q:K'>0 S Y(0)=$G(^FBAAI(K,0)),Y(2)=$G(^(2)),Y(3)=$G(^(3)),Y(5)=$G(^(5)),Y(7)=$G(^(7)) I Y(0)]"" D
  1. .N FBPICN,FBY
  1. .S FBPICN=K
  1. .S FBY=$S($P(Y(2),U,2):$P(Y(2),U,2),1:$P(Y(0),U,2))_U_+$P(Y(2),U,3)
  1. .I 'FBTXT S FBTXT=1 D NEWMSG^FBAAV01,STORE^FBAAV01,UPD^FBAAV0
  1. .D GOT
  1. D:FBTXT XMIT^FBAAV01 Q
  1. GOT ; process an inpatient invoice
  1. N DFN,FBADJ,FBADJA,FBADJR,FBADMIT,FBAUTHF,FBCDAYS,FBDISDT,FBDISTY,FBNPI
  1. N FBDRG,FBIENS,FBPA,FBPNAMX,FBVMID,FBX,FBFPPSID,FBCRARC,FBADJG,FBRRC1,FBRRC2
  1. N FB4LN,FBADMTDX,FBCSVDT,FBCSID,FBEDIF,FBCNTRN,FBAUTHNUM,FBDRGWT,FBBILAMT
  1. N FBIA,FBDODINV,FBCLAMT,FBPYMTH
  1. S FBIENS=K_","
  1. S FBCSVDT=$$FRDTINV^FBCSV1(K)
  1. I '$L($G(FBAASN)) D STATION^FBAAUTL
  1. S FBPSA=$$PSA(+$P(Y(0),U,20),+$G(FBAASN)) I $L(+FBPSA)'=3 S FBPSA=999
  1. S FBPAYT=$P(Y(0),"^",13),FBPAYT=$S(FBPAYT]"":FBPAYT,1:"V")
  1. S L=$P(Y(0),"^",3)
  1. S FBVID=$S($D(^FBAAV(L,0)):$P(^(0),"^",2),1:"")
  1. ;
  1. ; FB*3.5*123 - gather and format IPAC agreement ID and DoD invoice# for federal vendors
  1. S FBIA=+$P(Y(5),U,10) ; IPAC vendor agreement pointer (FB*3.5*123)
  1. S FBIA=$S(FBIA:$P($G(^FBAA(161.95,FBIA,0)),U,1),1:"") ; IPAC external agreement ID# or ""
  1. S FBDODINV=$P(Y(5),U,7) ; DoD invoice#
  1. I $$IPACREQD^FBAAMP(L) D
  1. . N FBIPIEN
  1. . ;
  1. . ; If IPAC is required, but IPAC ID is not on file, and only 1 active IPAC agreement exists, then save it/use it
  1. . I FBIA="" S FBIA=$$IPACID^FBAAMP(L,.FBIPIEN) I FBIA'="",FBIPIEN D
  1. .. N FBIAFDA
  1. .. S FBIAFDA(162.5,FBIENS,87)=FBIPIEN ; ipac vendor agreement ien
  1. .. D FILE^DIE("","FBIAFDA") ; update the database
  1. .. Q
  1. . I FBIA="" S FBIA="9999999999" ; if still not found, send error condition to Central Fee
  1. . ;
  1. . ; if IPAC is required, but DoD invoice# is not on file, then attempt to use PATIENT CONTROL NUMBER (field# 55)
  1. . I FBDODINV="" S FBDODINV=$P(Y(2),U,11) I FBDODINV'="" D
  1. .. N FBIAFDA
  1. .. S FBIAFDA(162.5,FBIENS,86)=FBDODINV ; DoD invoice# field
  1. .. D FILE^DIE("","FBIAFDA") ; update the database
  1. .. Q
  1. . I FBDODINV="" S FBDODINV="9999999999999999999999" ; if still not found, send error condition to Central Fee
  1. . Q
  1. ;
  1. S FBIA=$$LJ^XLFSTR(FBIA,"10T") ; format IPAC agreement ID to 10 characters
  1. S FBDODINV=$$LJ^XLFSTR(FBDODINV,"22T") ; format DoD invoice# to 22 characters
  1. ;
  1. S FBNPI=$$EN^FBNPILK(L)
  1. S FBVID=FBVID_$E(PAD,$L(FBVID)+1,11)
  1. S:FBPAYT="R" FBVID=$E(PAD,1,11)
  1. S FBVMID=$S($D(^FBAAV(L,0)):$P(^(0),"^",17),1:"")
  1. S FBVMID=$E(PAD,$L(FBVMID)+1,6)_FBVMID
  1. S POV=$P(Y(0),"^",18)
  1. S POV=$S(POV']"":"",POV="A":6,POV="B":7,POV="C":8,POV="D":9,POV="E":10,1:POV),POV=$S(POV']"":40,$D(^FBAA(161.82,POV,0)):$P(^(0),"^",3),1:40),FBPOV=POV
  1. S FBPATT=$P(Y(0),"^",19),FBPATT=$S(FBPATT]"":FBPATT,1:10)
  1. S FBFTD=$$AUSDT^FBAAV3($P(Y(0),"^",6)) ; from treatment date
  1. S FBTTD=$$AUSDT^FBAAV3($P(Y(0),"^",7)) ; to treatment date
  1. S FBSUSP=$P(Y(0),"^",11),FBSUSP=$S(FBSUSP="":" ",$D(^FBAA(161.27,FBSUSP,0)):$P(^(0),"^",1),1:" ")
  1. S FBINVN=$P(Y(0),"^",1)
  1. S FBINVN=$E("000000000",$L(FBINVN)+1,9)_FBINVN
  1. S FBDIN=$$AUSDT^FBAAV3($P(Y(0),"^",2)) ; invoice date rec'd
  1. S FBAP=$$AUSAMT^FBAAV3($P(Y(0),"^",9),9) ;AMOUNT PAID (#8)
  1. S FBAC=$$AUSAMT^FBAAV3($P(Y(0),"^",8),9) ;AMOUNT CLAIMED (#7)
  1. S FBPA=$$AUSAMT^FBAAV3($P(Y(0),"^",26),9) ;NVH PRICER AMOUNT (#26)
  1. S FBDRG=$P(Y(0),"^",24),FBDRG=$E(PAD,$L(FBDRG)+1,4)_FBDRG
  1. S FBAUTHF=$S($P(Y(0),U,5)["FB583":"U",1:"A") ; auth/unauth flag
  1. S FBCSID=$$LJ^XLFSTR($P(Y(2),"^",11),20," ") ; patient acct #
  1. S FBDRGWT=$P(Y(2),U,12),FBDRGWT=$$AUSNUM^FBAAV3(FBDRGWT,4,8) ;DRG WEIGHT
  1. S FBPYMTH=$P(Y(2),U,16),FBPYMTH=$$PYMTH^FBAAV0(FBPYMTH) ;PAYMENT METHODOLOGY
  1. S FBPYMTH=$$RJ^XLFSTR(FBPYMTH,1," ")
  1. S FBBILAMT=$P(Y(0),U,22),FBBILAMT=$$AUSAMT^FBAAV3(FBBILAMT,10,1) ;BILLED CHARGES
  1. S FBFPPSID=$$RJ^XLFSTR($P(Y(3),U),"12T",0) ; FPPS CLAIM ID
  1. S FBAUTHNUM=$P(Y(7),U) I FBAUTHNUM']"" S FBAUTHNUM=$$AUTHIP(FBIENS) ;AUTHORIZATION NUMBER
  1. S FBAUTHNUM=$$LJ^XLFSTR(FBAUTHNUM,"29T"," ")
  1. S FBCLAMT=$P(Y(7),U,2),FBCLAMT=$$AUSAMT^FBAAV3(FBCLAMT,9) ;CLAIM LEVEL ALLOWED AMOUNT
  1. S FBADMTDX=$P(Y(5),"^",9) ; admitting Dx pointer
  1. D
  1. . N FBCNTRP
  1. . S FBCNTRP=$P(Y(5),"^",8)
  1. . S FBCNTRN=$S(FBCNTRP:$P($G(^FBAA(161.43,FBCNTRP,0)),"^"),1:"")
  1. . S FBCNTRN=$$LJ^XLFSTR(FBCNTRN,20," ") ; contract number
  1. S FBEDIF=$S($P($G(^FBAAI(K,3)),"^")]"":"Y",1:" ") ;EDI flag
  1. ;
  1. K FBDX
  1. S FBDX(0)=" " ; initialize admitting Dx transmitted value to 7 spaces
  1. F M=1:1:25 S FBDX(M)=" " ;8 spaces
  1. I FBADMTDX D
  1. . N FBX
  1. . S FBX=$$ICD9^FBCSV1(FBADMTDX,FBCSVDT)
  1. . Q:FBX=""
  1. . ;DEM;139 ICD-10 Project - decimal is stripped only from ICD-10 diagnosis codes and not ICD-9 diagnosis codes.
  1. . I $$CODEABA^ICDEX(FBX,80,30)>0 S:FBX["." FBX=$P(FBX,".",1)_$P(FBX,".",2) ;DEM;139 ICD-10 Project
  1. . S FBDX(0)=FBX_$E(" ",$L(FBX)+1,7)
  1. S FBYDX=$G(^FBAAI(K,"DX")),FBYPOA=$G(^FBAAI(K,"POA"))
  1. F M=1:1:25 Q:$P(FBYDX,"^",M)="" D
  1. . S FBDX(M)=$$DX($P(FBYDX,"^",M),FBCSVDT,$P(FBYPOA,"^",M))
  1. K FBYDX,FBYPOA
  1. ;
  1. K FBPRC
  1. F M=1:1:25 S FBPRC(M)=" " ;7 SPACES
  1. S FBYPROC=$G(^FBAAI(K,"PROC"))
  1. F M=1:1:25 Q:$P(FBYPROC,"^",M)="" D
  1. . S FBPRC(M)=$$PROC($P(FBYPROC,"^",M),FBCSVDT)
  1. K FBYPROC
  1. ;
  1. S DFN=$P(Y(0),"^",4)
  1. ; Note: Prior to the following line Y(0) = the 0 node of file 162.5
  1. ;After the line Y(0) will equal the 0 node of file #2
  1. S VAPA("P")="",Y(0)=$S($D(^DPT(DFN,0)):^(0),1:"")
  1. D PAT^FBAAUTL2
  1. ; obtain date of birth, must follow call to PAT^FBAAUTL2 to overwrite
  1. ; the value returned from it
  1. S FBDOB=$$AUSDT^FBAAV3($P(Y(0),"^",3))
  1. D ADD^VADPT
  1. S FBPNAMX=$$HL7NAME^FBAAV2(DFN) ; patient name
  1. S FBST=$S($P(VAPA(5),"^",1)="":" ",$D(^DIC(5,$P(VAPA(5),"^",1),0)):$P(^(0),"^",2),1:" ")
  1. I $L(FBST)>2 S FBST="**"
  1. S:$L(FBST)'=2 FBST=$E(PAD,$L(FBST)+1,2)_FBST
  1. S FBCTY=$S($P(VAPA(7),"^",1)="":" ",FBST=" ":" ",$D(^DIC(5,$P(VAPA(5),"^",1),1,$P(VAPA(7),"^",1),0)):$P(^(0),"^",3),1:" ")
  1. I $L(FBCTY)'=3 S FBCTY=$E("000",$L(FBCTY)+1,3)_FBCTY
  1. S FBZIP=$S('+$G(VAPA(11)):VAPA(6),+VAPA(11):$P(VAPA(11),U),1:VAPA(6)),FBZIP=$TR(FBZIP,"-","")_$E("000000000",$L(FBZIP)+1,9)
  1. S FBADMIT=$$AUSDT^FBAAV3($P($$B9ADMIT(FBIENS),".")) ; admission date
  1. ; get and format discharge date and type
  1. S FBX=$$B9DISCHG(FBIENS)
  1. S FBDISDT=$$AUSDT^FBAAV3($P($P(FBX,U),".")) ; discharge date
  1. S FBDISTY=$$RJ^XLFSTR($P(FBX,U,2),3,0) ; discharge type
  1. K FBX
  1. ; get volume indicator (covered days)
  1. S FBCDAYS=$$RJ^XLFSTR($$GET1^DIQ(162.5,FBIENS,54),5,"0")
  1. ; obtain and format the adjustment codes and amounts
  1. ; get and format adjustment reason codes and amounts (if any)
  1. D CRARC(FBIENS,.FBCRARC)
  1. ;
  1. ; determine if 4th line needed (set FB4LN =1 when true)
  1. S FB4LN=1 I FBDX(11)=" ",FBPRC(11)=" " S FB4LN=0
  1. ;
  1. ; build 1st line
  1. S FBSTR=9_FBAASN_FBSSN_FBPAYT_FBPNAMX_FBVID_" "_FBAP_FBAAON_FBSUSP
  1. S FBSTR=FBSTR_FBPOV_FBPATT_FBFTD_FBTTD_FBDIN_FBINVN_FBVMID
  1. S FBSTR=FBSTR_$E(PAD,1,33)_FBST_FBCTY_FBZIP ; reserved for foreign addr
  1. S FBSTR=FBSTR_FBPSA_$P(FBY,U,2)_$E(PAD,1,14)
  1. F I=1:1:5 S FBSTR=FBSTR_FBDX(I)
  1. S FBSTR=FBSTR_"~"
  1. D STORE^FBAAV01
  1. ;
  1. ; build 2nd line
  1. S FBSTR=$$PADZ^FBAAV01(FBPICN,23)_$$AUSDT^FBAAV3(+FBY)
  1. F I=1:1:5 S FBSTR=FBSTR_FBPRC(I)
  1. S FBADJR=$S($D(FBCRARC(1)):$P(FBCRARC(1),U,2),1:""),FBADJR=$$RJ^XLFSTR(FBADJR,5," ")
  1. S FBADJA=$S($D(FBCRARC(1)):$P(FBCRARC(1),U,3),1:0),FBADJA=$$AUSAMT^FBAAV3(FBADJA,10,1)
  1. S FBSTR=FBSTR_FBAC_FBPA_FBDRG_" "_FBADMIT_FBDISDT_FBDOB_FBDISTY_FBCDAYS_FBAUTHF_FBADJR_FBADJA_FBNPI_FBDX(0)_FBCSID_FBEDIF_FBCNTRN
  1. S FBSTR=FBSTR_FBIA_FBDODINV_"~" ; IPAC data from FB*3.5*123
  1. D STORE^FBAAV01
  1. ;
  1. ; build 3rd line
  1. S FBSTR=""
  1. F I=6:1:10 S FBSTR=FBSTR_FBDX(I)
  1. F I=6:1:10 S FBSTR=FBSTR_FBPRC(I)
  1. S FBSTR=FBSTR_"~"
  1. D STORE^FBAAV01
  1. ;
  1. ; build 4th line
  1. S FBSTR=""
  1. I FB4LN D
  1. . F I=11:1:25 S FBSTR=FBSTR_FBDX(I)
  1. . F I=11:1:25 S FBSTR=FBSTR_FBPRC(I)
  1. S FBSTR=FBSTR_"~"
  1. D STORE^FBAAV01
  1. ;
  1. ; build 5th line FB*3.5*158
  1. S FBSTR=FBFPPSID
  1. S FBSTR=FBSTR_FBAUTHNUM ;Authorization Number
  1. S FBSTR=FBSTR_FBCLAMT ;Claim Level Allowed Amount
  1. S FBADJG=$S($D(FBCRARC(1)):$P(FBCRARC(1),U),1:""),FBADJG=$$RJ^XLFSTR(FBADJG,2," ")
  1. S FBRRC1=$S($D(FBCRARC(1)):$P(FBCRARC(1),U,4),1:""),FBRRC1=$$RJ^XLFSTR(FBRRC1,6," ")
  1. S FBRRC2=$S($D(FBCRARC(1)):$P(FBCRARC(1),U,5),1:""),FBRRC2=$$RJ^XLFSTR(FBRRC2,6," ")
  1. S FBSTR=FBSTR_FBADJG_FBRRC1_FBRRC2
  1. ;
  1. F FBI=2:1:5 D
  1. . S FBADJG=$S($D(FBCRARC(FBI)):$P(FBCRARC(FBI),U),1:""),FBADJG=$$RJ^XLFSTR(FBADJG,2," ")
  1. . S FBADJR=$S($D(FBCRARC(FBI)):$P(FBCRARC(FBI),U,2),1:""),FBADJR=$$RJ^XLFSTR(FBADJR,5," ")
  1. . S FBRRC1=$S($D(FBCRARC(FBI)):$P(FBCRARC(FBI),U,4),1:""),FBRRC1=$$RJ^XLFSTR(FBRRC1,6," ")
  1. . S FBRRC2=$S($D(FBCRARC(FBI)):$P(FBCRARC(FBI),U,5),1:""),FBRRC2=$$RJ^XLFSTR(FBRRC2,6," ")
  1. . S FBADJA=$S($D(FBCRARC(FBI)):$P(FBCRARC(FBI),U,3),1:0),FBADJA=$$AUSAMT^FBAAV3(FBADJA,10,1)
  1. . S FBSTR=FBSTR_FBADJG_FBADJR_FBRRC1_FBRRC2_FBADJA
  1. ;
  1. S FBSTR=FBSTR_FBDRGWT_FBBILAMT_FBPYMTH
  1. S FBSTR=FBSTR_" " ;Additional Payment Indicator
  1. S FBSTR=FBSTR_" " ;Additional Payment Type
  1. S FBSTR=FBSTR_$$PADZ^FBAAV01(0,30) ;Parent Internal Control Number
  1. S FBSTR=FBSTR_"~$"
  1. D STORE^FBAAV01
  1. Q
  1. ;
  1. AUTHIP(IENS) ;
  1. ;
  1. N REFNUM
  1. S REFNUM=""
  1. D GETS^DIQ(162.5,IENS,"4","I","FB")
  1. I $D(FB),FB(162.5,IENS,4,"I")["FB7078" D
  1. . S FB7078=$P(FB(162.5,IENS,4,"I"),";")
  1. . S:$D(^FB7078(FB7078,0)) REFNUM=$P(^FB7078(FB7078,0),U)
  1. Q REFNUM
  1. ;
  1. PSA(X,Y) ;call to set default Primary Service Area (PSA)
  1. ;to send to Austin.
  1. ;X = pointer to the institution file
  1. ;Y = default if unable to determine station number in file 4
  1. ;call returns the 3 digit station number only
  1. ;if Y undef return '0'
  1. I '$G(Y) S Y=0
  1. Q $S('X:+Y,$E($P($G(^DIC(4,+X,99)),U),1,3)'?3N:+Y,1:$E($P($G(^(99)),U),1,3))
  1. ;
  1. B9ADMIT(FBIENS) ; Determine Admission Date for a B9 payment
  1. ; input
  1. ; FBIENS
  1. ; returns admission date in internal FileMan format or null value
  1. N FB7078,FBRET
  1. S FBRET="" ;NULL
  1. ;
  1. S FB7078=$$GET1^DIQ(162.5,FBIENS,4,"I") ; associated 7078/583
  1. ;
  1. ; if invoice points to a 7078 authorization then get date from the 7078
  1. I $P(FB7078,";",2)="FB7078(" D
  1. . N FBY
  1. . S FBY=$G(^FB7078(+FB7078,0))
  1. . ; if fee program is civil hospital then return 7078 date of admission
  1. . I $P(FBY,U,11)=6 S FBRET=$P(FBY,U,15)
  1. . ; if fee program is CNH then return 7078 authorized from date
  1. . I $P(FBY,U,11)=7 S FBRET=$P(FBY,U,4)
  1. ;
  1. ; if invoice points to an unauthorized claim then use the treatment from
  1. ; date on the unauthorized claim
  1. I $P(FB7078,";",2)="FB583(" D
  1. . N FBY
  1. . S FBY=$G(^FB583(+FB7078,0))
  1. . S FBRET=$P(FBY,U,5)
  1. ;
  1. ; return the result
  1. Q FBRET
  1. ;
  1. B9DISCHG(FBIENS) ; Determine Discharge Date and Type for a B9 payment
  1. ; input
  1. ; FBIENS - Invoice IEN (file 162.5) with trailing comma
  1. ; returns discharge date in internal FileMan format or null value and
  1. ; discharge type or null value
  1. N FB7078,FBDISDT,FBDISTY
  1. S (FBDISDT,FBDISTY)=""
  1. ;
  1. S FB7078=$$GET1^DIQ(162.5,FBIENS,4,"I") ; associated 7078/583
  1. ;
  1. ; if invoice points to an unauthorized claim then use the treatment to
  1. ; date on the unauthorized claim
  1. I $P(FB7078,";",2)="FB583(" D
  1. . N FBY
  1. . S FBY=$G(^FB583(+FB7078,0))
  1. . S FBDISDT=$P(FBY,U,6)
  1. . S FBDISTY=$$GET1^DIQ(162.5,FBIENS,"6.5:1") ; discharge type
  1. ;
  1. ; if invoice points to a 7078 authorization then get date from the 7078
  1. I $P(FB7078,";",2)="FB7078(" D
  1. . N FBY
  1. . S FBY=$G(^FB7078(+FB7078,0))
  1. . ;
  1. . ; if fee program is civil hospital then return 7078 date of discharge
  1. . I $P(FBY,U,11)=6 D
  1. . . S FBDISDT=$P(FBY,U,16) ; discharge date
  1. . . S FBDISTY=$$GET1^DIQ(162.5,FBIENS,"6.5:1") ; discharge type
  1. . ;
  1. . ; if fee program is CNH then get date & type from CNH activity file
  1. . I $P(FBY,U,11)=7 D
  1. . . N DFN,FBADMIT,FBADMITR,FBACTA,FBAUTHP,FBDA,FBDTR
  1. . . S DFN=$P(FBY,U,3) ; patient IEN
  1. . . S FBADMIT=$P($P(FBY,U,4),".") ; CNH admission date
  1. . . S FBAUTHP=+$O(^FBAAA("AG",FB7078,DFN,0)) ; authorization 'pointer'
  1. . . ;
  1. . . ; find the admission entry in CNH ACTIVITY file
  1. . . S FBACTA=0 ; init the admission activity ien
  1. . . S FBADMITR=9999999-FBADMIT ; reverse admission date
  1. . . S FBDTR=9999999-$$FMADD^XLFDT(FBADMIT,1) ; start loop
  1. . . F S FBDTR=$O(^FBAACNH("AF",DFN,FBDTR)) Q:'FBDTR!($P(FBDTR,".")>FBADMITR) D Q:FBACTA
  1. . . . S FBDA=0 F S FBDA=$O(^FBAACNH("AF",DFN,FBDTR,FBDA)) Q:'FBDA D
  1. . . . . S FBY=$G(^FBAACNH(FBDA,0))
  1. . . . . I $P(FBY,U,3)="A",$P(FBY,U,10)=FBAUTHP S FBACTA=FBDA ; found it
  1. . . Q:'FBACTA ; could not find the admission activity
  1. . . ;
  1. . . ; get date from associated discharge (if any) in CNH ACTIVITY file
  1. . . S FBDA=" "
  1. . . F S FBDA=$O(^FBAACNH("AC",FBACTA,FBDA),-1) Q:FBDA'>0 D Q:FBDISDT
  1. . . . S FBY=$G(^FBAACNH(FBDA,0))
  1. . . . I $P(FBY,U,3)="D" D
  1. . . . . S FBDISDT=$P($P(FBY,U),".")
  1. . . . . S FBDISTY=$P(FBY,U,8)
  1. . . . . I FBDISTY'="" S FBDISTY=FBDISTY+100
  1. ;
  1. ; return the result
  1. Q FBDISDT_"^"_FBDISTY
  1. ;
  1. DX(FBDX,FBDATE,FBPOA) ; format diagnosis & POA for B9
  1. ; Input
  1. ; FBDX = pointer to file 80 (ICD diagnosis)
  1. ; FBDATE = fileman date
  1. ; FBPOA = (optional) poiner to file 161.94 (present on admission)
  1. ; Returns formatted string of 8 characters
  1. N FBRET,FBX,FBX2
  1. S FBRET=" "
  1. I FBDX D
  1. . S FBX=$$ICD9^FBCSV1(FBDX,FBDATE)
  1. . Q:FBX=""
  1. . ;DEM;139 ICD-10 Project - decimal is stripped only from ICD-10 diagnosis codes and not ICD-9 diagnosis codes.
  1. . I $$CODEABA^ICDEX(FBX,80,30)>0 S:FBX["." FBX=$P(FBX,".",1)_$P(FBX,".",2) ;DEM;139 ICD-10 Project
  1. . S FBX=FBX_$E(" ",$L(FBX)+1,7)
  1. . S FBX2=$S($G(FBPOA):$P($G(^FB(161.94,FBPOA,0)),"^"),1:"")
  1. . S:FBX2="" FBX2=" "
  1. . S FBRET=FBX_FBX2
  1. Q FBRET
  1. ;
  1. PROC(FBPROC,FBDATE) ; format procedure for B9
  1. ; Input
  1. ; FBPROC = pointer to file 80.1 (ICD operation/procedure)
  1. ; FBDATE = fileman date
  1. ; Returns formatted string of 7 characters
  1. N FBRET,FBX
  1. S FBRET=" "
  1. I FBPROC D
  1. . S FBX=$$ICD0^FBCSV1(FBPROC,FBDATE)
  1. . Q:FBX=""
  1. . S FBX=FBX_$E(" ",$L(FBX)+1,7)
  1. . S FBRET=FBX
  1. Q FBRET
  1. ;
  1. CRARC(FBIENS,FBCRARC) ; load CARCs and RARCs
  1. ;
  1. N FBADJ,FBRRMK
  1. D LOADADJ^FBCHFA(FBIENS,.FBADJ)
  1. D LOADRR^FBCHFR(FBIENS,.FBRRMK)
  1. D CRARC^FBAAUTL(.FBADJ,.FBRRMK,.FBCRARC)
  1. Q
  1. ;FBAAV5