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

AZXRBUG1.m

Go to the documentation of this file.
  1. AZXRBUG1 ;BUGDRUG2 Entry/Edit PROGRAM [ 09/23/94 9:50 AM ]
  1. ;Version 1
  1. ;08/04/92 JOHN H. LYNCH
  1. ;
  1. ;ALLOWS THE DATA ENTRY PERSON TO ENTER OR
  1. ;EDIT INFORMATION IN THE BUGDRUG2 DATABASE.
  1. ;THE ROUTINES THAT CALL AZXRBUG2:
  1. ;AZXRBUG, Main
  1. ;THE ROUTINES THAT AZXRBUG2 CALLS:
  1. ;EN^DIK (FILEMAN RE-CROSS-REF ROUTINE)
  1. ;^DIE (FILEMAN EDIT ROUTINE)
  1. ;^DIC (FILEMAN LOOKUP ROUTINE)
  1. ;SET LOCAL VARIABLES OUTSIDE OF MAIN
  1. S FLAG=-1 ;FLAG= A CHECK FOR NEW ENTRIES
  1. ;WHICH RUN DEFAULT SUB-ROUTINE
  1. ;THE DEFAULT SUB-ROUTINE WILL
  1. ;ONLY BE RUN AFTER THE FIRST
  1. ;NEW ENTRY.
  1. ;Variable List
  1. ;FLAG= A flag which alerts program to run DEFAULT sub-routine.
  1. ;DIE("NO^")= Keeps user from exiting once in; allows jumping though.
  1. ;DIE= BUGDRUG2 database global.
  1. ;INUM= The current internal entry number.
  1. ;TCOUNT= The total count of current entries in the file.
  1. ;SNUM= The users input of the record number.
  1. ;PIEC= Starting point of lookup for users SNUM entry.
  1. ;DA= Internal entry number used during lookup.
  1. ;DR= Used as entry/edit setup in calling Fileman.
  1. ;X= Used in setting the default values for Entry/Edit
  1. ;DIK= Global root of file for re-indexing.
  1. ;DIK(1)= Specifies which field and cross-ref. to re-index.
  1. ;DIC(0)= Setup values for Fileman lookup.
  1. ;DDA= Default Internal Entry Number.
  1. ;DFAC= Default Facility.
  1. ;DIC= Global root of file for Fileman lookup.
  1. ;DDATE= Default Date.
  1. ;Y= The returned value from Fileman lookup.
  1. ;DORG= Default Organism_Name.
  1. ;DSPEC= Default Specimen_Name.
  1. MAIN ;AZXRBUG1 PROGRAM CONTROL
  1. ;SET LOCAL VARIABLES
  1. S DIE("NO^")="BACK" ;KEEP USER FROM EXITING
  1. ;ALLOW JUMPING
  1. S DIE="1991020" ;^BUGDRUG2 (DATABASE GLOBAL)
  1. W @IOF ;CLEAR SCREEN
  1. W !!!,"BugDrug2 Entry/Edit...",!!
  1. RECORD ;Select Record Number: ;SUB-ROUTINE
  1. ;SET LOCAL VARIABLES
  1. S INUM=$P(^DIZ(DIE,0),U,3) ;INUM= CURR. INTERNAL NUMBER
  1. S TCOUNT=$P(^DIZ(DIE,0),U,4) ;TCOUNT= TOTAL COUNT CURRENT
  1. ;IN FILE
  1. W !,"Select Record Number: ",INUM+1,"//"
  1. R SNUM
  1. I (SNUM'="")&(SNUM'?1.3"?")&(SNUM'="^")&'((SNUM>0)&(SNUM<1000000))&(SNUM'?1.6N) W !!,"Illegal Record Number.",!!," Enter a Record Number between [1..999999], or",!," Enter a ""?"" for help, or",!," Enter a ""^"" to quit.",!,*7 G RECORD
  1. ;CHECK FOR VALID USER INPUT
  1. I SNUM="" S SNUM=INUM+1 ;DEFAULT (NEW ENTRY)
  1. I SNUM="^" D KILL Q ;"^"= QUIT/RETURN TO AZXRBUG
  1. I SNUM?1.3"?" W !!,"Please enter your Record Number or",!,"press return and accept the default for a new entry.",! G RECORD
  1. I (SNUM=(INUM+1)) S $P(^DIZ(DIE,0),U,3)=INUM+1,$P(^DIZ(DIE,0),U,4)=TCOUNT+1 S FLAG=FLAG+1 I FLAG D DEFAULT ;SNUM= NEW ENTRY
  1. ;INCREMENT COUNTERS IN
  1. ;^DIZ(DIE,0)
  1. ;FLAG= SET DEFAULT VALUES FOR
  1. ;ENTRY SCREEN (AFTER 1ST ENTRY)
  1. I SNUM>(INUM+1) W !!,"SKIPPING RECORD NUMBERS IS NOT ALLOWED!",*7 H 3 G MAIN ;USER TRYING TO ENTER NUMBER
  1. ;OUT OF SEQUENCE
  1. S PIEC=0
  1. I (SNUM<(INUM+1))&('$O(^DIZ(DIE,"B",SNUM,PIEC))) W !!,"RECORD NUMBER, ",SNUM,", HAS ALREADY BEEN DELETED!",!,*7 H 3 G RECORD
  1. ;LOOK UP USER INPUT TO SEE IF
  1. ;IT ALREADY EXISTS, IF NOT SAY
  1. ;IT HAS BEEN ALREADY DELETED
  1. S PIEC=0
  1. S DA=SNUM ;DA= INTERNAL ENTRY NUMBER
  1. I (SNUM<(INUM+1))&($O(^DIZ(DIE,"B",SNUM,PIEC))) K ^DIZ(DIE,"FOD",$P(^DIZ(DIE,DA,0),U,2),$P(^DIZ(DIE,DA,0),U,4),$P(^DIZ(DIE,DA,0),U,3),DA),^DIZ(DIE,"FDSO",$P(^DIZ(DIE,DA,0),U,2),$P(^DIZ(DIE,DA,0),U,3),$P(^DIZ(DIE,DA,0),U,5),$P(^DIZ(DIE,DA,0),U,4),DA)
  1. ;LOOK UP USER INPUT TO SEE IF
  1. ;IT ALREADY EXISTS, IF IT DOES
  1. ;DELETE "FOD" & "FDSO"
  1. ;CROSS-REFERENCE
  1. L ^DIZ(DIE,DA):0 I '$T W !!,"RECORD HAS BEEN LOCKED, TRY AGAIN LATER!",! H 3 G RECORD ;LOCK RECORD
  1. ;INTO ^BUGDRUG2 DATABASE
  1. I (SNUM'=(INUM+1))!('FLAG) S DR=".01///^S X=DA;1;2;3;4;15;16;18;21;7;12;13;20;17;23;24;8;19;14;10;26;6;11;25;22;5;9" D ^DIE G UNLOCK
  1. ;SETUP FOR CALL TO FILEMAN
  1. ;--EDIT AN ENTRY or
  1. ;--FLAG NOT SET YET
  1. ;DR= STUFF .01 (Record Number)
  1. ;CALL FILEMAN EDIT
  1. S DR=".01///^S X=DA" ;SETUP FOR CALL TO FILEMAN
  1. ;--NEW ENTRY and
  1. ;--FLAG IS SET
  1. ;DR= STUFF .01 (Record Number)
  1. D ^DIE ;CALL FILEMAN ENTRY
  1. S DR="1//^S X=DFAC" ;SET DEFAULT (DFAC) FACILITY
  1. D ^DIE ;CALL FILEMAN ENTRY
  1. S DR="2//^S X=DDATE" ;SET DEFAULT (DDATE) DATE
  1. D ^DIE ;CALL FILEMAN ENTRY
  1. S DR="3//^S X=DORG" ;SET DEFAULT (DORG) Organism
  1. D ^DIE ;CALL FILEMAN ENTRY
  1. S DR="4//^S X=DSPEC;15;16;18;21;7;12;13;20;17;23;24;8;19;14;10;26;6;11;25;22;5;9"
  1. ;SET DEFAULT (DSPEC) Specimen
  1. ;ENTER IN SPECIFIC ORDER
  1. D ^DIE ;CALL FILEMAN ENTRY
  1. UNLOCK D INDEX L ;CALL FILEMAN FOR ENTRY/EDIT
  1. ;CALL INDEX (RE-CROSS-REF.)
  1. ;UNLOCK RECORD
  1. G MAIN ;SET UP FOR NEXT ENTRY/EDIT
  1. Q
  1. INDEX ;RE-INDEX "FOD" AND "FDSO" CROSS-REFS.
  1. ;SET LOCAL VARIABLES
  1. S DA=SNUM ;DA= INTERNAL ENTRY NUMBER
  1. S DIK="^DIZ(1991020," ;GLOBAL ROOT (^BUGDRUG2)
  1. S DIK(1)="3^FOD" ;Organism_Name, "FOD" CR-REF
  1. D EN^DIK ;RE-INDEX "FOD"
  1. S DIK(1)="4^FDSO" ;Specimen_Name, "FDSO" CR-REF
  1. D EN^DIK ;RE-INDEX "FDSO"
  1. Q
  1. DEFAULT ;SET UP NEW DEFAULT VALUES FOR
  1. ;Facility, Date, Organism_Name, Specimen_Name
  1. ;SET LOCAL VARIABLES
  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 DDA=SNUM-1 ;DDA= DEFAULT INTERNAL NUMBER
  1. S DFAC=$P(^DIZ(1991020,DDA,0),U,2) ;DFAC= DEFAULT Facility CODE
  1. S DIC="^DIZ(1991010," ;DIC= SITES FILE
  1. S X=DFAC ;X= LOOKUP VALUE (DFAC)
  1. D ^DIC ;DO FILEMAN LOOKUP
  1. S DFAC=$P(^DIZ(1991010,$P(Y,U,1),0),U,1)
  1. ;DFAC= DEFAULT Facility NAME
  1. S DDATE=$P(^DIZ(1991020,DDA,0),U,3) ;DDATE= DEFAULT Date (Fileman)
  1. S Y=DDATE D DD^%DT S DDATE=Y ;DDATE= DEFAULT External Date
  1. S DORG=$P(^DIZ(1991020,DDA,0),U,4) ;DORG= DEFAULT Organism_Code
  1. S DIC="^DIZ(1991018," ;DIC= ORGANISM FILE
  1. S X=DORG ;X= LOOKUP VALUE (DORG)
  1. D ^DIC ;DO FILEMAN LOOKUP
  1. S DORG=$P(^DIZ(1991018,$P(Y,U,1),0),U,1)
  1. ;DORG= DEFAULT Organism_Name
  1. S DSPEC=$P(^DIZ(1991020,DDA,0),U,5) ;DSPEC= DEFAULT Specimen_Code
  1. S DIC="^DIZ(1991019," ;DIC= SPECIMEN FILE
  1. S X=DSPEC ;X= LOOKUP VALUE (DSPEC)
  1. D ^DIC ;DO FILEMAN LOOKUP
  1. S DSPEC=$P(^DIZ(1991019,$P(Y,U,1),0),U,1)
  1. ;DSPEC= DEFAULT Specimen_Name
  1. Q
  1. KILL ;KILL ALL LOCAL VARIABLES TO AZXRBUG1
  1. K FLAG,DIE("NO^"),DIE,INUM,TCOUNT,SNUM,PIEC,DA,DR,X,DIK
  1. K DIK(1),DIC(0),DDA,DFAC,DIC,DDATE,Y,DORG,DSPEC
  1. Q