1 | IBPA ;ALB/CPM - ARCHIVE BILLING DATA ; 22-APR-92
|
---|
2 | ;;Version 2.0 ; INTEGRATED BILLING ;; 21-MAR-94
|
---|
3 | ;;Per VHA Directive 10-93-142, this routine should not be modified.
|
---|
4 | ;
|
---|
5 | ; Tasked job sorts search template entries by patient and date
|
---|
6 | ; and writes each entry to the archive device.
|
---|
7 | ;
|
---|
8 | ; Input: IBD(file number) -- piece 1: date through which to archive
|
---|
9 | ; piece 2: log entry if restarting
|
---|
10 | ; IBOP -- 2 (Archive Billing Data)
|
---|
11 | ; DUZ -- user ID; retained by Taskman
|
---|
12 | ;
|
---|
13 | ; Called by QUE^IBP
|
---|
14 | ;
|
---|
15 | ;
|
---|
16 | ; Archive entries for each selected file.
|
---|
17 | S IBSTAT=$$LOG^IBPU(IBF)
|
---|
18 | I 'IBSTAT S $P(IBD(IBF),"^",4)="Invalid File to Archive" G END
|
---|
19 | I $P(IBD(IBF),"^",2) D DEL^IBPU1(IBF) F I=2.01,2.02,2.03 D UPD^IBPU1($P(IBD(IBF),"^",2),I,"/@")
|
---|
20 | S IBLOG=$$LOGIEN^IBPU1(IBF),$P(IBD(IBF),"^",3)=IBLOG
|
---|
21 | I 'IBLOG S $P(IBD(IBF),"^",4)="Unable to Retrieve Current Entry to Log File" G END
|
---|
22 | S IBTMPL=$P($G(^IBE(350.6,IBLOG,0)),"^",2)
|
---|
23 | I IBTMPL="" S $P(IBD(IBF),"^",4)="Log Entry has no Search Template" D UPD^IBPU1(IBLOG,.05,"/3") G END
|
---|
24 | S IBTMDA=$O(^DIBT("B",IBTMPL,0))
|
---|
25 | I 'IBTMDA S $P(IBD(IBF),"^",4)="Search Template Name is Invalid" D UPD^IBPU1(IBLOG,.05,"/3") G END
|
---|
26 | I '$D(^DIBT(IBTMDA,1)) S $P(IBD(IBF),"^",4)="Search Template has no Entries to Archive" D UPD^IBPU1(IBLOG,.05,"/3") G END
|
---|
27 | D UPD^IBPU1(IBLOG,2.01,"NOW") ; set start time of archive
|
---|
28 | ; - sort all entries by patient and date
|
---|
29 | S IBROOT=^DIC(IBF,0,"GL"),IBN=0
|
---|
30 | F S IBN=$O(^DIBT(IBTMDA,1,IBN)) Q:'IBN S DFN=$P($G(@(IBROOT_IBN_",0)")),"^",2),DATE=$S(IBF=350:$P($G(@(IBROOT_IBN_",1)")),"^",2),1:$P($G(@(IBROOT_IBN_",0)")),"^",3)),^TMP($J,"IBPA",+DFN,+DATE,IBN)=""
|
---|
31 | ; - write out the entries
|
---|
32 | D WRITE K ^TMP($J,"IBPA")
|
---|
33 | I 'IBCNT S $P(IBD(IBF),"^",4)="No Entries Archived" D DEL^IBPU1(IBF),UPD^IBPU1(IBLOG,.05,"/3") G END
|
---|
34 | D UPD^IBPU1(IBLOG,.04,IBCNT) ; update log entry with count
|
---|
35 | D UPD^IBPU1(IBLOG,2.02,"NOW") ; set end time of archive in log
|
---|
36 | END Q
|
---|
37 | ;
|
---|
38 | ;
|
---|
39 | WRITE ; Write out each entry.
|
---|
40 | S (DFN,DATE,IBCNT,IBN,IBPAGE)=0,DIC=IBROOT,IBFNAME=$P($G(^DIC(IBF,0)),"^")
|
---|
41 | D NOW^%DTC S IBHDT=$$DAT2^IBOUTL(%)
|
---|
42 | S IBLINE="",$P(IBLINE,"-",IOM)="" D:IBF'=399 HDR
|
---|
43 | F S DFN=$O(^TMP($J,"IBPA",DFN)) Q:'DFN F S DATE=$O(^TMP($J,"IBPA",DFN,DATE)) Q:'DATE F S IBN=$O(^TMP($J,"IBPA",DFN,DATE,IBN)) Q:'IBN D
|
---|
44 | . I IBF=399 D HDR
|
---|
45 | . I IBF'=399 S IBOFF=$S(IBF=350:9,1:11) D:$Y>(IOSL-IBOFF) HDR
|
---|
46 | . S DA=IBN,IBCNT=IBCNT+1 D EN^DIQ
|
---|
47 | Q
|
---|
48 | ;
|
---|
49 | HDR ; Print a short header at the top of each page.
|
---|
50 | S IBPAGE=IBPAGE+1
|
---|
51 | W @IOF,"Archived "_IBFNAME,?(IOM-42),IBHDT,?(IOM-11),"Page: ",IBPAGE,!,IBLINE,!
|
---|
52 | Q
|
---|