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

BUDHRPC4.m

Go to the documentation of this file.
  1. BUDHRPC4 ;IHS/CMI/LAB - UDS TABLE 1-6A;
  1. ;;13.0;IHS/RPMS UNIFORM DATA SYSTEM;;OCT 12, 2018;Build 90
  1. T9 ;EP
  1. ;TABLE 9D - TOTALS ONLY
  1. ;CODE ORIGINATED WITH SHONDA RENDER (BUDMUPV1)
  1. ;FIRST LOOP THROUGH BUDDBILL FOR THIS PATIENTS VISITS THAT ARE IN ^TMP
  1. S BUDDNT=0
  1. S BUDDUZ2=0
  1. S BUDFOUND=0
  1. S BUDLINE=""
  1. D GETPAR
  1. F S BUDDUZ2=$O(^ABMDBILL(BUDDUZ2)) Q:'BUDDUZ2 D
  1. .S BUDVDFN=0
  1. .F S BUDVDFN=$O(^TMP($J,"VISITSUDSPT",BUDVDFN)) Q:'BUDVDFN D
  1. ..S BUDDILLF=0 ;BUD*2.6*8 HEAT47191
  1. ..;Q:($G(^XTMP("BUD-PVP",$J,"VISITS",BUDVDFN))=1) ;already counted this visit on report
  1. ..Q:'$D(^ABMDBILL(BUDDUZ2,"AV",BUDVDFN)) ;visit not under this DUZ(2)
  1. ..S BUDP("BDFN")=0
  1. ..F S BUDP("BDFN")=$O(^ABMDBILL(BUDDUZ2,"AV",BUDVDFN,BUDP("BDFN"))) Q:'BUDP("BDFN") D Q:BUDDILLF ;BUD*2.6*8 HEAT47191
  1. ...I $P($G(^ABMDBILL(BUDDUZ2,BUDP("BDFN"),0)),U,4)="X" Q ;CANCELLED
  1. ...S BUDVLOC=$P($G(^ABMDBILL(BUDDUZ2,BUDP("BDFN"),0)),U,3)
  1. ...S BUDINS=$P($G(^ABMDBILL(BUDDUZ2,BUDP("BDFN"),0)),U,8)
  1. ...S BUDPT=$P($G(^ABMDBILL(BUDDUZ2,BUDP("BDFN"),0)),U,5)
  1. ...;determine insurer type and set LINE var
  1. ...S BUDLINE=""
  1. ...D GETITYPE
  1. ...I BUDLINE="" Q
  1. ...S (BUDDILLN,BUDSAV)=$P($G(^ABMDBILL(BUDDUZ2,BUDP("BDFN"),0)),U)
  1. ...;F S BUDDILLN=$O(^BARBL(BUDPAR,"B",BUDDILLN)) Q:$G(BUDDILLN)=""!(BUDDILLN'[BUDSAV) D ;BUD*2.6*8 HEAT47191
  1. ...F S BUDDILLN=$O(^BARBL(BUDPAR,"B",BUDDILLN)) Q:$G(BUDDILLN)=""!(BUDDILLN'[BUDSAV) D Q:BUDDILLF ;BUD*2.6*8 HEAT47191
  1. ....S BUDARIEN=0
  1. ....S BUDHOLD=DUZ(2)
  1. ....S DUZ(2)=BUDPAR
  1. ....F S BUDARIEN=$O(^BARBL(DUZ(2),"B",BUDDILLN,BUDARIEN)) Q:'BUDARIEN D Q:BUDDILLF ;BUD*2.6*8 HEAT47191
  1. .....S BUDARACT=$$GET1^DIQ(90050.01,BUDARIEN_",",3,"I") ;A/R BILL, A/R ACCOUNT
  1. .....S $P(BUDT9(BUDLINE),U,1)=$P($G(BUDT9(BUDLINE)),U,1)+$$VAL^XBDIQ1(90050.01,BUDARIEN,13)
  1. .....S $P(BUDT9(BUDLINE),U,3)=$P($G(BUDT9(BUDLINE)),U,3)+$$VAL^XBDIQ1(90050.01,BUDARIEN,25)
  1. .....;I BUDLINE=3 W !,DFN,":",BUDDILLN,":",BUDARIEN,":",$$VAL^XBDIQ1(90050.01,BUDARIEN,13)
  1. .....;S D0=BUDARACT
  1. .....;S BUDITYP=$$VALI^BARVPM(8) ;GET 'VIP INSURER TYPE' CODE
  1. .....;S BUDGRP=$S(BUDITYP="D":"MCD",BUDITYP="K":"CHIP",1:"OTHR")
  1. .....S BUDABILN=$P($G(^BARBL(DUZ(2),BUDARIEN,0)),U)
  1. .....S BUDTRIEN=0
  1. .....;F S BUDTRIEN=$O(^BARTR(DUZ(2),"AC",BUDARIEN,BUDTRIEN)) Q:'BUDTRIEN D ;BUD*2.6*8 HEAT47191
  1. .....F S BUDTRIEN=$O(^BARTR(DUZ(2),"AC",BUDARIEN,BUDTRIEN)) Q:'BUDTRIEN D Q:BUDDILLF ;BUD*2.6*8 HEAT47191
  1. ......S BUDTRTYP=$P($G(^BARTR(DUZ(2),BUDTRIEN,1)),U)
  1. ......S BUDADJT=$P($G(^BARTR(DUZ(2),BUDTRIEN,1)),U,3) ;abm*2.6*8
  1. ......;I "^40^113^114^121^132^137^138^139^"'[("^"_ABMTRTYP_"^") Q ;payment or payment credit ;abm*2.6*8
  1. ......I (BUDTRTYP'=40)&("^113^114^121^132^137^138^139^"'[("^"_BUDADJT_"^")) Q ;payment or payment credit ;abm*2.6*8
  1. ......I ($$GET1^DIQ(90050.03,BUDTRIEN,3.5))<(.01) Q ;don't count 0 pymts or reversals
  1. ......;CHECK DATES??
  1. ......Q:$P($P(^BARTR(DUZ(2),BUDTRIEN,0),U,1),".")>BUDED
  1. ......Q:$P($P(^BARTR(DUZ(2),BUDTRIEN,0),U,1),".")<BUDBD
  1. ......S $P(BUDT9(BUDLINE),U,2)=$P($G(BUDT9(BUDLINE)),U,2)+$$VAL^XBDIQ1(90050.03,BUDTRIEN,3.5)
  1. ....S DUZ(2)=BUDHOLD
  1. Q
  1. GETITYPE ;
  1. S BUDIT=$P($G(^ABMDBILL(BUDDUZ2,BUDP("BDFN"),2)),U,2)
  1. I BUDIT="D" S BUDLINE=3 Q
  1. I BUDIT="K" S BUDLINE=3 Q
  1. I BUDIT="R" S BUDLINE=6 Q
  1. I BUDIT="MD" S BUDLINE=6 Q
  1. I BUDIT="MH" S BUDLINE=6 Q
  1. I BUDIT="MC" S BUDLINE=6 Q
  1. I BUDIT="MMC" S BUDLINE=6 Q
  1. I BUDIT="I" S BUDLINE=9 Q
  1. I BUDIT="G" S BUDLINE=9 Q
  1. I BUDIT="SEP" S BUDLINE=9 Q
  1. I BUDIT="T" S BUDLINE=9 Q
  1. I BUDIT="C" S BUDLINE=12 Q
  1. I BUDIT="F" S BUDLINE=12 Q
  1. I BUDIT="FPL" S BUDLINE=12 Q
  1. I BUDIT="H" S BUDLINE=12 Q
  1. I BUDIT="M" S BUDLINE=12 Q
  1. I BUDIT="P" S BUDLINE=12 Q
  1. I BUDIT="W" S BUDLINE=12 Q
  1. I BUDIT="N" S BUDLINE=13 Q
  1. I BUDIT="TSI" S BUDLINE=13 Q
  1. ;I BUDIT="P" D
  1. ;.;IF INSURER HAS A K PUT IN 9
  1. ;.NEW X,Y,G
  1. ;.S G=0,X=0 F S X=$O(^ABMDBILL(BUDDUZ2,BUDP("BDFN"),13,X)) Q:X'=+X D
  1. ;..S Y=$P(^ABMDBILL(BUDDUZ2,BUDP("BDFN"),13,X,0),U)
  1. ;..I $P($G(^AUTNINS(Y,2)),U,1)="K" S G=1
  1. ;.I G S BUDLINE=9 Q
  1. ;.S BUDLINE=12
  1. Q
  1. GETPAR ;EP
  1. K BUDPSFLG,BUDFLIST
  1. S BUDPAR=0
  1. S BUDDNT=1
  1. F S BUDPAR=$O(^BAR(90052.05,BUDPAR)) Q:+BUDPAR=0 D Q:($G(BUDPSFLG)=1)
  1. .I $D(^BAR(90052.05,BUDPAR,DUZ(2))) D
  1. ..; Use A/R parent/sat is yes, but DUZ(2) is not the parent for this
  1. ..; visit location
  1. ..Q:$P($G(^BAR(90052.05,BUDPAR,DUZ(2),0)),U,3)'=BUDPAR
  1. ..Q:$P($G(^BAR(90052.05,BUDPAR,DUZ(2),0)),U,6)>DT
  1. ..Q:$P($G(^BAR(90052.05,BUDPAR,DUZ(2),0)),U,7)&($P(^(0),U,7)<DT)
  1. ..S BUDPSFLG=1
  1. Q ;