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

IBACCWLVS.m

Go to the documentation of this file.
IBACCWLVS ;EDE/TAZ - ACC (Automated Community Care) Encounters - Action Item related to Service Connection and Special Authority ; 12-SEP-2023
 ;;2.0;INTEGRATED BILLING;**770**;;Build 119
 ;;Per VA Directive 6402, this routine should not be modified.
 ;
 ; Reference to ^DGENA in ICR #3812
 Q
 ;
 ;;TAZ*IB*2*770v24;Update code to match ICRs
EN(DFN) ;EP - CALLED BY IBACCWLAIVIEW
 ; Input  -- DFN      Patient IEN
 ; Output -- None
 ;
 ;;TAZ*IB*2*770v20;Added VALMSG so bar shows default message.
 N VALMBG,VALMCNT,VALMHDR,VALMSG
 K ^TMP("IBACCWLVS",$J)
 D WAIT^DICD
 D EN^VALM("IBACC WL VS")
 Q
 ;
HDR ;Header code
 N VA
 D PID^VADPT
 S VALMHDR(1)=$E("Patient: "_$P($G(^DPT(DFN,0)),U),1,30)_" ("_VA("BID")_")"
 Q
 ;
INIT ;Init variables and list array
 D CLEAN^VALM10
 K ^TMP("IBACCWLVS",$J)
 S VALMBG=1,VALMCNT=0
 ;
 D BLD
 Q
 ;
BLD ;Build service connected/special a screen
 N CCNT,CTR,DATA,IBELIG,IBENR,IBRESLT,IENS,LINEVAR,SCCONDS,STR,VSARRAY
 N SORTED  ; WCJ;V38;EBILL-5407
 S IENS=DFN_","
 ;
 D CL^IBACV(DFN,,,.IBRESLT) ;SC/SA data
 D INS(DFN,.INS)  ;Insurance Related data
 S IBELIG=$$FINDCUR^DGENA(DFN)  ;ICR #3812 (Controlled)
 I $$GET^DGENA(IBELIG,.IBENR)   ;ICR #3812 (Controlled)
 ;
 ; D GETS^DIQ(2,IENS,".3731*","E","VSARRAY","VSERROR") ; WCJ;V38;EBILL-5407
 D GETS^DIQ(2,IENS,".3721*","IE","VSARRAY","VSERROR") ; WCJ;V38;EBILL-5407
 D SORTED(.VSARRAY,.SORTED) ; WCJ;V38;EBILL-5407
 ;
 S LINEVAR=""
 ;I IBRESLT(3) - "SERVICE CONNECTED"  ;$$SC^SDCO22(dfn,"")
 S DATA=$S($D(IBRESLT(3)):"YES",1:"NA")
 S LINEVAR=$$SETFLD^VALM1("Service Connected",LINEVAR,"LCAP"),LINEVAR=$$SETFLD^VALM1(DATA,LINEVAR,"LDATA")
 S LINEVAR=$$SETFLD^VALM1("SC Percentage",LINEVAR,"RCAP"),LINEVAR=$$SETFLD^VALM1(+$G(IBENR("ELIG","SCPER")),LINEVAR,"RDATA")
 S VALMCNT=VALMCNT+1 D SET^VALM10(VALMCNT,LINEVAR)
 ;
 I '$D(SORTED(0)) D
 . S DATA="Rated Disabilities"
 . S LINEVAR="",LINEVAR=$$SETFLD^VALM1(DATA,LINEVAR,"LCAP")
 . S LINEVAR=$$SETFLD^VALM1("NONE",LINEVAR,"LDATA")   ;WCJ;V38;EBILL-5407
 . S VALMCNT=VALMCNT+1 D SET^VALM10(VALMCNT,LINEVAR)
 ;I '$D(VSARRAY(2.05)) S LINEVAR=$$SETFLD^VALM1("NONE",LINEVAR,"LDATA")   ;WCJ;V38;EBILL-5407
 I $D(SORTED(0)) D
 . S LINEVAR="",LINEVAR=$$SETFLD^VALM1(SORTED(0),LINEVAR,"TABLEHDR")
 . S VALMCNT=VALMCNT+1 D SET^VALM10(VALMCNT,LINEVAR)
 . ;F CCNT=1:1 S CTR=CCNT_","_DFN_"," Q:'$D(VSARRAY(2.05,CTR))  D    ;WCJ;V38;EBILL-5407
 . F CCNT=1:1 Q:'$D(SORTED(CCNT))  D    ;WCJ;V38;EBILL-5407
 .. S LINEVAR=""
 ..; S DATA=VSARRAY(2.05,CTR,.01,"E")_" ("_VSARRAY(2.05,CTR,.02,"E")_")"  ;WCJ;V38;EBILL-5407
 .. S DATA=SORTED(CCNT)  ;WCJ;V38;EBILL-5407
 .. S LINEVAR=$$SETFLD^VALM1(DATA,LINEVAR,"COND")
 .. S VALMCNT=VALMCNT+1 D SET^VALM10(VALMCNT,LINEVAR)
 ;
 S LINEVAR=""
 ;I IBRESLT(7) - "COMBAT VETERAN"  ;$$CV^SDCO22(dfn,"","")
 S DATA=$S($D(IBRESLT(7)):"YES",1:"NA")
 S LINEVAR=$$SETFLD^VALM1("Combat Vet Elig Indicator",LINEVAR,"LCAP"),LINEVAR=$$SETFLD^VALM1(DATA,LINEVAR,"LDATA")
 S DATA=$S($G(IBENR("ELIG","CVELEDT"))'="":$$FMTE^XLFDT(IBENR("ELIG","CVELEDT")),1:"")
 S LINEVAR=$$SETFLD^VALM1("Combat Vet End Date",LINEVAR,"RCAP"),LINEVAR=$$SETFLD^VALM1(DATA,LINEVAR,"RDATA")
 S VALMCNT=VALMCNT+1 D SET^VALM10(VALMCNT,LINEVAR)
 ;
 S LINEVAR=""
 ;I IBRESLT(1) - "AGENT ORANGE"   ;$$AO^SDCO22(dfn,"")
 S DATA=$S($D(IBRESLT(1)):"YES",1:"NO")
 S LINEVAR=$$SETFLD^VALM1("Agent Orange Exposure Ind",LINEVAR,"LCAP"),LINEVAR=$$SETFLD^VALM1(DATA,LINEVAR,"LDATA")
 ;I IBRESLT(4) - "SW ASIA CONDITIONS"  ;$$EC^SDCO22(dfn,"")
 S DATA=$S($D(IBRESLT(4)):"YES",1:"NO")
 S LINEVAR=$$SETFLD^VALM1("Southwest Asia",LINEVAR,"RCAP"),LINEVAR=$$SETFLD^VALM1(DATA,LINEVAR,"RDATA")
 S VALMCNT=VALMCNT+1 D SET^VALM10(VALMCNT,LINEVAR)
 ;
 S LINEVAR=""
 ;I IBRESLT(2) - "IONIZING RADIATION"  ;$$IR^SDCO22(dfn,"")
 S DATA=$S($D(IBRESLT(2)):"YES",1:"NO")
 S LINEVAR=$$SETFLD^VALM1("Ionizing Radiation",LINEVAR,"LCAP"),LINEVAR=$$SETFLD^VALM1(DATA,LINEVAR,"LDATA")
 ;I IBRESLT(6) - "HEAD AND/OR NECK"  ;$$HNC^SDCO22(dfn,"")
 S DATA=$S($D(IBRESLT(6)):"YES",1:"NO")
 S LINEVAR=$$SETFLD^VALM1("Head and/or Neck",LINEVAR,"RCAP"),LINEVAR=$$SETFLD^VALM1(DATA,LINEVAR,"RDATA")
 S VALMCNT=VALMCNT+1 D SET^VALM10(VALMCNT,LINEVAR)
 ;
 S LINEVAR=""
 S DATA=$S($D(INS("IVF")):"YES",1:"NO")
 S LINEVAR=$$SETFLD^VALM1("In Vitro Fertilization",LINEVAR,"LCAP"),LINEVAR=$$SETFLD^VALM1(DATA,LINEVAR,"LDATA")
 S DATA=$S($G(IBENR("ELIG","CLE"))'="":"YES",1:"NO")
 S LINEVAR=$$SETFLD^VALM1("Camp LeJeune",LINEVAR,"RCAP"),LINEVAR=$$SETFLD^VALM1(DATA,LINEVAR,"RDATA")
 S VALMCNT=VALMCNT+1 D SET^VALM10(VALMCNT,LINEVAR)
 ;
 S LINEVAR=""
 ;I IBRESLT(8) - "PROJ 112/SHAD"  ;$$SHAD^SDCO22(dfn)
 S DATA=$S($D(IBRESLT(8)):"YES",1:"NO")
 S LINEVAR=$$SETFLD^VALM1("Project 112/SHAD",LINEVAR,"LCAP"),LINEVAR=$$SETFLD^VALM1(DATA,LINEVAR,"LDATA")
 ;I IBRESLT(5) - "MILITARY SEXUAL TRAUMA"  ;$$MST^SDCO22(dfn,"")
 S DATA=$S($D(IBRESLT(5)):"YES",1:"NO")
 S LINEVAR=$$SETFLD^VALM1("MST",LINEVAR,"RCAP"),LINEVAR=$$SETFLD^VALM1(DATA,LINEVAR,"RDATA")
 S VALMCNT=VALMCNT+1 D SET^VALM10(VALMCNT,LINEVAR)
 ;
 S LINEVAR=""
 S DATA=$S($D(INS("RC")):"YES",1:"NO")
 S LINEVAR=$$SETFLD^VALM1("Office of Regional Council",LINEVAR,"LCAP"),LINEVAR=$$SETFLD^VALM1(DATA,LINEVAR,"LDATA")
 S DATA=$S($D(INS("DOL")):"YES",1:"NO")
 S LINEVAR=$$SETFLD^VALM1("Dept of Labor",LINEVAR,"RCAP"),LINEVAR=$$SETFLD^VALM1(DATA,LINEVAR,"RDATA")
 S VALMCNT=VALMCNT+1 D SET^VALM10(VALMCNT,LINEVAR)
 ;
 S LINEVAR=""
 S DATA=$S($G(IBENR("PRIORITY"))'="":$G(IBENR("PRIORITY")),1:"NONE")
 S LINEVAR=$$SETFLD^VALM1("Priority Group",LINEVAR,"LCAP"),LINEVAR=$$SETFLD^VALM1(DATA,LINEVAR,"LDATA")
 I DATA'="NONE" D
 . S DATA="" I $G(IBENR("EFFDATE")) S DATA=$$FMTE^XLFDT(IBENR("EFFDATE"))
 . S LINEVAR=$$SETFLD^VALM1("Effective Date",LINEVAR,"RCAP"),LINEVAR=$$SETFLD^VALM1(DATA,LINEVAR,"RDATA")
 S VALMCNT=VALMCNT+1 D SET^VALM10(VALMCNT,LINEVAR)
 ;
BLDQ ;
 Q
 ;
BLNKLN ; Set blank line
 S LINEVAR=""
 S LINEVAR=$$SETFLD^VALM1("",LINEVAR,"LCAP")
 S VALMCNT=VALMCNT+1 D SET^VALM10(VALMCNT,LINEVAR)
 Q
 ;
INS(DFN,INS) ; Check if patient has IVF insurance
 N IBDOS,IBINS,INSCONM,INSCONUM,INSIEN,IVF
 S IBDOS=DT I $G(IBENCIFN) S IBDOS=$$GET1^DIQ(364.9,IBENCIFN,.12,"I")   ;Date of Service
 D ALL^IBCNS1(DFN,"IBINS",1,IBDOS,1)
 S (INSIEN,IVF)=0
 F  S INSIEN=$O(IBINS(INSIEN)) Q:'INSIEN  D
 . S INSCONUM=$P(IBINS(INSIEN,0),U)
 . S INSCONM=$$GET1^DIQ(36,INSCONUM_",",.01,"E")
 . I INSCONM["IVF" S INS("IVF")="" Q
 . I INSCONM["REGIONAL COUNCIL" S INS("RC")="" Q
 . I INSCONM["DEPT OF LABOR" S INS("DOL")=""
 Q
 ;
HELP ;Help code
 N X
 S X="?" D DISP^XQORM1 W !!
 Q
 ;
EXIT ;Exit code
 D CLEAN^VALM10
 D CLEAR^VALM1
 K ^TMP("IBACCWLVS",$J)
 Q
 ;
EXPND ;Expand code
 Q
 ;
SORTED(VSARRAY,RETURN) ; sorted rated disabilites like they do in registration screens
 ;
 N S1,S2
 N SORTED
 ;
 S S1=2.04
 Q:'$D(VSARRAY(S1))
 ;
 S S2=""
 F  S S2=$O(VSARRAY(S1,S2)) Q:S2=""  D
 . N DR
 . S DR=$G(VSARRAY(S1,S2,2,"I")) ; disability rating (%)
 . S SORTED(+DR,S2)=""
 ;
 N CNT,BLANK,SF
 S SF=2.04
 S CNT=0,BLANK="                                                    "
 S S1="A" F  S S1=$O(SORTED(S1),-1) Q:S1=""  D    ;get hightest % first
 .S S2="" F  S S2=$O(SORTED(S1,S2)) Q:S2=""  D
 .. S CNT=CNT+1
 .. N D1,D2,D3,D4,D5,D6,D7
 .. N DATA1,DATA2
 .. S D1="" I $D(VSARRAY(SF,S2,.01,"I")) S D1=$$GET1^DIQ(31,VSARRAY(SF,S2,.01,"I"),2)
 .. S D2=$E($G(VSARRAY(SF,S2,.01,"E")),1,36)
 .. S D3=$G(VSARRAY(SF,S2,2,"I"))
 .. S D4=$G(VSARRAY(SF,S2,3,"I"))
 .. S DATA=D1_"-"_D2_"("_D3_"%"_$S(+D4:" SC",1:"")_")"
 .. S D5=$G(VSARRAY(SF,S2,4,"I"))
 .. S D6=$G(VSARRAY(SF,S2,5,"E"))
 .. S D7=$G(VSARRAY(SF,S2,6,"E"))
 .. S RETURN(CNT)=$E(DATA_BLANK,1,49)_" "_$E(D5_BLANK,1,2)_" "_$E(D6_BLANK,1,12)_" "_$E(D7_BLANK,1,12)
 I CNT>0 S RETURN(0)="Rated Disability                                    EA Orig Eff Dt  Curr Eff Dt"
 Q