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

BJPN20AU.m

Go to the documentation of this file.
  1. BJPN20AU ;GDIT/HS/BEE-Prenatal Care Module 2.0 Post Install (Cont.) ; 08 May 2012 12:00 PM
  1. ;;2.0;PRENATAL CARE MODULE;;Feb 24, 2015;Build 63
  1. ;
  1. Q
  1. ;
  1. AUD(AUD,FILE,FLIEN) ;EP - File audit file entries
  1. ;
  1. NEW IBY,IONDT,AFLD
  1. ;
  1. ;Pull person who modified
  1. S IBY=$P($G(AUD),U,4)
  1. I IBY="",FILE="90680.01" D
  1. . S IBY=$P($G(AUD(1.04,"I")),U,2)
  1. . S:IBY="" IBY=$P($G(AUD(1.03,"I")),U,2)
  1. . S:IBY="" IBY=DUZ
  1. I IBY="",FILE="9000011" D
  1. . S IBY=$P($G(AUD(1.03,"I")),U,2)
  1. . S:IBY="" IBY=DUZ
  1. ;
  1. ;Pull date/time modified
  1. S IONDT=$P($G(AUD),U,3)
  1. I IONDT="",FILE="90680.01" D
  1. . S IONDT=$P($G(AUD(1.03,"I")),U,2)
  1. . S:IONDT="" IONDT=$P($G(AUD(1.01,"I")),U,2)
  1. . S:IONDT="" IONDT=$$HTFM^DILIBF($J)
  1. I IONDT="",FILE="9000011" D
  1. . S IONDT=$P($G(AUD(.03,"I")),U,2)
  1. . S:IONDT="" IONDT=$$HTFM^DILIBF($J)
  1. ;
  1. ;Loop through each entry to be audited
  1. S AFLD="" F S AFLD=$O(AUD(AFLD)) Q:AFLD="" D
  1. . ;
  1. . NEW AIEN,DTYPE,IOVALUE,INVALUE,XOVALUE,XNVALUE,DTYPE,NEW
  1. . ;
  1. . ;Pull the values
  1. . S IOVALUE=$P($G(AUD(AFLD,"I")),U)
  1. . S INVALUE=$P($G(AUD(AFLD,"I")),U,2)
  1. . S XOVALUE=$P($G(AUD(AFLD,"X")),U)
  1. . S XNVALUE=$P($G(AUD(AFLD,"X")),U,2)
  1. . S DTYPE=$P($G(^DD(FILE,AFLD,0)),U,2) Q:DTYPE=""
  1. . ;
  1. . ;Create the base entry
  1. . S AIEN=$$ADD(FILE,FLIEN,IONDT,IBY) Q:'+AIEN
  1. . ;
  1. . ;Determine if a new entry
  1. . S NEW="" I FILE="9000011",AFLD=".01" S NEW="A"
  1. . I FILE="90680.01",AFLD=".12" S NEW="A"
  1. . ;
  1. . ;Save old value if populated
  1. . I IOVALUE]"" D
  1. .. S ^DIA(FILE,AIEN,2)=XOVALUE
  1. .. S ^DIA(FILE,AIEN,2.1)=IOVALUE_U_DTYPE
  1. . ;
  1. . ;Save new value
  1. . S ^DIA(FILE,AIEN,3)=XNVALUE
  1. . S ^DIA(FILE,AIEN,3.1)=INVALUE_U_DTYPE
  1. . ;
  1. . ;Update top entry
  1. . S $P(^DIA(FILE,AIEN,0),U,2,4)=IONDT_U_AFLD_U_IBY_U_NEW
  1. ;
  1. Q
  1. ;
  1. ADD(%F,FLIEN,ONDT,BY) ;EP - Credit audit entry
  1. NEW Y
  1. S Y=$O(^DIA(%F,"A"),-1) I 'Y S ^DIA(%F,0)=$P(^DIC(%F,0),U)_" AUDIT^1.1I"
  1. F Y=Y+1:1 I '$D(^DIA(%F,Y)) D LOCK^DILF("^DIA(%F,Y)") I Q:'$D(^DIA(%F,Y)) L -^DIA(%F,Y)
  1. S ^DIA(%F,Y,0)=FLIEN L -^DIA(%F,Y)
  1. S $P(^DIA(%F,0),U,3,4)=Y_U_($P(^DIA(%F,0),U,4)+1)
  1. ;
  1. S ^DIA(%F,"C",ONDT,Y)="",^DIA(%F,"D",BY,Y)="",^DIA(%F,"B",FLIEN,Y)=""
  1. Q Y
  1. ;
  1. OFF(DIFILE,DIFIELD) ;Temporarily turn off auditing for field for file
  1. ;
  1. NEW DIOLD,D,DA,DIMODE,DIE,DR
  1. ;
  1. ;Handle subfields
  1. I DIFIELD["," D I (DIFILE="")!(DIFIELD="") Q
  1. . S DIFILE=+$P(^DD(DIFILE,$P(DIFIELD,","),0),U,2),DIFIELD=$P(DIFIELD,",",2)
  1. ;
  1. S DIOLD=$G(^DD(DIFILE,DIFIELD,"AUDIT")) I DIOLD="" Q DIOLD ;It's already off
  1. ;
  1. ;Skip computed fields - not used for BJPN conversion
  1. S D=$P($G(^DD(DIFILE,DIFIELD,"AUDIT",0)),U,2) Q:D["C" ""
  1. ;
  1. ;Skip word processing fields - not used for BJPN conversion
  1. I D Q:$P($G(^DD(+D,.01,0)),U,2)["W" ""
  1. ;
  1. ;Skip number field
  1. I DIFIELD=".001" Q ""
  1. ;
  1. ;Turn off auditing for field
  1. S DIMODE="@"
  1. S DR="1.1////"_DIMODE,DIE="^DD("_DIFILE_",",DA(1)=DIFILE,DA=DIFIELD
  1. D ^DIE
  1. ;
  1. Q DIOLD
  1. ;
  1. ON(DIFILE,DIFIELD,DIMODE) ;Turn auditing for field for back on
  1. ;
  1. NEW DIOLD,D,DA,DIE,DR
  1. ;
  1. ;Handle subfields
  1. I DIFIELD["," D I (DIFILE="")!(DIFIELD="") Q
  1. . S DIFILE=+$P(^DD(DIFILE,$P(DIFIELD,","),0),U,2),DIFIELD=$P(DIFIELD,",",2)
  1. ;
  1. S DIOLD=$G(^DD(DIFILE,DIFIELD,"AUDIT")) I DIOLD=$G(DIMODE) Q ;It's already on
  1. ;
  1. ;Skip computed fields - not used for BJPN conversion
  1. S D=$P($G(^DD(DIFILE,DIFIELD,"AUDIT",0)),U,2) Q:D["C"
  1. ;
  1. ;Skip word processing fields - not used for BJPN conversion
  1. I D Q:$P($G(^DD(+D,.01,0)),U,2)["W" ""
  1. ;
  1. ;Skip number field
  1. I DIFIELD=".001" Q
  1. ;
  1. ;Turn on auditing for field
  1. S:$G(DIMODE)="" DIMODE="y"
  1. S DR="1.1////"_DIMODE,DIE="^DD("_DIFILE_",",DA(1)=DIFILE,DA=DIFIELD
  1. D ^DIE
  1. Q