| 1 | LRARCHIV ;SLC/RWF/DAL/HOAK FIRST ROUTINE FOR PATIENT ARCHIVE ; 12/12/96  10:16 ; | 
|---|
| 2 | ;;5.2;LAB SERVICE;**59,111**;Sep 27, 1994 | 
|---|
| 3 | ; | 
|---|
| 4 | ;  Taken from--> SET UP O("S") VARIABLES FOR ARCHIVE. ;2/5/91  12:30 ; | 
|---|
| 5 | INIT ; | 
|---|
| 6 | ; | 
|---|
| 7 | ; | 
|---|
| 8 | ; | 
|---|
| 9 | K ^TMP("LRBAD"),^TMP("LRUNV"),^TMP("LRNOD") | 
|---|
| 10 | ; | 
|---|
| 11 | SEARCH ; | 
|---|
| 12 | S OK=1 | 
|---|
| 13 | ;          Rewrite of basic archive SEARCH function for ^LR data | 
|---|
| 14 | ; | 
|---|
| 15 | ;--> Following the F1 variable tells you where you are | 
|---|
| 16 | ; | 
|---|
| 17 | ;^LAB(69.9,1,6,1,0) = ARCH-1^VAMC^2970318.0941^1^2970318 | 
|---|
| 18 | ; | 
|---|
| 19 | ;--> F1=1 or 2 or 3 or 4or 5 depending what step has been done | 
|---|
| 20 | ; | 
|---|
| 21 | ;DATA TYPE:       Set of Codes                 | | 
|---|
| 22 | ;                 1:Searching------------------| | 
|---|
| 23 | ;                 2:Search done----------------| | 
|---|
| 24 | ;                 3:Clear----------------------| | 
|---|
| 25 | ;                 4:Purging--------------------| | 
|---|
| 26 | ;                 5:Purge done-----------------| | 
|---|
| 27 | ;SERCHING: | 
|---|
| 28 | ;  Looks through the entire LR global by patient (LRDFN) for all | 
|---|
| 29 | ;  eligible entries by date. | 
|---|
| 30 | ;  New functionality also make certain all associated eligiable data is | 
|---|
| 31 | ;  forced to a perminant cume page. | 
|---|
| 32 | ; | 
|---|
| 33 | I '$G(F1) G MEET QUIT | 
|---|
| 34 | S OK=1 D RESTART^LRAR06:$G(F1)=1 | 
|---|
| 35 | I 'OK D END QUIT | 
|---|
| 36 | ; | 
|---|
| 37 | I $G(F1)>1 W !,"Please finish the Clear and Purge steps first." D QUIT Q | 
|---|
| 38 | ; | 
|---|
| 39 | I $G(F1)=0 S:'$D(^LAB(69.9,1,6,0)) ^LAB(69.9,1,6,0)="^69.9003A^^" D TAPE^LRAR06 | 
|---|
| 40 | ; | 
|---|
| 41 | I $G(DA)<1!($G(P1)<1) D QUIT Q | 
|---|
| 42 | PAT ; | 
|---|
| 43 | ;    Entry for testing---------------------> | 
|---|
| 44 | STEPOUT ; | 
|---|
| 45 | MEET ; | 
|---|
| 46 | W @IOF,!!,"Welcome to The Search Option for the New Archive Modual",! | 
|---|
| 47 | ; | 
|---|
| 48 | I '$G(P1) S OK=1 D TAPE^LRAR06 I 'OK D END QUIT | 
|---|
| 49 | ;E  W !,"A file entry IS NOT present" | 
|---|
| 50 | ; | 
|---|
| 51 | ;            Make a list of data or not | 
|---|
| 52 | ; | 
|---|
| 53 | ; | 
|---|
| 54 | W !,"Shall I prepare a list of patients that will have data archived" | 
|---|
| 55 | S %=2 D YN^DICN | 
|---|
| 56 | ; | 
|---|
| 57 | QUES I %=0 W !,"Answering YES to this question will produce" D  G PAT | 
|---|
| 58 | .  W "a list of patients that will have data archived." | 
|---|
| 59 | ; | 
|---|
| 60 | S LRPAT=0 S:%=1 LRPAT=1 | 
|---|
| 61 | T ; | 
|---|
| 62 | I '$G(P1) W !,"Tape name not defined. Please start again." | 
|---|
| 63 | I  QUIT | 
|---|
| 64 | ; | 
|---|
| 65 | S ^LAB(69.9,1,"TAPE")=P1 | 
|---|
| 66 | S $P(^LAB(69.9,1,6,P1,0),U,4)=1 ;---SEARCH IS IN PROGRESS | 
|---|
| 67 | S X=1 | 
|---|
| 68 | S LRP1=P1 | 
|---|
| 69 | D LRSUB1 D DEVICE | 
|---|
| 70 | QUIT | 
|---|
| 71 | END ; | 
|---|
| 72 | D QUIT | 
|---|
| 73 | Q | 
|---|
| 74 | ; | 
|---|
| 75 | DEVICE ; | 
|---|
| 76 | S %ZIS="Q" | 
|---|
| 77 | QUE ; | 
|---|
| 78 | S ZTSAVE("LR*")="",ZTRTN="LR^LRAR04",ZTDESC="Archive search option." | 
|---|
| 79 | S ZTSAVE("LR*")="" | 
|---|
| 80 | S ZTSAVE("^TMP(""LR9""")="" | 
|---|
| 81 | D IO^LRWU | 
|---|
| 82 | QUIT | 
|---|
| 83 | DQ1 ; | 
|---|
| 84 | ; | 
|---|
| 85 | K OK,LRI | 
|---|
| 86 | U IO | 
|---|
| 87 | S LRC1=1,LRC2=0,LRC3=0,Y=LR(1) | 
|---|
| 88 | D DD^LRX | 
|---|
| 89 | W @IOF,!,"LAB DATA ARCHIVE for data before ",Y | 
|---|
| 90 | W ". on " D STAMP^LRX S X=1 X ^%ZOSF("PRIORITY") | 
|---|
| 91 | I '$G(LREDT3) D TIME^LRAR06 | 
|---|
| 92 | S X2=LREDT3,X1=LR(1) D ^%DTC | 
|---|
| 93 | W !!,"Number of Days To be searched: ",X | 
|---|
| 94 | QUIT | 
|---|
| 95 | ; | 
|---|
| 96 | ;      Get test data names from 63.04 | 
|---|
| 97 | ; | 
|---|
| 98 | LRSUB1 S LRSUB=1 | 
|---|
| 99 | F  S LRSUB=$O(^DD(63.04,LRSUB)) Q:LRSUB<1  D | 
|---|
| 100 | .  I $D(^DD(63.04,LRSUB,0)),'$D(^DD(63.999904,LRSUB)) D | 
|---|
| 101 | ..  S LRX0=^DD(63.04,LRSUB,0) S LRX3=$S($D(^(3)):^(3),1:"") | 
|---|
| 102 | ..  S ^DD(63.999904,LRSUB,0)=LRX0 S:LRX3'="" ^(3)=LRX3 | 
|---|
| 103 | ..  S ^DD(63.999904,"B",$P(LRX0,U),LRSUB)="" | 
|---|
| 104 | K X,Y,L1,L2 | 
|---|
| 105 | ; | 
|---|
| 106 | ;D ^AAHAGL | 
|---|
| 107 | ; | 
|---|
| 108 | ;QUIT  ;**************************************************** | 
|---|
| 109 | ; | 
|---|
| 110 | ; | 
|---|
| 111 | ; | 
|---|
| 112 | PROCESS ; | 
|---|
| 113 | ; | 
|---|
| 114 | ; | 
|---|
| 115 | K ^LAR("DHZ") | 
|---|
| 116 | ; | 
|---|
| 117 | K ^TMP("LRT2") | 
|---|
| 118 | ; | 
|---|
| 119 | D SET^LRAR03 | 
|---|
| 120 | ; | 
|---|
| 121 | ; | 
|---|
| 122 | ;S $P(^LAB(69.9,1,6,P1,0),U,4)=2 L -^LAR | 
|---|
| 123 | QUIT | 
|---|
| 124 | LST ; | 
|---|
| 125 | W @IOF | 
|---|
| 126 | S OK=1 | 
|---|
| 127 | U IO | 
|---|
| 128 | S LRPAGE=1 | 
|---|
| 129 | D HEAD | 
|---|
| 130 | I $G(LRPAT) W !! S PNM="" F  S PNM=$O(^LAR("NAME",PNM)) Q:PNM=""  D | 
|---|
| 131 | .  S LRDFN=0 | 
|---|
| 132 | .  F  S LRDFN=$O(^LAR("NAME",PNM,LRDFN)) Q:+LRDFN'>0!('OK)  D | 
|---|
| 133 | ..  I $D(^LR(LRDFN,0))#2 N PNM S LRDPF=$P(^LR(LRDFN,0),"^",2) D | 
|---|
| 134 | ...  Q:'OK | 
|---|
| 135 | ...  S DFN=$P(^LR(LRDFN,0),"^",3) | 
|---|
| 136 | ...  D CHKPG Q:'OK  D DEM^LRX W !,PNM,?30,SSN | 
|---|
| 137 | ..  I '$D(^LR(LRDFN,0))#2 D | 
|---|
| 138 | ...  W !!,PNM," LRDFN # "_LRDFN_" Has Been Deleted from ^LR( ",!,$C(7),"SSN = Unknown",! | 
|---|
| 139 | ; | 
|---|
| 140 | LISTS ; | 
|---|
| 141 | ; | 
|---|
| 142 | I 'OK S OK=1 G AROUND | 
|---|
| 143 | I IOST'["C-" G AROUND | 
|---|
| 144 | S OK=1 | 
|---|
| 145 | I IOST["C-" S DIR(0)="E" D ^DIR | 
|---|
| 146 | AROUND F LRQ="^TMP(""LRBAD"")","^TMP(""LRUNV"")","^TMP(""LRNOD"")" Q:LRQ=""  D | 
|---|
| 147 | .  W @IOF | 
|---|
| 148 | .  W !,$$CJ^XLFSTR($S(LRQ["LRBAD":"Entries with bad Data",LRQ["LRUNV":"Entries that were not verified",1:"Entries with no data"),IOM),!! | 
|---|
| 149 | .  F  S LRQ=$Q(@LRQ) Q:LRQ'["LR"  D CHKPG Q:'OK  W !,@LRQ | 
|---|
| 150 | QUIT ; | 
|---|
| 151 | D KILL^LRAR01 D KVAR^VADPT K F1,LRC1,LRC2,LRC3 U IO(0) | 
|---|
| 152 | ; | 
|---|
| 153 | I $G(LRP1) S $P(^LAB(69.9,1,6,LRP1,0),U,4)=2 ;----SEARCH IS DONE | 
|---|
| 154 | ; | 
|---|
| 155 | K ^TMP("LRBAD"),^TMP("LRUNV"),^TMP("LRNOD") | 
|---|
| 156 | QUIT | 
|---|
| 157 | CHKPG ; | 
|---|
| 158 | Q:'OK | 
|---|
| 159 | I IOSL-$Y'>3&($E(IOST,1,2)="C-") S DIR(0)="E" D ^DIR K DIR D | 
|---|
| 160 | .  W @IOF | 
|---|
| 161 | .  I $D(DTOUT)!($D(DUOUT)) S OK=0 | 
|---|
| 162 | Q:'OK | 
|---|
| 163 | I IOSL-$Y'>3&($E(IOST,1,2)="P-") S LRPAGE=LRPAGE+1 D HEAD | 
|---|
| 164 | ; | 
|---|
| 165 | QUIT | 
|---|
| 166 | HEAD ; | 
|---|
| 167 | W $$RJ^XLFSTR("Page "_LRPAGE,IOM),! | 
|---|
| 168 | Q | 
|---|
| 169 | CLEAN ; | 
|---|
| 170 | D CLEAN^LRAR01 | 
|---|
| 171 | Q | 
|---|
| 172 | PURGE ; | 
|---|
| 173 | D PURGE^LRAR01 | 
|---|
| 174 | Q | 
|---|