| 1 | LRAPDSR ;DALOI/WTY/KLL - AP SUPPLEMENTARY REPORT ENTRY;12/05/00 | 
|---|
| 2 | ;;5.2;LAB SERVICE;**248,259,295,317**;Sep 27, 1994 | 
|---|
| 3 | ; | 
|---|
| 4 | N LRYTMP,LRWPROOT,LRRLS,LRRLS1,LRRLS2,LRX,LRIENS,LRFILE1,LRFILE,LRA | 
|---|
| 5 | N LRIENS1,LRXTMP,LRFDA,LRNOW,LRIENS2,LRFIELD,LRORIEN,LRFLG,LRDA,LRQUIT | 
|---|
| 6 | ; | 
|---|
| 7 | MAIN ;Main Subroutine | 
|---|
| 8 | D RELEAS1 | 
|---|
| 9 | D GETRPT | 
|---|
| 10 | Q:LRQUIT | 
|---|
| 11 | D RELEAS2 | 
|---|
| 12 | D:LRRLS COPY | 
|---|
| 13 | Q:LRQUIT | 
|---|
| 14 | D RPT | 
|---|
| 15 | ;Add supp report to the PRELIMINARY print queue | 
|---|
| 16 | D QUESP | 
|---|
| 17 | Q:LRQUIT | 
|---|
| 18 | D COMPARE | 
|---|
| 19 | Q:LRQUIT | 
|---|
| 20 | ;If supp report is already released (LRRLS1), unrelease it, | 
|---|
| 21 | ;   but only if the E-Sign Switch is ON (LRESSW) | 
|---|
| 22 | N LRESSW | 
|---|
| 23 | D GETDATA^LRAPESON(.LRESSW) | 
|---|
| 24 | I LRRLS1,LRESSW D UNRELEAS | 
|---|
| 25 | D UPDATE | 
|---|
| 26 | Q:LRQUIT | 
|---|
| 27 | D STORE | 
|---|
| 28 | Q | 
|---|
| 29 | RELEAS1 ;Is the ENTIRE report already released? | 
|---|
| 30 | S (LRRLS,LRRLS1,LRQUIT)=0 | 
|---|
| 31 | I LRSS="AU" D  Q | 
|---|
| 32 | .S LRX=$P($G(^LR(LRDFN,LRSS)),"^",15) | 
|---|
| 33 | .Q:'LRX         ;Report has not been released so no audit will occur. | 
|---|
| 34 | .W $C(7),!!,"This AUTOPSY has been released.  Supplementary report " | 
|---|
| 35 | .W "additions/modifications" | 
|---|
| 36 | .W !,"will create an audit trail.",! | 
|---|
| 37 | .S LRRLS=1    ;Report has been released so auditing will occur. | 
|---|
| 38 | S LRX=$P($G(^LR(LRDFN,LRSS,LRI,0)),"^",11) | 
|---|
| 39 | ; | 
|---|
| 40 | I LRX D | 
|---|
| 41 | .W $C(7),!!,"This "_$G(LRAA(1))_" report has been released." | 
|---|
| 42 | .W !,"Supplementary report additions/modifications will create" | 
|---|
| 43 | .W " an audit trail.",! | 
|---|
| 44 | .S LRRLS=1 | 
|---|
| 45 | Q | 
|---|
| 46 | GETRPT ;First, select the report | 
|---|
| 47 | S DIC(0)="QAEZL",DLAYGO=63 | 
|---|
| 48 | S DIC("A")="Select SUPPLEMENTARY REPORT DATE: " | 
|---|
| 49 | S DIC=$S(LRSS="AU":"^LR(LRDFN,84,",1:"^LR(LRDFN,LRSS,LRI,1.2,") | 
|---|
| 50 | S DIC("P")=$S(LRSS="AU":"63,32.4,0",1:"LRSF,1.2,0") | 
|---|
| 51 | S DIC("P")=$P(@("^DD("_DIC("P")_")"),"^",2) | 
|---|
| 52 | S DIC("B")="" S LRX=0 F  S LRX=$O(@(DIC_"LRX)")) Q:'LRX  D | 
|---|
| 53 | .S DIC("B")=+(@(DIC_"LRX,0)")) | 
|---|
| 54 | D ^DIC K DLAYGO | 
|---|
| 55 | S:Y=-1 LRQUIT=1 | 
|---|
| 56 | Q | 
|---|
| 57 | RELEAS2 ;Is the supplementary report already released? | 
|---|
| 58 | S LRRLS2=0 | 
|---|
| 59 | S:LRSS'="AU" LRX=$G(^LR(LRDFN,LRSS,LRI,1.2,+Y,0)) | 
|---|
| 60 | S:LRSS="AU" LRX=$G(^LR(LRDFN,84,+Y,0)) | 
|---|
| 61 | S LRRLS2=+$P(LRX,"^",2) | 
|---|
| 62 | I LRRLS2 D | 
|---|
| 63 | .W $C(7),!!,"This supplementary report has been released.  Additions/" | 
|---|
| 64 | .W "modifications",!,"will create an audit trail.",! | 
|---|
| 65 | .S LRRLS1=1 | 
|---|
| 66 | Q | 
|---|
| 67 | COPY ;Make a copy of the current report. | 
|---|
| 68 | K ^TMP("DIQ1",$J) | 
|---|
| 69 | S LRIENS=+Y_","_$S(LRSS'="AU":LRI_",",1:"")_LRDFN_"," | 
|---|
| 70 | S LRFILE1=$S(LRSS="SP":63.817,LRSS="CY":63.907,LRSS="EM":63.207,1:"") | 
|---|
| 71 | S:LRFILE1="" LRFILE1=$S(LRSS="AU":63.324,1:"") | 
|---|
| 72 | I LRFILE1="" S LRQUIT=1 Q | 
|---|
| 73 | D GETS^DIQ(LRFILE1,LRIENS,"**","Z","^TMP(""DIQ1"",$J)") | 
|---|
| 74 | Q | 
|---|
| 75 | RPT ; | 
|---|
| 76 | N DIE,DA,DR | 
|---|
| 77 | S DIE=DIC K DIC | 
|---|
| 78 | S (LRDA,DA)=+Y | 
|---|
| 79 | S:LRSS="AU" DA(1)=LRDFN | 
|---|
| 80 | S:LRSS'="AU" DA(1)=LRI,DA(2)=LRDFN | 
|---|
| 81 | S DR=".01;1" D ^DIE | 
|---|
| 82 | I 'LRRLS S LRQUIT=1 | 
|---|
| 83 | Q | 
|---|
| 84 | QUESP ;Update the preliminary report print queue | 
|---|
| 85 | N LRIENS | 
|---|
| 86 | I '$D(^LRO(69.2,LRAA,1,LRAN,0)) D | 
|---|
| 87 | .K LRFDA | 
|---|
| 88 | .L +^LRO(69.2,LRAA,1):5 I '$T D  Q | 
|---|
| 89 | ..S MSG(1)="The preliminary reports queue is in use.  " | 
|---|
| 90 | ..S MSG(1,"F")="!!" | 
|---|
| 91 | ..S MSG(2)="You will need to add this accession to the queue later." | 
|---|
| 92 | ..D EN^DDIOL(.MSG) K MSG | 
|---|
| 93 | .S LRIENS="+1,"_LRAA_"," | 
|---|
| 94 | .S LRFDA(69.21,LRIENS,.01)=LRDFN | 
|---|
| 95 | .S LRFDA(69.21,LRIENS,1)=LRI | 
|---|
| 96 | .S LRFDA(69.21,LRIENS,2)=LRH(0) | 
|---|
| 97 | .S LRORIEN(1)=LRAN | 
|---|
| 98 | .D UPDATE^DIE("","LRFDA","LRORIEN") | 
|---|
| 99 | .L -^LRO(69.2,LRAA,1) | 
|---|
| 100 | Q | 
|---|
| 101 | COMPARE ;Compare reports | 
|---|
| 102 | I '$D(^TMP("DIQ1",$J)) S LRQUIT=1 Q | 
|---|
| 103 | S:LRSS'="AU" LRFILE="^LR(LRDFN,LRSS,LRI,1.2,LRDA,1," | 
|---|
| 104 | S:LRSS="AU" LRFILE="^LR(LRDFN,84,LRDA,1," | 
|---|
| 105 | I '$D(@(LRFILE_"0)")) D  Q | 
|---|
| 106 | .D:LRRLS1 UNRELEAS | 
|---|
| 107 | .S LRQUIT=1 | 
|---|
| 108 | S LRA=0,LRFLG=1 | 
|---|
| 109 | F  S LRA=$O(@(LRFILE_"LRA)")) Q:'LRA  D | 
|---|
| 110 | .S LRXTMP=@(LRFILE_"LRA,0)") | 
|---|
| 111 | .S:'$D(^TMP("DIQ1",$J,LRFILE1,LRIENS,1,LRA,0)) LRFLG=0 | 
|---|
| 112 | .Q:'LRFLG | 
|---|
| 113 | .S LRYTMP=^TMP("DIQ1",$J,LRFILE1,LRIENS,1,LRA,0) | 
|---|
| 114 | .I LRXTMP'=LRYTMP S LRFLG=0 | 
|---|
| 115 | I LRFLG D | 
|---|
| 116 | .S LRA=0 F  S LRA=$O(^TMP("DIQ1",$J,LRFILE1,LRIENS,1,LRA)) Q:'LRA  D | 
|---|
| 117 | ..I '$D(@(LRFILE_"LRA,0)")) S LRFLG=0 | 
|---|
| 118 | I LRFLG D | 
|---|
| 119 | .W $C(7),!!,"No changes were made to the supplementary report." | 
|---|
| 120 | .K ^TMP("DIQ1",$J) | 
|---|
| 121 | .S LRQUIT=1 | 
|---|
| 122 | Q | 
|---|
| 123 | UNRELEAS ;Unrelease the supplementary report. | 
|---|
| 124 | K LRFDA | 
|---|
| 125 | S LRFDA(1,LRFILE1,LRIENS,.02)="@" | 
|---|
| 126 | D UPDATE^DIE("","LRFDA(1)") | 
|---|
| 127 | Q | 
|---|
| 128 | UPDATE ;File changes | 
|---|
| 129 | ;First, store the date of the change and user ID | 
|---|
| 130 | D UPDATE^LRPXRM(LRDFN,LRSS,+$G(LRI)) | 
|---|
| 131 | K LRFDA | 
|---|
| 132 | S X="NOW",%DT="T" D ^%DT S LRNOW=Y | 
|---|
| 133 | S LRIENS1="+1,"_LRIENS | 
|---|
| 134 | S LRFILE=$S(LRSS="SP":63.8172,LRSS="CY":63.9072,LRSS="EM":63.2072,1:"") | 
|---|
| 135 | S:LRFILE="" LRFILE=$S(LRSS="AU":63.3242,1:"") | 
|---|
| 136 | I LRFILE="" S LRQUIT=1 Q | 
|---|
| 137 | S LRFDA(1,LRFILE,LRIENS1,.01)=LRNOW | 
|---|
| 138 | S LRFDA(1,LRFILE,LRIENS1,.02)=DUZ,LRFIELD=1 | 
|---|
| 139 | D UPDATE^DIE("","LRFDA(1)","LRORIEN") | 
|---|
| 140 | ;If E-Sign switch OFF,set 3rd piece .03 SUPP REPORT MODIFIED to 1 | 
|---|
| 141 | ;  to flag the supp report so it can be released via RS | 
|---|
| 142 | I 'LRESSW D | 
|---|
| 143 | .S:LRSS'="AU" $P(^LR(LRDFN,LRSS,LRI,1.2,LRDA,0),"^",3)=1 | 
|---|
| 144 | .S:LRSS="AU" $P(^LR(LRDFN,84,LRDA,0),"^",3)=1 | 
|---|
| 145 | Q | 
|---|
| 146 | STORE ;Second, store the original report | 
|---|
| 147 | S LRIENS2=LRORIEN(1)_","_LRIENS | 
|---|
| 148 | S LRWPROOT="^TMP(""DIQ1"",$J,LRFILE1,LRIENS,1)" | 
|---|
| 149 | D WP^DIE(LRFILE,LRIENS2,LRFIELD,"",LRWPROOT) | 
|---|
| 150 | K ^TMP("DIQ1",$J) | 
|---|
| 151 | Q | 
|---|