1 | IBDF18B ;ALB/AAS - ENCOUNTER FORM - utilities for PCE ;04-OCT-94
|
---|
2 | ;;3.0;AUTOMATED INFO COLLECTION SYS;;APR 24, 1997
|
---|
3 | ;
|
---|
4 | GETPRO(CLINIC,ARY) ; -- returns list of providers specified for a clinic
|
---|
5 | ; -- input CLINIC = pointer to hospital location file for clinic
|
---|
6 | ; ARY = name of array to return list in
|
---|
7 | ;
|
---|
8 | ; -- output The format of the returned array is as follows
|
---|
9 | ; @ARY@(0) = count of array element (0 of nothing found)
|
---|
10 | ; @ARY@(1) = pointer to 200^provider name from 200 (default provider if indicated)
|
---|
11 | ; @ARY@(2) = pointer to 200^provider name from 200
|
---|
12 | ;
|
---|
13 | N I,J,X,Y,IBX,IBQUIT,COUNT,IBC,ERR,CT
|
---|
14 | S (CT,COUNT,IBQUIT)=0
|
---|
15 | ;
|
---|
16 | S @ARY@(0)=""
|
---|
17 | I $G(CLINIC)="" G GETPROQ
|
---|
18 | I $G(^SC(CLINIC,0))="" G GETPROQ
|
---|
19 | S ERR="IBDERR"
|
---|
20 | ;
|
---|
21 | ; -- don't use PCMM providers checked
|
---|
22 | I $P($G(^SD(409.95,+$O(^SD(409.95,"B",CLINIC,0)),0)),"^",10) G CLIN
|
---|
23 | ;
|
---|
24 | ; -- get providers from PCMM teams, if available
|
---|
25 | I $L($T(PRCL^SCAPMC)) S X=$$PRCL^SCAPMC(.CLINIC,"","","","",ARY,ERR) I @ARY@(0)>0 D
|
---|
26 | .K @ARY@("SCPR")
|
---|
27 | .F I=1:1:@ARY@(0) I '$$SCREEN^IBDFDE10(+@ARY@(I)) K @ARY@(I) S CT=CT+1
|
---|
28 | .S @ARY@(0)=@ARY@(0)-CT
|
---|
29 | I @ARY@(0)>0 G GETPROQ
|
---|
30 | ;
|
---|
31 | CLIN I $O(^SC(CLINIC,"PR",0))="" G GETPROQ
|
---|
32 | ;
|
---|
33 | ; -- default provider should always be listed first
|
---|
34 | S IBX=$O(^SC("ADPR",CLINIC,0)) I IBX D
|
---|
35 | .S X=$G(^SC(CLINIC,"PR",IBX,0))
|
---|
36 | .D INCPR(+X)
|
---|
37 | ;
|
---|
38 | ; -- get rest of list of providers
|
---|
39 | S IBX=0 F S IBX=$O(^SC(CLINIC,"PR",IBX)) Q:'IBX I IBX D
|
---|
40 | .S X=$G(^SC(CLINIC,"PR",IBX,0))
|
---|
41 | .D INCPR(+X)
|
---|
42 | S @ARY@(0)=COUNT
|
---|
43 | ;
|
---|
44 | GETPROQ Q
|
---|
45 | ;
|
---|
46 | INCPR(X) ; -- increment counter and set provider array
|
---|
47 | Q:'X!($G(^VA(200,+X,0))="")
|
---|
48 | Q:$D(IBX(+X)) ; -- already set
|
---|
49 | S COUNT=COUNT+1,@ARY@(COUNT)=+X_"^"_$P(^VA(200,+X,0),"^")
|
---|
50 | S IBX(+X)=""
|
---|
51 | Q
|
---|
52 | ;
|
---|
53 | TEST K ALAN D GETPRO(25,"ALAN")
|
---|
54 | X "ZW ALAN"
|
---|
55 | Q
|
---|