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