| 1 | WVLABLG ;HCIOFO/FT IHS/ANMC/MWR - DISPLAY LAB LOG; ;8/31/98  16:24
 | 
|---|
| 2 |  ;;1.0;WOMEN'S HEALTH;;Sep 30, 1998
 | 
|---|
| 3 |  ;;* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
 | 
|---|
| 4 |  ;;  CALLED BY OPTION: "WV LAB PRINT LOG" TO PRINT THE "LOG" OF
 | 
|---|
| 5 |  ;;  OF PROCEDURES THAT HAVE BEEN ENTERED ("ACCESSIONED").
 | 
|---|
| 6 |  ;
 | 
|---|
| 7 |  ;---> VARIABLES:
 | 
|---|
| 8 |  ;---> DATES: WVBEGDT=BEGINNING DATE, WVENDDT=ENDING DATE
 | 
|---|
| 9 |  ;---> WVA:   1=ALL PROCEDURES, 0=ONLY PROCEDURES WITHOUT RESULTS
 | 
|---|
| 10 |  ;---> WVB:   1=DISPLAY EACH PROCEDURE, 0=TOTALS ONLY
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  D SETVARS^WVUTL5 S WVPOP=0
 | 
|---|
| 13 |  D TITLE^WVUTL5("PRINT LOG OF PROCEDURES ENTRY")
 | 
|---|
| 14 |  D DATES    G:WVPOP EXIT
 | 
|---|
| 15 |  D SELECT   G:WVPOP EXIT
 | 
|---|
| 16 |  D FACILITY G:WVPOP EXIT
 | 
|---|
| 17 |  D RESULT   G:WVPOP EXIT
 | 
|---|
| 18 |  D TOTALS   G:WVPOP EXIT
 | 
|---|
| 19 |  D ORDER    G:WVPOP EXIT
 | 
|---|
| 20 |  D DEVICE   G:WVPOP EXIT
 | 
|---|
| 21 |  D SORT
 | 
|---|
| 22 |  D COPYGBL
 | 
|---|
| 23 |  D ^WVLABLG1
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 | EXIT ;EP
 | 
|---|
| 26 |  D KILLALL^WVUTL8
 | 
|---|
| 27 |  Q
 | 
|---|
| 28 |  ;
 | 
|---|
| 29 | DATES ;EP
 | 
|---|
| 30 |  ;---> ASK DATE RANGE.  RETURN DATES IN WVBEGDT AND WVENDDT.
 | 
|---|
| 31 |  ;---> LAB PEOPLE GENERALLY LOOK AT THE LOG FOR ONE DAY.
 | 
|---|
| 32 |  D ASKDATES^WVUTL3(.WVBEGDT,.WVENDDT,.WVPOP,"T-1","",1)
 | 
|---|
| 33 |  Q
 | 
|---|
| 34 |  ;
 | 
|---|
| 35 | SELECT ;EP
 | 
|---|
| 36 |  ;---> SELECT ENTRIES TO SEARCH FOR.
 | 
|---|
| 37 |  D SELECT^WVSELECT("Accession Area",790.2,"WVAREA","","PAP",.WVPOP)
 | 
|---|
| 38 |  Q
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 | FACILITY ;EP
 | 
|---|
| 41 |  ;---> SELECT FACILITY TO SEARCH FOR.
 | 
|---|
| 42 |  N B S B=$$INSTTX^WVUTL6(DUZ(2))
 | 
|---|
| 43 |  W !!?3,"Select the Facility for the log you wish to display."
 | 
|---|
| 44 |  D DIC^WVFMAN(790.02,"QEMA",.Y,"   Select FACILITY: ",B)
 | 
|---|
| 45 |  I Y<0 S WVPOP=1 Q
 | 
|---|
| 46 |  S WVFAC=+Y
 | 
|---|
| 47 |  Q
 | 
|---|
| 48 |  ;
 | 
|---|
| 49 | RESULT ;EP
 | 
|---|
| 50 |  ;---> DISPLAY ALL PROCEDURES, OR ONLY PROCEDURES WITHOUT RESULTS.
 | 
|---|
| 51 |  N DIR K DIRUT
 | 
|---|
| 52 |  W !!?3,"Display ALL Procedures, or only Procedures with NO RESULTS?"
 | 
|---|
| 53 |  S DIR("A")="   Select ALL or NO RESULTS: ",DIR("B")="ALL"
 | 
|---|
| 54 |  S DIR(0)="SAM^a:ALL;n:NO RESULTS" D HELP1^WVLABLG2
 | 
|---|
| 55 |  D ^DIR
 | 
|---|
| 56 |  I Y=-1!($D(DIRUT)) S WVPOP=1 Q
 | 
|---|
| 57 |  ;---> IF ALL PPROCEDURES, S WVA=1; IF ONLY NO RESULTS, S WVA=0.
 | 
|---|
| 58 |  S WVA=$S(Y="a":1,1:0)
 | 
|---|
| 59 |  Q
 | 
|---|
| 60 |  ;
 | 
|---|
| 61 | TOTALS ;EP
 | 
|---|
| 62 |  ;---> DISPLAY ALL PROCEDURES, OR ONLY TOTALS.
 | 
|---|
| 63 |  N DIR
 | 
|---|
| 64 |  W !!?3,"Display data for EACH Procedure, or just TOTALS?"
 | 
|---|
| 65 |  S DIR("A")="   Select EACH or TOTALS: ",DIR("B")="EACH"
 | 
|---|
| 66 |  S DIR(0)="SAM^e:EACH;n:TOTALS" D HELP2^WVLABLG2
 | 
|---|
| 67 |  D ^DIR
 | 
|---|
| 68 |  I Y=-1!($D(DIRUT)) S WVPOP=1 Q
 | 
|---|
| 69 |  ;---> IF DISPLAY EACH PROCEDURE, S WVB=1; IF TOTALS ONLY, S WVB=0
 | 
|---|
| 70 |  S WVB=$S(Y="e":1,1:0)
 | 
|---|
| 71 |  Q
 | 
|---|
| 72 |  ;
 | 
|---|
| 73 | ORDER ;EP
 | 
|---|
| 74 |  ;---> ASK ORDER BY ACCESSION# OR BY PATIENT NAME.
 | 
|---|
| 75 |  ;---> SORT SEQUENCE IN WVC:  1=ACCESSION# (DEFAULT), 2=PATIENT NAME
 | 
|---|
| 76 |  S WVC=1
 | 
|---|
| 77 |  ;---> QUIT IF DISPLAYING TOTALS ONLY.
 | 
|---|
| 78 |  Q:'WVB  N DIR,DIRUT,Y
 | 
|---|
| 79 |  W !!?3,"Display Procedures in order of:"
 | 
|---|
| 80 |  W ?37,"1) ACCESSION# (earliest first)"
 | 
|---|
| 81 |  W !?37,"2) PATIENT NAME (alphabetically)"
 | 
|---|
| 82 |  S DIR("A")="   Select 1 or 2: ",DIR("B")=1
 | 
|---|
| 83 |  S DIR(0)="SAM^1:ACCESSION#;2:PATIENT NAME" D HELP3^WVLABLG2
 | 
|---|
| 84 |  D ^DIR
 | 
|---|
| 85 |  I Y=-1!($D(DIRUT)) S WVPOP=1 Q
 | 
|---|
| 86 |  S WVC=Y
 | 
|---|
| 87 |  Q
 | 
|---|
| 88 |  ;
 | 
|---|
| 89 | DEVICE ;EP
 | 
|---|
| 90 |  ;---> GET DEVICE AND POSSIBLY QUEUE TO TASKMAN.
 | 
|---|
| 91 |  S ZTRTN="DEQUEUE^WVLABLG"
 | 
|---|
| 92 |  F WVSV="A","B","C","BEGDT","ENDDT","FAC" D
 | 
|---|
| 93 |  .I $D(@("WV"_WVSV)) S ZTSAVE("WV"_WVSV)=""
 | 
|---|
| 94 |  ;---> SAVE ATTRIBUTES ARRAY. NOTE: SUBSTITUTE LOCAL ARRAY FOR WVAREA.
 | 
|---|
| 95 |  I $D(WVAREA) N N S N=0 F  S N=$O(WVAREA(N)) Q:N=""  D
 | 
|---|
| 96 |  .S ZTSAVE("WVAREA("""_N_""")")=""
 | 
|---|
| 97 |  D ZIS^WVUTL2(.WVPOP,1)
 | 
|---|
| 98 |  Q
 | 
|---|
| 99 |  ;
 | 
|---|
| 100 | SORT ;EP
 | 
|---|
| 101 |  ;---> SORT AND STORE ARRAY IN ^TMP("WV",$J
 | 
|---|
| 102 |  ;---> WVBEGDT1=ONE SECOND BEFORE BEGIN DATE.
 | 
|---|
| 103 |  ;---> WVENDDT1=THE LAST SECOND OF END DATE.
 | 
|---|
| 104 |  ;
 | 
|---|
| 105 |  K ^TMP("WV",$J)
 | 
|---|
| 106 |  S WVBEGDT1=WVBEGDT-.0001,WVENDDT1=WVENDDT+.9999
 | 
|---|
| 107 |  S WVDATE=WVBEGDT1
 | 
|---|
| 108 |  F  S WVDATE=$O(^WV(790.1,"ADE",WVDATE)) Q:'WVDATE!(WVDATE>WVENDDT1)  D
 | 
|---|
| 109 |  .S WVIEN=0
 | 
|---|
| 110 |  .F  S WVIEN=$O(^WV(790.1,"ADE",WVDATE,WVIEN)) Q:'WVIEN  D
 | 
|---|
| 111 |  ..S Y=^WV(790.1,WVIEN,0),WVDFN=$P(Y,U,2)
 | 
|---|
| 112 |  ..;---> QUIT IF NOT DONE AT THE SELECTED FACILITY.
 | 
|---|
| 113 |  ..Q:$P(Y,U,34)'=WVFAC
 | 
|---|
| 114 |  ..;---> QUIT IF NOT ALL "ACCESSION AREAS" (PROCEDURE TYPES) AND
 | 
|---|
| 115 |  ..;---> THIS DOES NOT MATCH THE SELECTED AREA.
 | 
|---|
| 116 |  ..I '$D(WVAREA("ALL")) Q:$P(Y,U,4)=""  Q:'$D(WVAREA($P(Y,U,4)))
 | 
|---|
| 117 |  ..D STORE
 | 
|---|
| 118 |  Q
 | 
|---|
| 119 |  ;
 | 
|---|
| 120 |  ;
 | 
|---|
| 121 | STORE ;EP
 | 
|---|
| 122 |  ;--->WVDATE IS ALREADY SET FROM LL SORT ABOVE.        ;---> DATE
 | 
|---|
| 123 |  S WVCHRT=$$SSN^WVUTL1(WVDFN)                          ;---> SSN
 | 
|---|
| 124 |  S WVNAME=$$NAME^WVUTL1(WVDFN)                         ;---> NAME
 | 
|---|
| 125 |  S WVACCN=$P(Y,U)                                      ;---> ACCESSION#
 | 
|---|
| 126 |  S X=$P(Y,U,4),WVPCDN=$$PCDNAM^WVUTL6                  ;---> PROC TYPE
 | 
|---|
| 127 |  S WVDIAG=$$DIAG^WVUTL4($P(Y,U,5))                     ;---> RESULT/DIAG
 | 
|---|
| 128 |  S WVRES=$O(^WV(790.1,WVIEN,1,0))                         ;---> RESULT TEXT
 | 
|---|
| 129 |  ;---> QUIT IF DISPLAYING ONLY PROCEDURES WITH NO RESULTS.
 | 
|---|
| 130 |  Q:'WVA&($P(Y,U,5))
 | 
|---|
| 131 |  S WVPDATE=$$SLDT2^WVUTL5($P(Y,U,12))                  ;---> PROC DATE
 | 
|---|
| 132 |  S WVRCVDT=$$SLDT2^WVUTL5($P(Y,U,17))                  ;---> RCV RES DAT
 | 
|---|
| 133 |  S X=$P(Y,U,11),WVHLOC=$$HOSPLC^WVUTL6                 ;---> HOSP LOC
 | 
|---|
| 134 |  S X=$P(Y,U,7),WVPROV=$$PROV^WVUTL6                    ;---> PROVIDER
 | 
|---|
| 135 |  S X=$P(Y,U,18),WVUSER=$$PROV^WVUTL6                   ;---> ENTERED BY
 | 
|---|
| 136 |  ;
 | 
|---|
| 137 |  S X=WVCHRT_U_WVNAME_U_WVDATE_U_WVACCN_U_WVPCDN_U_WVRES_U_WVPDATE
 | 
|---|
| 138 |  S X=X_U_WVHLOC_U_WVPROV_U_WVUSER_U_WVRCVDT_U_WVDIAG_U_WVIEN
 | 
|---|
| 139 |  I WVC=1 S ^TMP("WV",$J,1,WVDATE,$P(WVACCN,"-"),$P(WVACCN,"-",2))=X Q
 | 
|---|
| 140 |  I WVC=2 S ^TMP("WV",$J,1,WVDATE,WVNAME,WVACCN)=X Q
 | 
|---|
| 141 |  Q
 | 
|---|
| 142 |  ;
 | 
|---|
| 143 | COPYGBL ;EP
 | 
|---|
| 144 |  ;---> COPY ^TMP("WV",$J,1 TO ^TMP("WV",$J,2 TO MAKE IT FLAT.
 | 
|---|
| 145 |  N I,M,N,P,Q
 | 
|---|
| 146 |  S N=0,I=0
 | 
|---|
| 147 |  F  S N=$O(^TMP("WV",$J,1,N)) Q:N=""  D
 | 
|---|
| 148 |  .S M=0
 | 
|---|
| 149 |  .F  S M=$O(^TMP("WV",$J,1,N,M)) Q:M=""  D
 | 
|---|
| 150 |  ..S P=0
 | 
|---|
| 151 |  ..F  S P=$O(^TMP("WV",$J,1,N,M,P)) Q:P=""  D
 | 
|---|
| 152 |  ...S I=I+1,^TMP("WV",$J,2,I)=^TMP("WV",$J,1,N,M,P)
 | 
|---|
| 153 |  Q
 | 
|---|
| 154 |  ;
 | 
|---|
| 155 | DEQUEUE ;EP
 | 
|---|
| 156 |  ;---> TASKMAN QUEUE OF PRINTOUT.
 | 
|---|
| 157 |  D SETVARS^WVUTL5,SORT,COPYGBL,^WVLABLG1,EXIT
 | 
|---|
| 158 |  Q
 | 
|---|