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

XU8P497.m

Go to the documentation of this file.
  1. XU8P497 ;BP/BT - UPDATE PERSON CLASS FILE; 10/23/08
  1. ;;8.0;KERNEL;**497**;July 10, 1995;Build 5
  1. ;;"Per VHA Directive 2004-038, this routine should not be modified."
  1. ;
  1. Q
  1. POST ; entry point of Post-Initi Routine
  1. D LOOP,INACTIVE
  1. Q
  1. LOOP ; loop through New Person file. And map new Person Classes for users
  1. N XUIEN,XUPC,XUEFDATE,XUEXDATE
  1. K ^TMP("XU8P497")
  1. S XUIEN=0 F S XUIEN=$O(^VA(200,XUIEN)) Q:XUIEN'>0 D
  1. . I $P($$ACTIVE^XUSER(XUIEN),"^",2)="TERMINATED" Q
  1. . S XUPC=$$GETPC(XUIEN)
  1. . I +XUPC>522 Q
  1. . I +XUPC<187 Q
  1. . S XUEFDATE=$P(XUPC,"^",2) I XUEFDATE<$$DT^XLFDT S XUEFDATE=$$DT^XLFDT
  1. . S XUEXDATE=$P(XUPC,"^",3)
  1. . I +XUPC=187 D REPOINT(XUIEN,181,XUEFDATE,XUEXDATE),PRINT(XUIEN,181) Q
  1. . I +XUPC=247 D REPOINT(XUIEN,1135,XUEFDATE,XUEXDATE),PRINT(XUIEN,1135) Q
  1. . I +XUPC=353 D REPOINT(XUIEN,675,XUEFDATE,XUEXDATE),PRINT(XUIEN,675) Q
  1. . I +XUPC=515 D REPOINT(XUIEN,352,XUEFDATE,XUEXDATE),PRINT(XUIEN,352) Q
  1. . I +XUPC=517 D REPOINT(XUIEN,352,XUEFDATE,XUEXDATE),PRINT(XUIEN,352) Q
  1. . I +XUPC=519 D REPOINT(XUIEN,354,XUEFDATE,XUEXDATE),PRINT(XUIEN,354) Q
  1. . I +XUPC=522 D REPOINT(XUIEN,352,XUEFDATE,XUEXDATE),PRINT(XUIEN,352) Q
  1. Q
  1. ;
  1. REPOINT(USERIEN,NEWPC,EFDATE,EXDATE) ;Use FM so to fire X-ref's
  1. N RX1,RX2,DA1
  1. S DA1=USERIEN
  1. I $G(EFDATE)="" S EFDATE=$$DT^XLFDT
  1. S RX1(200.05,"+1,"_DA1_",",.01)=NEWPC
  1. S RX1(200.05,"+1,"_DA1_",",2)=$G(EFDATE)
  1. S RX1(200.05,"+1,"_DA1_",",3)=$G(EXDATE)
  1. L +^VA(200,DA1,"USC1"):2 I '$T D Q
  1. .S XUA(1)="",XUA(2)=">>>User # "_DA1_" is locked at this time." D MES^XPDUTL(.XUA)
  1. D UPDATE^DIE("S","RX1","RX2")
  1. L -^VA(200,DA1,"USC1")
  1. Q
  1. ;
  1. INACTIVE ; inactivate Person Class entries
  1. N XUI
  1. F XUI=187,247,353,515,517,519,522 D INAC(XUI)
  1. Q
  1. ;
  1. INAC(PCIEN) ; inactivate single Person Class entry
  1. I +$G(PCIEN)'=$G(PCIEN) Q
  1. I $G(PCIEN)'>0 Q
  1. N XUA,XUDT S XUDT=$$DT^XLFDT
  1. L +^USC(8932.1,PCIEN,0):10 I '$T D Q
  1. .S XUA(1)="",XUA(2)=">>>Record # "_PCIEN_" locked at time of patch installation. Could not inactivate." D MES^XPDUTL(.XUA)
  1. N DR,DIE,DA S DR="3////i",DIE="^USC(8932.1,",DA=PCIEN D ^DIE
  1. N DR,DIE,DA S DR="4///^S X=XUDT",DIE="^USC(8932.1,",DA=PCIEN D ^DIE
  1. L -^USC(8932.1,PCIEN,0)
  1. Q
  1. ;
  1. PRINT(USERIEN,PCNEW) ; print a user who is assigned the replacement Person Class
  1. N XUA,XUY
  1. S XUY=+$O(^TMP("XU8P497",$J,"A"),-1)
  1. S XUA(1)=">>> The user "_$P($G(^VA(200,USERIEN,0)),"^")_" is assigned to the Person Class IEN: "_PCNEW
  1. S XUA(2)=""
  1. S ^TMP("XU8P497",$J,XUY+1)=XUA(1)
  1. D MES^XPDUTL(.XUA)
  1. Q
  1. ;
  1. GETPC(XUIEN) ;Get Person Class for a single user
  1. N XUEXDA,XUPCIEN
  1. I +$G(XUIEN)'>0 Q ""
  1. I '$D(^VA(200,XUIEN,"USC1")) Q ""
  1. S XUPCIEN=$O(^VA(200,XUIEN,"USC1","A"),-1)
  1. I $G(XUPCIEN)'>0 Q ""
  1. S XUEXDA=$P($G(^VA(200,XUIEN,"USC1",XUPCIEN,0)),"^",3)
  1. I XUEXDA'="",(XUEXDA<$$DT^XLFDT) Q ""
  1. Q $G(^VA(200,XUIEN,"USC1",XUPCIEN,0))
  1. ;
  1. SETDATE(USERIEN,PCIEN,XUEFDA,XUEXDA) ;set eff and exp date for the privious Person Class entry.
  1. I +$G(XUEFDA)>$$DT^XLFDT D SETEFDA(USERIEN,PCIEN,$$DT^XLFDT)
  1. I +$G(XUEXDA)>$$DT^XLFDT D SETEXDA(USERIEN,PCIEN,$$DT^XLFDT)
  1. Q
  1. ;
  1. SETEXDA(USERIEN,PCIEN,EXDATE) ; set exp date
  1. N DIE,DA,DR
  1. S DA(1)=USERIEN ;
  1. S DA=PCIEN ; entry number in subfile
  1. S DIE="^VA(200,"_DA(1)_","_"""USC1"""_"," ; global root of subfile
  1. S DR="3///^S X=EXDATE" ; fields in subfile to edit
  1. L +^VA(200,USERIEN,"USC1"):2 I '$T D Q
  1. .S XUA(1)="",XUA(2)=">>>User # "_DA1_" is locked at this time." D MES^XPDUTL(.XUA)
  1. D ^DIE
  1. L -^VA(200,USERIEN,"USC1")
  1. Q
  1. SETEFDA(USERIEN,PCIEN,EFDATE) ; set eff date
  1. N DIE,DA,DR
  1. S DA(1)=USERIEN ;
  1. S DA=PCIEN ; entry number in subfile
  1. S DIE="^VA(200,"_DA(1)_","_"""USC1"""_"," ; global root of subfile
  1. S DR="2///^S X=EFDATE" ; fields in subfile to edit
  1. L +^VA(200,USERIEN,"USC1"):2 I '$T D Q
  1. .S XUA(1)="",XUA(2)=">>>User # "_DA1_" is locked at this time." D MES^XPDUTL(.XUA)
  1. D ^DIE
  1. L -^VA(200,USERIEN,"USC1")
  1. Q