| 1 | SCMCGU ;ALB/JLU;General PCMM utilities;7/1/99 ; 3/29/00 12:34pm
 | 
|---|
| 2 |  ;;5.3;Scheduling;**195,177,212**;AUG 13, 1993
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 | NEWPERSN(IEN,ARY) ;This function takes an internal value/DUZ of the
 | 
|---|
| 5 |  ;person you wish info on and performs a silent FM call to retrieve
 | 
|---|
| 6 |  ;the data.  DBIA #10060
 | 
|---|
| 7 |  ;
 | 
|---|
| 8 |  ;INPUTS
 | 
|---|
| 9 |  ;  IEN - the internal entry number of the user you want in 
 | 
|---|
| 10 |  ;        VA(200. (REQUIRED)
 | 
|---|
| 11 |  ;  ARY - the closed array reference the data is to be returned in.
 | 
|---|
| 12 |  ;        This must be a clean array.  This API will not issue any 
 | 
|---|
| 13 |  ;        kills with this structure.(OPTIONAL)  
 | 
|---|
| 14 |  ;        If no array is entered ^TMP("PCMM_PERSON",$J,IEN) will be used.
 | 
|---|
| 15 |  ;
 | 
|---|
| 16 |  ;OUTPUTS
 | 
|---|
| 17 |  ;   ARY(IEN)=Piece Structure below
 | 
|---|
| 18 |  ;   1 - User Name (EXTERNAL)
 | 
|---|
| 19 |  ;   2 - Office Phone number
 | 
|---|
| 20 |  ;   3 - Room
 | 
|---|
| 21 |  ;   4 - Service/Section (EXTERNAL)
 | 
|---|
| 22 |  ;   5 - Voice Pager number
 | 
|---|
| 23 |  ;   6 - Social Security number
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 |  ;If successful 1 is return as the results of the function.
 | 
|---|
| 26 |  ;If not successfull 0^reason is returned.
 | 
|---|
| 27 |  ;
 | 
|---|
| 28 |  N STOP
 | 
|---|
| 29 |  S STOP=0
 | 
|---|
| 30 |  D PARCHK G:STOP MNQ
 | 
|---|
| 31 |  D GETDATA
 | 
|---|
| 32 | MNQ Q $S(STOP=0:1,1:0_U_$P(STOP,U,2))
 | 
|---|
| 33 |  ;
 | 
|---|
| 34 | PARCHK ;Checks the parameters that are passed in.
 | 
|---|
| 35 |  ;
 | 
|---|
| 36 |  I '+$G(IEN) S STOP="1^Bad pointer value to file 200"
 | 
|---|
| 37 |  I $G(ARY)']"" S ARY="^TMP(""PCMM_PERSON"",$J)"
 | 
|---|
| 38 |  Q
 | 
|---|
| 39 |  ;
 | 
|---|
| 40 | GETDATA ;Make the FM calls and formats the return array.
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 |  N BLDERR
 | 
|---|
| 43 |  K ^TMP("SCMC_BLD_PERSON",$J)
 | 
|---|
| 44 |  D GETS^DIQ(200,IEN,".01;.132;.137;.141;29;9","EI","^TMP(""SCMC_BLD_PERSON"","_$J_")","BLDERR")
 | 
|---|
| 45 |  ;only reporting the first one
 | 
|---|
| 46 |  I $D(BLDERR) S STOP=1_U_BLDERR("DIERR",1,"TEXT",1) Q
 | 
|---|
| 47 |  S $P(@ARY@(IEN),U,1)=^TMP("SCMC_BLD_PERSON",$J,200,IEN_",",.01,"E")
 | 
|---|
| 48 |  S $P(@ARY@(IEN),U,2)=^TMP("SCMC_BLD_PERSON",$J,200,IEN_",",.132,"E")
 | 
|---|
| 49 |  S $P(@ARY@(IEN),U,3)=^TMP("SCMC_BLD_PERSON",$J,200,IEN_",",.141,"E")
 | 
|---|
| 50 |  S $P(@ARY@(IEN),U,4)=^TMP("SCMC_BLD_PERSON",$J,200,IEN_",",29,"E")
 | 
|---|
| 51 |  S $P(@ARY@(IEN),U,5)=^TMP("SCMC_BLD_PERSON",$J,200,IEN_",",.137,"E")
 | 
|---|
| 52 |  S $P(@ARY@(IEN),U,6)=^TMP("SCMC_BLD_PERSON",$J,200,IEN_",",9,"E")
 | 
|---|
| 53 |  K ^TMP("SCMC_BLD_PERSON",$J)
 | 
|---|
| 54 |  Q
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 | PDAT(SCPATCH,SCERROR) ;
 | 
|---|
| 57 |  ; alb/rpm Patch 212
 | 
|---|
| 58 |  ; This function is used to retrieve the PATCH install date when
 | 
|---|
| 59 |  ; passed the PATCH name.  The PATCH install date is found in the
 | 
|---|
| 60 |  ; subfile #9.4901 field #.02.
 | 
|---|
| 61 |  ;
 | 
|---|
| 62 |  ; DBIA:#10048 indicates that Package(#9.4) file is open for read
 | 
|---|
| 63 |  ; only with FM.
 | 
|---|
| 64 |  ;
 | 
|---|
| 65 |  ;   Input:
 | 
|---|
| 66 |  ;        SCPATCH - Patch designation (i.e. SD*5.3*177)
 | 
|---|
| 67 |  ;        SCERROR (optional) - Variable stores user named variable
 | 
|---|
| 68 |  ;                             to return error text.  Passing ""
 | 
|---|
| 69 |  ;                             is treated the same as no parameter.
 | 
|---|
| 70 |  ;
 | 
|---|
| 71 |  ;   Output:
 | 
|---|
| 72 |  ;        Function value - Date patch installed on success, otherwise 0 
 | 
|---|
| 73 |  ;                         on failure.
 | 
|---|
| 74 |  ;        SCERROR - Variable stores error text explaining function
 | 
|---|
| 75 |  ;                  failure.  Only output if user passes second
 | 
|---|
| 76 |  ;                  parameter to function and an error occurs.
 | 
|---|
| 77 |  ;
 | 
|---|
| 78 |  ; Validate input
 | 
|---|
| 79 |  I $L(SCPATCH,"*")'=3 D  Q 0
 | 
|---|
| 80 |  . S:$G(SCERROR)]"" @SCERROR="Invalid input parameter"
 | 
|---|
| 81 |  ; Verify patch is loaded
 | 
|---|
| 82 |  I '$$PATCH^XPDUTL(SCPATCH) D  Q 0
 | 
|---|
| 83 |  . S:$G(SCERROR)]"" @SCERROR="Patch "_SCPATCH_" not loaded"
 | 
|---|
| 84 |  ; Initialize locals
 | 
|---|
| 85 |  NEW SCDATE,SCFILE,SCI,SCERR,SCIEN,SCPAT
 | 
|---|
| 86 |  ; Search for Patch designation in #9.4 and subfiles (#9.49, #9.4901)
 | 
|---|
| 87 |  S SCIEN=""
 | 
|---|
| 88 |  F SCI=1:1:3 D  Q:$D(SCERR)!'SCIEN(SCI)
 | 
|---|
| 89 |  . S SCFILE=$S(SCI=1:9.4,SCI=2:9.49,1:9.4901)
 | 
|---|
| 90 |  . S SCPAT=$P(SCPATCH,"*",SCI)
 | 
|---|
| 91 |  . S SCIEN(SCI)=$$FIND1^DIC(SCFILE,SCIEN,"MX",SCPAT,"","","SCERR")
 | 
|---|
| 92 |  . ; Check for alternate form of patch name (i.e. "176 SEQ #158") 
 | 
|---|
| 93 |  . I SCI=3,'SCIEN(SCI) S SCPAT=SCPAT_" SEQ" D
 | 
|---|
| 94 |  . . S SCIEN(SCI)=$$FIND1^DIC(SCFILE,SCIEN,"M",SCPAT,"","","SCERR")
 | 
|---|
| 95 |  . Q:$D(SCERR)!'SCIEN(SCI)
 | 
|---|
| 96 |  . S SCIEN=$S(SCI<3:",",1:"")_SCIEN(SCI)_$S(SCI=1:",",1:"")_SCIEN
 | 
|---|
| 97 |  ; Check for search errors
 | 
|---|
| 98 |  I 'SCIEN(SCI) S:$G(SCERROR)]"" @SCERROR="Search failed" Q 0
 | 
|---|
| 99 |  I $D(SCERR) S:$G(SCERROR)]"" @SCERROR=$G(SCERR("DIERR",1,"TEXT",1)) Q 0
 | 
|---|
| 100 |  ;
 | 
|---|
| 101 |  ; Retrieve date
 | 
|---|
| 102 |  S SCDATE=$$GET1^DIQ(SCFILE,SCIEN,.02,"I","","SCERR")
 | 
|---|
| 103 |  I $D(SCERR) S:$G(SCERROR)]"" @SCERROR=$G(SCERR("DIERR",1,"TEXT",1)) Q 0
 | 
|---|
| 104 |  ;
 | 
|---|
| 105 |  D CLEAN^DILF
 | 
|---|
| 106 |  Q SCDATE
 | 
|---|