1 | PSODI ;BHM/AGV - API FOR FILEMAN CALLS ;04/19/06 10:30 am
|
---|
2 | ;;7.0;OUTPATIENT PHARMACY;**245,267**;DEC 1997;Build 3
|
---|
3 | ;
|
---|
4 | DIQ(PSOFILE,DIC,DR,DA,DIQ) ;PROCESS FIELDS
|
---|
5 | ;PSOFILE: FILE NUMBER USED FOR VALIDATION OF ACCESS
|
---|
6 | ;DIC,DR,DA,DIQ: SEE VA FILEMAN PROGRAMMER MANUAL FOR EN^DIQ1 INPUT DEFINITIONS
|
---|
7 | ;
|
---|
8 | S PSODIY=""
|
---|
9 | I +$G(PSOFILE)'>0 S PSODIY=-1 Q
|
---|
10 | N PSOTEST S PSOTEST=$$VALID1(PSOFILE,DIC)
|
---|
11 | I PSOTEST'>0 S PSODIY=-1 Q
|
---|
12 | D EN^DIQ1
|
---|
13 | Q
|
---|
14 | ;
|
---|
15 | GET1(PSOFILE,PSOIEN,PSOFIELD,PSOFLAGS,PSOWORD) ;RETRIEVE FIELD DATA
|
---|
16 | ;PSOFILE: FILE OR SUBFILE NUMBER
|
---|
17 | ;PSOIEN: IEN FOR DATA RETURN
|
---|
18 | ;PSOFIELD: FIELD FOR DATA RETURN
|
---|
19 | ;FLAGS: CONTROLS THE PROCESSING OF DATA RETURNED
|
---|
20 | ;PSOWORD: REQUIRED FOR RETURN OF WORD PROCESSING FIELDS
|
---|
21 | ;
|
---|
22 | N PSORET,DIERR,DIRUT,DIROUT,DUOUT,DTOUT,DIHELP,DIMSG
|
---|
23 | I $G(PSOFILE)="" S PSORET="0^FILEMAN UNABLE TO PROCESS REQUEST" Q PSORET
|
---|
24 | I $G(PSOIEN)="" S PSOIEN=""
|
---|
25 | I $G(PSOFIELD)="" S PSOFIELD=""
|
---|
26 | I $G(PSOFLAGS)="" S PSOFLAGS=""
|
---|
27 | I $G(PSOWORD)="" S PSOWORD=""
|
---|
28 | N PSOTEST S PSOTEST=$$VALID3(PSOFILE)
|
---|
29 | I PSOTEST'>0 S PSORET="0^FILE ACCESS ERROR" Q PSORET
|
---|
30 | S PSORET=$$GET1^DIQ(PSOFILE,PSOIEN,PSOFIELD,PSOFLAGS,PSOWORD,"DIERR")
|
---|
31 | I $D(DIERR) S PSORET="0^FILEMAN UNABLE TO PROCESS REQUEST" Q PSORET
|
---|
32 | Q "1^"_PSORET
|
---|
33 | ;
|
---|
34 | STATUS(PSOFILE,PSOFIELD,LIST) ;PROCESS FIELDS
|
---|
35 | ;PSOFILE: FILE NUMBER USED FOR VALIDATION OF ACCESS
|
---|
36 | ;PSOFIELD: FIELD NUMBER FROM FILE
|
---|
37 | ;LIST: SUBSCRIPT USED IN LOCAL ARRAY
|
---|
38 | ;
|
---|
39 | Q:'$G(PSOFILE) Q:'$G(PSOFIELD) Q:$G(LIST)=""
|
---|
40 | S PSODIY=""
|
---|
41 | N PSOTEST S PSOTEST=$$VALID2(PSOFILE,PSOFIELD)
|
---|
42 | I PSOTEST'>0 S PSODIY=-1 Q
|
---|
43 | D FIELD^DID(PSOFILE,PSOFIELD,"","POINTER",LIST)
|
---|
44 | Q
|
---|
45 | ;
|
---|
46 | DIC(PSOFILE,DIC,X) ;
|
---|
47 | ;PSOFILE: FILE NUMBER USED FOR VALIDATION OF ACCESS
|
---|
48 | ;DIC,X: SEE VA FILEMAN PROGRAMMER MANUAL FOR ^DIC INPUT DEFINITIONS
|
---|
49 | ;
|
---|
50 | S PSODIY=""
|
---|
51 | I +$G(PSOFILE)'>0 S PSODIY=-1 Q
|
---|
52 | N PSOTEST S PSOTEST=$$VALID1(PSOFILE,DIC)
|
---|
53 | I PSOTEST'>0 S PSODIY=-1 Q
|
---|
54 | I $G(DIC(0))'="" S DIC(0)=$TR(DIC(0),"L","") I $G(DIC(0))="" S PSODIY=-1 Q
|
---|
55 | D ^DIC
|
---|
56 | Q
|
---|
57 | ;
|
---|
58 | VALID1(PSTFILE,PSTDIC) ;TEST FOR VALID DATA INPUT INTO PSOFILE AND DIC
|
---|
59 | N PSVLOOP,PSVTEST,PSVALID S PSVALID=-1
|
---|
60 | F PSVLOOP=1:1 S PSVTEST=$P($T(FILE1+PSVLOOP),";;",2)_";;"_$P($T(FILE1+PSVLOOP),";;",3) Q:$G(PSVTEST)'>0!(PSVALID=1) D
|
---|
61 | .I PSTFILE=$P(PSVTEST,";;",1) D Q
|
---|
62 | ..I '$G(PSTDIC) D Q
|
---|
63 | ...I PSTDIC=$P(PSVTEST,";;",2) S PSVALID=1
|
---|
64 | ..I PSTDIC=$P(PSVTEST,";;",1) S PSVALID=1
|
---|
65 | Q PSVALID
|
---|
66 | ;
|
---|
67 | VALID2(PSTFILE,PSTFIELD) ;TEST FOR VALID DATA INPUT INTO PSOFILE AND PSOFIELD
|
---|
68 | N PSVLOOP,PSVTEST,PSVALID S PSVALID=-1
|
---|
69 | F PSVLOOP=1:1 S PSVTEST=$P($T(FILE2+PSVLOOP),";;",2)_";;"_$P($T(FILE2+PSVLOOP),";;",3) Q:$G(PSVTEST)'>0!(PSVALID=1) D
|
---|
70 | .I PSTFILE=$P(PSVTEST,";;",1) D Q
|
---|
71 | ..I PSTFIELD=$P(PSVTEST,";;",2) S PSVALID=1
|
---|
72 | Q PSVALID
|
---|
73 | ;
|
---|
74 | VALID3(PSTFILE) ;TEST FOR VALID DATA INPUT INTO PSOFILE
|
---|
75 | N PSVLOOP,PSVTEST,PSVALID S PSVALID=-1
|
---|
76 | F PSVLOOP=1:1 S PSVTEST=$P($T(FILE3+PSVLOOP),";;",2) Q:$G(PSVTEST)'>0!(PSVALID=1) D
|
---|
77 | .I PSTFILE=PSVTEST S PSVALID=1
|
---|
78 | Q PSVALID
|
---|
79 | ;
|
---|
80 | FILE1 ;ACCESS FILE LIST FOR DIQ AND DIC
|
---|
81 | ;;52;;^PSRX(
|
---|
82 | ;;59;;^PS(59,
|
---|
83 | Q
|
---|
84 | ;
|
---|
85 | FILE2 ;ACCESS FILE LIST FOR STATUS
|
---|
86 | ;;52;;100
|
---|
87 | Q
|
---|
88 | ;
|
---|
89 | FILE3 ;ACCESS FILE LIST FOR GET1
|
---|
90 | ;;52
|
---|
91 | ;;52.04
|
---|
92 | ;;52.032
|
---|
93 | ;;52.03
|
---|
94 | ;;52.037
|
---|
95 | ;;52.038
|
---|
96 | ;;52.3
|
---|
97 | ;;52.34
|
---|
98 | ;;52.1
|
---|
99 | ;;52.25
|
---|
100 | ;;52.2
|
---|
101 | ;;52.0107
|
---|
102 | ;;52.0113
|
---|
103 | ;;52.01
|
---|
104 | ;;52.0401
|
---|
105 | ;;52.052311
|
---|
106 | Q
|
---|