| 1 | IBQLPL1 ;LEB/MRY - PATIENTS QUALIFY/MISSING INFO LIST ; 24-MAR-95
 | 
|---|
| 2 |  ;;1.0;UTILIZATION MGMT ROLLUP LOCAL;**1**;Oct 01, 1995
 | 
|---|
| 3 |  ;;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 |  Q
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 | START ; -- loop thru discharges in Claims Tracking
 | 
|---|
| 7 |  S IBDDT=IBBDT-.01
 | 
|---|
| 8 |  F  S IBDDT=$O(^IBT(356,"ADIS",IBDDT)) Q:'IBDDT!(IBDDT>IBEDT)  D
 | 
|---|
| 9 |  .S IBTRN="" F  S IBTRN=$O(^IBT(356,"ADIS",IBDDT,IBTRN)) Q:'IBTRN  D
 | 
|---|
| 10 |  ..I '$D(^IBT(356.1,"C",IBTRN))!'$G(^IBT(356,IBTRN,0)) Q
 | 
|---|
| 11 |  ..;
 | 
|---|
| 12 |  ..S IBQUIT=0 D CLAIMS^IBQL356 Q:IBQUIT
 | 
|---|
| 13 |  ..S IB(1.06)=$S(IB(1.06)="L":"ZL",IB(1.06)="":"AA",1:IB(1.06))
 | 
|---|
| 14 |  ..;
 | 
|---|
| 15 |  ..I IBRPT="Q" D QUALIFY
 | 
|---|
| 16 |  ..I IBRPT="M" D MISSING
 | 
|---|
| 17 |  I $$STOP Q
 | 
|---|
| 18 |  Q
 | 
|---|
| 19 |  ;
 | 
|---|
| 20 | QUALIFY ; --list patients to be included in Rollup
 | 
|---|
| 21 |  S DFN=$P(IBTRND,"^",2),X=$G(^DPT(DFN,0))
 | 
|---|
| 22 |  S IBNAM=$P(X,"^"),SSN=$P(X,"^",9) S:SSN ^TMP("IBQLPL",$J,IB(1.06),IBDDT,SSN)=IBNAM
 | 
|---|
| 23 |  Q
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 | MISSING ; -- list patients with missing data
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 |  ; -- send message if missing adm diagnosis, enroll code, adm
 | 
|---|
| 29 |  F IBFLD=.04,.05,.09 D ERR I IBERR'="" S ^TMP("IBQLPL",$J,IB(1.06),IBDDT,IB(.03),IBFLD)=IBERR
 | 
|---|
| 30 |  ; -- check for (.0001) fundemental completion errors
 | 
|---|
| 31 |  I $P(IBTRND,"^",18)'=1 D
 | 
|---|
| 32 |  .S IBERR="EVENT TYPE NOT OF INPATIENT ADMISSION (#"_IB(.01)_")"
 | 
|---|
| 33 |  .S ^TMP("IBQLPL",$J,IB(1.06),IBDDT,IB(.03),.0001)=IBERR
 | 
|---|
| 34 |  I $P(IBTRND,"^",20)'=1 D
 | 
|---|
| 35 |  .S IBERR="CLAIMS TRACKING ENTRY IS INACTIVE (#"_IB(.01)_")"
 | 
|---|
| 36 |  .S ^TMP("IBQLPL",$J,IB(1.06),IBDDT,IB(.03),.0002)=IBERR
 | 
|---|
| 37 |  ;
 | 
|---|
| 38 | ORDER ; -- check (.001) procedure ordering errors, arrange in DAY order.
 | 
|---|
| 39 |  S IBTRV=0
 | 
|---|
| 40 |  D ORDCHK^IBQLPL3
 | 
|---|
| 41 |  Q:IB001
 | 
|---|
| 42 |  S IBDAY=0
 | 
|---|
| 43 |  F  S IBDAY=$O(IBORDER(IBDAY)) Q:'IBDAY  D
 | 
|---|
| 44 |  .S IBTRV=IBORDER(IBDAY)
 | 
|---|
| 45 |  .I IBDAY=1 D ADMIT
 | 
|---|
| 46 |  .I IBDAY>1 D STAY
 | 
|---|
| 47 |  I $O(^TMP("IBQLPL",$J,IB(1.06),IBDDT,IB(.03),0)) S ^TMP("IBQLPL",$J,IB(1.06),IBDDT,IB(.03))=IBNAM
 | 
|---|
| 48 |  Q
 | 
|---|
| 49 |  ;
 | 
|---|
| 50 | ADMIT ; get Admission Review infomation into IB(array)
 | 
|---|
| 51 |  D ADMIT^IBQL356 Q:IBQUIT
 | 
|---|
| 52 |  ; -- send message if no treating specialty, service
 | 
|---|
| 53 |  F IBFLD=.12,1.07 D ERR I IBERR'="" S ^TMP("IBQLPL",$J,IB(1.06),IBDDT,IB(.03),IBFLD)=IBERR
 | 
|---|
| 54 |  ; -- send message if si,is, reasons are not answered
 | 
|---|
| 55 |  I IB(1.01)="",IB(1.02)="",IB(1.03)="" F IBFLD=1.01,1.02,1.03 D ERR I IBERR'="" S ^TMP("IBQLPL",$J,IB(1.06),IBDDT,IB(.03),IBFLD)=IBERR
 | 
|---|
| 56 |  ; -- check for (.0001) fundemetally completion errors
 | 
|---|
| 57 |  I $P(IBTRVD,"^",21)'=10 D
 | 
|---|
| 58 |  .S IBERR="Admission Stay not COMPLETE (#"_IB(.01)_")"
 | 
|---|
| 59 |  .S ^TMP("IBQLPL",$J,IB(1.06),IBDDT,IB(.03),.0004)=IBERR
 | 
|---|
| 60 |  S IBPIS=IB(1.02)
 | 
|---|
| 61 |  Q
 | 
|---|
| 62 |  ; 
 | 
|---|
| 63 | STAY ; get Stay Review information into IB(array)
 | 
|---|
| 64 |  D STAY^IBQL356 Q:IBQUIT
 | 
|---|
| 65 |  F IBFLD=13.07,13.08 D ERR I IBERR'="" S ^TMP("IBQLPL",$J,IB(1.06),IBDDT,IB(.03),(IB(13.01)+IBFLD))=IBERR
 | 
|---|
| 66 |  I IB(13.02)="",IB(13.06)="" F IBFLD=13.02,13.06 D ERR I IBERR'="" S ^TMP("IBQLPL",$J,IB(1.06),IBDDT,IB(.03),(IB(13.01)+IBFLD))=IBERR
 | 
|---|
| 67 |  ; -- check for (.0001) fundementally completion errors
 | 
|---|
| 68 |  I $P(IBTRVD,"^",21)'=10 D
 | 
|---|
| 69 |  .S IBERR="STAY DAY "_IB(13.01)_" NOT COMPLETE (#"_IB(.01)_")"
 | 
|---|
| 70 |  .S ^TMP("IBQLPL",$J,IB(1.06),IBDDT,IB(.03),(IB(13.01)+.0004))=IBERR
 | 
|---|
| 71 |  Q
 | 
|---|
| 72 |  ;
 | 
|---|
| 73 | ERR ; -- return missing message
 | 
|---|
| 74 |  S IBERR=""
 | 
|---|
| 75 |  I IB(IBFLD)="" S IBERR="MISSING "_IBD(IBFLD) S:IBFLD>13 IBERR=IBERR_" DAY "_IB(13.01) S IBERR=IBERR_" (#"_IB(.01)_")"
 | 
|---|
| 76 |  Q
 | 
|---|
| 77 | ERR1 ; -- return error message that entry EVENT TYPE is not Inpatient status.
 | 
|---|
| 78 |  S IBERR="EVENT TYPE not of INPATIENT ADMISSION (#"_IB(.01)_")"
 | 
|---|
| 79 |  Q
 | 
|---|
| 80 | STOP() ;determine if user has requested the queued report to stop
 | 
|---|
| 81 |  I $D(ZTQUEUED),$$S^%ZTLOAD S ZTSTOP=1 K ZTREQ I +$G(IBPAG) W !,"***TASK STOPPED BY USER***"
 | 
|---|
| 82 |  Q +$G(ZTSTOP)
 | 
|---|