| 1 | SDSCNSCP ;ALB/JAM - ASCD NSC Encounters Purge ; 4/24/07 4:29pm | 
|---|
| 2 | ;;5.3;Scheduling;**495**;Aug 13, 1993;Build 50 | 
|---|
| 3 | ; | 
|---|
| 4 | ;**Program Description** | 
|---|
| 5 | ;  This program will purge encounters with a status of NEW where | 
|---|
| 6 | ;  the Visit SC value equals the ASCD value of "NO" for a specified | 
|---|
| 7 | ;  division(s) with and a user defined date range. Users must have | 
|---|
| 8 | ;  the SDSC SUPER key to run this option. | 
|---|
| 9 | Q | 
|---|
| 10 | EN ;  Entry Point | 
|---|
| 11 | N ZTQUEUED,POP,ZTRTN,ZTDTH,ZTDESC,ZTSAVE,SDSCDVSL,SDSCDVLN,DIR,X,Y | 
|---|
| 12 | N DTOUT,DUOUT | 
|---|
| 13 | ;  Get start and end date for encounter list. | 
|---|
| 14 | D GETDATE^SDSCOMP I SDSCTDT="" G EXIT | 
|---|
| 15 | ;  Ask for division | 
|---|
| 16 | D DIV^SDSCUTL | 
|---|
| 17 | D ^DIR | 
|---|
| 18 | I $G(DTOUT)!($G(DUOUT)) G EXIT | 
|---|
| 19 | S SDSCDVSL=Y,SDSCDVLN=SCLN | 
|---|
| 20 | K SCLN,DIR | 
|---|
| 21 | ;  Determine type of user | 
|---|
| 22 | D TYPE^SDSCUTL | 
|---|
| 23 | I SDTYPE'="S" W !!,"You do not have privileges to run this report." Q | 
|---|
| 24 | W !!,"This option will permanently remove the outpatient encounters that are at a" | 
|---|
| 25 | W !,"NEW status when both the Encounter SC value and the ASCD value are 'NO' from" | 
|---|
| 26 | W !,"the SDSC SERVICE CONNECTED CHANGES file (#409.48).",! | 
|---|
| 27 | S DIR(0)="Y",DIR("A")="Are you sure you want to continue",DIR("B")="N" | 
|---|
| 28 | S DIR("?")="YES to remove encounters from the Review file, NO to Exit." | 
|---|
| 29 | D ^DIR | 
|---|
| 30 | I ('Y)!($G(DTOUT))!($G(DUOUT)) G EXIT | 
|---|
| 31 | ; | 
|---|
| 32 | K %ZIS,IOP,IOC,ZTIO S %ZIS="QM" D ^%ZIS G:POP EXIT | 
|---|
| 33 | I $D(IO("Q")) D  G EXIT | 
|---|
| 34 | . S ZTRTN="BEG^SDSCNSCP",ZTDTH=$H,ZTDESC="Purge ASCD NSC Encounters" | 
|---|
| 35 | . S ZTSAVE("SDSCDVSL")="",ZTSAVE("SDSCDVLN")="",ZTSAVE("SDEDT")="" | 
|---|
| 36 | . S ZTSAVE("SDSCTDT")="",ZTIO=ION | 
|---|
| 37 | . K IO("Q") D ^%ZTLOAD W !,"REQUEST QUEUED" | 
|---|
| 38 | ; | 
|---|
| 39 | BEG ; Begin report | 
|---|
| 40 | N SDSCDIV,SDSCDNM,SDI,SDGTOT,SDPG | 
|---|
| 41 | S SDGTOT=0,SDPG=1 | 
|---|
| 42 | S SDSCDIV=$S(SDSCDVSL'[SDSCDVLN:SDSCDVSL,1:"") | 
|---|
| 43 | I SDSCDIV="" S SDSCDNM="ALL" D FND G EXIT | 
|---|
| 44 | I SDSCDIV'="" D | 
|---|
| 45 | . F SDI=1:1:$L(SDSCDVSL,",") S SDSCDIV=$P(SDSCDVSL,",",SDI) Q:SDSCDIV=""  D | 
|---|
| 46 | .. S SDSCDNM=$P(^DG(40.8,SDSCDIV,0),"^",1) | 
|---|
| 47 | .. D FND | 
|---|
| 48 | W !!,"Grand total of NSC Records Purged: ",SDGTOT | 
|---|
| 49 | G EXIT | 
|---|
| 50 | ; | 
|---|
| 51 | FND ; Find records and delete | 
|---|
| 52 | N SDOEDT,SDOE0,SDEDIV,SDOE,SDSCDATA,SDL,SDV0,SDPRV,SCVST,SDCNT,DFN,DIK,DA | 
|---|
| 53 | ; | 
|---|
| 54 | D HDR | 
|---|
| 55 | S SDOEDT=SDSCTDT-1,(SDL,SDCNT)=0 | 
|---|
| 56 | F  S SDOEDT=$O(^SDSC(409.48,"AE",SDOEDT)) Q:SDOEDT\1>SDEDT!(SDOEDT="")  D | 
|---|
| 57 | . S SDOE="" | 
|---|
| 58 | . F  S SDOE=$O(^SDSC(409.48,"AE",SDOEDT,SDOE)) Q:SDOE=""  D | 
|---|
| 59 | .. S SDOE0=$$GETOE^SDOE(SDOE),SDSCDATA=$G(^SDSC(409.48,SDOE,0)) | 
|---|
| 60 | .. Q:SDOE0=""  Q:SDSCDATA="" | 
|---|
| 61 | .. ; Check if status is NEW | 
|---|
| 62 | .. I $P(SDSCDATA,U,5)'="N" Q | 
|---|
| 63 | .. S SDEDIV=$P(SDSCDATA,U,12) Q:SDEDIV="" | 
|---|
| 64 | .. I SDSCDIV'="" Q:SDEDIV'=SDSCDIV | 
|---|
| 65 | .. ; Check for ASCD SC value | 
|---|
| 66 | .. I $P(SDSCDATA,U,9)'=0 Q | 
|---|
| 67 | .. ; Check for Visit SC value | 
|---|
| 68 | .. S SDV0=$P(SDOE0,U,5),SCVST=$$GET1^DIQ(9000010,SDV0_",",80001,"I") | 
|---|
| 69 | .. I SCVST'=0 Q | 
|---|
| 70 | .. S DFN=$P(SDOE0,U,"2Z") D DEM^VADPT | 
|---|
| 71 | .. S SDCNT=SDCNT+1,SDGTOT=SDGTOT+1,SCVST=$S(SCVST:"Y",SCVST=0:"NO",1:"") | 
|---|
| 72 | .. S SDPRV=$$GET1^DIQ(200,$$PRIMVPRV^PXUTL1(SDV0)_",",.01,"E"),SDL=SDL+1 | 
|---|
| 73 | .. W !,$$FMTE^XLFDT(SDOEDT,2),?16,SDOE,?30,$E(VADM(1),1,25),?55,$E(SDPRV,1,19),?75,SCVST | 
|---|
| 74 | .. S DIK="^SDSC(409.48,",DA=SDOE D ^DIK | 
|---|
| 75 | .. D KVA^VADPT | 
|---|
| 76 | .. I $E(IOST,1,2)'="C-",SDL+4>IOSL D HDR | 
|---|
| 77 | W !!,"Number of NSC Records Purged: ",SDCNT," for "_SDSCDNM | 
|---|
| 78 | Q | 
|---|
| 79 | ; | 
|---|
| 80 | HDR ;  Print report | 
|---|
| 81 | N SDHDR,I | 
|---|
| 82 | S SDHDR="Purge ASCD NSC Encounters" | 
|---|
| 83 | W @IOF | 
|---|
| 84 | W SDHDR,?67,"PAGE: ",SDPG | 
|---|
| 85 | W !,?5,"For Encounters Dated ",$$FMTE^XLFDT(SDSCTDT,2)," THRU ",$$FMTE^XLFDT(SDEDT,2)," For Division: ",SDSCDNM,!! | 
|---|
| 86 | W "Encounter Date",?16,"Encounter No.",?30,"Patient Name",?55,"Provider",?73,"SC Val" | 
|---|
| 87 | W ! F I=1:1:79 W "-" | 
|---|
| 88 | S SDPG=SDPG+1 | 
|---|
| 89 | Q | 
|---|
| 90 | ; | 
|---|
| 91 | EXIT ;clean up variables before exiting option | 
|---|
| 92 | K SDEDT,SDOPT,SDSCBDT,SDSCCR,SDSCEDT,SDSCTAT,SDSCTDT,SDTYPE | 
|---|
| 93 | Q | 
|---|