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

AZXRBUG6.m

Go to the documentation of this file.
  1. AZXRBUG6 ;BUGDRUG2 Report PROGRAM [ 09/23/94 9:52 AM ]
  1. ;Version 1
  1. ;"Cultured Organisms by Source"
  1. ;09/04/92 JOHN H. LYNCH
  1. ;
  1. ;ALLOWS THE DATA ENTRY PERSON TO RUN A REPORT
  1. ;GIVING INFORMATION ON THE TOTAL NUMBER OF ENTRIES
  1. ;IN THE DATABASE FOR A GIVEN FACILITY AND DATE
  1. ;RANGE, BY SPECIMEN, ORGANISM AND THE COUNT FOR
  1. ;EACH SET.
  1. ;THE ROUTINES THAT CALL AZXRBUG6:
  1. ;AZXRBUG3, Reports
  1. ;THE ROUTINES THAT AZXRBUG6 CALLS:
  1. ;AZXRBUG7, Reports Input
  1. ;%ZIS, Fileman Device Handler
  1. ;DD^%DT, Fileman Date Conversion
  1. ;^DIC, Fileman Lookup
  1. ;Variable List
  1. ;PG= Current page count.
  1. ;LN= Current line count.
  1. ;COUNT= Organism count.
  1. ;TCOUNT= Total Organism count.
  1. ;FACBKUP= Flag returned from AZXRBUG7 with data on
  1. ; whether user wants to quit.
  1. ;BORDER= Special border for report.
  1. ;HEADER= Special header for report.
  1. ;%ZIS(B)= Don't use HOME as default device.
  1. ;LDATE= Current date used in print loop (REPORT SUB-
  1. ; ROUTINE).
  1. ;FCLTY= Current Facility in START LOOP.
  1. ;FDATE= Users starting date input; this value is
  1. ; exported from AZXRBUG7.
  1. ;TDATE= Users ending date input; this value is
  1. ; exported from AZXRBUG7.
  1. ;SPEC= Current Specimen in START LOOP.
  1. ;ORG= Current Organism in START LOOP.
  1. ;DA= Current Internal Entry Number in START LOOP.
  1. ;Y= Date used for date conversion.
  1. ;RFDATE= Starting report date in external format.
  1. ;RTDATE= Ending report date in external format.
  1. ;SPECCHK= Holds current Specimen Name.
  1. ;DIC(0)=
  1. ;DIC= Holds the file used during lookup.
  1. ;X= Lookup value for Specimen.
  1. ;ORGCHK= Holds current Organism Name.
  1. ;YN= Users input of whether to printer another report.
  1. MAIN ;AZXRBUG6 PROGRAM CONTROL
  1. ;SET LOCAL VARIABLES
  1. S PG=0 ;INITIALIZE PAGE NUMBER
  1. S LN=0 ;INITIALIZE LINE COUNTER
  1. S COUNT=0 ;INITIALIZE COUNT
  1. S TCOUNT=0 ;INITIALIZE TCOUNT
  1. D ^AZXRBUG7 ;CALL INPUT ROUTINE
  1. ;FOR FACILITY & DATE RANGE
  1. I FACBKUP="Y" Q ;FACBKUP= RETURNED FROM
  1. ; ^AZXRBUG7;USER WANTS
  1. ; TO QUIT
  1. D REPORT
  1. D CONT
  1. D KILL
  1. Q
  1. REPORT ;SETUP VALUES TO PREPARE FOR REPORT PRINT
  1. ;SET LOCAL VARIABLES
  1. S BORDER="_______________________________________________________________________________________________"
  1. S HEADER="Specimen Organism Count"
  1. S %ZIS("B")="" ;DON'T USE HOME AS DEFAULT
  1. ;DEVICE
  1. D ^%ZIS U IO ;OPEN DEVICE
  1. I IO="" Q ;USER WANTS OUT
  1. I IO(0)=IO W !,*7,"This report must be printed.",! G REPORT
  1. D DTCNVRT,HEADING ;PRINT OUT FIRST PAGE HEADING
  1. S SPEC="" ;INITIALIZE SPECIMEN
  1. ;START START LOOP
  1. ;SPECPRT= FLAG CHECK TO SEE
  1. ; IF SPECIMEN HAS
  1. ; ALREADY BEEN PRINTED
  1. ;GET SPECIMEN, ORGANISM
  1. ;GET ALL VALID DATES
  1. ;PRINT OUT ALL WHEN ALL
  1. ;DATES ARE EXHAUSTED FOR THIS
  1. ;FCLTY,SPEC,ORG,LDATE COMB.
  1. ;INCREMENT THE COUNT & TCOUNT
  1. D
  1. .F S SPEC=$O(^DIZ(1991020,"FSOD",FCLTY,SPEC)) Q:'SPEC S CONT="N",SPECPRT=1 D
  1. ..S ORG="" F S ORG=$O(^DIZ(1991020,"FSOD",FCLTY,SPEC,ORG)) D:('ORG)&(CONT="N") NXTSPEC Q:'ORG D
  1. ...S LDATE=FDATE-1 F S LDATE=$O(^DIZ(1991020,"FSOD",FCLTY,SPEC,ORG,LDATE)) D:(('LDATE)!(LDATE>TDATE))&COUNT PRTALL Q:('LDATE)!(LDATE>TDATE) D
  1. ....S DA="" F S DA=$O(^DIZ(1991020,"FSOD",FCLTY,SPEC,ORG,LDATE,DA)) Q:'DA D INCRMNT
  1. I LN>(IOSL-4) D HEADING ;PRINT TCOUNT ON NEXT PAGE
  1. W "Total Count",?90,$J(TCOUNT,5,0),!,BORDER,!
  1. X ^%ZIS("C") ;CLOSE DEVICE
  1. Q
  1. NXTSPEC ;PREPARE FOR NEXT SPECIMEN
  1. W BORDER,!!
  1. S LN=LN+2
  1. Q
  1. PRTALL ;PRINT OUT THE CURRENT SPECIMEN, ORGANISM
  1. ;AND CURRENT COUNT
  1. I SPECPRT S SPECPRT=0 D EXTSPEC ;CHECK SPECPRT TO SEE IF
  1. ;SPECIMEN HAS ALREADY BEEN
  1. ;PRINTED
  1. D EXTORG ;PRINT OUT ORGANISM
  1. W ?90,$J(COUNT,5,0),! ;PRINT COUNT
  1. S LN=LN+1 ;INCREMENT LINE COUNT
  1. S COUNT=0 ;INITIALIZE COUNT
  1. D NEWPAGE ;CHECK IF NEW PAGE NEEDED
  1. Q
  1. DTCNVRT ;CONVERT TDATE & FDATE TO EXTERNAL FORMAT (RTDATE, RFDATE)
  1. S Y=FDATE ;CONVERT TO EXTERNAL DATE
  1. D DD^%DT ;VALUE RETURNED IN Y
  1. S RFDATE=Y ;RFDATE= REPORT DATE
  1. S Y=TDATE ;CONVERT TO EXTERNAL DATE
  1. D DD^%DT ;VALUE RETURNED IN Y
  1. S RTDATE=Y ;RTDATE= REPORT DATE
  1. Q
  1. NEWPAGE ;CHECK FOR WHETHER A NEW PAGE IS NEEDED
  1. I LN>(IOSL-2) S LN=0 D HEADING S CONT="Y"
  1. ;RESET LINE COUNT
  1. ;PRINT HEADING
  1. ;INCRMNT LINE COUNT
  1. ;RE-WRITE SPECIMEN
  1. Q
  1. EXTSPEC ;CONVERT Specimen_Name TO EXTERNAL FORMAT
  1. S SPECCHK=SPEC ;SPECCHK= HOLDS CURRENT
  1. ; Specimen_Name
  1. S DIC(0)="NXZ" ;N= INTERNAL NUMBER LOOKUP
  1. ;X= EXACT MATCH REQUIRED
  1. ;Z= VALUES RETURNED IN Y=N^S
  1. ; N= INTERNAL ENTRY NUMBER
  1. ; S= VALUE OF .01 FIELD
  1. S DIC="^DIZ(1991019," ;DIC= ORGANISM FILE
  1. S X=SPECCHK ;X= LOOKUP VALUE (SPEC)
  1. D ^DIC ;DO FILEMAN LOOKUP
  1. S SPECCHK=$P(^DIZ(1991019,$P(Y,U,1),0),U,1)
  1. ;SPECCHK= Specimen_Name
  1. W SPECCHK ;PRINT Specimen_Name
  1. Q
  1. EXTORG ;CONVERT Organism_Name TO EXTERNAL FORMAT
  1. I CONT="Y" W SPECCHK,?41,"**Continued**",! S LN=LN+3,CONT="N"
  1. ;CONT
  1. S ORGCHK=ORG ;ORGCHK= HOLDS CURRENT
  1. ; Organism_Name
  1. S DIC(0)="NXZ" ;N= INTERNAL NUMBER LOOKUP
  1. ;X= EXACT MATCH REQUIRED
  1. ;Z= VALUES RETURNED IN Y=N^S
  1. ; N= INTERNAL ENTRY NUMBER
  1. ; S= VALUE OF .01 FIELD
  1. S DIC="^DIZ(1991018," ;DIC= ORGANISM FILE
  1. S X=ORGCHK ;X= LOOKUP VALUE (ORG)
  1. D ^DIC ;DO FILEMAN LOOKUP
  1. S ORGCHK=$P(^DIZ(1991018,$P(Y,U,1),0),U,1)
  1. ;ORGCHK= Organism_Name
  1. W ?41,ORGCHK ;PRINT OUT ORGANISM AND COUNT
  1. Q
  1. INCRMNT ;INCREMENT COUNT VARIABLE
  1. S TCOUNT=TCOUNT+1 ;INCREMENT TOTAL COUNT
  1. S COUNT=COUNT+1 ;INCREMENT CURR. ORG COUNT
  1. Q
  1. HEADING ;PRINT OUT THE HEADING FOR EACH NEW PAGE
  1. I PG>0 W # ;SEND FORMFEED
  1. S PG=PG+1 ;INCREMENT PAGE COUNTER
  1. W !,BORDER,!
  1. W !,"BugDrug2 Cultured Organisms by Source"
  1. W ?41,"From Date: ",RFDATE,?68,"--",?74,"To Date: ",RTDATE
  1. W !!,"Facility: ",FAC,?77,"Page: ",PG
  1. W !,BORDER
  1. W !!,HEADER
  1. W !,BORDER,!!
  1. S LN=10 ;INITIALIZE LINE COUNTER
  1. ;HEADER USES 10 LINES
  1. Q
  1. CONT ;ASK USER WHETHER TO CONTINUE WITH REPORT PRINT
  1. ;SET LOCAL VARIABLES
  1. S PG=0 ;INITIALIZE PAGE COUNTER
  1. S LN=0 ;INITIALIZE LINE COUNTER
  1. S COUNT=0 ;INITIALIZE COUNT
  1. S TCOUNT=0 ;INITIALIZE TCOUNT
  1. W !!!!!!!,"Do you want to print another"
  1. R " 'Cultured Organisms by Source' report? N//",YN
  1. ;ASK USER WHETHER TO CONTINUE?
  1. I YN?1.3"?" W !!,"Answer with: Y= Yes, N= No" G CONT
  1. ;USER WANTS HELP
  1. I (YN?1"Y")!(YN?1"y")!(YN?1"YES")!(YN?1"yes") D ^AZXRBUG7 I FACBKUP="N" D REPORT G CONT
  1. ;FACBKUP= RETURNED FROM
  1. ; ^AZXRBUG7;USER WANTS
  1. ; TO BACK UP A PROMPT
  1. Q
  1. KILL ;KILL LOCAL VARIABLES AND EXIT ROUTINE AZXRBUG6
  1. K PG,LN,COUNT,TCOUNT,FACBKUP,BORDER,HEADER,%ZIS
  1. K LDATE,FCLTY,SPEC,ORG,DA,FDATE,TDATE,Y,RFDATE,RTDATE
  1. K FAC,SPECCHK,DIC,X,CONT,ORGCHK,YN
  1. Q