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

IBACCWL1.m

Go to the documentation of this file.
IBACCWL1 ;EDE/TPF - ACC (Automated Community Care) Encounters - COMMON LIST TEMPLATE API (Cont) ; 12-SEP-2023
 ;;2.0;INTEGRATED BILLING;**770**;21-MAR-2024;Build 119
 ;;Per VA Directive 6402, this routine should not be modified.
 Q
 ;This is a generic ACC (Automated Community care Claims) worklist LM (List Manager) generated
 ;option for working claims placed in an exception status by the incoming ACC claim processor
 ;
 ;D INIT^XPDID   ;ICR# 2172
 ;
SET(X,VALMCNT,RECORDNUM,IEN399,GREF) ;EP -
 ;
 S VALMCNT=VALMCNT+1
 S @GREF@(VALMCNT,0)=X
 S @GREF@(VALMCNT,"IEN3649",1)=$P($G(IEN399),U,2)
 S @GREF@(VALMCNT,"IEN399",1)=$P($G(IEN399),U)
 S:$P($G(IEN399),U,2)'="" @GREF@("IEN3649",$P($G(IEN399),U,2))=$G(VALMCNT,0)
 S @GREF@("IDX",VALMCNT,RECORDNUM)=""
 ;
 Q
 ;
SETSUB(X,VALMCNT,LINENUM,IEN,GREF,SUBLINE) ;EP -
 S VALMCNT=VALMCNT+1
 S @GREF@(LINENUM,SUBLINE)=X
 ;
 Q
 ;
PULLLIST(IBDAYSMAX,IBBILLER,IBDIV,IBSORT,EEPULL) ;EP - PULL DATA FROM FILE #364.9
 ;
 N ACCENC
 N ASSGNGRP,AUTH,BILLRETURN,BIREPREADY,ERROR,FIELDS,FILE,FIRSTNAME,FLAGS,FORMTYPE,FROM,IBIFN,IBENCIFN,IENS,IDENTIFIER,INDEX,LASTNAME,LISTRETURN,MIDNAME,NEWSCREEN
 ;TAZ;IB*2.0*770v20;EBILL-4965 - Added REASONS to the New list
 N PATDOB,PATSSN,PART,PATTYPE,PREVATC,PROCTYPE,PROVIDER,PROVNPI,PRIMDX,PRIMINS,PTNAME,REASCODE,REASON,REASONS,REASSGRP
 N RETURN,RETURNREC,SCREEN,SITENUM,STATUS,SECINS,TEMPRETURN,TERTINS,X12CLAIM
 N CPUSTART,CPUEND,CPUELAPSED
 N LINENUM,XPDIDTOT,XPDIDVT,IOBM  ;TPF XINDEX
 ;
 ;TPF;IB*2*770v38;EBILL-5485
 S (IBACCWLVELEV,IBACCWLEELEV,IBACCWLRURREVLEV)=0  ;RESET CHILD LEVEL TO 0
 ;
 S PART(1)=USERGROUP
 S:PART(1)="SUP" PART(1)=""  ;FOR DEVELOPERS AND DEBUGGING
 I '$D(PART) W !!,"CANNOT DO PULL IF NO USER GROUP!!" Q
 ;
 S FILE=364.9
 S IENS=""
 S FIELDS=";.02I;.03I;.04I;.11I;.12EI;.15;.2EI;2.01EI;2.02EI"
 ;
 S FLAGS="IE"
 S FROM(1)=""
 ;S MAXNUMBER=20000  ;SET IN A PARAMETER FILE?
 ;                                             
 S INDEX="AC"
 S SCREEN="I $P(^(0),U,16)'=2,($P(^(0),U,16)'=3)"
 ;
 S NEWSCREEN="I $$DAYSSCREEN^IBACCWLUTIL(DT,$P(^(3),U,3),"_$G(IBDAYSMAX)_")"   ;CHANGE TO ASSIGNED DATE ;TPF;IB*2*770v20;EBILL-4969
 I $D(IBDIV) S NEWSCREEN=NEWSCREEN_",($P(^(0),U,20)'=""""&$D(IBDIV($P(^(0),U,20))))"  ;WRONG? THIS CODE ASSUMES DIVISION IS STORED IN FIELD .2 OF #364.9  ;TPF;IB*2*770v18;EBILL-4623;FOR SUBSORTS OR "FILTER"
 ;
 S SCREEN=SCREEN_" "_NEWSCREEN
 S IDENTIFIER=""
 ;
 ;TPF;IB*2*770v20;EBILL-4631;FOR SORT "FILTER"
 D:$D(IBSORTFIL) ADDFILTERS^IBACCWLUTIL2(.SCREEN,.IBSORTFIL)
 ;
 K ^TMP("IBACCUTIL",$J)
 S LISTRETURN="^TMP(""IBACCUTIL"",$J,"""_USERGROUP_""")"
 K @LISTRETURN
 ;
 S CPUSTART=$$CPUTIME^XLFSHAN
 D INIT^XPDID   ;ICR #2172 (Supported)
 D TITLE^XPDID("LOADING "_USERGROUP_" ENCOUNTERS NOW...") ;ICR #2172 (Supported)
 W !!,"NUMBER OF RECORDS LOADING "_$G(MAXNUMBER)
 W !,"CALLING DATA EXTRACTION API"
 ;
 W !!,"SEARCHING RECORDS BASED ON USER CRITERIA"
 ;
 D LIST^DIC(FILE,IENS,FIELDS,FLAGS,MAXNUMBER,.FROM,.PART,INDEX,.SCREEN,IDENTIFIER,LISTRETURN,"ERROR")
 ;
 S XPDIDTOT=$P($G(@LISTRETURN@("DILIST",0)),U)   ;SET FOR PROGRESS BAR
 ;
 S CPUEND=$$CPUTIME^XLFSHAN
 S CPUELAPSED=$$ETIMEMS^XLFSHAN(CPUSTART,CPUEND)
 I $$ISTESTER^IBACCWLUTIL($G(DUZ)) D
 .W !!,"TIME ELAPSE FOR WORK GROUP DATA EXTRACTION"
 .W !,"CPU TIME: "_CPUELAPSED
 .W !,"CPU seconds: "_(+CPUELAPSED*.015)
 .N DIR  ;TPF;IB*2*770v47;EBILL-6042
 .D PAUSE^VALM1
 ;
 I $D(ERROR) D  Q
 .W !!,"Error occurred Main Extract. Report to eBilling"
 .W !,$G(ERROR("DIERR",1,"TEXT",1))
 .D APPERROR^%ZTER("ERROR ON LIST^DIC CALL - PULLIST^IBACCWL1 - Call eBilling")  ;TPF;IB*2*770v34
 .N DIR  ;TPF;IB*2*770v47;EBILL-6042
 .D PAUSE^VALM1
 ;
 W !,"EXTRACTING DATA AND SORTING WORKLIST"
 ;
 S CPUSTART=$$CPUTIME^XLFSHAN
 ;
 S RETURNREC=0
 F  S RETURNREC=$O(@LISTRETURN@("DILIST","ID",RETURNREC)) Q:'RETURNREC!(+RETURNREC'=RETURNREC)  D
 .S IBENCIFN=@LISTRETURN@("DILIST",2,RETURNREC)  ;IEN OF #364.9
 .S IBIFN=$G(@LISTRETURN@("DILIST","ID",RETURNREC,2.02,"I"))  ;PTR TO 399
 .;
 .W:'(RETURNREC#1000) "."
 .;
 .S XPDIDVT=1
 .S IOBM=IOSL-4
 .D UPDATE^XPDID(RETURNREC) ;ICR #2172 (Supported)
 .;
 .K @LISTRETURN@("DILIST",2,RETURNREC)
 .K @LISTRETURN@("DILIST","ID",RETURNREC)
 .;
 .D PULL3649(IBIFN,IBENCIFN,.ENCRETURN,RETURNREC,EEPULL)
 .;
 ;
 S CPUEND=$$CPUTIME^XLFSHAN
 S CPUELAPSED=$$ETIMEMS^XLFSHAN(CPUSTART,CPUEND)
 I $$ISTESTER^IBACCWLUTIL($G(DUZ)) D
 .W !!,"TIME ELAPSE FOR WL CREATION AND SORTING"
 .W !,"CPU TIME: "_CPUELAPSED
 .W !,"CPU seconds: "_(+CPUELAPSED*.015)
 .N DIR  ;TPF;IB*2*770v47;EBILL-6042
 .D PAUSE^VALM1
 ;
 S (LINENUM,VALMCNT)=0
 D SETARRAY(.LINENUM,.VALMCNT)
 ;
 D EXIT^XPDID("RECORD LOAD COMPLETE") ;ICR #2172 (Supported)
 I '$D(IOUON)!'$D(IORVON) D ENS^%ZISS
 K ^TMP("IBACCUTIL",$J)
 ;
 Q
 ;
PULL3649(IBIFN,IBENCIFN,ENCRETURN,RETURNREC,EEPULL) ;EP -
 ;
 N ACTRETURN,ACTCODEIENS,BILLRETURN,ENCIENS,ERROR,FLAGS,FIELDS,LASTONE,PREVACTIVITY,PREVACTIEN,REASIEN,REASONS,REASONPTR,REASCODE,REASERROR,REASONPT,RETURN,SSN
 N RSNPTR  ;TPF XINDEX
 ;
 S ENCIENS=IBENCIFN_","
 S FIELDS=".01;.02;.03;.04;.05;.06;.07;.08;.09;.1;.11;.12;.13;.14;.15;.16;.17;.18;.2"
 S FIELDS=FIELDS_";.23;.25;.26;.27;.28;.29;.3;2.01;2.02;2.03;3.01;3.03;3.04"  ;TPF;IB*2*770v26;EBILL-5242
 S FLAGS="ERI"
 ;
 I $G(EEPULL) D
 .S FLAGS="ERIN"
 .S FIELDS="**"
 S RETURN="^TMP(""IBACCUTIL"",$J,"_RETURNREC_")"
 K @RETURN
 ;
 D GETS^DIQ(364.9,ENCIENS,FIELDS,FLAGS,RETURN,"ERROR")
 ;
 I $D(ERROR) D  Q
 .W !!,"Error occurred in file #364.9 extract. Report to eBilling"
 .W !,$G(ERROR("DIERR",1,"TEXT",1))
 .N DIR  ;TPF;IB*2*770v47;EBILL-6042
 .D PAUSE^VALM1
 ;
 S PREVACTIEN=$O(^IBA(364.9,+ENCIENS,4,99999),-1)
 I PREVACTIEN D
 .;S ACTCODEIENS=$P(^IBA(364.9,+ENCIENS,4,PREVACTIEN,0),U,3)_","
 .S ACTCODEIENS=$P($G(^IBA(364.9,+ENCIENS,4,PREVACTIEN,0)),U,3)  ;TPF;IB*2*770v48
 .Q:ACTCODEIENS=""
 .S ACTCODEIENS=ACTCODEIENS_","
 .D GETS^DIQ(364.92,ACTCODEIENS,".01;.02;","E","ACTRETURN","ACTERROR")
 .S PREVACTIVITY=$G(ACTRETURN(364.92,ACTCODEIENS,.01,"E"))_" "_$E($G(ACTRETURN(364.92,ACTCODEIENS,.02,"E")),1,50)
 .S ^TMP("IBACCUTIL",$J,RETURNREC,364.9,ENCIENS,"PREVACT","E")=PREVACTIVITY
 ;
 ;TAZ;IB*2.0*770v20;EBILL-4965 - Display only the Error Code Text applicable to the worklist
 D GETS^DIQ(364.9,ENCIENS,"4*;5*","EIN","REASONS","ERROR")
 I $D(REASONS(364.95)) D
 . N RSN,RSNARY,RSNDATA,RSNIEN
 . S REASON="",RSNIEN=0
 . F  S RSNIEN=$O(REASONS(364.95,RSNIEN)) Q:'RSNIEN  D  I REASON]"" Q
 .. I USERGROUP'=$G(REASONS(364.95,RSNIEN,.03,"I")) Q
 .. S RSNPTR=$G(REASONS(364.95,RSNIEN,.01,"I"))_","
 .. D GETS^DIQ(364.91,RSNPTR,".01;.02","E","RSNDATA","ERROR")
 .. S REASON=$$RJ^XLFSTR($G(RSNDATA(364.91,RSNPTR,.01,"E")),3," ")_" "_$G(RSNDATA(364.91,RSNPTR,.02,"E"))
 . I REASON="" S REASON="PASSED FROM "_$G(REASONS(364.94,$O(REASONS(364.94,""),-1),.04,"E"))
 . S ^TMP("IBACCUTIL",$J,RETURNREC,364.9,ENCIENS,"REASONS","E")=REASON
 ;
 ;TPF;IB*2*770v18;EBILL-4623
 I $D(VALMDDF("SSN")) D
 .I $P(VALMDDF("SSN"),U,3)'=9 D
 ..S ^TMP("IBACCUTIL",$J,RETURNREC,364.9,ENCIENS,"PATIENT SSN","E")=$E($G(^TMP("IBACCUTIL",$J,RETURNREC,364.9,ENCIENS,"PATIENT SSN","E")),6,9)
 ;
 I $G(IBIFN) D PULL399(IBIFN,.BILLRETURN,RETURNREC,EEPULL)
 ;
 D SORTSET^IBACCWLSORT1(RETURN,ENCIENS,.BILLRETURN,IBIFN,RETURNREC)
 ;
 K RETURN,ENCIENS
 ;
 Q
 ;
PULL399(IBIFN,BILLRETURN,RETURNREC,FULLPULL) ;EP - PULL DATA FROM 399
 ;
 N BILLIENS,ERROR,FIELDS,FLAGS
 ;
 S BILLIENS=IBIFN_","
 S FIELDS=".01;.02;.03;.05;.19;.22;11;101;102;151;201;202"
 S FLAGS="ERIN"
 ;
 I $G(FULLPULL) D
 .S FLAGS="ERIN"
 .S FIELDS="**"
 ;
 D GETS^DIQ(399,BILLIENS,FIELDS,FLAGS,"BILLRETURN","ERROR")
 ;
 I $D(ERROR) D  Q
 .W !!,"Error occurred in file #399 extract. Report to eBilling"
 .W !,$G(ERROR("DIERR",1,"TEXT",1))
 .N DIR  ;TPF;IB*2*770v47;EBILL-6042
 .D PAUSE^VALM1
 ;
 D GETS^DIQ(399.0304,BILLIENS_"1,","**",FLAGS,"BILLRETURN","ERROR")
 ;
 Q
 ;
SETARRAY(LINENUM,VALMCNT) ;EP - NEW SET ARRAY WITH NEW SORT ^TMP("IBACCUTIL",$J,"SORTED"  SORTED DATA
 ;
 N ASSIGNEDGRP,BILLIEN,BILLNUM,BILLIENS,CHARGEAMT,CLAIMNUM,CPT,DATAFLAG,DATEASSIGNED,DAYSONWL,DAYSONGRPWL,DIVISION,DIVNAME,DOB,ENCIEN,EXTSERVDATE,FILENUM,FILENUM,FIELDNAME,FIELDVALUEREF,FIRSTDAY,FORMTYPE,GLOREF
 N OLDIENS,PAIDAMT,PATIEN,PATNOTFOUND,PATTYPE,PAYERCON,PREVACT,PRIDX,PRIMESORT,PRIMINSUR,PROVIDER,PROVNPI,PTIEN,PTNAME,REASCODE,ROOTREF,SECINSUR,SECONDX,SECSORT,SERVCON
 N SORTCOUNT,SORTTYPE,SSN,STATUS,TERTINSUR,TERTSORT,TODAY,VISMARK,X1,X2,X  ;TPF;IB*2*770v11;EBILL-4507
 N SERVFACNM,SERVFACNPI  ;TPF;IB*2*770v11;EBILL-4507
 N PRIMDXDESC  ;TPF XINDEX
 ;
 S SORTCOUNT=0
 F SORTTYPE="K# SORTED","NO K# SORTED" D
 .;
 .S ROOTREF="^TMP(""IBACCUTIL"","_$J_","""_SORTTYPE_""")"
 .S OLDIENS="START"
 .S GLOREF=ROOTREF
 .F  S GLOREF=$Q(@GLOREF) Q:GLOREF=""  Q:$QS(GLOREF,3)'=SORTTYPE  D
 ..;
 ..I SORTTYPE="NO K# SORTED",'SORTCOUNT D
 ...S SORTCOUNT=1
 ...;
 ...;INSERT K# SEPARATOR LINE
 ...I $D(^TMP("IBACCUTIL",$J,"K# SORTED")) D
 ....S LINENUM=LINENUM+1
 ....D SORTLINE^IBACCWLUTIL(.VALMDDF,LINENUM,.LINE)
 ....D SET(LINE,.VALMCNT,.LINENUM,$G(BILLIEN)_U_$G(ENCIEN),VALMAR)
 ..;
 ..S PRIMESORT=$QS(GLOREF,4)
 ..S SECSORT=$QS(GLOREF,5)
 ..S TERTSORT=$QS(GLOREF,6)
 ..S FILENUM=$QS(GLOREF,7)
 ..S ENCIENS=$QS(GLOREF,8)
 ..S FIELDNAME=$QS(GLOREF,9)
 ..S DATAFLAG=$QS(GLOREF,10)
 ..S X=""
 ..;
 ..S ENCIEN=+ENCIENS
 ..Q:ENCIENS=OLDIENS
 ..S LINENUM=LINENUM+1
 ..S OLDIENS=ENCIENS
 ..;
 ..S FIELDVALUEREF=$NA(@GLOREF,8)
 ..S X=$$SETFLD^VALM1(LINENUM,X,"LINENUM")
 ..;
 ..S CLAIMNUM=$G(@FIELDVALUEREF@("X12 CLAIM NUMBER","E"))
 ..S BILLNUM=CLAIMNUM
 ..S BILLNUM=$G(@FIELDVALUEREF@("CLAIM NUMBER","E"))
 ..S BILLIEN=$G(@FIELDVALUEREF@("CLAIM NUMBER","I"))
 ..;
 ..I $D(VALMDDF("BILLNUM")) D
 ...S CLAIMNUM=$E(CLAIMNUM,($L(CLAIMNUM)-$P(VALMDDF("BILLNUM"),U,3))+1,$L(CLAIMNUM))
 ...S:BILLNUM="" BILLNUM=CLAIMNUM
 ...S X=$$SETFLD^VALM1(BILLNUM,X,"BILLNUM")
 ..;
 ..S EXTSERVDATE=$G(@FIELDVALUEREF@("SERVICE DATE","I"))
 ..S EXTSERVDATE=$$FMTE^XLFDT(EXTSERVDATE,"2ZD")
 ..I $D(VALMDDF("SERVDATE")) S X=$$SETFLD^VALM1(EXTSERVDATE,X,"SERVDATE")
 ..;
 ..I $D(@FIELDVALUEREF@("PATIENT")) D
 ...S PTNAME=$G(@FIELDVALUEREF@("PATIENT","E"))
 ...S PATIEN=$G(@FIELDVALUEREF@("PATIENT","I"))
 ..;
 ..I $G(PTNAME)="" D
 ...S PTNAME=$G(@FIELDVALUEREF@("PATIENT LAST NAME","E"))_", "_$G(@FIELDVALUEREF@("PATIENT FIRST NAME","E"))_" "_$G(@FIELDVALUEREF@("PATIENT MIDDLE NAME","E"))
 ..S X=$$SETFLD^VALM1(PTNAME,X,"PTNAME")
 ..;
 ..I $D(VALMDDF("SSN")) D  ;TPF;IB*2*770v18;EBILL-4623
 ...S SSN=$G(@FIELDVALUEREF@("PATIENT SSN","E"))
 ...S X=$$SETFLD^VALM1(SSN,X,"SSN")
 ..;
 ..S DOB=$G(@FIELDVALUEREF@("PATIENT DOB","I"))
 ..S DOB=$$FMTE^XLFDT(DOB,"2ZD")
 ..I $D(VALMDDF("DOB")) S X=$$SETFLD^VALM1(DOB,X,"DOB")
 ..;
 ..S CPT=$G(@FIELDVALUEREF@("CPT","E"))
 ..I $D(VALMDDF("CPT")) S X=$$SETFLD^VALM1(CPT,X,"CPT")
 ..;
 ..I $D(VALMDDF("PRIMDX")) D   ;TPF;IB*2*770v18;EBILL-4623
 ...S PRIMDX=$G(@FIELDVALUEREF@("PRIMARY DX","E"))
 ...S PRIMDXDESC=$$ICDLKUP^IBACCWLUTIL1(PRIMDX)
 ...S PRIMDX=PRIMDXDESC  ;TPF;IB*2*770v20;EBILL-4971
 ...S X=$$SETFLD^VALM1(PRIMDX,X,"PRIMDX")
 ..;
 ..S SECONDX=$G(@FIELDVALUEREF@("SECONDARY DX","E"))   ;TPF*IB*2*770v20;EBILL=4928
 ..S SECONDX=$$CONVERT2DEC^IBACCWLUTIL1(SECONDX)
 ..I $D(VALMDDF("SECONDX")) S X=$$SETFLD^VALM1(SECONDX,X,"SECONDX")
 ..;
 ..I $D(VALMDDF("PAYERCON")) D        ;TPF;IB*2*770v18;EBILL-4665
 ...S PAYERCON=$G(@FIELDVALUEREF@("PAYER CLAIM CONTROL NUMBER","E"))
 ...S X=$$SETFLD^VALM1($E(PAYERCON,1,$P(VALMDDF("PAYERCON"),U,3)-1),X,"PAYERCON")
 ..;
 ..S PATTYPE=$P($G(@FIELDVALUEREF@("IN-PATIENT/OUT-PATIENT","E")),"-")
 ..I $D(VALMDDF("PATTYPE")) S X=$$SETFLD^VALM1(PATTYPE,X,"PATTYPE")
 ..;
 ..S FORMTYPE=$G(@FIELDVALUEREF@("FORM TYPE","E"))
 ..S FORMTYPE=$S(FORMTYPE[("CMS"):$P(FORMTYPE,"-",2),FORMTYPE[("J"):$E(FORMTYPE,1,4),1:$TR(FORMTYPE,"-"))
 ..I $D(VALMDDF("FORMTYPE")) S X=$$SETFLD^VALM1(FORMTYPE,X,"FORMTYPE")
 ..;
 ..S PRIMINSUR=$G(@FIELDVALUEREF@("PRIMARY INS","E"))
 ..I $D(VALMDDF("PRIMINSUR")) S X=$$SETFLD^VALM1($E(PRIMINSUR,1,$P(VALMDDF("PRIMINSUR"),U,3)-1),X,"PRIMINSUR")
 ..;
 ..S SECINSUR=$G(@FIELDVALUEREF@("SECONDARY INS","E"))
 ..I $D(VALMDDF("SECINSUR")) S X=$$SETFLD^VALM1($E(SECINSUR,1,$P(VALMDDF("SECINSUR"),U,3)),X,"SECINSUR")
 ..;
 ..S TERTINSUR=$G(@FIELDVALUEREF@("TERTIARY INS","E"))  ;NOT USED
 ..;
 ..;TPF;IB*2*770v26;EBILL-5242
 ..I $G(PATIEN) S SERVCON=$$ISSPECAUTH^IBACCWLUTIL1(PATIEN)
 ..E  S SERVCON="  /  "
 ..I $D(VALMDDF("SERVCON")) S X=$$SETFLD^VALM1(SERVCON,X,"SERVCON")
 ..;
 ..S PROVIDER=$G(@FIELDVALUEREF@("PROVIDER","E"))
 ..I $D(VALMDDF("PROVIDER")) S X=$$SETFLD^VALM1($E(PROVIDER,1,$P(VALMDDF("PROVIDER"),U,3)),X,"PROVIDER")
 ..;
 ..S PROVNPI=$G(@FIELDVALUEREF@("PROVIDER NPI","E"))
 ..I $D(VALMDDF("PROVNPI")) S X=$$SETFLD^VALM1(PROVNPI,X,"PROVNPI")  ;TPF;IB*2*770v11;EBILL-4509
 ..;
 ..S REASCODE=$G(@FIELDVALUEREF@("REASONS","E"))
 ..I $D(VALMDDF("REASCODE")) S X=$$SETFLD^VALM1($E(REASCODE,1,$P(VALMDDF("REASCODE"),U,3)-1),X,"REASCODE")  ;TPF;IB*2*770v8;EBILL-4439
 ..;
 ..S DAYSONGRPWL=$J($G(@FIELDVALUEREF@("DAYS ON GROUP WORKLIST","E")),4)  ;TPF;IB*2*770v14;EBILL-4574
 ..I $D(VALMDDF("DAYSONGRPWL")) S X=$$SETFLD^VALM1(DAYSONGRPWL,X,"DAYSONGRPWL")
 ..;
 ..;NEW SPECS ;TPF;IB*2*770v11;EBILL-4507
 ..S SERVFACNM=$G(@FIELDVALUEREF@("SERVICE FACILITY","E"))             ;TPF;IB*2*770v11;EBILL-4507
 ..I $D(VALMDDF("SERVFACNM")) S X=$$SETFLD^VALM1(SERVFACNM,X,"SERVFACNM")  ;TPF;IB*2*770v11;EBILL-4507
 ..;
 ..S SERVFACNPI=$G(@FIELDVALUEREF@("SERVICE FACILITY NPI","E"))        ;TPF;IB*2*770v11;EBILL-4507 
 ..I $D(VALMDDF("FACNPI")) S X=$$SETFLD^VALM1(SERVFACNPI,X,"FACNPI")  ;TPF;IB*2*770v11;EBILL-4507
 ..;
 ..I $D(VALMDDF("DIVNAME")) D  ;TPF;IB*2*770v18;EBILL-4623
 ...S (DIVNAME,DIVISION)=$G(@FIELDVALUEREF@("SITE NUMBER","E"))
 ...S:DIVISION DIVISION=$$LKUP^XUAF4(DIVISION)
 ...I DIVISION S DIVNAME=$$GET1^DIQ(4,DIVISION_",",.01,"E")
 ...S X=$$SETFLD^VALM1(DIVNAME,X,"DIVNAME")
 ..;
 ..S PAIDAMT=$G(@FIELDVALUEREF@("PAID AMOUNT","E"))     ;TPF;IB*2*770v18;EBILL-4623
 ..I $D(VALMDDF("PAIDAMT")),PAIDAMT D
 ...S PAIDAMT=$FN(PAIDAMT,",",2)
 ...S PAIDAMT=$J(PAIDAMT,$P(VALMDDF("PAIDAMT"),U,3))
 ...S X=$$SETFLD^VALM1(PAIDAMT,X,"PAIDAMT")  ;TPF;IB*2*770v18;EBILL-4623
 ..;
 ..S CHARGEAMT=$G(@FIELDVALUEREF@("CHARGE AMOUNT","E"))                    ;TPF;IB*2*770v18;EBILL-4623 
 ..I $D(VALMDDF("CHARGEAMT")) S X=$$SETFLD^VALM1(CHARGEAMT,X,"CHARGEAMT")  ;TPF;IB*2*770v18;EBILL-4623
 ..;
 ..S ASSIGNEDGRP=$G(@FIELDVALUEREF@("ASSIGNED TO GROUP","I"))
 ..I $D(VALMDDF("ASSIGNEDGRP")) S X=$$SETFLD^VALM1(ASSIGNEDGRP,X,"ASSIGNEDGRP")
 ..;
 ..S DATEASSIGNED=$G(@FIELDVALUEREF@("DATE ASSIGNED","I"))
 ..S DATEASSIGNED=$$FMTE^XLFDT(DATEASSIGNED,"2ZD")
 ..I $D(VALMDDF("DATEASSNED")) S X=$$SETFLD^VALM1(DATEASSIGNED,X,"DATEASSNED")
 ..;
 ..S PREVACT=$G(@FIELDVALUEREF@("PREVACT","E"))
 ..I $D(VALMDDF("PREVACT")) S X=$$SETFLD^VALM1(PREVACT,X,"PREVACT")
 ..;
 ..S PATNOTFOUND=($P($G(^IBA(364.9,+ENCIENS,2)),U)="")   ;TPF;IB*2*770v15;EBILL-4611
 ..S STATUS=$G(@FIELDVALUEREF@("STATUS","I"))
 ..S VISMARK=$S(PATNOTFOUND:"!",1:"")
 ..S VISMARK=VISMARK_$S(STATUS=1:"*",1:"")  ;* = 'IN PROGRESS' ! = PAT NOT IN #200
 ..I $D(VALMDDF("INDICATOR")) S X=$$SETFLD^VALM1(VISMARK,X,"INDICATOR")
 ..;
 ..D SET(X,.VALMCNT,.LINENUM,BILLIEN_U_ENCIEN,VALMAR)
 ..;
 ;
 Q
 ;
NODATA(TEXT,RECORDNUM) ;EP - DISPLAY ERROR IN LM DISPLAY WINDOW
 N DATA,DATAIEN
 M DATA=TEXT
 S RECORD=""
 S X=""
 ;
 S RECORDNUM=RECORDNUM+1  ;EMPTY LINE
 D SET("",.VALMCNT,.RECORDNUM,"",VALMAR)
 ;
 S DATAIEN=0
 F  S DATAIEN=$O(DATA(DATAIEN)) Q:DATAIEN=""  D
 .S RECORDNUM=RECORDNUM+1
 .S RECORD=$$SETFLD^VALM1(DATA(DATAIEN),RECORD,"PTNAME")
 .D SET(RECORD,.VALMCNT,.RECORDNUM,"",VALMAR)
 ;
 S RECORDNUM=RECORDNUM+1
 D SET("",.VALMCNT,.RECORDNUM,"",VALMAR)
 ;
 Q