| 1 | ACKQDWL ;AUG/JLTP BIR/PTD HCIOFO/BH-Compile A&SP Capitation Data ; [ 05/21/96 11:15 ]
 | 
|---|
| 2 |  ;;3.0;QUASAR;;Feb 11, 2000
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine SHOULD NOT be modified.
 | 
|---|
| 4 |  ;
 | 
|---|
| 5 | OPTN ;  Introduce option.
 | 
|---|
| 6 |  W @IOF,!,"This option compiles the data for the A&SP Capitation Report.",!
 | 
|---|
| 7 | DIV ; select Division (user may select one/many/ALL)
 | 
|---|
| 8 |  S ACKDIV=$$DIV^ACKQUTL2(3,.ACKDIV,"IA") G:'ACKDIV EXIT
 | 
|---|
| 9 |  ;  get month to be compiled
 | 
|---|
| 10 |  D GETDT G:$D(DIRUT) EXIT
 | 
|---|
| 11 |  ;  initialise other variables
 | 
|---|
| 12 |  D INIT S ACKMAN=1,ACKDUZ=DUZ
 | 
|---|
| 13 |  ;
 | 
|---|
| 14 |  ;  Check the status of the workload file
 | 
|---|
| 15 |  S ACKWLMSG=$$WLSTATUS^ACKQDWLU(ACKDA,.ACKDIV,.ACKWLMSG)
 | 
|---|
| 16 |  ;  If status does not allow us to run, then exit
 | 
|---|
| 17 |  S ACKSTAT=$$STAQES1^ACKQDWLU(ACKDA,.ACKDIV,.ACKWLMSG)
 | 
|---|
| 18 |  ;
 | 
|---|
| 19 |  I 'ACKSTAT!(ACKSTAT="^") D EXIT G DIV
 | 
|---|
| 20 |  ;                      
 | 
|---|
| 21 | BKG ;  Queue process to run in the background.
 | 
|---|
| 22 |  W !!,"QUASAR - Compile A&SP Capitation Data ",!
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 |  S ZTRTN="DQ^ACKQDWL",ZTIO="",ZTSAVE("ACK*")=""
 | 
|---|
| 25 |  S ZTDESC="QUASAR - Compile A&SP Capitation Data" D ^%ZTLOAD
 | 
|---|
| 26 |  W:$D(ZTSK) !,"Data generation queued to run in the background."
 | 
|---|
| 27 |  G EXIT
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 | DQ ;  Entry point when queued.
 | 
|---|
| 30 |  N CPT,ICD
 | 
|---|
| 31 |  S:'$D(ACKM) ACKM=$$LM(DT) D:'$D(ACKDA) INIT
 | 
|---|
| 32 |  S ACKWLMSG=$$WLSTATUS^ACKQDWLU(ACKDA,.ACKDIV,.ACKWLMSG)
 | 
|---|
| 33 |  S ACKSTAT=$$STAQES^ACKQDWLU(ACKWLMSG) I 'ACKSTAT D:'$D(ACKMAN) ABORT^ACKQDWB(ACKWLMSG) G EXIT
 | 
|---|
| 34 |  I ACKSTAT=2 D CREATE^ACKQDWLU(ACKDA,ACKM,.ACKDIV) G:$D(DIRUT) EXIT
 | 
|---|
| 35 |  D BEGIN
 | 
|---|
| 36 |  D ^ACKQDWL1
 | 
|---|
| 37 |  D END
 | 
|---|
| 38 |  ;
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 | EXIT ;  ALWAYS EXIT HERE
 | 
|---|
| 41 |  K ACKBFY,ACKCP,ACKCPP,ACKCPT,ACKD,ACKDA,ACKDUZ,ACKEM,ACKICP,ACKICD,ACKM,ACKMAN,ACKMO,ACKNU,ACKNV,ACKST,ACKSTOP,ACKV,ACKXFT,ACKXST,ACKZIP
 | 
|---|
| 42 |  K %X,%Y,D0,DA,DFN,DIE,DIRUT,DTOUT,DUOUT,DR,I,VAERR,VAPA,X,XMZ,Y,ZTSK
 | 
|---|
| 43 |  K ^TMP("ACKQWL",$J),ACKXSDTE,ACKXEDTE,ACKDIV
 | 
|---|
| 44 |  K ACKSTAT,ACKST,ACKK1,ACKN,ACKDEF,ACKVDVN,ACKX,DIVIEN,DIVARR
 | 
|---|
| 45 |  S:$D(ZTQUEUED) ZTREQ="@"
 | 
|---|
| 46 |  Q
 | 
|---|
| 47 |  ;
 | 
|---|
| 48 | GETDT ;  Select month for report.
 | 
|---|
| 49 |  N DIR,X,Y
 | 
|---|
| 50 | GDT1 S DIR(0)="D^::APE",DIR("A")="Select Month & Year"
 | 
|---|
| 51 |  S DIR("B")=$$XDAT^ACKQUTL($$LM(DT)),DIR("?")="^D HELP^%DTC"
 | 
|---|
| 52 |  S DIR("??")="^D DATHLP^ACKQDWL"
 | 
|---|
| 53 |  D ^DIR Q:$D(DIRUT)
 | 
|---|
| 54 |  S ACKM=$E(Y,1,5)_"00"
 | 
|---|
| 55 |  I ACKM>DT W !,$C(7),"Can't run capitation report for future months!" G GDT1
 | 
|---|
| 56 |  Q
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 | INIT ;  Initialize important variables.
 | 
|---|
| 59 |  N MON
 | 
|---|
| 60 |  S MON=$E(ACKM,1,5),ACKEM=MON_"99",ACKDA=+$$SITE^VASITE()_MON
 | 
|---|
| 61 |  S ACKBFY=$$BFY^ACKQUTL(ACKM)
 | 
|---|
| 62 |  Q
 | 
|---|
| 63 |  ;
 | 
|---|
| 64 | LM(X) ;  Find month previous to X.
 | 
|---|
| 65 |  N M,D,Y S M=$E(X,4,5),D=$E(X,6,7),Y=$E(X,1,3),M=M-1
 | 
|---|
| 66 |  S:M<1 M=12,Y=Y-1 S:M<10 M="0"_M
 | 
|---|
| 67 |  Q Y_M_"00"
 | 
|---|
| 68 |  ;
 | 
|---|
| 69 | DATHLP ;  Extended help - select month for capitation report. (ACKQWL)
 | 
|---|
| 70 |  W !?5,"Enter a date, in the past, for which you wish to",!?5,"compile data for the A&SP Capitation Report."
 | 
|---|
| 71 |  Q
 | 
|---|
| 72 |  ;
 | 
|---|
| 73 | END ;  Set END date field into header for Division and Date  
 | 
|---|
| 74 |  N ACKARR
 | 
|---|
| 75 |  D NOW^%DTC
 | 
|---|
| 76 |  S DIVNUM=""
 | 
|---|
| 77 |  F  S DIVNUM=$O(ACKDIV(DIVNUM)) Q:DIVNUM=""  D
 | 
|---|
| 78 |  . S DIVIEN=$P(ACKDIV(DIVNUM),U,1)
 | 
|---|
| 79 |  . S ACKARR(509850.75,DIVIEN_","_ACKDA_",",5.04)=%
 | 
|---|
| 80 |  D FILE^DIE("K","ACKARR")
 | 
|---|
| 81 |  D NOW^%DTC
 | 
|---|
| 82 |  S Y=X D DD^%DT S ACKXEDTE=Y
 | 
|---|
| 83 |  S ACKXFT=$$HTIM^ACKQUTL(),ACKMO=$$XDAT^ACKQUTL(ACKM) D BUILD^ACKQDWB
 | 
|---|
| 84 |  K ACKDIV
 | 
|---|
| 85 |  Q
 | 
|---|
| 86 |  ;
 | 
|---|
| 87 | BEGIN ;  Set START date and Job # into header record for Division and date
 | 
|---|
| 88 |  N ACKARR
 | 
|---|
| 89 |  D NOW^%DTC
 | 
|---|
| 90 |  S Y=X D DD^%DT S ACKXSDTE=Y
 | 
|---|
| 91 |  S ACKXST=$$HTIM^ACKQUTL
 | 
|---|
| 92 |  S DIVNUM=""
 | 
|---|
| 93 |  F  S DIVNUM=$O(ACKDIV(DIVNUM)) Q:DIVNUM=""  D
 | 
|---|
| 94 |  . S DIVIEN=$P(ACKDIV(DIVNUM),U,1)
 | 
|---|
| 95 |  . S ACKARR(509850.75,DIVIEN_","_ACKDA_",",5.02)=%
 | 
|---|
| 96 |  . S ACKARR(509850.75,DIVIEN_","_ACKDA_",",5.03)=$J
 | 
|---|
| 97 |  D FILE^DIE("K","ACKARR")
 | 
|---|
| 98 |  Q
 | 
|---|
| 99 |  ;
 | 
|---|
| 100 |  ;
 | 
|---|