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

AGFLDREQ.m

Go to the documentation of this file.
  1. AGFLDREQ ; IHS/SD/TPF - DEVELOPER TOOL TO ADD REQUIRED FIELDS TO THE REQUIRED FIELD MULTIPLE IN THE REGISTRATION PARAMETER FILE
  1. ;;7.1;PATIENT REGISTRATION;**2,9**;AUG 25, 2005
  1. ;
  1. ;IN ORDER TO SET UP THE SITE SPECIFIC MANDATORY FIELDS DO THE FOLLOWING
  1. ;EDIT THE 'REGISTRATION PARAMETER' FILE
  1. ; 'MANDATORY FIELDS'
  1. ; 'REQUIRED FIELDS'
  1. ;AND ENTER THE FILE AND THEN THEN FIELDS WITHIN THAT FILE YOU WISH
  1. ;TO ALLOW SITES TO SET
  1. ;LOCALLY AS REQUIRED OR NOT. THIS DOES NOT OVERRIDE FILEMEN REQUIRED
  1. ;FIELDS AND CAN ONLY
  1. ;BE USED FOR FIELDS THAT HAVE NO REQ SETTING IN THE FILEMAN DD.
  1. ;
  1. ;GENERALLY ADDING OF LOCAL REQ FIELDS WILL BE DONE BY DEVELOPERS. EVEN
  1. ;IF THE FIELD IS
  1. ;SET UP FOR LOCAL SETTINGS IT WILL NOT BE IN AFFECT UNTIL THE PROPER CODE
  1. ;IS ADDED TO
  1. ;THE PAT REG SCREEN ROUTINE. AFTER IT IS ADDED TO THE
  1. ;'REGISTRATION PARAMETER' FILE THE
  1. ;FOLLOWING CODE SHOULD BE ADDED TO THE APPROPRAIRE ROUTINE WHERE THE
  1. ;FIELD IS EDITED.
  1. ;
  1. ; I $$ISREQ^AGFLDREQ(file or subfile #,field #) S
  1. ; DIE("NO^"),DR=field#_"R"
  1. ; E S DR=field#
  1. ;
  1. ;THE FORMAT AT THIS TIME IS LIMITED TO CHECKING ONE FIELD AT A TIME.
  1. ;EACH EDIT CALL MAY HAVE TO BE MODIFIED TO ACCOUNT
  1. ;FOR THIS LIMITATION.
  1. ;
  1. ;THE SITE CAN THEN USE THE 'AGFAC' INPUT TEMPLATE VIA OPTION 'AGOPT'
  1. ;TO EDIT THE SETTING FOR EACH OF THE FIELDS
  1. ;
  1. Q ;NOT TO BE RUN FROM ROOT
  1. GETFIELD(A,B,X) ;EP - CALLED FROM INPUT TRANSFORM OF FIELD 9009061.1101 'REQUIRED FIELD NAME' SUB-FIELD
  1. N DIC,DIE,Y,DO
  1. ;GO THROUGH AND SEE IF THE FIELD IS IN THE TOP LEVEL FILE
  1. S TOPFILE=+$P(^AGFAC(A,11,B,0),U)
  1. S DIC="^DD("_TOPFILE_","
  1. S DIC(0)="EX" ;SET THIS TO EX WHEN ADDING ITEMS IN AN INSTALL
  1. ;S DIC(0)="E"
  1. D ^DIC
  1. I +Y<0 D SUBFILES(TOPFILE,.X,.Y)
  1. I +Y<0 K X Q
  1. S X=$P(Y,U,2)
  1. Q
  1. SUBFILES(TOPFILE,X,Y) ;GO THROUGH THE NEXT LEVEL OF SUB FILES AND FIND
  1. ;IT THERE
  1. N DIC,DIE,DO
  1. S SUBFILE=TOPFILE
  1. F S SUBFILE=$O(^DD(TOPFILE,"SB",SUBFILE)) Q:SUBFILE="" D Q:+Y>0
  1. .S DIC="^DD("_SUBFILE_","
  1. .S DIC(0)="EX" ;SET THIS TO EX WHEN ADDING ITEMS IN AN INSTALL
  1. .;S DIC(0)="E"
  1. .D ^DIC
  1. Q
  1. ;IS THIS A SITE SPECIFIC REQUIRED FLD?
  1. ;FILENUM = FILE OR SUBFILE #
  1. ;FIELDNUM = FLD #
  1. ;WILL BE CALLLED FROM VARIOUS PAT REG SCREENS
  1. ISREQ(FILENUM,FIELDNUM) ;EP - USE TO VERIFY A SITE SPECIFIC MANDATORY FIELD IS SET FOR REQUIRED
  1. K RETURN,ERROR
  1. N FIELDIEN,FILEIEN
  1. D FIELD^DID(FILENUM,FIELDNUM,,"LABEL","RETURN","ERROR")
  1. Q:$D(ERROR) 0 ;ERROR CAN'T FIND FILE OR FIELD??
  1. S FIELDNAM=RETURN("LABEL")
  1. S FILEIEN=$O(^AGFAC(DUZ(2),11,"B",FILENUM,""))
  1. Q:FILEIEN="" 0 ;ERROR CAN'T FIND RECORD FOR THIS FILE #
  1. S FIELDIEN=$O(^AGFAC(DUZ(2),11,FILEIEN,1,"B",FIELDNAM,""))
  1. Q:FIELDIEN="" 0 ;ERROR CAN'T FIND RECORD FOR THIS FLD #
  1. Q $P($G(^AGFAC(DUZ(2),11,FILEIEN,1,FIELDIEN,0)),U,2)
  1. ;THIS IS USED TO LOOP THROUGH THE SITE SPECIFIC MANDATORY FIELDS AND ALLOW THE USER TO
  1. ;SET IT AS REQUIRED OR NOT
  1. EDIT ;EP - CALLED FROM INPUT TEMPLATE 'AGFAC' TO EDIT SITE SPECIFIC REQUIRED FIELDS
  1. ;AG*7.1*9 - Set up FACIEN which is needed to update the correct facility
  1. ; - Changed DUZ(20 references to use FACIEN to update the correct facility
  1. N FILENUM,FIELDNUM,FILEIEN,FACIEN
  1. S FACIEN=$G(DA)
  1. ;
  1. N DIE,DIC,DA,D0,DO,DR,X,Y,DP,%,D,DC,DE,DG,DH,DI,DIA,DIEDA,DIEL,DIETMP,DIFLD,DIIENS,DILK,DIP,DISYS,DK,DL,DM,DQ,DSC,DU,DV,DW,DXS,L
  1. K RETURN,ERROR
  1. W !!,"Mandatory Fields (site specific) edit:"
  1. S FILENUM=0
  1. F S FILENUM=$O(^AGFAC(FACIEN,11,"B",FILENUM)) Q:'FILENUM D Q:$D(Y)
  1. .S FILEIEN=0
  1. .F S FILEIEN=$O(^AGFAC(FACIEN,11,"B",FILENUM,FILEIEN)) Q:'FILEIEN D Q:$D(Y)
  1. ..D FILE^DID(FILENUM,,"NAME","RETURN","ERROR")
  1. ..I $D(ERROR) W !,"CAN'T FIND FILE. POSSIBLE FILE CORRUPTION IN ^AGFAC" Q ;CAN'T FIND FILE
  1. ..W !!,"Now setting requirement for fields within file ",RETURN("NAME")
  1. ..S FIELDNAM=0
  1. ..F S FIELDNAM=$O(^AGFAC(FACIEN,11,FILEIEN,1,"B",FIELDNAM)) Q:FIELDNAM="" D Q:$D(Y)
  1. ...S FIELDIEN=$O(^AGFAC(FACIEN,11,FILEIEN,1,"B",FIELDNAM,""))
  1. ...W !?8,"Require entry of field "_$S(FIELDNAM["ETHNICITY":"ETHNICITY",1:FIELDNAM)_" ?" ;AG*7.1*9 - Special code for ETHNICITY
  1. ...K DIC,DIE,DR,DA
  1. ...S DA=FIELDIEN
  1. ...S DA(2)=FACIEN
  1. ...S DA(1)=FILEIEN
  1. ...S DIE="^AGFAC("_DA(2)_",11,"_DA(1)_",1,"
  1. ...S DR=.02
  1. ...S DR(2,9009061.11)=.01
  1. ...S DR(3,9009061.1101)=.02
  1. ...S DIE("NO^")="OUTOK"
  1. ...D ^DIE
  1. ...;
  1. ...;Special code for Print Ethnicity On FaceSheet - AG*7.1*9
  1. ...I FILENUM=2,FIELDNAM="ETHNICITY INFORMATION" D Q
  1. ....K DA,DR,DIE
  1. ....S DA=FACIEN
  1. ....S DIE="^AGFAC("
  1. ....S DR=501
  1. ....D ^DIE
  1. ....K DA,DR,DIE
  1. ...;
  1. ...;Special code for Print Race On FaceSheet - AG*7.1*9
  1. ...I FILENUM=2,FIELDNAM="RACE" D Q
  1. ....K DA,DR,DIE
  1. ....S DA=FACIEN
  1. ....S DIE="^AGFAC("
  1. ....S DR=503
  1. ....D ^DIE
  1. ....K DA,DR,DIE
  1. Q
  1. RESTRICT(IEN) ;EP - RESTRICT FILE CHOICE TO PATIENT REG FILES OR
  1. ;SPECIFIC AUP,AUT FILES
  1. Q 0
  1. ;
  1. ;AG*7.1*9 - Special check for mandatory multiple subfields
  1. ALTREQ(FILENUM,FIELDNM) ;EP - ALTERNATE CHECK FOR SITE SPECIFIC MANDATORY FIELDS (HANDLES MULTIPLE SUBFIELDS)
  1. ;^AGFAC Structure does not allow multiple subfields to be entered so the are entered for the parent file
  1. ;This call will look up the multiple subfield by its name
  1. N FLIEN,FDIEN
  1. S FLIEN=$O(^AGFAC(DUZ(2),11,"B",FILENUM,"")) Q:FLIEN="" 0
  1. S FDIEN=$O(^AGFAC(DUZ(2),11,FLIEN,1,"B",FIELDNM,"")) Q:FDIEN="" 0
  1. Q $P($G(^AGFAC(DUZ(2),11,FLIEN,1,FDIEN,0)),U,2)