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

ABMDRST.m

Go to the documentation of this file.
  1. ABMDRST ; IHS/ASDST/DMJ - Statistical Report ;
  1. ;;2.6;IHS 3P BILLING SYSTEM;;NOV 12, 2009
  1. ;Original;TMD;
  1. ; P-1=VISIT CNT, P-2=UNDUP CNT, P-3=$BILLED, P-4=$PAID
  1. K ABM,ABMY
  1. S ABM("RTYP")=0,ABM("PAY")=""
  1. D ^ABMDRSEL G XIT:$D(DTOUT)!$D(DUOUT)!$D(DIROUT)
  1. S ABM("HD",0)="STATISTICAL REPORT" D ^ABMDRHD
  1. S ABMQ("RC")="COMPUTE^ABMDRST",ABMQ("RX")="POUT^ABMDRUTL",ABMQ("NS")="ABM",ABMQ("RP")="PRINT^ABMDRST1"
  1. D ^ABMDRDBQ
  1. Q
  1. ;
  1. COMPUTE ;EP - Entry Point for Setting up Data
  1. S ABMP("RTN")="ABMDRST"
  1. S ABMDUZ2=DUZ(2)
  1. S DUZ(2)=0
  1. F S DUZ(2)=$O(^ABMDBILL(DUZ(2))) Q:'DUZ(2) D
  1. .K ^TMP($J,"ABM-ST")
  1. .K ^TMP($J,"ABM-B")
  1. .S (ABM("NLN"),ABM("NLC"),ABM("NLB"),ABM("NLP"))=0
  1. .D LOOP^ABMDRUTL
  1. S DUZ(2)=ABMDUZ2
  1. Q
  1. ;
  1. DATA ;
  1. NEW ABMREC,ABMSTAT,ABMTYP
  1. S ABMREC=$G(^ABMDBILL(DUZ(2),ABM,0)) ;MOVE BILL FILE TO ABMREC
  1. S ABMSTAT=$P(ABMREC,U,4) ;SET BILL STATUS FRM BILL FILE TO ABMSTAT
  1. S ABMTYP=$P(ABMREC,U,7) ;SET VISIT TYPE FROM BILL FILE TO ABMTYP
  1. Q:ABMSTAT="X" ;QUIT IF BILL STATUS IS EQUAL TO X
  1. S ABMP("HIT")=0 D ^ABMDRCHK Q:'ABMP("HIT")
  1. I ABMY("SORT")="C" S ABM("V")=ABM("C")
  1. S ABM("PT")=$P(^ABMDBILL(DUZ(2),ABM,0),U,5)
  1. S:'$D(ABM("LC",ABM("L"))) ABM("LC",ABM("L"))=0
  1. I '$D(ABM(ABM("L"),ABM("V"))) D
  1. .S ABM(ABM("L"),ABM("V"))="0^0^0^0"
  1. ;Next line counts # undup pats
  1. I '$D(^TMP($J,"ABM-ST",ABM("L"),ABM("V"),ABM("PT"))) D
  1. .S ^TMP($J,"ABM-ST",ABM("L"),ABM("V"),ABM("PT"))=""
  1. .S $P(ABM(ABM("L"),ABM("V")),U,2)=$P(ABM(ABM("L"),ABM("V")),U,2)+1
  1. ; NEXT 5 LINES ADDING PAID AMOUNTS
  1. S ABM("P")=0
  1. F S ABM("P")=$O(^ABMDBILL(DUZ(2),ABM,3,ABM("P"))) Q:'ABM("P") D
  1. .S ABM("PDD")=+^ABMDBILL(DUZ(2),ABM,3,ABM("P"),0)
  1. .I $G(ABMY("DT"))="P",ABM("PDD")<ABMY("DT",1)!(ABM("PDD")>ABMY("DT",2)) Q
  1. .S $P(ABM(ABM("L"),ABM("V")),U,4)=$P(ABM(ABM("L"),ABM("V")),U,4)+$P(^ABMDBILL(DUZ(2),ABM,3,ABM("P"),0),U,2)
  1. ; NEXT 3 LINES COUNT TOTAL NUMBER OF UNDUP PATIENTS
  1. I '$D(^TMP($J,"ABM-ST",ABM("L"),ABM("PT"))) DO
  1. .S ^TMP($J,"ABM-ST",ABM("L"),ABM("PT"))=""
  1. .S ABM("LC",ABM("L"))=ABM("LC",ABM("L"))+1
  1. I '$D(^TMP($J,"ABM-ST",ABM("PT"))) DO
  1. .S ^TMP($J,"ABM-ST",ABM("PT"))=""
  1. .S ABM("NLC")=ABM("NLC")+1
  1. ; NEXT 3 LINES CHECKS FOR FIRST VALID BILL
  1. SET ABMBILL=+ABMREC ;SET BILL WITHOUT NUMBER
  1. Q:$D(^TMP($J,"ABM-B",ABMBILL)) ;CK IF IS FOUND
  1. SET ^TMP($J,"ABM-B",ABMBILL)="" ;CK IF TMP IS UNIQUE USING ABM-B
  1. ; NEXT LINE COUNTS # OF VISITS
  1. S $P(ABM(ABM("L"),ABM("V")),U)=$P(ABM(ABM("L"),ABM("V")),U)+1
  1. ;Next line is adding billed amount
  1. S $P(ABM(ABM("L"),ABM("V")),U,3)=$P(ABM(ABM("L"),ABM("V")),U,3)+$P(^ABMDBILL(DUZ(2),ABM,2),U,3)
  1. I ABMTYP=111 D ;CK IF NOT EQUAL TO OUTPATIENT-NEED ONLY INPATIENTS
  1. .S ABM(ABM("L"),"COVD")=$G(ABM(ABM("L"),"COVD"))+$P(^ABMDBILL(DUZ(2),ABM,7),U,3)
  1. Q
  1. ;
  1. XIT K ABM,ABMY,ABMP
  1. Q