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
|
---|