| 1 | IBCEP9A ;ALB/CXW - PROVIDER EXTRACT ;26-SEP-00
 | 
|---|
| 2 |  ;;2.0;INTEGRATED BILLING;**137**;21-MAR-94
 | 
|---|
| 3 |  ; This routine is to build an extract file with provider information
 | 
|---|
| 4 |  ; by looking at different file sources
 | 
|---|
| 5 |  ; DBIA's used: DBIA418, DBIA419, 2546
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 | START(IBRAW) ; Extract a list of providers from existing VistA data
 | 
|---|
| 8 |  ; IBRAW = 0 or "" if display format
 | 
|---|
| 9 |  ;       = 1 if raw data format
 | 
|---|
| 10 |  ; Variables:
 | 
|---|
| 11 |  ;      IBYR1/IBYR3 - the first date of next year
 | 
|---|
| 12 |  ;      IBYR2       - the last date two years ago
 | 
|---|
| 13 |  ;      IBPID       - provider entry number
 | 
|---|
| 14 |  ;      HFLE        - host file name
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  N IBCONT,IBYR1,IBYR2,IBYR3,IBPTF,IBPID,IBPINT,IBDFN,IBDT,IBIEN
 | 
|---|
| 17 |  S IBCONT=0,IBRAW=$G(IBRAW)
 | 
|---|
| 18 |  D NOW^%DTC
 | 
|---|
| 19 |  S (IBYR1,IBYR3)=$E(X,1,3)+1_"0101"
 | 
|---|
| 20 |  S IBYR2=$E(X,1,3)-2_"1230"
 | 
|---|
| 21 |  K ^TMP("IBPID",$J)
 | 
|---|
| 22 |  D PTF,VST
 | 
|---|
| 23 |  Q:IBRAW
 | 
|---|
| 24 |  D DATA
 | 
|---|
| 25 |  I '$D(^TMP("IBPID",$J)) W "No data found"
 | 
|---|
| 26 |  Q
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 | PTF ;PTF (file 45/field 50) with admission within last two years DBIA419
 | 
|---|
| 29 |  F  S IBYR1=$O(^DGPM("AMV1",IBYR1),-1) Q:'IBYR1!(IBYR1\1<IBYR2)  S IBDFN=0 F  S IBDFN=$O(^DGPM("AMV1",IBYR1,IBDFN)) Q:'IBDFN  S IBIEN=0 F  S IBIEN=$O(^DGPM("AMV1",IBYR1,IBDFN,IBIEN)) Q:'IBIEN  D
 | 
|---|
| 30 |  . ; DBIA418
 | 
|---|
| 31 |  . S IBPTF=+$P($G(^DGPM(IBIEN,0)),U,16)
 | 
|---|
| 32 |  . Q:'IBPTF
 | 
|---|
| 33 |  . S IBPID=$G(^DGPT(IBPTF,70)),IBPID=$P(IBPID,"^",15)
 | 
|---|
| 34 |  . I IBPID S ^TMP("IBPID",$J,IBPID)=""
 | 
|---|
| 35 |  . ;501 movement (file 45.02)
 | 
|---|
| 36 |  . S IBDT=0 F  S IBDT=$O(^DGPT(IBPTF,"M","AM",IBDT)) Q:'IBDT  S IBPINT=0 F  S IBPINT=$O(^DGPT(IBPTF,"M","AM",IBDT,IBPINT)) Q:'IBPINT  D
 | 
|---|
| 37 |  .. S IBPID=$G(^DGPT(IBPTF,"M",IBPINT,"P")),IBPID=$P(IBPID,"^",5)
 | 
|---|
| 38 |  .. I IBPID S ^TMP("IBPID",$J,IBPID)=""
 | 
|---|
| 39 |  Q
 | 
|---|
| 40 |  ;
 | 
|---|
| 41 | VST ; get providers associated with outpatient encntrs within the last 2 yrs
 | 
|---|
| 42 |  ;
 | 
|---|
| 43 |  N IBVAL,IBCBK
 | 
|---|
| 44 |  S IBVAL("BDT")=IBYR2,IBVAL("EDT")=IBYR3
 | 
|---|
| 45 |  S IBCBK="D VSTPRV^IBCEP9A(Y)"
 | 
|---|
| 46 |  D SCAN^IBSDU("DATE/TIME",.IBVAL,"",IBCBK,1) ; Get all encntrs in dt rnge
 | 
|---|
| 47 |  Q
 | 
|---|
| 48 |  ;
 | 
|---|
| 49 | VSTPRV(IBOE) ; Get all providers for an encounter IBOE
 | 
|---|
| 50 |  N IBPID,Z
 | 
|---|
| 51 |  D GETPRV^SDOE(IBOE,"IBPID")
 | 
|---|
| 52 |  S Z=0 F  S Z=$O(IBPID(Z)) Q:'Z  I +IBPID(Z) S ^TMP("IBPID",$J,+IBPID(Z))=""
 | 
|---|
| 53 |  Q
 | 
|---|
| 54 |  ;
 | 
|---|
| 55 | DATA ;store data in file
 | 
|---|
| 56 |  N IBNAM,IBSSN,IBDGE
 | 
|---|
| 57 |  S IBPID=0
 | 
|---|
| 58 |  F  S IBPID=$O(^TMP("IBPID",$J,IBPID)) Q:'IBPID  D
 | 
|---|
| 59 |  . S IBNAM=$P($G(^VA(200,IBPID,0)),"^")
 | 
|---|
| 60 |  . S IBSSN=$P($G(^VA(200,IBPID,1)),"^",9)
 | 
|---|
| 61 |  . S IBDGE=$P($G(^VA(200,IBPID,3.1)),"^",6)
 | 
|---|
| 62 |  . S ^TMP("IBPID",$J,IBPID)=IBNAM_$J("",40-$L(IBNAM))_IBSSN_$J("",9-$L(IBSSN))_IBDGE_$J("",10-$L(IBDGE))
 | 
|---|
| 63 |  Q
 | 
|---|
| 64 |  ;
 | 
|---|