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

BARDYSUT.m

Go to the documentation of this file.
  1. BARDYSUT ; IHS/SD/TPF - DAYS IN A/R REPORT UTILS ;
  1. ;;1.8;IHS ACCOUNTS RECEIVABLE;**1**;AUG 16, 2006
  1. ;
  1. Q
  1. ;FOR ANY GIVEN VISIT RETURN THE PRIMARY PROVIDER FOR THE VISIT/ENCOUNTER
  1. ;'V PROVIDER' FILE FIELD 'PRIMARY/SECONDARY'
  1. GETVPROV(VIEN) ;EP - PRIMARY PROVIDER
  1. N PRV,FOUND
  1. S FOUND=0
  1. S PRV="" F S PRV=$O(^AUPNVPRV("AD",VIEN,PRV)) Q:'PRV D Q:FOUND
  1. .I $$GET1^DIQ(9000010.06,PRV_",",.04,"I")="P" S PRV=FOUND
  1. Q FOUND
  1. ;FOR ANY GIVEN VISIT IS THERE A DISCHARGE DATE
  1. ;'V HOSPITALIZATION' FILE FIELD 'DATE OF DISCHARGE'
  1. DISCHARG(VIEN) ;EP - IS THIS VISIT AN IN PATIENT? IS SO RETURN DISCHARGE DATE
  1. S DISCHARG=$O(^AUPNVINP("AD",VIEN,""))
  1. Q:DISCHARG="" 0
  1. S DISCHARG=$$GET1^DIQ(9000010.02,DISCHARG_",",.01,"I")
  1. Q DISCHARG
  1. ;INITIALIZE COUNTERS USED IN CALCULATIONS
  1. INITVIS ;EP - INITIALIZE COUNTERS
  1. K CREDAYS,REVDAYS,TPBAPP,TPBEXP,NUMVISIT,NUMBILLS,BILLAMT,AMTBILLD,BILLNUM,DYSTOPAY
  1. K EARLYPAY,LASTPAY,TOTPOST,WITBILLS,PACKREJ,NOBILLS,AVGCHKIN,BILLREJT,DAYSAPP
  1. S (DONE,NUMVISIT,CREDAYS,REVDAYS,TPBAPP,TPBEXP,NUMBILLS,BILLAMT,AMTBILLD,BILLNUM)=0
  1. S (EARLYPAY,LASTPAY,DYSTOPAY,TOTPOST,WITBILLS,PACKREJ,NOBILLS,AVGCHKIN,BILLREJT)=0
  1. K NOARIEN,DATEREJT
  1. S NOARIEN=0,DATEREJT=0,DAYSAPP=0
  1. Q
  1. ;THIS SUBROUTINE WAS TAKEN FROM ROUTINE ABMDVST2
  1. ;GIVEN V PROVIDER IEN
  1. PRVCHK(X) ;Subrtn to find attending and operating
  1. S X=$O(^AUPNPRV("AD",X,""))
  1. Q:X="" 0
  1. Q:'$D(^AUPNVPRV(X,0)) 0
  1. ;If provider Attending or Primary set ABMAT to ien otherwise 0
  1. I 'BARAT S BARAT=$S($P(^AUPNVPRV(X,0),U,5)="A":X,$P(^(0),U,4)="P":X,1:0)
  1. ;If provider Operating set ABMOP to ien otherwise 0
  1. I 'BAROP S BAROP=$S($P(^AUPNVPRV(X,0),U,5)="O":X,1:0)
  1. Q BARAT_U_BAROP
  1. ;THIS SUB IS USED TO INVESTIGATE WHAT THE TRUE PRIMARY BILL IS
  1. ;I.E. WHAT IS THE ACTUAL BEGINNING CHARGE AND COST OF SERVICE
  1. ;CHECKING A/R TRANSACTION FILE
  1. CHKARTR(FROM,TO) ;EP -
  1. S TRANIEN=0,OFFSET=0
  1. S:$G(FROM)'="" TRANIEN=FROM-.01
  1. S:$G(TO)="" TO=99999999999999999
  1. F S TRANIEN=$O(^BARTR(DUZ(2),TRANIEN)) Q:'TRANIEN!(TRANIEN>TO) D
  1. .S TRANIENS=TRANIEN_","
  1. .S BILL=$$GET1^DIQ(90050.03,TRANIENS,4)
  1. .S DEBIT=$$GET1^DIQ(90050.03,TRANIENS,3)
  1. .S BILLTYPE=$$GET1^DIQ(90050.03,TRANIENS,16,"I")
  1. .S TRANTYPE=$$GET1^DIQ(90050.03,TRANIENS,101)
  1. .S TRANERR=$$GET1^DIQ(90050.03,TRANIENS,103)
  1. .I TRANERR[("ERROR"),(BILL[("A")) W !,"BILLED ERROR: ",TRANIEN
  1. .Q:TRANERR["ERROR"
  1. .Q:TRANTYPE'="BILL NEW"
  1. .Q:BILLTYPE'="PRIMARY"
  1. .Q:'DEBIT
  1. .S BILLSTAG=$P(BILL,"-")
  1. .S BILLSTAG=$E(BILLSTAG,$L(BILLSTAG))
  1. .Q:BILLSTAG="A"
  1. .W !!,"BILL: ",BILL
  1. .W !,"TRAN IEN: ",TRANIEN
  1. .W !,"TRAN TYPE: ",TRANTYPE
  1. .W !,"BILL TYPE: ",BILLTYPE
  1. .W !,"DEBIT: ",DEBIT
  1. .;B:DUZ=724&(BILL["492776A") "S+"
  1. Q
  1. ;LIST POSSIBLE VALUES FOR A/R BILL FILE 'CURRENT BILL STATUS'
  1. CURBIL ;EP
  1. K ARRAY
  1. S BILLIEN=0
  1. F S BILLIEN=$O(^BARBL(DUZ(2),BILLIEN)) Q:'BILLIEN D
  1. .S CURSTAT=$$GET1^DIQ(90050.01,BILLIEN_",",16)
  1. .S:CURSTAT="" CURSTAT="UNDEF"
  1. .S ARRAY(CURSTAT)=$G(ARRAY(CURSTAT))+1
  1. S STAT=""
  1. F S STAT=$O(ARRAY(STAT)) Q:STAT="" D
  1. .W !,"THERE WERE ",$G(ARRAY(STAT)),?25," BILLS FOUND WITH 'CURRENT BILL STATUS' = ",STAT
  1. Q
  1. ;THIS SUB IS USED TO INVESTIGATE WHAT THE TRUE PRIMARY BILL IS
  1. ;I.E. WHAT IS THE ACTUAL BEGINNING CHARGE AND COST OF SERVICE
  1. ;CHECKING 3P BILL FILE
  1. CHK3PBL ;EP
  1. S TPBIEN=0
  1. F S TPBIEN=$O(^ABMDBILL(DUZ(2),TPBIEN)) Q:'TPBIEN D
  1. .S BILLSTAT=$$GET1^DIQ(9002274.4,TPBIEN_",",.04,"E")
  1. .
  1. ;LIST POSSIBLE VALUES FOR 3P BILL FILE 'BILL STATUS'
  1. CURTPB ;EP
  1. K ARRAY
  1. S TPBIEN=0
  1. F S TPBIEN=$O(^ABMDBILL(DUZ(2),TPBIEN)) Q:'TPBIEN D
  1. .S BILLSTAT=$$GET1^DIQ(9002274.4,TPBIEN_",",.04,"E")
  1. .S:BILLSTAT="" BILLSTAT="UNDEF"
  1. .S ARRAY(BILLSTAT)=$G(ARRAY(BILLSTAT))+1
  1. S STAT=""
  1. F S STAT=$O(ARRAY(STAT)) Q:STAT="" D
  1. .W !,"THERE WERE ",$G(ARRAY(STAT)),?25," 3P BILLS FOUND WITH 'BILL STATUS' = ",STAT
  1. Q