Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Info |  Source |  Call Graph |  Caller Graph |  Entry Points |  External References |  Interaction Calls |  FileMan Files Accessed Via FileMan Db Call |  Global Variables Directly Accessed |  Label References |  Local Variables |  Marked Items  | All
Print Page as PDF
Routine: IBECEAMH

Package: Integrated Billing

Routine: IBECEAMH


Information

IBECEAMH ;EDE/SAB - Cancel/Edit/Add... Mental Health Utilities ; 21-APR-23

Source Information

Source file <IBECEAMH.m>

Call Graph

Call Graph

Call Graph Total: 9

Package Total Call Graph
VA FileMan 4 $$FIND1^DIC  (FILE,UPDATE)^DIE  $$GET1^DIQ  ^DIR  
Integrated Billing 2 ($$ISCDELIG,$$PRCLSCHK,$$STCDCHK)^IBECEAMH  GETPCECP^IBOMHC  
Kernel 2 $$GET^XUA4A72  $$STA^XUAF4  
Scheduling 1 GETPRV^SDOE  

Caller Graph

Legends:

Legend of Colors

Package Component Superscript legend

action A extended action Ea event driver Ed subscriber Su protocol O limited protocol LP run routine RR broker B edit E server Se print P screenman SM inquire I

Caller Graph

Caller Graph Total: 7

Package Total Caller Graph
Integrated Billing 7 IBECEA1  IBECEA3  IBECEA4  IBECEAMH  IBMHRPT  IBMHUT1  IBMHVM  

Entry Points

Name Comments DBIA/ICR reference
ISCDELIG(IBDOS) ;Is the Date of Service allow the bill to be Cleland-Dole Eligible
; INPUT - IBDOS - Date of Service of the Bill in question or the bill attempting to be created
; Returns - 0 - Not eligible
; 1 - Eligible for Cleland-Dole Review
ISCDCANC(IBIEN) ; Check to see if bill is cancellable
STCDCHK(IBSTCD) ;Check to see if the stop code is eligible for C-D cancellation.
GETSTCD(STCDARY) ; Retrieve the list of Stop codes that are Cleland Dole Eligible
STOPCODE ; List of stop codes eligible for Cleland Dole tracking and cancellations
PRCLSCHK(IBPRSCLS) ;Check to see if the Person Class associated with an Outpatient Copay is eligible for Cleland-Dole Tracking and cancellations.
GETPRCL(PRSCLARY) ;
PRSCLS ; List of Person Classes
MHCPTCHK(IBCPT) ;Checks to see if the CPT code is Cleland-Dole eligible for tracking and cancellation
GETCPT(CPTARY) ; Utility to gather the list of CPT Codes eligible for Cleland Dole Tracking and Cancellation
CPTCODE ; List of CPT Codes that are eligble for Cleland Dole Tracking and copay cancellation
NUMVSTCK(DFN,IBDOS) ; Check the DB to for the number of visits in a calendar year for a Veteran
ADDVST(DFN,IBDT,IBN,IBSTATUS,IBREAS,IBSITE) ; Update the Visit Tracking DB
ADD(IBN,IBDFN,IBSITE,IBVISDT,IBSTAT,IBBILL,IBCOMM,IBUPDATE,IBUNIQ,RETURN) ; Add an entry to the file
; INPUT:
; IBDFN - Pointer to the patient number
; IBSITE - external site number
; IBVISDT - Visit date
; IBSTAT - Status
; IBBILL - Bill number or possibly free text description such as 'ONHOLD'
; IBCOMM - Cancel reason
; IBUPDATE - 1 if this is the originating site and data should be pushed out to other treating facilities, otherwise 0
; IBUNIQ - Unique ID consiting of external site number underscor ien of file 351.83 on originating site ex. 442_1234567
; OUTPUT:
; RETURN - This is any information returned by FileMan if update was unsuccessful
;
; Function call returns 0 or 1 if successful.
; data must be all internal or all external - no mashup of the two allowed
; I vote internal and since I am coding...
; the incoming parameters were all internal except site #.
; NOTE to self: internal data is filed without validation so be sure it's cool
CHKST44(IBOE) ; check stop codes in file 44 for Cleland Dole eligibility
CDCHK(IBSTOPDA,IBFR) ;
; INPUT: IBSTOPDA - Stop Code
; IBFR - Date of Service
; Returns - 0 - Not eligible
; 1 - Eligible
DTCHK(DFN,IBEVDT) ; Checks to see if the copay being cancelled as C-D is in the correct sequence (i.e. 1 of the oldest 3 for the calendar year)
; INPUT: DFN - Patient
; IBEVDT - Date of Service
; Returns - 0 - No sequence issue
; 1 - Possible sequence issue
MESS1 ; Visit cancelled due to Cleland Dole.
MESS2 ; User received their 3 free visits
MESS2A ;User received 3 free visits, but the DoS is prior to one of those free visits.
MESS2B ; User received their 3 free visits
MESS3(IBFLG) ;
OECHK(IBOE,IBEVDT) ;
; INPUT: IBOE - Outpatient Encounter IEN (from Bill Resulting From field (#350, .04, 2nd ";" piece)
; IBEVDT - Date of Service
; Returns - 0 - Encounter Not eligible under Cleland-Dole
; 1 - Encounter eligible under Cleland-Dole
UPMHDB(DFN,IBDOS) ; Update the MH Visit Tracking DB if the Cancellation Reason is usable on MH copays
UPDVST(IBN,IBCAN,IBVSTIEN) ; update the Visit Tracking file
FNDVST(IBBLNO,IBVSTDT,IBN) ; Locate the Visit IEN
UPDATE(IBNP,IBIEN,IBSTAT,IBBILL,IBCOMM,IBUPDATE,RETURN) ; update an entry to the file
; INPUT:
; IBNP - Flag for processing type
; 1 = Nightly Process
; 0 or NULL = Manual Update (IB CANCEL/EDIT/ADD, MH Visit Maintenance,etc.)
; IBIEN - internal entry number into 351.82 that is being edited
; IBSTAT - Status
; IBBILL - Bill number or possibly free text description such as 'ONHOLD'
; IBCOMM - Cancel reason
; IBUPDATE - 1 if this is the originating site and data should be pushed out to other treating facilities, otherwise 0
; OUTPUT:
; RETURN - This is any information returned by FileMan if update was unsuccessful
;
; Function call returns 0 or 1 if successful.
;
; limiting edits to a few fields
; data must be all internal or all external - no mashup of the two allowed
; I still vote internal and since I am still coding...
; the incoming parameters were all internal
; NOTE to self: internal data is filed without validation so be sure it's cool
ASKMH() ; Mental Health visit (Cleland - Dole) confirmation prompt
ASKCONT() ; "do you wish to continue" confirmation prompt

External References

Name Field # of Occurrence
$$FIND1^DIC ADD+29
FILE^DIE UPDATE+48
UPDATE^DIE ADD+39
$$GET1^DIQ ISCDELIG+6, ISCDELIG+7, ISCDCANC+11, ADDVST+18, ADDVST+25, ADDVST+30, CHKST44+8, CHKST44+11, UPDATE+25, UPDATE+26
, UPDATE+27
^DIR ASKMH+8, ASKCONT+8
$$ISCDELIG^IBECEAMH CDCHK+7
$$PRCLSCHK^IBECEAMH OECHK+23
$$STCDCHK^IBECEAMH CDCHK+9
GETPCECP^IBOMHC OECHK+25
GETPRV^SDOE OECHK+10
$$GET^XUA4A72 OECHK+21
$$STA^XUAF4 ADDVST+18, ADDVST+23

Interaction Calls

Name Line Occurrences
Function Call: WRITE
  • Prompt: !!,"Under the Cleland-Dole Act of 2022, this visit is free."
  • Line Location: MESS1+1
Function Call: WRITE
  • Prompt: !!,"Under the Cleland-Dole Act of 2022, this patient has already"
  • Line Location: MESS2+2
Function Call: WRITE
  • Prompt: !,"received their 3 free Mental Health visits for this calendar year."
  • Line Location: MESS2+3
Function Call: WRITE
  • Prompt: !!,"Under the Cleland-Dole Act of 2022, this patient has already received"
  • Line Location: MESS2A+2
Function Call: WRITE
  • Prompt: !,"3 free visits for this calendar year. This date of service is prior to"
  • Line Location: MESS2A+3
Function Call: WRITE
  • Prompt: !,"the previously filed free visits for the calendar year. The free visit"
  • Line Location: MESS2A+4
Function Call: WRITE
  • Prompt: !,"sequence should be reviewed for updating or re-billing."
  • Line Location: MESS2A+5
Function Call: WRITE
  • Prompt: !!,"This visit has been entered into the Mental Health Visit Tracking"
  • Line Location: MESS2B+1
Function Call: WRITE
  • Prompt: !,"Database."
  • Line Location: MESS2B+2
Function Call: WRITE
  • Prompt: !!,"This bill is not eligible for cancellation under the Cleland-Dole Act of 2022"
  • Line Location: MESS3+7
Function Call: WRITE
  • Prompt: !," because no more free visits are available"
  • Line Location: MESS3+8
Function Call: WRITE
  • Prompt: "."
  • Line Location: MESS3+9
Function Call: WRITE
  • Prompt: !,"Please select another cancellation reason."
  • Line Location: MESS3+10
Function Call: WRITE
  • Prompt: !!
  • Line Location: MESS3+12
Function Call: WRITE
  • Prompt: !
  • Line Location: ASKMH+5
Function Call: WRITE
  • Prompt: !
  • Line Location: ASKCONT+5
Routine Call
  • DIC
  • Line Location:
    • ADD+29
Routine Call
  • DIE
  • Line Location:
    • UPDATE+48
Routine Call
  • DIE
  • Line Location:
    • ADD+39
Routine Call
  • DIR
  • Line Location:
    • ASKMH+8
    • ASKCONT+8

FileMan Files Accessed Via FileMan Db Call

FileNo Call Tags
^IB - [#350] GET1^DIQ
^IBE(350.9 - [#350.9] GET1^DIQ
^IBMH(351.83 - [#351.83] GET1^DIQ
^IBE(352.5 - [#352.5] GET1^DIQ
^DIC(4 - [#4] FIND1^DIC
^DIC(40.7 - [#40.7] GET1^DIQ
^SCE - [#409.68] GET1^DIQ
^SC - [#44] GET1^DIQ

Global Variables Directly Accessed

Name Line Occurrences  (* Changed,  ! Killed)
^DD("DD" ADD+23, UPDATE+34
^IB - [#350] ISCDCANC+9
^IBMH(351.83 - [#351.83] NUMVSTCK+14, NUMVSTCK+16, DTCHK+15, DTCHK+16, UPDVST+11, FNDVST+4, FNDVST+5

Label References

Name Line Occurrences
$$CHKST44 ISCDCANC+13
$$MHCPTCHK OECHK+28
$$NUMVSTCK ADD+21, UPMHDB+5, UPDATE+30
$$STCDCHK ISCDCANC+12, CHKST44+11
$$UPDATE UPDVST+24
ADD ADDVST+35
GETCPT MHCPTCHK+9
GETPRCL PRCLSCHK+7
GETSTCD STCDCHK+9
UPDVST UPMHDB+8, UPMHDB+11

Local Variables

Legend:

>> Not killed explicitly
* Changed
! Killed
~ Newed

Name Field # of Occurrence
CDDTCHK CDCHK+6~, CDCHK+7*, CDCHK+8, CDCHK+10
CHK DTCHK+6~, DTCHK+9*
CPTARY MHCPTCHK+5~, MHCPTCHK+8*, MHCPTCHK+9, GETCPT~
CPTARY( MHCPTCHK+12, GETCPT+9*
CT DTCHK+6~, DTCHK+9*, DTCHK+15, DTCHK+20*
DATA NUMVSTCK+7~, NUMVSTCK+16*, NUMVSTCK+18, NUMVSTCK+22, DTCHK+6~, DTCHK+16*, DTCHK+17
DFN NUMVSTCK~, NUMVSTCK+14, ADDVST~, ADDVST+35, DTCHK~, DTCHK+15, UPMHDB~, UPMHDB+5
DIR ASKMH+4~, ASKCONT+4~
DIR("A" ASKMH+6*, ASKCONT+6*
DIR(0 ASKMH+7*, ASKCONT+7*
DIROUT ASKMH+4~, ASKMH+9, ASKCONT+4~, ASKCONT+9
DIRUT ASKMH+4~, ASKMH+9, ASKCONT+4~, ASKCONT+9
DTIME MESS2+4, MESS2A+6, MESS3+11
DTOUT ASKMH+4~, ASKMH+9, ASKCONT+4~, ASKCONT+9
DUOUT ASKMH+4~, ASKMH+9, ASKCONT+4~, ASKCONT+9
ENDDT DTCHK+6~, DTCHK+8*, DTCHK+18
ERR OECHK+6~, OECHK+9*, OECHK+11
FDA ADDVST+15~, ADD+26~, UPDATE+40~
FDA( ADD+28*, ADD+29*, ADD+30*, ADD+31*, ADD+32*, ADD+33*, ADD+34*, ADD+35*, ADD+36*, UPDATE+42*
, UPDATE+43*, UPDATE+44*, UPDATE+45*
FDAIEN ADDVST+15~
FLD CHKST44+6~, CHKST44+10*, CHKST44+11
IBBILL ADDVST+15~, ADDVST+25*, ADDVST+29, ADDVST+32*, ADDVST+35, ADD~, ADD+32, UPDATE~, UPDATE+43
IBBLNO FNDVST~, FNDVST+4
IBBLSTAT ADDVST+15~, ADDVST+30*, ADDVST+32
IBCAN UPDVST~, UPDVST+9, UPDVST+19, UPDVST+20, UPDVST+21, UPDVST+22
IBCDEFF ISCDELIG+5~, ISCDELIG+6*, ISCDELIG+8
IBCDEND ISCDELIG+5~, ISCDELIG+7*, ISCDELIG+8
IBCOMM ADD~, ADD+33, UPDATE~, UPDATE+44
IBCPT MHCPTCHK~, MHCPTCHK+12
IBCPTARY OECHK+6~, OECHK+17*, OECHK+25, OECHK+29!
IBCPTARY( OECHK+28
IBCPTCHK OECHK+6~, OECHK+26*, OECHK+28*
IBCTS ADD+19~, UPDATE+24~, UPDATE+30*, UPDATE+31
IBDATA ISCDCANC+6~, ISCDCANC+9*, ISCDCANC+10, ISCDCANC+13, GETSTCD+4~, GETSTCD+7*, GETSTCD+8, GETSTCD+10, GETPRCL+4~, GETPRCL+5*
, GETPRCL+6, GETPRCL+7, GETCPT+4~, GETCPT+6*, GETCPT+7, GETCPT+9
IBDFN ADD~, ADD+21, ADD+28, UPDATE+24~, UPDATE+25*, UPDATE+30
IBDOS ISCDELIG~, ISCDELIG+8, NUMVSTCK~, NUMVSTCK+11, UPMHDB~, UPMHDB+5, UPDATE+24~, UPDATE+26*, UPDATE+30
IBDT ADDVST~, ADDVST+35
IBENC ISCDCANC+6~
IBERROR ADDVST+15~, ADDVST+35, UPDVST+8~, UPDVST+10*, UPDVST+24
IBEVDT DTCHK~, DTCHK+8, DTCHK+18, DTCHK+21, OECHK~, OECHK+21
>> IBFAC ADDVST+23
IBFLG MESS3~, MESS3+6*, MESS3+8
IBFOUND FNDVST+2~, FNDVST+3*, FNDVST+4, FNDVST+6*
IBFR CDCHK~, CDCHK+7
IBIEN ISCDCANC~, ISCDCANC+9, UPDATE~, UPDATE+25, UPDATE+26, UPDATE+27, UPDATE+41
IBLOC CHKST44+6~, CHKST44+8*, CHKST44+9, CHKST44+11
IBLP OECHK+6~, OECHK+15*, OECHK+16*, OECHK+19
IBLP1 OECHK+6~, OECHK+26*, OECHK+28*
IBMAXFR ADD+19~, UPDATE+24~
IBN ADDVST~, ADDVST+18, ADDVST+25, ADDVST+30, ADDVST+35, ADD~, ADD+35, UPDVST~, UPDVST+11, FNDVST~
, FNDVST+6
IBNOFRVS UPMHDB+2~, UPMHDB+5*, UPMHDB+8
IBNP UPDATE~, UPDATE+32
IBOE CHKST44~, CHKST44+8, OECHK~, OECHK+10, OECHK+25
IBPRCLS OECHK+6~, OECHK+21*, OECHK+23
IBPRSCLS PRCLSCHK~, PRCLSCHK+9
IBPRVIEN OECHK+6~, OECHK+19*, OECHK+21
IBREAS ADDVST~, ADDVST+26*, ADDVST+35, UPDVST+8~, UPDVST+19*, UPDVST+20*, UPDVST+21*, UPDVST+22*, UPDVST+24
IBRES ISCDCANC+6~, ISCDCANC+12*, ISCDCANC+13*, ISCDCANC+14
IBRTN UPDVST+8~, UPDVST+24*
IBSCDIEN ISCDCANC+6~, ISCDCANC+10*, ISCDCANC+11
IBSDV OECHK+6~, OECHK+9*, OECHK+12
IBSDV( OECHK+16, OECHK+19
IBSITE ADDVST~, ADDVST+15~, ADDVST+18*, ADDVST+23*, ADDVST+35, ADD~, ADD+29
IBSTAT ADD~, ADD+21, ADD+31, UPDVST+8~, UPDVST+19*, UPDVST+20*, UPDVST+21*, UPDVST+22*, UPDVST+24, UPDATE~
, UPDATE+31, UPDATE+38*, UPDATE+42
IBSTATUS ADDVST~, ADDVST+35
IBSTCD ISCDCANC+6~, ISCDCANC+11*, ISCDCANC+12, STCDCHK~, STCDCHK+12
IBSTCHCK CDCHK+6~, CDCHK+9*, CDCHK+10
IBSTIEN CHKST44+6~, CHKST44+11*
IBSTOP CHKST44+6~, CHKST44+11*
IBSTOPDA CDCHK~, CDCHK+9
IBUNIQ ADD~, ADD+34
IBUPDATE ADD~, ADD+36, UPDATE~, UPDATE+45
IBVISDT ADD~, ADD+21, ADD+23, ADD+30, UPDATE+24~, UPDATE+27*, UPDATE+34
IBVSTD FNDVST+2~, FNDVST+5*, FNDVST+6
IBVSTDT FNDVST~, FNDVST+6
IBVSTIEN UPDVST~, UPDVST+11*, UPDVST+12, UPDVST+24, FNDVST+2~, FNDVST+3*, FNDVST+4*, FNDVST+5, FNDVST+7
IBX MESS2+1~, MESS2+4*, MESS2A+1~, MESS2A+6*, MESS3+5~, MESS3+11*
IBY UPDATE+24~, UPDATE+30*, UPDATE+31, UPDATE+36*
IENS ADD+26~, ADD+27*, ADD+28, ADD+29, ADD+30, ADD+31, ADD+32, ADD+33, ADD+34, ADD+35
, ADD+36, UPDATE+40~, UPDATE+41*, UPDATE+42, UPDATE+43, UPDATE+44, UPDATE+45
LOOP GETSTCD+4~, GETSTCD+7*, GETPRCL+4~, GETPRCL+5*, GETCPT+4~, GETCPT+6*
LP NUMVSTCK+7~, NUMVSTCK+13*, NUMVSTCK+14*, NUMVSTCK+16, DTCHK+6~, DTCHK+9*, DTCHK+15*, DTCHK+16
NUMVST NUMVSTCK+7~, NUMVSTCK+9*, NUMVSTCK+14, NUMVSTCK+22*, NUMVSTCK+24
PRSCLARY PRCLSCHK+5~, PRCLSCHK+7, GETPRCL~
PRSCLARY( PRCLSCHK+9, GETPRCL+7*
RES CHKST44+6~, CHKST44+7*, CHKST44+10, CHKST44+11*, CHKST44+14, OECHK+6~, OECHK+15*, OECHK+16, OECHK+28*, OECHK+30
RETURN ADD~, ADD+24*, ADD+42, UPDATE~, UPDATE+35*, UPDATE+51
SQFLG DTCHK+6~, DTCHK+9*, DTCHK+15, DTCHK+21*, DTCHK+22
STARTDT DTCHK+6~, DTCHK+8*, DTCHK+18
STAT DTCHK+6~, DTCHK+17*, DTCHK+19
STCDARY STCDCHK+5~, STCDCHK+8*, STCDCHK+9, GETSTCD~
STCDARY( STCDCHK+12, GETSTCD+10*
U ISCDCANC+10, ISCDCANC+13, NUMVSTCK+18, NUMVSTCK+22, DTCHK+17, OECHK+19, OECHK+21, FNDVST+6
VD NUMVSTCK+7~, NUMVSTCK+18*, NUMVSTCK+20, DTCHK+6~, DTCHK+17*, DTCHK+21
X ASKMH+4~, ASKCONT+4~
Y ADD+22~, ADD+23*, ADD+24, UPDATE+33~, UPDATE+34*, UPDATE+35, ASKMH+4~, ASKMH+10, ASKCONT+4~, ASKCONT+10
YR NUMVSTCK+7~, NUMVSTCK+11*, NUMVSTCK+20
Z ISCDCANC+6~, ISCDCANC+13*

Marked Items

Name Field # of Occurrence
$T(CPTCODE+LOOP GETCPT+6
$T(PRSCLS+LOOP GETPRCL+5
$T(STOPCODE+LOOP GETSTCD+7
Info |  Source |  Call Graph |  Caller Graph |  Entry Points |  External References |  Interaction Calls |  FileMan Files Accessed Via FileMan Db Call |  Global Variables Directly Accessed |  Label References |  Local Variables |  Marked Items  | All