Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: BWLABLG

BWLABLG.m

Go to the documentation of this file.
  1. BWLABLG ;IHS/ANMC/MWR - DISPLAY LAB LOG;15-Feb-2003 21:55;PLS
  1. ;;2.0;WOMEN'S HEALTH;**8**;MAY 16, 1996
  1. ;;* MICHAEL REMILLARD, DDS * ALASKA NATIVE MEDICAL CENTER *
  1. ;; CALLED BY OPTION: "BW LAB PRINT LOG" TO PRINT THE "LOG" OF
  1. ;; OF PROCEDURES THAT HAVE BEEN ENTERED ("ACCESSIONED").
  1. ;
  1. ;---> VARIABLES:
  1. ;---> DATES: BWBEGDT=BEGINNING DATE, BWENDDT=ENDING DATE
  1. ;---> BWA: 1=ALL PROCEDURES, 0=ONLY PROCEDURES WITHOUT RESULTS
  1. ;---> BWB: 1=DISPLAY EACH PROCEDURE, 0=TOTALS ONLY
  1. ;
  1. D SETVARS^BWUTL5 S BWPOP=0
  1. D TITLE^BWUTL5("PRINT LOG OF PROCEDURES ENTRY")
  1. D DATES G:BWPOP EXIT
  1. D SELECT G:BWPOP EXIT
  1. D FACILITY G:BWPOP EXIT
  1. D RESULT G:BWPOP EXIT
  1. D TOTALS G:BWPOP EXIT
  1. D ORDER G:BWPOP EXIT
  1. D DEVICE G:BWPOP EXIT
  1. D SORT
  1. D COPYGBL
  1. D ^BWLABLG1
  1. ;
  1. EXIT ;EP
  1. D KILLALL^BWUTL8
  1. Q
  1. ;
  1. DATES ;EP
  1. ;---> ASK DATE RANGE. RETURN DATES IN BWBEGDT AND BWENDDT.
  1. ;---> LAB PEOPLE GENERALLY LOOK AT THE LOG FOR ONE DAY.
  1. D ASKDATES^BWUTL3(.BWBEGDT,.BWENDDT,.BWPOP,"T-1","",1)
  1. Q
  1. ;
  1. SELECT ;EP
  1. ;---> SELECT ENTRIES TO SEARCH FOR.
  1. D SELECT^BWSELECT("Accession Area",9002086.2,"BWAREA","","PAP",.BWPOP)
  1. Q
  1. ;
  1. FACILITY ;EP
  1. ;---> SELECT FACILITY TO SEARCH FOR.
  1. N B S B=$$INSTTX^BWUTL6(DUZ(2))
  1. W !!?3,"Select the Facility for the log you wish to display."
  1. D DIC^BWFMAN(9002086.02,"QEMA",.Y," Select FACILITY: ",B)
  1. I Y<0 S BWPOP=1 Q
  1. S BWFAC=+Y
  1. Q
  1. ;
  1. RESULT ;EP
  1. ;---> DISPLAY ALL PROCEDURES, OR ONLY PROCEDURES WITHOUT RESULTS.
  1. N DIR K DIRUT
  1. W !!?3,"Display ALL Procedures, or only Procedures with NO RESULTS?"
  1. S DIR("A")=" Select ALL or NO RESULTS: ",DIR("B")="ALL"
  1. S DIR(0)="SAM^a:ALL;n:NO RESULTS" D HELP1^BWLABLG2
  1. D ^DIR
  1. I Y=-1!($D(DIRUT)) S BWPOP=1 Q
  1. ;---> IF ALL PPROCEDURES, S BWA=1; IF ONLY NO RESULTS, S BWA=0.
  1. S BWA=$S(Y="a":1,1:0)
  1. Q
  1. ;
  1. TOTALS ;EP
  1. ;---> DISPLAY ALL PROCEDURES, OR ONLY TOTALS.
  1. N DIR
  1. W !!?3,"Display data for EACH Procedure, or just TOTALS?"
  1. S DIR("A")=" Select EACH or TOTALS: ",DIR("B")="EACH"
  1. S DIR(0)="SAM^e:EACH;n:TOTALS" D HELP2^BWLABLG2
  1. D ^DIR
  1. I Y=-1!($D(DIRUT)) S BWPOP=1 Q
  1. ;---> IF DISPLAY EACH PROCEDURE, S BWB=1; IF TOTALS ONLY, S BWB=0
  1. S BWB=$S(Y="e":1,1:0)
  1. Q
  1. ;
  1. ORDER ;EP
  1. ;---> ASK ORDER BY ACCESSION# OR BY PATIENT NAME.
  1. ;---> SORT SEQUENCE IN BWC: 1=ACCESSION# (DEFAULT), 2=PATIENT NAME
  1. S BWC=1
  1. ;---> QUIT IF DISPLAYING TOTALS ONLY.
  1. Q:'BWB N DIR,DIRUT,Y
  1. W !!?3,"Display Procedures in order of:"
  1. W ?37,"1) ACCESSION# (earliest first)"
  1. W !?37,"2) PATIENT NAME (alphabetically)"
  1. S DIR("A")=" Select 1 or 2: ",DIR("B")=1
  1. S DIR(0)="SAM^1:ACCESSION#;2:PATIENT NAME" D HELP3^BWLABLG2
  1. D ^DIR
  1. I Y=-1!($D(DIRUT)) S BWPOP=1 Q
  1. S BWC=Y
  1. Q
  1. ;
  1. DEVICE ;EP
  1. ;---> GET DEVICE AND POSSIBLY QUEUE TO TASKMAN.
  1. S ZTRTN="DEQUEUE^BWLABLG"
  1. F BWSV="A","B","C","BEGDT","ENDDT","FAC" D
  1. .I $D(@("BW"_BWSV)) S ZTSAVE("BW"_BWSV)=""
  1. ;---> SAVE ATTRIBUTES ARRAY. NOTE: SUBSTITUTE LOCAL ARRAY FOR BWAREA.
  1. I $D(BWAREA) N N S N=0 F S N=$O(BWAREA(N)) Q:N="" D
  1. .S ZTSAVE("BWAREA("""_N_""")")=""
  1. D ZIS^BWUTL2(.BWPOP,1)
  1. Q
  1. ;
  1. SORT ;EP
  1. ;---> SORT AND STORE ARRAY IN ^TMP("BW",$J
  1. ;---> BWBEGDT1=ONE SECOND BEFORE BEGIN DATE.
  1. ;---> BWENDDT1=THE LAST SECOND OF END DATE.
  1. ;
  1. K ^TMP("BW",$J)
  1. S BWBEGDT1=BWBEGDT-.0001,BWENDDT1=BWENDDT+.9999
  1. S BWDATE=BWBEGDT1
  1. F S BWDATE=$O(^BWPCD("ADE",BWDATE)) Q:'BWDATE!(BWDATE>BWENDDT1) D
  1. .S BWIEN=0
  1. .F S BWIEN=$O(^BWPCD("ADE",BWDATE,BWIEN)) Q:'BWIEN D
  1. ..S Y=^BWPCD(BWIEN,0),BWDFN=$P(Y,U,2)
  1. ..;---> QUIT IF NOT DONE AT THE SELECTED FACILITY.
  1. ..Q:$P(Y,U,34)'=BWFAC
  1. ..;---> QUIT IF NOT ALL "ACCESSION AREAS" (PROCEDURE TYPES) AND
  1. ..;---> THIS DOES NOT MATCH THE SELECTED AREA.
  1. ..I '$D(BWAREA("ALL")) Q:$P(Y,U,4)="" Q:'$D(BWAREA($P(Y,U,4)))
  1. ..D STORE
  1. Q
  1. ;
  1. ;
  1. STORE ;EP
  1. ;--->BWDATE IS ALREADY SET FROM LL SORT ABOVE. ;---> DATE
  1. S BWCHRT=$$HRCN^BWUTL1(BWDFN) ;---> CHART#
  1. S BWNAME=$$NAME^BWUTL1(BWDFN) ;---> NAME
  1. S BWACCN=$P(Y,U) ;---> ACCESSION#
  1. S X=$P(Y,U,4),BWPCDN=$$PCDNAM^BWUTL6 ;---> PROC TYPE
  1. S BWDIAG=$$DIAG^BWUTL4($P(Y,U,5)) ;---> RESULT/DIAG
  1. S BWRES=$O(^BWPCD(BWIEN,1,0)) ;---> RESULT TEXT
  1. ;---> QUIT IF DISPLAYING ONLY PROCEDURES WITH NO RESULTS.
  1. Q:'BWA&($P(Y,U,5))
  1. S BWPDATE=$$SLDT2^BWUTL5($P(Y,U,12)) ;---> PROC DATE
  1. S BWRCVDT=$$SLDT2^BWUTL5($P(Y,U,17)) ;---> RCV RES DAT
  1. S X=$P(Y,U,11),BWHLOC=$$HOSPLC^BWUTL6 ;---> HOSP LOC
  1. S X=$P(Y,U,7),BWPROV=$$PROV^BWUTL6 ;---> PROVIDER
  1. S X=$P(Y,U,18),BWUSER=$$PROV^BWUTL6 ;---> ENTERED BY
  1. ;
  1. S X=BWCHRT_U_BWNAME_U_BWDATE_U_BWACCN_U_BWPCDN_U_BWRES_U_BWPDATE
  1. S X=X_U_BWHLOC_U_BWPROV_U_BWUSER_U_BWRCVDT_U_BWDIAG_U_BWIEN
  1. I BWC=1 S ^TMP("BW",$J,1,BWDATE,$P(BWACCN,"-"),$P(BWACCN,"-",2))=X Q
  1. I BWC=2 S ^TMP("BW",$J,1,BWDATE,BWNAME,BWACCN)=X Q
  1. Q
  1. ;
  1. COPYGBL ;EP
  1. ;---> COPY ^TMP("BW",$J,1 TO ^TMP("BW",$J,2 TO MAKE IT FLAT.
  1. N I,M,N,P,Q
  1. S N=0,I=0
  1. F S N=$O(^TMP("BW",$J,1,N)) Q:N="" D
  1. .S M=0
  1. .F S M=$O(^TMP("BW",$J,1,N,M)) Q:M="" D
  1. ..S P=0
  1. ..F S P=$O(^TMP("BW",$J,1,N,M,P)) Q:P="" D
  1. ...S I=I+1,^TMP("BW",$J,2,I)=^TMP("BW",$J,1,N,M,P)
  1. Q
  1. ;
  1. DEQUEUE ;EP
  1. ;---> TASKMAN QUEUE OF PRINTOUT.
  1. D SETVARS^BWUTL5,SORT,COPYGBL,^BWLABLG1,EXIT
  1. Q