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

SDECLOC.m

Go to the documentation of this file.
  1. SDECLOC ;ALB/SAT - VISTA SCHEDULING RPCS ;JAN 15, 2016
  1. ;;5.3;Scheduling;**627**;Aug 13, 1993;Build 249
  1. ;Input HIEN - File 44 IEN
  1. ; INACTIVE - Inactive flag. 0=return active only; 1=return active and inactive entries
  1. ;Output - Hospital Location IEN^Hospital Location Name^Privileged User IEN^Privileged User^INACTIVE
  1. PRIVLOC(DATA,HIEN,INACTIVE) ;EP
  1. N LP,CNT,INACT
  1. S INACTIVE=$G(INACTIVE)
  1. S DATA=$$TMPGBL()
  1. S (LP,CNT)=0
  1. S @DATA@(0)="I00020HOSPLOCID^T00030HOSPLOCID^I00020NEWPERSONID^T00030NEWPERSONNAME^T00030INACTIVE"_$C(30)
  1. Q:'$G(HIEN)
  1. F S LP=$O(^SC(HIEN,"SDPRIV",LP)) Q:'LP D
  1. .S INACT=$$PC^SDEC45(LP)
  1. .I 'INACTIVE,INACT Q
  1. .S CNT=CNT+1,@DATA@(CNT)=HIEN_U_$P(^SC(HIEN,0),U)_U_LP_U_$$GET1^DIQ(200,LP,.01)_U_$S(+INACT:"INACTIVE",1:"ACTIVE")_$C(30)
  1. S @DATA@(CNT)=@DATA@(CNT)_$C(31)
  1. Q
  1. ; Update the list of privileged users for a hospital location
  1. ; Input - LOC = IEN of Hospital Location file entry
  1. ; LST = Array of NEW PERSON IENs. For example,
  1. ; LST(1)=34
  1. ; LST(2)=65
  1. UPDPRIV(DATA,LOC,LST) ;
  1. K DATA
  1. N LP,FDA,CNT,VAL,ERR,IENS,IEN
  1. I $L($G(LST)) D
  1. .S CNT=$L(LST,",") F LP=1:1:CNT S LST($P(LST,",",LP))=$P(LST,",",LP)
  1. .S LST=""
  1. S DATA(0)="I00020ERRORID^T00030ERRORTEXT"_$C(30)
  1. I '$G(LOC) D Q
  1. .S DATA(1)="-1^MISSING LOCATION IEN"_$C(30,31)
  1. .D ^%ZTER
  1. I '$D(^SC(LOC,0)) D Q
  1. .S DATA(1)="-1^LOCATION FILE ENTRY IS MISSING"_$C(30,31)
  1. .D ^%ZTER
  1. D PURGE(LOC)
  1. S CNT=0
  1. S LP=0 F S LP=$O(LST(LP)) Q:'LP D
  1. .S VAL=LST(LP)
  1. .S CNT=CNT+1
  1. .S IENS(CNT)=+VAL
  1. .S IEN="+"_CNT_","
  1. .S FDA(44.04,IEN_LOC_",",.01)=+VAL
  1. D:CNT UPDATE^DIE(,"FDA","IENS","ERR")
  1. I $D(ERR) D
  1. .S DATA(1)="-1^"_$G(ERR("DIERR",1,"TEXT",1))_$C(30,31)
  1. E S DATA(1)="1^SUCCESSFUL"_$C(30,31)
  1. Q
  1. ; Purge existings entries prior to updating
  1. ; Input - IEN of Hospital Location file
  1. PURGE(IEN) ;EP-
  1. N DIK,DA
  1. S DIK="^SC("_IEN_",""SDPRIV"","
  1. S DA(1)=IEN
  1. S DA=999999999 F S DA=$O(^SC(IEN,"SDPRIV",DA),-1) Q:'DA D ^DIK
  1. ;S DA=0 F S DA=$O(^SC(IEN,"SDPRIV",DA)) Q:'DA D ^DIK
  1. Q
  1. TMPGBL() ;EP-
  1. K ^TMP("SDECLOC",$J) Q $NA(^($J))